@adea-ai/ui 0.99.1 → 0.99.3
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/components/layout/orbit-layout/orbit-layout.d.ts +5 -1
- package/dist/components/layout/orbit-layout/orbit-layout.d.ts.map +1 -1
- package/dist/components/layout/orbit-layout/orbit-layout.js.map +1 -1
- package/dist/components/layout/side-rail/side-rail.d.ts +4 -1
- package/dist/components/layout/side-rail/side-rail.d.ts.map +1 -1
- package/dist/components/layout/side-rail/side-rail.js +58 -64
- package/dist/components/layout/side-rail/side-rail.js.map +1 -1
- package/dist/components/layout/sidebar-nav/sidebar-nav.js +2 -2
- package/dist/components/layout/sidebar-nav/sidebar-nav.js.map +1 -1
- package/dist/components/motion/presence.d.ts +17 -7
- package/dist/components/motion/presence.d.ts.map +1 -1
- package/dist/components/motion/presence.js.map +1 -1
- package/dist/components/theme/theme-picker.d.ts.map +1 -1
- package/dist/components/theme/theme-picker.js +1 -1
- package/dist/components/theme/theme-picker.js.map +1 -1
- package/dist/components/theme/theme-provider.d.ts.map +1 -1
- package/dist/components/theme/theme-provider.js +15 -4
- package/dist/components/theme/theme-provider.js.map +1 -1
- package/dist/components/ui/aspect-ratio/aspect-ratio.d.ts +2 -2
- package/dist/components/ui/aspect-ratio/aspect-ratio.d.ts.map +1 -1
- package/dist/components/ui/aspect-ratio/aspect-ratio.js +15 -1
- package/dist/components/ui/aspect-ratio/aspect-ratio.js.map +1 -1
- package/dist/components/ui/badge/badge.d.ts +1 -1
- package/dist/components/ui/button/button.d.ts +1 -1
- package/dist/components/ui/calendar/calendar.d.ts.map +1 -1
- package/dist/components/ui/calendar/calendar.js +1 -1
- package/dist/components/ui/calendar/calendar.js.map +1 -1
- package/dist/components/ui/card/card.d.ts +2 -2
- package/dist/components/ui/card/card.js +2 -2
- package/dist/components/ui/card/card.js.map +1 -1
- package/dist/components/ui/chart/chart-options.d.ts +50 -0
- package/dist/components/ui/chart/chart-options.d.ts.map +1 -0
- package/dist/components/ui/chart/chart-options.js +178 -0
- package/dist/components/ui/chart/chart-options.js.map +1 -0
- package/dist/components/ui/chart/chart.d.ts +21 -18
- package/dist/components/ui/chart/chart.d.ts.map +1 -1
- package/dist/components/ui/chart/chart.js +175 -155
- package/dist/components/ui/chart/chart.js.map +1 -1
- package/dist/components/ui/chart/index.js +2 -1
- package/dist/components/ui/context-menu/context-menu.d.ts +8 -0
- package/dist/components/ui/context-menu/context-menu.d.ts.map +1 -1
- package/dist/components/ui/context-menu/context-menu.js +8 -0
- package/dist/components/ui/context-menu/context-menu.js.map +1 -1
- package/dist/components/ui/drawer/drawer.d.ts +8 -1
- package/dist/components/ui/drawer/drawer.d.ts.map +1 -1
- package/dist/components/ui/drawer/drawer.js.map +1 -1
- package/dist/components/ui/dropdown-menu/dropdown-menu.d.ts +8 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu.d.ts.map +1 -1
- package/dist/components/ui/dropdown-menu/dropdown-menu.js +8 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu.js.map +1 -1
- package/dist/components/ui/input-otp/input-otp.d.ts.map +1 -1
- package/dist/components/ui/input-otp/input-otp.js +2 -2
- package/dist/components/ui/input-otp/input-otp.js.map +1 -1
- package/dist/components/ui/menubar/menubar.d.ts +8 -0
- package/dist/components/ui/menubar/menubar.d.ts.map +1 -1
- package/dist/components/ui/menubar/menubar.js +8 -0
- package/dist/components/ui/menubar/menubar.js.map +1 -1
- package/dist/components/ui/navigation-menu/navigation-menu.d.ts +14 -2
- package/dist/components/ui/navigation-menu/navigation-menu.d.ts.map +1 -1
- package/dist/components/ui/navigation-menu/navigation-menu.js +28 -23
- package/dist/components/ui/navigation-menu/navigation-menu.js.map +1 -1
- package/dist/components/ui/pagination/pagination.d.ts.map +1 -1
- package/dist/components/ui/pagination/pagination.js +1 -1
- package/dist/components/ui/pagination/pagination.js.map +1 -1
- package/dist/components/ui/resizable/resizable.d.ts +0 -12
- package/dist/components/ui/resizable/resizable.d.ts.map +1 -1
- package/dist/components/ui/resizable/resizable.js +43 -9
- package/dist/components/ui/resizable/resizable.js.map +1 -1
- package/dist/components/ui/toast/toast.d.ts.map +1 -1
- package/dist/components/ui/toast/toast.js +19 -6
- package/dist/components/ui/toast/toast.js.map +1 -1
- package/dist/lib/cn-tables.generated.js +10 -10
- package/dist/lib/cn-tables.generated.js.map +1 -1
- package/dist/r/chart.json +5 -0
- package/dist/r/registry.json +5 -0
- package/dist/r/src/components/layout/orbit-layout/orbit-layout.tsx +5 -1
- package/dist/r/src/components/layout/side-rail/side-rail.tsx +29 -16
- package/dist/r/src/components/layout/sidebar-nav/sidebar-nav.tsx +2 -2
- package/dist/r/src/components/motion/presence.tsx +17 -7
- package/dist/r/src/components/theme/theme-picker.tsx +5 -1
- package/dist/r/src/components/theme/theme-provider.tsx +19 -9
- package/dist/r/src/components/ui/aspect-ratio/aspect-ratio.tsx +14 -3
- package/dist/r/src/components/ui/calendar/calendar.tsx +6 -1
- package/dist/r/src/components/ui/card/card.tsx +2 -2
- package/dist/r/src/components/ui/chart/chart-options.ts +196 -0
- package/dist/r/src/components/ui/chart/chart.tsx +149 -101
- package/dist/r/src/components/ui/context-menu/context-menu.tsx +8 -0
- package/dist/r/src/components/ui/drawer/drawer.tsx +8 -1
- package/dist/r/src/components/ui/dropdown-menu/dropdown-menu.tsx +8 -0
- package/dist/r/src/components/ui/input-otp/input-otp.tsx +14 -2
- package/dist/r/src/components/ui/menubar/menubar.tsx +8 -0
- package/dist/r/src/components/ui/navigation-menu/navigation-menu.tsx +42 -28
- package/dist/r/src/components/ui/pagination/pagination.tsx +8 -1
- package/dist/r/src/components/ui/resizable/resizable.tsx +46 -8
- package/dist/r/src/components/ui/toast/toast.tsx +21 -6
- package/dist/r/src/lib/cn-tables.generated.ts +10 -10
- package/dist/r/src/styles/base.css +4 -1
- package/dist/r/src/styles/theme.css +23 -43
- package/package.json +1 -1
- package/registry.json +5 -0
- package/src/components/layout/orbit-layout/orbit-layout.tsx +5 -1
- package/src/components/layout/side-rail/side-rail.tsx +29 -16
- package/src/components/layout/sidebar-nav/sidebar-nav.tsx +2 -2
- package/src/components/motion/presence.tsx +17 -7
- package/src/components/theme/theme-picker.tsx +5 -1
- package/src/components/theme/theme-provider.tsx +19 -9
- package/src/components/ui/aspect-ratio/aspect-ratio.tsx +14 -3
- package/src/components/ui/calendar/calendar.tsx +6 -1
- package/src/components/ui/card/card.tsx +2 -2
- package/src/components/ui/chart/chart-options.ts +196 -0
- package/src/components/ui/chart/chart.tsx +149 -101
- package/src/components/ui/context-menu/context-menu.tsx +8 -0
- package/src/components/ui/drawer/drawer.tsx +8 -1
- package/src/components/ui/dropdown-menu/dropdown-menu.tsx +8 -0
- package/src/components/ui/input-otp/input-otp.tsx +14 -2
- package/src/components/ui/menubar/menubar.tsx +8 -0
- package/src/components/ui/navigation-menu/navigation-menu.tsx +42 -28
- package/src/components/ui/pagination/pagination.tsx +8 -1
- package/src/components/ui/resizable/resizable.tsx +46 -8
- package/src/components/ui/toast/toast.tsx +21 -6
- package/src/lib/cn-tables.generated.ts +10 -10
- package/src/styles/base.css +4 -1
- package/src/styles/theme.css +23 -43
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation-menu.js","names":["splitProps","ComponentProps","JSX","KobalteNavigationMenu","ChevronDown","cn","menuContentPadding","menuItem","overlayMotion","overlaySurface","NavigationMenuProps","Root","label","NavigationMenu","props","local","rest","_$createComponent","_$mergeProps","class","aria-label","children","_$memo","NavigationMenuViewport","NavigationMenuMenu","Menu","NavigationMenuTrigger","Trigger","NavigationMenuContent","Content","Viewport","_el$","_tmpl$","_$insert","_$effect","_$className","NavigationMenuItemProps","Item","description","icon","Element","NavigationMenuItem","_el$2","_tmpl$2","_el$3","_tmpl$3","NavigationMenuSeparator","Separator","NavigationMenuGroupLabel","GroupLabel","NavigationMenuGroup","Group","_$createComponent","_$mergeProps","_$memo","_$className"],"sources":["../../../../src/components/ui/navigation-menu/navigation-menu.tsx"],"sourcesContent":["import { splitProps, type ComponentProps, type JSX } from 'solid-js'\nimport * as KobalteNavigationMenu from '@kobalte/core/navigation-menu'\nimport { ChevronDown } from 'lucide-solid'\nimport { cn } from '#lib/utils'\nimport { menuContentPadding, menuItem, overlayMotion, overlaySurface } from '#lib/overlay'\n\n/**\n * NavigationMenu.\n *\n * A site-style menu bar: top-level triggers that open panels of links. It is the\n * header pattern — a documentation site, a marketing page, an application with\n * several top-level destinations — and it is deliberately *not* a `Menubar`.\n * `Menubar` is a row of application menus (File, Edit, View) whose items are\n * commands; this is a row of destinations whose panels are links. The two have\n * different roles, different keyboard models, and different semantics.\n *\n * ## Composition\n *\n * Kobalte's primitive has an unusual shape, and getting it wrong is why this took\n * three attempts to port. The structure is:\n *\n * ```tsx\n * <NavigationMenu>\n * <NavigationMenuMenu>\n * <NavigationMenuTrigger>Destinations</NavigationMenuTrigger>\n * <NavigationMenuContent>\n * <NavigationMenuItem href=\"/x\">X</NavigationMenuItem>\n * </NavigationMenuContent>\n * </NavigationMenuMenu>\n * <NavigationMenuViewport />\n * </NavigationMenu>\n * ```\n *\n * Three facts that are not obvious from the prop types:\n *\n * - `Menu` renders **nothing**. It is a context provider — one per top-level\n * entry, naming it so the bar's arrow keys can move between entries. A menu\n * without one cannot be reached by keyboard.\n * - `Trigger` renders `<li role=\"presentation\"><button>`. It is already the list\n * item, so wrapping it in your own `<li>` produces a `<ul>` inside a `<ul>`.\n * - `Content` must be a direct child of `Menu`, and the `Viewport` is a **sibling\n * of the menus** — not inside them. All the panels share one viewport, which is\n * what lets the bar animate between them instead of each panel popping in place.\n *\n * The wrapper enforces the last of those by rendering the `Viewport` itself, so a\n * caller cannot forget it and get a menu whose panels never appear.\n */\n\nexport type NavigationMenuProps = ComponentProps<typeof KobalteNavigationMenu.Root> & {\n /** The accessible name for the navigation landmark. */\n label?: string\n}\n\nexport function NavigationMenu(props: NavigationMenuProps) {\n const [local, rest] = splitProps(props, ['label', 'class', 'children'])\n\n return (\n <KobalteNavigationMenu.Root\n class={cn(\n 'relative flex max-w-max flex-1 items-center justify-center',\n '[&>nav>ul]:flex [&>nav>ul]:items-center [&>nav>ul]:gap-1',\n local.class\n )}\n aria-label={local.label ?? 'Main'}\n {...rest}\n >\n {local.children}\n {/*\n The shared panel surface. Rendered here rather than left to the caller:\n every panel animates through this one element, and a menu bar without it\n opens panels that never paint.\n */}\n <NavigationMenuViewport />\n </KobalteNavigationMenu.Root>\n )\n}\n\n/**\n * One top-level entry. Renders nothing itself — see the note above — and exists\n * so a caller cannot build a bar whose entries the keyboard cannot reach.\n */\nexport function NavigationMenuMenu(props: ComponentProps<typeof KobalteNavigationMenu.Menu>) {\n return <KobalteNavigationMenu.Menu {...props} />\n}\n\nexport function NavigationMenuTrigger(props: ComponentProps<typeof KobalteNavigationMenu.Trigger>) {\n const [local, rest] = splitProps(props, ['class', 'children'])\n\n return (\n <KobalteNavigationMenu.Trigger\n class={cn(\n 'inline-flex items-center gap-1 rounded-md px-3 py-1.5 text-sm font-medium text-muted-foreground',\n 'transition-colors ease-out outline-none select-none',\n 'hover:bg-muted hover:text-foreground',\n 'data-[expanded]:bg-muted data-[expanded]:text-foreground',\n 'data-[highlighted]:bg-muted data-[highlighted]:text-foreground',\n 'focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none',\n local.class\n )}\n {...rest}\n >\n {local.children}\n <ChevronDown\n aria-hidden=\"true\"\n class=\"size-3.5 transition-transform duration-200 ease-out [[data-expanded]_&]:rotate-180\"\n />\n </KobalteNavigationMenu.Trigger>\n )\n}\n\nexport function NavigationMenuContent(props: ComponentProps<typeof KobalteNavigationMenu.Content>) {\n const [local, rest] = splitProps(props, ['class', 'children'])\n\n return (\n <KobalteNavigationMenu.Content\n class={cn(\n 'grid w-max gap-1 p-2',\n // A two-column panel is the shape most menu bars want, and it is opt-in\n // through this hook rather than a prop because the column count is a\n // layout decision the caller's content makes.\n 'data-[wide]:grid-cols-2',\n local.class\n )}\n {...rest}\n >\n {local.children}\n </KobalteNavigationMenu.Content>\n )\n}\n\n/**\n * The shared panel surface. One per menu bar, and the wrapper supplies it — but\n * exported so a caller with an unusual layout can place it themselves.\n */\nexport function NavigationMenuViewport(\n props: ComponentProps<typeof KobalteNavigationMenu.Viewport>\n) {\n const [local, rest] = splitProps(props, ['class'])\n\n return (\n <KobalteNavigationMenu.Viewport\n class={cn(\n 'absolute top-full left-0 isolate z-(--z-menu) mt-1.5 flex justify-center overflow-hidden',\n 'h-(--kb-navigation-menu-viewport-height) w-(--kb-navigation-menu-viewport-width)',\n 'origin-top transition-[width,height] duration-200 ease-out',\n local.class\n )}\n {...rest}\n >\n <div\n class={cn(\n overlaySurface,\n overlayMotion,\n 'w-full rounded-lg border border-border bg-popover p-1 shadow-lg'\n )}\n >\n <KobalteNavigationMenu.Content />\n </div>\n </KobalteNavigationMenu.Viewport>\n )\n}\n\n/**\n * A link inside a panel. `href` is the point of the component, so it is a link\n * rather than a button — and the accessible name comes from its text, which is\n * why there is no `aria-label` here.\n */\nexport type NavigationMenuItemProps = ComponentProps<typeof KobalteNavigationMenu.Item> & {\n /** A one-line description, shown under the label. */\n description?: string\n /** A leading icon. */\n icon?: JSX.Element\n}\n\nexport function NavigationMenuItem(props: NavigationMenuItemProps) {\n const [local, rest] = splitProps(props, ['class', 'children', 'description', 'icon'])\n\n return (\n <KobalteNavigationMenu.Item\n class={cn(\n menuItem,\n 'grid grid-cols-[auto_1fr] items-center gap-x-2 gap-y-0.5',\n local.description && 'grid-rows-[auto_auto] py-2',\n local.class\n )}\n {...rest}\n >\n {local.icon}\n <span class=\"font-medium\">{local.children}</span>\n {local.description && (\n <span class=\"col-start-2 text-xs text-muted-foreground\">{local.description}</span>\n )}\n </KobalteNavigationMenu.Item>\n )\n}\n\nexport function NavigationMenuSeparator(\n props: ComponentProps<typeof KobalteNavigationMenu.Separator>\n) {\n const [local, rest] = splitProps(props, ['class'])\n return (\n <KobalteNavigationMenu.Separator\n class={cn('-mx-1 my-1 h-px bg-border', local.class)}\n {...rest}\n />\n )\n}\n\n/** A non-interactive caption above a group of items. */\nexport function NavigationMenuGroupLabel(\n props: ComponentProps<typeof KobalteNavigationMenu.GroupLabel>\n) {\n const [local, rest] = splitProps(props, ['class'])\n return (\n <KobalteNavigationMenu.GroupLabel\n class={cn(\n menuContentPadding,\n 'text-2xs font-semibold text-muted-foreground uppercase',\n local.class\n )}\n {...rest}\n />\n )\n}\n\nexport function NavigationMenuGroup(props: ComponentProps<typeof KobalteNavigationMenu.Group>) {\n const [local, rest] = splitProps(props, ['class'])\n return <KobalteNavigationMenu.Group class={cn('grid gap-0.5', local.class)} {...rest} />\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"navigation-menu.js","names":["splitProps","ComponentProps","JSX","KobalteNavigationMenu","ChevronDown","cn","menuContentPadding","menuItem","overlayMotion","overlaySurface","NavigationMenuProps","Root","label","NavigationMenu","props","local","rest","_$createComponent","_$mergeProps","class","aria-label","children","_$memo","NavigationMenuViewport","NavigationMenuMenu","Menu","NavigationMenuTrigger","Trigger","NavigationMenuContent","Content","Portal","Viewport","NavigationMenuItemProps","Item","description","icon","Element","NavigationMenuItem","_el$","_tmpl$","_$insert","_el$2","_tmpl$2","NavigationMenuSeparator","Separator","NavigationMenuGroupLabel","GroupLabel","NavigationMenuGroup","Group","_$createComponent","_$mergeProps","_$memo"],"sources":["../../../../src/components/ui/navigation-menu/navigation-menu.tsx"],"sourcesContent":["import { splitProps, type ComponentProps, type JSX } from 'solid-js'\nimport * as KobalteNavigationMenu from '@kobalte/core/navigation-menu'\nimport { ChevronDown } from 'lucide-solid'\nimport { cn } from '#lib/utils'\nimport { menuContentPadding, menuItem, overlayMotion, overlaySurface } from '#lib/overlay'\n\n/**\n * NavigationMenu.\n *\n * A site-style menu bar: top-level triggers that open panels of links. It is the\n * header pattern — a documentation site, a marketing page, an application with\n * several top-level destinations — and it is deliberately *not* a `Menubar`.\n * `Menubar` is a row of application menus (File, Edit, View) whose items are\n * commands; this is a row of destinations whose panels are links. The two have\n * different roles, different keyboard models, and different semantics.\n *\n * ## Composition\n *\n * Kobalte's primitive has an unusual shape, and getting it wrong is why this took\n * three attempts to port. The structure is:\n *\n * ```tsx\n * <NavigationMenu>\n * <NavigationMenuMenu>\n * <NavigationMenuTrigger>Destinations</NavigationMenuTrigger>\n * <NavigationMenuContent>\n * <NavigationMenuItem href=\"/x\">X</NavigationMenuItem>\n * </NavigationMenuContent>\n * </NavigationMenuMenu>\n * <NavigationMenuViewport />\n * </NavigationMenu>\n * ```\n *\n * Three facts that are not obvious from the prop types:\n *\n * - `Menu` renders **nothing**. It is a context provider — one per top-level\n * entry, naming it so the bar's arrow keys can move between entries. A menu\n * without one cannot be reached by keyboard.\n * - `Trigger` renders `<li role=\"presentation\"><button>`. It is already the list\n * item, so wrapping it in your own `<li>` produces a `<ul>` inside a `<ul>`.\n * - `Content` must be a direct child of `Menu`, and the `Viewport` is a **sibling\n * of the menus** — not inside them. All the panels share one viewport, which is\n * what lets the bar animate between them instead of each panel popping in place.\n * - The viewport is an empty surface. Each `Content` reaches it through Kobalte's\n * `Portal`, which mounts the panel inside the viewport while keeping it in its\n * own `Menu`'s context. A `Content` rendered anywhere else — the viewport's own\n * children included — has no `Menu` above it, and Kobalte throws\n * `useMenuRootContext must be used within a MenuRoot` the moment a panel opens.\n *\n * The wrapper enforces the last two by rendering the `Viewport` itself and by\n * portalling every `NavigationMenuContent`, so a caller cannot forget either and\n * get a menu whose panels never appear.\n */\n\nexport type NavigationMenuProps = ComponentProps<typeof KobalteNavigationMenu.Root> & {\n /** The accessible name for the navigation landmark. */\n label?: string\n}\n\nexport function NavigationMenu(props: NavigationMenuProps) {\n const [local, rest] = splitProps(props, ['label', 'class', 'children'])\n\n return (\n <KobalteNavigationMenu.Root\n class={cn(\n 'relative flex max-w-max flex-1 items-center justify-center',\n '[&>nav>ul]:flex [&>nav>ul]:items-center [&>nav>ul]:gap-1',\n local.class\n )}\n aria-label={local.label ?? 'Main'}\n {...rest}\n >\n {local.children}\n {/*\n The shared panel surface. Rendered here rather than left to the caller:\n every panel animates through this one element, and a menu bar without it\n opens panels that never paint.\n */}\n <NavigationMenuViewport />\n </KobalteNavigationMenu.Root>\n )\n}\n\n/**\n * One top-level entry. Renders nothing itself — see the note above — and exists\n * so a caller cannot build a bar whose entries the keyboard cannot reach.\n */\nexport function NavigationMenuMenu(props: ComponentProps<typeof KobalteNavigationMenu.Menu>) {\n return <KobalteNavigationMenu.Menu {...props} />\n}\n\nexport function NavigationMenuTrigger(props: ComponentProps<typeof KobalteNavigationMenu.Trigger>) {\n const [local, rest] = splitProps(props, ['class', 'children'])\n\n return (\n <KobalteNavigationMenu.Trigger\n class={cn(\n 'inline-flex items-center gap-1 rounded-md px-3 py-1.5 text-sm font-medium text-muted-foreground',\n 'transition-colors ease-out outline-none select-none',\n 'hover:bg-muted hover:text-foreground',\n 'data-[expanded]:bg-muted data-[expanded]:text-foreground',\n 'data-[highlighted]:bg-muted data-[highlighted]:text-foreground',\n 'focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none',\n local.class\n )}\n {...rest}\n >\n {local.children}\n <ChevronDown\n aria-hidden=\"true\"\n class=\"size-3.5 transition-transform duration-200 ease-out [[data-expanded]_&]:rotate-180\"\n />\n </KobalteNavigationMenu.Trigger>\n )\n}\n\nexport function NavigationMenuContent(props: ComponentProps<typeof KobalteNavigationMenu.Content>) {\n const [local, rest] = splitProps(props, ['class', 'children'])\n\n return (\n <KobalteNavigationMenu.Portal>\n <KobalteNavigationMenu.Content\n class={cn(\n // Absolute so the viewport sizes to the active panel's measured box and\n // animates between panels, rather than stacking them.\n 'absolute top-0 left-0 grid w-max gap-1 p-2 outline-none',\n // The motion is the panel's, not the viewport's. Kobalte keeps an\n // outgoing panel mounted until the viewport's own animation ends; a\n // viewport that carries an entrance animation never fires that again\n // after it opens, so the previous panel would stay painted under the\n // next one.\n overlayMotion,\n // A two-column panel is the shape most menu bars want, and it is opt-in\n // through this hook rather than a prop because the column count is a\n // layout decision the caller's content makes.\n 'data-[wide]:grid-cols-2',\n local.class\n )}\n {...rest}\n >\n {local.children}\n </KobalteNavigationMenu.Content>\n </KobalteNavigationMenu.Portal>\n )\n}\n\n/**\n * The shared panel surface. One per menu bar, and the wrapper supplies it — but\n * exported so a caller with an unusual layout can place it themselves.\n *\n * It renders no children: the panels arrive through each `NavigationMenuContent`'s\n * portal. Kobalte positions it under the bar and publishes the active panel's size\n * as `--kb-navigation-menu-viewport-*`, which the surface animates between.\n * `box-content` keeps the border outside that measured size so a panel is never\n * clipped by its own frame.\n */\nexport function NavigationMenuViewport(\n props: ComponentProps<typeof KobalteNavigationMenu.Viewport>\n) {\n const [local, rest] = splitProps(props, ['class'])\n\n return (\n <KobalteNavigationMenu.Viewport\n data-slot=\"navigation-menu-viewport\"\n class={cn(\n overlaySurface,\n 'isolate z-(--z-menu) mt-1.5 box-content list-none overflow-hidden',\n 'h-(--kb-navigation-menu-viewport-height) w-(--kb-navigation-menu-viewport-width)',\n 'origin-(--kb-menu-content-transform-origin) transition-[width,height] duration-200 ease-out',\n local.class\n )}\n {...rest}\n />\n )\n}\n\n/**\n * A link inside a panel. `href` is the point of the component, so it is a link\n * rather than a button — and the accessible name comes from its text, which is\n * why there is no `aria-label` here.\n */\nexport type NavigationMenuItemProps = ComponentProps<typeof KobalteNavigationMenu.Item> & {\n /** A one-line description, shown under the label. */\n description?: string\n /** A leading icon. */\n icon?: JSX.Element\n}\n\nexport function NavigationMenuItem(props: NavigationMenuItemProps) {\n const [local, rest] = splitProps(props, ['class', 'children', 'description', 'icon'])\n\n return (\n <KobalteNavigationMenu.Item\n class={cn(\n menuItem,\n 'grid grid-cols-[auto_1fr] items-center gap-x-2 gap-y-0.5',\n local.description && 'grid-rows-[auto_auto] py-2',\n local.class\n )}\n {...rest}\n >\n {local.icon}\n <span class=\"font-medium\">{local.children}</span>\n {local.description && (\n <span class=\"col-start-2 text-xs text-muted-foreground\">{local.description}</span>\n )}\n </KobalteNavigationMenu.Item>\n )\n}\n\nexport function NavigationMenuSeparator(\n props: ComponentProps<typeof KobalteNavigationMenu.Separator>\n) {\n const [local, rest] = splitProps(props, ['class'])\n return (\n <KobalteNavigationMenu.Separator\n class={cn('-mx-1 my-1 h-px bg-border', local.class)}\n {...rest}\n />\n )\n}\n\n/** A non-interactive caption above a group of items. */\nexport function NavigationMenuGroupLabel(\n props: ComponentProps<typeof KobalteNavigationMenu.GroupLabel>\n) {\n const [local, rest] = splitProps(props, ['class'])\n return (\n <KobalteNavigationMenu.GroupLabel\n class={cn(\n menuContentPadding,\n 'text-2xs font-semibold text-muted-foreground uppercase',\n local.class\n )}\n {...rest}\n />\n )\n}\n\nexport function NavigationMenuGroup(props: ComponentProps<typeof KobalteNavigationMenu.Group>) {\n const [local, rest] = splitProps(props, ['class'])\n return <KobalteNavigationMenu.Group class={cn('grid gap-0.5', local.class)} {...rest} />\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/pagination/pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,IAAI,iBAAiB,EAC/B,KAAK,qBAAqB,EAC3B,MAAM,0BAA0B,CAAA;AAEjC,OAAO,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAInD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,qBAAqB,EAAE,eAAe,GAAG,mBAAmB,CAAC,GAAG;IACjG,aAAa,CAAC,EAAE,qBAAqB,CAAC,eAAe,CAAC,CAAA;IACtD,iBAAiB,CAAC,EAAE,qBAAqB,CAAC,mBAAmB,CAAC,CAAA;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;CACvB,CAAA;AAWD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/pagination/pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,IAAI,iBAAiB,EAC/B,KAAK,qBAAqB,EAC3B,MAAM,0BAA0B,CAAA;AAEjC,OAAO,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAInD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,qBAAqB,EAAE,eAAe,GAAG,mBAAmB,CAAC,GAAG;IACjG,aAAa,CAAC,EAAE,qBAAqB,CAAC,eAAe,CAAC,CAAA;IACtD,iBAAiB,CAAC,EAAE,qBAAqB,CAAC,mBAAmB,CAAC,CAAA;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;CACvB,CAAA;AAWD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,eA8BhD;AAaD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,iBAAiB,CAAC,QAAQ,CAAC,eAa1F;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC,eAalF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC,eAelF;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,cAAc,CAAC,OAAO,iBAAiB,CAAC,QAAQ,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;CAAE,eAiBtF"}
|
|
@@ -30,7 +30,7 @@ function Pagination$1(props) {
|
|
|
30
30
|
return local.ellipsisComponent ?? (() => createComponent(PaginationEllipsis, {}));
|
|
31
31
|
},
|
|
32
32
|
get ["class"]() {
|
|
33
|
-
return cn("flex w-full items-center justify-center gap-1", local.class);
|
|
33
|
+
return cn("flex w-full items-center justify-center [&>ul]:m-0 [&>ul]:flex [&>ul]:list-none [&>ul]:items-center [&>ul]:gap-1 [&>ul]:p-0", local.class);
|
|
34
34
|
}
|
|
35
35
|
}, rest, { get children() {
|
|
36
36
|
return createComponent(Show, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagination.js","names":["Pagination","KobaltePagination","PaginationRootOptions","ChevronLeft","ChevronRight","MoreHorizontal","ComponentProps","JSX","Show","splitProps","cn","PaginationProps","Omit","itemComponent","ellipsisComponent","class","children","Element","paginationControl","props","local","rest","_$createComponent","_$mergeProps","itemProps","PaginationItem","page","PaginationEllipsis","when","fallback","DefaultPaginationControls","PaginationPrevious","Items","PaginationNext","Previous","_tmpl$","Next","_tmpl$2","Item","Ellipsis","_tmpl$3","Pagination","_$createComponent","KobaltePagination","_$mergeProps"],"sources":["../../../../src/components/ui/pagination/pagination.tsx"],"sourcesContent":["import {\n Pagination as KobaltePagination,\n type PaginationRootOptions,\n} from '@kobalte/core/pagination'\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from 'lucide-solid'\nimport type { ComponentProps, JSX } from 'solid-js'\nimport { Show, splitProps } from 'solid-js'\nimport { cn } from '#lib/utils'\n\n/**\n * Pagination.\n *\n * Page navigation for a list the server pages, not for a list the client already\n * holds — slicing an array you have is a filter, and it should not spend a round\n * trip.\n *\n * Kobalte computes the visible page window and the ellipsis positions and emits\n * `aria-current=\"page\"`, so the control announces which page is active instead of\n * leaving it to colour alone.\n *\n * The item and ellipsis renderers are *supplied here*, not required of the caller.\n * Kobalte's root makes them mandatory because it has no opinion about how a page\n * number should look; a design system does, so the only thing a caller has to pass\n * is `count` — while still being able to override either renderer when a view\n * needs to.\n */\nexport type PaginationProps = Omit<PaginationRootOptions, 'itemComponent' | 'ellipsisComponent'> & {\n itemComponent?: PaginationRootOptions['itemComponent']\n ellipsisComponent?: PaginationRootOptions['ellipsisComponent']\n class?: string\n children?: JSX.Element\n}\n\nconst paginationControl = cn(\n 'inline-flex h-control-md min-w-(--control-height-md) items-center justify-center gap-1 rounded-md border border-transparent px-2 text-sm tabular-nums',\n 'transition-colors ease-out outline-none select-none',\n 'hover:bg-surface-hover',\n 'focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-primary-subtle',\n 'disabled:pointer-events-none disabled:opacity-50',\n '[&_svg]:pointer-events-none [&_svg]:size-4'\n)\n\nexport function Pagination(props: PaginationProps) {\n const [local, rest] = splitProps(props, [\n 'class',\n 'itemComponent',\n 'ellipsisComponent',\n 'children',\n ])\n\n return (\n <KobaltePagination\n itemComponent={\n local.itemComponent ??\n ((itemProps) => <PaginationItem page={itemProps.page}>{itemProps.page}</PaginationItem>)\n }\n ellipsisComponent={local.ellipsisComponent ?? (() => <PaginationEllipsis />)}\n class={cn('flex w-full items-center justify-center gap-1'
|
|
1
|
+
{"version":3,"file":"pagination.js","names":["Pagination","KobaltePagination","PaginationRootOptions","ChevronLeft","ChevronRight","MoreHorizontal","ComponentProps","JSX","Show","splitProps","cn","PaginationProps","Omit","itemComponent","ellipsisComponent","class","children","Element","paginationControl","props","local","rest","_$createComponent","_$mergeProps","itemProps","PaginationItem","page","PaginationEllipsis","when","fallback","DefaultPaginationControls","PaginationPrevious","Items","PaginationNext","Previous","_tmpl$","Next","_tmpl$2","Item","Ellipsis","_tmpl$3","Pagination","_$createComponent","KobaltePagination","_$mergeProps"],"sources":["../../../../src/components/ui/pagination/pagination.tsx"],"sourcesContent":["import {\n Pagination as KobaltePagination,\n type PaginationRootOptions,\n} from '@kobalte/core/pagination'\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from 'lucide-solid'\nimport type { ComponentProps, JSX } from 'solid-js'\nimport { Show, splitProps } from 'solid-js'\nimport { cn } from '#lib/utils'\n\n/**\n * Pagination.\n *\n * Page navigation for a list the server pages, not for a list the client already\n * holds — slicing an array you have is a filter, and it should not spend a round\n * trip.\n *\n * Kobalte computes the visible page window and the ellipsis positions and emits\n * `aria-current=\"page\"`, so the control announces which page is active instead of\n * leaving it to colour alone.\n *\n * The item and ellipsis renderers are *supplied here*, not required of the caller.\n * Kobalte's root makes them mandatory because it has no opinion about how a page\n * number should look; a design system does, so the only thing a caller has to pass\n * is `count` — while still being able to override either renderer when a view\n * needs to.\n */\nexport type PaginationProps = Omit<PaginationRootOptions, 'itemComponent' | 'ellipsisComponent'> & {\n itemComponent?: PaginationRootOptions['itemComponent']\n ellipsisComponent?: PaginationRootOptions['ellipsisComponent']\n class?: string\n children?: JSX.Element\n}\n\nconst paginationControl = cn(\n 'inline-flex h-control-md min-w-(--control-height-md) items-center justify-center gap-1 rounded-md border border-transparent px-2 text-sm tabular-nums',\n 'transition-colors ease-out outline-none select-none',\n 'hover:bg-surface-hover',\n 'focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-primary-subtle',\n 'disabled:pointer-events-none disabled:opacity-50',\n '[&_svg]:pointer-events-none [&_svg]:size-4'\n)\n\nexport function Pagination(props: PaginationProps) {\n const [local, rest] = splitProps(props, [\n 'class',\n 'itemComponent',\n 'ellipsisComponent',\n 'children',\n ])\n\n return (\n <KobaltePagination\n itemComponent={\n local.itemComponent ??\n ((itemProps) => <PaginationItem page={itemProps.page}>{itemProps.page}</PaginationItem>)\n }\n ellipsisComponent={local.ellipsisComponent ?? (() => <PaginationEllipsis />)}\n // Kobalte renders the root as a `<nav>` wrapping a `<ul>`, and every control —\n // previous, the page run, next — is an `<li>` inside that list. The row has to be\n // declared on the list: on the `<nav>` alone it lays out one child and the\n // controls stack vertically.\n class={cn(\n 'flex w-full items-center justify-center [&>ul]:m-0 [&>ul]:flex [&>ul]:list-none [&>ul]:items-center [&>ul]:gap-1 [&>ul]:p-0',\n local.class\n )}\n {...rest}\n >\n <Show when={local.children} fallback={<DefaultPaginationControls />}>\n {local.children}\n </Show>\n </KobaltePagination>\n )\n}\n\n/** Previous, the numbered run, next: the arrangement every list view wants. */\nfunction DefaultPaginationControls() {\n return (\n <>\n <PaginationPrevious />\n <KobaltePagination.Items />\n <PaginationNext />\n </>\n )\n}\n\nexport function PaginationPrevious(props: ComponentProps<typeof KobaltePagination.Previous>) {\n const [local, rest] = splitProps(props, ['class', 'children'])\n\n return (\n <KobaltePagination.Previous class={cn(paginationControl, 'ps-1.5', local.class)} {...rest}>\n {local.children ?? (\n <>\n <ChevronLeft class=\"size-4\" />\n <span class=\"hidden sm:inline\">Previous</span>\n </>\n )}\n </KobaltePagination.Previous>\n )\n}\n\nexport function PaginationNext(props: ComponentProps<typeof KobaltePagination.Next>) {\n const [local, rest] = splitProps(props, ['class', 'children'])\n\n return (\n <KobaltePagination.Next class={cn(paginationControl, 'pe-1.5', local.class)} {...rest}>\n {local.children ?? (\n <>\n <span class=\"hidden sm:inline\">Next</span>\n <ChevronRight class=\"size-4\" />\n </>\n )}\n </KobaltePagination.Next>\n )\n}\n\nexport function PaginationItem(props: ComponentProps<typeof KobaltePagination.Item>) {\n const [local, rest] = splitProps(props, ['class', 'children'])\n\n return (\n <KobaltePagination.Item\n class={cn(\n paginationControl,\n 'data-[current]:border-border data-[current]:bg-surface-active data-[current]:font-medium',\n local.class\n )}\n {...rest}\n >\n {local.children}\n </KobaltePagination.Item>\n )\n}\n\nexport function PaginationEllipsis(\n props: ComponentProps<typeof KobaltePagination.Ellipsis> & { children?: JSX.Element }\n) {\n const [local, rest] = splitProps(props, ['class', 'children'])\n\n return (\n <KobaltePagination.Ellipsis\n class={cn('flex size-control-md items-center justify-center', local.class)}\n {...rest}\n >\n {local.children ?? (\n <>\n <MoreHorizontal class=\"size-4\" />\n <span class=\"visually-hidden\">More pages</span>\n </>\n )}\n </KobaltePagination.Ellipsis>\n )\n}\n"],"mappings":"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"}
|
|
@@ -1,17 +1,5 @@
|
|
|
1
1
|
import Resizable from '@corvu/resizable';
|
|
2
2
|
import type { ComponentProps } from 'solid-js';
|
|
3
|
-
/**
|
|
4
|
-
* Resizable.
|
|
5
|
-
*
|
|
6
|
-
* A split layout: panels the user can resize, with a handle between them. This
|
|
7
|
-
* is the shape of every IDE-like surface — rail, file tree, editor, terminal —
|
|
8
|
-
* and the reason it is a primitive rather than something each view improvises.
|
|
9
|
-
*
|
|
10
|
-
* corvu supplies the pointer capture, the min/max constraints and the keyboard
|
|
11
|
-
* resizing, which is what makes a divider operable without a mouse. The handle
|
|
12
|
-
* is a real focusable element with an accessible role, so a split pane can be
|
|
13
|
-
* adjusted from the keyboard; a bare `cursor-col-resize` div cannot.
|
|
14
|
-
*/
|
|
15
3
|
export declare function ResizablePanelGroup(props: ComponentProps<typeof Resizable> & {
|
|
16
4
|
class?: string;
|
|
17
5
|
}): import("solid-js").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resizable.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/resizable/resizable.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,kBAAkB,CAAA;AAExC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"resizable.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/resizable/resizable.tsx"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,kBAAkB,CAAA;AAExC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAuB9C,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,SAAS,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,kCAW/F;AAgBD,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,kCAchG;AAED,MAAM,MAAM,oBAAoB,GAAG,cAAc,CAAC,OAAO,SAAS,CAAC,MAAM,CAAC,GAAG;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wDAAwD;IACxD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,kCA+B1D"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { cn } from "../../../lib/utils.js";
|
|
2
2
|
import { createComponent, insert, memo, mergeProps, template } from "solid-js/web";
|
|
3
3
|
import { GripVertical } from "lucide-solid";
|
|
4
|
-
import { splitProps } from "solid-js";
|
|
4
|
+
import { createContext, splitProps, useContext } from "solid-js";
|
|
5
5
|
import Resizable from "@corvu/resizable";
|
|
6
6
|
//#region src/components/ui/resizable/resizable.tsx
|
|
7
7
|
var _tmpl$ = /*#__PURE__*/ template(`<div class="bg-border z-(--z-docked) flex h-4 w-2.5 items-center justify-center rounded-sm border border-border">`);
|
|
@@ -17,17 +17,48 @@ var _tmpl$ = /*#__PURE__*/ template(`<div class="bg-border z-(--z-docked) flex h
|
|
|
17
17
|
* is a real focusable element with an accessible role, so a split pane can be
|
|
18
18
|
* adjusted from the keyboard; a bare `cursor-col-resize` div cannot.
|
|
19
19
|
*/
|
|
20
|
+
/**
|
|
21
|
+
* Whether the group was given `initialSizes`. Those are corvu's to apply, and a
|
|
22
|
+
* panel's own `initialSize` overrides them — so an unsized panel must not invent
|
|
23
|
+
* one when the group already has an answer.
|
|
24
|
+
*/
|
|
25
|
+
var GroupSizesContext = createContext(() => false);
|
|
20
26
|
function ResizablePanelGroup(props) {
|
|
21
27
|
const [local, rest] = splitProps(props, ["class"]);
|
|
22
|
-
return createComponent(
|
|
23
|
-
|
|
24
|
-
|
|
28
|
+
return createComponent(GroupSizesContext.Provider, {
|
|
29
|
+
value: () => rest.initialSizes !== void 0,
|
|
30
|
+
get children() {
|
|
31
|
+
return createComponent(Resizable, mergeProps({ get ["class"]() {
|
|
32
|
+
return cn("flex size-full data-[orientation=vertical]:flex-col", local.class);
|
|
33
|
+
} }, rest));
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The size an unsized panel registers with: whatever its earlier siblings left.
|
|
39
|
+
*
|
|
40
|
+
* corvu registers a panel without `initialSize` at a flat 50%, so `0.28` beside
|
|
41
|
+
* an unsized panel summed to 78% and left a gap. Panels register in document
|
|
42
|
+
* order, so at registration `sizes` holds exactly the panels before this one.
|
|
43
|
+
* When nothing is left — a second unsized panel — it takes an equal share, and
|
|
44
|
+
* corvu shrinks the earlier panels by that share to keep the total at 100%.
|
|
45
|
+
*/
|
|
46
|
+
function remainingSize(sizes) {
|
|
47
|
+
const left = 1 - sizes.reduce((total, size) => total + size, 0);
|
|
48
|
+
return left > .001 ? left : 1 / (sizes.length + 1);
|
|
25
49
|
}
|
|
26
50
|
function ResizablePanel(props) {
|
|
27
|
-
const [local, rest] = splitProps(props, ["class"]);
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
51
|
+
const [local, rest] = splitProps(props, ["class", "initialSize"]);
|
|
52
|
+
const group = Resizable.useContext(rest.contextId);
|
|
53
|
+
const groupHasSizes = useContext(GroupSizesContext);
|
|
54
|
+
return createComponent(Resizable.Panel, mergeProps({
|
|
55
|
+
get initialSize() {
|
|
56
|
+
return local.initialSize ?? (groupHasSizes() ? void 0 : remainingSize(group.sizes()));
|
|
57
|
+
},
|
|
58
|
+
get ["class"]() {
|
|
59
|
+
return cn("min-h-0 min-w-0 overflow-hidden", local.class);
|
|
60
|
+
}
|
|
61
|
+
}, rest));
|
|
31
62
|
}
|
|
32
63
|
function ResizableHandle(props) {
|
|
33
64
|
const [local, rest] = splitProps(props, [
|
|
@@ -35,11 +66,14 @@ function ResizableHandle(props) {
|
|
|
35
66
|
"withHandle",
|
|
36
67
|
"label"
|
|
37
68
|
]);
|
|
69
|
+
const group = Resizable.useContext(rest.contextId);
|
|
38
70
|
return createComponent(Resizable.Handle, mergeProps({
|
|
39
71
|
get ["aria-label"]() {
|
|
40
72
|
return local.label ?? "Resize panels";
|
|
41
73
|
},
|
|
42
|
-
"aria-orientation"
|
|
74
|
+
get ["aria-orientation"]() {
|
|
75
|
+
return group.orientation() === "horizontal" ? "vertical" : "horizontal";
|
|
76
|
+
},
|
|
43
77
|
get ["class"]() {
|
|
44
78
|
return cn("group/resize bg-border relative flex w-px shrink-0 items-center justify-center", "after:absolute after:inset-y-0 after:-inset-x-1 after:w-3", "transition-colors ease-out hover:bg-primary", "focus-visible:bg-primary focus-visible:outline-none", "data-[orientation=vertical]:h-px data-[orientation=vertical]:w-full", "data-[orientation=vertical]:after:inset-x-0 data-[orientation=vertical]:after:-inset-y-1 data-[orientation=vertical]:after:h-3 data-[orientation=vertical]:after:w-full", local.class);
|
|
45
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resizable.js","names":["Resizable","GripVertical","ComponentProps","splitProps","cn","ResizablePanelGroup","props","class","local","rest","_$createComponent","_$mergeProps","ResizablePanel","Panel","ResizableHandleProps","Handle","withHandle","label","ResizableHandle","aria-label","
|
|
1
|
+
{"version":3,"file":"resizable.js","names":["Resizable","GripVertical","ComponentProps","createContext","splitProps","useContext","cn","GroupSizesContext","ResizablePanelGroup","props","class","local","rest","_$createComponent","Provider","value","initialSizes","undefined","children","_$mergeProps","remainingSize","sizes","left","reduce","total","size","length","ResizablePanel","Panel","group","contextId","groupHasSizes","initialSize","ResizableHandleProps","Handle","withHandle","label","ResizableHandle","aria-label","aria-orientation","orientation","_$memo","_el$","_tmpl$","_$insert","_$createComponent","_$mergeProps","_$memo"],"sources":["../../../../src/components/ui/resizable/resizable.tsx"],"sourcesContent":["import Resizable from '@corvu/resizable'\nimport { GripVertical } from 'lucide-solid'\nimport type { ComponentProps } from 'solid-js'\nimport { createContext, splitProps, useContext } from 'solid-js'\nimport { cn } from '#lib/utils'\n\n/**\n * Resizable.\n *\n * A split layout: panels the user can resize, with a handle between them. This\n * is the shape of every IDE-like surface — rail, file tree, editor, terminal —\n * and the reason it is a primitive rather than something each view improvises.\n *\n * corvu supplies the pointer capture, the min/max constraints and the keyboard\n * resizing, which is what makes a divider operable without a mouse. The handle\n * is a real focusable element with an accessible role, so a split pane can be\n * adjusted from the keyboard; a bare `cursor-col-resize` div cannot.\n */\n/**\n * Whether the group was given `initialSizes`. Those are corvu's to apply, and a\n * panel's own `initialSize` overrides them — so an unsized panel must not invent\n * one when the group already has an answer.\n */\nconst GroupSizesContext = createContext<() => boolean>(() => false)\n\nexport function ResizablePanelGroup(props: ComponentProps<typeof Resizable> & { class?: string }) {\n const [local, rest] = splitProps(props, ['class'])\n\n return (\n <GroupSizesContext.Provider value={() => rest.initialSizes !== undefined}>\n <Resizable\n class={cn('flex size-full data-[orientation=vertical]:flex-col', local.class)}\n {...rest}\n />\n </GroupSizesContext.Provider>\n )\n}\n\n/**\n * The size an unsized panel registers with: whatever its earlier siblings left.\n *\n * corvu registers a panel without `initialSize` at a flat 50%, so `0.28` beside\n * an unsized panel summed to 78% and left a gap. Panels register in document\n * order, so at registration `sizes` holds exactly the panels before this one.\n * When nothing is left — a second unsized panel — it takes an equal share, and\n * corvu shrinks the earlier panels by that share to keep the total at 100%.\n */\nfunction remainingSize(sizes: readonly number[]): number {\n const left = 1 - sizes.reduce((total, size) => total + size, 0)\n return left > 0.001 ? left : 1 / (sizes.length + 1)\n}\n\nexport function ResizablePanel(props: ComponentProps<typeof Resizable.Panel> & { class?: string }) {\n const [local, rest] = splitProps(props, ['class', 'initialSize'])\n const group = Resizable.useContext(rest.contextId)\n const groupHasSizes = useContext(GroupSizesContext)\n\n return (\n <Resizable.Panel\n initialSize={\n local.initialSize ?? (groupHasSizes() ? undefined : remainingSize(group.sizes()))\n }\n class={cn('min-h-0 min-w-0 overflow-hidden', local.class)}\n {...rest}\n />\n )\n}\n\nexport type ResizableHandleProps = ComponentProps<typeof Resizable.Handle> & {\n class?: string\n /** Draw a visible grip in the middle of the divider. */\n withHandle?: boolean\n /**\n * The divider's accessible name. It is a focusable control — arrow keys move\n * the split — so it needs one; without it a screen reader announces an\n * unlabelled button between the two panels.\n */\n label?: string\n}\n\nexport function ResizableHandle(props: ResizableHandleProps) {\n const [local, rest] = splitProps(props, ['class', 'withHandle', 'label'])\n const group = Resizable.useContext(rest.contextId)\n\n return (\n <Resizable.Handle\n aria-label={local.label ?? 'Resize panels'}\n // A separator's orientation is the line's own, which runs across the\n // group: a row of panels is divided by a vertical line, a column by a\n // horizontal one. corvu reports the group's orientation instead.\n aria-orientation={group.orientation() === 'horizontal' ? 'vertical' : 'horizontal'}\n class={cn(\n 'group/resize bg-border relative flex w-px shrink-0 items-center justify-center',\n /* Widen the hit target without moving the visual line: the divider is\n a hairline, but a hairline is far too small to grab. */\n 'after:absolute after:inset-y-0 after:-inset-x-1 after:w-3',\n 'transition-colors ease-out hover:bg-primary',\n 'focus-visible:bg-primary focus-visible:outline-none',\n 'data-[orientation=vertical]:h-px data-[orientation=vertical]:w-full',\n 'data-[orientation=vertical]:after:inset-x-0 data-[orientation=vertical]:after:-inset-y-1 data-[orientation=vertical]:after:h-3 data-[orientation=vertical]:after:w-full',\n local.class\n )}\n {...rest}\n >\n {local.withHandle ? (\n <div class=\"bg-border z-(--z-docked) flex h-4 w-2.5 items-center justify-center rounded-sm border border-border\">\n <GripVertical class=\"size-2.5 text-muted-foreground\" />\n </div>\n ) : null}\n </Resizable.Handle>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAuBA,IAAMO,oBAAoBJ,oBAAmC,KAAK;AAElE,SAAgBK,oBAAoBC,OAA8D;CAChG,MAAM,CAACE,OAAOC,QAAQR,WAAWK,OAAO,CAAC,OAAO,CAAC;CAEjD,OAAAI,gBACGN,kBAAkBO,UAAQ;EAACC,aAAaH,KAAKI,iBAAiBC,KAAAA;EAAS,IAAAC,WAAA;GAAA,OAAAL,gBACrEb,WAASmB,WAAA,EAAA,KAAA,WAAA;IAAA,OACDb,GAAG,uDAAuDK,MAAMD,KAAK;GAAC,EAAA,GACzEE,IAAI,CAAA;EAAA;CAAA,CAAA;AAIhB;;;;;;;;;;AAWA,SAASQ,cAAcC,OAAkC;CACvD,MAAMC,OAAO,IAAID,MAAME,QAAQC,OAAOC,SAASD,QAAQC,MAAM,CAAC;CAC9D,OAAOH,OAAO,OAAQA,OAAO,KAAKD,MAAMK,SAAS;AACnD;AAEA,SAAgBC,eAAelB,OAAoE;CACjG,MAAM,CAACE,OAAOC,QAAQR,WAAWK,OAAO,CAAC,SAAS,aAAa,CAAC;CAChE,MAAMoB,QAAQ7B,UAAUK,WAAWO,KAAKkB,SAAS;CACjD,MAAMC,gBAAgB1B,WAAWE,iBAAiB;CAElD,OAAAM,gBACGb,UAAU4B,OAAKT,WAAA;EAAA,IACda,cAAW;GAAA,OACTrB,MAAMqB,gBAAgBD,cAAc,IAAId,KAAAA,IAAYG,cAAcS,MAAMR,MAAM,CAAC;EAAE;EAAA,KAAA,WAAA;GAAA,OAE5Ef,GAAG,mCAAmCK,MAAMD,KAAK;EAAC;CAAA,GACrDE,IAAI,CAAA;AAGd;AAcA,SAAgByB,gBAAgB5B,OAA6B;CAC3D,MAAM,CAACE,OAAOC,QAAQR,WAAWK,OAAO;EAAC;EAAS;EAAc;CAAO,CAAC;CACxE,MAAMoB,QAAQ7B,UAAUK,WAAWO,KAAKkB,SAAS;CAEjD,OAAAjB,gBACGb,UAAUkC,QAAMf,WAAA;EAAA,KAAA,gBAAA;GAAA,OACHR,MAAMyB,SAAS;EAAe;EAAA,KAAA,sBAAA;GAAA,OAIxBP,MAAMW,YAAY,MAAM,eAAe,aAAa;EAAY;EAAA,KAAA,WAAA;GAAA,OAC3ElC,GACL,kFAGA,6DACA,+CACA,uDACA,uEACA,2KACAK,MAAMD,KACR;EAAC;CAAA,GACGE,MAAI,EAAA,IAAAM,WAAA;EAAA,OAEPuB,WAAA,CAAA,CAAA9B,MAAMwB,UAAU,CAAA,CAAA,WAAA;GAAA,IAAAO,OAAAC,OAAA;GAAAC,OAAAF,MAAA7B,gBAEZZ,cAAY,EAAA,SAAA,iCAAA,CAAA,CAAA;GAAA,OAAAyC;EAAA,EAAA,CAAA,IAEb;CAAI,EAAA,CAAA,CAAA;AAGd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/toast/toast.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,YAAY,EAA4B,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAE9F,OAAO,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAInD;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,KAAK,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,GAAG,MAAM,CAAA;AAgB3E,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IACpB,iFAAiF;IACjF,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAoDD;;;GAGG;AACH,eAAO,MAAM,KAAK;kBACF,YAAY,GAAG,MAAM;mBAKpB,MAAM,YAAY,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,MAAM,CAAC,GAAG,MAAM;iBAGjE,MAAM,YAAY,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,MAAM,CAAC,GAAG,MAAM;mBAG7D,MAAM,YAAY,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,MAAM,CAAC,GAAG,MAAM;gBAGlE,MAAM,YAAY,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,MAAM,CAAC,GAAG,MAAM;IAG3E;;;;OAIG;YACK,CAAC,WACE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,YAC9B;QACR,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC,CAAA;QACvC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC,CAAA;KAC7C,GACA,OAAO,CAAC,CAAC,CAAC;;;CAgCd,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,YAAY,CAAC,MAAM,CAAC,GAAG;IACtE,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAA;IACpE,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;
|
|
1
|
+
{"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/toast/toast.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,YAAY,EAA4B,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAE9F,OAAO,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAInD;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,KAAK,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,GAAG,MAAM,CAAA;AAgB3E,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IACpB,iFAAiF;IACjF,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAoDD;;;GAGG;AACH,eAAO,MAAM,KAAK;kBACF,YAAY,GAAG,MAAM;mBAKpB,MAAM,YAAY,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,MAAM,CAAC,GAAG,MAAM;iBAGjE,MAAM,YAAY,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,MAAM,CAAC,GAAG,MAAM;mBAG7D,MAAM,YAAY,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,MAAM,CAAC,GAAG,MAAM;gBAGlE,MAAM,YAAY,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,MAAM,CAAC,GAAG,MAAM;IAG3E;;;;OAIG;YACK,CAAC,WACE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,YAC9B;QACR,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC,CAAA;QACvC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC,CAAA;KAC7C,GACA,OAAO,CAAC,CAAC,CAAC;;;CAgCd,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,YAAY,CAAC,MAAM,CAAC,GAAG;IACtE,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAA;IACpE,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAqBD,iFAAiF;AACjF,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,eA+B1C;AAED,OAAO,EAAE,OAAO,EAAE,CAAA"}
|
|
@@ -151,11 +151,22 @@ var toast = {
|
|
|
151
151
|
dismiss: toaster.dismiss,
|
|
152
152
|
clear: toaster.clear
|
|
153
153
|
};
|
|
154
|
+
/**
|
|
155
|
+
* The corner is set on the region, not the list. The region is the `fixed`
|
|
156
|
+
* element: an inset on the list inside it positions nothing, and the region falls
|
|
157
|
+
* back to wherever it happens to sit in the document flow.
|
|
158
|
+
*/
|
|
154
159
|
var toasterPosition = {
|
|
155
|
-
"top-left": "top-0 left-0
|
|
156
|
-
"top-right": "top-0 right-0
|
|
157
|
-
"bottom-left": "bottom-0 left-0
|
|
158
|
-
"bottom-right": "bottom-0 right-0
|
|
160
|
+
"top-left": "top-0 left-0",
|
|
161
|
+
"top-right": "top-0 right-0",
|
|
162
|
+
"bottom-left": "bottom-0 left-0",
|
|
163
|
+
"bottom-right": "bottom-0 right-0"
|
|
164
|
+
};
|
|
165
|
+
var toasterAlignment = {
|
|
166
|
+
"top-left": "items-start",
|
|
167
|
+
"top-right": "items-end",
|
|
168
|
+
"bottom-left": "items-start",
|
|
169
|
+
"bottom-right": "items-end"
|
|
159
170
|
};
|
|
160
171
|
/** Mount once, near the root. Renders the stack and owns its timing defaults. */
|
|
161
172
|
function Toaster(props) {
|
|
@@ -173,10 +184,12 @@ function Toaster(props) {
|
|
|
173
184
|
swipeDirection: "right",
|
|
174
185
|
pauseOnInteraction: true,
|
|
175
186
|
pauseOnPageIdle: true,
|
|
176
|
-
"class"
|
|
187
|
+
get ["class"]() {
|
|
188
|
+
return cn("pointer-events-none fixed z-(--z-toast) flex max-h-screen w-full flex-col gap-2 p-4 sm:max-w-sm", toasterPosition[local.position ?? "bottom-right"]);
|
|
189
|
+
}
|
|
177
190
|
}, rest, { get children() {
|
|
178
191
|
return createComponent(Toast.List, { get ["class"]() {
|
|
179
|
-
return cn("flex flex-col gap-2",
|
|
192
|
+
return cn("flex flex-col gap-2", toasterAlignment[local.position ?? "bottom-right"], local.class);
|
|
180
193
|
} });
|
|
181
194
|
} }));
|
|
182
195
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast.js","names":["Toast","KobalteToast","ToastComponentProps","toaster","X","ComponentProps","JSX","Show","splitProps","cn","ToastTone","toastTones","Record","default","success","warning","destructive","info","ToastOptions","title","description","tone","action","Element","persistent","duration","region","ToastCard","props","_$createComponent","toastId","priority","class","style","children","_tmpl$","_el$2","_tmpl$3","_$insert","Title","when","Description","_el$3","_tmpl$2","CloseButton","toast","show","options","_$mergeProps","Omit","error","promise","Promise","T","messages","pending","data","resolved","state","dismiss","clear","ToasterProps","Region","position","toasterPosition","Toaster","local","rest","regionId","limit","swipeDirection","pauseOnInteraction","pauseOnPageIdle","List","_$createComponent","KobalteToast","_$mergeProps"],"sources":["../../../../src/components/ui/toast/toast.tsx"],"sourcesContent":["import { Toast as KobalteToast, type ToastComponentProps, toaster } from '@kobalte/core/toast'\nimport { X } from 'lucide-solid'\nimport type { ComponentProps, JSX } from 'solid-js'\nimport { Show, splitProps } from 'solid-js'\nimport { cn } from '#lib/utils'\n\n/**\n * Toast.\n *\n * A short, self-dismissing message about something that already happened.\n *\n * The rules that make toasts helpful rather than hostile are built into this\n * API rather than left to callers:\n *\n * - A toast never carries the only route to an action. Anything important\n * enough to need doing belongs in the interface, not in a message that\n * disappears. `action` exists, but it is a convenience, not a flow.\n * - Errors from user-initiated work get `priority=\"high\"` so a screen reader\n * interrupts to announce them; background progress uses the default low\n * priority so it is not read over whatever the user is doing.\n * - A toast with a way to undo is preferred to a confirmation dialog for a\n * reversible action. Undo after the fact costs the user nothing; a modal\n * before it costs everyone a click.\n *\n * `Toaster` is mounted once, near the root of the app.\n */\n\ntype ToastTone = 'default' | 'success' | 'warning' | 'destructive' | 'info'\n\n/**\n * The tone dot's colour. A custom property rather than five colour utilities\n * because the value is applied inline (the tone is data, not markup) and a\n * Tailwind colour class cannot be built from a runtime value without becoming\n * invisible to the linter.\n */\nconst toastTones: Record<ToastTone, string> = {\n default: 'var(--foreground)',\n success: 'var(--success)',\n warning: 'var(--warning)',\n destructive: 'var(--destructive)',\n info: 'var(--info)',\n}\n\nexport type ToastOptions = {\n title: string\n description?: string\n tone?: ToastTone\n /** A control rendered inside the toast, usually an Undo. */\n action?: JSX.Element\n /** Keep the toast until it is dismissed. Use for a failure the user must see. */\n persistent?: boolean\n /** Milliseconds before auto-dismiss. Overrides the region's setting. */\n duration?: number\n /** Which Toaster region to render into. */\n region?: string\n}\n\nfunction ToastCard(props: ToastComponentProps & ToastOptions) {\n const tone = () => props.tone ?? 'default'\n\n return (\n <KobalteToast\n toastId={props.toastId}\n /**\n * A user-initiated outcome is announced; a background one waits its turn.\n * A failure the user caused is worth interrupting for; a sync finishing\n * quietly is not.\n */\n priority={tone() === 'destructive' ? 'high' : 'low'}\n duration={props.duration}\n persistent={props.persistent}\n class={cn(\n 'pointer-events-auto flex w-full items-start gap-3 rounded-xl border border-border bg-popover p-3 shadow-lg',\n 'data-[opened]:animate-in data-[opened]:slide-in-from-right-full data-[opened]:fade-in-0',\n 'data-[closed]:animate-out data-[closed]:slide-out-to-right-full data-[closed]:fade-out-0',\n 'data-[swipe=move]:translate-x-(--kb-toast-swipe-move-x) data-[swipe=move]:transition-none',\n 'data-[swipe=cancel]:translate-x-0 data-[swipe=cancel]:transition-transform',\n 'data-[swipe=end]:animate-out data-[swipe=end]:slide-out-to-right-full'\n )}\n style={{ '--toast-tone': toastTones[tone()] }}\n >\n <span\n aria-hidden=\"true\"\n class=\"mt-1.5 size-1.5 shrink-0 rounded-full\"\n style={{ 'background-color': 'var(--toast-tone)' }}\n />\n <div class=\"flex min-w-0 flex-1 flex-col gap-0.5\">\n <KobalteToast.Title class=\"text-sm font-medium\">{props.title}</KobalteToast.Title>\n <Show when={props.description}>\n <KobalteToast.Description class=\"text-sm text-muted-foreground\">\n {props.description}\n </KobalteToast.Description>\n </Show>\n <Show when={props.action}>\n <div class=\"mt-1.5 flex items-center gap-2\">{props.action}</div>\n </Show>\n </div>\n <KobalteToast.CloseButton\n aria-label=\"Dismiss notification\"\n class=\"text-muted-foreground shrink-0 rounded-sm p-0.5 transition-colors ease-out outline-none hover:text-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-primary-subtle\"\n >\n <X class=\"size-3.5\" />\n </KobalteToast.CloseButton>\n </KobalteToast>\n )\n}\n\n/**\n * The toast API. `show` is the general form; the tone helpers are shorthand for\n * the four cases that come up constantly.\n */\nexport const toast = {\n show(options: ToastOptions): number {\n return toaster.show((props) => <ToastCard {...props} {...options} />, {\n region: options.region,\n })\n },\n success(title: string, options?: Omit<ToastOptions, 'title' | 'tone'>): number {\n return toast.show({ ...options, title, tone: 'success' })\n },\n error(title: string, options?: Omit<ToastOptions, 'title' | 'tone'>): number {\n return toast.show({ ...options, title, tone: 'destructive', persistent: true })\n },\n warning(title: string, options?: Omit<ToastOptions, 'title' | 'tone'>): number {\n return toast.show({ ...options, title, tone: 'warning' })\n },\n info(title: string, options?: Omit<ToastOptions, 'title' | 'tone'>): number {\n return toast.show({ ...options, title, tone: 'info' })\n },\n /**\n * A toast that resolves with a promise: pending, then success or failure.\n * The right shape for an operation with a visible duration, because the user\n * gets one message instead of three.\n */\n promise<T>(\n promise: Promise<T> | (() => Promise<T>),\n messages: {\n pending: string\n success: string | ((data: T) => string)\n error: string | ((error: unknown) => string)\n }\n ): Promise<T> {\n const resolved = typeof promise === 'function' ? promise() : promise\n toaster.promise(resolved, (props) => {\n const tone: ToastTone =\n props.state === 'fulfilled'\n ? 'success'\n : props.state === 'rejected'\n ? 'destructive'\n : 'default'\n const title =\n props.state === 'pending'\n ? messages.pending\n : props.state === 'fulfilled'\n ? typeof messages.success === 'function'\n ? messages.success(props.data as T)\n : messages.success\n : typeof messages.error === 'function'\n ? messages.error(props.error)\n : messages.error\n return (\n <ToastCard\n toastId={props.toastId}\n title={title}\n tone={tone}\n persistent={props.state === 'rejected'}\n />\n )\n })\n return resolved\n },\n dismiss: toaster.dismiss,\n clear: toaster.clear,\n}\n\nexport type ToasterProps = ComponentProps<typeof KobalteToast.Region> & {\n /** Where the stack sits. Defaults to the bottom-right, clear of the shell. */\n position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'\n region?: string\n}\n\nconst toasterPosition = {\n 'top-left': 'top-0 left-0 items-start',\n 'top-right': 'top-0 right-0 items-end',\n 'bottom-left': 'bottom-0 left-0 items-start',\n 'bottom-right': 'bottom-0 right-0 items-end',\n}\n\n/** Mount once, near the root. Renders the stack and owns its timing defaults. */\nexport function Toaster(props: ToasterProps) {\n const [local, rest] = splitProps(props, ['position', 'region', 'class'])\n\n return (\n <KobalteToast.Region\n regionId={local.region}\n duration={5000}\n limit={3}\n swipeDirection=\"right\"\n pauseOnInteraction\n pauseOnPageIdle\n /**\n * The toast region is a top layer: opening a dialog must not hide an\n * in-flight notification, and clicking a toast must not dismiss the\n * dialog behind it.\n */\n class=\"pointer-events-none fixed z-(--z-toast) flex max-h-screen w-full flex-col gap-2 p-4 sm:max-w-sm\"\n {...rest}\n >\n <KobalteToast.List\n class={cn(\n 'flex flex-col gap-2',\n toasterPosition[local.position ?? 'bottom-right'],\n local.class\n )}\n />\n </KobalteToast.Region>\n )\n}\n\nexport { toaster }\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"toast.js","names":["Toast","KobalteToast","ToastComponentProps","toaster","X","ComponentProps","JSX","Show","splitProps","cn","ToastTone","toastTones","Record","default","success","warning","destructive","info","ToastOptions","title","description","tone","action","Element","persistent","duration","region","ToastCard","props","_$createComponent","toastId","priority","class","style","children","_tmpl$","_el$2","_tmpl$3","_$insert","Title","when","Description","_el$3","_tmpl$2","CloseButton","toast","show","options","_$mergeProps","Omit","error","promise","Promise","T","messages","pending","data","resolved","state","dismiss","clear","ToasterProps","Region","position","toasterPosition","toasterAlignment","Toaster","local","rest","regionId","limit","swipeDirection","pauseOnInteraction","pauseOnPageIdle","List","_$createComponent","KobalteToast","_$mergeProps"],"sources":["../../../../src/components/ui/toast/toast.tsx"],"sourcesContent":["import { Toast as KobalteToast, type ToastComponentProps, toaster } from '@kobalte/core/toast'\nimport { X } from 'lucide-solid'\nimport type { ComponentProps, JSX } from 'solid-js'\nimport { Show, splitProps } from 'solid-js'\nimport { cn } from '#lib/utils'\n\n/**\n * Toast.\n *\n * A short, self-dismissing message about something that already happened.\n *\n * The rules that make toasts helpful rather than hostile are built into this\n * API rather than left to callers:\n *\n * - A toast never carries the only route to an action. Anything important\n * enough to need doing belongs in the interface, not in a message that\n * disappears. `action` exists, but it is a convenience, not a flow.\n * - Errors from user-initiated work get `priority=\"high\"` so a screen reader\n * interrupts to announce them; background progress uses the default low\n * priority so it is not read over whatever the user is doing.\n * - A toast with a way to undo is preferred to a confirmation dialog for a\n * reversible action. Undo after the fact costs the user nothing; a modal\n * before it costs everyone a click.\n *\n * `Toaster` is mounted once, near the root of the app.\n */\n\ntype ToastTone = 'default' | 'success' | 'warning' | 'destructive' | 'info'\n\n/**\n * The tone dot's colour. A custom property rather than five colour utilities\n * because the value is applied inline (the tone is data, not markup) and a\n * Tailwind colour class cannot be built from a runtime value without becoming\n * invisible to the linter.\n */\nconst toastTones: Record<ToastTone, string> = {\n default: 'var(--foreground)',\n success: 'var(--success)',\n warning: 'var(--warning)',\n destructive: 'var(--destructive)',\n info: 'var(--info)',\n}\n\nexport type ToastOptions = {\n title: string\n description?: string\n tone?: ToastTone\n /** A control rendered inside the toast, usually an Undo. */\n action?: JSX.Element\n /** Keep the toast until it is dismissed. Use for a failure the user must see. */\n persistent?: boolean\n /** Milliseconds before auto-dismiss. Overrides the region's setting. */\n duration?: number\n /** Which Toaster region to render into. */\n region?: string\n}\n\nfunction ToastCard(props: ToastComponentProps & ToastOptions) {\n const tone = () => props.tone ?? 'default'\n\n return (\n <KobalteToast\n toastId={props.toastId}\n /**\n * A user-initiated outcome is announced; a background one waits its turn.\n * A failure the user caused is worth interrupting for; a sync finishing\n * quietly is not.\n */\n priority={tone() === 'destructive' ? 'high' : 'low'}\n duration={props.duration}\n persistent={props.persistent}\n class={cn(\n 'pointer-events-auto flex w-full items-start gap-3 rounded-xl border border-border bg-popover p-3 shadow-lg',\n 'data-[opened]:animate-in data-[opened]:slide-in-from-right-full data-[opened]:fade-in-0',\n 'data-[closed]:animate-out data-[closed]:slide-out-to-right-full data-[closed]:fade-out-0',\n 'data-[swipe=move]:translate-x-(--kb-toast-swipe-move-x) data-[swipe=move]:transition-none',\n 'data-[swipe=cancel]:translate-x-0 data-[swipe=cancel]:transition-transform',\n 'data-[swipe=end]:animate-out data-[swipe=end]:slide-out-to-right-full'\n )}\n style={{ '--toast-tone': toastTones[tone()] }}\n >\n <span\n aria-hidden=\"true\"\n class=\"mt-1.5 size-1.5 shrink-0 rounded-full\"\n style={{ 'background-color': 'var(--toast-tone)' }}\n />\n <div class=\"flex min-w-0 flex-1 flex-col gap-0.5\">\n <KobalteToast.Title class=\"text-sm font-medium\">{props.title}</KobalteToast.Title>\n <Show when={props.description}>\n <KobalteToast.Description class=\"text-sm text-muted-foreground\">\n {props.description}\n </KobalteToast.Description>\n </Show>\n <Show when={props.action}>\n <div class=\"mt-1.5 flex items-center gap-2\">{props.action}</div>\n </Show>\n </div>\n <KobalteToast.CloseButton\n aria-label=\"Dismiss notification\"\n class=\"text-muted-foreground shrink-0 rounded-sm p-0.5 transition-colors ease-out outline-none hover:text-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-primary-subtle\"\n >\n <X class=\"size-3.5\" />\n </KobalteToast.CloseButton>\n </KobalteToast>\n )\n}\n\n/**\n * The toast API. `show` is the general form; the tone helpers are shorthand for\n * the four cases that come up constantly.\n */\nexport const toast = {\n show(options: ToastOptions): number {\n return toaster.show((props) => <ToastCard {...props} {...options} />, {\n region: options.region,\n })\n },\n success(title: string, options?: Omit<ToastOptions, 'title' | 'tone'>): number {\n return toast.show({ ...options, title, tone: 'success' })\n },\n error(title: string, options?: Omit<ToastOptions, 'title' | 'tone'>): number {\n return toast.show({ ...options, title, tone: 'destructive', persistent: true })\n },\n warning(title: string, options?: Omit<ToastOptions, 'title' | 'tone'>): number {\n return toast.show({ ...options, title, tone: 'warning' })\n },\n info(title: string, options?: Omit<ToastOptions, 'title' | 'tone'>): number {\n return toast.show({ ...options, title, tone: 'info' })\n },\n /**\n * A toast that resolves with a promise: pending, then success or failure.\n * The right shape for an operation with a visible duration, because the user\n * gets one message instead of three.\n */\n promise<T>(\n promise: Promise<T> | (() => Promise<T>),\n messages: {\n pending: string\n success: string | ((data: T) => string)\n error: string | ((error: unknown) => string)\n }\n ): Promise<T> {\n const resolved = typeof promise === 'function' ? promise() : promise\n toaster.promise(resolved, (props) => {\n const tone: ToastTone =\n props.state === 'fulfilled'\n ? 'success'\n : props.state === 'rejected'\n ? 'destructive'\n : 'default'\n const title =\n props.state === 'pending'\n ? messages.pending\n : props.state === 'fulfilled'\n ? typeof messages.success === 'function'\n ? messages.success(props.data as T)\n : messages.success\n : typeof messages.error === 'function'\n ? messages.error(props.error)\n : messages.error\n return (\n <ToastCard\n toastId={props.toastId}\n title={title}\n tone={tone}\n persistent={props.state === 'rejected'}\n />\n )\n })\n return resolved\n },\n dismiss: toaster.dismiss,\n clear: toaster.clear,\n}\n\nexport type ToasterProps = ComponentProps<typeof KobalteToast.Region> & {\n /** Where the stack sits. Defaults to the bottom-right, clear of the shell. */\n position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'\n region?: string\n}\n\n/**\n * The corner is set on the region, not the list. The region is the `fixed`\n * element: an inset on the list inside it positions nothing, and the region falls\n * back to wherever it happens to sit in the document flow.\n */\nconst toasterPosition = {\n 'top-left': 'top-0 left-0',\n 'top-right': 'top-0 right-0',\n 'bottom-left': 'bottom-0 left-0',\n 'bottom-right': 'bottom-0 right-0',\n}\n\nconst toasterAlignment = {\n 'top-left': 'items-start',\n 'top-right': 'items-end',\n 'bottom-left': 'items-start',\n 'bottom-right': 'items-end',\n}\n\n/** Mount once, near the root. Renders the stack and owns its timing defaults. */\nexport function Toaster(props: ToasterProps) {\n const [local, rest] = splitProps(props, ['position', 'region', 'class'])\n\n return (\n <KobalteToast.Region\n regionId={local.region}\n duration={5000}\n limit={3}\n swipeDirection=\"right\"\n pauseOnInteraction\n pauseOnPageIdle\n /**\n * The toast region is a top layer: opening a dialog must not hide an\n * in-flight notification, and clicking a toast must not dismiss the\n * dialog behind it.\n */\n class={cn(\n 'pointer-events-none fixed z-(--z-toast) flex max-h-screen w-full flex-col gap-2 p-4 sm:max-w-sm',\n toasterPosition[local.position ?? 'bottom-right']\n )}\n {...rest}\n >\n <KobalteToast.List\n class={cn(\n 'flex flex-col gap-2',\n toasterAlignment[local.position ?? 'bottom-right'],\n local.class\n )}\n />\n </KobalteToast.Region>\n )\n}\n\nexport { toaster }\n"],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ var DZ = (s) => {
|
|
|
20
20
|
}
|
|
21
21
|
return out;
|
|
22
22
|
};
|
|
23
|
-
var GROUP_COUNT =
|
|
23
|
+
var GROUP_COUNT = 384;
|
|
24
24
|
var customValidatorNames = [];
|
|
25
25
|
var edgeStart = PS(U("E0500002005282000000002000150000020021820000011200000003022202000300004200120000200420001200021200301200010400162000010000220021010:2192001200220012000220012000200200200400010200040000000000400200108200110100000022010313000162002000020020012020080213000228200000000082000000000120002000120020020040101020300130001001010"));
|
|
26
26
|
var labelStart = PS(U(":11111111211111119311546544411119731869:671397415686432441111111111161114151214313433415:78311132233313187211117221449443411141111151152226611131111112212518142224214215421421542142424242516171151615616347111111111197911327451111111111111111111113134714133513411111311111111111111111111112444411111342312715245411117:3"));
|
|
@@ -60,18 +60,18 @@ var nodeVlist = (() => {
|
|
|
60
60
|
for (let i = 0; i < A.length; i++) out[A[i]] = V[i];
|
|
61
61
|
return out;
|
|
62
62
|
})();
|
|
63
|
-
var SETS = "container |break-after- all auto avoid avoid-page column left page right|break-before- all auto avoid avoid-page column left page right|break-inside-a uto void void-column void-page|box-decoration- clone slice|box- border content| contents flow-root hidden table table-caption table-cell table-column table-column-group table-footer-group table-header-group table-row table-row-group| not-sr-only sr-only|float- end left none right start|clear- both end left none right start|isolat e ion-auto|overflow- auto clip hidden scroll visible|overflow-x- auto clip hidden scroll visible|overflow-y- auto clip hidden scroll visible|overscroll- auto contain none|overscroll-x- auto contain none|overscroll-y- auto contain none| absolute fixed relative static sticky| collapse invisible visible|justify- around baseline between center center-safe end end-safe evenly normal start stretch|justify-items- center center-safe end end-safe normal start stretch|justify-self- auto center center-safe end end-safe start stretch|items- baseline baseline-last center center-safe end end-safe start stretch|self- auto baseline baseline-last center center-safe end end-safe start stretch|place-content- around baseline between center center-safe end end-safe evenly start stretch|place-items- baseline center center-safe end end-safe start stretch|place-self- auto center center-safe end end-safe start stretch| antialiased subpixel-antialiased| italic not-italic|normal-nums |ordinal |slashed-zero | lining-nums oldstyle-nums| proportional-nums tabular-nums| diagonal-fractions stacked-fractions| no-underline overline| capitalize lowercase normal-case uppercase|truncate |whitespace- break-spaces normal nowrap pre pre-line pre-wrap|break- all keep normal words|wrap- anywhere break-word normal|hyphens- auto manual none|mix-blend- color color-burn color-dodge darken difference exclusion hard-light hue lighten luminosity multiply normal overlay plus-darker plus-lighter saturation screen soft-light|table- auto fixed|caption- bottom top|backface- hidden visible|appearance- auto none|scheme- dark light light-dark normal only-dark only-light|field-sizing- content fixed|pointer-events- auto none|resize -none -x -y|snap- align-none center end start|snap- always normal|snap- both none x y|snap- mandatory proximity|touch- auto manipulation none|touch-pan- left right x|touch-pan- down up y|touch-pinch-zoom |select- all auto none text|forced-color-adjust- auto none| normal size| baseline bottom middle sub super text-bottom text-top top| bounce none ping pulse spin| auto square video| auto fr max min px|none | auto full px| fixed local scroll|clip- border content padding text|origin- border content padding| bottom bottom-left bottom-right center left left-bottom left-top right right-bottom right-top top top-left top-right| no-repeat repeat repeat-round repeat-space repeat-x repeat-y| auto contain cover| gradient-to-b gradient-to-bl gradient-to-br gradient-to-l gradient-to-r gradient-to-t gradient-to-tl gradient-to-tr none|blend- color color-burn color-dodge darken difference exclusion hard-light hue lighten luminosity multiply normal overlay saturation screen soft-light|to- b bl br l r t tl tr| auto dvh fit full lh lvh max min px screen svh| dashed dotted double hidden none solid| collapse separate|px
|
|
63
|
+
var SETS = "container |break-after- all auto avoid avoid-page column left page right|break-before- all auto avoid avoid-page column left page right|break-inside-a uto void void-column void-page|box-decoration- clone slice|box- border content| contents flow-root hidden table table-caption table-cell table-column table-column-group table-footer-group table-header-group table-row table-row-group| not-sr-only sr-only|float- end left none right start|clear- both end left none right start|isolat e ion-auto|overflow- auto clip hidden scroll visible|overflow-x- auto clip hidden scroll visible|overflow-y- auto clip hidden scroll visible|overscroll- auto contain none|overscroll-x- auto contain none|overscroll-y- auto contain none| absolute fixed relative static sticky| collapse invisible visible|justify- around baseline between center center-safe end end-safe evenly normal start stretch|justify-items- center center-safe end end-safe normal start stretch|justify-self- auto center center-safe end end-safe start stretch|items- baseline baseline-last center center-safe end end-safe start stretch|self- auto baseline baseline-last center center-safe end end-safe start stretch|place-content- around baseline between center center-safe end end-safe evenly start stretch|place-items- baseline center center-safe end end-safe start stretch|place-self- auto center center-safe end end-safe start stretch| antialiased subpixel-antialiased| italic not-italic|normal-nums |ordinal |slashed-zero | lining-nums oldstyle-nums| proportional-nums tabular-nums| diagonal-fractions stacked-fractions| no-underline overline| capitalize lowercase normal-case uppercase|truncate |whitespace- break-spaces normal nowrap pre pre-line pre-wrap|break- all keep normal words|wrap- anywhere break-word normal|hyphens- auto manual none|mix-blend- color color-burn color-dodge darken difference exclusion hard-light hue lighten luminosity multiply normal overlay plus-darker plus-lighter saturation screen soft-light|table- auto fixed|caption- bottom top|backface- hidden visible|appearance- auto none|scheme- dark light light-dark normal only-dark only-light|field-sizing- content fixed|pointer-events- auto none|resize -none -x -y|snap- align-none center end start|snap- always normal|snap- both none x y|snap- mandatory proximity|touch- auto manipulation none|touch-pan- left right x|touch-pan- down up y|touch-pinch-zoom |select- all auto none text|forced-color-adjust- auto none| normal size| baseline bottom middle sub super text-bottom text-top top| bounce none ping pulse spin| auto square video| auto control-2xl control-2xs control-lg control-md control-sm control-xl control-xs fr max min px|none | auto control-2xl control-2xs control-lg control-md control-sm control-xl control-xs full px| fixed local scroll|clip- border content padding text|origin- border content padding| bottom bottom-left bottom-right center left left-bottom left-top right right-bottom right-top top top-left top-right| no-repeat repeat repeat-round repeat-space repeat-x repeat-y| auto contain cover| gradient-to-b gradient-to-bl gradient-to-br gradient-to-l gradient-to-r gradient-to-t gradient-to-tl gradient-to-tr none|blend- color color-burn color-dodge darken difference exclusion hard-light hue lighten luminosity multiply normal overlay saturation screen soft-light|to- b bl br l r t tl tr| auto control-2xl control-2xs control-lg control-md control-sm control-xl control-xs dvh fit full lh lvh max min px screen svh| dashed dotted double hidden none solid| collapse separate| control-2xl control-2xs control-lg control-md control-sm control-xl control-xs px|auto |full | content none strict| inline-size size|layout |paint |style | around baseline between center center-safe end end-safe evenly normal start stretch| alias all-scroll auto cell col-resize context-menu copy crosshair default e-resize ew-resize grab grabbing help move n-resize ne-resize nesw-resize no-drop none not-allowed ns-resize nw-resize nwse-resize pointer progress row-resize s-resize se-resize sw-resize text vertical-text w-resize wait zoom-in zoom-out| dashed dotted double solid wavy| auto from-font|reverse |initial | in in-out initial linear out| col col-reverse row row-reverse| nowrap wrap wrap-reverse| auto initial none| black bold extrabold extralight light medium normal semibold thin| condensed expanded extra-condensed extra-expanded normal semi-condensed semi-expanded ultra-condensed ultra-expanded|flow- col col-dense dense row row-dense| none subgrid| auto control-2xl control-2xs control-lg control-md control-sm control-xl control-xs dvh dvw fit full lh lvh lvw max min px rail-item row-lg row-md row-sm screen statusbar svh svw topbar| block flex grid table| auto control-2xl control-2xs control-lg control-md control-sm control-xl control-xs dvw fit full lvw max min px screen svw| control-2xl control-2xs control-lg control-md control-sm control-xl control-xs loose none normal px relaxed snug tight|through |item | inside outside| decimal disc none| auto control-2xl control-2xs control-lg control-md control-sm control-xl control-xs px| clip-border clip-content clip-fill clip-padding clip-stroke clip-view no-clip| add exclude intersect subtract| alpha luminance match|origin- border content fill padding stroke view|type- alpha luminance| circle ellipse| closest-corner closest-side farthest-corner farthest-side|at- bottom bottom-left bottom-right center left left-bottom left-top right right-bottom right-top top top-left top-right| control-2xl control-2xs control-lg control-md control-sm control-xl control-xs dvh fit full lh lvh max min none px screen svh| auto control-2xl control-2xs control-lg control-md control-sm control-xl control-xs dvh dvw fit full lh lvh lvw max min none px rail-item row-lg row-md row-sm screen statusbar svh svw topbar| control-2xl control-2xs control-lg control-md control-sm control-xl control-xs dvw fit full lvw max min none px screen svw| auto control-2xl control-2xs control-lg control-md control-sm control-xl control-xs dvh dvw fit full lvh lvw max min none prose px rail rail-expanded sidebar sidebar-compact svh svw| auto control-2xl control-2xs control-lg control-md control-sm control-xl control-xs dvh dvw fit full lvh lvw max min none px rail rail-expanded screen sidebar sidebar-compact svh svw| contain cover fill none scale-down| first last none| distant dramatic midrange near none normal|inset | full none|3d | auto smooth|gutter- auto both stable| auto none thin| inner none| auto control-2xl control-2xs control-lg control-md control-sm control-xl control-xs dvh dvw fit full lvh lvw max min px rail-item svh svw|base | center end justify left right start| clip ellipsis| balance nowrap pretty wrap| normal tight tighter wide wider widest| cpu gpu none| 3d flat| all colors none opacity shadow transform| discrete normal| control-2xl control-2xs control-lg control-md control-sm control-xl control-xs full px| auto control-2xl control-2xs control-lg control-md control-sm control-xl control-xs dvh dvw fit full lvh lvw max min px rail rail-expanded screen sidebar sidebar-compact svh svw| auto contents scroll transform".split("|").map((s) => {
|
|
64
64
|
const tails = s.split(" ");
|
|
65
65
|
const prefix = tails.shift();
|
|
66
66
|
for (let i = 0; i < tails.length; i++) tails[i] = prefix + tails[i];
|
|
67
67
|
return tails;
|
|
68
68
|
});
|
|
69
|
-
var AA = DZ("0000000000000000000000000000000000000000000000000000000000000262242:6@200000006:240B428:
|
|
70
|
-
var AG = DZ("ɠ222222222222222222222222222222222222222222222222222222222222˕4222226>ʶ22ʷʺʷ2ʸʷ42ʴ2ʓ22>621422ɶ222ɹɼɷɺɷɺ22ɱ42222ɨ2ɧ26622ɘɓ
|
|
71
|
-
var AS = DZ("02222222222222222222222222222222222222222222222222222222222222222202022222222222EH2200IL021042222Y\\
|
|
72
|
-
var litAnchor = /* @__PURE__ */ new Int32Array(
|
|
73
|
-
var litGroup = /* @__PURE__ */ new Int32Array(
|
|
74
|
-
var litPool = /* @__PURE__ */ new Int32Array(
|
|
69
|
+
var AA = DZ("0000000000000000000000000000000000000000000000000000000000000262242:6@200000006:240B428:4422400002046044222426220026642642462026224222824220022400000000\\00N222422242222222224062242222222422226264222422222222222222442804222422222222222222222222220<4<0204260002444020204224422");
|
|
70
|
+
var AG = DZ("ɠ222222222222222222222222222222222222222222222222222222222222˕4222226>ʶ22ʷʺʷ2ʸʷ42ʴ2ʓ22>621422ɶ222ɹɼɷɺɷɺ22ɱ42222ɨ2ɧ26622ɘɓ244ƸƵ222]d24242ǖǓƚÄȫ2263ȨȥȨ2222222ǣ222222222222222222ǂƽ2ƾƵ2222222422222ƜƑ22222222222222222222144Ŧţ22Ţş222222222222222222222ĸ2ı68ĦģĦɡŰ4Ġ«®ĝ822ĔđĔ2ē2222622");
|
|
71
|
+
var AS = DZ("02222222222222222222222222222222222222222222222222222222222222222202022222222222EH2200IL021042222Y\\222IL0cf2e10j2222U00X202[^2y0000120|{~22
:22|22222222222G000qOVI00000}2>40000B00000I¨©000¬00000000000000021M®00°000000000000000000000222HGHa1º222¿2À2222ÉÌ000°2±");
|
|
72
|
+
var litAnchor = /* @__PURE__ */ new Int32Array(1635);
|
|
73
|
+
var litGroup = /* @__PURE__ */ new Int32Array(1635);
|
|
74
|
+
var litPool = /* @__PURE__ */ new Int32Array(1635);
|
|
75
75
|
var poolText = "";
|
|
76
76
|
var poolOffsets = /* @__PURE__ */ new Int32Array(1072);
|
|
77
77
|
{
|
|
@@ -93,9 +93,9 @@ var poolOffsets = /* @__PURE__ */ new Int32Array(1072);
|
|
|
93
93
|
e++;
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
-
var adjGid = DZ("0b2N:222@R>F@286¦2@H2D266226FB22B2>BD\\
|
|
96
|
+
var adjGid = DZ("0b2N:222@R>F@286¦2@H2D266226FB22B2>BD\\6N22222Z222D222p");
|
|
97
97
|
var adjStart = PS(U("1::24444432:442:44:44>222222:44:4421322511111311111114"));
|
|
98
|
-
var adjTgt = DZ("24A;33N=C@H4A;33N=C@<27;83:;8393NQ:3NQʰ222ˉºŴŽ2R2=18cƴÅŇ=cĞÛC1ƈǝȈ:ħ25=11D3A@4=<1;1DEr25;11B3?<6;:371BCn9@7=<8192>2E121@9@EHE@9>2T25511<398454131<=V25511<398454131<=ƧNž2
|
|
98
|
+
var adjTgt = DZ("24A;33N=C@H4A;33N=C@<27;83:;8393NQ:3NQʰ222ˉºŴŽ2R2=18cƴÅŇ=cĞÛC1ƈǝȈ:ħ25=11D3A@4=<1;1DEr25;11B3?<6;:371BCn9@7=<8192>2E121@9@EHE@9>2T25511<398454131<=V25511<398454131<=ƧNž2Đå242L222290000f22500ɛ000ǘ222");
|
|
99
99
|
var patGid = U("ij");
|
|
100
100
|
var patTgt = U("");
|
|
101
101
|
var postfixLookupGroups = U("1");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cn-tables.generated.js","names":[],"sources":["../../src/lib/cn-tables.generated.ts"],"sourcesContent":["/*\n * Generated class-group tables from cn@0.4.0 by cn/build, using the complete\n * config and no source scanning. cn is Copyright (c) 2026 shadcn, MIT licensed.\n * This MIT notice is retained because the generated decoder is distributed in\n * this file and in the standalone registry payload.\n *\n * MIT License\n *\n * Copyright (c) 2026 shadcn\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n// GENERATED by `cn build` — do not edit.\n// Pair with createCn from \"cn/engine\":\n// import tables from \"./cn-tables.generated.ts\"\n// import { createCn } from \"cn/engine\"\n// export const cn = createCn(tables)\nconst P = 48\nconst U = (s: string, o = 0): Int32Array => {\n const out = new Int32Array(s.length)\n for (let i = 0; i < s.length; i++) out[i] = s.charCodeAt(i) - P - o\n return out\n}\nconst PS = (counts: Int32Array): Int32Array => {\n const out = new Int32Array(counts.length + 1)\n for (let i = 0; i < counts.length; i++) out[i + 1] = out[i]! + counts[i]!\n return out\n}\n// zigzag-delta stream → running values\nconst DZ = (s: string): Int32Array => {\n const out = new Int32Array(s.length)\n let a = 0\n for (let i = 0; i < s.length; i++) {\n const z = s.charCodeAt(i) - P\n a += (z >>> 1) ^ -(z & 1)\n out[i] = a\n }\n return out\n}\nconst GROUP_COUNT = 387\nconst customValidatorNames: string[] = []\nconst edgeStart = PS(U(\"E0500002005282000000002000150000020021820000011200000003022202000300004200120000200420001200021200301200010400162000010000220021010:2192001200220012000220012000200200200400010200040000000000400200108200110100000022010313000162002000020020012020080213000228200000000082000000000120002000120020020040101020300130001001010\"))\nconst labelStart = PS(U(\":11111111211111119311546544411119731869:671397415686432441111111111161114151214313433415:78311132233313187211117221449443411141111151152226611131111112212518142224214215421421542142424242516171151615616347111111111197911327451111111111111111111113134714133513411111311111111111111111111112444411111342312715245411117:3\"))\nconst labelText = \"@containerabcdefghinlmoprstunderlineviawzccentlignnimatespectuto-colsrowsaglorightnessckdrop-sisbcontrastfiltergrayscalehue-rotateinvertopacityslurrightnessaturateepia-coniclinearpositionradialsizeockurrderttom-belrstxyespacing-xyaretoursorlnt-umnsendspantartainentrasteividerop-shadowurationcorationlay-xyasendillexontromlter-featuresstretchapr-xyayscaleidow-colsrowsue-rotatedentlinesetvert-beringsxyeshadoweiadingftnest-clamp-imageabein-lrstxyskx--b-coniclpositionrsizet-x-y-fromto-fromto-inearfromto-fromto-adialfromto-fromtofromtofromtofromtoblockhinlinew-screenesblockhinlinewbjectpacityrutlinederigin-offsetbelrstxyesrspective-originaceholderioghtng-offsettateundedw-xyz-belrstlreseslr-endspantartaturatecepiahizekewpace-taleroll-xyz-barmpbelrstxyesbelrstxyes-thumbrackadowrink-xyxyartrokeabextora-shadowpckingnsformitionlate-xyz-offsetill-changeoom\"\n// pre-order tree: targets derived from edge counts via subtree sizes\nconst edgeTarget = (() => {\n const N = edgeStart.length - 1\n const sizes = new Int32Array(N)\n for (let i = N - 1; i >= 0; i--) {\n let s = 1\n let c = i + 1\n for (let k = edgeStart[i]!; k < edgeStart[i + 1]!; k++) { s += sizes[c]!; c += sizes[c]! }\n sizes[i] = s\n }\n const out = new Int32Array(edgeStart[N]!)\n let e = 0\n for (let i = 0; i < N; i++) {\n let c = i + 1\n for (let k = edgeStart[i]!; k < edgeStart[i + 1]!; k++) { out[e++] = c; c += sizes[c]! }\n }\n return out\n})()\nconst nodeGroup = U(\"02000000000000900<=0?000B000F00F00ŏI0J0LNPRTVX0000]_a00000000000000000000000rst0000000zŏ00000000000
ŏ0000000ŏ00000000000000000000000000000000000000000000000000000000000000Ë000000000000000000000Þ000000000000000000ð0000000ø0ùúûüýþÿĀāĂ㥹Ć000000000000000000000000000000000000000000ħ0ĨĪ00000000000000000000ļĽ00000Ŭ000000\", 1)\n// vlists = op-pattern pool + per-list refs; the engine indexes these directly\nconst vlistPat = PS(U(\"123333359346463635126536711576\"))\nconst vlistOps = U(\"93203242332583253248325D>E?F@03263243255B:032523853:0325B:8GA032542H<C=12727B:0328432553;D>E?3257D>032585:0325B:;0328B:032\")\nconst vlistRef = U(\"012113445661666666789111:5;;;;;;;;444;;;:62999<1161=62>>?61:21@ABCD4446996:64E:::;:?::64:F114GHHIHHHHIHH1HH1HH1HHHHHH::EEJ4444::EE4444441691;644444114244444:;K6666555555555555555999666664444444444444444444444226?6:66644L9M?D:111::::6DE199\")\nconst vlistGroup = DZ(\"020200202020020020020020020020200200200200200200200002020202001003040106000200200200200200200200200200200200200200200200200200200200200200200200200200200200020020020020020020002020200202002002002002002002002002002020002002020020200220200200200200200200200200200200020020020000200020002000200200200020020020002000200200200020020202002020202000200200020022000200200020020002002000200220002002000200W0Z00020020002002020002002000200g0j0002002000200200020020002002000200200020020002000200002000002002002002002000200020000200002002002002002002002020020020200200200200200200200200202020020020020020020020020002002002020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020002002002002002002000200200200200200200200200200020202020002000200020002002002002000020200200\")\n// nodeVlist rebuilt sparse: (anchor deltas, vlist ids)\nconst nodeVlist = (() => {\n const out = new Int32Array(319).fill(-1)\n const A = DZ(\"02422242:222222242224222242442222222422222244442242226224222426222422442462222422622222222626222462242622422622422424242422222222422222222242422222222222222222622442224222222222222224424442262222222222222222222226224222424242422224422422422222\")\n const V = DZ(\"02222222222222222222202222222222222222222222221422222222222222222222222222222222222Y\\\\222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222221422222222222222222222222222222222222222Ŀł222222222222222222\")\n for (let i = 0; i < A.length; i++) out[A[i]!] = V[i]!\n return out\n})()\nconst SETS = \"container |break-after- all auto avoid avoid-page column left page right|break-before- all auto avoid avoid-page column left page right|break-inside-a uto void void-column void-page|box-decoration- clone slice|box- border content| contents flow-root hidden table table-caption table-cell table-column table-column-group table-footer-group table-header-group table-row table-row-group| not-sr-only sr-only|float- end left none right start|clear- both end left none right start|isolat e ion-auto|overflow- auto clip hidden scroll visible|overflow-x- auto clip hidden scroll visible|overflow-y- auto clip hidden scroll visible|overscroll- auto contain none|overscroll-x- auto contain none|overscroll-y- auto contain none| absolute fixed relative static sticky| collapse invisible visible|justify- around baseline between center center-safe end end-safe evenly normal start stretch|justify-items- center center-safe end end-safe normal start stretch|justify-self- auto center center-safe end end-safe start stretch|items- baseline baseline-last center center-safe end end-safe start stretch|self- auto baseline baseline-last center center-safe end end-safe start stretch|place-content- around baseline between center center-safe end end-safe evenly start stretch|place-items- baseline center center-safe end end-safe start stretch|place-self- auto center center-safe end end-safe start stretch| antialiased subpixel-antialiased| italic not-italic|normal-nums |ordinal |slashed-zero | lining-nums oldstyle-nums| proportional-nums tabular-nums| diagonal-fractions stacked-fractions| no-underline overline| capitalize lowercase normal-case uppercase|truncate |whitespace- break-spaces normal nowrap pre pre-line pre-wrap|break- all keep normal words|wrap- anywhere break-word normal|hyphens- auto manual none|mix-blend- color color-burn color-dodge darken difference exclusion hard-light hue lighten luminosity multiply normal overlay plus-darker plus-lighter saturation screen soft-light|table- auto fixed|caption- bottom top|backface- hidden visible|appearance- auto none|scheme- dark light light-dark normal only-dark only-light|field-sizing- content fixed|pointer-events- auto none|resize -none -x -y|snap- align-none center end start|snap- always normal|snap- both none x y|snap- mandatory proximity|touch- auto manipulation none|touch-pan- left right x|touch-pan- down up y|touch-pinch-zoom |select- all auto none text|forced-color-adjust- auto none| normal size| baseline bottom middle sub super text-bottom text-top top| bounce none ping pulse spin| auto square video| auto fr max min px|none | auto full px| fixed local scroll|clip- border content padding text|origin- border content padding| bottom bottom-left bottom-right center left left-bottom left-top right right-bottom right-top top top-left top-right| no-repeat repeat repeat-round repeat-space repeat-x repeat-y| auto contain cover| gradient-to-b gradient-to-bl gradient-to-br gradient-to-l gradient-to-r gradient-to-t gradient-to-tl gradient-to-tr none|blend- color color-burn color-dodge darken difference exclusion hard-light hue lighten luminosity multiply normal overlay saturation screen soft-light|to- b bl br l r t tl tr| auto dvh fit full lh lvh max min px screen svh| dashed dotted double hidden none solid| collapse separate|px |auto |full | content none strict| inline-size size|layout |paint |style | around baseline between center center-safe end end-safe evenly normal start stretch| alias all-scroll auto cell col-resize context-menu copy crosshair default e-resize ew-resize grab grabbing help move n-resize ne-resize nesw-resize no-drop none not-allowed ns-resize nw-resize nwse-resize pointer progress row-resize s-resize se-resize sw-resize text vertical-text w-resize wait zoom-in zoom-out| dashed dotted double solid wavy| auto from-font|reverse |initial | in in-out initial linear out| col col-reverse row row-reverse| nowrap wrap wrap-reverse| auto initial none| black bold extrabold extralight light medium normal semibold thin| condensed expanded extra-condensed extra-expanded normal semi-condensed semi-expanded ultra-condensed ultra-expanded|flow- col col-dense dense row row-dense| none subgrid| auto dvh dvw fit full lh lvh lvw max min px screen svh svw| control-2xl control-2xs control-lg control-md control-sm control-xl control-xs rail-item row-lg row-md row-sm statusbar topbar| block flex grid table| auto dvw fit full lvw max min px screen svw| loose none normal px relaxed snug tight|through |item | inside outside| decimal disc none| auto px| clip-border clip-content clip-fill clip-padding clip-stroke clip-view no-clip| add exclude intersect subtract| alpha luminance match|origin- border content fill padding stroke view|type- alpha luminance| circle ellipse| closest-corner closest-side farthest-corner farthest-side|at- bottom bottom-left bottom-right center left left-bottom left-top right right-bottom right-top top top-left top-right| dvh fit full lh lvh max min none px screen svh| auto dvh dvw fit full lh lvh lvw max min none px screen svh svw| dvw fit full lvw max min none px screen svw| auto dvh dvw fit full lvh lvw max min none prose px svh svw| auto dvh dvw fit full lvh lvw max min none px screen svh svw| contain cover fill none scale-down| first last none| distant dramatic midrange near none normal|inset | full none|3d | auto smooth|gutter- auto both stable| auto none thin| inner none| auto dvh dvw fit full lvh lvw max min px svh svw| control-2xl control-2xs control-lg control-md control-sm control-xl control-xs rail-item|base | center end justify left right start| clip ellipsis| balance nowrap pretty wrap| normal tight tighter wide wider widest| cpu gpu none| 3d flat| all colors none opacity shadow transform| discrete normal| full px| auto dvh dvw fit full lvh lvw max min px screen svh svw| rail rail-expanded sidebar sidebar-compact| auto contents scroll transform\".split('|').map((s) => {\n const tails = s.split(' ')\n const prefix = tails.shift()!\n for (let i = 0; i < tails.length; i++) {\n tails[i] = prefix + tails[i]\n }\n return tails\n})\nconst AA = DZ(\"0000000000000000000000000000000000000000000000000000000000000262242:6@200000006:240B428:44224000020460442224262200266426424062026224222824220022400000000\\\\00N222422242222222224062242222222422226264222422222222222222442804222422222222222222222222220<40<02042600024440202042244022\")\nconst AG = DZ(\"ɠ222222222222222222222222222222222222222222222222222222222222˕4222226>ʶ22ʷʺʷ2ʸʷ42ʴ2ʓ22>621422ɶ222ɹɼɷɺɷɺ22ɱ42222ɨ2ɧ26622ɘɓ24ɐɋƸƵ222]d24242ǖǓƚÆȭ2263ȪȧȪ2222222ǥ222222222222222222DŽƿ2ǀƷ2222222422222ƞƓ22222222222222222222144Ũť22Ťš222222222222222222222ĺ2ij6İħĪħĪɥŰ4Ĥ¯²ġ822ĘĕĘ2ė22226Čĉ2\")\nconst AS = DZ(\"02222222222222222222222222222222222222222222222222222222222222222202022222222222EH2200IL021042222Y\\\\222IL0cf2e10j2222U00X2022]`2{0000120~}22:22~22222222222G000sOVI000002>40000B00000Iª«000®00000000000000021M°¯00²0000000000000000000002222HGHa1¾222Ã2Ä2222ÍÐ000±´22·\")\nconst litAnchor = new Int32Array(1020)\nconst litGroup = new Int32Array(1020)\nconst litPool = new Int32Array(1020)\nlet poolText = ''\nconst poolOffsets = new Int32Array(1072)\n{\n const tailRef = new Map()\n let nextRef = 0\n let e = 0\n for (let i = 0; i < AA.length; i++) {\n for (const tail of SETS[AS[i]!]!) {\n let r = tailRef.get(tail)\n if (r === undefined) {\n r = nextRef++\n tailRef.set(tail, r)\n poolOffsets[r * 2] = poolText.length\n poolOffsets[r * 2 + 1] = tail.length\n poolText += tail\n }\n litAnchor[e] = AA[i]!\n litGroup[e] = AG[i]!\n litPool[e] = r\n e++\n }\n }\n}\n// conflict adjacency (engine builds claim bitmask CSR at init)\nconst adjGid = DZ(\"0b2N:222@R>F@286¦2@H2D266226FB22B2>BD\\\\6N22222Z222D222t\")\nconst adjStart = PS(U(\"1::24444432:442:44:44>222222:44:4421322511111311111114\"))\nconst adjTgt = DZ(\"24A;33N=C@H4A;33N=C@<27;83:;8393NQ:3NQʰ222ˉºŴŽ2R2=18cƴÅŇ=cĞÛC1ƈǝȈ:ħ25=11D3A@4=<1;1DEr25;11B3?<6;:371BCn9@7=<8192>2E121@9@EHE@9>2T25511<398454131<=V25511<398454131<=ƧNž2Ĕé242L222290000f22500ɛ000ǘ222\")\nconst patGid = U(\"ij\")\nconst patTgt = U(\"\")\nconst postfixLookupGroups = U(\"1\")\nconst orderSensitiveModifiers = \"* ** after backdrop before details-content file first-letter first-line marker placeholder selection\"\nexport default {\n GROUP_COUNT, customValidatorNames, edgeStart, labelStart, labelText,\n edgeTarget, nodeGroup, nodeVlist, vlistPat, vlistOps, vlistRef, vlistGroup,\n litAnchor, litGroup, litPool, poolOffsets, poolText,\n adjGid, adjStart, adjTgt, patGid, patTgt, postfixLookupGroups,\n orderSensitiveModifiers,\n}\n"],"mappings":";AAkCA,IAAM,IAAI;AACV,IAAM,KAAK,GAAW,IAAI,MAAkB;CACxC,MAAM,MAAM,IAAI,WAAW,EAAE,MAAM;CACnC,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,IAAI,KAAK,EAAE,WAAW,CAAC,IAAI,IAAI;CAClE,OAAO;AACX;AACA,IAAM,MAAM,WAAmC;CAC3C,MAAM,MAAM,IAAI,WAAW,OAAO,SAAS,CAAC;CAC5C,KAAK,IAAI,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK,IAAI,IAAI,KAAK,IAAI,KAAM,OAAO;CACtE,OAAO;AACX;AAEA,IAAM,MAAM,MAA0B;CAClC,MAAM,MAAM,IAAI,WAAW,EAAE,MAAM;CACnC,IAAI,IAAI;CACR,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK;EAC/B,MAAM,IAAI,EAAE,WAAW,CAAC,IAAI;EAC5B,KAAM,MAAM,IAAK,EAAE,IAAI;EACvB,IAAI,KAAK;CACb;CACA,OAAO;AACX;AACA,IAAM,cAAc;AACpB,IAAM,uBAAiC,CAAC;AACxC,IAAM,YAAY,GAAG,EAAE,iUAAiU,CAAC;AACzV,IAAM,aAAa,GAAG,EAAE,gUAAgU,CAAC;AACzV,IAAM,YAAY;AAElB,IAAM,oBAAoB;CACtB,MAAM,IAAI,UAAU,SAAS;CAC7B,MAAM,QAAQ,IAAI,WAAW,CAAC;CAC9B,KAAK,IAAI,IAAI,IAAI,GAAG,KAAK,GAAG,KAAK;EAC7B,IAAI,IAAI;EACR,IAAI,IAAI,IAAI;EACZ,KAAK,IAAI,IAAI,UAAU,IAAK,IAAI,UAAU,IAAI,IAAK,KAAK;GAAE,KAAK,MAAM;GAAK,KAAK,MAAM;EAAI;EACzF,MAAM,KAAK;CACf;CACA,MAAM,MAAM,IAAI,WAAW,UAAU,EAAG;CACxC,IAAI,IAAI;CACR,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK;EACxB,IAAI,IAAI,IAAI;EACZ,KAAK,IAAI,IAAI,UAAU,IAAK,IAAI,UAAU,IAAI,IAAK,KAAK;GAAE,IAAI,OAAO;GAAG,KAAK,MAAM;EAAI;CAC3F;CACA,OAAO;AACX,EAAA,CAAG;AACH,IAAM,YAAY,EAAE,mUAAmU,CAAC;AAExV,IAAM,WAAW,GAAG,EAAE,gCAAgC,CAAC;AACvD,IAAM,WAAW,EAAE,4HAA4H;AAC/I,IAAM,WAAW,EAAE,gPAAgP;AACnQ,IAAM,aAAa,GAAG,22BAA22B;AAEj4B,IAAM,mBAAmB;CACrB,MAAM,uBAAM,IAAI,WAAW,GAAG,EAAA,CAAE,KAAK,EAAE;CACvC,MAAM,IAAI,GAAG,qPAAqP;CAClQ,MAAM,IAAI,GAAG,sPAAsP;CACnQ,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,QAAQ,KAAK,IAAI,EAAE,MAAO,EAAE;CAClD,OAAO;AACX,EAAA,CAAG;AACH,IAAM,OAAO,8wLAA8wL,MAAM,GAAG,CAAC,CAAC,KAAK,MAAM;CAC7yL,MAAM,QAAQ,EAAE,MAAM,GAAG;CACzB,MAAM,SAAS,MAAM,MAAM;CAC3B,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAC9B,MAAM,KAAK,SAAS,MAAM;CAE9B,OAAO;AACX,CAAC;AACD,IAAM,KAAK,GAAG,wRAAwR;AACtS,IAAM,KAAK,GAAG,uRAAuR;AACrS,IAAM,KAAK,GAAG,wRAAwR;AACtS,IAAM,4BAAY,IAAI,WAAW,IAAI;AACrC,IAAM,2BAAW,IAAI,WAAW,IAAI;AACpC,IAAM,0BAAU,IAAI,WAAW,IAAI;AACnC,IAAI,WAAW;AACf,IAAM,8BAAc,IAAI,WAAW,IAAI;AACvC;CACI,MAAM,0BAAU,IAAI,IAAI;CACxB,IAAI,UAAU;CACd,IAAI,IAAI;CACR,KAAK,IAAI,IAAI,GAAG,IAAI,GAAG,QAAQ,KAC3B,KAAK,MAAM,QAAQ,KAAK,GAAG,KAAO;EAC9B,IAAI,IAAI,QAAQ,IAAI,IAAI;EACxB,IAAI,MAAM,KAAA,GAAW;GACjB,IAAI;GACJ,QAAQ,IAAI,MAAM,CAAC;GACnB,YAAY,IAAI,KAAK,SAAS;GAC9B,YAAY,IAAI,IAAI,KAAK,KAAK;GAC9B,YAAY;EAChB;EACA,UAAU,KAAK,GAAG;EAClB,SAAS,KAAK,GAAG;EACjB,QAAQ,KAAK;EACb;CACJ;AAER;AAEA,IAAM,SAAS,GAAG,yDAAyD;AAC3E,IAAM,WAAW,GAAG,EAAE,wDAAwD,CAAC;AAC/E,IAAM,SAAS,GAAG,0MAA0M;AAC5N,IAAM,SAAS,EAAE,GAAG;AACpB,IAAM,SAAS,EAAE,GAAG;AACpB,IAAM,sBAAsB,EAAE,GAAG;AAEjC,IAAA,8BAAe;CACX;CAAa;CAAsB;CAAW;CAAY;CAC1D;CAAY;CAAW;CAAW;CAAU;CAAU;CAAU;CAChE;CAAW;CAAU;CAAS;CAAa;CAC3C;CAAQ;CAAU;CAAQ;CAAQ;CAAQ;CAC1C;AACJ"}
|
|
1
|
+
{"version":3,"file":"cn-tables.generated.js","names":[],"sources":["../../src/lib/cn-tables.generated.ts"],"sourcesContent":["/*\n * Generated class-group tables from cn@0.4.0 by cn/build, using the complete\n * config and no source scanning. cn is Copyright (c) 2026 shadcn, MIT licensed.\n * This MIT notice is retained because the generated decoder is distributed in\n * this file and in the standalone registry payload.\n *\n * MIT License\n *\n * Copyright (c) 2026 shadcn\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\n\n// GENERATED by `cn build` — do not edit.\n// Pair with createCn from \"cn/engine\":\n// import tables from \"./cn-tables.generated.ts\"\n// import { createCn } from \"cn/engine\"\n// export const cn = createCn(tables)\nconst P = 48\nconst U = (s: string, o = 0): Int32Array => {\n const out = new Int32Array(s.length)\n for (let i = 0; i < s.length; i++) out[i] = s.charCodeAt(i) - P - o\n return out\n}\nconst PS = (counts: Int32Array): Int32Array => {\n const out = new Int32Array(counts.length + 1)\n for (let i = 0; i < counts.length; i++) out[i + 1] = out[i]! + counts[i]!\n return out\n}\n// zigzag-delta stream → running values\nconst DZ = (s: string): Int32Array => {\n const out = new Int32Array(s.length)\n let a = 0\n for (let i = 0; i < s.length; i++) {\n const z = s.charCodeAt(i) - P\n a += (z >>> 1) ^ -(z & 1)\n out[i] = a\n }\n return out\n}\nconst GROUP_COUNT = 384\nconst customValidatorNames: string[] = []\nconst edgeStart = PS(U(\"E0500002005282000000002000150000020021820000011200000003022202000300004200120000200420001200021200301200010400162000010000220021010:2192001200220012000220012000200200200400010200040000000000400200108200110100000022010313000162002000020020012020080213000228200000000082000000000120002000120020020040101020300130001001010\"))\nconst labelStart = PS(U(\":11111111211111119311546544411119731869:671397415686432441111111111161114151214313433415:78311132233313187211117221449443411141111151152226611131111112212518142224214215421421542142424242516171151615616347111111111197911327451111111111111111111113134714133513411111311111111111111111111112444411111342312715245411117:3\"))\nconst labelText = \"@containerabcdefghinlmoprstunderlineviawzccentlignnimatespectuto-colsrowsaglorightnessckdrop-sisbcontrastfiltergrayscalehue-rotateinvertopacityslurrightnessaturateepia-coniclinearpositionradialsizeockurrderttom-belrstxyespacing-xyaretoursorlnt-umnsendspantartainentrasteividerop-shadowurationcorationlay-xyasendillexontromlter-featuresstretchapr-xyayscaleidow-colsrowsue-rotatedentlinesetvert-beringsxyeshadoweiadingftnest-clamp-imageabein-lrstxyskx--b-coniclpositionrsizet-x-y-fromto-fromto-inearfromto-fromto-adialfromto-fromtofromtofromtofromtoblockhinlinew-screenesblockhinlinewbjectpacityrutlinederigin-offsetbelrstxyesrspective-originaceholderioghtng-offsettateundedw-xyz-belrstlreseslr-endspantartaturatecepiahizekewpace-taleroll-xyz-barmpbelrstxyesbelrstxyes-thumbrackadowrink-xyxyartrokeabextora-shadowpckingnsformitionlate-xyz-offsetill-changeoom\"\n// pre-order tree: targets derived from edge counts via subtree sizes\nconst edgeTarget = (() => {\n const N = edgeStart.length - 1\n const sizes = new Int32Array(N)\n for (let i = N - 1; i >= 0; i--) {\n let s = 1\n let c = i + 1\n for (let k = edgeStart[i]!; k < edgeStart[i + 1]!; k++) { s += sizes[c]!; c += sizes[c]! }\n sizes[i] = s\n }\n const out = new Int32Array(edgeStart[N]!)\n let e = 0\n for (let i = 0; i < N; i++) {\n let c = i + 1\n for (let k = edgeStart[i]!; k < edgeStart[i + 1]!; k++) { out[e++] = c; c += sizes[c]! }\n }\n return out\n})()\nconst nodeGroup = U(\"02000000000000900<=0?000B000F00F00ŏI0J0LNPRTVX0000]_a00000000000000000000000rst0000000zŏ00000000000
ŏ0000000ŏ00000000000000000000000000000000000000000000000000000000000000Ë000000000000000000000Þ000000000000000000ð0000000ø0ùúûüýþÿĀāĂ㥹Ć000000000000000000000000000000000000000000ħ0ĨĪ00000000000000000000ļĽ00000Ŭ000000\", 1)\n// vlists = op-pattern pool + per-list refs; the engine indexes these directly\nconst vlistPat = PS(U(\"123333359346463635126536711576\"))\nconst vlistOps = U(\"93203242332583253248325D>E?F@03263243255B:032523853:0325B:8GA032542H<C=12727B:0328432553;D>E?3257D>032585:0325B:;0328B:032\")\nconst vlistRef = U(\"012113445661666666789111:5;;;;;;;;444;;;:62999<1161=62>>?61:21@ABCD4446996:64E:::;:?::64:F114GHHIHHHHIHH1HH1HH1HHHHHH::EEJ4444::EE4444441691;644444114244444:;K6666555555555555555999666664444444444444444444444226?6:66644L9M?D:111::::6DE199\")\nconst vlistGroup = DZ(\"020200202020020020020020020020200200200200200200200002020202001003040106000200200200200200200200200200200200200200200200200200200200200200200200200200200200020020020020020020002020200202002002002002002002002002002020002002020020200220200200200200200200200200200200020020020000200020002000200200200020020020002000200200200020020202002020202000200200020022000200200020020002002000200220002002000200W0Z00020020002002020002002000200g0j0002002000200200020020002002000200200020020002000200002000002002002002002000200020000200002002002002002002002020020020200200200200200200200200202020020020020020020020020002002002020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020020002002002002002002000200200200200200200200200200020202020002000200020002002002002000020200200\")\n// nodeVlist rebuilt sparse: (anchor deltas, vlist ids)\nconst nodeVlist = (() => {\n const out = new Int32Array(319).fill(-1)\n const A = DZ(\"02422242:222222242224222242442222222422222244442242226224222426222422442462222422622222222626222462242622422622422424242422222222422222222242422222222222222222622442224222222222222224424442262222222222222222222226224222424242422224422422422222\")\n const V = DZ(\"02222222222222222222202222222222222222222222221422222222222222222222222222222222222Y\\\\222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222221422222222222222222222222222222222222222Ŀł222222222222222222\")\n for (let i = 0; i < A.length; i++) out[A[i]!] = V[i]!\n return out\n})()\nconst SETS = \"container |break-after- all auto avoid avoid-page column left page right|break-before- all auto avoid avoid-page column left page right|break-inside-a uto void void-column void-page|box-decoration- clone slice|box- border content| contents flow-root hidden table table-caption table-cell table-column table-column-group table-footer-group table-header-group table-row table-row-group| not-sr-only sr-only|float- end left none right start|clear- both end left none right start|isolat e ion-auto|overflow- auto clip hidden scroll visible|overflow-x- auto clip hidden scroll visible|overflow-y- auto clip hidden scroll visible|overscroll- auto contain none|overscroll-x- auto contain none|overscroll-y- auto contain none| absolute fixed relative static sticky| collapse invisible visible|justify- around baseline between center center-safe end end-safe evenly normal start stretch|justify-items- center center-safe end end-safe normal start stretch|justify-self- auto center center-safe end end-safe start stretch|items- baseline baseline-last center center-safe end end-safe start stretch|self- auto baseline baseline-last center center-safe end end-safe start stretch|place-content- around baseline between center center-safe end end-safe evenly start stretch|place-items- baseline center center-safe end end-safe start stretch|place-self- auto center center-safe end end-safe start stretch| antialiased subpixel-antialiased| italic not-italic|normal-nums |ordinal |slashed-zero | lining-nums oldstyle-nums| proportional-nums tabular-nums| diagonal-fractions stacked-fractions| no-underline overline| capitalize lowercase normal-case uppercase|truncate |whitespace- break-spaces normal nowrap pre pre-line pre-wrap|break- all keep normal words|wrap- anywhere break-word normal|hyphens- auto manual none|mix-blend- color color-burn color-dodge darken difference exclusion hard-light hue lighten luminosity multiply normal overlay plus-darker plus-lighter saturation screen soft-light|table- auto fixed|caption- bottom top|backface- hidden visible|appearance- auto none|scheme- dark light light-dark normal only-dark only-light|field-sizing- content fixed|pointer-events- auto none|resize -none -x -y|snap- align-none center end start|snap- always normal|snap- both none x y|snap- mandatory proximity|touch- auto manipulation none|touch-pan- left right x|touch-pan- down up y|touch-pinch-zoom |select- all auto none text|forced-color-adjust- auto none| normal size| baseline bottom middle sub super text-bottom text-top top| bounce none ping pulse spin| auto square video| auto control-2xl control-2xs control-lg control-md control-sm control-xl control-xs fr max min px|none | auto control-2xl control-2xs control-lg control-md control-sm control-xl control-xs full px| fixed local scroll|clip- border content padding text|origin- border content padding| bottom bottom-left bottom-right center left left-bottom left-top right right-bottom right-top top top-left top-right| no-repeat repeat repeat-round repeat-space repeat-x repeat-y| auto contain cover| gradient-to-b gradient-to-bl gradient-to-br gradient-to-l gradient-to-r gradient-to-t gradient-to-tl gradient-to-tr none|blend- color color-burn color-dodge darken difference exclusion hard-light hue lighten luminosity multiply normal overlay saturation screen soft-light|to- b bl br l r t tl tr| auto control-2xl control-2xs control-lg control-md control-sm control-xl control-xs dvh fit full lh lvh max min px screen svh| dashed dotted double hidden none solid| collapse separate| control-2xl control-2xs control-lg control-md control-sm control-xl control-xs px|auto |full | content none strict| inline-size size|layout |paint |style | around baseline between center center-safe end end-safe evenly normal start stretch| alias all-scroll auto cell col-resize context-menu copy crosshair default e-resize ew-resize grab grabbing help move n-resize ne-resize nesw-resize no-drop none not-allowed ns-resize nw-resize nwse-resize pointer progress row-resize s-resize se-resize sw-resize text vertical-text w-resize wait zoom-in zoom-out| dashed dotted double solid wavy| auto from-font|reverse |initial | in in-out initial linear out| col col-reverse row row-reverse| nowrap wrap wrap-reverse| auto initial none| black bold extrabold extralight light medium normal semibold thin| condensed expanded extra-condensed extra-expanded normal semi-condensed semi-expanded ultra-condensed ultra-expanded|flow- col col-dense dense row row-dense| none subgrid| auto control-2xl control-2xs control-lg control-md control-sm control-xl control-xs dvh dvw fit full lh lvh lvw max min px rail-item row-lg row-md row-sm screen statusbar svh svw topbar| block flex grid table| auto control-2xl control-2xs control-lg control-md control-sm control-xl control-xs dvw fit full lvw max min px screen svw| control-2xl control-2xs control-lg control-md control-sm control-xl control-xs loose none normal px relaxed snug tight|through |item | inside outside| decimal disc none| auto control-2xl control-2xs control-lg control-md control-sm control-xl control-xs px| clip-border clip-content clip-fill clip-padding clip-stroke clip-view no-clip| add exclude intersect subtract| alpha luminance match|origin- border content fill padding stroke view|type- alpha luminance| circle ellipse| closest-corner closest-side farthest-corner farthest-side|at- bottom bottom-left bottom-right center left left-bottom left-top right right-bottom right-top top top-left top-right| control-2xl control-2xs control-lg control-md control-sm control-xl control-xs dvh fit full lh lvh max min none px screen svh| auto control-2xl control-2xs control-lg control-md control-sm control-xl control-xs dvh dvw fit full lh lvh lvw max min none px rail-item row-lg row-md row-sm screen statusbar svh svw topbar| control-2xl control-2xs control-lg control-md control-sm control-xl control-xs dvw fit full lvw max min none px screen svw| auto control-2xl control-2xs control-lg control-md control-sm control-xl control-xs dvh dvw fit full lvh lvw max min none prose px rail rail-expanded sidebar sidebar-compact svh svw| auto control-2xl control-2xs control-lg control-md control-sm control-xl control-xs dvh dvw fit full lvh lvw max min none px rail rail-expanded screen sidebar sidebar-compact svh svw| contain cover fill none scale-down| first last none| distant dramatic midrange near none normal|inset | full none|3d | auto smooth|gutter- auto both stable| auto none thin| inner none| auto control-2xl control-2xs control-lg control-md control-sm control-xl control-xs dvh dvw fit full lvh lvw max min px rail-item svh svw|base | center end justify left right start| clip ellipsis| balance nowrap pretty wrap| normal tight tighter wide wider widest| cpu gpu none| 3d flat| all colors none opacity shadow transform| discrete normal| control-2xl control-2xs control-lg control-md control-sm control-xl control-xs full px| auto control-2xl control-2xs control-lg control-md control-sm control-xl control-xs dvh dvw fit full lvh lvw max min px rail rail-expanded screen sidebar sidebar-compact svh svw| auto contents scroll transform\".split('|').map((s) => {\n const tails = s.split(' ')\n const prefix = tails.shift()!\n for (let i = 0; i < tails.length; i++) {\n tails[i] = prefix + tails[i]\n }\n return tails\n})\nconst AA = DZ(\"0000000000000000000000000000000000000000000000000000000000000262242:6@200000006:240B428:4422400002046044222426220026642642462026224222824220022400000000\\\\00N222422242222222224062242222222422226264222422222222222222442804222422222222222222222222220<4<0204260002444020204224422\")\nconst AG = DZ(\"ɠ222222222222222222222222222222222222222222222222222222222222˕4222226>ʶ22ʷʺʷ2ʸʷ42ʴ2ʓ22>621422ɶ222ɹɼɷɺɷɺ22ɱ42222ɨ2ɧ26622ɘɓ244ƸƵ222]d24242ǖǓƚÄȫ2263ȨȥȨ2222222ǣ222222222222222222ǂƽ2ƾƵ2222222422222ƜƑ22222222222222222222144Ŧţ22Ţş222222222222222222222ĸ2ı68ĦģĦɡŰ4Ġ«®ĝ822ĔđĔ2ē2222622\")\nconst AS = DZ(\"02222222222222222222222222222222222222222222222222222222222222222202022222222222EH2200IL021042222Y\\\\222IL0cf2e10j2222U00X202[^2y0000120|{~22
:22|22222222222G000qOVI00000}2>40000B00000I¨©000¬00000000000000021M®00°000000000000000000000222HGHa1º222¿2À2222ÉÌ000°2±\")\nconst litAnchor = new Int32Array(1635)\nconst litGroup = new Int32Array(1635)\nconst litPool = new Int32Array(1635)\nlet poolText = ''\nconst poolOffsets = new Int32Array(1072)\n{\n const tailRef = new Map()\n let nextRef = 0\n let e = 0\n for (let i = 0; i < AA.length; i++) {\n for (const tail of SETS[AS[i]!]!) {\n let r = tailRef.get(tail)\n if (r === undefined) {\n r = nextRef++\n tailRef.set(tail, r)\n poolOffsets[r * 2] = poolText.length\n poolOffsets[r * 2 + 1] = tail.length\n poolText += tail\n }\n litAnchor[e] = AA[i]!\n litGroup[e] = AG[i]!\n litPool[e] = r\n e++\n }\n }\n}\n// conflict adjacency (engine builds claim bitmask CSR at init)\nconst adjGid = DZ(\"0b2N:222@R>F@286¦2@H2D266226FB22B2>BD\\\\6N22222Z222D222p\")\nconst adjStart = PS(U(\"1::24444432:442:44:44>222222:44:4421322511111311111114\"))\nconst adjTgt = DZ(\"24A;33N=C@H4A;33N=C@<27;83:;8393NQ:3NQʰ222ˉºŴŽ2R2=18cƴÅŇ=cĞÛC1ƈǝȈ:ħ25=11D3A@4=<1;1DEr25;11B3?<6;:371BCn9@7=<8192>2E121@9@EHE@9>2T25511<398454131<=V25511<398454131<=ƧNž2Đå242L222290000f22500ɛ000ǘ222\")\nconst patGid = U(\"ij\")\nconst patTgt = U(\"\")\nconst postfixLookupGroups = U(\"1\")\nconst orderSensitiveModifiers = \"* ** after backdrop before details-content file first-letter first-line marker placeholder selection\"\nexport default {\n GROUP_COUNT, customValidatorNames, edgeStart, labelStart, labelText,\n edgeTarget, nodeGroup, nodeVlist, vlistPat, vlistOps, vlistRef, vlistGroup,\n litAnchor, litGroup, litPool, poolOffsets, poolText,\n adjGid, adjStart, adjTgt, patGid, patTgt, postfixLookupGroups,\n orderSensitiveModifiers,\n}\n"],"mappings":"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"}
|
package/dist/r/chart.json
CHANGED
package/dist/r/registry.json
CHANGED
|
@@ -325,6 +325,11 @@
|
|
|
325
325
|
"lib"
|
|
326
326
|
],
|
|
327
327
|
"files": [
|
|
328
|
+
{
|
|
329
|
+
"path": "src/components/ui/chart/chart-options.ts",
|
|
330
|
+
"type": "registry:ui",
|
|
331
|
+
"target": "components/ui/chart/chart-options.ts"
|
|
332
|
+
},
|
|
328
333
|
{
|
|
329
334
|
"path": "src/components/ui/chart/chart.tsx",
|
|
330
335
|
"type": "registry:ui",
|