@kamod-ch/ui 0.2.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.md +103 -16
  2. package/dist/{AlertDialog-ALB541qy.d.ts → AlertDialog-GadhKjPC.d.ts} +1 -1
  3. package/dist/{DialogContent-CK1t4m4e.d.ts → DialogContent-cQHSRQdT.d.ts} +1 -1
  4. package/dist/{Drawer-B3pZMn5j.d.ts → Drawer-CdjXZxxK.d.ts} +1 -1
  5. package/dist/{Sheet-s0xRF22F.d.ts → Sheet-DZ-p-aHY.d.ts} +1 -1
  6. package/dist/SidebarProvider-Bx7-BdQn.d.ts +160 -0
  7. package/dist/chunk-24QD2FTA.js +722 -0
  8. package/dist/chunk-24QD2FTA.js.map +1 -0
  9. package/dist/{chunk-MJG6UKD4.js → chunk-262EK2XT.js} +9 -17
  10. package/dist/chunk-262EK2XT.js.map +1 -0
  11. package/dist/{chunk-7AJT2E2Y.js → chunk-3LIT5GWF.js} +2 -2
  12. package/dist/chunk-3LIT5GWF.js.map +1 -0
  13. package/dist/chunk-B47B6KK6.js +59 -0
  14. package/dist/chunk-B47B6KK6.js.map +1 -0
  15. package/dist/{chunk-JKXSX67K.js → chunk-EMUPVA2F.js} +4 -4
  16. package/dist/chunk-EMUPVA2F.js.map +1 -0
  17. package/dist/{chunk-26CRIZXP.js → chunk-HCTZJYHK.js} +19 -17
  18. package/dist/chunk-HCTZJYHK.js.map +1 -0
  19. package/dist/{chunk-4BJJOHZT.js → chunk-HHLQYMPT.js} +3 -3
  20. package/dist/{chunk-4BJJOHZT.js.map → chunk-HHLQYMPT.js.map} +1 -1
  21. package/dist/{chunk-YJGECAOZ.js → chunk-IQH3XSOI.js} +4 -4
  22. package/dist/{chunk-YJGECAOZ.js.map → chunk-IQH3XSOI.js.map} +1 -1
  23. package/dist/{chunk-LFJF3M6M.js → chunk-JSHUWI3C.js} +3 -3
  24. package/dist/{chunk-LFJF3M6M.js.map → chunk-JSHUWI3C.js.map} +1 -1
  25. package/dist/{chunk-2BQ54337.js → chunk-MJQ6R345.js} +2 -2
  26. package/dist/{chunk-2BQ54337.js.map → chunk-MJQ6R345.js.map} +1 -1
  27. package/dist/{chunk-PZS2D2QM.js → chunk-NILG56Z7.js} +3 -3
  28. package/dist/{chunk-PZS2D2QM.js.map → chunk-NILG56Z7.js.map} +1 -1
  29. package/dist/{chunk-2HZCH73K.js → chunk-STRBBF45.js} +5 -5
  30. package/dist/chunk-STRBBF45.js.map +1 -0
  31. package/dist/{chunk-YVALXJRN.js → chunk-TXKPDNRD.js} +7 -8
  32. package/dist/chunk-TXKPDNRD.js.map +1 -0
  33. package/dist/{chunk-YTJRKLUR.js → chunk-UARVH66B.js} +4 -4
  34. package/dist/{chunk-YTJRKLUR.js.map → chunk-UARVH66B.js.map} +1 -1
  35. package/dist/{chunk-ROKLAZHC.js → chunk-UIA74JVN.js} +3 -3
  36. package/dist/{chunk-ROKLAZHC.js.map → chunk-UIA74JVN.js.map} +1 -1
  37. package/dist/{chunk-BQP4UA44.js → chunk-X2YUFNK7.js} +3 -3
  38. package/dist/{chunk-BQP4UA44.js.map → chunk-X2YUFNK7.js.map} +1 -1
  39. package/dist/{chunk-3DNIMQX6.js → chunk-XNYAQZIB.js} +15 -9
  40. package/dist/chunk-XNYAQZIB.js.map +1 -0
  41. package/dist/components/alert-dialog/index.d.ts +3 -3
  42. package/dist/components/alert-dialog/index.js +3 -2
  43. package/dist/components/command/index.js +4 -3
  44. package/dist/components/context-menu/index.d.ts +1 -1
  45. package/dist/components/context-menu/index.js +2 -1
  46. package/dist/components/dialog/index.d.ts +3 -3
  47. package/dist/components/dialog/index.js +3 -2
  48. package/dist/components/drawer/index.d.ts +3 -3
  49. package/dist/components/drawer/index.js +4 -3
  50. package/dist/components/dropdown/index.js +1 -1
  51. package/dist/components/hover-card/index.js +1 -1
  52. package/dist/components/radio-group/index.js +2 -2
  53. package/dist/components/selectable-card/index.js +2 -2
  54. package/dist/components/sheet/index.d.ts +3 -3
  55. package/dist/components/sheet/index.js +4 -3
  56. package/dist/components/sidebar/index.d.ts +15 -10
  57. package/dist/components/sidebar/index.js +13 -1
  58. package/dist/components/tabs/index.js +1 -1
  59. package/dist/components/theme-toggle/index.js +1 -1
  60. package/dist/index.d.ts +5 -5
  61. package/dist/index.js +18 -17
  62. package/package.json +15 -12
  63. package/LICENSE.md +0 -9
  64. package/dist/SidebarProvider-IAihmyD7.d.ts +0 -46
  65. package/dist/chunk-26CRIZXP.js.map +0 -1
  66. package/dist/chunk-2HZCH73K.js.map +0 -1
  67. package/dist/chunk-3DNIMQX6.js.map +0 -1
  68. package/dist/chunk-7AJT2E2Y.js.map +0 -1
  69. package/dist/chunk-JKXSX67K.js.map +0 -1
  70. package/dist/chunk-MJG6UKD4.js.map +0 -1
  71. package/dist/chunk-R565SY7K.js +0 -69
  72. package/dist/chunk-R565SY7K.js.map +0 -1
  73. package/dist/chunk-YVALXJRN.js.map +0 -1
@@ -1,10 +1,10 @@
1
+ import { createPortal } from './chunk-B47B6KK6.js';
1
2
  import { createDismissableLayer } from './chunk-PPYJQNE5.js';
2
3
  import { cn } from './chunk-MS2ZNYCJ.js';
3
4
  import { signal } from '@preact/signals';
4
5
  import { createContext } from 'preact';
5
6
  import { useMemo, useRef, useEffect, useState, useLayoutEffect, useContext } from 'preact/hooks';
6
7
  import { jsx, jsxs } from 'preact/jsx-runtime';
7
- import { createPortal } from 'preact/compat';
8
8
  import { tv } from 'tailwind-variants';
9
9
 
10
10
  var ContextMenuContext = createContext(null);
@@ -546,5 +546,5 @@ var ContextMenuTrigger = ({
546
546
  };
547
547
 
548
548
  export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger };
549
- //# sourceMappingURL=chunk-ROKLAZHC.js.map
550
- //# sourceMappingURL=chunk-ROKLAZHC.js.map
549
+ //# sourceMappingURL=chunk-UIA74JVN.js.map
550
+ //# sourceMappingURL=chunk-UIA74JVN.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/context-menu/ContextMenu.tsx","../src/components/context-menu/ContextMenuCheckboxItem.tsx","../src/components/context-menu/ContextMenuContent.tsx","../src/components/context-menu/ContextMenuGroup.tsx","../src/components/context-menu/ContextMenuItem.tsx","../src/components/context-menu/ContextMenuLabel.tsx","../src/components/context-menu/context-menu-radio-context.tsx","../src/components/context-menu/ContextMenuRadioGroup.tsx","../src/components/context-menu/ContextMenuRadioItem.tsx","../src/components/context-menu/ContextMenuSeparator.tsx","../src/components/context-menu/ContextMenuShortcut.tsx","../src/components/context-menu/context-menu-sub-context.tsx","../src/components/context-menu/ContextMenuSub.tsx","../src/components/context-menu/ContextMenuSubContent.tsx","../src/components/context-menu/ContextMenuSubTrigger.tsx","../src/components/context-menu/ContextMenuTrigger.tsx"],"names":["useMemo","signal","useEffect","jsx","useRef","createContext","useContext","useState","jsxs"],"mappings":"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","file":"chunk-ROKLAZHC.js","sourcesContent":["import { signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext, useEffect, useMemo, useRef } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ContextMenuPoint = { x: number; y: number };\n\nexport type ContextMenuContextValue = {\n open: ReturnType<typeof signal<boolean>>;\n setOpen: (next: boolean) => void;\n position: ReturnType<typeof signal<ContextMenuPoint>>;\n setPosition: (p: ContextMenuPoint) => void;\n contentWrapperRef: { current: HTMLDivElement | null };\n};\n\nconst ContextMenuContext = createContext<ContextMenuContextValue | null>(null);\n\nexport const useContextMenu = () => {\n const ctx = useContext(ContextMenuContext);\n if (!ctx) throw new Error(\"ContextMenu subcomponents must be used within ContextMenu\");\n return ctx;\n};\n\nexport type ContextMenuProps = JSX.HTMLAttributes<HTMLDivElement> & {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n children?: ComponentChildren;\n};\n\nexport const ContextMenu = ({\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n class: className,\n children,\n ...rest\n}: ContextMenuProps) => {\n const isControlled = openProp !== undefined;\n const open = useMemo(() => signal(isControlled ? Boolean(openProp) : defaultOpen), []);\n const position = useMemo(() => signal<ContextMenuPoint>({ x: 0, y: 0 }), []);\n const contentWrapperRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n if (isControlled && openProp !== undefined) {\n open.value = openProp;\n }\n }, [openProp, isControlled, open]);\n\n const setOpen = (next: boolean) => {\n onOpenChange?.(next);\n if (!isControlled) {\n open.value = next;\n }\n };\n\n const setOpenRef = useRef(setOpen);\n setOpenRef.current = setOpen;\n\n return (\n <ContextMenuContext.Provider\n value={{\n open,\n setOpen: (next) => setOpenRef.current(next),\n position,\n setPosition: (p) => {\n position.value = p;\n },\n contentWrapperRef,\n }}\n >\n <div\n data-slot=\"context-menu\"\n data-state={open.value ? \"open\" : \"closed\"}\n class={cn(\"relative inline-flex\", className)}\n {...rest}\n >\n {children}\n </div>\n </ContextMenuContext.Provider>\n );\n};\n","import { signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { useEffect, useMemo } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ContextMenuCheckboxItemProps = Omit<\n JSX.ButtonHTMLAttributes<HTMLButtonElement>,\n \"children\"\n> & {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n children?: ComponentChildren;\n};\n\nexport const ContextMenuCheckboxItem = ({\n checked: checkedProp,\n defaultChecked = false,\n onCheckedChange,\n class: className,\n children,\n onClick,\n ...rest\n}: ContextMenuCheckboxItemProps) => {\n const internal = useMemo(() => signal(defaultChecked), []);\n const isControlled = checkedProp !== undefined;\n\n useEffect(() => {\n if (checkedProp !== undefined) {\n internal.value = checkedProp;\n }\n }, [checkedProp, internal]);\n\n const checked = isControlled ? Boolean(checkedProp) : internal.value;\n\n return (\n <button\n type=\"button\"\n role=\"menuitemcheckbox\"\n data-slot=\"context-menu-checkbox-item\"\n aria-checked={checked}\n class={cn(\n \"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n const next = !checked;\n if (!isControlled) {\n internal.value = next;\n }\n onCheckedChange?.(next);\n }}\n {...rest}\n >\n <span\n class=\"pointer-events-none absolute start-2 flex size-3.5 items-center justify-center\"\n aria-hidden\n >\n {checked ? (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"size-4\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n ) : null}\n </span>\n {children}\n </button>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { createPortal } from \"preact/compat\";\nimport { useEffect, useLayoutEffect, useRef, useState } from \"preact/hooks\";\nimport { createDismissableLayer } from \"../../lib/interactive\";\nimport { cn } from \"../../lib/utils\";\nimport { useContextMenu } from \"./ContextMenu\";\n\nexport type ContextMenuContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nconst clamp = (v: number, min: number, max: number) => Math.min(Math.max(v, min), max);\n\nexport const ContextMenuContent = ({\n class: className,\n children,\n style,\n ...rest\n}: ContextMenuContentProps) => {\n const { open, setOpen, position, contentWrapperRef } = useContextMenu();\n const innerRef = useRef<HTMLDivElement | null>(null);\n const pt = position.value ?? { x: 0, y: 0 };\n const [fixedPos, setFixedPos] = useState(() => ({ left: pt.x, top: pt.y }));\n\n const isOpen = Boolean(open.value);\n const px = pt.x;\n const py = pt.y;\n\n const assignRef = (node: HTMLDivElement | null) => {\n innerRef.current = node;\n contentWrapperRef.current = node;\n };\n\n useLayoutEffect(() => {\n if (!isOpen) return;\n const el = innerRef.current;\n if (!el) return;\n const rect = el.getBoundingClientRect();\n const margin = 8;\n const maxX = window.innerWidth - rect.width - margin;\n const maxY = window.innerHeight - rect.height - margin;\n setFixedPos({\n left: clamp(px, margin, Math.max(margin, maxX)),\n top: clamp(py, margin, Math.max(margin, maxY)),\n });\n }, [isOpen, px, py]);\n\n useEffect(() => {\n const setOpenRef = { current: setOpen };\n setOpenRef.current = setOpen;\n const layer = createDismissableLayer({\n root: () => contentWrapperRef.current,\n open: () => Boolean(open.value),\n onDismiss: () => setOpenRef.current(false),\n });\n return () => layer.dispose();\n }, [open, setOpen, contentWrapperRef]);\n\n if (!isOpen) return null;\n\n const inlineStyle =\n typeof style === \"object\" && style !== null\n ? { position: \"fixed\" as const, left: fixedPos.left, top: fixedPos.top, zIndex: 50, ...style }\n : ({\n position: \"fixed\" as const,\n left: fixedPos.left,\n top: fixedPos.top,\n zIndex: 50,\n } as const);\n\n return createPortal(\n <div\n ref={assignRef}\n data-slot=\"context-menu-content\"\n role=\"presentation\"\n class={cn(\"min-w-40 outline-none\", className)}\n style={inlineStyle}\n {...rest}\n >\n <div\n role=\"menu\"\n class=\"text-popover-foreground max-h-[min(24rem,calc(100dvh-2rem))] overflow-y-auto rounded-md border bg-popover p-1 shadow-md\"\n >\n {children}\n </div>\n </div>,\n document.body,\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ContextMenuGroupProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const ContextMenuGroup = ({\n class: className,\n children,\n ...rest\n}: ContextMenuGroupProps) => (\n <div data-slot=\"context-menu-group\" role=\"group\" class={cn(className)} {...rest}>\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { useContextMenu } from \"./ContextMenu\";\n\nexport const contextMenuItem = tv({\n base: [\n \"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n ],\n variants: {\n variant: {\n default: \"\",\n destructive:\n \"text-destructive focus:bg-destructive/10 focus:text-destructive dark:focus:bg-destructive/20\",\n },\n inset: {\n true: \"ps-8\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n inset: false,\n },\n});\n\nexport type ContextMenuItemProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> &\n VariantProps<typeof contextMenuItem> & {\n children?: ComponentChildren;\n };\n\nexport const ContextMenuItem = ({\n inset = false,\n variant = \"default\",\n class: className,\n children,\n onClick,\n ...rest\n}: ContextMenuItemProps) => {\n const { setOpen } = useContextMenu();\n return (\n <button\n type=\"button\"\n role=\"menuitem\"\n data-slot=\"context-menu-item\"\n data-inset={inset ? \"true\" : undefined}\n data-variant={variant}\n class={contextMenuItem({ inset, variant, class: className as string | undefined })}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n setOpen(false);\n }}\n {...rest}\n >\n {children}\n </button>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ContextMenuLabelProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n inset?: boolean;\n};\n\nexport const ContextMenuLabel = ({\n inset = false,\n class: className,\n children,\n ...rest\n}: ContextMenuLabelProps) => (\n <div\n data-slot=\"context-menu-label\"\n data-inset={inset ? \"true\" : undefined}\n class={cn(\"text-muted-foreground px-2 py-1.5 text-xs font-medium\", inset && \"ps-8\", className)}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { ComponentChildren } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext } from \"preact/hooks\";\n\nexport type ContextMenuRadioContextValue = {\n value: string;\n setValue: (next: string) => void;\n};\n\nconst ContextMenuRadioContext = createContext<ContextMenuRadioContextValue | null>(null);\n\nexport const ContextMenuRadioProvider = ({\n children,\n value,\n}: {\n children: ComponentChildren;\n value: ContextMenuRadioContextValue;\n}) => <ContextMenuRadioContext.Provider value={value}>{children}</ContextMenuRadioContext.Provider>;\n\nexport const useContextMenuRadio = () => {\n const ctx = useContext(ContextMenuRadioContext);\n if (!ctx) throw new Error(\"ContextMenuRadioItem must be used within ContextMenuRadioGroup\");\n return ctx;\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\nimport { ContextMenuRadioProvider } from \"./context-menu-radio-context\";\n\nexport type ContextMenuRadioGroupProps = JSX.HTMLAttributes<HTMLDivElement> & {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n children?: ComponentChildren;\n};\n\nexport const ContextMenuRadioGroup = ({\n value: valueProp,\n defaultValue,\n onValueChange,\n class: className,\n children,\n ...rest\n}: ContextMenuRadioGroupProps) => {\n const [inner, setInner] = useState(() => defaultValue ?? \"\");\n const isControlled = valueProp !== undefined;\n const current = isControlled ? valueProp! : inner;\n const setValue = (next: string) => {\n onValueChange?.(next);\n if (!isControlled) setInner(next);\n };\n\n return (\n <ContextMenuRadioProvider value={{ value: current, setValue }}>\n <div role=\"radiogroup\" data-slot=\"context-menu-radio-group\" class={cn(className)} {...rest}>\n {children}\n </div>\n </ContextMenuRadioProvider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useContextMenuRadio } from \"./context-menu-radio-context\";\n\nexport type ContextMenuRadioItemProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n value: string;\n children?: ComponentChildren;\n};\n\nexport const ContextMenuRadioItem = ({\n value,\n class: className,\n children,\n onClick,\n ...rest\n}: ContextMenuRadioItemProps) => {\n const radio = useContextMenuRadio();\n const selected = radio.value === value;\n\n return (\n <button\n type=\"button\"\n role=\"menuitemradio\"\n data-slot=\"context-menu-radio-item\"\n aria-checked={selected}\n class={cn(\n \"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n radio.setValue(value);\n }}\n {...rest}\n >\n <span\n class=\"pointer-events-none absolute start-2 flex size-3.5 items-center justify-center\"\n aria-hidden\n >\n {selected ? <span class=\"size-2 rounded-full bg-current\" /> : null}\n </span>\n {children}\n </button>\n );\n};\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ContextMenuSeparatorProps = JSX.HTMLAttributes<HTMLHRElement>;\n\nexport const ContextMenuSeparator = ({ class: className, ...rest }: ContextMenuSeparatorProps) => (\n <hr\n data-slot=\"context-menu-separator\"\n class={cn(\"bg-border -mx-1 my-1 h-px border-0\", className)}\n {...rest}\n />\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ContextMenuShortcutProps = JSX.HTMLAttributes<HTMLSpanElement> & {\n children?: ComponentChildren;\n};\n\nexport const ContextMenuShortcut = ({\n class: className,\n children,\n ...rest\n}: ContextMenuShortcutProps) => (\n <span\n data-slot=\"context-menu-shortcut\"\n class={cn(\"text-muted-foreground ms-auto text-xs tracking-widest\", className)}\n {...rest}\n >\n {children}\n </span>\n);\n","import { signal } from \"@preact/signals\";\nimport type { ComponentChildren } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext, useMemo } from \"preact/hooks\";\n\nexport type ContextMenuSubContextValue = {\n open: ReturnType<typeof signal<boolean>>;\n setOpen: (next: boolean) => void;\n};\n\nconst ContextMenuSubContext = createContext<ContextMenuSubContextValue | null>(null);\n\nexport const ContextMenuSubProvider = ({\n children,\n value,\n}: {\n children: ComponentChildren;\n value: ContextMenuSubContextValue;\n}) => <ContextMenuSubContext.Provider value={value}>{children}</ContextMenuSubContext.Provider>;\n\nexport const useContextMenuSub = () => {\n const ctx = useContext(ContextMenuSubContext);\n if (!ctx) throw new Error(\"ContextMenu subcomponents must be used within ContextMenuSub\");\n return ctx;\n};\n\nexport const useMemoContextMenuSub = (): ContextMenuSubContextValue =>\n useMemo(() => {\n const open = signal(false);\n return {\n open,\n setOpen: (next) => {\n open.value = next;\n },\n };\n }, []);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { ContextMenuSubProvider, useMemoContextMenuSub } from \"./context-menu-sub-context\";\n\nexport type ContextMenuSubProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const ContextMenuSub = ({ class: className, children, ...rest }: ContextMenuSubProps) => {\n const ctx = useMemoContextMenuSub();\n\n return (\n <ContextMenuSubProvider value={ctx}>\n <div\n data-slot=\"context-menu-sub\"\n class={cn(\"relative\", className)}\n onPointerLeave={() => {\n ctx.setOpen(false);\n }}\n {...rest}\n >\n {children}\n </div>\n </ContextMenuSubProvider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useContextMenuSub } from \"./context-menu-sub-context\";\n\nexport type ContextMenuSubContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const ContextMenuSubContent = ({\n class: className,\n children,\n onPointerEnter,\n ...rest\n}: ContextMenuSubContentProps) => {\n const sub = useContextMenuSub();\n\n if (!sub.open.value) return null;\n\n return (\n <div\n role=\"menu\"\n data-slot=\"context-menu-sub-content\"\n data-state=\"open\"\n class={cn(\n \"absolute start-full top-0 z-50 min-w-40 rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md outline-none ms-1 rtl:me-1 rtl:ms-0\",\n className,\n )}\n onPointerEnter={(e) => {\n onPointerEnter?.(e);\n sub.setOpen(true);\n }}\n {...rest}\n >\n {children}\n </div>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useContextMenuSub } from \"./context-menu-sub-context\";\n\nconst ChevronRight = ({ class: className }: { class?: string }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class={cn(\"size-4 shrink-0 rtl:rotate-180\", className)}\n aria-hidden\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n);\n\nexport type ContextMenuSubTriggerProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n children?: ComponentChildren;\n};\n\nexport const ContextMenuSubTrigger = ({\n class: className,\n children,\n onClick,\n onPointerEnter,\n ...rest\n}: ContextMenuSubTriggerProps) => {\n const sub = useContextMenuSub();\n const open = sub.open.value;\n\n return (\n <button\n type=\"button\"\n role=\"menuitem\"\n data-slot=\"context-menu-sub-trigger\"\n data-state={open ? \"open\" : \"closed\"}\n aria-expanded={open}\n aria-haspopup=\"menu\"\n class={cn(\n \"flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-start text-sm outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n \"[&_svg]:shrink-0\",\n className,\n )}\n onPointerEnter={(e) => {\n onPointerEnter?.(e);\n if (e.defaultPrevented) return;\n sub.setOpen(true);\n }}\n onClick={(e) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n sub.setOpen(!open);\n }}\n {...rest}\n >\n {children}\n <ChevronRight class=\"ms-auto\" />\n </button>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useRef } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\nimport { useContextMenu } from \"./ContextMenu\";\n\nconst LONG_PRESS_MS = 500;\n\nexport type ContextMenuTriggerProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const ContextMenuTrigger = ({\n children,\n class: className,\n onContextMenu,\n onPointerDown,\n onPointerUp,\n onPointerCancel,\n onPointerLeave,\n ...rest\n}: ContextMenuTriggerProps) => {\n const { setOpen, setPosition } = useContextMenu();\n const longPressTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n const lastPointer = useRef({ x: 0, y: 0 });\n\n const clearLongPress = () => {\n if (longPressTimer.current !== null) {\n clearTimeout(longPressTimer.current);\n longPressTimer.current = null;\n }\n };\n\n return (\n <div\n data-slot=\"context-menu-trigger\"\n class={cn(className)}\n onContextMenu={(event) => {\n event.preventDefault();\n setPosition({ x: event.clientX, y: event.clientY });\n setOpen(true);\n onContextMenu?.(event);\n }}\n onPointerDown={(e) => {\n onPointerDown?.(e);\n if (e.defaultPrevented) return;\n if (e.pointerType === \"touch\") {\n lastPointer.current = { x: e.clientX, y: e.clientY };\n clearLongPress();\n longPressTimer.current = setTimeout(() => {\n longPressTimer.current = null;\n setPosition(lastPointer.current);\n setOpen(true);\n }, LONG_PRESS_MS);\n }\n }}\n onPointerUp={(e) => {\n onPointerUp?.(e);\n clearLongPress();\n }}\n onPointerCancel={(e) => {\n onPointerCancel?.(e);\n clearLongPress();\n }}\n onPointerLeave={(e) => {\n onPointerLeave?.(e);\n if (e.pointerType === \"touch\") clearLongPress();\n }}\n {...rest}\n >\n {children}\n </div>\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/components/context-menu/ContextMenu.tsx","../src/components/context-menu/ContextMenuCheckboxItem.tsx","../src/components/context-menu/ContextMenuContent.tsx","../src/components/context-menu/ContextMenuGroup.tsx","../src/components/context-menu/ContextMenuItem.tsx","../src/components/context-menu/ContextMenuLabel.tsx","../src/components/context-menu/context-menu-radio-context.tsx","../src/components/context-menu/ContextMenuRadioGroup.tsx","../src/components/context-menu/ContextMenuRadioItem.tsx","../src/components/context-menu/ContextMenuSeparator.tsx","../src/components/context-menu/ContextMenuShortcut.tsx","../src/components/context-menu/context-menu-sub-context.tsx","../src/components/context-menu/ContextMenuSub.tsx","../src/components/context-menu/ContextMenuSubContent.tsx","../src/components/context-menu/ContextMenuSubTrigger.tsx","../src/components/context-menu/ContextMenuTrigger.tsx"],"names":["useMemo","signal","useEffect","jsx","useRef","createContext","useContext","useState","jsxs"],"mappings":"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","file":"chunk-UIA74JVN.js","sourcesContent":["import { signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext, useEffect, useMemo, useRef } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ContextMenuPoint = { x: number; y: number };\n\nexport type ContextMenuContextValue = {\n open: ReturnType<typeof signal<boolean>>;\n setOpen: (next: boolean) => void;\n position: ReturnType<typeof signal<ContextMenuPoint>>;\n setPosition: (p: ContextMenuPoint) => void;\n contentWrapperRef: { current: HTMLDivElement | null };\n};\n\nconst ContextMenuContext = createContext<ContextMenuContextValue | null>(null);\n\nexport const useContextMenu = () => {\n const ctx = useContext(ContextMenuContext);\n if (!ctx) throw new Error(\"ContextMenu subcomponents must be used within ContextMenu\");\n return ctx;\n};\n\nexport type ContextMenuProps = JSX.HTMLAttributes<HTMLDivElement> & {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n children?: ComponentChildren;\n};\n\nexport const ContextMenu = ({\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n class: className,\n children,\n ...rest\n}: ContextMenuProps) => {\n const isControlled = openProp !== undefined;\n const open = useMemo(() => signal(isControlled ? Boolean(openProp) : defaultOpen), []);\n const position = useMemo(() => signal<ContextMenuPoint>({ x: 0, y: 0 }), []);\n const contentWrapperRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(() => {\n if (isControlled && openProp !== undefined) {\n open.value = openProp;\n }\n }, [openProp, isControlled, open]);\n\n const setOpen = (next: boolean) => {\n onOpenChange?.(next);\n if (!isControlled) {\n open.value = next;\n }\n };\n\n const setOpenRef = useRef(setOpen);\n setOpenRef.current = setOpen;\n\n return (\n <ContextMenuContext.Provider\n value={{\n open,\n setOpen: (next) => setOpenRef.current(next),\n position,\n setPosition: (p) => {\n position.value = p;\n },\n contentWrapperRef,\n }}\n >\n <div\n data-slot=\"context-menu\"\n data-state={open.value ? \"open\" : \"closed\"}\n class={cn(\"relative inline-flex\", className)}\n {...rest}\n >\n {children}\n </div>\n </ContextMenuContext.Provider>\n );\n};\n","import { signal } from \"@preact/signals\";\nimport type { ComponentChildren, JSX } from \"preact\";\nimport { useEffect, useMemo } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ContextMenuCheckboxItemProps = Omit<\n JSX.ButtonHTMLAttributes<HTMLButtonElement>,\n \"children\"\n> & {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n children?: ComponentChildren;\n};\n\nexport const ContextMenuCheckboxItem = ({\n checked: checkedProp,\n defaultChecked = false,\n onCheckedChange,\n class: className,\n children,\n onClick,\n ...rest\n}: ContextMenuCheckboxItemProps) => {\n const internal = useMemo(() => signal(defaultChecked), []);\n const isControlled = checkedProp !== undefined;\n\n useEffect(() => {\n if (checkedProp !== undefined) {\n internal.value = checkedProp;\n }\n }, [checkedProp, internal]);\n\n const checked = isControlled ? Boolean(checkedProp) : internal.value;\n\n return (\n <button\n type=\"button\"\n role=\"menuitemcheckbox\"\n data-slot=\"context-menu-checkbox-item\"\n aria-checked={checked}\n class={cn(\n \"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n const next = !checked;\n if (!isControlled) {\n internal.value = next;\n }\n onCheckedChange?.(next);\n }}\n {...rest}\n >\n <span\n class=\"pointer-events-none absolute start-2 flex size-3.5 items-center justify-center\"\n aria-hidden\n >\n {checked ? (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class=\"size-4\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n ) : null}\n </span>\n {children}\n </button>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useEffect, useLayoutEffect, useRef, useState } from \"preact/hooks\";\nimport { createPortal } from \"../../lib/createPortal\";\nimport { createDismissableLayer } from \"../../lib/interactive\";\nimport { cn } from \"../../lib/utils\";\nimport { useContextMenu } from \"./ContextMenu\";\n\nexport type ContextMenuContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nconst clamp = (v: number, min: number, max: number) => Math.min(Math.max(v, min), max);\n\nexport const ContextMenuContent = ({\n class: className,\n children,\n style,\n ...rest\n}: ContextMenuContentProps) => {\n const { open, setOpen, position, contentWrapperRef } = useContextMenu();\n const innerRef = useRef<HTMLDivElement | null>(null);\n const pt = position.value ?? { x: 0, y: 0 };\n const [fixedPos, setFixedPos] = useState(() => ({ left: pt.x, top: pt.y }));\n\n const isOpen = Boolean(open.value);\n const px = pt.x;\n const py = pt.y;\n\n const assignRef = (node: HTMLDivElement | null) => {\n innerRef.current = node;\n contentWrapperRef.current = node;\n };\n\n useLayoutEffect(() => {\n if (!isOpen) return;\n const el = innerRef.current;\n if (!el) return;\n const rect = el.getBoundingClientRect();\n const margin = 8;\n const maxX = window.innerWidth - rect.width - margin;\n const maxY = window.innerHeight - rect.height - margin;\n setFixedPos({\n left: clamp(px, margin, Math.max(margin, maxX)),\n top: clamp(py, margin, Math.max(margin, maxY)),\n });\n }, [isOpen, px, py]);\n\n useEffect(() => {\n const setOpenRef = { current: setOpen };\n setOpenRef.current = setOpen;\n const layer = createDismissableLayer({\n root: () => contentWrapperRef.current,\n open: () => Boolean(open.value),\n onDismiss: () => setOpenRef.current(false),\n });\n return () => layer.dispose();\n }, [open, setOpen, contentWrapperRef]);\n\n if (!isOpen) return null;\n\n const inlineStyle =\n typeof style === \"object\" && style !== null\n ? { position: \"fixed\" as const, left: fixedPos.left, top: fixedPos.top, zIndex: 50, ...style }\n : ({\n position: \"fixed\" as const,\n left: fixedPos.left,\n top: fixedPos.top,\n zIndex: 50,\n } as const);\n\n return createPortal(\n <div\n ref={assignRef}\n data-slot=\"context-menu-content\"\n role=\"presentation\"\n class={cn(\"min-w-40 outline-none\", className)}\n style={inlineStyle}\n {...rest}\n >\n <div\n role=\"menu\"\n class=\"text-popover-foreground max-h-[min(24rem,calc(100dvh-2rem))] overflow-y-auto rounded-md border bg-popover p-1 shadow-md\"\n >\n {children}\n </div>\n </div>,\n document.body,\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ContextMenuGroupProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const ContextMenuGroup = ({\n class: className,\n children,\n ...rest\n}: ContextMenuGroupProps) => (\n <div data-slot=\"context-menu-group\" role=\"group\" class={cn(className)} {...rest}>\n {children}\n </div>\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { tv, type VariantProps } from \"tailwind-variants\";\nimport { useContextMenu } from \"./ContextMenu\";\n\nexport const contextMenuItem = tv({\n base: [\n \"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n ],\n variants: {\n variant: {\n default: \"\",\n destructive:\n \"text-destructive focus:bg-destructive/10 focus:text-destructive dark:focus:bg-destructive/20\",\n },\n inset: {\n true: \"ps-8\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n inset: false,\n },\n});\n\nexport type ContextMenuItemProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> &\n VariantProps<typeof contextMenuItem> & {\n children?: ComponentChildren;\n };\n\nexport const ContextMenuItem = ({\n inset = false,\n variant = \"default\",\n class: className,\n children,\n onClick,\n ...rest\n}: ContextMenuItemProps) => {\n const { setOpen } = useContextMenu();\n return (\n <button\n type=\"button\"\n role=\"menuitem\"\n data-slot=\"context-menu-item\"\n data-inset={inset ? \"true\" : undefined}\n data-variant={variant}\n class={contextMenuItem({ inset, variant, class: className as string | undefined })}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n setOpen(false);\n }}\n {...rest}\n >\n {children}\n </button>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ContextMenuLabelProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n inset?: boolean;\n};\n\nexport const ContextMenuLabel = ({\n inset = false,\n class: className,\n children,\n ...rest\n}: ContextMenuLabelProps) => (\n <div\n data-slot=\"context-menu-label\"\n data-inset={inset ? \"true\" : undefined}\n class={cn(\"text-muted-foreground px-2 py-1.5 text-xs font-medium\", inset && \"ps-8\", className)}\n {...rest}\n >\n {children}\n </div>\n);\n","import type { ComponentChildren } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext } from \"preact/hooks\";\n\nexport type ContextMenuRadioContextValue = {\n value: string;\n setValue: (next: string) => void;\n};\n\nconst ContextMenuRadioContext = createContext<ContextMenuRadioContextValue | null>(null);\n\nexport const ContextMenuRadioProvider = ({\n children,\n value,\n}: {\n children: ComponentChildren;\n value: ContextMenuRadioContextValue;\n}) => <ContextMenuRadioContext.Provider value={value}>{children}</ContextMenuRadioContext.Provider>;\n\nexport const useContextMenuRadio = () => {\n const ctx = useContext(ContextMenuRadioContext);\n if (!ctx) throw new Error(\"ContextMenuRadioItem must be used within ContextMenuRadioGroup\");\n return ctx;\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useState } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\nimport { ContextMenuRadioProvider } from \"./context-menu-radio-context\";\n\nexport type ContextMenuRadioGroupProps = JSX.HTMLAttributes<HTMLDivElement> & {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n children?: ComponentChildren;\n};\n\nexport const ContextMenuRadioGroup = ({\n value: valueProp,\n defaultValue,\n onValueChange,\n class: className,\n children,\n ...rest\n}: ContextMenuRadioGroupProps) => {\n const [inner, setInner] = useState(() => defaultValue ?? \"\");\n const isControlled = valueProp !== undefined;\n const current = isControlled ? valueProp! : inner;\n const setValue = (next: string) => {\n onValueChange?.(next);\n if (!isControlled) setInner(next);\n };\n\n return (\n <ContextMenuRadioProvider value={{ value: current, setValue }}>\n <div role=\"radiogroup\" data-slot=\"context-menu-radio-group\" class={cn(className)} {...rest}>\n {children}\n </div>\n </ContextMenuRadioProvider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useContextMenuRadio } from \"./context-menu-radio-context\";\n\nexport type ContextMenuRadioItemProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n value: string;\n children?: ComponentChildren;\n};\n\nexport const ContextMenuRadioItem = ({\n value,\n class: className,\n children,\n onClick,\n ...rest\n}: ContextMenuRadioItemProps) => {\n const radio = useContextMenuRadio();\n const selected = radio.value === value;\n\n return (\n <button\n type=\"button\"\n role=\"menuitemradio\"\n data-slot=\"context-menu-radio-item\"\n aria-checked={selected}\n class={cn(\n \"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm py-1.5 ps-8 pe-2 text-sm outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n radio.setValue(value);\n }}\n {...rest}\n >\n <span\n class=\"pointer-events-none absolute start-2 flex size-3.5 items-center justify-center\"\n aria-hidden\n >\n {selected ? <span class=\"size-2 rounded-full bg-current\" /> : null}\n </span>\n {children}\n </button>\n );\n};\n","import type { JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ContextMenuSeparatorProps = JSX.HTMLAttributes<HTMLHRElement>;\n\nexport const ContextMenuSeparator = ({ class: className, ...rest }: ContextMenuSeparatorProps) => (\n <hr\n data-slot=\"context-menu-separator\"\n class={cn(\"bg-border -mx-1 my-1 h-px border-0\", className)}\n {...rest}\n />\n);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\n\nexport type ContextMenuShortcutProps = JSX.HTMLAttributes<HTMLSpanElement> & {\n children?: ComponentChildren;\n};\n\nexport const ContextMenuShortcut = ({\n class: className,\n children,\n ...rest\n}: ContextMenuShortcutProps) => (\n <span\n data-slot=\"context-menu-shortcut\"\n class={cn(\"text-muted-foreground ms-auto text-xs tracking-widest\", className)}\n {...rest}\n >\n {children}\n </span>\n);\n","import { signal } from \"@preact/signals\";\nimport type { ComponentChildren } from \"preact\";\nimport { createContext } from \"preact\";\nimport { useContext, useMemo } from \"preact/hooks\";\n\nexport type ContextMenuSubContextValue = {\n open: ReturnType<typeof signal<boolean>>;\n setOpen: (next: boolean) => void;\n};\n\nconst ContextMenuSubContext = createContext<ContextMenuSubContextValue | null>(null);\n\nexport const ContextMenuSubProvider = ({\n children,\n value,\n}: {\n children: ComponentChildren;\n value: ContextMenuSubContextValue;\n}) => <ContextMenuSubContext.Provider value={value}>{children}</ContextMenuSubContext.Provider>;\n\nexport const useContextMenuSub = () => {\n const ctx = useContext(ContextMenuSubContext);\n if (!ctx) throw new Error(\"ContextMenu subcomponents must be used within ContextMenuSub\");\n return ctx;\n};\n\nexport const useMemoContextMenuSub = (): ContextMenuSubContextValue =>\n useMemo(() => {\n const open = signal(false);\n return {\n open,\n setOpen: (next) => {\n open.value = next;\n },\n };\n }, []);\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { ContextMenuSubProvider, useMemoContextMenuSub } from \"./context-menu-sub-context\";\n\nexport type ContextMenuSubProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const ContextMenuSub = ({ class: className, children, ...rest }: ContextMenuSubProps) => {\n const ctx = useMemoContextMenuSub();\n\n return (\n <ContextMenuSubProvider value={ctx}>\n <div\n data-slot=\"context-menu-sub\"\n class={cn(\"relative\", className)}\n onPointerLeave={() => {\n ctx.setOpen(false);\n }}\n {...rest}\n >\n {children}\n </div>\n </ContextMenuSubProvider>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useContextMenuSub } from \"./context-menu-sub-context\";\n\nexport type ContextMenuSubContentProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const ContextMenuSubContent = ({\n class: className,\n children,\n onPointerEnter,\n ...rest\n}: ContextMenuSubContentProps) => {\n const sub = useContextMenuSub();\n\n if (!sub.open.value) return null;\n\n return (\n <div\n role=\"menu\"\n data-slot=\"context-menu-sub-content\"\n data-state=\"open\"\n class={cn(\n \"absolute start-full top-0 z-50 min-w-40 rounded-md border border-border bg-popover p-1 text-popover-foreground shadow-md outline-none ms-1 rtl:me-1 rtl:ms-0\",\n className,\n )}\n onPointerEnter={(e) => {\n onPointerEnter?.(e);\n sub.setOpen(true);\n }}\n {...rest}\n >\n {children}\n </div>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useContextMenuSub } from \"./context-menu-sub-context\";\n\nconst ChevronRight = ({ class: className }: { class?: string }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n class={cn(\"size-4 shrink-0 rtl:rotate-180\", className)}\n aria-hidden\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n);\n\nexport type ContextMenuSubTriggerProps = JSX.ButtonHTMLAttributes<HTMLButtonElement> & {\n children?: ComponentChildren;\n};\n\nexport const ContextMenuSubTrigger = ({\n class: className,\n children,\n onClick,\n onPointerEnter,\n ...rest\n}: ContextMenuSubTriggerProps) => {\n const sub = useContextMenuSub();\n const open = sub.open.value;\n\n return (\n <button\n type=\"button\"\n role=\"menuitem\"\n data-slot=\"context-menu-sub-trigger\"\n data-state={open ? \"open\" : \"closed\"}\n aria-expanded={open}\n aria-haspopup=\"menu\"\n class={cn(\n \"flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-start text-sm outline-none\",\n \"focus:bg-accent focus:text-accent-foreground\",\n \"data-[state=open]:bg-accent data-[state=open]:text-accent-foreground\",\n \"[&_svg]:shrink-0\",\n className,\n )}\n onPointerEnter={(e) => {\n onPointerEnter?.(e);\n if (e.defaultPrevented) return;\n sub.setOpen(true);\n }}\n onClick={(e) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n sub.setOpen(!open);\n }}\n {...rest}\n >\n {children}\n <ChevronRight class=\"ms-auto\" />\n </button>\n );\n};\n","import type { ComponentChildren, JSX } from \"preact\";\nimport { useRef } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils\";\nimport { useContextMenu } from \"./ContextMenu\";\n\nconst LONG_PRESS_MS = 500;\n\nexport type ContextMenuTriggerProps = JSX.HTMLAttributes<HTMLDivElement> & {\n children?: ComponentChildren;\n};\n\nexport const ContextMenuTrigger = ({\n children,\n class: className,\n onContextMenu,\n onPointerDown,\n onPointerUp,\n onPointerCancel,\n onPointerLeave,\n ...rest\n}: ContextMenuTriggerProps) => {\n const { setOpen, setPosition } = useContextMenu();\n const longPressTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n const lastPointer = useRef({ x: 0, y: 0 });\n\n const clearLongPress = () => {\n if (longPressTimer.current !== null) {\n clearTimeout(longPressTimer.current);\n longPressTimer.current = null;\n }\n };\n\n return (\n <div\n data-slot=\"context-menu-trigger\"\n class={cn(className)}\n onContextMenu={(event) => {\n event.preventDefault();\n setPosition({ x: event.clientX, y: event.clientY });\n setOpen(true);\n onContextMenu?.(event);\n }}\n onPointerDown={(e) => {\n onPointerDown?.(e);\n if (e.defaultPrevented) return;\n if (e.pointerType === \"touch\") {\n lastPointer.current = { x: e.clientX, y: e.clientY };\n clearLongPress();\n longPressTimer.current = setTimeout(() => {\n longPressTimer.current = null;\n setPosition(lastPointer.current);\n setOpen(true);\n }, LONG_PRESS_MS);\n }\n }}\n onPointerUp={(e) => {\n onPointerUp?.(e);\n clearLongPress();\n }}\n onPointerCancel={(e) => {\n onPointerCancel?.(e);\n clearLongPress();\n }}\n onPointerLeave={(e) => {\n onPointerLeave?.(e);\n if (e.pointerType === \"touch\") clearLongPress();\n }}\n {...rest}\n >\n {children}\n </div>\n );\n};\n"]}
@@ -1,5 +1,5 @@
1
1
  import { DialogFooter, DialogHeader } from './chunk-5Q4RBIMZ.js';
2
- import { DialogClose, DialogDescription, DialogTitle, DialogContent, DialogTrigger, Dialog } from './chunk-4BJJOHZT.js';
2
+ import { DialogClose, DialogDescription, DialogTitle, DialogContent, DialogTrigger, Dialog } from './chunk-HHLQYMPT.js';
3
3
 
4
4
  // src/components/dialog/index.ts
5
5
  var dialog_default = {
@@ -14,5 +14,5 @@ var dialog_default = {
14
14
  };
15
15
 
16
16
  export { dialog_default };
17
- //# sourceMappingURL=chunk-BQP4UA44.js.map
18
- //# sourceMappingURL=chunk-BQP4UA44.js.map
17
+ //# sourceMappingURL=chunk-X2YUFNK7.js.map
18
+ //# sourceMappingURL=chunk-X2YUFNK7.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/dialog/index.ts"],"names":[],"mappings":";;;;AAqBA,IAAO,cAAA,GAAQ;AAAA,EACb,IAAA,EAAM,MAAA;AAAA,EACN,OAAA,EAAS,aAAA;AAAA,EACT,OAAA,EAAS,aAAA;AAAA,EACT,MAAA,EAAQ,YAAA;AAAA,EACR,MAAA,EAAQ,YAAA;AAAA,EACR,KAAA,EAAO,WAAA;AAAA,EACP,WAAA,EAAa,iBAAA;AAAA,EACb,KAAA,EAAO;AACT","file":"chunk-BQP4UA44.js","sourcesContent":["import { Dialog } from \"./Dialog\";\nimport { DialogClose } from \"./DialogClose\";\nimport { DialogContent } from \"./DialogContent\";\nimport { DialogDescription } from \"./DialogDescription\";\nimport { DialogFooter } from \"./DialogFooter\";\nimport { DialogHeader } from \"./DialogHeader\";\nimport { DialogTitle } from \"./DialogTitle\";\nimport { DialogTrigger } from \"./DialogTrigger\";\n\nexport type { DialogContentPresentation } from \"./DialogContent\";\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n};\n\nexport default {\n Root: Dialog,\n Trigger: DialogTrigger,\n Content: DialogContent,\n Header: DialogHeader,\n Footer: DialogFooter,\n Title: DialogTitle,\n Description: DialogDescription,\n Close: DialogClose,\n};\n"]}
1
+ {"version":3,"sources":["../src/components/dialog/index.ts"],"names":[],"mappings":";;;;AAqBA,IAAO,cAAA,GAAQ;AAAA,EACb,IAAA,EAAM,MAAA;AAAA,EACN,OAAA,EAAS,aAAA;AAAA,EACT,OAAA,EAAS,aAAA;AAAA,EACT,MAAA,EAAQ,YAAA;AAAA,EACR,MAAA,EAAQ,YAAA;AAAA,EACR,KAAA,EAAO,WAAA;AAAA,EACP,WAAA,EAAa,iBAAA;AAAA,EACb,KAAA,EAAO;AACT","file":"chunk-X2YUFNK7.js","sourcesContent":["import { Dialog } from \"./Dialog\";\nimport { DialogClose } from \"./DialogClose\";\nimport { DialogContent } from \"./DialogContent\";\nimport { DialogDescription } from \"./DialogDescription\";\nimport { DialogFooter } from \"./DialogFooter\";\nimport { DialogHeader } from \"./DialogHeader\";\nimport { DialogTitle } from \"./DialogTitle\";\nimport { DialogTrigger } from \"./DialogTrigger\";\n\nexport type { DialogContentPresentation } from \"./DialogContent\";\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n};\n\nexport default {\n Root: Dialog,\n Trigger: DialogTrigger,\n Content: DialogContent,\n Header: DialogHeader,\n Footer: DialogFooter,\n Title: DialogTitle,\n Description: DialogDescription,\n Close: DialogClose,\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { useRadioGroup } from './chunk-YVALXJRN.js';
1
+ import { useRadioGroup } from './chunk-TXKPDNRD.js';
2
2
  import { cn } from './chunk-MS2ZNYCJ.js';
3
3
  import { jsxs, jsx } from 'preact/jsx-runtime';
4
4
 
@@ -7,9 +7,15 @@ function SelectableCardSelectedIndicator() {
7
7
  "span",
8
8
  {
9
9
  "data-slot": "selectable-card-indicator",
10
- class: "pointer-events-none flex size-[22px] shrink-0 items-center justify-center rounded-full border-[2.5px] border-black bg-white shadow-[0_1px_4px_rgba(0,0,0,0.12)] dark:border-white dark:bg-neutral-950 dark:shadow-[0_1px_5px_rgba(0,0,0,0.45)]",
10
+ class: "pointer-events-none relative inline-flex size-[22px] shrink-0 rounded-full border-[2.5px] border-black bg-white shadow-[0_1px_4px_rgba(0,0,0,0.12)] dark:border-white dark:bg-neutral-950 dark:shadow-[0_1px_5px_rgba(0,0,0,0.45)]",
11
11
  "aria-hidden": true,
12
- children: /* @__PURE__ */ jsx("span", { class: "size-[9px] rounded-full bg-black dark:bg-white" })
12
+ children: /* @__PURE__ */ jsx(
13
+ "span",
14
+ {
15
+ "data-slot": "selectable-card-indicator-dot",
16
+ class: "pointer-events-none absolute left-1/2 top-1/2 size-[9px] -translate-x-1/2 -translate-y-1/2 rounded-full bg-black dark:bg-white"
17
+ }
18
+ )
13
19
  }
14
20
  );
15
21
  }
@@ -22,7 +28,7 @@ var SelectableCard = ({
22
28
  ...rest
23
29
  }) => {
24
30
  const group = useRadioGroup();
25
- const selected = group.controlledValue !== void 0 ? group.controlledValue : group.value.value;
31
+ const selected = group.controlledValue !== void 0 ? group.controlledValue : group.value;
26
32
  const checked = selected === value;
27
33
  return /* @__PURE__ */ jsxs(
28
34
  "label",
@@ -49,7 +55,7 @@ var SelectableCard = ({
49
55
  group.setValue(value);
50
56
  onChange?.(event);
51
57
  const el = event.currentTarget;
52
- const nextSelected = group.controlledValue !== void 0 ? group.controlledValue : group.value.value;
58
+ const nextSelected = group.controlledValue !== void 0 ? group.controlledValue : group.value;
53
59
  el.checked = nextSelected === value;
54
60
  },
55
61
  ...rest
@@ -63,8 +69,8 @@ var SelectableCard = ({
63
69
  checked ? "border-neutral-300 bg-neutral-100 dark:border-neutral-600 dark:bg-neutral-800/70" : "border-border/35 bg-background hover:border-border/60"
64
70
  ),
65
71
  children: [
66
- checked ? /* @__PURE__ */ jsx("span", { class: "pointer-events-none absolute end-2.5 top-2.5", children: /* @__PURE__ */ jsx(SelectableCardSelectedIndicator, {}) }) : null,
67
- /* @__PURE__ */ jsx("div", { class: cn("min-w-0", checked && "pe-9"), children })
72
+ /* @__PURE__ */ jsx("span", { class: "pointer-events-none absolute end-2.5 top-1/2 -translate-y-1/2", children: checked ? /* @__PURE__ */ jsx(SelectableCardSelectedIndicator, {}) : /* @__PURE__ */ jsx("span", { class: "inline-block size-[22px] shrink-0", "aria-hidden": true }) }),
73
+ /* @__PURE__ */ jsx("div", { class: "min-w-0 pe-9", children })
68
74
  ]
69
75
  }
70
76
  )
@@ -74,5 +80,5 @@ var SelectableCard = ({
74
80
  };
75
81
 
76
82
  export { SelectableCard };
77
- //# sourceMappingURL=chunk-3DNIMQX6.js.map
78
- //# sourceMappingURL=chunk-3DNIMQX6.js.map
83
+ //# sourceMappingURL=chunk-XNYAQZIB.js.map
84
+ //# sourceMappingURL=chunk-XNYAQZIB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/selectable-card/SelectableCard.tsx"],"names":[],"mappings":";;;;AAKA,SAAS,+BAAA,GAAkC;AACzC,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,2BAAA;AAAA,MACV,KAAA,EAAM,oOAAA;AAAA,MACN,aAAA,EAAW,IAAA;AAAA,MAEX,QAAA,kBAAA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,WAAA,EAAU,+BAAA;AAAA,UACV,KAAA,EAAM;AAAA;AAAA;AACR;AAAA,GACF;AAEJ;AAYO,IAAM,iBAAiB,CAAC;AAAA,EAC7B,KAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA,EAAO,SAAA;AAAA,EACP,QAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,KAA2B;AACzB,EAAA,MAAM,QAAQ,aAAA,EAAc;AAC5B,EAAA,MAAM,WAAW,KAAA,CAAM,eAAA,KAAoB,MAAA,GAAY,KAAA,CAAM,kBAAkB,KAAA,CAAM,KAAA;AACrF,EAAA,MAAM,UAAU,QAAA,KAAa,KAAA;AAE7B,EAAA,uBACE,IAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,iBAAA;AAAA,MACV,YAAA,EAAY,UAAU,SAAA,GAAY,WAAA;AAAA,MAClC,KAAA,EAAO,EAAA;AAAA,QACL,4FAAA;AAAA,QACA,+DAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAK,OAAA;AAAA,YACL,WAAA,EAAU,uBAAA;AAAA,YACV,KAAA,EAAM,sFAAA;AAAA,YACN,MAAM,KAAA,CAAM,IAAA;AAAA,YACZ,KAAA;AAAA,YACA,OAAA;AAAA,YACA,QAAA;AAAA,YACA,QAAA,EAAU,CAAC,KAAA,KAAU;AACnB,cAAA,KAAA,CAAM,SAAS,KAAK,CAAA;AACpB,cAAA,QAAA,GAAW,KAAK,CAAA;AAChB,cAAA,MAAM,KAAK,KAAA,CAAM,aAAA;AACjB,cAAA,MAAM,eACJ,KAAA,CAAM,eAAA,KAAoB,MAAA,GAAY,KAAA,CAAM,kBAAkB,KAAA,CAAM,KAAA;AACtE,cAAA,EAAA,CAAG,UAAU,YAAA,KAAiB,KAAA;AAAA,YAChC,CAAA;AAAA,YACC,GAAG;AAAA;AAAA,SACN;AAAA,wBACA,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO,EAAA;AAAA,cACL,uFAAA;AAAA,cACA,UACI,kFAAA,GACA;AAAA,aACN;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAM,+DAAA,EACT,QAAA,EAAA,OAAA,mBACC,GAAA,CAAC,+BAAA,EAAA,EAAgC,CAAA,mBAEjC,GAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAM,mCAAA,EAAoC,aAAA,EAAW,MAAC,CAAA,EAEhE,CAAA;AAAA,8BACA,GAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,cAAA,EAAgB,QAAA,EAAS;AAAA;AAAA;AAAA;AACtC;AAAA;AAAA,GACF;AAEJ","file":"chunk-XNYAQZIB.js","sourcesContent":["import type { ComponentChildren, JSX } from \"preact\";\nimport { cn } from \"../../lib/utils\";\nimport { useRadioGroup } from \"../radio-group/RadioGroup\";\n\n/** Filled radio appearance: black ring, white field, black dot (reference: selection cards). */\nfunction SelectableCardSelectedIndicator() {\n return (\n <span\n data-slot=\"selectable-card-indicator\"\n class=\"pointer-events-none relative inline-flex size-[22px] shrink-0 rounded-full border-[2.5px] border-black bg-white shadow-[0_1px_4px_rgba(0,0,0,0.12)] dark:border-white dark:bg-neutral-950 dark:shadow-[0_1px_5px_rgba(0,0,0,0.45)]\"\n aria-hidden\n >\n <span\n data-slot=\"selectable-card-indicator-dot\"\n class=\"pointer-events-none absolute left-1/2 top-1/2 size-[9px] -translate-x-1/2 -translate-y-1/2 rounded-full bg-black dark:bg-white\"\n />\n </span>\n );\n}\n\nexport type SelectableCardProps = Omit<\n JSX.InputHTMLAttributes<HTMLInputElement>,\n \"type\" | \"name\" | \"class\" | \"children\"\n> & {\n value: string;\n children?: ComponentChildren;\n class?: string;\n};\n\n/** Card-style radio option for use inside `RadioGroup`. */\nexport const SelectableCard = ({\n value,\n children,\n class: className,\n onChange,\n disabled,\n ...rest\n}: SelectableCardProps) => {\n const group = useRadioGroup();\n const selected = group.controlledValue !== undefined ? group.controlledValue : group.value;\n const checked = selected === value;\n\n return (\n <label\n data-slot=\"selectable-card\"\n data-state={checked ? \"checked\" : \"unchecked\"}\n class={cn(\n \"block cursor-pointer rounded-lg outline-none focus-within:outline-none focus-within:ring-0\",\n \"has-[:disabled]:cursor-not-allowed has-[:disabled]:opacity-50\",\n className,\n )}\n >\n <input\n type=\"radio\"\n data-slot=\"selectable-card-input\"\n class=\"peer sr-only outline-none focus:outline-none focus-visible:outline-none focus:ring-0\"\n name={group.name}\n value={value}\n checked={checked}\n disabled={disabled}\n onChange={(event) => {\n group.setValue(value);\n onChange?.(event);\n const el = event.currentTarget as HTMLInputElement;\n const nextSelected =\n group.controlledValue !== undefined ? group.controlledValue : group.value;\n el.checked = nextSelected === value;\n }}\n {...rest}\n />\n <div\n class={cn(\n \"relative rounded-lg border-2 p-3 text-left transition-[border-color,background-color]\",\n checked\n ? \"border-neutral-300 bg-neutral-100 dark:border-neutral-600 dark:bg-neutral-800/70\"\n : \"border-border/35 bg-background hover:border-border/60\",\n )}\n >\n <span class=\"pointer-events-none absolute end-2.5 top-1/2 -translate-y-1/2\">\n {checked ? (\n <SelectableCardSelectedIndicator />\n ) : (\n <span class=\"inline-block size-[22px] shrink-0\" aria-hidden />\n )}\n </span>\n <div class=\"min-w-0 pe-9\">{children}</div>\n </div>\n </label>\n );\n};\n"]}
@@ -1,10 +1,10 @@
1
- import { j as AlertDialogProps, k as AlertDialogTriggerProps, l as AlertDialogContentProps, m as AlertDialogHeaderProps, n as AlertDialogFooterProps, o as AlertDialogTitleProps, p as AlertDialogDescriptionProps, q as AlertDialogMediaProps, r as AlertDialogCancelProps, s as AlertDialogActionProps } from '../../AlertDialog-ALB541qy.js';
2
- export { A as AlertDialog, a as AlertDialogAction, b as AlertDialogCancel, c as AlertDialogContent, d as AlertDialogDescription, e as AlertDialogFooter, f as AlertDialogHeader, g as AlertDialogMedia, h as AlertDialogTitle, i as AlertDialogTrigger } from '../../AlertDialog-ALB541qy.js';
1
+ import { j as AlertDialogProps, k as AlertDialogTriggerProps, l as AlertDialogContentProps, m as AlertDialogHeaderProps, n as AlertDialogFooterProps, o as AlertDialogTitleProps, p as AlertDialogDescriptionProps, q as AlertDialogMediaProps, r as AlertDialogCancelProps, s as AlertDialogActionProps } from '../../AlertDialog-GadhKjPC.js';
2
+ export { A as AlertDialog, a as AlertDialogAction, b as AlertDialogCancel, c as AlertDialogContent, d as AlertDialogDescription, e as AlertDialogFooter, f as AlertDialogHeader, g as AlertDialogMedia, h as AlertDialogTitle, i as AlertDialogTrigger } from '../../AlertDialog-GadhKjPC.js';
3
3
  import * as preact from 'preact';
4
4
  import 'tailwind-variants';
5
5
  import '../../Button-vQnkiVTI.js';
6
6
  import '../../Dialog-BOIteLfe.js';
7
- import '../../DialogContent-CK1t4m4e.js';
7
+ import '../../DialogContent-cQHSRQdT.js';
8
8
 
9
9
  declare const _default: {
10
10
  Root: ({ children, ...rest }: AlertDialogProps) => preact.JSX.Element;
@@ -1,6 +1,7 @@
1
- export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogTitle, AlertDialogTrigger, alert_dialog_default as default } from '../../chunk-LFJF3M6M.js';
1
+ export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogTitle, AlertDialogTrigger, alert_dialog_default as default } from '../../chunk-JSHUWI3C.js';
2
2
  import '../../chunk-5Q4RBIMZ.js';
3
- import '../../chunk-4BJJOHZT.js';
3
+ import '../../chunk-HHLQYMPT.js';
4
+ import '../../chunk-B47B6KK6.js';
4
5
  import '../../chunk-5FBD2NTR.js';
5
6
  import '../../chunk-C7WEQOUA.js';
6
7
  import '../../chunk-PPYJQNE5.js';
@@ -1,8 +1,9 @@
1
- export { CommandDialog, CommandShortcut } from '../../chunk-PZS2D2QM.js';
2
- import '../../chunk-BQP4UA44.js';
1
+ export { CommandDialog, CommandShortcut } from '../../chunk-NILG56Z7.js';
2
+ import '../../chunk-X2YUFNK7.js';
3
3
  export { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator } from '../../chunk-CP55TVOV.js';
4
4
  import '../../chunk-5Q4RBIMZ.js';
5
- import '../../chunk-4BJJOHZT.js';
5
+ import '../../chunk-HHLQYMPT.js';
6
+ import '../../chunk-B47B6KK6.js';
6
7
  import '../../chunk-C7WEQOUA.js';
7
8
  import '../../chunk-PPYJQNE5.js';
8
9
  import '../../chunk-MS2ZNYCJ.js';
@@ -26,7 +26,7 @@ declare const ContextMenuCheckboxItem: ({ checked: checkedProp, defaultChecked,
26
26
  type ContextMenuContentProps = JSX.HTMLAttributes<HTMLDivElement> & {
27
27
  children?: ComponentChildren;
28
28
  };
29
- declare const ContextMenuContent: ({ class: className, children, style, ...rest }: ContextMenuContentProps) => preact.VNode<any> | null;
29
+ declare const ContextMenuContent: ({ class: className, children, style, ...rest }: ContextMenuContentProps) => preact.VNode<{}> | null;
30
30
 
31
31
  type ContextMenuGroupProps = JSX.HTMLAttributes<HTMLDivElement> & {
32
32
  children?: ComponentChildren;
@@ -1,4 +1,5 @@
1
- export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger } from '../../chunk-ROKLAZHC.js';
1
+ export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger } from '../../chunk-UIA74JVN.js';
2
+ import '../../chunk-B47B6KK6.js';
2
3
  import '../../chunk-PPYJQNE5.js';
3
4
  import '../../chunk-MS2ZNYCJ.js';
4
5
  //# sourceMappingURL=index.js.map
@@ -4,14 +4,14 @@ import { b as DialogTitleProps, c as DialogDescriptionProps } from '../../Dialog
4
4
  export { D as DialogDescription, a as DialogTitle } from '../../DialogTitle-CerJD0oA.js';
5
5
  import { b as DialogHeaderProps, c as DialogFooterProps } from '../../DialogHeader-CYT7iUDq.js';
6
6
  export { D as DialogFooter, a as DialogHeader } from '../../DialogHeader-CYT7iUDq.js';
7
- import { b as DialogContentProps } from '../../DialogContent-CK1t4m4e.js';
8
- export { D as DialogContent, a as DialogContentPresentation } from '../../DialogContent-CK1t4m4e.js';
7
+ import { b as DialogContentProps } from '../../DialogContent-cQHSRQdT.js';
8
+ export { D as DialogContent, a as DialogContentPresentation } from '../../DialogContent-cQHSRQdT.js';
9
9
  import * as preact from 'preact';
10
10
 
11
11
  declare const _default: {
12
12
  Root: ({ defaultOpen, open: openProp, onOpenChange, lockBodyScroll, children, ...rest }: DialogProps) => preact.JSX.Element;
13
13
  Trigger: ({ asChild, children, onClick, onPointerDown, ref: outerRef, "data-slot": dataSlot, ...rest }: DialogTriggerProps) => preact.JSX.Element | preact.VNode<{}> | null;
14
- Content: ({ forceMount, presentation, showCloseButton, class: className, children, onKeyDown, "data-slot": dataSlot, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, ...rest }: DialogContentProps) => preact.VNode<any> | null;
14
+ Content: ({ forceMount, presentation, showCloseButton, class: className, children, onKeyDown, "data-slot": dataSlot, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, ...rest }: DialogContentProps) => preact.JSX.Element | preact.VNode<{}> | null;
15
15
  Header: ({ class: className, children, ...rest }: DialogHeaderProps) => preact.JSX.Element;
16
16
  Footer: ({ class: className, children, ...rest }: DialogFooterProps) => preact.JSX.Element;
17
17
  Title: ({ class: className, children, id: idProp, ...rest }: DialogTitleProps) => preact.JSX.Element;
@@ -1,6 +1,7 @@
1
- export { dialog_default as default } from '../../chunk-BQP4UA44.js';
1
+ export { dialog_default as default } from '../../chunk-X2YUFNK7.js';
2
2
  export { DialogFooter, DialogHeader } from '../../chunk-5Q4RBIMZ.js';
3
- export { Dialog, DialogClose, DialogContent, DialogDescription, DialogTitle, DialogTrigger } from '../../chunk-4BJJOHZT.js';
3
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogTitle, DialogTrigger } from '../../chunk-HHLQYMPT.js';
4
+ import '../../chunk-B47B6KK6.js';
4
5
  import '../../chunk-C7WEQOUA.js';
5
6
  import '../../chunk-PPYJQNE5.js';
6
7
  import '../../chunk-MS2ZNYCJ.js';
@@ -1,9 +1,9 @@
1
- import { i as DrawerProps, j as DrawerTriggerProps, k as DrawerContentProps, l as DrawerHeaderProps, m as DrawerFooterProps, n as DrawerTitleProps, o as DrawerDescriptionProps, p as DrawerCloseProps } from '../../Drawer-B3pZMn5j.js';
2
- export { D as Drawer, a as DrawerClose, b as DrawerContent, c as DrawerDescription, d as DrawerDirection, e as DrawerFooter, f as DrawerHeader, g as DrawerTitle, h as DrawerTrigger } from '../../Drawer-B3pZMn5j.js';
1
+ import { i as DrawerProps, j as DrawerTriggerProps, k as DrawerContentProps, l as DrawerHeaderProps, m as DrawerFooterProps, n as DrawerTitleProps, o as DrawerDescriptionProps, p as DrawerCloseProps } from '../../Drawer-CdjXZxxK.js';
2
+ export { D as Drawer, a as DrawerClose, b as DrawerContent, c as DrawerDescription, d as DrawerDirection, e as DrawerFooter, f as DrawerHeader, g as DrawerTitle, h as DrawerTrigger } from '../../Drawer-CdjXZxxK.js';
3
3
  import * as preact from 'preact';
4
4
  import '../../Dialog-BOIteLfe.js';
5
5
  import '../../DialogTitle-CerJD0oA.js';
6
- import '../../Sheet-s0xRF22F.js';
6
+ import '../../Sheet-DZ-p-aHY.js';
7
7
 
8
8
  declare const _default: {
9
9
  Root: ({ direction, children, ...rest }: DrawerProps) => preact.JSX.Element;
@@ -1,6 +1,7 @@
1
- export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerTitle, DrawerTrigger, drawer_default as default } from '../../chunk-YTJRKLUR.js';
2
- import '../../chunk-JKXSX67K.js';
3
- import '../../chunk-4BJJOHZT.js';
1
+ export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerTitle, DrawerTrigger, drawer_default as default } from '../../chunk-UARVH66B.js';
2
+ import '../../chunk-EMUPVA2F.js';
3
+ import '../../chunk-HHLQYMPT.js';
4
+ import '../../chunk-B47B6KK6.js';
4
5
  import '../../chunk-C7WEQOUA.js';
5
6
  import '../../chunk-PPYJQNE5.js';
6
7
  import '../../chunk-MS2ZNYCJ.js';
@@ -1,4 +1,4 @@
1
- export { Dropdown, DropdownCheckboxItem, DropdownContent, DropdownGroup, DropdownItem, DropdownLabel, DropdownPortal, DropdownRadioGroup, DropdownRadioItem, DropdownSeparator, DropdownShortcut, DropdownSub, DropdownSubContent, DropdownSubTrigger, DropdownTrigger, dropdown_default as default } from '../../chunk-7AJT2E2Y.js';
1
+ export { Dropdown, DropdownCheckboxItem, DropdownContent, DropdownGroup, DropdownItem, DropdownLabel, DropdownPortal, DropdownRadioGroup, DropdownRadioItem, DropdownSeparator, DropdownShortcut, DropdownSub, DropdownSubContent, DropdownSubTrigger, DropdownTrigger, dropdown_default as default } from '../../chunk-3LIT5GWF.js';
2
2
  import '../../chunk-PPYJQNE5.js';
3
3
  import '../../chunk-MS2ZNYCJ.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,3 @@
1
- export { HoverCard, HoverCardContent, HoverCardTrigger, hover_card_default as default } from '../../chunk-2BQ54337.js';
1
+ export { HoverCard, HoverCardContent, HoverCardTrigger, hover_card_default as default } from '../../chunk-MJQ6R345.js';
2
2
  //# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
- export { RadioGroupItem, radio_group_default as default } from '../../chunk-2HZCH73K.js';
2
- export { RadioGroup } from '../../chunk-YVALXJRN.js';
1
+ export { RadioGroupItem, radio_group_default as default } from '../../chunk-STRBBF45.js';
2
+ export { RadioGroup } from '../../chunk-TXKPDNRD.js';
3
3
  import '../../chunk-MS2ZNYCJ.js';
4
4
  //# sourceMappingURL=index.js.map
5
5
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
- export { SelectableCard } from '../../chunk-3DNIMQX6.js';
2
- import '../../chunk-YVALXJRN.js';
1
+ export { SelectableCard } from '../../chunk-XNYAQZIB.js';
2
+ import '../../chunk-TXKPDNRD.js';
3
3
  import '../../chunk-MS2ZNYCJ.js';
4
4
  //# sourceMappingURL=index.js.map
5
5
  //# sourceMappingURL=index.js.map
@@ -2,14 +2,14 @@ import { d as DialogTriggerProps, e as DialogCloseProps } from '../../Dialog-BOI
2
2
  export { a as SheetClose, b as SheetTrigger } from '../../Dialog-BOIteLfe.js';
3
3
  import { b as DialogTitleProps, c as DialogDescriptionProps } from '../../DialogTitle-CerJD0oA.js';
4
4
  export { D as SheetDescription, a as SheetTitle } from '../../DialogTitle-CerJD0oA.js';
5
- import { d as SheetProps, e as SheetContentProps, f as SheetHeaderProps, g as SheetFooterProps } from '../../Sheet-s0xRF22F.js';
6
- export { S as Sheet, a as SheetContent, b as SheetFooter, c as SheetHeader } from '../../Sheet-s0xRF22F.js';
5
+ import { d as SheetProps, e as SheetContentProps, f as SheetHeaderProps, g as SheetFooterProps } from '../../Sheet-DZ-p-aHY.js';
6
+ export { S as Sheet, a as SheetContent, b as SheetFooter, c as SheetHeader } from '../../Sheet-DZ-p-aHY.js';
7
7
  import * as preact from 'preact';
8
8
 
9
9
  declare const _default: {
10
10
  Root: ({ children, lockBodyScroll, ...rest }: SheetProps) => preact.JSX.Element;
11
11
  Trigger: ({ asChild, children, onClick, onPointerDown, ref: outerRef, "data-slot": dataSlot, ...rest }: DialogTriggerProps) => preact.JSX.Element | preact.VNode<{}> | null;
12
- Content: ({ side, showCloseButton, children, class: className, forceMount, "data-slot": dataSlot, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, ...rest }: SheetContentProps) => preact.VNode<any> | null;
12
+ Content: ({ side, showCloseButton, children, class: className, forceMount, "data-slot": dataSlot, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, ...rest }: SheetContentProps) => preact.JSX.Element | preact.VNode<{}> | null;
13
13
  Header: ({ children, ...rest }: SheetHeaderProps) => preact.JSX.Element;
14
14
  Footer: ({ children, ...rest }: SheetFooterProps) => preact.JSX.Element;
15
15
  Title: ({ class: className, children, id: idProp, ...rest }: DialogTitleProps) => preact.JSX.Element;
@@ -1,6 +1,7 @@
1
- export { sheet_default as default } from '../../chunk-YJGECAOZ.js';
2
- export { Sheet, SheetContent, SheetFooter, SheetHeader } from '../../chunk-JKXSX67K.js';
3
- export { DialogClose as SheetClose, DialogDescription as SheetDescription, DialogTitle as SheetTitle, DialogTrigger as SheetTrigger } from '../../chunk-4BJJOHZT.js';
1
+ export { sheet_default as default } from '../../chunk-IQH3XSOI.js';
2
+ export { Sheet, SheetContent, SheetFooter, SheetHeader } from '../../chunk-EMUPVA2F.js';
3
+ export { DialogClose as SheetClose, DialogDescription as SheetDescription, DialogTitle as SheetTitle, DialogTrigger as SheetTrigger } from '../../chunk-HHLQYMPT.js';
4
+ import '../../chunk-B47B6KK6.js';
4
5
  import '../../chunk-C7WEQOUA.js';
5
6
  import '../../chunk-PPYJQNE5.js';
6
7
  import '../../chunk-MS2ZNYCJ.js';
@@ -1,16 +1,21 @@
1
- import { g as SidebarProviderProps, h as SidebarProps, i as SidebarTriggerProps, j as SidebarHeaderProps, k as SidebarContentProps, l as SidebarFooterProps, m as SidebarInsetProps } from '../../SidebarProvider-IAihmyD7.js';
2
- export { S as Sidebar, a as SidebarContent, b as SidebarFooter, c as SidebarHeader, d as SidebarInset, e as SidebarProvider, f as SidebarTrigger, u as useSidebar } from '../../SidebarProvider-IAihmyD7.js';
1
+ import { u as SidebarProviderProps, s as SidebarProps, z as SidebarTriggerProps, A as SidebarHeaderProps, B as SidebarContentProps, C as SidebarFooterProps, D as SidebarInsetProps, E as SidebarRailProps, F as SidebarGroupProps, G as SidebarMenuProps } from '../../SidebarProvider-Bx7-BdQn.js';
2
+ export { S as Sidebar, a as SidebarContent, b as SidebarFooter, c as SidebarGroup, d as SidebarGroupAction, e as SidebarGroupContent, f as SidebarGroupLabel, g as SidebarHeader, h as SidebarInput, i as SidebarInset, j as SidebarMenu, k as SidebarMenuAction, l as SidebarMenuBadge, m as SidebarMenuButton, n as SidebarMenuItem, o as SidebarMenuSkeleton, p as SidebarMenuSub, q as SidebarMenuSubButton, r as SidebarMenuSubItem, t as SidebarProvider, v as SidebarRail, w as SidebarSeparator, x as SidebarTrigger, y as useSidebar } from '../../SidebarProvider-Bx7-BdQn.js';
3
3
  import * as preact from 'preact';
4
- import '@preact/signals';
4
+ import 'tailwind-variants';
5
+ import '../../Input-Cem05el9.js';
6
+ import '../../Separator-DCQYrnpB.js';
5
7
 
6
8
  declare const _default: {
7
- Provider: ({ defaultOpen, children }: SidebarProviderProps) => preact.JSX.Element;
8
- Root: ({ children, ...rest }: SidebarProps) => preact.JSX.Element;
9
- Trigger: ({ children, onClick, ...rest }: SidebarTriggerProps) => preact.JSX.Element;
10
- Header: ({ children, ...rest }: SidebarHeaderProps) => preact.JSX.Element;
11
- Content: ({ children, ...rest }: SidebarContentProps) => preact.JSX.Element;
12
- Footer: ({ children, ...rest }: SidebarFooterProps) => preact.JSX.Element;
13
- Inset: ({ children, ...rest }: SidebarInsetProps) => preact.JSX.Element;
9
+ Provider: ({ defaultOpen, open: openProp, onOpenChange: setOpenProp, class: className, style, children, ...rest }: SidebarProviderProps) => preact.JSX.Element;
10
+ Root: ({ side, variant, collapsible, class: className, children, ...rest }: SidebarProps) => preact.JSX.Element;
11
+ Trigger: ({ class: className, onClick, ...rest }: SidebarTriggerProps) => preact.JSX.Element;
12
+ Header: ({ class: className, children, ...rest }: SidebarHeaderProps) => preact.JSX.Element;
13
+ Content: ({ class: className, children, ...rest }: SidebarContentProps) => preact.JSX.Element;
14
+ Footer: ({ class: className, children, ...rest }: SidebarFooterProps) => preact.JSX.Element;
15
+ Inset: ({ class: className, children, ...rest }: SidebarInsetProps) => preact.JSX.Element;
16
+ Rail: ({ class: className, ...rest }: SidebarRailProps) => preact.JSX.Element;
17
+ Group: ({ class: className, children, ...rest }: SidebarGroupProps) => preact.JSX.Element;
18
+ Menu: ({ class: className, children, ...rest }: SidebarMenuProps) => preact.JSX.Element;
14
19
  };
15
20
 
16
21
  export { _default as default };
@@ -1,3 +1,15 @@
1
- export { Sidebar, SidebarContent, SidebarFooter, SidebarHeader, SidebarInset, SidebarProvider, SidebarTrigger, sidebar_default as default, useSidebar } from '../../chunk-R565SY7K.js';
1
+ export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, sidebar_default as default, useSidebar } from '../../chunk-24QD2FTA.js';
2
+ import '../../chunk-HTSAUMF5.js';
3
+ import '../../chunk-IQH3XSOI.js';
4
+ import '../../chunk-YZLPO4B2.js';
5
+ import '../../chunk-EMUPVA2F.js';
6
+ import '../../chunk-6RASPU5N.js';
7
+ import '../../chunk-LCWXIQKA.js';
8
+ import '../../chunk-HHLQYMPT.js';
9
+ import '../../chunk-B47B6KK6.js';
10
+ import '../../chunk-5FBD2NTR.js';
11
+ import '../../chunk-C7WEQOUA.js';
12
+ import '../../chunk-PPYJQNE5.js';
13
+ import '../../chunk-MS2ZNYCJ.js';
2
14
  //# sourceMappingURL=index.js.map
3
15
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- export { Tabs, TabsContent, TabsList, TabsTrigger, tabs_default as default } from '../../chunk-26CRIZXP.js';
1
+ export { Tabs, TabsContent, TabsList, TabsTrigger, tabs_default as default } from '../../chunk-HCTZJYHK.js';
2
2
  import '../../chunk-PPYJQNE5.js';
3
3
  import '../../chunk-MS2ZNYCJ.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- export { ThemeToggle, theme_toggle_default as default } from '../../chunk-MJG6UKD4.js';
1
+ export { ThemeToggle, theme_toggle_default as default } from '../../chunk-262EK2XT.js';
2
2
  import '../../chunk-4IBTERDG.js';
3
3
  import '../../chunk-5FBD2NTR.js';
4
4
  import '../../chunk-MS2ZNYCJ.js';