@kismet-ux/constellation 1.1.0 → 1.2.0
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/dist/form/Checkbox/checkbox.js +2 -0
- package/dist/form/Checkbox/checkbox.js.map +1 -1
- package/dist/form/DatePicker/date-picker.js +2 -0
- package/dist/form/DatePicker/date-picker.js.map +1 -1
- package/dist/form.d.ts +1 -1
- package/dist/{index-CBGZtocA.d.ts → index-CPpu2Wg4.d.ts} +2 -2
- package/dist/{index-BeCWb0Ix.d.ts → index-DMy7AzMN.d.ts} +68 -23
- package/dist/{index-DVEBz660.d.ts → index-YOC5H6Ls.d.ts} +2 -2
- package/dist/index.d.ts +6 -6
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/layout/AppSidebarHeader/app-sidebar-header.js +2 -0
- package/dist/layout/AppSidebarHeader/app-sidebar-header.js.map +1 -1
- package/dist/layout.d.ts +2 -2
- package/dist/navigation/Sheet/sheet.js +2 -0
- package/dist/navigation/Sheet/sheet.js.map +1 -1
- package/dist/navigation.d.ts +1 -1
- package/dist/settings/AppearanceTabs/appearance-tabs.js +2 -0
- package/dist/settings/AppearanceTabs/appearance-tabs.js.map +1 -1
- package/dist/{tooltip-zOT3UHCF.d.ts → tooltip-DoCbTucr.d.ts} +3 -3
- package/dist/ui/Chip/chip-variants.d.ts +6 -1
- package/dist/ui/Chip/chip-variants.d.ts.map +1 -1
- package/dist/ui/Chip/chip-variants.js +19 -2
- package/dist/ui/Chip/chip-variants.js.map +1 -1
- package/dist/ui/Chip/chip.css +97 -47
- package/dist/ui/Chip/chip.d.ts +14 -0
- package/dist/ui/Chip/chip.d.ts.map +1 -1
- package/dist/ui/Chip/chip.js +10 -2
- package/dist/ui/Chip/chip.js.map +1 -1
- package/dist/ui/Chip/chip.module.scss.js +1 -1
- package/dist/ui/StatusDot/index.d.ts +3 -0
- package/dist/ui/StatusDot/index.d.ts.map +1 -0
- package/dist/ui/StatusDot/status-dot-variants.d.ts +7 -0
- package/dist/ui/StatusDot/status-dot-variants.d.ts.map +1 -0
- package/dist/ui/StatusDot/status-dot-variants.js +28 -0
- package/dist/ui/StatusDot/status-dot-variants.js.map +1 -0
- package/dist/ui/StatusDot/status-dot.css +61 -0
- package/dist/ui/StatusDot/status-dot.d.ts +23 -0
- package/dist/ui/StatusDot/status-dot.d.ts.map +1 -0
- package/dist/ui/StatusDot/status-dot.js +23 -0
- package/dist/ui/StatusDot/status-dot.js.map +1 -0
- package/dist/ui/StatusDot/status-dot.module.scss.js +6 -0
- package/dist/ui/StatusDot/status-dot.module.scss.js.map +1 -0
- package/dist/ui/index.d.ts +1 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui.d.ts +2 -2
- package/dist/ui.js +2 -0
- package/dist/ui.js.map +1 -1
- package/package.json +1 -1
|
@@ -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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"}
|
package/dist/navigation.d.ts
CHANGED
|
@@ -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?: "
|
|
65
|
+
theme?: "inherit" | "primary" | "secondary" | "success" | "destructive" | "warning" | "info" | "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> {
|
|
@@ -21,6 +21,8 @@ import '../../ui/Pagination/pagination.js';
|
|
|
21
21
|
import '../../ui/ProgressBar/progress-bar.js';
|
|
22
22
|
import '../../ui/Separator/separator.js';
|
|
23
23
|
import '../../ui/StatCard/stat-card.js';
|
|
24
|
+
import '../../ui/StatusDot/status-dot.js';
|
|
25
|
+
import '../../ui/StatusDot/status-dot-variants.js';
|
|
24
26
|
import '../../ui/StepProgress/step-progress.js';
|
|
25
27
|
import '../../ui/Switch/switch.js';
|
|
26
28
|
import '../../ui/Table/table.js';
|
|
@@ -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":"
|
|
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;;"}
|
|
@@ -3,9 +3,9 @@ import * as React from 'react';
|
|
|
3
3
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
4
4
|
|
|
5
5
|
declare const buttonVariants: (props?: ({
|
|
6
|
-
variant?: "
|
|
7
|
-
theme?: "
|
|
8
|
-
size?: "
|
|
6
|
+
variant?: "outlined" | "contained" | "ghost" | null | undefined;
|
|
7
|
+
theme?: "inherit" | "primary" | "secondary" | "success" | "destructive" | "warning" | "info" | "slate" | null | undefined;
|
|
8
|
+
size?: "lg" | "md" | "sm" | "xs" | null | undefined;
|
|
9
9
|
iconOnly?: boolean | null | undefined;
|
|
10
10
|
rounded?: boolean | "extra" | null | undefined;
|
|
11
11
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
export declare const chipVariants: (props?: ({
|
|
2
2
|
theme?: "inherit" | "primary" | "secondary" | "destructive" | "warning" | "success" | "info" | "slate" | null | undefined;
|
|
3
|
-
|
|
3
|
+
variant?: "solid" | "soft" | "outline" | null | undefined;
|
|
4
|
+
size?: "sm" | "md" | "xs" | "2xs" | null | undefined;
|
|
5
|
+
shape?: "rounded" | "pill" | null | undefined;
|
|
6
|
+
dashed?: boolean | null | undefined;
|
|
7
|
+
mono?: boolean | null | undefined;
|
|
8
|
+
uppercase?: boolean | null | undefined;
|
|
4
9
|
wrap?: boolean | null | undefined;
|
|
5
10
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
6
11
|
//# sourceMappingURL=chip-variants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chip-variants.d.ts","sourceRoot":"","sources":["../../../src/ui/Chip/chip-variants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"chip-variants.d.ts","sourceRoot":"","sources":["../../../src/ui/Chip/chip-variants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY;;;;;;;;;8EA0CvB,CAAC"}
|
|
@@ -13,17 +13,34 @@ const chipVariants = cva(s.chip, {
|
|
|
13
13
|
slate: s['chip--slate'],
|
|
14
14
|
inherit: s['chip--inherit'],
|
|
15
15
|
},
|
|
16
|
+
variant: {
|
|
17
|
+
soft: s['chip--soft'],
|
|
18
|
+
outline: s['chip--outline'],
|
|
19
|
+
solid: s['chip--solid'],
|
|
20
|
+
},
|
|
16
21
|
size: {
|
|
22
|
+
'2xs': s['chip--2xs'],
|
|
23
|
+
xs: s['chip--xs'],
|
|
17
24
|
sm: s['chip--sm'],
|
|
18
25
|
md: s['chip--md'],
|
|
19
26
|
},
|
|
20
|
-
|
|
21
|
-
|
|
27
|
+
shape: {
|
|
28
|
+
pill: undefined,
|
|
29
|
+
rounded: s['chip--rounded'],
|
|
22
30
|
},
|
|
31
|
+
dashed: { true: s['chip--dashed'] },
|
|
32
|
+
mono: { true: s['chip--mono'] },
|
|
33
|
+
uppercase: { true: s['chip--uppercase'] },
|
|
34
|
+
wrap: { true: s['chip--wrap'] },
|
|
23
35
|
},
|
|
24
36
|
defaultVariants: {
|
|
25
37
|
theme: 'primary',
|
|
38
|
+
variant: 'soft',
|
|
26
39
|
size: 'md',
|
|
40
|
+
shape: 'pill',
|
|
41
|
+
dashed: false,
|
|
42
|
+
mono: false,
|
|
43
|
+
uppercase: false,
|
|
27
44
|
wrap: false,
|
|
28
45
|
},
|
|
29
46
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chip-variants.js","sources":["../../../src/ui/Chip/chip-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport s from './chip.module.scss';\n\nexport const chipVariants = cva(s.chip, {\n variants: {\n theme: {\n primary: s['chip--primary'],\n secondary: s['chip--secondary'],\n destructive: s['chip--destructive'],\n warning: s['chip--warning'],\n success: s['chip--success'],\n info: s['chip--info'],\n slate: s['chip--slate'],\n inherit: s['chip--inherit'],\n },\n size: {\n sm: s['chip--sm'],\n md: s['chip--md'],\n },\n
|
|
1
|
+
{"version":3,"file":"chip-variants.js","sources":["../../../src/ui/Chip/chip-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport s from './chip.module.scss';\n\nexport const chipVariants = cva(s.chip, {\n variants: {\n theme: {\n primary: s['chip--primary'],\n secondary: s['chip--secondary'],\n destructive: s['chip--destructive'],\n warning: s['chip--warning'],\n success: s['chip--success'],\n info: s['chip--info'],\n slate: s['chip--slate'],\n inherit: s['chip--inherit'],\n },\n variant: {\n soft: s['chip--soft'],\n outline: s['chip--outline'],\n solid: s['chip--solid'],\n },\n size: {\n '2xs': s['chip--2xs'],\n xs: s['chip--xs'],\n sm: s['chip--sm'],\n md: s['chip--md'],\n },\n shape: {\n pill: undefined,\n rounded: s['chip--rounded'],\n },\n dashed: { true: s['chip--dashed'] },\n mono: { true: s['chip--mono'] },\n uppercase: { true: s['chip--uppercase'] },\n wrap: { true: s['chip--wrap'] },\n },\n defaultVariants: {\n theme: 'primary',\n variant: 'soft',\n size: 'md',\n shape: 'pill',\n dashed: false,\n mono: false,\n uppercase: false,\n wrap: false,\n },\n});\n"],"names":[],"mappings":";;;MAGa,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE;AACtC,IAAA,QAAQ,EAAE;AACR,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC;AAC3B,YAAA,SAAS,EAAE,CAAC,CAAC,iBAAiB,CAAC;AAC/B,YAAA,WAAW,EAAE,CAAC,CAAC,mBAAmB,CAAC;AACnC,YAAA,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC;AAC3B,YAAA,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC;AAC3B,YAAA,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC;AACrB,YAAA,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC;AACvB,YAAA,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC;AAC5B,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC;AACrB,YAAA,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC;AAC3B,YAAA,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC;AACxB,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC;AACrB,YAAA,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC;AACjB,YAAA,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC;AACjB,YAAA,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC;AAClB,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC;AAC5B,SAAA;QACD,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE;QACnC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE;QAC/B,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,iBAAiB,CAAC,EAAE;QACzC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE;AAChC,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,KAAK,EAAE,MAAM;AACb,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,IAAI,EAAE,KAAK;AACZ,KAAA;AACF,CAAA;;"}
|
package/dist/ui/Chip/chip.css
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@charset "UTF-8";
|
|
1
2
|
/**
|
|
2
3
|
* Size config. `icon-size` scales SVGs rendered as direct children to match
|
|
3
4
|
* the chip's visual weight. `padding-with-icon` trims horizontal padding
|
|
@@ -22,6 +23,43 @@
|
|
|
22
23
|
.chip-module_chip--wrap__YvZ3D {
|
|
23
24
|
white-space: normal;
|
|
24
25
|
}
|
|
26
|
+
.chip-module_chip--mono__SMCPR {
|
|
27
|
+
font-family: var(--font-mono), monospace;
|
|
28
|
+
font-variant-numeric: tabular-nums;
|
|
29
|
+
}
|
|
30
|
+
.chip-module_chip--uppercase__bLI8t {
|
|
31
|
+
font-weight: 700;
|
|
32
|
+
letter-spacing: 0.06em;
|
|
33
|
+
text-transform: uppercase;
|
|
34
|
+
}
|
|
35
|
+
.chip-module_chip--rounded__epRJb {
|
|
36
|
+
border-radius: var(--radius-xs);
|
|
37
|
+
}
|
|
38
|
+
.chip-module_chip--dashed__trSp1 {
|
|
39
|
+
border-style: dashed;
|
|
40
|
+
}
|
|
41
|
+
.chip-module_chip--2xs__GJtZF {
|
|
42
|
+
font-size: 0.56rem;
|
|
43
|
+
padding: 0 0.25rem;
|
|
44
|
+
}
|
|
45
|
+
.chip-module_chip--2xs__GJtZF > svg {
|
|
46
|
+
height: 0.6rem;
|
|
47
|
+
width: 0.6rem;
|
|
48
|
+
}
|
|
49
|
+
.chip-module_chip--2xs__GJtZF:has(> svg) {
|
|
50
|
+
padding: 0 0.2rem;
|
|
51
|
+
}
|
|
52
|
+
.chip-module_chip--xs__Smd5u {
|
|
53
|
+
font-size: 0.66rem;
|
|
54
|
+
padding: 0.1rem 0.4rem;
|
|
55
|
+
}
|
|
56
|
+
.chip-module_chip--xs__Smd5u > svg {
|
|
57
|
+
height: 0.7rem;
|
|
58
|
+
width: 0.7rem;
|
|
59
|
+
}
|
|
60
|
+
.chip-module_chip--xs__Smd5u:has(> svg) {
|
|
61
|
+
padding: 0.1rem 0.32rem;
|
|
62
|
+
}
|
|
25
63
|
.chip-module_chip--sm___bJkU {
|
|
26
64
|
font-size: 0.72rem;
|
|
27
65
|
padding: 0.15rem 0.5rem;
|
|
@@ -44,12 +82,14 @@
|
|
|
44
82
|
.chip-module_chip--md__N7LAU:has(> svg) {
|
|
45
83
|
padding: 0.25rem 0.55rem;
|
|
46
84
|
}
|
|
47
|
-
.chip-module_chip__u4PJ9
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
85
|
+
.chip-module_chip__u4PJ9 {
|
|
86
|
+
/**
|
|
87
|
+
* Each theme resolves four roles. Every one is written as
|
|
88
|
+
* `var(--chip-color, <token>)`, so setting a single `--chip-color` on the
|
|
89
|
+
* element overrides the whole set — that is the escape hatch for a colour
|
|
90
|
+
* the theme scale does not have (a diet marker, a category hue), without
|
|
91
|
+
* needing a bespoke component.
|
|
92
|
+
*/
|
|
53
93
|
}
|
|
54
94
|
.chip-module_chip__u4PJ9.chip-module_chip--primary__kBS6M {
|
|
55
95
|
--themed-main: var(--primary-main);
|
|
@@ -62,12 +102,10 @@
|
|
|
62
102
|
--themed-focus-visible: var(--primary-focus-visible);
|
|
63
103
|
--themed-outlined-border: var(--primary-outlined-border);
|
|
64
104
|
--themed-selected: var(--primary-selected);
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
.chip-module_chip__u4PJ9.chip-module_chip--primary__kBS6M:hover {
|
|
70
|
-
background-color: color-mix(in srgb, var(--primary-hover) 40%, transparent);
|
|
105
|
+
--chip-ink: var(--chip-color, var(--primary-outlined-border));
|
|
106
|
+
--chip-fill: var(--chip-color, var(--primary-main));
|
|
107
|
+
--chip-wash: var(--chip-color, var(--primary-hover));
|
|
108
|
+
--chip-on-fill: var(--primary-contrast);
|
|
71
109
|
}
|
|
72
110
|
.chip-module_chip__u4PJ9.chip-module_chip--secondary__eyfdz {
|
|
73
111
|
--themed-main: var(--secondary-main);
|
|
@@ -80,12 +118,10 @@
|
|
|
80
118
|
--themed-focus-visible: var(--secondary-focus-visible);
|
|
81
119
|
--themed-outlined-border: var(--secondary-outlined-border);
|
|
82
120
|
--themed-selected: var(--secondary-selected);
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
.chip-module_chip__u4PJ9.chip-module_chip--secondary__eyfdz:hover {
|
|
88
|
-
background-color: color-mix(in srgb, var(--secondary-hover) 40%, transparent);
|
|
121
|
+
--chip-ink: var(--chip-color, var(--secondary-outlined-border));
|
|
122
|
+
--chip-fill: var(--chip-color, var(--secondary-main));
|
|
123
|
+
--chip-wash: var(--chip-color, var(--secondary-hover));
|
|
124
|
+
--chip-on-fill: var(--secondary-contrast);
|
|
89
125
|
}
|
|
90
126
|
.chip-module_chip__u4PJ9.chip-module_chip--destructive__80JrW {
|
|
91
127
|
--themed-main: var(--destructive-main);
|
|
@@ -98,12 +134,10 @@
|
|
|
98
134
|
--themed-focus-visible: var(--destructive-focus-visible);
|
|
99
135
|
--themed-outlined-border: var(--destructive-outlined-border);
|
|
100
136
|
--themed-selected: var(--destructive-selected);
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
.chip-module_chip__u4PJ9.chip-module_chip--destructive__80JrW:hover {
|
|
106
|
-
background-color: color-mix(in srgb, var(--destructive-hover) 40%, transparent);
|
|
137
|
+
--chip-ink: var(--chip-color, var(--destructive-outlined-border));
|
|
138
|
+
--chip-fill: var(--chip-color, var(--destructive-main));
|
|
139
|
+
--chip-wash: var(--chip-color, var(--destructive-hover));
|
|
140
|
+
--chip-on-fill: var(--destructive-contrast);
|
|
107
141
|
}
|
|
108
142
|
.chip-module_chip__u4PJ9.chip-module_chip--warning__3oxvl {
|
|
109
143
|
--themed-main: var(--warning-main);
|
|
@@ -116,12 +150,10 @@
|
|
|
116
150
|
--themed-focus-visible: var(--warning-focus-visible);
|
|
117
151
|
--themed-outlined-border: var(--warning-outlined-border);
|
|
118
152
|
--themed-selected: var(--warning-selected);
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
.chip-module_chip__u4PJ9.chip-module_chip--warning__3oxvl:hover {
|
|
124
|
-
background-color: color-mix(in srgb, var(--warning-hover) 40%, transparent);
|
|
153
|
+
--chip-ink: var(--chip-color, var(--warning-outlined-border));
|
|
154
|
+
--chip-fill: var(--chip-color, var(--warning-main));
|
|
155
|
+
--chip-wash: var(--chip-color, var(--warning-hover));
|
|
156
|
+
--chip-on-fill: var(--warning-contrast);
|
|
125
157
|
}
|
|
126
158
|
.chip-module_chip__u4PJ9.chip-module_chip--success__VF1tZ {
|
|
127
159
|
--themed-main: var(--success-main);
|
|
@@ -134,12 +166,10 @@
|
|
|
134
166
|
--themed-focus-visible: var(--success-focus-visible);
|
|
135
167
|
--themed-outlined-border: var(--success-outlined-border);
|
|
136
168
|
--themed-selected: var(--success-selected);
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
.chip-module_chip__u4PJ9.chip-module_chip--success__VF1tZ:hover {
|
|
142
|
-
background-color: color-mix(in srgb, var(--success-hover) 40%, transparent);
|
|
169
|
+
--chip-ink: var(--chip-color, var(--success-outlined-border));
|
|
170
|
+
--chip-fill: var(--chip-color, var(--success-main));
|
|
171
|
+
--chip-wash: var(--chip-color, var(--success-hover));
|
|
172
|
+
--chip-on-fill: var(--success-contrast);
|
|
143
173
|
}
|
|
144
174
|
.chip-module_chip__u4PJ9.chip-module_chip--info__Jgnsc {
|
|
145
175
|
--themed-main: var(--info-main);
|
|
@@ -152,12 +182,10 @@
|
|
|
152
182
|
--themed-focus-visible: var(--info-focus-visible);
|
|
153
183
|
--themed-outlined-border: var(--info-outlined-border);
|
|
154
184
|
--themed-selected: var(--info-selected);
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
.chip-module_chip__u4PJ9.chip-module_chip--info__Jgnsc:hover {
|
|
160
|
-
background-color: color-mix(in srgb, var(--info-hover) 40%, transparent);
|
|
185
|
+
--chip-ink: var(--chip-color, var(--info-outlined-border));
|
|
186
|
+
--chip-fill: var(--chip-color, var(--info-main));
|
|
187
|
+
--chip-wash: var(--chip-color, var(--info-hover));
|
|
188
|
+
--chip-on-fill: var(--info-contrast);
|
|
161
189
|
}
|
|
162
190
|
.chip-module_chip__u4PJ9.chip-module_chip--slate__vmQ7R {
|
|
163
191
|
--themed-main: var(--slate-main);
|
|
@@ -170,10 +198,32 @@
|
|
|
170
198
|
--themed-focus-visible: var(--slate-focus-visible);
|
|
171
199
|
--themed-outlined-border: var(--slate-outlined-border);
|
|
172
200
|
--themed-selected: var(--slate-selected);
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
201
|
+
--chip-ink: var(--chip-color, var(--slate-outlined-border));
|
|
202
|
+
--chip-fill: var(--chip-color, var(--slate-main));
|
|
203
|
+
--chip-wash: var(--chip-color, var(--slate-hover));
|
|
204
|
+
--chip-on-fill: var(--slate-contrast);
|
|
176
205
|
}
|
|
177
|
-
.chip-module_chip__u4PJ9.chip-module_chip--
|
|
178
|
-
|
|
206
|
+
.chip-module_chip__u4PJ9.chip-module_chip--inherit__HjU_P {
|
|
207
|
+
--chip-ink: var(--chip-color, currentColor);
|
|
208
|
+
--chip-fill: var(--chip-color, currentColor);
|
|
209
|
+
--chip-wash: var(--chip-color, var(--themed-hover, var(--action-hover)));
|
|
210
|
+
--chip-on-fill: var(--themed-contrast, var(--background-default));
|
|
211
|
+
}
|
|
212
|
+
.chip-module_chip--soft__zYBtU {
|
|
213
|
+
background-color: color-mix(in srgb, var(--chip-wash) 20%, transparent);
|
|
214
|
+
border-color: var(--chip-ink);
|
|
215
|
+
color: var(--chip-ink);
|
|
216
|
+
}
|
|
217
|
+
.chip-module_chip--soft__zYBtU:hover {
|
|
218
|
+
background-color: color-mix(in srgb, var(--chip-wash) 40%, transparent);
|
|
219
|
+
}
|
|
220
|
+
.chip-module_chip--outline__TO-HF {
|
|
221
|
+
background-color: transparent;
|
|
222
|
+
border-color: color-mix(in srgb, var(--chip-ink) 55%, transparent);
|
|
223
|
+
color: var(--chip-ink);
|
|
224
|
+
}
|
|
225
|
+
.chip-module_chip--solid__F89cD {
|
|
226
|
+
background-color: var(--chip-fill);
|
|
227
|
+
border-color: var(--chip-fill);
|
|
228
|
+
color: var(--chip-on-fill);
|
|
179
229
|
}
|
package/dist/ui/Chip/chip.d.ts
CHANGED
|
@@ -2,7 +2,21 @@ import { type VariantProps } from 'class-variance-authority';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { chipVariants } from './chip-variants';
|
|
4
4
|
export interface ChipProps extends React.HTMLAttributes<HTMLSpanElement>, VariantProps<typeof chipVariants> {
|
|
5
|
+
/**
|
|
6
|
+
* Any colour outside the theme scale — a category hue, a dietary marker.
|
|
7
|
+
* Overrides the whole set of colour roles the theme would otherwise supply,
|
|
8
|
+
* so one value is enough for every `variant`.
|
|
9
|
+
*/
|
|
10
|
+
color?: string;
|
|
5
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* A small status marker.
|
|
14
|
+
*
|
|
15
|
+
* `variant` chooses how much weight it carries: `soft` (a tinted fill, the
|
|
16
|
+
* default) reads as ambient, `outline` recedes further, and `solid` is a claim.
|
|
17
|
+
* `dashed` marks the value as provisional — a guess rather than a reading —
|
|
18
|
+
* which is a distinction worth drawing without spending a second colour on it.
|
|
19
|
+
*/
|
|
6
20
|
declare const Chip: React.ForwardRefExoticComponent<ChipProps & React.RefAttributes<HTMLSpanElement>>;
|
|
7
21
|
export { Chip };
|
|
8
22
|
//# sourceMappingURL=chip.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chip.d.ts","sourceRoot":"","sources":["../../../src/ui/Chip/chip.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,WAAW,SACf,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,YAAY,CAAC,OAAO,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"chip.d.ts","sourceRoot":"","sources":["../../../src/ui/Chip/chip.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,WAAW,SACf,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,YAAY,CAAC,OAAO,YAAY,CAAC;IAChF;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,QAAA,MAAM,IAAI,mFAkCT,CAAC;AAGF,OAAO,EAAE,IAAI,EAAE,CAAC"}
|
package/dist/ui/Chip/chip.js
CHANGED
|
@@ -4,8 +4,16 @@ import * as React from 'react';
|
|
|
4
4
|
import { withAriaHiddenChildren } from '../../internal/with-aria-hidden-children.js';
|
|
5
5
|
import { chipVariants } from './chip-variants.js';
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
/**
|
|
8
|
+
* A small status marker.
|
|
9
|
+
*
|
|
10
|
+
* `variant` chooses how much weight it carries: `soft` (a tinted fill, the
|
|
11
|
+
* default) reads as ambient, `outline` recedes further, and `solid` is a claim.
|
|
12
|
+
* `dashed` marks the value as provisional — a guess rather than a reading —
|
|
13
|
+
* which is a distinction worth drawing without spending a second colour on it.
|
|
14
|
+
*/
|
|
15
|
+
const Chip = React.forwardRef(({ className, size, theme, variant, shape, dashed, mono, uppercase, wrap, color, style, children, ...props }, ref) => {
|
|
16
|
+
return (jsx("span", { "data-slot": 'chip', ref: ref, className: cn(chipVariants({ size, theme, variant, shape, dashed, mono, uppercase, wrap }), className), style: color ? { ...style, '--chip-color': color } : style, ...props, children: withAriaHiddenChildren(children) }));
|
|
9
17
|
});
|
|
10
18
|
Chip.displayName = 'Chip';
|
|
11
19
|
|
package/dist/ui/Chip/chip.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chip.js","sources":["../../../src/ui/Chip/chip.tsx"],"sourcesContent":["import { type VariantProps } from 'class-variance-authority';\nimport cn from 'clsx';\nimport * as React from 'react';\nimport { withAriaHiddenChildren } from '../../internal/with-aria-hidden-children';\nimport { chipVariants } from './chip-variants';\n\nexport interface ChipProps\n extends React.HTMLAttributes<HTMLSpanElement>, VariantProps<typeof chipVariants> {}\n\nconst Chip = React.forwardRef<HTMLSpanElement, ChipProps>(\n ({
|
|
1
|
+
{"version":3,"file":"chip.js","sources":["../../../src/ui/Chip/chip.tsx"],"sourcesContent":["import { type VariantProps } from 'class-variance-authority';\nimport cn from 'clsx';\nimport * as React from 'react';\nimport { withAriaHiddenChildren } from '../../internal/with-aria-hidden-children';\nimport { chipVariants } from './chip-variants';\n\nexport interface ChipProps\n extends React.HTMLAttributes<HTMLSpanElement>, VariantProps<typeof chipVariants> {\n /**\n * Any colour outside the theme scale — a category hue, a dietary marker.\n * Overrides the whole set of colour roles the theme would otherwise supply,\n * so one value is enough for every `variant`.\n */\n color?: string;\n}\n\n/**\n * A small status marker.\n *\n * `variant` chooses how much weight it carries: `soft` (a tinted fill, the\n * default) reads as ambient, `outline` recedes further, and `solid` is a claim.\n * `dashed` marks the value as provisional — a guess rather than a reading —\n * which is a distinction worth drawing without spending a second colour on it.\n */\nconst Chip = React.forwardRef<HTMLSpanElement, ChipProps>(\n (\n {\n className,\n size,\n theme,\n variant,\n shape,\n dashed,\n mono,\n uppercase,\n wrap,\n color,\n style,\n children,\n ...props\n },\n ref,\n ) => {\n return (\n <span\n data-slot={'chip'}\n ref={ref}\n className={cn(\n chipVariants({ size, theme, variant, shape, dashed, mono, uppercase, wrap }),\n className,\n )}\n style={color ? ({ ...style, '--chip-color': color } as React.CSSProperties) : style}\n {...props}\n >\n {withAriaHiddenChildren(children)}\n </span>\n );\n },\n);\nChip.displayName = 'Chip';\n\nexport { Chip };\n"],"names":["_jsx"],"mappings":";;;;;;AAgBA;;;;;;;AAOG;AACH,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAC3B,CACE,EACE,SAAS,EACT,IAAI,EACJ,KAAK,EACL,OAAO,EACP,KAAK,EACL,MAAM,EACN,IAAI,EACJ,SAAS,EACT,IAAI,EACJ,KAAK,EACL,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EACD,GAAG,KACD;AACF,IAAA,QACEA,GAAA,CAAA,MAAA,EAAA,EAAA,WAAA,EACa,MAAM,EACjB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAC5E,SAAS,CACV,EACD,KAAK,EAAE,KAAK,GAAI,EAAE,GAAG,KAAK,EAAE,cAAc,EAAE,KAAK,EAA0B,GAAG,KAAK,EAAA,GAC/E,KAAK,EAAA,QAAA,EAER,sBAAsB,CAAC,QAAQ,CAAC,EAAA,CAC5B;AAEX,CAAC;AAEH,IAAI,CAAC,WAAW,GAAG,MAAM;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import './chip.css';
|
|
2
2
|
|
|
3
|
-
var s = {"chip":"chip-module_chip__u4PJ9","chip--wrap":"chip-module_chip--wrap__YvZ3D","chip--
|
|
3
|
+
var s = {"chip":"chip-module_chip__u4PJ9","chip--wrap":"chip-module_chip--wrap__YvZ3D","chip--mono":"chip-module_chip--mono__SMCPR","chip--uppercase":"chip-module_chip--uppercase__bLI8t","chip--rounded":"chip-module_chip--rounded__epRJb","chip--dashed":"chip-module_chip--dashed__trSp1","chip--2xs":"chip-module_chip--2xs__GJtZF","chip--xs":"chip-module_chip--xs__Smd5u","chip--sm":"chip-module_chip--sm___bJkU","chip--md":"chip-module_chip--md__N7LAU","chip--primary":"chip-module_chip--primary__kBS6M","chip--secondary":"chip-module_chip--secondary__eyfdz","chip--destructive":"chip-module_chip--destructive__80JrW","chip--warning":"chip-module_chip--warning__3oxvl","chip--success":"chip-module_chip--success__VF1tZ","chip--info":"chip-module_chip--info__Jgnsc","chip--slate":"chip-module_chip--slate__vmQ7R","chip--inherit":"chip-module_chip--inherit__HjU_P","chip--soft":"chip-module_chip--soft__zYBtU","chip--outline":"chip-module_chip--outline__TO-HF","chip--solid":"chip-module_chip--solid__F89cD"};
|
|
4
4
|
|
|
5
5
|
export { s as default };
|
|
6
6
|
//# sourceMappingURL=chip.module.scss.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/StatusDot/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const statusDotVariants: (props?: ({
|
|
2
|
+
theme?: "inherit" | "primary" | "secondary" | "destructive" | "warning" | "success" | "info" | "slate" | null | undefined;
|
|
3
|
+
size?: "sm" | "md" | "lg" | null | undefined;
|
|
4
|
+
glow?: boolean | null | undefined;
|
|
5
|
+
pulse?: boolean | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
//# sourceMappingURL=status-dot-variants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-dot-variants.d.ts","sourceRoot":"","sources":["../../../src/ui/StatusDot/status-dot-variants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,iBAAiB;;;;;8EAqB5B,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { cva } from 'class-variance-authority';
|
|
2
|
+
import s from './status-dot.module.scss.js';
|
|
3
|
+
|
|
4
|
+
const statusDotVariants = cva(s['status-dot'], {
|
|
5
|
+
variants: {
|
|
6
|
+
theme: {
|
|
7
|
+
primary: s['status-dot--primary'],
|
|
8
|
+
secondary: s['status-dot--secondary'],
|
|
9
|
+
destructive: s['status-dot--destructive'],
|
|
10
|
+
warning: s['status-dot--warning'],
|
|
11
|
+
success: s['status-dot--success'],
|
|
12
|
+
info: s['status-dot--info'],
|
|
13
|
+
slate: s['status-dot--slate'],
|
|
14
|
+
inherit: s['status-dot--inherit'],
|
|
15
|
+
},
|
|
16
|
+
size: {
|
|
17
|
+
sm: s['status-dot--sm'],
|
|
18
|
+
md: s['status-dot--md'],
|
|
19
|
+
lg: s['status-dot--lg'],
|
|
20
|
+
},
|
|
21
|
+
glow: { true: s['status-dot--glow'] },
|
|
22
|
+
pulse: { true: s['status-dot--pulse'] },
|
|
23
|
+
},
|
|
24
|
+
defaultVariants: { theme: 'slate', size: 'md', glow: false, pulse: false },
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
export { statusDotVariants };
|
|
28
|
+
//# sourceMappingURL=status-dot-variants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-dot-variants.js","sources":["../../../src/ui/StatusDot/status-dot-variants.ts"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport s from './status-dot.module.scss';\n\nexport const statusDotVariants = cva(s['status-dot'], {\n variants: {\n theme: {\n primary: s['status-dot--primary'],\n secondary: s['status-dot--secondary'],\n destructive: s['status-dot--destructive'],\n warning: s['status-dot--warning'],\n success: s['status-dot--success'],\n info: s['status-dot--info'],\n slate: s['status-dot--slate'],\n inherit: s['status-dot--inherit'],\n },\n size: {\n sm: s['status-dot--sm'],\n md: s['status-dot--md'],\n lg: s['status-dot--lg'],\n },\n glow: { true: s['status-dot--glow'] },\n pulse: { true: s['status-dot--pulse'] },\n },\n defaultVariants: { theme: 'slate', size: 'md', glow: false, pulse: false },\n});\n"],"names":[],"mappings":";;;AAGO,MAAM,iBAAiB,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE;AACpD,IAAA,QAAQ,EAAE;AACR,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAE,CAAC,CAAC,qBAAqB,CAAC;AACjC,YAAA,SAAS,EAAE,CAAC,CAAC,uBAAuB,CAAC;AACrC,YAAA,WAAW,EAAE,CAAC,CAAC,yBAAyB,CAAC;AACzC,YAAA,OAAO,EAAE,CAAC,CAAC,qBAAqB,CAAC;AACjC,YAAA,OAAO,EAAE,CAAC,CAAC,qBAAqB,CAAC;AACjC,YAAA,IAAI,EAAE,CAAC,CAAC,kBAAkB,CAAC;AAC3B,YAAA,KAAK,EAAE,CAAC,CAAC,mBAAmB,CAAC;AAC7B,YAAA,OAAO,EAAE,CAAC,CAAC,qBAAqB,CAAC;AAClC,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC;AACvB,YAAA,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC;AACvB,YAAA,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC;AACxB,SAAA;QACD,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAAE;QACrC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,mBAAmB,CAAC,EAAE;AACxC,KAAA;AACD,IAAA,eAAe,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;AAC3E,CAAA;;"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
.status-dot-module_status-dot__MoSd6 {
|
|
2
|
+
background-color: var(--dot-color);
|
|
3
|
+
border-radius: 50%;
|
|
4
|
+
display: inline-block;
|
|
5
|
+
flex-shrink: 0;
|
|
6
|
+
height: var(--dot-size);
|
|
7
|
+
width: var(--dot-size);
|
|
8
|
+
}
|
|
9
|
+
.status-dot-module_status-dot--primary__DoTcY {
|
|
10
|
+
--dot-color: var(--primary-main);
|
|
11
|
+
}
|
|
12
|
+
.status-dot-module_status-dot--secondary__pnRMx {
|
|
13
|
+
--dot-color: var(--secondary-main);
|
|
14
|
+
}
|
|
15
|
+
.status-dot-module_status-dot--destructive__z-jPU {
|
|
16
|
+
--dot-color: var(--destructive-main);
|
|
17
|
+
}
|
|
18
|
+
.status-dot-module_status-dot--warning__ZFtBS {
|
|
19
|
+
--dot-color: var(--warning-main);
|
|
20
|
+
}
|
|
21
|
+
.status-dot-module_status-dot--success__cYB5i {
|
|
22
|
+
--dot-color: var(--success-main);
|
|
23
|
+
}
|
|
24
|
+
.status-dot-module_status-dot--info__sAXNn {
|
|
25
|
+
--dot-color: var(--info-main);
|
|
26
|
+
}
|
|
27
|
+
.status-dot-module_status-dot--slate__bapda {
|
|
28
|
+
--dot-color: var(--slate-main);
|
|
29
|
+
}
|
|
30
|
+
.status-dot-module_status-dot--inherit__6o2O9 {
|
|
31
|
+
--dot-color: currentColor;
|
|
32
|
+
}
|
|
33
|
+
.status-dot-module_status-dot--sm__lPs5V {
|
|
34
|
+
--dot-size: 5px;
|
|
35
|
+
}
|
|
36
|
+
.status-dot-module_status-dot--md__CELtX {
|
|
37
|
+
--dot-size: 6px;
|
|
38
|
+
}
|
|
39
|
+
.status-dot-module_status-dot--lg__7M2z0 {
|
|
40
|
+
--dot-size: 9px;
|
|
41
|
+
}
|
|
42
|
+
.status-dot-module_status-dot--glow__Tbf-5 {
|
|
43
|
+
box-shadow: 0 0 8px var(--dot-color);
|
|
44
|
+
}
|
|
45
|
+
.status-dot-module_status-dot--pulse__Vw5aP {
|
|
46
|
+
animation: status-dot-module_status-dot-pulse__zH12Y 1.5s ease-in-out infinite;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
@keyframes status-dot-module_status-dot-pulse__zH12Y {
|
|
50
|
+
0%, 100% {
|
|
51
|
+
opacity: 1;
|
|
52
|
+
}
|
|
53
|
+
50% {
|
|
54
|
+
opacity: 0.35;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
@media (prefers-reduced-motion: reduce) {
|
|
58
|
+
.status-dot-module_status-dot--pulse__Vw5aP {
|
|
59
|
+
animation: none;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { statusDotVariants } from './status-dot-variants';
|
|
4
|
+
export interface StatusDotProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'color'>, VariantProps<typeof statusDotVariants> {
|
|
5
|
+
/** A colour outside the theme scale. */
|
|
6
|
+
color?: string;
|
|
7
|
+
/** Accessible name. Omit only when adjacent text already says the state. */
|
|
8
|
+
label?: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The dot that says what state a connection or process is in.
|
|
12
|
+
*
|
|
13
|
+
* Deliberately not a `Chip`: a chip is a bordered object that holds a word,
|
|
14
|
+
* where this is a single mark that usually sits *beside* one. Pairing it with
|
|
15
|
+
* text is the caller's job, which keeps the wording — and its translation —
|
|
16
|
+
* out of here.
|
|
17
|
+
*
|
|
18
|
+
* `glow` is for the state worth catching in peripheral vision (a save landing);
|
|
19
|
+
* `pulse` for one that is still in flight.
|
|
20
|
+
*/
|
|
21
|
+
declare const StatusDot: React.ForwardRefExoticComponent<StatusDotProps & React.RefAttributes<HTMLSpanElement>>;
|
|
22
|
+
export { StatusDot };
|
|
23
|
+
//# sourceMappingURL=status-dot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-dot.d.ts","sourceRoot":"","sources":["../../../src/ui/StatusDot/status-dot.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,WAAW,cACf,SACE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC,EACpD,YAAY,CAAC,OAAO,iBAAiB,CAAC;IACxC,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;GAUG;AACH,QAAA,MAAM,SAAS,wFAed,CAAC;AAGF,OAAO,EAAE,SAAS,EAAE,CAAC"}
|