-
+
{categoryTitle}
diff --git a/packages/react/src/auth/plugins/email-and-password/views/login/login.client.tsx b/packages/react/src/auth/plugins/email-and-password/views/login/login.client.tsx
index 0b76e1df..97ae66a2 100644
--- a/packages/react/src/auth/plugins/email-and-password/views/login/login.client.tsx
+++ b/packages/react/src/auth/plugins/email-and-password/views/login/login.client.tsx
@@ -15,7 +15,7 @@ import {
FormItem,
FormMessage,
} from '../../../../../react/components/primitives/form'
-import { Link } from '../../../../../react/components/primitives/link'
+import { AriaLink } from '../../../../../react/components/primitives/link'
import { AriaTextField } from '../../../../../react/components/primitives/text-field'
import { useNavigation } from '../../../../../react/providers/navigation'
import { useServerFunction } from '../../../../../react/providers/root'
@@ -125,9 +125,9 @@ export function LoginClientForm() {
)}
/>
-
+
Forgot Password?
-
+
Login
diff --git a/packages/react/src/react/components/compound/collection-card.tsx b/packages/react/src/react/components/compound/collection-card.tsx
index 6b964879..9b1c427e 100644
--- a/packages/react/src/react/components/compound/collection-card.tsx
+++ b/packages/react/src/react/components/compound/collection-card.tsx
@@ -2,7 +2,7 @@ import { CaretRightIcon, CubeIcon, FolderIcon } from '@phosphor-icons/react/dist
import { Badge } from '../../icons/badge'
import { BaseIcon } from '../primitives/base-icon'
-import { Link } from '../primitives/link'
+import { AriaLink } from '../primitives/link'
import { Typography } from '../primitives/typography'
interface CollectionCardProps {
@@ -51,7 +51,7 @@ export const CollectionCard = ({
{description}
-
@@ -64,7 +64,7 @@ export const CollectionCard = ({
weight="regular"
className="transition-transform group-hover:translate-x-2"
/>
-
+
)
}
diff --git a/packages/react/src/react/components/primitives/breadcrumbs.tsx b/packages/react/src/react/components/primitives/breadcrumbs.tsx
index 50b5a425..4ff25216 100644
--- a/packages/react/src/react/components/primitives/breadcrumbs.tsx
+++ b/packages/react/src/react/components/primitives/breadcrumbs.tsx
@@ -6,7 +6,7 @@ import { Breadcrumb, Breadcrumbs as BreadcrumbsPrimitive } from 'react-aria-comp
import { IconChevronLgRight } from '@intentui/icons'
import { twMerge } from 'tailwind-merge'
-import { Link } from './link'
+import { AriaLink } from './link'
import { composeTailwindRenderProps } from './primitive'
interface BreadcrumbsContextProps {
@@ -54,7 +54,7 @@ const BreadcrumbsItem = ({
>
{({ isCurrent }) => (
<>
-
+
{trailing}
{!isCurrent && separator !== false &&
}
>
diff --git a/packages/react/src/react/components/primitives/button.tsx b/packages/react/src/react/components/primitives/button.tsx
index 47effb67..43f2a1ba 100644
--- a/packages/react/src/react/components/primitives/button.tsx
+++ b/packages/react/src/react/components/primitives/button.tsx
@@ -202,20 +202,26 @@ export { AriaButton, AriaButtonLink, type AriaButtonLinkProps, type AriaButtonPr
const buttonVariants = cva(
[
- "inline-flex items-center justify-center gap-4 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-8 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
+ "inline-flex items-center justify-center gap-4 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-8 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring ring-offset-1 focus-visible:ring-ring/50 focus-visible:ring-[2px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
'disabled:opacity-80 cursor-pointer',
],
{
variants: {
variant: {
- default: 'bg-primary text-primary-foreground hover:bg-primary/90 active:bg-primary',
+ primary:
+ ' bg-surface-button-primary shadow-[inset_0px_-12px_12px_-6px_var(--color-surface-button-primary-hover)] text-text-inverse hover:bg-surface-button-primary-hover active:bg-surface-button-primary disabled:bg-surface-button-primary-disabled disabled:shadow-none disabled:text-text-disabled disabled:border disabled:border-border-button-primary-disabled',
+ secondary:
+ ' bg-surface-button-secondary text-text-brand hover:bg-surface-button-secondary-hover active:bg-surface-button-secondary disabled:bg-surface-button-secondary-disabled disabled:shadow-none disabled:text-text-disabled',
+ tertiary:
+ ' bg-surface-button-tertiary border border-border-button-tertiary text-text-brand hover:bg-surface-button-tertiary-hover active:bg-surface-button-tertiary hover:border-border-button-tertiary-hover disabled:bg-surface-button-tertiary-disabled disabled:border-border-button-tertiary-disabled disabled:text-text-disabled',
+ naked:
+ 'shadow-sm ring-offset-0 text-text-secondary hover:bg-surface-button-naked-hover active:bg-transparent disabled:bg-surface-button-naked-disabled disabled:text-text-disabled',
+ outline:
+ ' border border-border-button-outline text-text-secondary bg-surface-button-outline shadow-xs hover:bg-surface-button-outline-hover active:bg-surface-button-outline hover:border-border-button-outline-hover disabled:bg-surface-button-outline-disabled disabled:text-text-disabled disabled:border disabled:border-border-button-outline-disabled dark:bg-input/30 dark:border-input dark:hover:bg-input/50',
+ ghost:
+ ' bg-surface-button-ghost hover:bg-surface-button-ghost-hover active:bg-surface-button-ghost text-text-secondary hover:text-accent-foreground dark:hover:bg-accent/50',
destructive:
'bg-destructive text-white hover:bg-destructive/90 active:bg-destructive focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',
- outline:
- 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',
- secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',
- ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',
- link: 'text-primary underline-offset-4 hover:underline hover:border-0',
},
size: {
default: 'h-18 px-8 py-4 has-[>svg]:px-6',
@@ -227,7 +233,7 @@ const buttonVariants = cva(
},
},
defaultVariants: {
- variant: 'default',
+ variant: 'primary',
size: 'default',
},
}
diff --git a/packages/react/src/react/components/primitives/combobox.tsx b/packages/react/src/react/components/primitives/combobox.tsx
index 5e90a3c6..24840f9e 100644
--- a/packages/react/src/react/components/primitives/combobox.tsx
+++ b/packages/react/src/react/components/primitives/combobox.tsx
@@ -9,6 +9,7 @@ import {
MagnifyingGlassIcon,
SpinnerIcon,
XCircleIcon,
+ XIcon,
} from '@phosphor-icons/react'
import { useControllableState } from '@radix-ui/react-use-controllable-state'
import { tv } from 'tailwind-variants'
@@ -533,8 +534,20 @@ function ComboboxTriggerMultiValue(props: {
return (
{selectedItems.map((selectedItem) => (
-
+ {
+ e.stopPropagation()
+ ctx.onValueChange((prevItems) =>
+ prevItems.filter((prevItem) => prevItem !== selectedItem.value)
+ )
+ }}
+ shape="square"
+ intent="gray"
+ key={selectedItem.value}
+ className="flex "
+ >
{selectedItem.label}
+
))}
@@ -614,7 +627,10 @@ function ComboboxContent({
>) {
return (
-
+
{children}
diff --git a/packages/react/src/react/components/primitives/link.tsx b/packages/react/src/react/components/primitives/link.tsx
index 2012b709..7422599e 100644
--- a/packages/react/src/react/components/primitives/link.tsx
+++ b/packages/react/src/react/components/primitives/link.tsx
@@ -2,16 +2,24 @@
import { Link as LinkPrimitive, type LinkProps as LinkPrimitiveProps } from 'react-aria-components'
+import { cva } from 'class-variance-authority'
import { twJoin } from 'tailwind-merge'
import { composeTailwindRenderProps } from './primitive'
-interface LinkProps extends LinkPrimitiveProps {
+/**
+ * @deprecated
+ */
+interface AriaLinkProps extends LinkPrimitiveProps {
intent?: 'primary' | 'secondary' | 'unstyled'
ref?: React.RefObject
}
-const Link = ({ className, ref, intent = 'unstyled', ...props }: LinkProps) => {
+/**
+ * @deprecated
+ * Use anchor tag instead
+ */
+const AriaLink = ({ className, ref, intent = 'unstyled', ...props }: AriaLinkProps) => {
return (
{
)
}
-export type { LinkProps }
-export { Link }
+export type { AriaLinkProps }
+export { AriaLink }
+
+export const linkVariants = cva('text-sm font-medium text-primary', {
+ variants: {
+ variant: {
+ plain: null,
+ underline: 'underline-offset-4 hover:underline hover:border-0',
+ },
+ size: {
+ sm: 'text-sm',
+ md: 'text-base',
+ lg: 'text-lg',
+ },
+ },
+ defaultVariants: {
+ variant: 'underline',
+ size: 'sm',
+ },
+})
diff --git a/packages/react/src/react/pages/401.tsx b/packages/react/src/react/pages/401.tsx
index e1ed848a..d20c4c8f 100644
--- a/packages/react/src/react/pages/401.tsx
+++ b/packages/react/src/react/pages/401.tsx
@@ -2,7 +2,7 @@ import React from 'react'
import { ArrowLeftIcon } from '@phosphor-icons/react/dist/ssr'
-import { Link } from '../components'
+import { AriaLink } from '../components'
import { BaseIcon } from '../components/primitives/base-icon'
import { Typography } from '../components/primitives/typography'
@@ -45,10 +45,10 @@ export const NotAuthorizedPage = ({
{description}
-
+
{redirectSentence}
-
+
)
}
diff --git a/packages/react/src/react/pages/403.tsx b/packages/react/src/react/pages/403.tsx
index cb9f1b09..ba0de1a3 100644
--- a/packages/react/src/react/pages/403.tsx
+++ b/packages/react/src/react/pages/403.tsx
@@ -1,6 +1,6 @@
import { ArrowRightIcon, LockKeyIcon } from '@phosphor-icons/react/dist/ssr'
-import { Link } from '../components'
+import { AriaLink } from '../components'
import { BaseIcon } from '../components/primitives/base-icon'
import { Typography } from '../components/primitives/typography'
@@ -22,10 +22,10 @@ export const UnauthorizedPage = () => {
You are not authorized to access this page. Please check your permission and try again.