.style-sera { /* MARK: Accordion */ .cn-accordion-item { @apply not-last:border-b; } .cn-accordion-trigger { @apply focus-visible:ring-ring/30 focus-visible:border-ring **:data-[slot=accordion-trigger-icon]:text-muted-foreground rounded-none gap-6 py-4 text-left text-sm font-semibold hover:underline focus-visible:ring-2 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-3.5; } .cn-accordion-content { @apply data-open:animate-accordion-down data-closed:animate-accordion-up text-sm; } .cn-accordion-content-inner { @apply pt-0 pb-4; } /* MARK: Alert */ .cn-alert { @apply grid gap-1 bg-background border px-4 py-3 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2.5 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4 relative after:-inset-y-px after:-left-px after:w-0.5 after:absolute; } .cn-alert-variant-default { @apply bg-card text-card-foreground after:bg-foreground; } .cn-alert-variant-destructive { @apply text-destructive bg-card *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current after:bg-destructive; } .cn-alert-title { @apply font-semibold group-has-[>svg]/alert:col-start-2 text-sm; } .cn-alert-description { @apply text-muted-foreground text-sm text-balance md:text-pretty [&_p:not(:last-child)]:mb-4; } .cn-alert-action { @apply absolute top-2.5 right-3; } /* MARK: Alert Dialog */ .cn-alert-dialog-overlay { @apply data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/20 duration-100 supports-backdrop-filter:backdrop-blur-sm; } .cn-alert-dialog-content { @apply data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 bg-popover text-popover-foreground ring-foreground/10 gap-6 rounded-none p-6 shadow-md ring-1 duration-100 data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-md; } .cn-alert-dialog-header { @apply grid grid-rows-[auto_1fr] place-items-center gap-2 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]; } .cn-alert-dialog-media { @apply bg-muted mb-2 inline-flex size-16 items-center justify-center rounded-none sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-8; } .cn-alert-dialog-title { @apply text-lg font-semibold sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2 uppercase tracking-wider; } .cn-alert-dialog-description { @apply text-muted-foreground *:[a]:hover:text-foreground text-sm text-balance md:text-pretty *:[a]:underline *:[a]:underline-offset-3 leading-relaxed mt-0.5; } /* MARK: Avatar */ .cn-avatar { @apply size-8 rounded-full after:rounded-full data-[size=lg]:size-10 data-[size=sm]:size-6; } .cn-avatar-fallback { @apply bg-muted text-muted-foreground rounded-full; } .cn-avatar-image { @apply rounded-full; } .cn-avatar-badge { @apply bg-primary text-primary-foreground ring-background; } .cn-avatar-group-count { @apply bg-muted text-muted-foreground size-8 rounded-full text-sm group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3; } /* MARK: Badge */ .cn-badge { @apply gap-1.5 rounded-none border-0 bg-transparent px-0 py-0 text-[0.625rem] font-semibold uppercase tracking-widest transition-colors has-data-[icon=inline-end]:pr-0 has-data-[icon=inline-start]:pl-0 [&>svg]:size-3!; } .cn-badge-variant-default { @apply text-foreground [a]:hover:text-foreground/70; } .cn-badge-variant-secondary { @apply text-muted-foreground [a]:hover:text-foreground; } .cn-badge-variant-outline { @apply text-foreground [a]:hover:text-foreground/70; } .cn-badge-variant-destructive { @apply text-destructive [a]:hover:text-destructive/70 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40; } .cn-badge-variant-ghost { @apply text-muted-foreground hover:text-foreground; } .cn-badge-variant-link { @apply text-foreground underline-offset-4 hover:underline; } /* MARK: Breadcrumb */ .cn-breadcrumb-list { @apply text-muted-foreground gap-1.5 text-xs uppercase tracking-wide sm:gap-2.5; } .cn-breadcrumb-item { @apply gap-1.5; } .cn-breadcrumb-link { @apply hover:text-foreground transition-colors; } .cn-breadcrumb-page { @apply text-foreground font-normal; } .cn-breadcrumb-separator { @apply [&>svg]:size-3.5; } .cn-breadcrumb-ellipsis { @apply size-5 [&>svg]:size-4; } /* MARK: Button */ .cn-button { @apply focus-visible:border-ring focus-visible:ring-ring/30 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 rounded-none border border-transparent bg-clip-padding text-xs font-semibold uppercase tracking-widest focus-visible:ring-2 aria-invalid:ring-2 active:not-aria-[haspopup]:translate-y-px [&_svg:not([class*='size-'])]:size-3.5; } .cn-button-variant-default { @apply bg-primary text-primary-foreground hover:bg-primary/80; } .cn-button-variant-outline { @apply border-border bg-transparent hover:bg-muted hover:text-foreground dark:hover:bg-input/30 aria-expanded:bg-muted aria-expanded:text-foreground; } .cn-button-variant-secondary { @apply bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground; } .cn-button-variant-ghost { @apply hover:bg-muted hover:text-foreground dark:hover:bg-muted/50 aria-expanded:bg-muted aria-expanded:text-foreground; } .cn-button-variant-destructive { @apply bg-destructive/10 hover:bg-destructive/20 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/20 text-destructive focus-visible:border-destructive/40 dark:hover:bg-destructive/30; } .cn-button-variant-link { @apply text-primary underline-offset-4 hover:underline underline; } .cn-button-size-xs { @apply h-7 gap-1 px-3 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2 [&_svg:not([class*='size-'])]:size-3; } .cn-button-size-sm { @apply h-9 gap-1 px-4 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3; } .cn-button-size-default { @apply h-10 gap-1.5 px-6 has-data-[icon=inline-end]:pr-4 has-data-[icon=inline-start]:pl-4; } .cn-button-size-lg { @apply h-11 gap-1.5 px-8 has-data-[icon=inline-end]:pr-5 has-data-[icon=inline-start]:pl-5; } .cn-button-size-icon-xs { @apply size-7 [&_svg:not([class*='size-'])]:size-3; } .cn-button-size-icon-sm { @apply size-9; } .cn-button-size-icon { @apply size-10; } .cn-button-size-icon-lg { @apply size-11; } /* MARK: Button Group */ .cn-button-group { @apply *:data-[slot=input]:px-4 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-none has-[>[data-variant=outline]]:[&>input]:border-border has-[>[data-variant=outline]]:[&>input:focus-visible]:border-ring has-[>[data-variant=outline]]:*:data-[slot=input-group]:border-border has-[>[data-variant=outline]]:[&>[data-slot=input-group]:has(:focus-visible)]:border-ring has-[>[data-variant=outline]]:*:data-[slot=select-trigger]:border-border has-[>[data-variant=outline]]:[&>[data-slot=select-trigger]:focus-visible]:border-ring has-[>[data-variant=outline]]:*:data-[slot=input-group]:px-2.5 has-[>[data-variant=outline]]:*:[[role=combobox]]:px-2.5; } .cn-button-group-orientation-horizontal { @apply [&>[data-slot]:not(:has(~[data-slot]))]:rounded-none!; } .cn-button-group-orientation-vertical { @apply [&>[data-slot]:not(:has(~[data-slot]))]:rounded-none!; } .cn-button-group-text { @apply gap-2 border border-transparent border-b-input bg-transparent px-2.5 text-xs font-semibold [&_svg:not([class*='size-'])]:size-3.5 group-has-[>[data-variant=outline]]/button-group:border-border uppercase; } .cn-button-group-separator { @apply bg-input; } /* MARK: Calendar */ .cn-calendar { @apply p-3 [--cell-radius:0] [--cell-size:--spacing(8)]; } .cn-calendar-dropdown-root { @apply has-focus:border-ring border-input has-focus:ring-ring/30 rounded-none border has-focus:ring-2; } .cn-calendar-caption-label { @apply h-8 pr-2 pl-3 text-xs font-semibold uppercase tracking-wide; } .cn-calendar-caption { @apply text-xs font-semibold uppercase tracking-wide; } /* MARK: Card */ .cn-card { @apply bg-card text-card-foreground ring-foreground/5 gap-(--card-spacing) overflow-hidden py-(--card-spacing) text-sm shadow-sm ring-1 [--card-spacing:--spacing(8)] has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(5)] *:[img:first-child]:rounded-none *:[img:last-child]:rounded-none; } .cn-card-header { @apply gap-1.5 rounded-none px-(--card-spacing) [.border-b]:pb-(--card-spacing); } .cn-card-title { @apply text-lg font-semibold tracking-wider uppercase; } .cn-card-description { @apply text-muted-foreground text-sm leading-relaxed; } .cn-card-content { @apply px-(--card-spacing); } .cn-card-footer { @apply px-(--card-spacing) [.border-t]:pt-(--card-spacing); } /* MARK: Chart */ .cn-chart-tooltip { @apply bg-popover text-popover-foreground ring-foreground/10 gap-1.5 px-2.5 py-1.5 text-xs shadow-sm ring-1; } /* MARK: Checkbox */ .cn-checkbox { @apply border-input bg-transparent data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary data-checked:border-primary aria-invalid:aria-checked:border-primary aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 focus-visible:border-ring focus-visible:ring-ring/30 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 flex size-4.5 items-center justify-center rounded-none border transition-shadow group-has-disabled/field:opacity-50 focus-visible:ring-2 aria-invalid:ring-2 group-has-[:focus-visible]/field-label:ring-0 group-has-[:focus-visible]/field-label:not-data-checked:border-input group-has-[:focus-visible]/field-label:data-checked:border-primary; } .cn-checkbox-aria { @apply data-selected:bg-primary data-selected:text-primary-foreground dark:data-selected:bg-primary data-selected:border-primary data-focus-visible:border-ring data-focus-visible:ring-ring/30 data-focus-visible:ring-2 data-invalid:data-selected:border-primary data-invalid:border-destructive dark:data-invalid:border-destructive/50 data-invalid:ring-destructive/20 dark:data-invalid:ring-destructive/40 data-invalid:ring-2; } .cn-checkbox-indicator { @apply [&>svg]:size-3.5; } /* MARK: Combobox */ .cn-combobox-content { @apply bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 *:data-[slot=input-group]:bg-transparent *:data-[slot=input-group]:border-b-input max-h-72 min-w-36 overflow-hidden rounded-none shadow-md ring-1 duration-100 *:data-[slot=input-group]:m-1.5 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-transparent *:data-[slot=input-group]:focus-within:border-transparent *:data-[slot=input-group]:px-2.5; } .cn-combobox-content-logical { @apply data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2; } .cn-combobox-label { @apply px-3 py-2 text-xs uppercase tracking-wider font-semibold text-muted-foreground; } .cn-combobox-item { @apply data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground gap-2.5 rounded-none py-2 pr-8 pl-3 text-sm [&_svg:not([class*='size-'])]:size-3.5; } .cn-combobox-item-aria { @apply data-focused:bg-accent data-focused:text-accent-foreground not-data-[variant=destructive]:data-focused:**:text-accent-foreground; } .cn-combobox-item-indicator { @apply pointer-events-none absolute right-2 flex size-4 items-center justify-center; } .cn-combobox-empty { @apply text-muted-foreground hidden w-full justify-center py-2 text-center text-sm group-data-empty/combobox-content:flex; } .cn-combobox-list { @apply no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1.5 overflow-y-auto p-1.5 data-empty:p-0; } .cn-combobox-item-text { @apply flex flex-1 gap-2; } .cn-combobox-separator { @apply bg-border/50 -mx-1.5 my-1.5 h-px; } .cn-combobox-trigger { @apply [&_svg:not([class*='size-'])]:size-3.5; } .cn-combobox-trigger-icon { @apply text-muted-foreground size-3.5; } .cn-combobox-chips { @apply border-transparent border-b-input bg-transparent focus-within:border-b-ring has-aria-invalid:border-b-destructive dark:has-aria-invalid:border-b-destructive/50 flex min-h-10 flex-wrap items-center gap-1.5 rounded-none border bg-clip-padding px-0 py-1.5 text-sm transition-[color,border-color] has-data-[slot=combobox-chip]:px-0; } .cn-combobox-chip { @apply bg-muted text-foreground flex h-[calc(--spacing(5.5))] w-fit items-center justify-center gap-1 rounded-none px-2 text-xs font-medium whitespace-nowrap has-data-[slot=combobox-chip-remove]:pr-0; } .cn-combobox-chip-remove { @apply -ml-1 opacity-50 hover:opacity-100; } /* MARK: Command */ .cn-command { @apply bg-popover text-popover-foreground; } .cn-command-dialog { @apply p-0; } .cn-command-input-wrapper { @apply p-1; } .cn-command-input-group { @apply bg-transparent border-transparent border-b-input px-3; } .cn-command-input-icon { @apply size-3.5 shrink-0 opacity-50; } .cn-command-input { @apply w-full text-sm px-2; } .cn-command-list { @apply no-scrollbar max-h-72 scroll-py-1 outline-none; } .cn-command-empty { @apply py-6 text-center text-sm; } .cn-command-group { @apply text-foreground **:[[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1.5 **:[[cmdk-group-heading]]:px-3 **:[[cmdk-group-heading]]:py-2 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-semibold **:[[cmdk-group-heading]]:uppercase **:[[cmdk-group-heading]]:tracking-wider; } .cn-command-separator { @apply bg-border/50 -mx-1.5 my-1.5 h-px; } .cn-command-item { @apply data-selected:bg-muted data-selected:text-foreground data-selected:*:[svg]:text-foreground relative flex cursor-default items-center gap-2 rounded-none px-3 py-2 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-none [&_svg:not([class*='size-'])]:size-3.5; } .cn-command-item-aria { @apply data-focused:bg-muted data-focused:text-foreground data-focused:*:[svg]:text-foreground; } .cn-command-shortcut { @apply text-muted-foreground group-data-selected/command-item:text-foreground ml-auto text-xs tracking-widest; } .cn-command-shortcut-aria { @apply group-data-focused/command-item:text-foreground; } /* MARK: Context Menu */ .cn-context-menu-content { @apply data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-48 rounded-none p-1.5 shadow-md ring-1 duration-100; } .cn-context-menu-content-logical { @apply data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2; } .cn-context-menu-item { @apply focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive focus:*:[svg]:text-accent-foreground gap-2.5 rounded-none px-3 py-2 text-xs font-medium uppercase tracking-wider data-inset:pl-9.5 [&_svg:not([class*='size-'])]:size-3.5; } .cn-context-menu-checkbox-item { @apply focus:bg-accent focus:text-accent-foreground gap-2.5 rounded-none py-2 pr-8 pl-3 text-xs font-medium uppercase tracking-wider data-inset:pl-9.5 [&_svg:not([class*='size-'])]:size-3.5; } .cn-context-menu-radio-item { @apply focus:bg-accent focus:text-accent-foreground gap-2.5 rounded-none py-2 pr-8 pl-3 text-xs font-medium uppercase tracking-wider data-inset:pl-9.5 [&_svg:not([class*='size-'])]:size-3.5; } .cn-context-menu-item-indicator { @apply absolute right-2; } .cn-context-menu-label { @apply px-3 py-2 text-xs uppercase tracking-wider data-inset:pl-9.5 font-semibold text-muted-foreground; } .cn-context-menu-separator { @apply bg-border/50 -mx-1.5 my-1.5 h-px; } .cn-context-menu-shortcut { @apply text-muted-foreground group-focus/context-menu-item:text-accent-foreground ml-auto text-xs tracking-widest; } .cn-context-menu-sub-trigger { @apply focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground rounded-none px-3 py-2 text-xs font-medium uppercase tracking-wider data-inset:pl-9.5 [&_svg:not([class*='size-'])]:size-3.5; } .cn-context-menu-sub-content { @apply data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-32 rounded-none p-1.5 shadow-md ring-1 duration-100; } .cn-context-menu-subcontent { @apply shadow-md; } /* MARK: Dialog */ .cn-dialog-overlay { @apply data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 bg-black/20 duration-100 supports-backdrop-filter:backdrop-blur-sm; } .cn-dialog-content { @apply bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 ring-foreground/10 grid max-w-[calc(100%-2rem)] gap-6 rounded-none p-6 text-sm shadow-md ring-1 duration-100 sm:max-w-md; } .cn-dialog-close { @apply absolute top-5 right-5 bg-secondary; } .cn-dialog-header { @apply gap-2; } .cn-dialog-footer { @apply gap-2; } .cn-dialog-title { @apply text-lg font-semibold leading-none uppercase tracking-wider; } .cn-dialog-description { @apply text-muted-foreground *:[a]:hover:text-foreground text-sm *:[a]:underline *:[a]:underline-offset-3 leading-relaxed mt-0.5; } /* MARK: Drawer */ .cn-drawer-overlay { @apply bg-black/20 supports-backdrop-filter:backdrop-blur-sm; } .cn-drawer-content { @apply bg-popover text-popover-foreground flex h-auto flex-col text-sm data-[vaul-drawer-direction=bottom]:rounded-none data-[vaul-drawer-direction=bottom]:border-t data-[vaul-drawer-direction=left]:rounded-none data-[vaul-drawer-direction=left]:border-r data-[vaul-drawer-direction=right]:rounded-none data-[vaul-drawer-direction=right]:border-l data-[vaul-drawer-direction=top]:rounded-none data-[vaul-drawer-direction=top]:border-b; } .cn-drawer-popup { @apply bg-popover text-popover-foreground text-sm data-[swipe-direction=down]:rounded-none data-[swipe-direction=down]:border-t data-[swipe-direction=left]:rounded-none data-[swipe-direction=left]:border-r data-[swipe-direction=right]:rounded-none data-[swipe-direction=right]:border-l data-[swipe-direction=up]:rounded-none data-[swipe-direction=up]:border-b; } .cn-drawer-handle { @apply bg-muted mx-auto mt-4 hidden h-1.5 w-[100px] shrink-0 rounded-none; } .cn-drawer-swipe-handle { @apply after:bg-muted after:block after:shrink-0 after:rounded-none group-data-[swipe-axis=y]/drawer-popup:h-3 group-data-[swipe-axis=y]/drawer-popup:w-full group-data-[swipe-axis=y]/drawer-popup:justify-center group-data-[swipe-axis=y]/drawer-popup:after:h-1.5 group-data-[swipe-axis=y]/drawer-popup:after:w-[100px] group-data-[swipe-direction=down]/drawer-popup:items-end group-data-[swipe-direction=up]/drawer-popup:items-start group-data-[swipe-axis=x]/drawer-popup:h-full group-data-[swipe-axis=x]/drawer-popup:w-3 group-data-[swipe-axis=x]/drawer-popup:items-center group-data-[swipe-axis=x]/drawer-popup:after:h-[100px] group-data-[swipe-axis=x]/drawer-popup:after:w-1.5 group-data-[swipe-direction=left]/drawer-popup:justify-start group-data-[swipe-direction=right]/drawer-popup:justify-end; } .cn-drawer-header { @apply gap-1 p-4 md:gap-2 md:text-left; } .cn-drawer-header-base { @apply gap-1 p-4 pb-0 md:gap-2 md:text-left; } .cn-drawer-title { @apply text-foreground text-lg font-semibold uppercase tracking-wider; } .cn-drawer-description { @apply text-muted-foreground text-sm leading-relaxed mt-0.5; } .cn-drawer-footer { @apply gap-2 p-4; } .cn-drawer-footer-base { @apply gap-2 p-4 pt-0; } /* MARK: Dropdown Menu */ .cn-dropdown-menu-content { @apply data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-48 rounded-none p-1.5 shadow-md ring-1 duration-100; } .cn-dropdown-menu-content-logical { @apply data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2; } .cn-dropdown-menu-item { @apply focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2.5 rounded-none px-3 py-2 text-xs font-medium uppercase tracking-wider data-inset:pl-9.5 [&_svg:not([class*='size-'])]:size-3.5; } .cn-dropdown-menu-checkbox-item { @apply focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2.5 rounded-none py-2 pr-8 pl-3 text-xs font-medium uppercase tracking-wider data-inset:pl-9.5 [&_svg:not([class*='size-'])]:size-3.5; } .cn-dropdown-menu-radio-item { @apply focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2.5 rounded-none py-2 pr-8 pl-3 text-xs font-medium uppercase tracking-wider data-inset:pl-9.5 [&_svg:not([class*='size-'])]:size-3.5; } .cn-dropdown-menu-item-indicator { @apply absolute right-2 flex items-center justify-center; } .cn-dropdown-menu-label { @apply px-3 py-2 text-xs uppercase tracking-wider data-inset:pl-9.5 font-semibold text-muted-foreground; } .cn-dropdown-menu-separator { @apply bg-border/50 -mx-1.5 my-1.5 h-px; } .cn-dropdown-menu-shortcut { @apply text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground ml-auto text-xs tracking-widest; } .cn-dropdown-menu-sub-trigger { @apply focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2 rounded-none px-3 py-2 text-xs font-medium uppercase tracking-wider data-inset:pl-9.5 [&_svg:not([class*='size-'])]:size-3.5; } .cn-dropdown-menu-sub-content { @apply data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-36 rounded-none p-1.5 shadow-md ring-1 duration-100; } .cn-dropdown-menu-subcontent { @apply shadow-md; } /* MARK: Empty */ .cn-empty { @apply gap-4 border-dashed p-12; } .cn-empty-header { @apply gap-2; } .cn-empty-media { @apply mb-2; } .cn-empty-media-default { @apply bg-transparent; } .cn-empty-media-icon { @apply bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-none [&_svg:not([class*='size-'])]:size-5; } .cn-empty-title { @apply text-lg font-semibold tracking-wider uppercase; } .cn-empty-description { @apply text-sm/relaxed mt-0.5; } .cn-empty-content { @apply gap-4 text-sm; } /* MARK: Field */ .cn-field-set { @apply gap-6 has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3; } .cn-field-legend { @apply mb-3 font-semibold uppercase data-[variant=label]:text-xs data-[variant=legend]:text-xs; } .cn-field-group { @apply gap-10 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4; } .cn-field { @apply data-[invalid=true]:text-destructive gap-3; } .cn-field-content { @apply gap-1; } .cn-field-label { @apply has-data-checked:bg-primary/5 has-data-checked:border-primary/30 dark:has-data-checked:border-primary/20 dark:has-data-checked:bg-primary/10 gap-2 group-data-[disabled=true]/field:opacity-50 has-[>[data-slot=field]]:rounded-none has-[>[data-slot=field]]:border has-[>[data-slot=field]]:not-has-[:disabled,[data-disabled]]:hover:bg-muted/50 has-[>[data-slot=field]]:has-[:focus-visible]:ring-ring/30 has-[>[data-slot=field]]:has-[:focus-visible]:ring-2 *:data-[slot=field]:p-4 leading-relaxed; } .cn-field-label-aria { @apply has-data-selected:bg-primary/5 has-data-selected:border-primary/30 dark:has-data-selected:border-primary/20 dark:has-data-selected:bg-primary/10; } .cn-field-title { @apply gap-2 group-data-[disabled=true]/field:opacity-50 leading-normal font-semibold uppercase in-data-[slot=field-label]:font-semibold text-xs; } .cn-field-description { @apply text-muted-foreground text-left text-sm [[data-variant=legend]+&]:-mt-1.5 normal-case tracking-normal; } .cn-field-separator { @apply -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2; } .cn-field-separator-content { @apply text-muted-foreground px-2; } .cn-field-error { @apply text-destructive text-sm; } /* MARK: Hover Card */ .cn-hover-card-content { @apply data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground w-72 p-4 text-sm shadow-md ring-1 duration-100; } .cn-hover-card-content-logical { @apply data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2; } /* MARK: Input */ .cn-input { @apply border-transparent border-b-input bg-transparent focus-visible:border-b-ring aria-invalid:border-b-destructive dark:aria-invalid:border-b-destructive/50 h-10 border px-0 py-1 text-base transition-[color,border-color] file:h-7 file:text-sm file:font-medium md:text-sm; } /* MARK: Input OTP */ .cn-input-otp { @apply gap-2; } .cn-input-otp-group { @apply has-aria-invalid:border-b-destructive dark:has-aria-invalid:border-b-destructive/50 rounded-none gap-1; } .cn-input-otp-slot { @apply border-transparent border-b-input bg-transparent data-[active=true]:border-b-ring aria-invalid:border-b-destructive dark:aria-invalid:border-b-destructive/50 size-10 border text-sm transition-[color,border-color] outline-none first:rounded-none last:rounded-none; } .cn-input-otp-caret-line { @apply animate-caret-blink bg-foreground h-4 w-px duration-1000; } .cn-input-otp-separator { @apply [&_svg:not([class*='size-'])]:size-3.5; } /* MARK: Item */ .cn-item { @apply [a]:hover:bg-muted rounded-none border text-sm; } .cn-item-variant-default { @apply border-transparent; } .cn-item-variant-outline { @apply border-border; } .cn-item-variant-muted { @apply bg-muted/50 border-transparent; } .cn-item-size-default { @apply gap-3.5 px-4 py-3.5; } .cn-item-size-sm { @apply gap-3.5 px-3.5 py-3; } .cn-item-size-xs { @apply gap-2.5 px-3 py-2.5 in-data-[slot=dropdown-menu-content]:p-0; } .cn-item-media { @apply gap-2 group-has-data-[slot=item-description]/item:translate-y-0.5 group-has-data-[slot=item-description]/item:self-start; } .cn-item-media-variant-default { @apply bg-transparent; } .cn-item-media-variant-icon { @apply [&_svg:not([class*='size-'])]:size-4; } .cn-item-media-variant-image { @apply size-10 overflow-hidden rounded-none group-data-[size=sm]/item:size-8 group-data-[size=xs]/item:size-6 group-data-[size=xs]/item:rounded-none [&_img]:size-full [&_img]:object-cover; } .cn-item-content { @apply gap-1 group-data-[size=xs]/item:gap-0.5; } .cn-item-title { @apply gap-2 text-xs leading-snug font-semibold uppercase underline-offset-4; } .cn-item-description { @apply text-muted-foreground text-left text-sm leading-relaxed; } .cn-item-actions { @apply gap-2; } .cn-item-header { @apply gap-2; } .cn-item-footer { @apply gap-2; } .cn-item-group { @apply gap-4 has-data-[size=sm]:gap-2.5 has-data-[size=xs]:gap-2; } .cn-item-separator { @apply my-2; } /* MARK: Kbd */ .cn-kbd { @apply bg-muted text-muted-foreground in-data-[slot=tooltip-content]:bg-background/20 in-data-[slot=tooltip-content]:text-background dark:in-data-[slot=tooltip-content]:bg-background/10 h-5.5 w-fit min-w-5.5 gap-1 rounded-none px-1.5 font-sans text-xs font-medium [&_svg:not([class*='size-'])]:size-3 in-data-[slot=input-group]:bg-input; } .cn-kbd-group { @apply gap-1; } /* MARK: Label */ .cn-label { @apply gap-2 font-semibold peer-data-[slot=checkbox]:text-sm peer-data-[slot=radio-group-item]:text-sm peer-data-[slot=switch]:text-sm leading-relaxed group-data-[disabled=true]:opacity-50 peer-disabled:opacity-50 peer-data-[slot=checkbox]:font-normal peer-data-[slot=radio-group-item]:font-normal peer-data-[slot=switch]:font-normal uppercase text-xs tracking-wide peer-data-[slot=checkbox]:normal-case peer-data-[slot=checkbox]:tracking-normal peer-data-[slot=radio-group-item]:normal-case peer-data-[slot=radio-group-item]:tracking-normal peer-data-[slot=switch]:normal-case peer-data-[slot=switch]:tracking-normal; } .cn-label-aria { @apply peer-data-disabled:opacity-50; } /* MARK: Menubar */ .cn-menubar { @apply h-10 rounded-none border p-1; } .cn-menubar-trigger { @apply hover:bg-muted aria-expanded:bg-muted rounded-none px-2 py-0.75 text-sm font-medium; } .cn-menubar-content { @apply bg-popover text-popover-foreground data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 min-w-48 rounded-none p-1.5 shadow-md ring-1 duration-100; } .cn-menubar-content-logical { @apply data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2; } .cn-menubar-item { @apply focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive! not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2.5 rounded-none px-3 py-2 text-sm data-disabled:opacity-50 data-inset:pl-9.5 [&_svg:not([class*='size-'])]:size-3.5; } .cn-menubar-checkbox-item { @apply focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2.5 rounded-none py-2 pr-3 pl-9.5 text-xs font-medium uppercase tracking-wider data-inset:pl-9.5; } .cn-menubar-checkbox-item-indicator { @apply left-3 size-4 [&_svg:not([class*='size-'])]:size-4; } .cn-menubar-radio-item { @apply focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground gap-2.5 rounded-none py-2 pr-3 pl-9.5 text-xs font-medium uppercase tracking-wider data-disabled:opacity-50 data-inset:pl-9.5 [&_svg:not([class*='size-'])]:size-3.5; } .cn-menubar-radio-item-indicator { @apply left-3 size-4 [&_svg:not([class*='size-'])]:size-4; } .cn-menubar-label { @apply px-3.5 py-2 text-xs uppercase tracking-wider data-inset:pl-9.5 font-semibold text-muted-foreground; } .cn-menubar-separator { @apply bg-border/50 -mx-1.5 my-1.5 h-px; } .cn-menubar-shortcut { @apply text-muted-foreground group-focus/menubar-item:text-accent-foreground text-xs tracking-widest; } .cn-menubar-sub-trigger { @apply focus:bg-accent focus:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground gap-2 rounded-none px-3 py-2 text-xs font-medium uppercase tracking-wider data-inset:pl-9.5 [&_svg:not([class*='size-'])]:size-3.5; } .cn-menubar-sub-content { @apply bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 min-w-32 rounded-none p-1.5 shadow-md ring-1 duration-100; } /* MARK: Navigation Menu */ .cn-navigation-menu { @apply max-w-max; } .cn-navigation-menu-list { @apply gap-0; } .cn-navigation-menu-trigger { @apply hover:bg-muted focus:bg-muted data-open:hover:bg-muted data-open:focus:bg-muted data-open:bg-muted/50 focus-visible:ring-ring/30 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted rounded-none px-4.5 py-2.5 text-sm font-medium transition-all focus-visible:ring-2 focus-visible:outline-1 disabled:opacity-50; } .cn-navigation-menu-link { @apply data-[active=true]:focus:bg-muted data-[active=true]:hover:bg-muted data-[active=true]:bg-muted/50 focus-visible:ring-ring/30 hover:bg-muted focus:bg-muted flex items-center gap-1.5 rounded-none p-3 text-sm transition-all outline-none focus-visible:ring-2 focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-3.5 in-data-[slot=navigation-menu-content]:rounded-none; } .cn-navigation-menu-trigger-icon { @apply relative top-px ml-1 size-3 transition duration-300 group-data-open/navigation-menu-trigger:rotate-180 group-data-popup-open/navigation-menu-trigger:rotate-180; } .cn-navigation-menu-content { @apply data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:data-open:animate-in group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0 group-data-[viewport=false]/navigation-menu:ring-foreground/10 p-2.5 pr-3 ease-[cubic-bezier(0.22,1,0.36,1)] group-data-[viewport=false]/navigation-menu:rounded-none group-data-[viewport=false]/navigation-menu:shadow-md group-data-[viewport=false]/navigation-menu:ring-1 group-data-[viewport=false]/navigation-menu:duration-300; } .cn-navigation-menu-viewport { @apply bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:zoom-out-90 data-open:zoom-in-90 ring-foreground/10 rounded-none shadow-md ring-1 duration-100; } .cn-navigation-menu-indicator { @apply data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in; } .cn-navigation-menu-indicator-arrow { @apply bg-border rounded-none shadow-md; } .cn-navigation-menu-positioner { @apply transition-[top,left,right,bottom] duration-300 ease-[cubic-bezier(0.22,1,0.36,1)] data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0; } .cn-navigation-menu-popup { @apply bg-popover text-popover-foreground ring-foreground/10 rounded-none shadow-md ring-1 transition-all ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0; } /* MARK: Native Select */ .cn-native-select { @apply border-transparent border-b-input bg-transparent placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground focus-visible:border-b-ring aria-invalid:border-b-destructive dark:aria-invalid:border-b-destructive/50 h-10 w-full min-w-0 appearance-none rounded-none border py-2 pr-8 pl-0 text-sm transition-[color,border-color] select-none data-[size=sm]:h-9; } .cn-native-select-icon { @apply text-muted-foreground top-1/2 right-0 size-3.5 -translate-y-1/2; } /* MARK: Pagination */ .cn-pagination-content { @apply gap-1; } .cn-pagination-ellipsis { @apply size-9 items-center justify-center [&_svg:not([class*='size-'])]:size-4; } .cn-pagination-previous { @apply pl-2!; } .cn-pagination-next { @apply pr-2!; } /* MARK: Popover */ .cn-popover-content { @apply bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 flex flex-col gap-4 rounded-none p-4 text-sm shadow-md ring-1 duration-100; } .cn-popover-content-logical { @apply data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2; } .cn-popover-header { @apply flex flex-col gap-1 text-sm; } .cn-popover-title { @apply text-xs font-semibold uppercase; } .cn-popover-description { @apply text-muted-foreground text-sm leading-relaxed mt-0.5; } /* MARK: Progress */ .cn-progress { @apply bg-muted h-0.5 rounded-none; } .cn-progress-track { @apply bg-muted h-0.5 rounded-none; } .cn-progress-indicator { @apply bg-primary; } .cn-progress-label { @apply text-xs font-semibold tracking-wide uppercase; } .cn-progress-value { @apply text-muted-foreground ml-auto text-sm tabular-nums; } /* MARK: Radio */ .cn-radio-group { @apply grid gap-3; } .cn-radio-group-item { @apply border-input bg-transparent data-checked:border-foreground aria-invalid:aria-checked:border-foreground aria-invalid:border-destructive focus-visible:border-ring focus-visible:ring-ring/30 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 dark:aria-invalid:border-destructive/50 flex size-4.5 rounded-full border focus-visible:ring-2 aria-invalid:ring-2 group-has-[:focus-visible]/field-label:ring-0 group-has-[:focus-visible]/field-label:not-data-checked:border-input group-has-[:focus-visible]/field-label:data-checked:border-foreground; } .cn-radio-group-item-aria { @apply data-selected:border-foreground data-focus-visible:border-ring data-focus-visible:ring-ring/30 data-focus-visible:ring-2 data-invalid:data-selected:border-foreground data-invalid:border-destructive data-invalid:ring-destructive/20 dark:data-invalid:ring-destructive/40 dark:data-invalid:border-destructive/50 data-invalid:ring-2; } .cn-radio-group-indicator { @apply flex size-4.5 items-center justify-center; } .cn-radio-group-indicator-icon { @apply bg-foreground absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 rounded-full; } /* MARK: Resizable */ .cn-resizable-handle-icon { @apply bg-border h-6 w-1 rounded-none; } /* MARK: Scroll Area */ .cn-scroll-area-scrollbar { @apply data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent; } .cn-scroll-area-thumb { @apply rounded-none; } /* MARK: Select */ .cn-select-trigger { @apply border-transparent border-b-input bg-transparent data-placeholder:text-muted-foreground focus-visible:border-b-ring aria-invalid:border-b-destructive dark:aria-invalid:border-b-destructive/50 gap-1.5 rounded-none border py-2 px-0 text-sm transition-[color,border-color] data-[size=default]:h-10 data-[size=sm]:h-9 *:data-[slot=select-value]:flex *:data-[slot=select-value]:gap-1.5 [&_svg:not([class*='size-'])]:size-3.5; } .cn-select-value { @apply flex flex-1 text-left; } .cn-select-value-aria { @apply data-placeholder:text-muted-foreground; } .cn-select-trigger-icon { @apply text-muted-foreground size-3.5; } .cn-select-content { @apply bg-popover text-popover-foreground data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 ring-foreground/10 min-w-36 rounded-none shadow-md ring-1 duration-100; } .cn-select-content-logical { @apply data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2; } .cn-select-label { @apply px-3 py-2 text-xs uppercase tracking-wider font-semibold text-muted-foreground; } .cn-select-item { @apply focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground gap-2.5 rounded-none py-2 pr-8 pl-3 text-sm [&_svg:not([class*='size-'])]:size-3.5 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2; } .cn-select-item-aria { @apply data-focused:bg-accent data-focused:text-accent-foreground; } .cn-select-item-indicator { @apply pointer-events-none absolute right-2 flex size-4 items-center justify-center; } .cn-select-group { @apply scroll-my-1.5 p-1.5; } .cn-select-item-text { @apply flex flex-1 gap-2; } .cn-select-separator { @apply bg-border/50 -mx-1.5 my-1.5 h-px; } .cn-select-scroll-up-button { @apply bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-3.5; } .cn-select-scroll-down-button { @apply bg-popover z-10 flex cursor-default items-center justify-center py-1 [&_svg:not([class*='size-'])]:size-3.5; } .cn-select-empty-aria { @apply text-muted-foreground hidden w-full justify-center py-2 text-center text-sm group-data-empty/select-list:flex; } /* MARK: Separator */ .cn-separator { @apply bg-border shrink-0; } .cn-separator-horizontal { @apply h-px w-full; } .cn-separator-vertical { @apply h-full w-px; } /* MARK: Sheet */ .cn-sheet-overlay { @apply bg-black/20 supports-backdrop-filter:backdrop-blur-sm; } .cn-sheet-content { @apply bg-popover text-popover-foreground fixed z-50 flex flex-col bg-clip-padding text-sm shadow-md transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm; } .cn-sheet-close { @apply absolute top-4 right-4 bg-secondary; } .cn-sheet-header { @apply gap-1.5 p-8; } .cn-sheet-footer { @apply gap-2 p-8; } .cn-sheet-title { @apply text-foreground text-lg font-semibold uppercase tracking-wider; } .cn-sheet-description { @apply text-muted-foreground text-sm leading-relaxed mt-0.5; } /* MARK: Sidebar */ .cn-sidebar-gap { @apply transition-[width] duration-200 ease-linear; } .cn-sidebar-inner { @apply bg-sidebar group-data-[variant=floating]:ring-sidebar-border group-data-[variant=floating]:rounded-none group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1; } .cn-sidebar-rail { @apply hover:after:bg-sidebar-border; } .cn-sidebar-inset { @apply bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-none md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2; } .cn-sidebar-input { @apply bg-transparent border-input h-8 w-full shadow-none; } .cn-sidebar-header { @apply gap-2 p-2 [--radius:0]; } .cn-sidebar-content { @apply no-scrollbar gap-2 [--radius:0]; } .cn-sidebar-footer { @apply gap-2 p-2; } .cn-sidebar-separator { @apply bg-sidebar-border mx-2; } .cn-sidebar-group { @apply p-2; } .cn-sidebar-menu { @apply gap-0.5; } .cn-sidebar-group-content { @apply text-sm; } .cn-sidebar-group-label { @apply text-sidebar-foreground/70 ring-sidebar-ring h-8 rounded-none px-3 text-xs font-semibold uppercase tracking-wider transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-3.5; } .cn-sidebar-group-action { @apply text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 w-5 rounded-none p-0 focus-visible:ring-2 [&>svg]:size-3.5; } .cn-sidebar-menu-button { @apply ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground gap-2 rounded-none px-3 py-2 text-left text-sm transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-2 data-active:font-medium; } .cn-sidebar-menu-button-aria { @apply aria-expanded:hover:bg-sidebar-accent aria-expanded:hover:text-sidebar-accent-foreground; } .cn-sidebar-menu-button-variant-default { @apply hover:bg-sidebar-accent hover:text-sidebar-accent-foreground; } .cn-sidebar-menu-button-variant-outline { @apply bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_var(--sidebar-border)] hover:shadow-[0_0_0_1px_var(--sidebar-accent)]; } .cn-sidebar-menu-button-size-default { @apply h-9 text-sm; } .cn-sidebar-menu-button-size-sm { @apply h-8 text-xs; } .cn-sidebar-menu-button-size-lg { @apply h-14 px-3 text-sm group-data-[collapsible=icon]:p-0!; } .cn-sidebar-menu-action { @apply text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 aspect-square w-5 rounded-none p-0 peer-data-[size=default]/menu-button:top-2 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 focus-visible:ring-2 [&>svg]:size-3.5; } .cn-sidebar-menu-badge { @apply text-sidebar-foreground peer-hover/menu-button:text-sidebar-accent-foreground peer-data-active/menu-button:text-sidebar-accent-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 rounded-none px-1 text-xs font-medium peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1; } .cn-sidebar-menu-skeleton { @apply h-8 gap-2 rounded-none px-2; } .cn-sidebar-menu-skeleton-icon { @apply size-3.5 rounded-none; } .cn-sidebar-menu-skeleton-text { @apply h-4; } .cn-sidebar-menu-sub { @apply border-sidebar-border mx-3.5 translate-x-px gap-1 border-l px-2.5 py-0.5 group-data-[collapsible=icon]:hidden; } .cn-sidebar-menu-sub-button { @apply text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:text-sidebar-accent-foreground h-7 gap-2 rounded-none px-3 focus-visible:ring-2 data-[size=md]:text-sm data-[size=sm]:text-xs [&>svg]:size-3.5; } /* MARK: Skeleton */ .cn-skeleton { @apply bg-muted; } /* MARK: Slider */ .cn-slider { @apply data-vertical:min-h-40; } .cn-slider-track { @apply bg-input/50 data-horizontal:h-0.5 data-horizontal:w-full data-vertical:h-full data-vertical:w-0.5; } .cn-slider-range { @apply bg-primary; } .cn-slider-thumb { @apply size-3 border-none bg-primary transition-colors hover:ring-2 hover:ring-ring/30 focus-visible:ring-2 focus-visible:ring-ring/30 focus-visible:outline-hidden; } /* MARK: Toast */ .cn-toast { @apply rounded-none!; } /* MARK: Switch */ .cn-switch { @apply data-checked:bg-primary data-unchecked:bg-input data-checked:border-primary border data-unchecked:border-input/50 focus-visible:border-ring focus-visible:ring-ring/30 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 shrink-0 rounded-none focus-visible:ring-2 aria-invalid:ring-2 group-has-[:focus-visible]/field-label:ring-0 group-has-[:focus-visible]/field-label:data-unchecked:border-input/50 group-has-[:focus-visible]/field-label:data-checked:border-primary data-[size=default]:h-4.5 data-[size=default]:w-8.25 data-[size=sm]:h-3.5 data-[size=sm]:w-6.25; } .cn-switch-aria { @apply data-selected:bg-primary not-data-selected:bg-input data-selected:border-primary not-data-selected:border-input/50 data-focus-visible:border-ring data-focus-visible:ring-ring/30 data-focus-visible:ring-2 data-invalid:ring-destructive/20 dark:data-invalid:ring-destructive/40 data-invalid:border-destructive dark:data-invalid:border-destructive/50 data-invalid:ring-2; } .cn-switch-thumb { @apply bg-background dark:data-unchecked:bg-foreground dark:data-checked:bg-primary-foreground group-data-[size=default]/switch:size-3.5 group-data-[size=sm]/switch:size-2.5 data-checked:translate-x-[calc(100%+2px)] data-unchecked:translate-x-0.25; } .cn-switch-thumb-aria { @apply dark:not-data-selected:bg-foreground dark:data-selected:bg-primary-foreground data-selected:translate-x-[calc(100%+2px)] not-data-selected:translate-x-0.25; } /* MARK: Table */ .cn-table-container { @apply relative w-full overflow-x-auto; } .cn-table { @apply w-full caption-bottom text-sm; } .cn-table-header { @apply [&_tr]:border-b; } .cn-table-body { @apply [&_tr:last-child]:border-0; } .cn-table-footer { @apply bg-muted/50 border-t font-medium [&>tr]:last:border-b-0; } .cn-table-row { @apply hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors; } .cn-table-row-aria { @apply data-selected:bg-muted; } .cn-table-head { @apply text-muted-foreground h-12 px-3 text-left align-middle text-xs font-medium uppercase tracking-wider whitespace-nowrap [&:has([role=checkbox])]:pr-0; } .cn-table-head-aria { @apply [&:has([data-slot=checkbox])]:pr-0; } .cn-table-cell { @apply p-3 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0; } .cn-table-cell-aria { @apply [&:has([data-slot=checkbox])]:pr-0; } .cn-table-caption { @apply text-muted-foreground mt-4 text-sm; } /* MARK: Tabs */ .cn-tabs { @apply gap-2; } .cn-tabs-list { @apply p-1 group-data-horizontal/tabs:h-10; } .cn-tabs-trigger { @apply gap-2 border border-transparent px-4 py-1.5 text-xs font-semibold group-data-vertical/tabs:px-4 group-data-vertical/tabs:py-2 [&_svg:not([class*='size-'])]:size-3.5 has-data-[icon=inline-end]:pr-2.5 has-data-[icon=inline-start]:pl-2.5 uppercase tracking-wider; } .cn-tabs-content { @apply text-sm; } /* MARK: Textarea */ .cn-textarea { @apply border-transparent border-b-input bg-transparent focus-visible:border-b-ring aria-invalid:border-b-destructive dark:aria-invalid:border-b-destructive/50 resize-none rounded-none border px-0 py-3 text-base transition-[color,border-color] md:text-sm; } /* MARK: Toggle */ .cn-toggle { @apply hover:text-foreground aria-pressed:bg-muted focus-visible:border-ring focus-visible:ring-ring/30 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive gap-1.5 rounded-none text-xs font-semibold uppercase tracking-widest transition-colors [&_svg:not([class*='size-'])]:size-3.5; } .cn-toggle-aria { @apply data-selected:bg-muted; } .cn-toggle-variant-default { @apply bg-transparent; } .cn-toggle-variant-outline { @apply border-input hover:bg-muted border bg-transparent; } .cn-toggle-size-default { @apply h-10 min-w-10 px-6 has-data-[icon=inline-end]:pr-4 has-data-[icon=inline-start]:pl-4; } .cn-toggle-size-sm { @apply h-9 min-w-9 px-4 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3; } .cn-toggle-size-lg { @apply h-11 min-w-11 px-8 has-data-[icon=inline-end]:pr-5 has-data-[icon=inline-start]:pl-5; } /* MARK: Toggle Group */ .cn-toggle-group { @apply data-[spacing=0]:data-[variant=outline]:rounded-none; } .cn-toggle-group-item { @apply data-[state=on]:bg-muted data-[state=on]:text-foreground group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-6 group-data-[spacing=0]/toggle-group:shadow-none group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-none group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-none group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-none group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-none group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pr-4 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:pl-4; } /* MARK: Tooltip */ .cn-tooltip-content { @apply data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 inline-flex items-center gap-1.5 rounded-none px-3 py-1.5 text-xs has-data-[slot=kbd]:pr-1.5 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-none; } .cn-tooltip-content-logical { @apply data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2; } .cn-tooltip-arrow { @apply size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-none; } .cn-tooltip-arrow-logical { @apply data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:translate-x-[1.5px] data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:translate-x-[-1.5px] data-[side=inline-start]:-translate-y-1/2; } /* MARK: Input Group */ .cn-input-group { @apply border-transparent border-b-input bg-transparent has-[[data-slot=input-group-control]:focus-visible]:border-b-ring has-[[data-slot][aria-invalid=true]]:border-b-destructive dark:has-[[data-slot][aria-invalid=true]]:border-b-destructive/50 h-10 rounded-none border transition-[color,border-color] in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-data-[align=block-end]:rounded-none has-data-[align=block-start]:rounded-none has-[textarea]:rounded-none has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3; } .cn-input-group-addon { @apply text-muted-foreground **:data-[slot=kbd]:bg-muted-foreground/10 h-auto gap-2 py-2 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 **:data-[slot=kbd]:rounded-none **:data-[slot=kbd]:px-1.5 [&>svg:not([class*='size-'])]:size-3.5; } /* .cn-input-group-addon-align-inline-start { @apply has-[>button]:-ml-1 has-[>kbd]:-ml-1; } .cn-input-group-addon-align-inline-end { @apply has-[>button]:-mr-1 has-[>kbd]:-mr-1; } */ .cn-input-group-addon-align-block-start { @apply pt-3 group-has-[>input]/input-group:pt-3.5 [.border-b]:pb-3.5; } .cn-input-group-addon-align-block-end { @apply pb-3 group-has-[>input]/input-group:pb-3.5 [.border-t]:pt-3.5; } .cn-input-group-button { @apply gap-2 rounded-none text-sm ; } .cn-input-group-button-size-xs { @apply h-6 gap-1 rounded-none px-1.5 [&>svg:not([class*='size-'])]:size-3.5 text-xs; } .cn-input-group-button-size-icon-xs { @apply size-6 p-0 has-[>svg]:p-0 text-xs; } .cn-input-group-button-size-icon-sm { @apply size-8 p-0 has-[>svg]:p-0; } .cn-input-group-text { @apply text-muted-foreground gap-2 text-sm [&_svg:not([class*='size-'])]:size-3.5; } .cn-input-group-input { @apply border-0 bg-transparent ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent group-has-[>[data-align=inline-start]]/input-group:pl-2 group-has-[>[data-align=inline-end]]/input-group:pr-2; } .cn-input-group-textarea { @apply border-0 bg-transparent py-2.5 ring-0 focus-visible:ring-0 aria-invalid:ring-0 dark:bg-transparent; } /* MARK: Menu Translucent */ .cn-menu-translucent { @apply animate-none! relative bg-popover/70 before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 **:data-[slot$=-item]:focus:bg-foreground/10 **:data-[slot$=-item]:data-highlighted:bg-foreground/10 **:data-[slot$=-separator]:bg-foreground/5 **:data-[slot$=-trigger]:focus:bg-foreground/10 **:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! **:data-[variant=destructive]:focus:bg-foreground/10! **:data-[variant=destructive]:text-accent-foreground! **:data-[variant=destructive]:**:text-accent-foreground!; } .cn-menu-translucent-aria { @apply **:data-[slot$=-item]:data-focused:bg-foreground/10; } /* MARK: Bubble */ .cn-bubble { @apply gap-1 data-[align=end]:self-end max-w-[80%] data-[variant=ghost]:max-w-full group-data-[align=end]/message:self-end; } .cn-bubble-content { @apply rounded-none border border-transparent px-4 py-3 text-sm leading-relaxed [button,a]:outline-none [button,a]:focus-visible:border-ring [button,a]:focus-visible:ring-2 [button,a]:focus-visible:ring-ring/30 group-data-[align=end]/bubble:self-end; } .cn-bubble-variant-default { @apply *:data-[slot=bubble-content]:bg-primary *:data-[slot=bubble-content]:text-primary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-primary/80; } .cn-bubble-variant-secondary { @apply *:data-[slot=bubble-content]:bg-secondary *:data-[slot=bubble-content]:text-secondary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)]; } .cn-bubble-variant-muted { @apply *:data-[slot=bubble-content]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--muted),var(--foreground)_5%)]; } .cn-bubble-variant-tinted { @apply *:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.93_calc(c*0.4)_h)] dark:*:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.3_calc(c*0.4)_h)] *:data-[slot=bubble-content]:text-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.88_calc(c*0.5)_h)] dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.35_calc(c*0.5)_h)]; } .cn-bubble-variant-outline { @apply *:data-[slot=bubble-content]:bg-background *:data-[slot=bubble-content]:border-border [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-input/30; } .cn-bubble-variant-ghost { @apply *:data-[slot=bubble-content]:rounded-none *:data-[slot=bubble-content]:bg-transparent *:data-[slot=bubble-content]:p-0 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted/50 border-none; } .cn-bubble-variant-destructive { @apply *:data-[slot=bubble-content]:bg-destructive/10 dark:*:data-[slot=bubble-content]:bg-destructive/20 *:data-[slot=bubble-content]:text-destructive [&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/20 dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/30; } .cn-bubble-reactions { @apply rounded-none ring-3 ring-card bg-muted shrink-0 gap-1 px-2 py-0.5 has-[button]:p-0 text-sm; } .cn-bubble-reactions-side-top { @apply top-0 -translate-y-3/4; } .cn-bubble-reactions-side-bottom { @apply bottom-0 translate-y-3/4; } .cn-bubble-reactions-align-start { @apply left-3; } .cn-bubble-reactions-align-end { @apply right-3; } .cn-bubble-group { @apply gap-2; } /* MARK: Attachment */ .cn-attachment { @apply rounded-none w-fit focus-within:ring-1 focus-within:ring-ring/30; } .cn-attachment-orientation-horizontal { @apply min-w-40; } .cn-attachment-orientation-vertical { @apply w-24 has-data-[slot=attachment-content]:w-30; } .cn-attachment-size-default { @apply gap-2 has-data-[slot=attachment-content]:px-3 has-data-[slot=attachment-content]:py-2.5 has-data-[slot=attachment-media]:p-2.5 text-sm; } .cn-attachment-size-sm { @apply gap-2.5 has-data-[slot=attachment-content]:px-2.5 has-data-[slot=attachment-content]:py-2 has-data-[slot=attachment-media]:p-2 text-xs; } .cn-attachment-size-xs { @apply gap-1.5 has-data-[slot=attachment-content]:px-2 has-data-[slot=attachment-content]:py-1.5 has-data-[slot=attachment-media]:p-1.5 text-xs rounded-none; } .cn-attachment-media { @apply bg-muted text-foreground w-10 rounded-none group-data-[size=sm]/attachment:w-8 group-data-[size=xs]/attachment:w-7 group-data-[size=xs]/attachment:rounded-none [&_svg:not([class*='size-'])]:size-4 group-data-[size=xs]/attachment:[&_svg:not([class*='size-'])]:size-3.5 group-data-[orientation=vertical]/attachment:w-full group-data-[orientation=vertical]/attachment:[&_svg:not([class*='size-'])]:size-6 group-data-[orientation=vertical]/attachment:*:data-[slot=spinner]:size-6!; } .cn-attachment-media-variant-image { @apply opacity-60 group-data-[state=idle]/attachment:opacity-100 group-data-[state=done]/attachment:opacity-100; } .cn-attachment-content { @apply leading-tight group-data-[orientation=vertical]/attachment:px-1; } .cn-attachment-title { @apply font-medium; } .cn-attachment-description { @apply mt-0.5 text-xs; } .cn-attachment-actions { @apply group-data-[orientation=vertical]/attachment:absolute group-data-[orientation=vertical]/attachment:top-3 group-data-[orientation=vertical]/attachment:right-3 relative z-20 group-data-[orientation=vertical]/attachment:gap-1; } .cn-attachment-group { @apply gap-3 scroll-px-1 py-1; } .cn-attachment-trigger { @apply absolute inset-0 z-10 outline-none; } /* MARK: Marker */ .cn-marker { @apply gap-2 text-xs text-muted-foreground [a]:hover:text-foreground [a]:underline-offset-3 [a]:underline [&_svg:not([class*='size-'])]:size-4 min-h-4 text-left uppercase tracking-wide; } .cn-marker-variant-separator { @apply before:h-px before:min-w-0 before:flex-1 before:bg-border after:h-px after:min-w-0 after:flex-1 after:bg-border before:mr-1 after:ml-1; } .cn-marker-variant-border { @apply border-b border-border pb-2; } .cn-marker-icon { @apply size-4 [&_svg:not([class*='size-'])]:size-4; } .cn-marker-content { @apply group-data-[variant=separator]/marker:flex-none group-data-[variant=separator]/marker:text-center *:[a]:hover:text-foreground *:[a]:underline *:[a]:underline-offset-3; } /* MARK: Questionnaire */ .cn-questionnaire { @apply gap-6; } .cn-questionnaire-progress { @apply text-xs uppercase tracking-wide; } .cn-questionnaire-item { @apply flex flex-col gap-5; } .cn-questionnaire-title { @apply text-xs font-semibold uppercase tracking-wide [&:not(:has(~[data-slot=questionnaire-description]))]:mb-5; } .cn-questionnaire-description { @apply text-sm normal-case tracking-normal; } .cn-questionnaire-choices { @apply gap-3; } .cn-questionnaire-choice { @apply hover:bg-muted/50 data-checked:bg-primary/5 data-checked:border-primary/30 dark:data-checked:border-primary/20 dark:data-checked:bg-primary/10 data-invalid:border-destructive has-[>input:focus-visible]:ring-ring/30 gap-3 rounded-none border border-input bg-transparent px-4 py-4 text-sm has-[>input:focus-visible]:ring-2; } .cn-questionnaire-choice-indicator { @apply border-input group-data-checked/questionnaire-choice:border-foreground group-data-[type=checkbox]/questionnaire-choice:group-data-checked/questionnaire-choice:bg-primary group-data-[type=checkbox]/questionnaire-choice:group-data-checked/questionnaire-choice:text-primary-foreground group-data-[type=checkbox]/questionnaire-choice:group-data-checked/questionnaire-choice:border-primary size-4.5 translate-y-[--spacing(0.45)] group-has-data-[slot=questionnaire-choice-description]/questionnaire-choice:translate-y-0.5; } .cn-questionnaire-choice-indicator-dot { @apply bg-foreground size-2; } .cn-questionnaire-choice-indicator-check { @apply size-3.5; } .cn-questionnaire-choice-content { @apply gap-1; } .cn-questionnaire-choice-description { @apply text-muted-foreground; } .cn-questionnaire-shortcut { @apply border-input bg-background text-muted-foreground size-5 translate-y-[--spacing(0.45)] group-has-data-[slot=questionnaire-choice-description]/questionnaire-choice:translate-y-0.5 items-center justify-center rounded-none border font-mono text-[0.625rem] font-medium leading-none; } .cn-questionnaire-input-wrapper { @apply w-full; } .cn-questionnaire-input { @apply border-transparent border-b-input bg-transparent focus-visible:border-b-ring aria-invalid:border-b-destructive dark:aria-invalid:border-b-destructive/50 h-10 border px-0 py-1 text-base md:text-sm; } .cn-questionnaire-error { @apply mt-2 text-sm; } .cn-questionnaire-actions { @apply gap-2 sm:min-h-10; } /* MARK: Message Scroller */ .cn-message-scroller-content { @apply gap-8; } /* MARK: Message */ .cn-message { @apply text-sm gap-2; } .cn-message-avatar { @apply min-w-8 group-has-data-[slot=message-footer]/message:-translate-y-8; } .cn-message-content { @apply gap-2.5 group-data-[align=end]/message:*:data-slot:self-end; } .cn-message-header { @apply text-xs font-medium text-muted-foreground px-4 group-has-data-[variant=ghost]/message:px-0 uppercase tracking-wide; } .cn-message-footer { @apply text-xs font-medium text-muted-foreground px-4 group-has-data-[variant=ghost]/message:px-0 uppercase tracking-wide; } .cn-message-group { @apply gap-2; } /* MARK: React Aria */ .cn-alert-dialog-overlay-aria { @apply data-entering:animate-in data-exiting:animate-out data-exiting:fade-out-0 data-entering:fade-in-0 bg-black/20 duration-100 supports-backdrop-filter:backdrop-blur-sm; } .cn-alert-dialog-content-aria { @apply data-entering:animate-in data-exiting:animate-out data-exiting:fade-out-0 data-entering:fade-in-0 data-exiting:zoom-out-95 data-entering:zoom-in-95 bg-popover text-popover-foreground ring-foreground/10 gap-6 rounded-none p-6 shadow-md ring-1 duration-100 data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-md; } .cn-combobox-content-aria { @apply bg-popover text-popover-foreground data-entering:animate-in data-exiting:animate-out data-exiting:fade-out-0 data-entering:fade-in-0 data-exiting:zoom-out-95 data-entering:zoom-in-95 data-[placement=bottom]:slide-in-from-top-2 data-[placement=left]:slide-in-from-right-2 data-[placement=right]:slide-in-from-left-2 data-[placement=top]:slide-in-from-bottom-2 ring-foreground/10 *:data-[slot=input-group]:bg-transparent *:data-[slot=input-group]:border-b-input max-h-72 min-w-36 overflow-hidden rounded-none shadow-md ring-1 duration-100 *:data-[slot=input-group]:m-1.5 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-transparent *:data-[slot=input-group]:focus-within:border-transparent *:data-[slot=input-group]:px-2.5; } .cn-context-menu-content-aria { @apply data-entering:animate-in data-exiting:animate-out data-exiting:fade-out-0 data-entering:fade-in-0 data-exiting:zoom-out-95 data-entering:zoom-in-95 data-[placement=bottom]:slide-in-from-top-2 data-[placement=left]:slide-in-from-right-2 data-[placement=right]:slide-in-from-left-2 data-[placement=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-48 rounded-none p-1.5 shadow-md ring-1 duration-100; } .cn-dialog-overlay-aria { @apply data-entering:animate-in data-exiting:animate-out data-exiting:fade-out-0 data-entering:fade-in-0 bg-black/20 duration-100 supports-backdrop-filter:backdrop-blur-sm; } .cn-dialog-content-aria { @apply bg-popover text-popover-foreground data-entering:animate-in data-exiting:animate-out data-exiting:fade-out-0 data-entering:fade-in-0 data-exiting:zoom-out-95 data-entering:zoom-in-95 ring-foreground/10 grid max-w-[calc(100%-2rem)] gap-6 rounded-none p-6 text-sm shadow-md ring-1 duration-100 sm:max-w-md; } .cn-dropdown-menu-content-aria { @apply data-entering:animate-in data-exiting:animate-out data-exiting:fade-out-0 data-entering:fade-in-0 data-exiting:zoom-out-95 data-entering:zoom-in-95 data-[placement=bottom]:slide-in-from-top-2 data-[placement=left]:slide-in-from-right-2 data-[placement=right]:slide-in-from-left-2 data-[placement=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground min-w-48 rounded-none p-1.5 shadow-md ring-1 duration-100; } .cn-popover-content-aria { @apply bg-popover text-popover-foreground data-entering:animate-in data-exiting:animate-out data-exiting:fade-out-0 data-entering:fade-in-0 data-exiting:zoom-out-95 data-entering:zoom-in-95 data-[placement=bottom]:slide-in-from-top-2 data-[placement=left]:slide-in-from-right-2 data-[placement=right]:slide-in-from-left-2 data-[placement=top]:slide-in-from-bottom-2 ring-foreground/10 flex flex-col gap-4 rounded-none p-4 text-sm shadow-md ring-1 duration-100; } .cn-hover-card-content-aria { @apply data-entering:animate-in data-exiting:animate-out data-exiting:fade-out-0 data-entering:fade-in-0 data-exiting:zoom-out-95 data-entering:zoom-in-95 data-[placement=bottom]:slide-in-from-top-2 data-[placement=left]:slide-in-from-right-2 data-[placement=right]:slide-in-from-left-2 data-[placement=top]:slide-in-from-bottom-2 ring-foreground/10 bg-popover text-popover-foreground w-72 p-4 text-sm shadow-md ring-1 duration-100; } .cn-select-content-aria { @apply bg-popover text-popover-foreground data-entering:animate-in data-exiting:animate-out data-exiting:fade-out-0 data-entering:fade-in-0 data-exiting:zoom-out-95 data-entering:zoom-in-95 data-[placement=bottom]:slide-in-from-top-2 data-[placement=left]:slide-in-from-right-2 data-[placement=right]:slide-in-from-left-2 data-[placement=top]:slide-in-from-bottom-2 ring-foreground/10 min-w-36 rounded-none shadow-md ring-1 duration-100; } .cn-tooltip-content-aria { @apply data-entering:animate-in data-entering:fade-in-0 data-entering:zoom-in-95 data-exiting:animate-out data-exiting:fade-out-0 data-exiting:zoom-out-95 data-[placement=bottom]:slide-in-from-top-2 data-[placement=left]:slide-in-from-right-2 data-[placement=right]:slide-in-from-left-2 data-[placement=top]:slide-in-from-bottom-2 inline-flex items-center gap-1.5 rounded-none px-3 py-1.5 text-xs has-data-[slot=kbd]:pr-1.5 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-none; } .cn-context-menu-sub-content-aria { @apply ring-foreground/10 bg-popover text-popover-foreground min-w-32 rounded-none p-1.5 shadow-md ring-1 duration-100; } .cn-dropdown-menu-sub-content-aria { @apply ring-foreground/10 bg-popover text-popover-foreground min-w-36 rounded-none p-1.5 shadow-md ring-1 duration-100; } }