@kismet-ux/constellation 1.4.1 → 1.5.1

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.
Files changed (34) hide show
  1. package/dist/form/Checkbox/checkbox.js +4 -53
  2. package/dist/form/Checkbox/checkbox.js.map +1 -1
  3. package/dist/form/DatePicker/date-picker.js +4 -52
  4. package/dist/form/DatePicker/date-picker.js.map +1 -1
  5. package/dist/form.d.ts +1 -1
  6. package/dist/{index-BFML4dx6.d.ts → index-5rfIKwUz.d.ts} +14 -11
  7. package/dist/{index-B2OAQ0Io.d.ts → index-B3BDdWrz.d.ts} +1 -1
  8. package/dist/{index-DVEBz660.d.ts → index-Bexoc2w4.d.ts} +1 -1
  9. package/dist/index.d.ts +6 -6
  10. package/dist/index.js +28 -28
  11. package/dist/layout/AppSidebarHeader/app-sidebar-header.js +1 -29
  12. package/dist/layout/AppSidebarHeader/app-sidebar-header.js.map +1 -1
  13. package/dist/layout.d.ts +2 -2
  14. package/dist/navigation/NavUser/nav-user.js +2 -2
  15. package/dist/navigation/Sheet/sheet.js +3 -28
  16. package/dist/navigation/Sheet/sheet.js.map +1 -1
  17. package/dist/navigation.d.ts +1 -1
  18. package/dist/settings/AppearanceTabs/appearance-tabs.js +1 -26
  19. package/dist/settings/AppearanceTabs/appearance-tabs.js.map +1 -1
  20. package/dist/{tooltip-zOT3UHCF.d.ts → tooltip-D-nlNGQL.d.ts} +1 -1
  21. package/dist/ui/Alert/alert.css +25 -24
  22. package/dist/ui/Alert/alert.d.ts +3 -0
  23. package/dist/ui/Alert/alert.d.ts.map +1 -1
  24. package/dist/ui/Alert/alert.js +2 -2
  25. package/dist/ui/Alert/alert.js.map +1 -1
  26. package/dist/ui.d.ts +2 -2
  27. package/package.json +1 -1
  28. package/dist/index-BoCKYYd6.d.ts +0 -202
  29. package/dist/index-Bzf20Rpc.d.ts +0 -120
  30. package/dist/index-CEMsTqPt.d.ts +0 -495
  31. package/dist/index-cmvXElP9.d.ts +0 -495
  32. package/dist/index-t_i-1mY7.d.ts +0 -202
  33. package/dist/tooltip-CzF4au7i.d.ts +0 -41
  34. package/dist/tooltip-XagXjWLB.d.ts +0 -41
@@ -7,37 +7,9 @@ import { Row } from '../Row/row.js';
7
7
  import { SidebarTrigger } from '../Sidebar/sidebar.js';
8
8
  import { Breadcrumbs } from '../../navigation/Breadcrumbs/breadcrumbs.js';
9
9
  import { NavUser } from '../../navigation/NavUser/nav-user.js';
10
- import { AppearanceToggleDropdown } from '../../settings/AppearanceDropdown/appearance-dropdown.js';
11
- import '../../ui/Alert/alert.js';
12
- import 'react-dom';
13
- import '../../ui/Alert/alert.css';
14
- import '../../ui/Avatar/avatar.js';
15
- import '../../ui/Button/button.js';
16
- import '../../ui/Chip/chip.js';
17
- import '../../ui/CodeBlock/code-block.js';
18
10
  import cn from 'clsx';
19
- import '../../ui/DevIndicator/dev-indicator.css';
20
- import '../../ui/Dialog/dialog.js';
21
- import '../../ui/EmptyState/empty-state.js';
22
- import '../../ui/Icon/icon.js';
23
- import '../../ui/List/list.js';
24
- import '../../ui/Pagination/pagination.js';
25
- import '../../ui/ProgressBar/progress-bar.js';
26
- import '../../ui/Separator/separator.js';
27
- import '../../ui/StatCard/stat-card.js';
28
- import '../../ui/StatusDot/status-dot.js';
29
- import '../../ui/StatusDot/status-dot-variants.js';
30
- import '../../ui/StepProgress/step-progress.js';
31
- import '../../ui/Switch/switch.js';
32
- import '../../ui/Table/table.js';
33
- import '../../ui/TableActionCell/table-action-cell.js';
34
- import '../../ui/TableToolbar/table-toolbar.js';
35
- import '../../ui/Toggle/toggle.js';
36
- import '../../ui/ToggleGroup/toggle-group.js';
37
- import '../../ui/Tooltip/tooltip.js';
38
- import 'lucide-react';
39
- import '../../settings/AppearanceTabs/appearance-tabs.css';
40
11
  import s from './app-sidebar-header.module.scss.js';
12
+ import { AppearanceToggleDropdown } from '../../settings/AppearanceDropdown/appearance-dropdown.js';
41
13
 
42
14
  function AppSidebarHeader({ breadcrumbs = [], user, userMenu, actions, }) {
43
15
  const { state } = useSidebar();
@@ -1 +1 @@
1
- {"version":3,"file":"app-sidebar-header.js","sources":["../../../src/layout/AppSidebarHeader/app-sidebar-header.tsx"],"sourcesContent":["import { useSidebar } from '@constellation/hooks';\nimport { Row } from '@constellation/layout/Row';\nimport { SidebarTrigger } from '@constellation/layout/Sidebar';\nimport { Breadcrumbs } from '@constellation/navigation/Breadcrumbs';\nimport { NavUser, type NavUserProps } from '@constellation/navigation/NavUser';\nimport { AppearanceToggleDropdown } from '@constellation/settings';\nimport { type BreadcrumbItemData } from '@constellation/types';\nimport cn from 'clsx';\nimport * as React from 'react';\nimport s from './app-sidebar-header.module.scss';\n\nexport interface AppSidebarHeaderProps {\n breadcrumbs?: BreadcrumbItemData[];\n /** Omit to hide the account menu (e.g. on signed-out chrome). */\n user?: NavUserProps['user'];\n userMenu?: Omit<NavUserProps, 'user'>;\n /** Extra controls between the appearance toggle and the account menu. */\n actions?: React.ReactNode;\n}\n\nexport function AppSidebarHeader({\n breadcrumbs = [],\n user,\n userMenu,\n actions,\n}: AppSidebarHeaderProps) {\n const { state } = useSidebar();\n\n return (\n <Row\n data-slot={'app-sidebar-header'}\n el={'header'}\n align={'center'}\n gap={1}\n justify={'space-between'}\n className={cn(\n s['app-sidebar-header'],\n state === 'collapsed' && s['sidebar-header-collapsed'],\n )}\n >\n <Row gap={1}>\n <SidebarTrigger />\n <Breadcrumbs breadcrumbs={breadcrumbs} />\n </Row>\n <Row gap={1} align={'center'}>\n {actions}\n <AppearanceToggleDropdown />\n {user && <NavUser user={user} {...userMenu} />}\n </Row>\n </Row>\n );\n}\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBM,SAAU,gBAAgB,CAAC,EAC/B,WAAW,GAAG,EAAE,EAChB,IAAI,EACJ,QAAQ,EACR,OAAO,GACe,EAAA;AACtB,IAAA,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE;IAE9B,QACEA,KAAC,GAAG,EAAA,EAAA,WAAA,EACS,oBAAoB,EAC/B,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,EAAE,CACX,CAAC,CAAC,oBAAoB,CAAC,EACvB,KAAK,KAAK,WAAW,IAAI,CAAC,CAAC,0BAA0B,CAAC,CACvD,aAEDA,IAAA,CAAC,GAAG,IAAC,GAAG,EAAE,CAAC,EAAA,QAAA,EAAA,CACTC,GAAA,CAAC,cAAc,EAAA,EAAA,CAAG,EAClBA,IAAC,WAAW,EAAA,EAAC,WAAW,EAAE,WAAW,GAAI,CAAA,EAAA,CACrC,EACND,KAAC,GAAG,EAAA,EAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAA,QAAA,EAAA,CACzB,OAAO,EACRC,GAAA,CAAC,wBAAwB,KAAG,EAC3B,IAAI,IAAIA,GAAA,CAAC,OAAO,IAAC,IAAI,EAAE,IAAI,EAAA,GAAM,QAAQ,GAAI,CAAA,EAAA,CAC1C,CAAA,EAAA,CACF;AAEV;;"}
1
+ {"version":3,"file":"app-sidebar-header.js","sources":["../../../src/layout/AppSidebarHeader/app-sidebar-header.tsx"],"sourcesContent":["import { useSidebar } from '@constellation/hooks';\nimport { Row } from '@constellation/layout/Row';\nimport { SidebarTrigger } from '@constellation/layout/Sidebar';\nimport { Breadcrumbs } from '@constellation/navigation/Breadcrumbs';\nimport { NavUser, type NavUserProps } from '@constellation/navigation/NavUser';\nimport { AppearanceToggleDropdown } from '@constellation/settings';\nimport { type BreadcrumbItemData } from '@constellation/types';\nimport cn from 'clsx';\nimport * as React from 'react';\nimport s from './app-sidebar-header.module.scss';\n\nexport interface AppSidebarHeaderProps {\n breadcrumbs?: BreadcrumbItemData[];\n /** Omit to hide the account menu (e.g. on signed-out chrome). */\n user?: NavUserProps['user'];\n userMenu?: Omit<NavUserProps, 'user'>;\n /** Extra controls between the appearance toggle and the account menu. */\n actions?: React.ReactNode;\n}\n\nexport function AppSidebarHeader({\n breadcrumbs = [],\n user,\n userMenu,\n actions,\n}: AppSidebarHeaderProps) {\n const { state } = useSidebar();\n\n return (\n <Row\n data-slot={'app-sidebar-header'}\n el={'header'}\n align={'center'}\n gap={1}\n justify={'space-between'}\n className={cn(\n s['app-sidebar-header'],\n state === 'collapsed' && s['sidebar-header-collapsed'],\n )}\n >\n <Row gap={1}>\n <SidebarTrigger />\n <Breadcrumbs breadcrumbs={breadcrumbs} />\n </Row>\n <Row gap={1} align={'center'}>\n {actions}\n <AppearanceToggleDropdown />\n {user && <NavUser user={user} {...userMenu} />}\n </Row>\n </Row>\n );\n}\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;;;;;AAoBM,SAAU,gBAAgB,CAAC,EAC/B,WAAW,GAAG,EAAE,EAChB,IAAI,EACJ,QAAQ,EACR,OAAO,GACe,EAAA;AACtB,IAAA,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,EAAE;IAE9B,QACEA,KAAC,GAAG,EAAA,EAAA,WAAA,EACS,oBAAoB,EAC/B,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,CAAC,EACN,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,EAAE,CACX,CAAC,CAAC,oBAAoB,CAAC,EACvB,KAAK,KAAK,WAAW,IAAI,CAAC,CAAC,0BAA0B,CAAC,CACvD,aAEDA,IAAA,CAAC,GAAG,IAAC,GAAG,EAAE,CAAC,EAAA,QAAA,EAAA,CACTC,GAAA,CAAC,cAAc,EAAA,EAAA,CAAG,EAClBA,IAAC,WAAW,EAAA,EAAC,WAAW,EAAE,WAAW,GAAI,CAAA,EAAA,CACrC,EACND,KAAC,GAAG,EAAA,EAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAA,QAAA,EAAA,CACzB,OAAO,EACRC,GAAA,CAAC,wBAAwB,KAAG,EAC3B,IAAI,IAAIA,GAAA,CAAC,OAAO,IAAC,IAAI,EAAE,IAAI,EAAA,GAAM,QAAQ,GAAI,CAAA,EAAA,CAC1C,CAAA,EAAA,CACF;AAEV;;"}
package/dist/layout.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- export { A as AppContent, a as AppFooter, b as AppFooterProps, c as AppShell, d as AppShellProps, e as AppSidebar, f as AppSidebarHeader, g as AppSidebarHeaderProps, h as AppSidebarProps, C as Collapse, i as CollapseProps, j as Column, k as ColumnProps, l as Container, G as Grid, R as Row, p as Sidebar, q as SidebarContent, r as SidebarFooter, s as SidebarGroup, t as SidebarGroupAction, u as SidebarGroupContent, v as SidebarGroupLabel, w as SidebarHeader, x as SidebarInput, y as SidebarInset, z as SidebarMenu, B as SidebarMenuAction, D as SidebarMenuBadge, E as SidebarMenuButton, F as SidebarMenuItem, H as SidebarMenuSkeleton, I as SidebarMenuSub, J as SidebarMenuSubButton, K as SidebarMenuSubItem, L as SidebarProvider, M as SidebarRail, N as SidebarTrigger, P as Skeleton } from './index-B2OAQ0Io.js';
1
+ export { A as AppContent, a as AppFooter, b as AppFooterProps, c as AppShell, d as AppShellProps, e as AppSidebar, f as AppSidebarHeader, g as AppSidebarHeaderProps, h as AppSidebarProps, C as Collapse, i as CollapseProps, j as Column, k as ColumnProps, l as Container, G as Grid, R as Row, p as Sidebar, q as SidebarContent, r as SidebarFooter, s as SidebarGroup, t as SidebarGroupAction, u as SidebarGroupContent, v as SidebarGroupLabel, w as SidebarHeader, x as SidebarInput, y as SidebarInset, z as SidebarMenu, B as SidebarMenuAction, D as SidebarMenuBadge, E as SidebarMenuButton, F as SidebarMenuItem, H as SidebarMenuSkeleton, I as SidebarMenuSub, J as SidebarMenuSubButton, K as SidebarMenuSubItem, L as SidebarProvider, M as SidebarRail, N as SidebarTrigger, P as Skeleton } from './index-B3BDdWrz.js';
2
2
  export { R as RowProps } from './row-CS9-talZ.js';
3
3
  import 'react';
4
4
  import './nav-user-CJIcWKyY.js';
5
5
  import 'lucide-react';
6
6
  import './user-menu-content-D0Ldzigm.js';
7
7
  import './input-CWHXOpeH.js';
8
- import './tooltip-XagXjWLB.js';
8
+ import './tooltip-D-nlNGQL.js';
9
9
  import 'class-variance-authority';
10
10
  import 'class-variance-authority/types';
@@ -1,10 +1,10 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { SidebarMenuButton } from '../../layout/Sidebar/sidebar.js';
3
3
  import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent } from '../DropdownMenu/dropdown-menu.js';
4
- import { UserInfo } from '../../user/UserInfo/user-info.js';
5
- import { UserMenuContent } from '../../user/UserMenuContent/user-menu-content.js';
6
4
  import { ChevronsUpDownIcon } from 'lucide-react';
7
5
  import s from './nav-user.module.scss.js';
6
+ import { UserInfo } from '../../user/UserInfo/user-info.js';
7
+ import { UserMenuContent } from '../../user/UserMenuContent/user-menu-content.js';
8
8
 
9
9
  /** Sidebar footer control: the signed-in user plus their account menu. */
10
10
  function NavUser({ user, ...menuProps }) {
@@ -1,39 +1,14 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
- import '../../ui/Alert/alert.js';
3
- import * as React from 'react';
4
- import { createPortal } from 'react-dom';
5
- import '../../ui/Alert/alert-context.js';
6
- import '../../ui/Alert/alert.css';
7
- import '../../ui/Avatar/avatar.js';
8
- import { Button } from '../../ui/Button/button.js';
9
- import '../../ui/Chip/chip.js';
10
- import '../../ui/CodeBlock/code-block.js';
11
2
  import cn from 'clsx';
12
- import '../../ui/DevIndicator/dev-indicator.css';
13
- import '../../ui/Dialog/dialog.js';
14
- import '../../ui/EmptyState/empty-state.js';
15
- import '../../ui/Icon/icon.js';
16
- import '../../ui/List/list.js';
17
- import '../../ui/Pagination/pagination.js';
18
- import '../../ui/ProgressBar/progress-bar.js';
19
- import '../../ui/Separator/separator.js';
20
- import '../../ui/StatCard/stat-card.js';
21
- import '../../ui/StatusDot/status-dot.js';
22
- import '../../ui/StatusDot/status-dot-variants.js';
23
- import '../../ui/StepProgress/step-progress.js';
24
- import '../../ui/Switch/switch.js';
25
- import '../../ui/Table/table.js';
26
- import '../../ui/TableActionCell/table-action-cell.js';
27
- import '../../ui/TableToolbar/table-toolbar.js';
28
- import '../../ui/Toggle/toggle.js';
29
- import '../../ui/ToggleGroup/toggle-group.js';
30
- import '../../ui/Tooltip/tooltip.js';
31
3
  import { XIcon } from 'lucide-react';
4
+ import * as React from 'react';
5
+ import { createPortal } from 'react-dom';
32
6
  import { Slot } from '../../internal/slot.js';
33
7
  import { useAnimationState } from '../../internal/use-animation-state.js';
34
8
  import { useFocusTrap } from '../../internal/use-focus-trap.js';
35
9
  import { useScrollLock } from '../../internal/use-scroll-lock.js';
36
10
  import s from './sheet.module.scss.js';
11
+ import { Button } from '../../ui/Button/button.js';
37
12
 
38
13
  const SheetContext = React.createContext(null);
39
14
  function useSheet() {
@@ -1 +1 @@
1
- {"version":3,"file":"sheet.js","sources":["../../../src/navigation/Sheet/sheet.tsx"],"sourcesContent":["import { Button } from '@constellation/ui';\nimport cn from 'clsx';\nimport { XIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { Slot } from '../../internal/slot';\nimport { useAnimationState } from '../../internal/use-animation-state';\nimport { useFocusTrap } from '../../internal/use-focus-trap';\nimport { useScrollLock } from '../../internal/use-scroll-lock';\nimport s from './sheet.module.scss';\n\n// ── Context ──────────────────────────────────────────────\n\ntype SheetContextValue = {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n titleId: string;\n descriptionId: string;\n};\n\nconst SheetContext = React.createContext<SheetContextValue | null>(null);\n\nfunction useSheet() {\n const ctx = React.useContext(SheetContext);\n if (!ctx) throw new Error('Sheet compound components must be used within <Sheet>');\n return ctx;\n}\n\n// ── Root ─────────────────────────────────────────────────\n\nexport interface SheetProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n children?: React.ReactNode;\n}\n\nfunction Sheet({ open: controlledOpen, defaultOpen = false, onOpenChange, children }: SheetProps) {\n const [internalOpen, setInternalOpen] = React.useState(defaultOpen);\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : internalOpen;\n const titleId = React.useId();\n const descriptionId = React.useId();\n\n const handleOpenChange = React.useCallback(\n (next: boolean) => {\n if (!isControlled) setInternalOpen(next);\n onOpenChange?.(next);\n },\n [isControlled, onOpenChange],\n );\n\n return (\n <SheetContext.Provider value={{ open, onOpenChange: handleOpenChange, titleId, descriptionId }}>\n {children}\n </SheetContext.Provider>\n );\n}\n\n// ── Trigger ──────────────────────────────────────────────\n\nexport interface SheetTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n asChild?: boolean;\n}\n\nconst SheetTrigger = React.forwardRef<HTMLButtonElement, SheetTriggerProps>(\n ({ asChild, onClick, children, ...props }, ref) => {\n const { onOpenChange } = useSheet();\n const Comp = asChild ? Slot : 'button';\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n onOpenChange(true);\n };\n\n return (\n <Comp ref={ref} data-slot={'sheet-trigger'} onClick={handleClick} {...props}>\n {children}\n </Comp>\n );\n },\n);\nSheetTrigger.displayName = 'SheetTrigger';\n\n// ── Close ────────────────────────────────────────────────\n\nexport interface SheetCloseProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n asChild?: boolean;\n}\n\nconst SheetClose = React.forwardRef<HTMLButtonElement, SheetCloseProps>(\n ({ asChild, onClick, children, ...props }, ref) => {\n const { onOpenChange } = useSheet();\n const Comp = asChild ? Slot : 'button';\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n onOpenChange(false);\n };\n\n return (\n <Comp ref={ref} data-slot={'sheet-close'} onClick={handleClick} {...props}>\n {children}\n </Comp>\n );\n },\n);\nSheetClose.displayName = 'SheetClose';\n\n// ── Content ──────────────────────────────────────────────\n\nconst sideClassMap = {\n right: s['content-right'],\n left: s['content-left'],\n top: s['content-top'],\n bottom: s['content-bottom'],\n} as const;\n\ntype SheetSide = keyof typeof sideClassMap;\n\nexport type SheetContentProps = React.HTMLAttributes<HTMLDivElement> & {\n side?: SheetSide;\n};\n\nconst SheetContent = React.forwardRef<HTMLDivElement, SheetContentProps>(\n ({ className, children, side = 'right', ...props }, ref) => {\n const { open, onOpenChange, titleId, descriptionId } = useSheet();\n const { mounted, state } = useAnimationState(open, 250);\n const focusTrapRef = useFocusTrap(open);\n useScrollLock(mounted);\n\n React.useEffect(() => {\n if (!open) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n // A nested layer (an open Select, DatePicker or menu) marks Escape as\n // handled with preventDefault. Escape should dismiss the topmost layer\n // only, so the modal ignores an event something inside it already took.\n if (e.key === 'Escape' && !e.defaultPrevented) {\n onOpenChange(false);\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n return () => document.removeEventListener('keydown', handleKeyDown);\n }, [open, onOpenChange]);\n\n if (!mounted || state === 'idle') return null;\n\n return createPortal(\n <div ref={focusTrapRef}>\n <div\n data-slot={'sheet-overlay'}\n data-state={state}\n className={s.overlay}\n onClick={() => onOpenChange(false)}\n aria-hidden={'true'}\n />\n <div\n ref={ref}\n data-slot={'sheet-content'}\n data-state={state}\n role={'dialog'}\n aria-modal={'true'}\n aria-labelledby={titleId}\n aria-describedby={descriptionId}\n className={cn(s['sheet-content'], sideClassMap[side], className)}\n onClick={e => e.stopPropagation()}\n {...props}\n >\n {children}\n <SheetClose className={s['close-button']} asChild>\n <Button variant={'ghost'} theme={'inherit'} iconOnly size={'sm'}>\n <XIcon />\n <span className={'srOnly'}>Close</span>\n </Button>\n </SheetClose>\n </div>\n </div>,\n document.body,\n );\n },\n);\nSheetContent.displayName = 'SheetContent';\n\n// ── Semantic sub-components ──────────────────────────────\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot={'sheet-header'} className={cn(s.header, className)} {...props} />;\n}\n\nfunction SheetBody({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot={'sheet-body'} className={cn(s.body, className)} {...props} />;\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot={'sheet-footer'} className={cn(s.footer, className)} {...props} />;\n}\n\nfunction SheetTitle({ className, ...props }: React.ComponentProps<'h2'>) {\n const { titleId } = useSheet();\n\n return (\n <h2 id={titleId} data-slot={'sheet-title'} className={cn(s.title, className)} {...props} />\n );\n}\n\nfunction SheetDescription({ className, ...props }: React.ComponentProps<'p'>) {\n const { descriptionId } = useSheet();\n\n return (\n <p\n id={descriptionId}\n data-slot={'sheet-description'}\n className={cn(s.description, className)}\n {...props}\n />\n );\n}\n\nexport {\n Sheet,\n SheetBody,\n SheetClose,\n SheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"sheet.js","sources":["../../../src/navigation/Sheet/sheet.tsx"],"sourcesContent":["import { Button } from '@constellation/ui';\nimport cn from 'clsx';\nimport { XIcon } from 'lucide-react';\nimport * as React from 'react';\nimport { createPortal } from 'react-dom';\nimport { Slot } from '../../internal/slot';\nimport { useAnimationState } from '../../internal/use-animation-state';\nimport { useFocusTrap } from '../../internal/use-focus-trap';\nimport { useScrollLock } from '../../internal/use-scroll-lock';\nimport s from './sheet.module.scss';\n\n// ── Context ──────────────────────────────────────────────\n\ntype SheetContextValue = {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n titleId: string;\n descriptionId: string;\n};\n\nconst SheetContext = React.createContext<SheetContextValue | null>(null);\n\nfunction useSheet() {\n const ctx = React.useContext(SheetContext);\n if (!ctx) throw new Error('Sheet compound components must be used within <Sheet>');\n return ctx;\n}\n\n// ── Root ─────────────────────────────────────────────────\n\nexport interface SheetProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n children?: React.ReactNode;\n}\n\nfunction Sheet({ open: controlledOpen, defaultOpen = false, onOpenChange, children }: SheetProps) {\n const [internalOpen, setInternalOpen] = React.useState(defaultOpen);\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : internalOpen;\n const titleId = React.useId();\n const descriptionId = React.useId();\n\n const handleOpenChange = React.useCallback(\n (next: boolean) => {\n if (!isControlled) setInternalOpen(next);\n onOpenChange?.(next);\n },\n [isControlled, onOpenChange],\n );\n\n return (\n <SheetContext.Provider value={{ open, onOpenChange: handleOpenChange, titleId, descriptionId }}>\n {children}\n </SheetContext.Provider>\n );\n}\n\n// ── Trigger ──────────────────────────────────────────────\n\nexport interface SheetTriggerProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n asChild?: boolean;\n}\n\nconst SheetTrigger = React.forwardRef<HTMLButtonElement, SheetTriggerProps>(\n ({ asChild, onClick, children, ...props }, ref) => {\n const { onOpenChange } = useSheet();\n const Comp = asChild ? Slot : 'button';\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n onOpenChange(true);\n };\n\n return (\n <Comp ref={ref} data-slot={'sheet-trigger'} onClick={handleClick} {...props}>\n {children}\n </Comp>\n );\n },\n);\nSheetTrigger.displayName = 'SheetTrigger';\n\n// ── Close ────────────────────────────────────────────────\n\nexport interface SheetCloseProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n asChild?: boolean;\n}\n\nconst SheetClose = React.forwardRef<HTMLButtonElement, SheetCloseProps>(\n ({ asChild, onClick, children, ...props }, ref) => {\n const { onOpenChange } = useSheet();\n const Comp = asChild ? Slot : 'button';\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n onOpenChange(false);\n };\n\n return (\n <Comp ref={ref} data-slot={'sheet-close'} onClick={handleClick} {...props}>\n {children}\n </Comp>\n );\n },\n);\nSheetClose.displayName = 'SheetClose';\n\n// ── Content ──────────────────────────────────────────────\n\nconst sideClassMap = {\n right: s['content-right'],\n left: s['content-left'],\n top: s['content-top'],\n bottom: s['content-bottom'],\n} as const;\n\ntype SheetSide = keyof typeof sideClassMap;\n\nexport type SheetContentProps = React.HTMLAttributes<HTMLDivElement> & {\n side?: SheetSide;\n};\n\nconst SheetContent = React.forwardRef<HTMLDivElement, SheetContentProps>(\n ({ className, children, side = 'right', ...props }, ref) => {\n const { open, onOpenChange, titleId, descriptionId } = useSheet();\n const { mounted, state } = useAnimationState(open, 250);\n const focusTrapRef = useFocusTrap(open);\n useScrollLock(mounted);\n\n React.useEffect(() => {\n if (!open) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n // A nested layer (an open Select, DatePicker or menu) marks Escape as\n // handled with preventDefault. Escape should dismiss the topmost layer\n // only, so the modal ignores an event something inside it already took.\n if (e.key === 'Escape' && !e.defaultPrevented) {\n onOpenChange(false);\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n return () => document.removeEventListener('keydown', handleKeyDown);\n }, [open, onOpenChange]);\n\n if (!mounted || state === 'idle') return null;\n\n return createPortal(\n <div ref={focusTrapRef}>\n <div\n data-slot={'sheet-overlay'}\n data-state={state}\n className={s.overlay}\n onClick={() => onOpenChange(false)}\n aria-hidden={'true'}\n />\n <div\n ref={ref}\n data-slot={'sheet-content'}\n data-state={state}\n role={'dialog'}\n aria-modal={'true'}\n aria-labelledby={titleId}\n aria-describedby={descriptionId}\n className={cn(s['sheet-content'], sideClassMap[side], className)}\n onClick={e => e.stopPropagation()}\n {...props}\n >\n {children}\n <SheetClose className={s['close-button']} asChild>\n <Button variant={'ghost'} theme={'inherit'} iconOnly size={'sm'}>\n <XIcon />\n <span className={'srOnly'}>Close</span>\n </Button>\n </SheetClose>\n </div>\n </div>,\n document.body,\n );\n },\n);\nSheetContent.displayName = 'SheetContent';\n\n// ── Semantic sub-components ──────────────────────────────\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot={'sheet-header'} className={cn(s.header, className)} {...props} />;\n}\n\nfunction SheetBody({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot={'sheet-body'} className={cn(s.body, className)} {...props} />;\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot={'sheet-footer'} className={cn(s.footer, className)} {...props} />;\n}\n\nfunction SheetTitle({ className, ...props }: React.ComponentProps<'h2'>) {\n const { titleId } = useSheet();\n\n return (\n <h2 id={titleId} data-slot={'sheet-title'} className={cn(s.title, className)} {...props} />\n );\n}\n\nfunction SheetDescription({ className, ...props }: React.ComponentProps<'p'>) {\n const { descriptionId } = useSheet();\n\n return (\n <p\n id={descriptionId}\n data-slot={'sheet-description'}\n className={cn(s.description, className)}\n {...props}\n />\n );\n}\n\nexport {\n Sheet,\n SheetBody,\n SheetClose,\n SheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -62,7 +62,7 @@ declare function DropdownMenuSubContent({ className, ...props }: React.HTMLAttri
62
62
  declare const linkVariants: (props?: ({
63
63
  underline?: boolean | null | undefined;
64
64
  hover?: "default" | "none" | null | undefined;
65
- theme?: "primary" | "secondary" | "destructive" | "success" | "warning" | "info" | "slate" | "inherit" | null | undefined;
65
+ theme?: "inherit" | "primary" | "secondary" | "info" | "success" | "warning" | "destructive" | "slate" | null | undefined;
66
66
  } & class_variance_authority_types.ClassProp) | undefined) => string;
67
67
 
68
68
  interface LinkProps extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'onClick'>, VariantProps<typeof linkVariants> {
@@ -4,35 +4,10 @@ import 'react';
4
4
  import '../../ui/Alert/alert-context.js';
5
5
  import '../../ui/Table/table-sort-context.js';
6
6
  import { useAppearance } from '../../hooks/use-appearance.js';
7
- import '../../ui/Alert/alert.js';
8
- import 'react-dom';
9
- import '../../ui/Alert/alert.css';
10
- import '../../ui/Avatar/avatar.js';
11
- import { Button } from '../../ui/Button/button.js';
12
- import '../../ui/Chip/chip.js';
13
- import '../../ui/CodeBlock/code-block.js';
14
7
  import cn from 'clsx';
15
- import '../../ui/DevIndicator/dev-indicator.css';
16
- import '../../ui/Dialog/dialog.js';
17
- import '../../ui/EmptyState/empty-state.js';
18
- import '../../ui/Icon/icon.js';
19
- import '../../ui/List/list.js';
20
- import '../../ui/Pagination/pagination.js';
21
- import '../../ui/ProgressBar/progress-bar.js';
22
- import '../../ui/Separator/separator.js';
23
- import '../../ui/StatCard/stat-card.js';
24
- import '../../ui/StatusDot/status-dot.js';
25
- import '../../ui/StatusDot/status-dot-variants.js';
26
- import '../../ui/StepProgress/step-progress.js';
27
- import '../../ui/Switch/switch.js';
28
- import '../../ui/Table/table.js';
29
- import '../../ui/TableActionCell/table-action-cell.js';
30
- import '../../ui/TableToolbar/table-toolbar.js';
31
- import '../../ui/Toggle/toggle.js';
32
- import '../../ui/ToggleGroup/toggle-group.js';
33
- import '../../ui/Tooltip/tooltip.js';
34
8
  import { SunIcon, MoonIcon, MonitorIcon } from 'lucide-react';
35
9
  import s from './appearance-tabs.module.scss.js';
10
+ import { Button } from '../../ui/Button/button.js';
36
11
 
37
12
  function AppearanceTabs({ className = '', iconOnly = false, ...props }) {
38
13
  const { appearance, updateAppearance } = useAppearance();
@@ -1 +1 @@
1
- {"version":3,"file":"appearance-tabs.js","sources":["../../../src/settings/AppearanceTabs/appearance-tabs.tsx"],"sourcesContent":["import { type Appearance, useAppearance } from '@constellation/hooks';\nimport { Button } from '@constellation/ui';\nimport cn from 'clsx';\nimport { type LucideIcon, MonitorIcon, MoonIcon, SunIcon } from 'lucide-react';\nimport * as React from 'react';\nimport s from './appearance-tabs.module.scss';\n\ntype AppearanceTabsProps = React.HTMLAttributes<HTMLDivElement> & {\n iconOnly?: boolean;\n};\n\nexport function AppearanceTabs({\n className = '',\n iconOnly = false,\n ...props\n}: AppearanceTabsProps) {\n const { appearance, updateAppearance } = useAppearance();\n\n const tabs: { value: Appearance; icon: LucideIcon; label: string }[] = [\n { value: 'light', icon: SunIcon, label: 'Light' },\n { value: 'dark', icon: MoonIcon, label: 'Dark' },\n { value: 'system', icon: MonitorIcon, label: 'System' },\n ];\n\n return (\n <div data-slot={'appearance-tabs'} className={cn(s['tabs-root'], className)} {...props}>\n {tabs.map(({ value, icon: Icon, label }) => (\n <Button\n key={value}\n variant={'ghost'}\n theme={'inherit'}\n rounded\n onClick={() => updateAppearance(value)}\n aria-label={label}\n iconOnly={iconOnly}\n aria-pressed={appearance === value}\n className={cn(s['tab-button'], appearance === value && s['tab-button-active'])}\n title={iconOnly ? label : undefined}\n >\n <Icon />\n {!iconOnly && <span>{label}</span>}\n </Button>\n ))}\n </div>\n );\n}\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWM,SAAU,cAAc,CAAC,EAC7B,SAAS,GAAG,EAAE,EACd,QAAQ,GAAG,KAAK,EAChB,GAAG,KAAK,EACY,EAAA;IACpB,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,aAAa,EAAE;AAExD,IAAA,MAAM,IAAI,GAA6D;QACrE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;QACjD,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;QAChD,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;KACxD;IAED,QACEA,GAAA,CAAA,KAAA,EAAA,EAAA,WAAA,EAAgB,iBAAiB,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,QAAA,EACnF,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MACrCC,IAAA,CAAC,MAAM,EAAA,EAEL,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAA,IAAA,EACP,OAAO,EAAE,MAAM,gBAAgB,CAAC,KAAK,CAAC,gBAC1B,KAAK,EACjB,QAAQ,EAAE,QAAQ,EAAA,cAAA,EACJ,UAAU,KAAK,KAAK,EAClC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,UAAU,KAAK,KAAK,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC,EAC9E,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,SAAS,EAAA,QAAA,EAAA,CAEnCD,GAAA,CAAC,IAAI,EAAA,EAAA,CAAG,EACP,CAAC,QAAQ,IAAIA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,KAAK,EAAA,CAAQ,CAAA,EAAA,EAZ7B,KAAK,CAaH,CACV,CAAC,EAAA,CACE;AAEV;;"}
1
+ {"version":3,"file":"appearance-tabs.js","sources":["../../../src/settings/AppearanceTabs/appearance-tabs.tsx"],"sourcesContent":["import { type Appearance, useAppearance } from '@constellation/hooks';\nimport { Button } from '@constellation/ui';\nimport cn from 'clsx';\nimport { type LucideIcon, MonitorIcon, MoonIcon, SunIcon } from 'lucide-react';\nimport * as React from 'react';\nimport s from './appearance-tabs.module.scss';\n\ntype AppearanceTabsProps = React.HTMLAttributes<HTMLDivElement> & {\n iconOnly?: boolean;\n};\n\nexport function AppearanceTabs({\n className = '',\n iconOnly = false,\n ...props\n}: AppearanceTabsProps) {\n const { appearance, updateAppearance } = useAppearance();\n\n const tabs: { value: Appearance; icon: LucideIcon; label: string }[] = [\n { value: 'light', icon: SunIcon, label: 'Light' },\n { value: 'dark', icon: MoonIcon, label: 'Dark' },\n { value: 'system', icon: MonitorIcon, label: 'System' },\n ];\n\n return (\n <div data-slot={'appearance-tabs'} className={cn(s['tabs-root'], className)} {...props}>\n {tabs.map(({ value, icon: Icon, label }) => (\n <Button\n key={value}\n variant={'ghost'}\n theme={'inherit'}\n rounded\n onClick={() => updateAppearance(value)}\n aria-label={label}\n iconOnly={iconOnly}\n aria-pressed={appearance === value}\n className={cn(s['tab-button'], appearance === value && s['tab-button-active'])}\n title={iconOnly ? label : undefined}\n >\n <Icon />\n {!iconOnly && <span>{label}</span>}\n </Button>\n ))}\n </div>\n );\n}\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;;AAWM,SAAU,cAAc,CAAC,EAC7B,SAAS,GAAG,EAAE,EACd,QAAQ,GAAG,KAAK,EAChB,GAAG,KAAK,EACY,EAAA;IACpB,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,aAAa,EAAE;AAExD,IAAA,MAAM,IAAI,GAA6D;QACrE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;QACjD,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;QAChD,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;KACxD;IAED,QACEA,GAAA,CAAA,KAAA,EAAA,EAAA,WAAA,EAAgB,iBAAiB,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,EAAA,GAAM,KAAK,EAAA,QAAA,EACnF,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MACrCC,IAAA,CAAC,MAAM,EAAA,EAEL,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,SAAS,EAChB,OAAO,EAAA,IAAA,EACP,OAAO,EAAE,MAAM,gBAAgB,CAAC,KAAK,CAAC,gBAC1B,KAAK,EACjB,QAAQ,EAAE,QAAQ,EAAA,cAAA,EACJ,UAAU,KAAK,KAAK,EAClC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,UAAU,KAAK,KAAK,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC,EAC9E,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,SAAS,EAAA,QAAA,EAAA,CAEnCD,GAAA,CAAC,IAAI,EAAA,EAAA,CAAG,EACP,CAAC,QAAQ,IAAIA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,KAAK,EAAA,CAAQ,CAAA,EAAA,EAZ7B,KAAK,CAaH,CACV,CAAC,EAAA,CACE;AAEV;;"}
@@ -4,7 +4,7 @@ import * as class_variance_authority_types from 'class-variance-authority/types'
4
4
 
5
5
  declare const buttonVariants: (props?: ({
6
6
  variant?: "contained" | "outlined" | "ghost" | null | undefined;
7
- theme?: "destructive" | "inherit" | "primary" | "secondary" | "warning" | "success" | "info" | "slate" | null | undefined;
7
+ theme?: "inherit" | "primary" | "secondary" | "info" | "success" | "warning" | "destructive" | "slate" | null | undefined;
8
8
  size?: "sm" | "md" | "lg" | "xs" | null | undefined;
9
9
  iconOnly?: boolean | null | undefined;
10
10
  rounded?: boolean | "extra" | null | undefined;
@@ -7,8 +7,8 @@
7
7
 
8
8
  .alert-module_alert__IMg3b {
9
9
  align-items: flex-start;
10
- background-color: var(--background-default);
11
- border: 1px solid var(--divider);
10
+ background-color: color-mix(in srgb, var(--alert-color, transparent) 14%, var(--background-default));
11
+ border: 1px solid color-mix(in srgb, var(--alert-color, var(--divider)) 45%, transparent);
12
12
  border-radius: 0.5rem;
13
13
  color: var(--text-primary);
14
14
  display: flex;
@@ -68,9 +68,9 @@
68
68
  --themed-focus-visible: var(--primary-focus-visible);
69
69
  --themed-outlined-border: var(--primary-outlined-border);
70
70
  --themed-selected: var(--primary-selected);
71
- background-color: color-mix(in srgb, var(--themed-focus) 50%, var(--background-default));
72
- border-color: var(--themed-main);
73
- color: var(--themed-emphasis);
71
+ background-color: color-mix(in srgb, var(--alert-color, var(--themed-focus)) 20%, var(--background-default));
72
+ border-color: color-mix(in srgb, var(--alert-color, var(--themed-main)) 60%, transparent);
73
+ color: var(--alert-color, var(--themed-emphasis));
74
74
  }
75
75
  .alert-module_alert--primary__-DftT [data-slot=alert-description] {
76
76
  color: var(--text-primary);
@@ -87,9 +87,9 @@
87
87
  --themed-focus-visible: var(--secondary-focus-visible);
88
88
  --themed-outlined-border: var(--secondary-outlined-border);
89
89
  --themed-selected: var(--secondary-selected);
90
- background-color: color-mix(in srgb, var(--themed-focus) 50%, var(--background-default));
91
- border-color: var(--themed-main);
92
- color: var(--themed-emphasis);
90
+ background-color: color-mix(in srgb, var(--alert-color, var(--themed-focus)) 20%, var(--background-default));
91
+ border-color: color-mix(in srgb, var(--alert-color, var(--themed-main)) 60%, transparent);
92
+ color: var(--alert-color, var(--themed-emphasis));
93
93
  }
94
94
  .alert-module_alert--secondary__ClMM4 [data-slot=alert-description] {
95
95
  color: var(--text-primary);
@@ -106,9 +106,9 @@
106
106
  --themed-focus-visible: var(--destructive-focus-visible);
107
107
  --themed-outlined-border: var(--destructive-outlined-border);
108
108
  --themed-selected: var(--destructive-selected);
109
- background-color: color-mix(in srgb, var(--themed-focus) 50%, var(--background-default));
110
- border-color: var(--themed-main);
111
- color: var(--themed-emphasis);
109
+ background-color: color-mix(in srgb, var(--alert-color, var(--themed-focus)) 20%, var(--background-default));
110
+ border-color: color-mix(in srgb, var(--alert-color, var(--themed-main)) 60%, transparent);
111
+ color: var(--alert-color, var(--themed-emphasis));
112
112
  }
113
113
  .alert-module_alert--destructive__V8E8m [data-slot=alert-description] {
114
114
  color: var(--text-primary);
@@ -125,9 +125,9 @@
125
125
  --themed-focus-visible: var(--warning-focus-visible);
126
126
  --themed-outlined-border: var(--warning-outlined-border);
127
127
  --themed-selected: var(--warning-selected);
128
- background-color: color-mix(in srgb, var(--themed-focus) 50%, var(--background-default));
129
- border-color: var(--themed-main);
130
- color: var(--themed-emphasis);
128
+ background-color: color-mix(in srgb, var(--alert-color, var(--themed-focus)) 20%, var(--background-default));
129
+ border-color: color-mix(in srgb, var(--alert-color, var(--themed-main)) 60%, transparent);
130
+ color: var(--alert-color, var(--themed-emphasis));
131
131
  }
132
132
  .alert-module_alert--warning__IJ1ko [data-slot=alert-description] {
133
133
  color: var(--text-primary);
@@ -144,9 +144,9 @@
144
144
  --themed-focus-visible: var(--success-focus-visible);
145
145
  --themed-outlined-border: var(--success-outlined-border);
146
146
  --themed-selected: var(--success-selected);
147
- background-color: color-mix(in srgb, var(--themed-focus) 50%, var(--background-default));
148
- border-color: var(--themed-main);
149
- color: var(--themed-emphasis);
147
+ background-color: color-mix(in srgb, var(--alert-color, var(--themed-focus)) 20%, var(--background-default));
148
+ border-color: color-mix(in srgb, var(--alert-color, var(--themed-main)) 60%, transparent);
149
+ color: var(--alert-color, var(--themed-emphasis));
150
150
  }
151
151
  .alert-module_alert--success__sJO5y [data-slot=alert-description] {
152
152
  color: var(--text-primary);
@@ -163,9 +163,9 @@
163
163
  --themed-focus-visible: var(--info-focus-visible);
164
164
  --themed-outlined-border: var(--info-outlined-border);
165
165
  --themed-selected: var(--info-selected);
166
- background-color: color-mix(in srgb, var(--themed-focus) 50%, var(--background-default));
167
- border-color: var(--themed-main);
168
- color: var(--themed-emphasis);
166
+ background-color: color-mix(in srgb, var(--alert-color, var(--themed-focus)) 20%, var(--background-default));
167
+ border-color: color-mix(in srgb, var(--alert-color, var(--themed-main)) 60%, transparent);
168
+ color: var(--alert-color, var(--themed-emphasis));
169
169
  }
170
170
  .alert-module_alert--info__4OhRF [data-slot=alert-description] {
171
171
  color: var(--text-primary);
@@ -182,9 +182,9 @@
182
182
  --themed-focus-visible: var(--slate-focus-visible);
183
183
  --themed-outlined-border: var(--slate-outlined-border);
184
184
  --themed-selected: var(--slate-selected);
185
- background-color: color-mix(in srgb, var(--themed-focus) 50%, var(--background-default));
186
- border-color: var(--themed-main);
187
- color: var(--themed-emphasis);
185
+ background-color: color-mix(in srgb, var(--alert-color, var(--themed-focus)) 20%, var(--background-default));
186
+ border-color: color-mix(in srgb, var(--alert-color, var(--themed-main)) 60%, transparent);
187
+ color: var(--alert-color, var(--themed-emphasis));
188
188
  }
189
189
  .alert-module_alert--slate__DMg_C [data-slot=alert-description] {
190
190
  color: var(--text-primary);
@@ -233,8 +233,9 @@
233
233
  }
234
234
  .alert-module_alert-title__6VY9x {
235
235
  -webkit-box-orient: vertical;
236
+ color: var(--alert-color, inherit);
236
237
  display: -webkit-box;
237
- font-weight: 500;
238
+ font-weight: 600;
238
239
  letter-spacing: -0.01em;
239
240
  -webkit-line-clamp: 1;
240
241
  min-height: 1rem;
@@ -6,6 +6,9 @@ export interface AlertProps extends VariantProps<typeof alertVariants> {
6
6
  icon?: React.ReactNode;
7
7
  action?: React.ReactNode;
8
8
  onClose?: () => void;
9
+ /** A colour outside the theme scale; overrides the theme's colour roles. */
10
+ color?: string;
11
+ style?: React.CSSProperties;
9
12
  children?: React.ReactNode;
10
13
  }
11
14
  declare const Alert: React.ForwardRefExoticComponent<AlertProps & React.RefAttributes<HTMLDivElement>>;
@@ -1 +1 @@
1
- {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../src/ui/Alert/alert.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAU7D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAajD,MAAM,WAAW,UAAW,SAAQ,YAAY,CAAC,OAAO,aAAa,CAAC;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,QAAA,MAAM,KAAK,mFAwCV,CAAC;AAGF,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAEvE;AAED,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQ7E;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY,CAAC,OAAO,aAAa,CAAC;IAC1E,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;IACjC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,QAAA,MAAM,WAAW,yFAyChB,CAAC;AAGF,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../src/ui/Alert/alert.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAU7D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAajD,MAAM,WAAW,UAAW,SAAQ,YAAY,CAAC,OAAO,aAAa,CAAC;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,QAAA,MAAM,KAAK,mFAyCV,CAAC;AAGF,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAEvE;AAED,iBAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQ7E;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY,CAAC,OAAO,aAAa,CAAC;IAC1E,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;IACjC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,QAAA,MAAM,WAAW,yFAyChB,CAAC;AAGF,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC"}
@@ -16,9 +16,9 @@ const themeIconMap = {
16
16
  warning: jsx(AlertTriangleIcon, {}),
17
17
  info: jsx(InfoIcon, {}),
18
18
  };
19
- const Alert = React.forwardRef(({ className, theme, icon, action, onClose, children }, ref) => {
19
+ const Alert = React.forwardRef(({ className, theme, icon, action, onClose, color, style, children }, ref) => {
20
20
  const resolvedIcon = icon === true ? themeIconMap[theme ?? 'default'] : icon;
21
- return (jsxs("div", { ref: ref, "data-slot": 'alert', role: 'alert', className: cn(alertVariants({ theme }), className), children: [resolvedIcon ? (jsx("div", { "data-slot": 'alert-icon', className: s['alert-icon'], children: resolvedIcon })) : null, jsx("div", { "data-slot": 'alert-content', className: s['alert-content'], children: children }), action ? (jsx("div", { "data-slot": 'alert-action', className: s['alert-action'], children: action })) : null, onClose ? (jsx(Button, { iconOnly: true, variant: 'ghost', size: 'xs', theme: 'inherit', className: s['alert-close'], onClick: onClose, "aria-label": 'Dismiss', children: jsx(XIcon, {}) })) : null] }));
21
+ return (jsxs("div", { ref: ref, "data-slot": 'alert', role: 'alert', className: cn(alertVariants({ theme }), className), style: color ? { ...style, '--alert-color': color } : style, children: [resolvedIcon ? (jsx("div", { "data-slot": 'alert-icon', className: s['alert-icon'], children: resolvedIcon })) : null, jsx("div", { "data-slot": 'alert-content', className: s['alert-content'], children: children }), action ? (jsx("div", { "data-slot": 'alert-action', className: s['alert-action'], children: action })) : null, onClose ? (jsx(Button, { iconOnly: true, variant: 'ghost', size: 'xs', theme: 'inherit', className: s['alert-close'], onClick: onClose, "aria-label": 'Dismiss', children: jsx(XIcon, {}) })) : null] }));
22
22
  });
23
23
  Alert.displayName = 'Alert';
24
24
  function AlertTitle({ className, ...props }) {
@@ -1 +1 @@
1
- {"version":3,"file":"alert.js","sources":["../../../src/ui/Alert/alert.tsx"],"sourcesContent":["import { Collapse } from '@constellation/layout/Collapse';\nimport { type VariantProps } from 'class-variance-authority';\nimport cn from 'clsx';\nimport {\n AlertCircleIcon,\n AlertTriangleIcon,\n CheckCircleIcon,\n InfoIcon,\n XCircleIcon,\n XIcon,\n} from 'lucide-react';\nimport * as React from 'react';\nimport { Button } from '../Button';\nimport { alertVariants } from './alert-variants';\nimport s from './alert.module.scss';\n\nconst themeIconMap: Record<string, React.ReactNode> = {\n default: <AlertCircleIcon />,\n primary: <InfoIcon />,\n secondary: <InfoIcon />,\n success: <CheckCircleIcon />,\n destructive: <XCircleIcon />,\n warning: <AlertTriangleIcon />,\n info: <InfoIcon />,\n};\n\nexport interface AlertProps extends VariantProps<typeof alertVariants> {\n className?: string;\n icon?: React.ReactNode;\n action?: React.ReactNode;\n onClose?: () => void;\n children?: React.ReactNode;\n}\n\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n ({ className, theme, icon, action, onClose, children }, ref) => {\n const resolvedIcon = icon === true ? themeIconMap[theme ?? 'default'] : icon;\n\n return (\n <div\n ref={ref}\n data-slot={'alert'}\n role={'alert'}\n className={cn(alertVariants({ theme }), className)}\n >\n {resolvedIcon ? (\n <div data-slot={'alert-icon'} className={s['alert-icon']}>\n {resolvedIcon}\n </div>\n ) : null}\n <div data-slot={'alert-content'} className={s['alert-content']}>\n {children}\n </div>\n {action ? (\n <div data-slot={'alert-action'} className={s['alert-action']}>\n {action}\n </div>\n ) : null}\n {onClose ? (\n <Button\n iconOnly\n variant={'ghost'}\n size={'xs'}\n theme={'inherit'}\n className={s['alert-close']}\n onClick={onClose}\n aria-label={'Dismiss'}\n >\n <XIcon />\n </Button>\n ) : null}\n </div>\n );\n },\n);\nAlert.displayName = 'Alert';\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot={'alert-title'} className={cn(s['alert-title'], className)} {...props} />;\n}\n\nfunction AlertDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot={'alert-description'}\n className={cn(s['alert-description'], className)}\n {...props}\n />\n );\n}\n\nexport interface AlertBannerProps extends VariantProps<typeof alertVariants> {\n open: boolean;\n onClose?: () => void;\n icon?: boolean | React.ReactNode;\n action?: React.ReactNode;\n className?: string;\n children?: React.ReactNode;\n}\n\nconst AlertBanner = React.forwardRef<HTMLDivElement, AlertBannerProps>(\n ({ open, onClose, theme, icon, action, className, children }, ref) => {\n const resolvedIcon = icon === true ? themeIconMap[theme ?? 'default'] : icon;\n\n return (\n <Collapse ref={ref} open={open}>\n <div\n data-slot={'alert-banner'}\n role={'alert'}\n className={cn(alertVariants({ theme }), s['alert-banner'], className)}\n >\n {resolvedIcon ? (\n <div data-slot={'alert-icon'} className={s['alert-icon']}>\n {resolvedIcon}\n </div>\n ) : null}\n <div data-slot={'alert-content'} className={s['alert-content']}>\n {children}\n </div>\n {action ? (\n <div data-slot={'alert-action'} className={s['alert-action']}>\n {action}\n </div>\n ) : null}\n {onClose ? (\n <Button\n iconOnly\n variant={'ghost'}\n size={'xs'}\n theme={'inherit'}\n className={s['alert-close']}\n onClick={onClose}\n aria-label={'Dismiss'}\n >\n <XIcon />\n </Button>\n ) : null}\n </div>\n </Collapse>\n );\n },\n);\nAlertBanner.displayName = 'AlertBanner';\n\nexport { Alert, AlertBanner, AlertDescription, AlertTitle };\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"alert.js","sources":["../../../src/ui/Alert/alert.tsx"],"sourcesContent":["import { Collapse } from '@constellation/layout/Collapse';\nimport { type VariantProps } from 'class-variance-authority';\nimport cn from 'clsx';\nimport {\n AlertCircleIcon,\n AlertTriangleIcon,\n CheckCircleIcon,\n InfoIcon,\n XCircleIcon,\n XIcon,\n} from 'lucide-react';\nimport * as React from 'react';\nimport { Button } from '../Button';\nimport { alertVariants } from './alert-variants';\nimport s from './alert.module.scss';\n\nconst themeIconMap: Record<string, React.ReactNode> = {\n default: <AlertCircleIcon />,\n primary: <InfoIcon />,\n secondary: <InfoIcon />,\n success: <CheckCircleIcon />,\n destructive: <XCircleIcon />,\n warning: <AlertTriangleIcon />,\n info: <InfoIcon />,\n};\n\nexport interface AlertProps extends VariantProps<typeof alertVariants> {\n className?: string;\n icon?: React.ReactNode;\n action?: React.ReactNode;\n onClose?: () => void;\n /** A colour outside the theme scale; overrides the theme's colour roles. */\n color?: string;\n style?: React.CSSProperties;\n children?: React.ReactNode;\n}\n\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n ({ className, theme, icon, action, onClose, color, style, children }, ref) => {\n const resolvedIcon = icon === true ? themeIconMap[theme ?? 'default'] : icon;\n\n return (\n <div\n ref={ref}\n data-slot={'alert'}\n role={'alert'}\n className={cn(alertVariants({ theme }), className)}\n style={color ? ({ ...style, '--alert-color': color } as React.CSSProperties) : style}\n >\n {resolvedIcon ? (\n <div data-slot={'alert-icon'} className={s['alert-icon']}>\n {resolvedIcon}\n </div>\n ) : null}\n <div data-slot={'alert-content'} className={s['alert-content']}>\n {children}\n </div>\n {action ? (\n <div data-slot={'alert-action'} className={s['alert-action']}>\n {action}\n </div>\n ) : null}\n {onClose ? (\n <Button\n iconOnly\n variant={'ghost'}\n size={'xs'}\n theme={'inherit'}\n className={s['alert-close']}\n onClick={onClose}\n aria-label={'Dismiss'}\n >\n <XIcon />\n </Button>\n ) : null}\n </div>\n );\n },\n);\nAlert.displayName = 'Alert';\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot={'alert-title'} className={cn(s['alert-title'], className)} {...props} />;\n}\n\nfunction AlertDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot={'alert-description'}\n className={cn(s['alert-description'], className)}\n {...props}\n />\n );\n}\n\nexport interface AlertBannerProps extends VariantProps<typeof alertVariants> {\n open: boolean;\n onClose?: () => void;\n icon?: boolean | React.ReactNode;\n action?: React.ReactNode;\n className?: string;\n children?: React.ReactNode;\n}\n\nconst AlertBanner = React.forwardRef<HTMLDivElement, AlertBannerProps>(\n ({ open, onClose, theme, icon, action, className, children }, ref) => {\n const resolvedIcon = icon === true ? themeIconMap[theme ?? 'default'] : icon;\n\n return (\n <Collapse ref={ref} open={open}>\n <div\n data-slot={'alert-banner'}\n role={'alert'}\n className={cn(alertVariants({ theme }), s['alert-banner'], className)}\n >\n {resolvedIcon ? (\n <div data-slot={'alert-icon'} className={s['alert-icon']}>\n {resolvedIcon}\n </div>\n ) : null}\n <div data-slot={'alert-content'} className={s['alert-content']}>\n {children}\n </div>\n {action ? (\n <div data-slot={'alert-action'} className={s['alert-action']}>\n {action}\n </div>\n ) : null}\n {onClose ? (\n <Button\n iconOnly\n variant={'ghost'}\n size={'xs'}\n theme={'inherit'}\n className={s['alert-close']}\n onClick={onClose}\n aria-label={'Dismiss'}\n >\n <XIcon />\n </Button>\n ) : null}\n </div>\n </Collapse>\n );\n },\n);\nAlertBanner.displayName = 'AlertBanner';\n\nexport { Alert, AlertBanner, AlertDescription, AlertTitle };\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
package/dist/ui.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export { a as Alert, b as AlertBanner, c as AlertBannerProps, d as AlertDescription, f as AlertProps, g as AlertProvider, i as AlertTitle, j as Avatar, k as AvatarFallback, l as AvatarFallbackProps, m as AvatarImage, n as AvatarImageProps, o as AvatarProps, C as Chip, p as ChipProps, q as CodeBlock, r as CodeBlockProps, D as DevIndicator, s as DevIndicatorProps, t as Dialog, u as DialogClose, v as DialogCloseProps, w as DialogContent, x as DialogContentProps, y as DialogDescription, z as DialogFooter, B as DialogHeader, E as DialogOverlay, F as DialogPortal, G as DialogProps, H as DialogTitle, I as DialogTrigger, J as DialogTriggerProps, K as EmptyState, L as EmptyStateProps, M as Icon, N as IconProps, O as List, P as ListItem, Q as ListItemProps, R as ListProps, T as Pagination, V as ProgressBar, W as ProgressBarProps, Y as Separator, Z as SeparatorProps, a0 as StatCard, a1 as StatCardDirection, a2 as StatCardProps, a3 as StatCardSize, a4 as StatCardTheme, a5 as StatCardVariant, a6 as StatusDot, a7 as StatusDotProps, a8 as Step, a9 as StepProgress, aa as StepProgressProps, ab as Switch, ac as SwitchProps, ad as Table, ae as TableActionCell, af as TableActionCellProps, ag as TableActionItem, ah as TableBody, ai as TableBodyProps, aj as TableCard, ak as TableCell, al as TableFooter, am as TableHead, an as TableHeader, ao as TableRow, ap as TableSortableHeader, aq as TableSortableHeaderProps, ar as TableToolbar, as as TableToolbarProps, at as Toggle, au as ToggleGroup, av as ToggleGroupProps, aw as ToggleProps, ax as TrendDirection, ay as persistAlert, az as statusDotVariants } from './index-cmvXElP9.js';
2
- export { B as Button, a as ButtonProps, T as Tooltip, b as TooltipContent, c as TooltipContentProps, d as TooltipProps, e as TooltipProvider, f as TooltipTrigger, g as TooltipTriggerProps } from './tooltip-XagXjWLB.js';
1
+ export { a as Alert, b as AlertBanner, c as AlertBannerProps, d as AlertDescription, f as AlertProps, g as AlertProvider, i as AlertTitle, j as Avatar, k as AvatarFallback, l as AvatarFallbackProps, m as AvatarImage, n as AvatarImageProps, o as AvatarProps, C as Chip, p as ChipProps, q as CodeBlock, r as CodeBlockProps, D as DevIndicator, s as DevIndicatorProps, t as Dialog, u as DialogClose, v as DialogCloseProps, w as DialogContent, x as DialogContentProps, y as DialogDescription, z as DialogFooter, B as DialogHeader, E as DialogOverlay, F as DialogPortal, G as DialogProps, H as DialogTitle, I as DialogTrigger, J as DialogTriggerProps, K as EmptyState, L as EmptyStateProps, M as Icon, N as IconProps, O as List, P as ListItem, Q as ListItemProps, R as ListProps, T as Pagination, V as ProgressBar, W as ProgressBarProps, Y as Separator, Z as SeparatorProps, a0 as StatCard, a1 as StatCardDirection, a2 as StatCardProps, a3 as StatCardSize, a4 as StatCardTheme, a5 as StatCardVariant, a6 as StatusDot, a7 as StatusDotProps, a8 as Step, a9 as StepProgress, aa as StepProgressProps, ab as Switch, ac as SwitchProps, ad as Table, ae as TableActionCell, af as TableActionCellProps, ag as TableActionItem, ah as TableBody, ai as TableBodyProps, aj as TableCard, ak as TableCell, al as TableFooter, am as TableHead, an as TableHeader, ao as TableRow, ap as TableSortableHeader, aq as TableSortableHeaderProps, ar as TableToolbar, as as TableToolbarProps, at as Toggle, au as ToggleGroup, av as ToggleGroupProps, aw as ToggleProps, ax as TrendDirection, ay as persistAlert, az as statusDotVariants } from './index-5rfIKwUz.js';
2
+ export { B as Button, a as ButtonProps, T as Tooltip, b as TooltipContent, c as TooltipContentProps, d as TooltipProps, e as TooltipProvider, f as TooltipTrigger, g as TooltipTriggerProps } from './tooltip-D-nlNGQL.js';
3
3
  import 'class-variance-authority';
4
4
  import 'react';
5
5
  import 'class-variance-authority/types';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kismet-ux/constellation",
3
- "version": "1.4.1",
3
+ "version": "1.5.1",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",