@dalexto/lexsys-registry 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +98 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.js +2164 -0
- package/dist/install-layer.d.ts +4 -0
- package/dist/items/accordion.d.ts +7 -0
- package/dist/items/alert-dialog.d.ts +7 -0
- package/dist/items/alert.d.ts +7 -0
- package/dist/items/auth-form.d.ts +7 -0
- package/dist/items/autocomplete.d.ts +7 -0
- package/dist/items/avatar.d.ts +7 -0
- package/dist/items/badge.d.ts +7 -0
- package/dist/items/button.d.ts +7 -0
- package/dist/items/card.d.ts +7 -0
- package/dist/items/checkbox-group.d.ts +7 -0
- package/dist/items/checkbox.d.ts +7 -0
- package/dist/items/collapsible.d.ts +7 -0
- package/dist/items/combobox.d.ts +7 -0
- package/dist/items/command-palette.d.ts +7 -0
- package/dist/items/context-menu.d.ts +7 -0
- package/dist/items/dashboard-shell.d.ts +7 -0
- package/dist/items/dialog.d.ts +7 -0
- package/dist/items/drawer.d.ts +7 -0
- package/dist/items/field.d.ts +7 -0
- package/dist/items/fieldset.d.ts +7 -0
- package/dist/items/form-field.d.ts +7 -0
- package/dist/items/form.d.ts +7 -0
- package/dist/items/index.d.ts +49 -0
- package/dist/items/input.d.ts +7 -0
- package/dist/items/menu.d.ts +7 -0
- package/dist/items/menubar.d.ts +7 -0
- package/dist/items/meter.d.ts +7 -0
- package/dist/items/navigation-menu.d.ts +7 -0
- package/dist/items/number-field.d.ts +7 -0
- package/dist/items/otp-field.d.ts +7 -0
- package/dist/items/popover.d.ts +7 -0
- package/dist/items/preview-card.d.ts +7 -0
- package/dist/items/progress.d.ts +7 -0
- package/dist/items/radio-group.d.ts +7 -0
- package/dist/items/scroll-area.d.ts +7 -0
- package/dist/items/select.d.ts +7 -0
- package/dist/items/separator.d.ts +7 -0
- package/dist/items/settings-panel.d.ts +7 -0
- package/dist/items/sidebar.d.ts +7 -0
- package/dist/items/slider.d.ts +7 -0
- package/dist/items/switch.d.ts +7 -0
- package/dist/items/tabs.d.ts +7 -0
- package/dist/items/textarea.d.ts +7 -0
- package/dist/items/toast.d.ts +7 -0
- package/dist/items/toggle-group.d.ts +7 -0
- package/dist/items/toggle.d.ts +7 -0
- package/dist/items/toolbar.d.ts +7 -0
- package/dist/items/tooltip.d.ts +7 -0
- package/dist/registry.types.d.ts +40 -0
- package/dist/styles/theme.d.ts +2 -0
- package/dist/utilities/cn.d.ts +2 -0
- package/dist/validate-registry-composition.d.ts +2 -0
- package/dist/validate-registry-item.d.ts +2 -0
- package/dist/validate-registry-template-imports.d.ts +4 -0
- package/dist/validate-registry.d.ts +9 -0
- package/package.json +52 -0
- package/templates/blocks/AuthForm/AuthForm.tsx +109 -0
- package/templates/blocks/AuthForm/AuthForm.types.ts +34 -0
- package/templates/blocks/AuthForm/AuthForm.variants.ts +11 -0
- package/templates/blocks/CommandPalette/CommandPalette.tsx +245 -0
- package/templates/blocks/CommandPalette/CommandPalette.types.ts +73 -0
- package/templates/blocks/CommandPalette/CommandPalette.variants.ts +26 -0
- package/templates/blocks/FormField/FormField.tsx +83 -0
- package/templates/blocks/FormField/FormField.types.ts +26 -0
- package/templates/blocks/FormField/FormField.variants.ts +9 -0
- package/templates/blocks/SettingsPanel/SettingsPanel.tsx +104 -0
- package/templates/blocks/SettingsPanel/SettingsPanel.types.ts +31 -0
- package/templates/blocks/SettingsPanel/SettingsPanel.variants.ts +9 -0
- package/templates/blocks/Sidebar/Sidebar.tsx +414 -0
- package/templates/blocks/Sidebar/Sidebar.types.ts +99 -0
- package/templates/blocks/Sidebar/Sidebar.variants.ts +84 -0
- package/templates/primitives/Accordion/Accordion.tsx +102 -0
- package/templates/primitives/Accordion/Accordion.types.ts +20 -0
- package/templates/primitives/Accordion/Accordion.variants.ts +32 -0
- package/templates/primitives/Alert/Alert.tsx +62 -0
- package/templates/primitives/Alert/Alert.types.ts +35 -0
- package/templates/primitives/Alert/Alert.variants.ts +41 -0
- package/templates/primitives/AlertDialog/AlertDialog.tsx +168 -0
- package/templates/primitives/AlertDialog/AlertDialog.types.ts +30 -0
- package/templates/primitives/AlertDialog/AlertDialog.variants.ts +57 -0
- package/templates/primitives/Autocomplete/Autocomplete.tsx +394 -0
- package/templates/primitives/Autocomplete/Autocomplete.types.ts +82 -0
- package/templates/primitives/Autocomplete/Autocomplete.variants.ts +154 -0
- package/templates/primitives/Avatar/Avatar.tsx +56 -0
- package/templates/primitives/Avatar/Avatar.types.ts +31 -0
- package/templates/primitives/Avatar/Avatar.variants.ts +40 -0
- package/templates/primitives/Badge/Badge.tsx +30 -0
- package/templates/primitives/Badge/Badge.types.ts +30 -0
- package/templates/primitives/Badge/Badge.variants.ts +81 -0
- package/templates/primitives/Button/Button.tsx +53 -0
- package/templates/primitives/Button/Button.types.ts +25 -0
- package/templates/primitives/Button/Button.variants.ts +69 -0
- package/templates/primitives/Card/Card.tsx +85 -0
- package/templates/primitives/Card/Card.types.ts +54 -0
- package/templates/primitives/Card/Card.variants.ts +46 -0
- package/templates/primitives/Checkbox/Checkbox.tsx +72 -0
- package/templates/primitives/Checkbox/Checkbox.types.ts +28 -0
- package/templates/primitives/Checkbox/Checkbox.variants.ts +39 -0
- package/templates/primitives/CheckboxGroup/CheckboxGroup.tsx +32 -0
- package/templates/primitives/CheckboxGroup/CheckboxGroup.types.ts +17 -0
- package/templates/primitives/CheckboxGroup/CheckboxGroup.variants.ts +25 -0
- package/templates/primitives/Collapsible/Collapsible.tsx +74 -0
- package/templates/primitives/Collapsible/Collapsible.types.ts +28 -0
- package/templates/primitives/Collapsible/Collapsible.variants.ts +44 -0
- package/templates/primitives/Combobox/Combobox.tsx +450 -0
- package/templates/primitives/Combobox/Combobox.types.ts +99 -0
- package/templates/primitives/Combobox/Combobox.variants.ts +180 -0
- package/templates/primitives/ContextMenu/ContextMenu.tsx +375 -0
- package/templates/primitives/ContextMenu/ContextMenu.types.ts +57 -0
- package/templates/primitives/ContextMenu/ContextMenu.variants.ts +39 -0
- package/templates/primitives/Dialog/Dialog.tsx +148 -0
- package/templates/primitives/Dialog/Dialog.types.ts +29 -0
- package/templates/primitives/Dialog/Dialog.variants.ts +56 -0
- package/templates/primitives/Drawer/Drawer.tsx +266 -0
- package/templates/primitives/Drawer/Drawer.types.ts +77 -0
- package/templates/primitives/Drawer/Drawer.variants.ts +175 -0
- package/templates/primitives/Field/Field.tsx +132 -0
- package/templates/primitives/Field/Field.types.ts +43 -0
- package/templates/primitives/Field/Field.variants.ts +77 -0
- package/templates/primitives/Fieldset/Fieldset.tsx +36 -0
- package/templates/primitives/Fieldset/Fieldset.types.ts +26 -0
- package/templates/primitives/Fieldset/Fieldset.variants.ts +37 -0
- package/templates/primitives/Form/Form.tsx +24 -0
- package/templates/primitives/Form/Form.types.ts +13 -0
- package/templates/primitives/Form/Form.variants.ts +11 -0
- package/templates/primitives/Input/Input.tsx +36 -0
- package/templates/primitives/Input/Input.types.ts +27 -0
- package/templates/primitives/Input/Input.variants.ts +41 -0
- package/templates/primitives/Menu/Menu.tsx +352 -0
- package/templates/primitives/Menu/Menu.types.ts +56 -0
- package/templates/primitives/Menu/Menu.variants.ts +73 -0
- package/templates/primitives/Menubar/Menubar.tsx +25 -0
- package/templates/primitives/Menubar/Menubar.types.ts +12 -0
- package/templates/primitives/Menubar/Menubar.variants.ts +22 -0
- package/templates/primitives/Meter/Meter.tsx +123 -0
- package/templates/primitives/Meter/Meter.types.ts +45 -0
- package/templates/primitives/Meter/Meter.variants.ts +47 -0
- package/templates/primitives/NavigationMenu/NavigationMenu.tsx +256 -0
- package/templates/primitives/NavigationMenu/NavigationMenu.types.ts +58 -0
- package/templates/primitives/NavigationMenu/NavigationMenu.variants.ts +40 -0
- package/templates/primitives/NumberField/NumberField.tsx +168 -0
- package/templates/primitives/NumberField/NumberField.types.ts +51 -0
- package/templates/primitives/NumberField/NumberField.variants.ts +92 -0
- package/templates/primitives/OtpField/OtpField.tsx +65 -0
- package/templates/primitives/OtpField/OtpField.types.ts +29 -0
- package/templates/primitives/OtpField/OtpField.variants.ts +45 -0
- package/templates/primitives/Popover/Popover.tsx +193 -0
- package/templates/primitives/Popover/Popover.types.ts +35 -0
- package/templates/primitives/Popover/Popover.variants.ts +68 -0
- package/templates/primitives/PreviewCard/PreviewCard.tsx +153 -0
- package/templates/primitives/PreviewCard/PreviewCard.types.ts +42 -0
- package/templates/primitives/PreviewCard/PreviewCard.variants.ts +24 -0
- package/templates/primitives/Progress/Progress.tsx +95 -0
- package/templates/primitives/Progress/Progress.types.ts +39 -0
- package/templates/primitives/Progress/Progress.variants.ts +39 -0
- package/templates/primitives/RadioGroup/RadioGroup.tsx +66 -0
- package/templates/primitives/RadioGroup/RadioGroup.types.ts +34 -0
- package/templates/primitives/RadioGroup/RadioGroup.variants.ts +59 -0
- package/templates/primitives/ScrollArea/ScrollArea.tsx +135 -0
- package/templates/primitives/ScrollArea/ScrollArea.types.ts +34 -0
- package/templates/primitives/ScrollArea/ScrollArea.variants.ts +38 -0
- package/templates/primitives/Select/Select.tsx +319 -0
- package/templates/primitives/Select/Select.types.ts +74 -0
- package/templates/primitives/Select/Select.variants.ts +94 -0
- package/templates/primitives/Separator/Separator.tsx +30 -0
- package/templates/primitives/Separator/Separator.types.ts +13 -0
- package/templates/primitives/Separator/Separator.variants.ts +19 -0
- package/templates/primitives/Slider/Slider.tsx +124 -0
- package/templates/primitives/Slider/Slider.types.ts +51 -0
- package/templates/primitives/Slider/Slider.variants.ts +38 -0
- package/templates/primitives/Switch/Switch.tsx +61 -0
- package/templates/primitives/Switch/Switch.types.ts +29 -0
- package/templates/primitives/Switch/Switch.variants.ts +48 -0
- package/templates/primitives/Tabs/Tabs.tsx +70 -0
- package/templates/primitives/Tabs/Tabs.types.ts +23 -0
- package/templates/primitives/Tabs/Tabs.variants.ts +29 -0
- package/templates/primitives/Textarea/Textarea.tsx +42 -0
- package/templates/primitives/Textarea/Textarea.types.ts +31 -0
- package/templates/primitives/Textarea/Textarea.variants.ts +46 -0
- package/templates/primitives/Toast/Toast.tsx +195 -0
- package/templates/primitives/Toast/Toast.types.ts +52 -0
- package/templates/primitives/Toast/Toast.variants.ts +88 -0
- package/templates/primitives/Toggle/Toggle.tsx +24 -0
- package/templates/primitives/Toggle/Toggle.types.ts +19 -0
- package/templates/primitives/Toggle/Toggle.variants.ts +32 -0
- package/templates/primitives/ToggleGroup/ToggleGroup.tsx +34 -0
- package/templates/primitives/ToggleGroup/ToggleGroup.types.ts +19 -0
- package/templates/primitives/ToggleGroup/ToggleGroup.variants.ts +32 -0
- package/templates/primitives/Toolbar/Toolbar.tsx +118 -0
- package/templates/primitives/Toolbar/Toolbar.types.ts +32 -0
- package/templates/primitives/Toolbar/Toolbar.variants.ts +84 -0
- package/templates/primitives/Tooltip/Tooltip.tsx +98 -0
- package/templates/primitives/Tooltip/Tooltip.types.ts +22 -0
- package/templates/primitives/Tooltip/Tooltip.variants.ts +24 -0
- package/templates/shared/utils/cn.ts +46 -0
- package/templates/styles/theme.css +311 -0
- package/templates/styles/tokens.css +1445 -0
- package/templates/templates/DashboardShell/DashboardShell.tsx +124 -0
- package/templates/templates/DashboardShell/DashboardShell.types.ts +37 -0
- package/templates/templates/DashboardShell/DashboardShell.variants.ts +25 -0
- package/templates/tsconfig.json +5 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sidebar.variants.ts
|
|
3
|
+
*
|
|
4
|
+
* Variant classes for the Sidebar block.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export const sidebarRootVariants = (): string => {
|
|
8
|
+
return "lsys-sidebar w-full shrink-0 md:h-full md:w-auto"
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const sidebarDesktopVariants = (): string => {
|
|
12
|
+
return "lsys-sidebar__desktop hidden h-full w-[var(--lsys-size-sidebar-width,16rem)] shrink-0 border-r border-[var(--lsys-border-default)] bg-[var(--lsys-color-background-subtle)] md:flex md:flex-col"
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export const sidebarMobileTriggerVariants = (): string => {
|
|
16
|
+
return "lsys-sidebar__mobile-trigger sticky top-0 z-(--lsys-z-index-local) border-b border-[var(--lsys-border-default)] bg-[var(--lsys-color-background-base)] p-[var(--lsys-space-2)] md:hidden"
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export const sidebarMobileHeaderVariants = (): string => {
|
|
20
|
+
return "lsys-sidebar__mobile-header min-w-0 flex-1"
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export const sidebarBrandVariants = (): string => {
|
|
24
|
+
return "lsys-sidebar__brand border-b border-[var(--lsys-border-default)] px-[var(--lsys-space-4)] py-[var(--lsys-space-3)]"
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export const sidebarNavVariants = (): string => {
|
|
28
|
+
return "lsys-sidebar__nav min-h-0 flex-1 p-[var(--lsys-space-2)]"
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export const sidebarNavListVariants = (): string => {
|
|
32
|
+
return "lsys-sidebar__list m-0 flex list-none flex-col gap-[var(--lsys-space-1)] p-0"
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export const sidebarNavItemVariants = (active?: boolean): string => {
|
|
36
|
+
const base = [
|
|
37
|
+
"lsys-sidebar__item",
|
|
38
|
+
"flex w-full items-center rounded-(--lsys-menu-item-radius)",
|
|
39
|
+
"px-(--lsys-menu-item-padding-x) py-(--lsys-menu-item-padding-y)",
|
|
40
|
+
"text-(length:--lsys-menu-item-font-size) font-(--lsys-menu-item-font-weight)",
|
|
41
|
+
"leading-(--lsys-menu-item-font-line-height) text-(--lsys-menu-item-foreground)",
|
|
42
|
+
"no-underline outline-none transition-colors",
|
|
43
|
+
"focus-visible:ring-(length:--lsys-menu-item-focus-ring-width) focus-visible:ring-(--lsys-menu-item-focus-ring-color)",
|
|
44
|
+
"focus-visible:ring-offset-(length:--lsys-menu-item-focus-ring-offset) focus-visible:ring-offset-(--lsys-menu-item-focus-ring-offset-color)",
|
|
45
|
+
].join(" ")
|
|
46
|
+
|
|
47
|
+
if (active) {
|
|
48
|
+
return [
|
|
49
|
+
base,
|
|
50
|
+
"lsys-sidebar__item--active",
|
|
51
|
+
"bg-(--lsys-menu-item-checked-background) text-(--lsys-menu-item-checked-foreground)",
|
|
52
|
+
"hover:bg-(--lsys-action-primary-hover) hover:text-(--lsys-menu-item-checked-foreground)",
|
|
53
|
+
].join(" ")
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return [
|
|
57
|
+
base,
|
|
58
|
+
"hover:bg-(--lsys-action-secondary-hover) hover:text-(--lsys-color-text-primary)",
|
|
59
|
+
].join(" ")
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export const sidebarMainVariants = (): string => {
|
|
63
|
+
return "lsys-sidebar__drawer-content flex h-full min-h-0 flex-col"
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export const sidebarDrawerFooterVariants = (): string => {
|
|
67
|
+
return "lsys-sidebar__drawer-footer border-t border-[var(--lsys-border-default)] p-[var(--lsys-space-2)]"
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export const sidebarFooterVariants = (): string => {
|
|
71
|
+
return "lsys-sidebar__footer border-t border-[var(--lsys-border-default)] p-[var(--lsys-space-2)]"
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
export const sidebarGroupVariants = (): string => {
|
|
75
|
+
return "lsys-sidebar__group flex flex-col gap-[var(--lsys-space-1)]"
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export const sidebarGroupLabelVariants = (): string => {
|
|
79
|
+
return "lsys-sidebar__group-label px-[var(--lsys-space-3)] py-[var(--lsys-space-1)] text-(length:--lsys-menu-group-label-font-size) font-(--lsys-menu-group-label-font-weight) leading-(--lsys-menu-group-label-font-line-height) text-(--lsys-menu-group-label-foreground)"
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export const sidebarGroupContentVariants = (): string => {
|
|
83
|
+
return "lsys-sidebar__group-content flex flex-col gap-[var(--lsys-space-1)]"
|
|
84
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Accordion.tsx
|
|
3
|
+
*
|
|
4
|
+
* Reference Accordion component implementation.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { Accordion as BaseAccordion } from "@base-ui/react/accordion"
|
|
8
|
+
import type {
|
|
9
|
+
AccordionHeaderProps,
|
|
10
|
+
AccordionItemProps,
|
|
11
|
+
AccordionPanelProps,
|
|
12
|
+
AccordionProps,
|
|
13
|
+
AccordionTriggerProps,
|
|
14
|
+
} from "./Accordion.types"
|
|
15
|
+
import {
|
|
16
|
+
accordionHeaderVariants,
|
|
17
|
+
accordionItemVariants,
|
|
18
|
+
accordionPanelVariants,
|
|
19
|
+
accordionTriggerVariants,
|
|
20
|
+
accordionVariants,
|
|
21
|
+
} from "./Accordion.variants"
|
|
22
|
+
import { mergeClassName } from "@/lib/utils"
|
|
23
|
+
|
|
24
|
+
const Accordion = ({ ref, className, ...props }: AccordionProps) => {
|
|
25
|
+
return (
|
|
26
|
+
<BaseAccordion.Root
|
|
27
|
+
ref={ref}
|
|
28
|
+
className={mergeClassName(accordionVariants(), className)}
|
|
29
|
+
{...props}
|
|
30
|
+
/>
|
|
31
|
+
)
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
Accordion.displayName = "Accordion"
|
|
35
|
+
|
|
36
|
+
const AccordionItem = ({ ref, className, ...props }: AccordionItemProps) => {
|
|
37
|
+
return (
|
|
38
|
+
<BaseAccordion.Item
|
|
39
|
+
ref={ref}
|
|
40
|
+
className={mergeClassName(accordionItemVariants(), className)}
|
|
41
|
+
{...props}
|
|
42
|
+
/>
|
|
43
|
+
)
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
AccordionItem.displayName = "AccordionItem"
|
|
47
|
+
|
|
48
|
+
const AccordionHeader = ({
|
|
49
|
+
ref,
|
|
50
|
+
className,
|
|
51
|
+
...props
|
|
52
|
+
}: AccordionHeaderProps) => {
|
|
53
|
+
return (
|
|
54
|
+
<BaseAccordion.Header
|
|
55
|
+
ref={ref}
|
|
56
|
+
className={mergeClassName(accordionHeaderVariants(), className)}
|
|
57
|
+
{...props}
|
|
58
|
+
/>
|
|
59
|
+
)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
AccordionHeader.displayName = "AccordionHeader"
|
|
63
|
+
|
|
64
|
+
const AccordionTrigger = ({
|
|
65
|
+
ref,
|
|
66
|
+
className,
|
|
67
|
+
children,
|
|
68
|
+
...props
|
|
69
|
+
}: AccordionTriggerProps) => {
|
|
70
|
+
return (
|
|
71
|
+
<BaseAccordion.Trigger
|
|
72
|
+
ref={ref}
|
|
73
|
+
className={mergeClassName(accordionTriggerVariants(), className)}
|
|
74
|
+
{...props}
|
|
75
|
+
>
|
|
76
|
+
<span>{children}</span>
|
|
77
|
+
<span aria-hidden="true">+</span>
|
|
78
|
+
</BaseAccordion.Trigger>
|
|
79
|
+
)
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
AccordionTrigger.displayName = "AccordionTrigger"
|
|
83
|
+
|
|
84
|
+
const AccordionPanel = ({ ref, className, ...props }: AccordionPanelProps) => {
|
|
85
|
+
return (
|
|
86
|
+
<BaseAccordion.Panel
|
|
87
|
+
ref={ref}
|
|
88
|
+
className={mergeClassName(accordionPanelVariants(), className)}
|
|
89
|
+
{...props}
|
|
90
|
+
/>
|
|
91
|
+
)
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
AccordionPanel.displayName = "AccordionPanel"
|
|
95
|
+
|
|
96
|
+
export {
|
|
97
|
+
Accordion,
|
|
98
|
+
AccordionItem,
|
|
99
|
+
AccordionHeader,
|
|
100
|
+
AccordionTrigger,
|
|
101
|
+
AccordionPanel,
|
|
102
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Ref } from "react"
|
|
2
|
+
/**
|
|
3
|
+
* Accordion.types.ts
|
|
4
|
+
*
|
|
5
|
+
* Public and internal types for Accordion component.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { Accordion as BaseAccordion } from "@base-ui/react/accordion"
|
|
9
|
+
|
|
10
|
+
export type AccordionProps = BaseAccordion.Root.Props & {
|
|
11
|
+
ref?: Ref<HTMLDivElement>
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export type AccordionItemProps = BaseAccordion.Item.Props
|
|
15
|
+
|
|
16
|
+
export type AccordionHeaderProps = BaseAccordion.Header.Props
|
|
17
|
+
|
|
18
|
+
export type AccordionTriggerProps = BaseAccordion.Trigger.Props
|
|
19
|
+
|
|
20
|
+
export type AccordionPanelProps = BaseAccordion.Panel.Props
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Accordion.variants.ts
|
|
3
|
+
*
|
|
4
|
+
* Defines visual variants using class composition.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { cva } from "class-variance-authority"
|
|
8
|
+
import { disabledStateClasses } from "@/lib/utils"
|
|
9
|
+
|
|
10
|
+
export const accordionVariants = cva(
|
|
11
|
+
"grid overflow-hidden rounded-(--lsys-accordion-radius) border border-(--lsys-accordion-border-color) bg-(--lsys-accordion-background) text-(--lsys-accordion-foreground)",
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
export const accordionItemVariants = cva(
|
|
15
|
+
"border-b border-(--lsys-accordion-item-border-color) last:border-b-0",
|
|
16
|
+
)
|
|
17
|
+
|
|
18
|
+
export const accordionHeaderVariants = cva("flex")
|
|
19
|
+
|
|
20
|
+
export const accordionTriggerVariants = cva(
|
|
21
|
+
[
|
|
22
|
+
"flex w-full items-center justify-between px-(--lsys-accordion-trigger-padding-x) py-(--lsys-accordion-trigger-padding-y) text-left",
|
|
23
|
+
"text-(length:--lsys-accordion-trigger-font-size) font-(--lsys-accordion-trigger-font-weight) leading-(--lsys-accordion-trigger-font-line-height) text-(--lsys-accordion-foreground)",
|
|
24
|
+
"transition-colors duration-(--lsys-accordion-transition-duration) ease-(--lsys-accordion-transition-easing)",
|
|
25
|
+
"outline-none hover:bg-(--lsys-accordion-trigger-background-hover) focus-visible:ring-(length:--lsys-accordion-focus-ring-width) focus-visible:ring-inset focus-visible:ring-(--lsys-accordion-focus-ring-color)",
|
|
26
|
+
disabledStateClasses,
|
|
27
|
+
].join(" "),
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
export const accordionPanelVariants = cva(
|
|
31
|
+
"px-(--lsys-accordion-panel-padding-x) pb-(--lsys-accordion-panel-padding-bottom) text-(length:--lsys-accordion-panel-font-size) leading-(--lsys-accordion-panel-font-line-height) text-(--lsys-accordion-panel-foreground)",
|
|
32
|
+
)
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Alert.tsx
|
|
3
|
+
*
|
|
4
|
+
* Reference Alert component implementation.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type {
|
|
8
|
+
AlertDescriptionProps,
|
|
9
|
+
AlertProps,
|
|
10
|
+
AlertTitleProps,
|
|
11
|
+
} from "./Alert.types"
|
|
12
|
+
import {
|
|
13
|
+
alertDescriptionClassName,
|
|
14
|
+
alertTitleClassName,
|
|
15
|
+
alertVariants,
|
|
16
|
+
} from "./Alert.variants"
|
|
17
|
+
import { cn } from "@/lib/utils"
|
|
18
|
+
|
|
19
|
+
const Alert = ({
|
|
20
|
+
ref,
|
|
21
|
+
variant,
|
|
22
|
+
className,
|
|
23
|
+
role = "alert",
|
|
24
|
+
...props
|
|
25
|
+
}: AlertProps) => {
|
|
26
|
+
return (
|
|
27
|
+
<div
|
|
28
|
+
ref={ref}
|
|
29
|
+
role={role}
|
|
30
|
+
className={cn(alertVariants({ variant }), className)}
|
|
31
|
+
{...props}
|
|
32
|
+
/>
|
|
33
|
+
)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
Alert.displayName = "Alert"
|
|
37
|
+
|
|
38
|
+
const AlertTitle = ({ ref, className, ...props }: AlertTitleProps) => {
|
|
39
|
+
return (
|
|
40
|
+
<h3 ref={ref} className={cn(alertTitleClassName, className)} {...props} />
|
|
41
|
+
)
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
AlertTitle.displayName = "AlertTitle"
|
|
45
|
+
|
|
46
|
+
const AlertDescription = ({
|
|
47
|
+
ref,
|
|
48
|
+
className,
|
|
49
|
+
...props
|
|
50
|
+
}: AlertDescriptionProps) => {
|
|
51
|
+
return (
|
|
52
|
+
<p
|
|
53
|
+
ref={ref}
|
|
54
|
+
className={cn(alertDescriptionClassName, className)}
|
|
55
|
+
{...props}
|
|
56
|
+
/>
|
|
57
|
+
)
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
AlertDescription.displayName = "AlertDescription"
|
|
61
|
+
|
|
62
|
+
export { Alert, AlertTitle, AlertDescription }
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { Ref } from "react"
|
|
2
|
+
/**
|
|
3
|
+
* Alert.types.ts
|
|
4
|
+
*
|
|
5
|
+
* Public and internal types for Alert component.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { HTMLAttributes } from "react"
|
|
9
|
+
|
|
10
|
+
export type AlertVariant = "neutral" | "primary" | "danger"
|
|
11
|
+
|
|
12
|
+
export interface AlertProps extends Omit<
|
|
13
|
+
HTMLAttributes<HTMLDivElement>,
|
|
14
|
+
"className"
|
|
15
|
+
> {
|
|
16
|
+
ref?: Ref<HTMLDivElement>
|
|
17
|
+
variant?: AlertVariant
|
|
18
|
+
className?: string
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface AlertTitleProps extends Omit<
|
|
22
|
+
HTMLAttributes<HTMLHeadingElement>,
|
|
23
|
+
"className"
|
|
24
|
+
> {
|
|
25
|
+
ref?: Ref<HTMLHeadingElement>
|
|
26
|
+
className?: string
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export interface AlertDescriptionProps extends Omit<
|
|
30
|
+
HTMLAttributes<HTMLParagraphElement>,
|
|
31
|
+
"className"
|
|
32
|
+
> {
|
|
33
|
+
ref?: Ref<HTMLParagraphElement>
|
|
34
|
+
className?: string
|
|
35
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Alert.variants.ts
|
|
3
|
+
*
|
|
4
|
+
* Defines Alert visual slots using class composition.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { cva } from "class-variance-authority"
|
|
8
|
+
|
|
9
|
+
const neutralVariant =
|
|
10
|
+
"border-(--lsys-alert-neutral-border-color) bg-(--lsys-alert-neutral-background) text-(--lsys-alert-neutral-foreground)"
|
|
11
|
+
|
|
12
|
+
const primaryVariant =
|
|
13
|
+
"border-(--lsys-alert-primary-border-color) bg-(--lsys-alert-primary-background) text-(--lsys-alert-primary-foreground)"
|
|
14
|
+
|
|
15
|
+
const dangerVariant =
|
|
16
|
+
"border-(--lsys-alert-danger-border-color) bg-(--lsys-alert-danger-background) text-(--lsys-alert-danger-foreground)"
|
|
17
|
+
|
|
18
|
+
export const alertVariants = cva(
|
|
19
|
+
[
|
|
20
|
+
"grid gap-(--lsys-alert-gap) rounded-(--lsys-alert-radius) border p-(--lsys-alert-padding)",
|
|
21
|
+
"transition-colors duration-(--lsys-alert-transition-duration) ease-(--lsys-alert-transition-easing)",
|
|
22
|
+
].join(" "),
|
|
23
|
+
{
|
|
24
|
+
variants: {
|
|
25
|
+
variant: {
|
|
26
|
+
neutral: neutralVariant,
|
|
27
|
+
primary: primaryVariant,
|
|
28
|
+
danger: dangerVariant,
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
defaultVariants: {
|
|
32
|
+
variant: "neutral",
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
export const alertTitleClassName =
|
|
38
|
+
"text-(length:--lsys-alert-title-font-size) font-(--lsys-alert-title-font-weight) leading-(--lsys-alert-title-font-line-height)"
|
|
39
|
+
|
|
40
|
+
export const alertDescriptionClassName =
|
|
41
|
+
"text-(length:--lsys-alert-description-font-size) leading-(--lsys-alert-description-font-line-height) text-(--lsys-alert-description-foreground)"
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AlertDialog.tsx
|
|
3
|
+
*
|
|
4
|
+
* Reference AlertDialog component implementation.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { X } from "lucide-react"
|
|
8
|
+
import { AlertDialog as BaseAlertDialog } from "@base-ui/react/alert-dialog"
|
|
9
|
+
import type {
|
|
10
|
+
AlertDialogBackdropProps,
|
|
11
|
+
AlertDialogCloseProps,
|
|
12
|
+
AlertDialogDescriptionProps,
|
|
13
|
+
AlertDialogPopupProps,
|
|
14
|
+
AlertDialogPortalProps,
|
|
15
|
+
AlertDialogProps,
|
|
16
|
+
AlertDialogTitleProps,
|
|
17
|
+
AlertDialogTriggerProps,
|
|
18
|
+
AlertDialogViewportProps,
|
|
19
|
+
} from "./AlertDialog.types"
|
|
20
|
+
import {
|
|
21
|
+
alertDialogBackdropVariants,
|
|
22
|
+
alertDialogCloseVariants,
|
|
23
|
+
alertDialogDescriptionVariants,
|
|
24
|
+
alertDialogPopupVariants,
|
|
25
|
+
alertDialogTitleVariants,
|
|
26
|
+
alertDialogTriggerVariants,
|
|
27
|
+
alertDialogViewportVariants,
|
|
28
|
+
} from "./AlertDialog.variants"
|
|
29
|
+
import { mergeClassName } from "@/lib/utils"
|
|
30
|
+
|
|
31
|
+
const AlertDialog = <Payload = unknown,>(props: AlertDialogProps<Payload>) => {
|
|
32
|
+
return <BaseAlertDialog.Root {...props} />
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
AlertDialog.displayName = "AlertDialog"
|
|
36
|
+
|
|
37
|
+
const AlertDialogTrigger = ({
|
|
38
|
+
ref,
|
|
39
|
+
className,
|
|
40
|
+
...props
|
|
41
|
+
}: AlertDialogTriggerProps) => {
|
|
42
|
+
return (
|
|
43
|
+
<BaseAlertDialog.Trigger
|
|
44
|
+
ref={ref}
|
|
45
|
+
className={mergeClassName(alertDialogTriggerVariants(), className)}
|
|
46
|
+
{...props}
|
|
47
|
+
/>
|
|
48
|
+
)
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
AlertDialogTrigger.displayName = "AlertDialogTrigger"
|
|
52
|
+
|
|
53
|
+
const AlertDialogPortal = (props: AlertDialogPortalProps) => {
|
|
54
|
+
return <BaseAlertDialog.Portal {...props} />
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
AlertDialogPortal.displayName = "AlertDialogPortal"
|
|
58
|
+
|
|
59
|
+
const AlertDialogBackdrop = ({
|
|
60
|
+
ref,
|
|
61
|
+
className,
|
|
62
|
+
...props
|
|
63
|
+
}: AlertDialogBackdropProps) => {
|
|
64
|
+
return (
|
|
65
|
+
<BaseAlertDialog.Backdrop
|
|
66
|
+
ref={ref}
|
|
67
|
+
className={mergeClassName(alertDialogBackdropVariants(), className)}
|
|
68
|
+
{...props}
|
|
69
|
+
/>
|
|
70
|
+
)
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
AlertDialogBackdrop.displayName = "AlertDialogBackdrop"
|
|
74
|
+
|
|
75
|
+
const AlertDialogViewport = ({
|
|
76
|
+
ref,
|
|
77
|
+
className,
|
|
78
|
+
...props
|
|
79
|
+
}: AlertDialogViewportProps) => {
|
|
80
|
+
return (
|
|
81
|
+
<BaseAlertDialog.Viewport
|
|
82
|
+
ref={ref}
|
|
83
|
+
className={mergeClassName(alertDialogViewportVariants(), className)}
|
|
84
|
+
{...props}
|
|
85
|
+
/>
|
|
86
|
+
)
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
AlertDialogViewport.displayName = "AlertDialogViewport"
|
|
90
|
+
|
|
91
|
+
const AlertDialogPopup = ({
|
|
92
|
+
ref,
|
|
93
|
+
className,
|
|
94
|
+
...props
|
|
95
|
+
}: AlertDialogPopupProps) => {
|
|
96
|
+
return (
|
|
97
|
+
<BaseAlertDialog.Popup
|
|
98
|
+
ref={ref}
|
|
99
|
+
className={mergeClassName(alertDialogPopupVariants(), className)}
|
|
100
|
+
{...props}
|
|
101
|
+
/>
|
|
102
|
+
)
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
AlertDialogPopup.displayName = "AlertDialogPopup"
|
|
106
|
+
|
|
107
|
+
const AlertDialogTitle = ({
|
|
108
|
+
ref,
|
|
109
|
+
className,
|
|
110
|
+
...props
|
|
111
|
+
}: AlertDialogTitleProps) => {
|
|
112
|
+
return (
|
|
113
|
+
<BaseAlertDialog.Title
|
|
114
|
+
ref={ref}
|
|
115
|
+
className={mergeClassName(alertDialogTitleVariants(), className)}
|
|
116
|
+
{...props}
|
|
117
|
+
/>
|
|
118
|
+
)
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
AlertDialogTitle.displayName = "AlertDialogTitle"
|
|
122
|
+
|
|
123
|
+
const AlertDialogDescription = ({
|
|
124
|
+
ref,
|
|
125
|
+
className,
|
|
126
|
+
...props
|
|
127
|
+
}: AlertDialogDescriptionProps) => {
|
|
128
|
+
return (
|
|
129
|
+
<BaseAlertDialog.Description
|
|
130
|
+
ref={ref}
|
|
131
|
+
className={mergeClassName(alertDialogDescriptionVariants(), className)}
|
|
132
|
+
{...props}
|
|
133
|
+
/>
|
|
134
|
+
)
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
AlertDialogDescription.displayName = "AlertDialogDescription"
|
|
138
|
+
|
|
139
|
+
const AlertDialogClose = ({
|
|
140
|
+
ref,
|
|
141
|
+
className,
|
|
142
|
+
children,
|
|
143
|
+
...props
|
|
144
|
+
}: AlertDialogCloseProps) => {
|
|
145
|
+
return (
|
|
146
|
+
<BaseAlertDialog.Close
|
|
147
|
+
ref={ref}
|
|
148
|
+
className={mergeClassName(alertDialogCloseVariants(), className)}
|
|
149
|
+
{...props}
|
|
150
|
+
>
|
|
151
|
+
{children ?? <X aria-hidden="true" size={16} />}
|
|
152
|
+
</BaseAlertDialog.Close>
|
|
153
|
+
)
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
AlertDialogClose.displayName = "AlertDialogClose"
|
|
157
|
+
|
|
158
|
+
export {
|
|
159
|
+
AlertDialog,
|
|
160
|
+
AlertDialogTrigger,
|
|
161
|
+
AlertDialogPortal,
|
|
162
|
+
AlertDialogBackdrop,
|
|
163
|
+
AlertDialogViewport,
|
|
164
|
+
AlertDialogPopup,
|
|
165
|
+
AlertDialogTitle,
|
|
166
|
+
AlertDialogDescription,
|
|
167
|
+
AlertDialogClose,
|
|
168
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Ref } from "react"
|
|
2
|
+
/**
|
|
3
|
+
* AlertDialog.types.ts
|
|
4
|
+
*
|
|
5
|
+
* Public and internal types for AlertDialog component.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { AlertDialog as BaseAlertDialog } from "@base-ui/react/alert-dialog"
|
|
9
|
+
|
|
10
|
+
export type AlertDialogProps<Payload = unknown> =
|
|
11
|
+
BaseAlertDialog.Root.Props<Payload>
|
|
12
|
+
|
|
13
|
+
export type AlertDialogTriggerProps<Payload = unknown> =
|
|
14
|
+
BaseAlertDialog.Trigger.Props<Payload> & {
|
|
15
|
+
ref?: Ref<HTMLButtonElement>
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export type AlertDialogPortalProps = BaseAlertDialog.Portal.Props
|
|
19
|
+
|
|
20
|
+
export type AlertDialogBackdropProps = BaseAlertDialog.Backdrop.Props
|
|
21
|
+
|
|
22
|
+
export type AlertDialogViewportProps = BaseAlertDialog.Viewport.Props
|
|
23
|
+
|
|
24
|
+
export type AlertDialogPopupProps = BaseAlertDialog.Popup.Props
|
|
25
|
+
|
|
26
|
+
export type AlertDialogTitleProps = BaseAlertDialog.Title.Props
|
|
27
|
+
|
|
28
|
+
export type AlertDialogDescriptionProps = BaseAlertDialog.Description.Props
|
|
29
|
+
|
|
30
|
+
export type AlertDialogCloseProps = BaseAlertDialog.Close.Props
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AlertDialog.variants.ts
|
|
3
|
+
*
|
|
4
|
+
* Defines visual variants using class composition.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { cva } from "class-variance-authority"
|
|
8
|
+
import { disabledStateClasses } from "@/lib/utils"
|
|
9
|
+
|
|
10
|
+
export const alertDialogTriggerVariants = cva(
|
|
11
|
+
[
|
|
12
|
+
"inline-flex h-(--lsys-alert-dialog-trigger-height) items-center justify-center rounded-(--lsys-alert-dialog-trigger-radius)",
|
|
13
|
+
"bg-(--lsys-alert-dialog-trigger-background) px-(--lsys-alert-dialog-trigger-padding-x) text-(--lsys-alert-dialog-trigger-foreground)",
|
|
14
|
+
"text-(length:--lsys-alert-dialog-trigger-font-size) font-(--lsys-alert-dialog-trigger-font-weight) leading-(--lsys-alert-dialog-trigger-font-line-height)",
|
|
15
|
+
"transition-colors duration-(--lsys-alert-dialog-transition-duration) ease-(--lsys-alert-dialog-transition-easing)",
|
|
16
|
+
"outline-none hover:bg-(--lsys-alert-dialog-trigger-hover-background) focus-visible:ring-(length:--lsys-alert-dialog-focus-ring-width) focus-visible:ring-(--lsys-alert-dialog-focus-ring-color) focus-visible:ring-offset-(length:--lsys-alert-dialog-focus-ring-offset) focus-visible:ring-offset-(--lsys-alert-dialog-focus-ring-offset-color)",
|
|
17
|
+
disabledStateClasses,
|
|
18
|
+
].join(" "),
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
export const alertDialogBackdropVariants = cva(
|
|
22
|
+
[
|
|
23
|
+
"fixed inset-0 z-(--lsys-alert-dialog-backdrop-z-index) bg-(--lsys-alert-dialog-backdrop-background) opacity-(--lsys-alert-dialog-backdrop-opacity)",
|
|
24
|
+
"data-[starting-style]:opacity-0 data-[ending-style]:opacity-0",
|
|
25
|
+
"transition-opacity duration-(--lsys-alert-dialog-transition-duration) ease-(--lsys-alert-dialog-transition-easing)",
|
|
26
|
+
].join(" "),
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
export const alertDialogViewportVariants = cva(
|
|
30
|
+
"fixed inset-0 z-(--lsys-alert-dialog-viewport-z-index) grid place-items-center overflow-y-auto p-(--lsys-alert-dialog-viewport-padding)",
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
export const alertDialogPopupVariants = cva(
|
|
34
|
+
[
|
|
35
|
+
"grid w-[min(calc(100vw-(var(--lsys-alert-dialog-viewport-inset)*2)),var(--lsys-alert-dialog-popup-max-width))] gap-(--lsys-alert-dialog-popup-gap) rounded-(--lsys-alert-dialog-popup-radius) border",
|
|
36
|
+
"border-(--lsys-alert-dialog-popup-border-color) bg-(--lsys-alert-dialog-popup-background) p-(--lsys-alert-dialog-popup-padding) text-(--lsys-alert-dialog-popup-foreground) shadow-(--lsys-alert-dialog-popup-shadow)",
|
|
37
|
+
"outline-none data-[starting-style]:scale-95 data-[starting-style]:opacity-0 data-[ending-style]:scale-95 data-[ending-style]:opacity-0",
|
|
38
|
+
"transition-[opacity,transform] duration-(--lsys-alert-dialog-transition-duration) ease-(--lsys-alert-dialog-transition-easing)",
|
|
39
|
+
].join(" "),
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
export const alertDialogTitleVariants = cva(
|
|
43
|
+
"pr-(--lsys-alert-dialog-title-padding-end) text-(length:--lsys-alert-dialog-title-font-size) font-(--lsys-alert-dialog-title-font-weight) leading-(--lsys-alert-dialog-title-font-line-height) text-(--lsys-alert-dialog-title-foreground)",
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
export const alertDialogDescriptionVariants = cva(
|
|
47
|
+
"text-(length:--lsys-alert-dialog-description-font-size) font-(--lsys-alert-dialog-description-font-weight) leading-(--lsys-alert-dialog-description-font-line-height) text-(--lsys-alert-dialog-description-foreground)",
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
export const alertDialogCloseVariants = cva(
|
|
51
|
+
[
|
|
52
|
+
"absolute right-(--lsys-alert-dialog-close-inset) top-(--lsys-alert-dialog-close-inset) inline-flex size-(--lsys-alert-dialog-close-size) items-center justify-center rounded-(--lsys-alert-dialog-close-radius)",
|
|
53
|
+
"text-(--lsys-alert-dialog-close-foreground) outline-none transition-colors duration-(--lsys-alert-dialog-transition-duration) ease-(--lsys-alert-dialog-transition-easing)",
|
|
54
|
+
"hover:bg-(--lsys-alert-dialog-close-hover-background) focus-visible:ring-(length:--lsys-alert-dialog-focus-ring-width) focus-visible:ring-(--lsys-alert-dialog-focus-ring-color) focus-visible:ring-offset-(length:--lsys-alert-dialog-focus-ring-offset) focus-visible:ring-offset-(--lsys-alert-dialog-focus-ring-offset-color)",
|
|
55
|
+
disabledStateClasses,
|
|
56
|
+
].join(" "),
|
|
57
|
+
)
|