@neuronection/assistant-ui 0.4.0 → 0.5.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 (74) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +1 -0
  3. package/dist/ai-actions-dropdown.d.ts +29 -0
  4. package/dist/ai-actions-dropdown.js +3 -0
  5. package/dist/ai-actions-dropdown.js.map +1 -0
  6. package/dist/ai-button.d.ts +22 -0
  7. package/dist/ai-button.js +3 -0
  8. package/dist/ai-button.js.map +1 -0
  9. package/dist/chip-list.d.ts +1 -1
  10. package/dist/chip-list.js +1 -1
  11. package/dist/{chunk-TJGX27YO.js → chunk-34NO2UOB.js} +4 -4
  12. package/dist/chunk-34NO2UOB.js.map +1 -0
  13. package/dist/{chunk-5X3RYDPC.js → chunk-5LRRVD27.js} +4 -4
  14. package/dist/chunk-5LRRVD27.js.map +1 -0
  15. package/dist/{chunk-LEDQQBVV.js → chunk-75QQR2VT.js} +4 -4
  16. package/dist/{chunk-LEDQQBVV.js.map → chunk-75QQR2VT.js.map} +1 -1
  17. package/dist/{chunk-N5KQRHXU.js → chunk-BE3XFZWU.js} +3 -3
  18. package/dist/{chunk-N5KQRHXU.js.map → chunk-BE3XFZWU.js.map} +1 -1
  19. package/dist/{chunk-XLD2BPTT.js → chunk-BN3YHYYL.js} +3 -2
  20. package/dist/chunk-BN3YHYYL.js.map +1 -0
  21. package/dist/{chunk-5HXDKOBY.js → chunk-BUPMDOVL.js} +3 -3
  22. package/dist/{chunk-5HXDKOBY.js.map → chunk-BUPMDOVL.js.map} +1 -1
  23. package/dist/{chunk-WPO6CDA4.js → chunk-BWPNEQ3T.js} +4 -4
  24. package/dist/{chunk-WPO6CDA4.js.map → chunk-BWPNEQ3T.js.map} +1 -1
  25. package/dist/{chunk-3HFL3JGP.js → chunk-GDGKARRB.js} +4 -2
  26. package/dist/chunk-GDGKARRB.js.map +1 -0
  27. package/dist/chunk-I37SYHM7.js +123 -0
  28. package/dist/chunk-I37SYHM7.js.map +1 -0
  29. package/dist/{chunk-ESUTPQDO.js → chunk-I5J6SDLK.js} +3 -3
  30. package/dist/{chunk-ESUTPQDO.js.map → chunk-I5J6SDLK.js.map} +1 -1
  31. package/dist/{chunk-KXLMTAZ5.js → chunk-JWAX2AOO.js} +3 -3
  32. package/dist/chunk-JWAX2AOO.js.map +1 -0
  33. package/dist/chunk-L56KGPGS.js +115 -0
  34. package/dist/chunk-L56KGPGS.js.map +1 -0
  35. package/dist/{chunk-DV3MXDLN.js → chunk-OT6EQFMP.js} +3 -3
  36. package/dist/{chunk-DV3MXDLN.js.map → chunk-OT6EQFMP.js.map} +1 -1
  37. package/dist/{chunk-CI56SSO2.js → chunk-SIIY2EGI.js} +3 -3
  38. package/dist/{chunk-CI56SSO2.js.map → chunk-SIIY2EGI.js.map} +1 -1
  39. package/dist/{chunk-RHBQ3GZE.js → chunk-SXVOJ7WE.js} +4 -4
  40. package/dist/{chunk-RHBQ3GZE.js.map → chunk-SXVOJ7WE.js.map} +1 -1
  41. package/dist/{chunk-GA3XIDVX.js → chunk-TKKHWO6C.js} +3 -3
  42. package/dist/{chunk-GA3XIDVX.js.map → chunk-TKKHWO6C.js.map} +1 -1
  43. package/dist/{chunk-MEBOS2FX.js → chunk-UU2V5FGF.js} +4 -4
  44. package/dist/{chunk-MEBOS2FX.js.map → chunk-UU2V5FGF.js.map} +1 -1
  45. package/dist/{chunk-3522NABN.js → chunk-W5WDGME5.js} +3 -3
  46. package/dist/{chunk-3522NABN.js.map → chunk-W5WDGME5.js.map} +1 -1
  47. package/dist/{chunk-WZSAUESL.js → chunk-WA7Q4TTA.js} +3 -3
  48. package/dist/{chunk-WZSAUESL.js.map → chunk-WA7Q4TTA.js.map} +1 -1
  49. package/dist/combobox.js +1 -1
  50. package/dist/confirmation-modal.js +1 -1
  51. package/dist/context-menu.js +1 -1
  52. package/dist/date-picker.js +1 -1
  53. package/dist/field-label.js +1 -1
  54. package/dist/form-modal.js +1 -1
  55. package/dist/index.d.ts +3 -1
  56. package/dist/index.js +24 -22
  57. package/dist/info-button.js +1 -1
  58. package/dist/menu.js +1 -1
  59. package/dist/modal.js +2 -2
  60. package/dist/popover-button.js +1 -1
  61. package/dist/popover.js +1 -1
  62. package/dist/styles.css +1 -1
  63. package/dist/table.d.ts +1 -0
  64. package/dist/table.js +1 -1
  65. package/dist/tokens.d.ts +1 -1
  66. package/dist/tokens.js +1 -1
  67. package/dist/tooltip.js +1 -1
  68. package/dist/wizard.js +1 -1
  69. package/package.json +9 -1
  70. package/dist/chunk-3HFL3JGP.js.map +0 -1
  71. package/dist/chunk-5X3RYDPC.js.map +0 -1
  72. package/dist/chunk-KXLMTAZ5.js.map +0 -1
  73. package/dist/chunk-TJGX27YO.js.map +0 -1
  74. package/dist/chunk-XLD2BPTT.js.map +0 -1
@@ -0,0 +1,123 @@
1
+ import { Popover, PopoverTrigger, PopoverContent } from './chunk-SIIY2EGI.js';
2
+ import { cn } from './chunk-BLJWR4ZV.js';
3
+ import * as React from 'react';
4
+ import { Sparkles, Send } from 'lucide-react';
5
+ import { jsx, jsxs } from 'react/jsx-runtime';
6
+
7
+ var AiActionsDropdown = React.forwardRef(function AiActionsDropdown2({
8
+ actions,
9
+ onAction,
10
+ onPrompt,
11
+ busy = false,
12
+ error,
13
+ label = "AI actions",
14
+ title,
15
+ promptLabel = "Ask something custom",
16
+ promptPlaceholder,
17
+ promptSubmitLabel = "Send",
18
+ disabled = false,
19
+ align = "end",
20
+ side = "bottom",
21
+ className,
22
+ panelClassName
23
+ }, ref) {
24
+ const [open, setOpen] = React.useState(false);
25
+ const [prompt, setPrompt] = React.useState("");
26
+ const sendPrompt = () => {
27
+ const trimmed = prompt.trim();
28
+ if (!trimmed || busy || !onPrompt) return;
29
+ onPrompt(trimmed);
30
+ setPrompt("");
31
+ };
32
+ return /* @__PURE__ */ jsx(Popover, { open, onOpenChange: setOpen, children: /* @__PURE__ */ jsxs("span", { className: "relative inline-flex", children: [
33
+ /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, disabled: disabled || busy, children: /* @__PURE__ */ jsx(
34
+ "button",
35
+ {
36
+ ref,
37
+ type: "button",
38
+ "data-as": "ai-actions-dropdown",
39
+ "aria-label": label,
40
+ className: cn(
41
+ "inline-flex size-7 cursor-pointer items-center justify-center rounded-full bg-[color-mix(in_srgb,var(--as-ai)_12%,transparent)] text-[var(--as-ai)] transition-[filter] hover:brightness-95 focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-[var(--as-focus-ring)] disabled:pointer-events-none disabled:opacity-50",
42
+ className
43
+ ),
44
+ children: /* @__PURE__ */ jsx(Sparkles, { className: "size-4", "aria-hidden": true })
45
+ }
46
+ ) }),
47
+ /* @__PURE__ */ jsx(
48
+ PopoverContent,
49
+ {
50
+ side,
51
+ align,
52
+ "aria-label": title ?? label,
53
+ className: cn("w-64 p-1.5", panelClassName),
54
+ children: /* @__PURE__ */ jsxs("div", { "data-as": "ai-actions-panel", role: "menu", children: [
55
+ title ? /* @__PURE__ */ jsx("p", { className: "px-2 pb-1 pt-1.5 text-xs font-semibold uppercase tracking-wide text-[var(--as-muted-fg)]", children: title }) : null,
56
+ actions.map((action) => /* @__PURE__ */ jsxs(
57
+ "button",
58
+ {
59
+ type: "button",
60
+ role: "menuitem",
61
+ disabled: busy,
62
+ onClick: () => onAction(action),
63
+ className: "flex w-full cursor-pointer items-start gap-2.5 rounded-[var(--as-radius-sm)] px-2 py-2 text-left transition-colors hover:bg-[var(--as-secondary)] disabled:pointer-events-none disabled:opacity-50",
64
+ children: [
65
+ /* @__PURE__ */ jsx(
66
+ action.icon,
67
+ {
68
+ className: "mt-0.5 size-4 shrink-0 text-[var(--as-ai)]",
69
+ "aria-hidden": true
70
+ }
71
+ ),
72
+ /* @__PURE__ */ jsxs("span", { className: "flex min-w-0 flex-col", children: [
73
+ /* @__PURE__ */ jsx("span", { className: "text-sm font-medium text-[var(--as-fg)]", children: action.label }),
74
+ action.description ? /* @__PURE__ */ jsx("span", { className: "text-xs text-[var(--as-muted-fg)]", children: action.description }) : null
75
+ ] })
76
+ ]
77
+ },
78
+ action.id
79
+ )),
80
+ onPrompt ? /* @__PURE__ */ jsxs(
81
+ "form",
82
+ {
83
+ className: "mt-1 flex items-center gap-1.5 border-t border-[var(--as-border)] p-1.5",
84
+ onSubmit: (event) => {
85
+ event.preventDefault();
86
+ sendPrompt();
87
+ },
88
+ children: [
89
+ /* @__PURE__ */ jsx(
90
+ "input",
91
+ {
92
+ type: "text",
93
+ "aria-label": promptLabel,
94
+ placeholder: promptPlaceholder ?? promptLabel,
95
+ value: prompt,
96
+ onChange: (event) => setPrompt(event.target.value),
97
+ className: "h-7 w-full bg-transparent text-sm outline-none placeholder:text-[var(--as-muted-fg)]"
98
+ }
99
+ ),
100
+ /* @__PURE__ */ jsx(
101
+ "button",
102
+ {
103
+ type: "submit",
104
+ "aria-label": promptSubmitLabel,
105
+ disabled: busy || !prompt.trim(),
106
+ className: "shrink-0 cursor-pointer rounded-[var(--as-radius-sm)] bg-[var(--as-ai)] p-1 text-[var(--as-ai-fg)] transition-opacity hover:opacity-90 disabled:pointer-events-none disabled:opacity-40",
107
+ children: /* @__PURE__ */ jsx(Send, { className: "size-3", "aria-hidden": true })
108
+ }
109
+ )
110
+ ]
111
+ }
112
+ ) : null,
113
+ busy ? /* @__PURE__ */ jsx("p", { className: "px-2 pb-1.5 text-xs text-[var(--as-muted-fg)]", role: "status", children: "\u2026" }) : null,
114
+ error ? /* @__PURE__ */ jsx("p", { role: "alert", className: "px-2 pb-1.5 text-xs text-[var(--as-danger)]", children: error }) : null
115
+ ] })
116
+ }
117
+ )
118
+ ] }) });
119
+ });
120
+
121
+ export { AiActionsDropdown };
122
+ //# sourceMappingURL=chunk-I37SYHM7.js.map
123
+ //# sourceMappingURL=chunk-I37SYHM7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ai-actions-dropdown/AiActionsDropdown.tsx"],"names":["AiActionsDropdown"],"mappings":"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","file":"chunk-I37SYHM7.js","sourcesContent":["import * as React from 'react'\nimport { Send, Sparkles, type LucideIcon } from 'lucide-react'\nimport { cn } from '../../lib/utils'\nimport { Popover, PopoverContent, PopoverTrigger } from '../popover'\n\nexport interface AiAction {\n id: string\n label: string\n description?: string\n icon: LucideIcon\n}\n\nexport interface AiActionsDropdownProps {\n actions: AiAction[]\n onAction: (action: AiAction) => void\n onPrompt?: (prompt: string) => void\n busy?: boolean\n error?: string | null\n label?: string\n title?: string\n promptLabel?: string\n promptPlaceholder?: string\n promptSubmitLabel?: string\n disabled?: boolean\n align?: 'start' | 'center' | 'end'\n side?: 'top' | 'bottom' | 'left' | 'right'\n className?: string\n panelClassName?: string\n}\n\nexport const AiActionsDropdown = React.forwardRef<\n HTMLButtonElement,\n AiActionsDropdownProps\n>(function AiActionsDropdown(\n {\n actions,\n onAction,\n onPrompt,\n busy = false,\n error,\n label = 'AI actions',\n title,\n promptLabel = 'Ask something custom',\n promptPlaceholder,\n promptSubmitLabel = 'Send',\n disabled = false,\n align = 'end',\n side = 'bottom',\n className,\n panelClassName,\n },\n ref,\n) {\n const [open, setOpen] = React.useState(false)\n const [prompt, setPrompt] = React.useState('')\n\n const sendPrompt = () => {\n const trimmed = prompt.trim()\n if (!trimmed || busy || !onPrompt) return\n onPrompt(trimmed)\n setPrompt('')\n }\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <span className=\"relative inline-flex\">\n <PopoverTrigger asChild disabled={disabled || busy}>\n <button\n ref={ref}\n type=\"button\"\n data-as=\"ai-actions-dropdown\"\n aria-label={label}\n className={cn(\n 'inline-flex size-7 cursor-pointer items-center justify-center rounded-full bg-[color-mix(in_srgb,var(--as-ai)_12%,transparent)] text-[var(--as-ai)] transition-[filter] hover:brightness-95 focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-[var(--as-focus-ring)] disabled:pointer-events-none disabled:opacity-50',\n className,\n )}\n >\n <Sparkles className=\"size-4\" aria-hidden />\n </button>\n </PopoverTrigger>\n <PopoverContent\n side={side}\n align={align}\n aria-label={title ?? label}\n className={cn('w-64 p-1.5', panelClassName)}\n >\n <div data-as=\"ai-actions-panel\" role=\"menu\">\n {title ? (\n <p className=\"px-2 pb-1 pt-1.5 text-xs font-semibold uppercase tracking-wide text-[var(--as-muted-fg)]\">\n {title}\n </p>\n ) : null}\n {actions.map((action) => (\n <button\n key={action.id}\n type=\"button\"\n role=\"menuitem\"\n disabled={busy}\n onClick={() => onAction(action)}\n className=\"flex w-full cursor-pointer items-start gap-2.5 rounded-[var(--as-radius-sm)] px-2 py-2 text-left transition-colors hover:bg-[var(--as-secondary)] disabled:pointer-events-none disabled:opacity-50\"\n >\n <action.icon\n className=\"mt-0.5 size-4 shrink-0 text-[var(--as-ai)]\"\n aria-hidden\n />\n <span className=\"flex min-w-0 flex-col\">\n <span className=\"text-sm font-medium text-[var(--as-fg)]\">\n {action.label}\n </span>\n {action.description ? (\n <span className=\"text-xs text-[var(--as-muted-fg)]\">\n {action.description}\n </span>\n ) : null}\n </span>\n </button>\n ))}\n {onPrompt ? (\n <form\n className=\"mt-1 flex items-center gap-1.5 border-t border-[var(--as-border)] p-1.5\"\n onSubmit={(event) => {\n event.preventDefault()\n sendPrompt()\n }}\n >\n <input\n type=\"text\"\n aria-label={promptLabel}\n placeholder={promptPlaceholder ?? promptLabel}\n value={prompt}\n onChange={(event) => setPrompt(event.target.value)}\n className=\"h-7 w-full bg-transparent text-sm outline-none placeholder:text-[var(--as-muted-fg)]\"\n />\n <button\n type=\"submit\"\n aria-label={promptSubmitLabel}\n disabled={busy || !prompt.trim()}\n className=\"shrink-0 cursor-pointer rounded-[var(--as-radius-sm)] bg-[var(--as-ai)] p-1 text-[var(--as-ai-fg)] transition-opacity hover:opacity-90 disabled:pointer-events-none disabled:opacity-40\"\n >\n <Send className=\"size-3\" aria-hidden />\n </button>\n </form>\n ) : null}\n {busy ? (\n <p className=\"px-2 pb-1.5 text-xs text-[var(--as-muted-fg)]\" role=\"status\">\n …\n </p>\n ) : null}\n {error ? (\n <p role=\"alert\" className=\"px-2 pb-1.5 text-xs text-[var(--as-danger)]\">\n {error}\n </p>\n ) : null}\n </div>\n </PopoverContent>\n </span>\n </Popover>\n )\n})\n"]}
@@ -1,4 +1,4 @@
1
- import { InfoButton } from './chunk-DV3MXDLN.js';
1
+ import { InfoButton } from './chunk-OT6EQFMP.js';
2
2
  import { cn } from './chunk-BLJWR4ZV.js';
3
3
  import { jsxs, jsx } from 'react/jsx-runtime';
4
4
 
@@ -17,5 +17,5 @@ function FieldLabel({
17
17
  }
18
18
 
19
19
  export { FieldLabel };
20
- //# sourceMappingURL=chunk-ESUTPQDO.js.map
21
- //# sourceMappingURL=chunk-ESUTPQDO.js.map
20
+ //# sourceMappingURL=chunk-I5J6SDLK.js.map
21
+ //# sourceMappingURL=chunk-I5J6SDLK.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/field-label/FieldLabel.tsx"],"names":[],"mappings":";;;;AAaO,SAAS,UAAA,CAAW;AAAA,EACzB,QAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAA,EAAoB;AAClB,EAAA,uBACE,IAAA,CAAC,UAAK,SAAA,EAAQ,aAAA,EAAc,WAAW,EAAA,CAAG,uCAAA,EAAyC,SAAS,CAAA,EAC1F,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,UAAM,QAAA,EAAS,CAAA;AAAA,wBACf,UAAA,EAAA,EAAW,KAAA,EAAO,SAAA,EAAW,KAAA,EAAc,aACzC,QAAA,EAAA,IAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ","file":"chunk-ESUTPQDO.js","sourcesContent":["import * as React from 'react'\nimport { cn } from '../../lib/utils'\nimport { InfoButton } from '../info-button/InfoButton'\n\nexport interface FieldLabelProps {\n children: React.ReactNode\n info: React.ReactNode\n infoTitle?: React.ReactNode\n label?: string\n showOnHover?: boolean\n className?: string\n}\n\nexport function FieldLabel({\n children,\n info,\n infoTitle,\n label,\n showOnHover,\n className,\n}: FieldLabelProps) {\n return (\n <span data-as=\"field-label\" className={cn('group flex items-center gap-1 text-xs', className)}>\n <span>{children}</span>\n <InfoButton title={infoTitle} label={label} showOnHover={showOnHover}>\n {info}\n </InfoButton>\n </span>\n )\n}\n"]}
1
+ {"version":3,"sources":["../src/components/field-label/FieldLabel.tsx"],"names":[],"mappings":";;;;AAaO,SAAS,UAAA,CAAW;AAAA,EACzB,QAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAA,EAAoB;AAClB,EAAA,uBACE,IAAA,CAAC,UAAK,SAAA,EAAQ,aAAA,EAAc,WAAW,EAAA,CAAG,uCAAA,EAAyC,SAAS,CAAA,EAC1F,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,UAAM,QAAA,EAAS,CAAA;AAAA,wBACf,UAAA,EAAA,EAAW,KAAA,EAAO,SAAA,EAAW,KAAA,EAAc,aACzC,QAAA,EAAA,IAAA,EACH;AAAA,GAAA,EACF,CAAA;AAEJ","file":"chunk-I5J6SDLK.js","sourcesContent":["import * as React from 'react'\nimport { cn } from '../../lib/utils'\nimport { InfoButton } from '../info-button/InfoButton'\n\nexport interface FieldLabelProps {\n children: React.ReactNode\n info: React.ReactNode\n infoTitle?: React.ReactNode\n label?: string\n showOnHover?: boolean\n className?: string\n}\n\nexport function FieldLabel({\n children,\n info,\n infoTitle,\n label,\n showOnHover,\n className,\n}: FieldLabelProps) {\n return (\n <span data-as=\"field-label\" className={cn('group flex items-center gap-1 text-xs', className)}>\n <span>{children}</span>\n <InfoButton title={infoTitle} label={label} showOnHover={showOnHover}>\n {info}\n </InfoButton>\n </span>\n )\n}\n"]}
@@ -16,7 +16,7 @@ var MenuContent = React.forwardRef(function MenuContent2({ className, sideOffset
16
16
  sideOffset,
17
17
  collisionPadding: 8,
18
18
  className: cn(
19
- "as-anim-pop z-50 min-w-40 overflow-hidden rounded-[var(--as-radius-lg)] border border-[var(--as-border)] bg-[var(--as-surface-raised)] p-1 text-[var(--as-fg)] shadow-[var(--as-shadow-3)]",
19
+ "as-anim-pop z-[var(--as-z-popover)] min-w-40 overflow-hidden rounded-[var(--as-radius-lg)] border border-[var(--as-border)] bg-[var(--as-surface-raised)] p-1 text-[var(--as-fg)] shadow-[var(--as-shadow-3)]",
20
20
  className
21
21
  ),
22
22
  ...props,
@@ -105,5 +105,5 @@ function ActionMenu({
105
105
  }
106
106
 
107
107
  export { ActionMenu, Menu, MenuContent, MenuGroup, MenuItem, MenuLabel, MenuSeparator, MenuTrigger };
108
- //# sourceMappingURL=chunk-KXLMTAZ5.js.map
109
- //# sourceMappingURL=chunk-KXLMTAZ5.js.map
108
+ //# sourceMappingURL=chunk-JWAX2AOO.js.map
109
+ //# sourceMappingURL=chunk-JWAX2AOO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/menu/Menu.tsx"],"names":["MenuContent","MenuItem","MenuSeparator","MenuLabel"],"mappings":"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","file":"chunk-JWAX2AOO.js","sourcesContent":["import * as React from 'react'\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'\nimport { Loader2, type LucideIcon } from 'lucide-react'\nimport { cn } from '../../lib/utils'\n\nexport const Menu = DropdownMenuPrimitive.Root\nexport const MenuTrigger = DropdownMenuPrimitive.Trigger\nexport const MenuGroup = DropdownMenuPrimitive.Group\n\nexport const MenuContent = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(function MenuContent({ className, sideOffset = 6, children, ...props }, ref) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n data-as=\"menu\"\n sideOffset={sideOffset}\n collisionPadding={8}\n className={cn(\n 'as-anim-pop z-[var(--as-z-popover)] min-w-40 overflow-hidden rounded-[var(--as-radius-lg)] border border-[var(--as-border)] bg-[var(--as-surface-raised)] p-1 text-[var(--as-fg)] shadow-[var(--as-shadow-3)]',\n className,\n )}\n {...props}\n >\n {children}\n </DropdownMenuPrimitive.Content>\n </DropdownMenuPrimitive.Portal>\n )\n})\n\nexport interface MenuItemProps\n extends React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> {\n icon?: LucideIcon\n danger?: boolean\n pending?: boolean\n}\n\nexport const MenuItem = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Item>,\n MenuItemProps\n>(function MenuItem({ className, icon: Icon, danger, pending, disabled, children, ...props }, ref) {\n const SpinnerIcon = pending ? Loader2 : null\n return (\n <DropdownMenuPrimitive.Item\n ref={ref}\n disabled={disabled || pending}\n aria-busy={pending || undefined}\n className={cn(\n 'flex w-full cursor-pointer select-none items-center gap-2 rounded-[calc(var(--as-radius-sm)-2px)] px-2 py-1.5 text-left text-sm outline-none transition-colors focus:bg-[var(--as-secondary)] data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:size-4 [&_svg]:shrink-0',\n danger && 'text-[var(--as-danger)] focus:bg-[var(--as-danger)]/10',\n className,\n )}\n {...props}\n >\n {SpinnerIcon ? (\n <SpinnerIcon className=\"animate-spin\" aria-hidden />\n ) : Icon ? (\n <Icon aria-hidden />\n ) : null}\n {children}\n </DropdownMenuPrimitive.Item>\n )\n})\n\nexport const MenuSeparator = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(function MenuSeparator({ className, ...props }, ref) {\n return (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn('-mx-1 my-1 h-px bg-[var(--as-border)]', className)}\n {...props}\n />\n )\n})\n\nexport const MenuLabel = React.forwardRef<\n React.ComponentRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label>\n>(function MenuLabel({ className, ...props }, ref) {\n return (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn('px-2 py-1.5 text-xs font-medium text-[var(--as-muted-fg)]', className)}\n {...props}\n />\n )\n})\n\nexport interface ActionMenuItem {\n key: string\n label: string\n icon?: LucideIcon\n danger?: boolean\n disabled?: boolean\n pending?: boolean\n onSelect: () => void\n}\n\nexport interface ActionMenuProps {\n label: string\n trigger: React.ReactNode\n items: ActionMenuItem[]\n align?: 'start' | 'center' | 'end'\n side?: 'top' | 'right' | 'bottom' | 'left'\n triggerClassName?: string\n panelClassName?: string\n disabled?: boolean\n}\n\nexport function ActionMenu({\n label,\n trigger,\n items,\n align = 'end',\n side = 'bottom',\n triggerClassName,\n panelClassName,\n disabled = false,\n}: ActionMenuProps) {\n return (\n <Menu modal={false}>\n <MenuTrigger\n type=\"button\"\n aria-label={label}\n disabled={disabled}\n className={cn(\n 'inline-flex cursor-pointer items-center justify-center gap-1 rounded-full transition-colors hover:bg-[var(--as-secondary)] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--as-focus-ring)] disabled:pointer-events-none disabled:opacity-50',\n triggerClassName ?? 'size-9',\n )}\n >\n {trigger}\n </MenuTrigger>\n <MenuContent align={align} side={side} className={cn('w-52 p-1', panelClassName)}>\n <div className=\"flex flex-col\">\n {items.map((item) => (\n <MenuItem\n key={item.key}\n icon={item.icon}\n danger={item.danger}\n disabled={item.disabled}\n pending={item.pending}\n onSelect={() => item.onSelect()}\n >\n {item.label}\n </MenuItem>\n ))}\n </div>\n </MenuContent>\n </Menu>\n )\n}\n"]}
@@ -0,0 +1,115 @@
1
+ import { Popover, PopoverTrigger, PopoverContent } from './chunk-SIIY2EGI.js';
2
+ import { cn } from './chunk-BLJWR4ZV.js';
3
+ import * as React from 'react';
4
+ import { Sparkles, Send } from 'lucide-react';
5
+ import { jsx, jsxs } from 'react/jsx-runtime';
6
+
7
+ var AiButton = React.forwardRef(
8
+ function AiButton2({
9
+ onSubmit,
10
+ suggestions = [],
11
+ onResponse,
12
+ loading = false,
13
+ error,
14
+ label = "Ask AI",
15
+ promptLabel = "Ask a question",
16
+ submitLabel = "Send",
17
+ loadingLabel = "Thinking\u2026",
18
+ placeholder,
19
+ disabled = false,
20
+ side = "bottom",
21
+ align = "end",
22
+ className,
23
+ panelClassName
24
+ }, ref) {
25
+ const [open, setOpen] = React.useState(false);
26
+ const [prompt, setPrompt] = React.useState("");
27
+ const send = (value) => {
28
+ const trimmed = value.trim();
29
+ if (!trimmed || loading) return;
30
+ onSubmit(trimmed);
31
+ setPrompt("");
32
+ };
33
+ return /* @__PURE__ */ jsx(Popover, { open, onOpenChange: setOpen, children: /* @__PURE__ */ jsxs("span", { className: "relative inline-flex", children: [
34
+ /* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, disabled, children: /* @__PURE__ */ jsxs(
35
+ "button",
36
+ {
37
+ ref,
38
+ type: "button",
39
+ "data-as": "ai-button",
40
+ "aria-label": label,
41
+ className: cn(
42
+ "inline-flex cursor-pointer items-center gap-1 rounded-full bg-[color-mix(in_srgb,var(--as-ai)_12%,transparent)] px-2.5 py-1 text-xs font-medium text-[var(--as-ai)] transition-[filter] hover:brightness-95 focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-[var(--as-focus-ring)] disabled:pointer-events-none disabled:opacity-50",
43
+ className
44
+ ),
45
+ children: [
46
+ /* @__PURE__ */ jsx(Sparkles, { className: "size-3.5", "aria-hidden": true }),
47
+ label
48
+ ]
49
+ }
50
+ ) }),
51
+ /* @__PURE__ */ jsx(
52
+ PopoverContent,
53
+ {
54
+ side,
55
+ align,
56
+ "aria-label": label,
57
+ className: cn("w-72 p-3", panelClassName),
58
+ children: /* @__PURE__ */ jsxs(
59
+ "form",
60
+ {
61
+ "data-as": "ai-button-panel",
62
+ onSubmit: (event) => {
63
+ event.preventDefault();
64
+ send(prompt);
65
+ },
66
+ children: [
67
+ suggestions.length > 0 ? /* @__PURE__ */ jsx("div", { className: "mb-2 flex flex-wrap gap-1", children: suggestions.map((suggestion) => /* @__PURE__ */ jsx(
68
+ "button",
69
+ {
70
+ type: "button",
71
+ disabled: loading,
72
+ onClick: () => send(suggestion),
73
+ className: "cursor-pointer rounded-[var(--as-radius-sm)] bg-[var(--as-secondary)] px-2 py-1 text-xs transition-colors hover:bg-[color-mix(in_srgb,var(--as-ai)_14%,var(--as-secondary))] disabled:pointer-events-none disabled:opacity-50",
74
+ children: suggestion
75
+ },
76
+ suggestion
77
+ )) }) : null,
78
+ /* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center gap-2", children: [
79
+ /* @__PURE__ */ jsx(
80
+ "input",
81
+ {
82
+ type: "text",
83
+ "aria-label": promptLabel,
84
+ placeholder: placeholder ?? promptLabel,
85
+ value: prompt,
86
+ onChange: (event) => setPrompt(event.target.value),
87
+ className: "h-8 w-full rounded-[var(--as-radius-sm)] border border-[var(--as-border)] bg-[var(--as-surface)] px-2 text-sm outline-none placeholder:text-[var(--as-muted-fg)] focus-visible:border-[var(--as-focus-ring)]"
88
+ }
89
+ ),
90
+ /* @__PURE__ */ jsx(
91
+ "button",
92
+ {
93
+ type: "submit",
94
+ "aria-label": submitLabel,
95
+ disabled: loading || !prompt.trim(),
96
+ className: "shrink-0 cursor-pointer rounded-[var(--as-radius-sm)] bg-[var(--as-ai)] p-1.5 text-[var(--as-ai-fg)] transition-opacity hover:opacity-90 disabled:pointer-events-none disabled:opacity-40",
97
+ children: /* @__PURE__ */ jsx(Send, { className: "size-3.5", "aria-hidden": true })
98
+ }
99
+ )
100
+ ] }),
101
+ loading ? /* @__PURE__ */ jsx("p", { className: "text-sm text-[var(--as-muted-fg)]", role: "status", children: loadingLabel }) : null,
102
+ error ? /* @__PURE__ */ jsx("p", { role: "alert", className: "text-sm text-[var(--as-danger)]", children: error }) : null,
103
+ onResponse
104
+ ]
105
+ }
106
+ )
107
+ }
108
+ )
109
+ ] }) });
110
+ }
111
+ );
112
+
113
+ export { AiButton };
114
+ //# sourceMappingURL=chunk-L56KGPGS.js.map
115
+ //# sourceMappingURL=chunk-L56KGPGS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ai-button/AiButton.tsx"],"names":["AiButton"],"mappings":"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","file":"chunk-L56KGPGS.js","sourcesContent":["import * as React from 'react'\nimport { Send, Sparkles } from 'lucide-react'\nimport { cn } from '../../lib/utils'\nimport { Popover, PopoverContent, PopoverTrigger } from '../popover'\n\nexport interface AiButtonProps {\n onSubmit: (prompt: string) => void\n suggestions?: string[]\n onResponse?: React.ReactNode\n loading?: boolean\n error?: string | null\n label?: string\n promptLabel?: string\n submitLabel?: string\n loadingLabel?: string\n placeholder?: string\n disabled?: boolean\n side?: 'top' | 'bottom' | 'left' | 'right'\n align?: 'start' | 'center' | 'end'\n className?: string\n panelClassName?: string\n}\n\nexport const AiButton = React.forwardRef<HTMLButtonElement, AiButtonProps>(\n function AiButton(\n {\n onSubmit,\n suggestions = [],\n onResponse,\n loading = false,\n error,\n label = 'Ask AI',\n promptLabel = 'Ask a question',\n submitLabel = 'Send',\n loadingLabel = 'Thinking…',\n placeholder,\n disabled = false,\n side = 'bottom',\n align = 'end',\n className,\n panelClassName,\n },\n ref,\n ) {\n const [open, setOpen] = React.useState(false)\n const [prompt, setPrompt] = React.useState('')\n\n const send = (value: string) => {\n const trimmed = value.trim()\n if (!trimmed || loading) return\n onSubmit(trimmed)\n setPrompt('')\n }\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <span className=\"relative inline-flex\">\n <PopoverTrigger asChild disabled={disabled}>\n <button\n ref={ref}\n type=\"button\"\n data-as=\"ai-button\"\n aria-label={label}\n className={cn(\n 'inline-flex cursor-pointer items-center gap-1 rounded-full bg-[color-mix(in_srgb,var(--as-ai)_12%,transparent)] px-2.5 py-1 text-xs font-medium text-[var(--as-ai)] transition-[filter] hover:brightness-95 focus-visible:outline-2 focus-visible:outline-offset-1 focus-visible:outline-[var(--as-focus-ring)] disabled:pointer-events-none disabled:opacity-50',\n className,\n )}\n >\n <Sparkles className=\"size-3.5\" aria-hidden />\n {label}\n </button>\n </PopoverTrigger>\n <PopoverContent\n side={side}\n align={align}\n aria-label={label}\n className={cn('w-72 p-3', panelClassName)}\n >\n <form\n data-as=\"ai-button-panel\"\n onSubmit={(event) => {\n event.preventDefault()\n send(prompt)\n }}\n >\n {suggestions.length > 0 ? (\n <div className=\"mb-2 flex flex-wrap gap-1\">\n {suggestions.map((suggestion) => (\n <button\n key={suggestion}\n type=\"button\"\n disabled={loading}\n onClick={() => send(suggestion)}\n className=\"cursor-pointer rounded-[var(--as-radius-sm)] bg-[var(--as-secondary)] px-2 py-1 text-xs transition-colors hover:bg-[color-mix(in_srgb,var(--as-ai)_14%,var(--as-secondary))] disabled:pointer-events-none disabled:opacity-50\"\n >\n {suggestion}\n </button>\n ))}\n </div>\n ) : null}\n <div className=\"mb-2 flex items-center gap-2\">\n <input\n type=\"text\"\n aria-label={promptLabel}\n placeholder={placeholder ?? promptLabel}\n value={prompt}\n onChange={(event) => setPrompt(event.target.value)}\n className=\"h-8 w-full rounded-[var(--as-radius-sm)] border border-[var(--as-border)] bg-[var(--as-surface)] px-2 text-sm outline-none placeholder:text-[var(--as-muted-fg)] focus-visible:border-[var(--as-focus-ring)]\"\n />\n <button\n type=\"submit\"\n aria-label={submitLabel}\n disabled={loading || !prompt.trim()}\n className=\"shrink-0 cursor-pointer rounded-[var(--as-radius-sm)] bg-[var(--as-ai)] p-1.5 text-[var(--as-ai-fg)] transition-opacity hover:opacity-90 disabled:pointer-events-none disabled:opacity-40\"\n >\n <Send className=\"size-3.5\" aria-hidden />\n </button>\n </div>\n {loading ? (\n <p className=\"text-sm text-[var(--as-muted-fg)]\" role=\"status\">\n {loadingLabel}\n </p>\n ) : null}\n {error ? (\n <p role=\"alert\" className=\"text-sm text-[var(--as-danger)]\">\n {error}\n </p>\n ) : null}\n {onResponse}\n </form>\n </PopoverContent>\n </span>\n </Popover>\n )\n },\n)\n"]}
@@ -1,4 +1,4 @@
1
- import { PopoverButton } from './chunk-N5KQRHXU.js';
1
+ import { PopoverButton } from './chunk-BE3XFZWU.js';
2
2
  import { cn } from './chunk-BLJWR4ZV.js';
3
3
  import { Info } from 'lucide-react';
4
4
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -42,5 +42,5 @@ function InfoButton({
42
42
  }
43
43
 
44
44
  export { InfoButton };
45
- //# sourceMappingURL=chunk-DV3MXDLN.js.map
46
- //# sourceMappingURL=chunk-DV3MXDLN.js.map
45
+ //# sourceMappingURL=chunk-OT6EQFMP.js.map
46
+ //# sourceMappingURL=chunk-OT6EQFMP.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/info-button/InfoButton.tsx"],"names":[],"mappings":";;;;;AAcO,SAAS,UAAA,CAAW;AAAA,EACzB,QAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA,GAAQ,aAAA;AAAA,EACR,WAAA,GAAc,IAAA;AAAA,EACd,WAAA,GAAc,IAAA;AAAA,EACd;AACF,CAAA,EAAoB;AAClB,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAQ,aAAA;AAAA,MACR,SAAA,EAAW,EAAA;AAAA,QACT,UAAA;AAAA,QACA,WAAA,IACE,+EAAA;AAAA,QACF;AAAA,OACF;AAAA,MACA,WAAA,EAAa,CAAC,KAAA,KAAU,KAAA,CAAM,eAAA,EAAgB;AAAA,MAC9C,OAAA,EAAS,CAAC,KAAA,KAAU,KAAA,CAAM,eAAA,EAAgB;AAAA,MAC1C,aAAA,EAAe,CAAC,KAAA,KAAU,KAAA,CAAM,eAAA,EAAgB;AAAA,MAEhD,QAAA,kBAAA,GAAA;AAAA,QAAC,aAAA;AAAA,QAAA;AAAA,UACC,yBAAS,GAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,QAAA,EAAS,eAAW,IAAA,EAAC,CAAA;AAAA,UAC9C,KAAA;AAAA,UACA,gBAAA,EAAiB,4DAAA;AAAA,UACjB,WAAA;AAAA,UACA,cAAA,EAAe,UAAA;AAAA,UAEf,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,aAAA,EACZ,QAAA,EAAA;AAAA,YAAA,KAAA,mBAAQ,GAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,qBAAA,EAAuB,iBAAM,CAAA,GAAO,IAAA;AAAA,4BAC1D,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCAAA,EAAqC,QAAA,EAAS;AAAA,WAAA,EAC/D;AAAA;AAAA;AACF;AAAA,GACF;AAEJ","file":"chunk-DV3MXDLN.js","sourcesContent":["import * as React from 'react'\nimport { Info } from 'lucide-react'\nimport { cn } from '../../lib/utils'\nimport { PopoverButton } from '../popover-button/PopoverButton'\n\nexport interface InfoButtonProps {\n children: React.ReactNode\n title?: React.ReactNode\n label?: string\n showOnHover?: boolean\n openOnHover?: boolean\n className?: string\n}\n\nexport function InfoButton({\n children,\n title,\n label = 'Information',\n showOnHover = true,\n openOnHover = true,\n className,\n}: InfoButtonProps) {\n return (\n <span\n data-as=\"info-button\"\n className={cn(\n 'shrink-0',\n showOnHover &&\n 'opacity-0 transition-opacity focus-within:opacity-100 group-hover:opacity-100',\n className,\n )}\n onMouseDown={(event) => event.stopPropagation()}\n onClick={(event) => event.stopPropagation()}\n onDoubleClick={(event) => event.stopPropagation()}\n >\n <PopoverButton\n trigger={<Info className=\"size-4\" aria-hidden />}\n label={label}\n triggerClassName=\"size-6 text-[var(--as-muted-fg)] hover:text-[var(--as-fg)]\"\n openOnHover={openOnHover}\n panelClassName=\"max-w-xs\"\n >\n <div className=\"space-y-1.5\">\n {title ? <p className=\"text-sm font-medium\">{title}</p> : null}\n <div className=\"text-xs text-[var(--as-muted-fg)]\">{children}</div>\n </div>\n </PopoverButton>\n </span>\n )\n}\n"]}
1
+ {"version":3,"sources":["../src/components/info-button/InfoButton.tsx"],"names":[],"mappings":";;;;;AAcO,SAAS,UAAA,CAAW;AAAA,EACzB,QAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA,GAAQ,aAAA;AAAA,EACR,WAAA,GAAc,IAAA;AAAA,EACd,WAAA,GAAc,IAAA;AAAA,EACd;AACF,CAAA,EAAoB;AAClB,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAQ,aAAA;AAAA,MACR,SAAA,EAAW,EAAA;AAAA,QACT,UAAA;AAAA,QACA,WAAA,IACE,+EAAA;AAAA,QACF;AAAA,OACF;AAAA,MACA,WAAA,EAAa,CAAC,KAAA,KAAU,KAAA,CAAM,eAAA,EAAgB;AAAA,MAC9C,OAAA,EAAS,CAAC,KAAA,KAAU,KAAA,CAAM,eAAA,EAAgB;AAAA,MAC1C,aAAA,EAAe,CAAC,KAAA,KAAU,KAAA,CAAM,eAAA,EAAgB;AAAA,MAEhD,QAAA,kBAAA,GAAA;AAAA,QAAC,aAAA;AAAA,QAAA;AAAA,UACC,yBAAS,GAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAU,QAAA,EAAS,eAAW,IAAA,EAAC,CAAA;AAAA,UAC9C,KAAA;AAAA,UACA,gBAAA,EAAiB,4DAAA;AAAA,UACjB,WAAA;AAAA,UACA,cAAA,EAAe,UAAA;AAAA,UAEf,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,aAAA,EACZ,QAAA,EAAA;AAAA,YAAA,KAAA,mBAAQ,GAAA,CAAC,GAAA,EAAA,EAAE,SAAA,EAAU,qBAAA,EAAuB,iBAAM,CAAA,GAAO,IAAA;AAAA,4BAC1D,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,mCAAA,EAAqC,QAAA,EAAS;AAAA,WAAA,EAC/D;AAAA;AAAA;AACF;AAAA,GACF;AAEJ","file":"chunk-OT6EQFMP.js","sourcesContent":["import * as React from 'react'\nimport { Info } from 'lucide-react'\nimport { cn } from '../../lib/utils'\nimport { PopoverButton } from '../popover-button/PopoverButton'\n\nexport interface InfoButtonProps {\n children: React.ReactNode\n title?: React.ReactNode\n label?: string\n showOnHover?: boolean\n openOnHover?: boolean\n className?: string\n}\n\nexport function InfoButton({\n children,\n title,\n label = 'Information',\n showOnHover = true,\n openOnHover = true,\n className,\n}: InfoButtonProps) {\n return (\n <span\n data-as=\"info-button\"\n className={cn(\n 'shrink-0',\n showOnHover &&\n 'opacity-0 transition-opacity focus-within:opacity-100 group-hover:opacity-100',\n className,\n )}\n onMouseDown={(event) => event.stopPropagation()}\n onClick={(event) => event.stopPropagation()}\n onDoubleClick={(event) => event.stopPropagation()}\n >\n <PopoverButton\n trigger={<Info className=\"size-4\" aria-hidden />}\n label={label}\n triggerClassName=\"size-6 text-[var(--as-muted-fg)] hover:text-[var(--as-fg)]\"\n openOnHover={openOnHover}\n panelClassName=\"max-w-xs\"\n >\n <div className=\"space-y-1.5\">\n {title ? <p className=\"text-sm font-medium\">{title}</p> : null}\n <div className=\"text-xs text-[var(--as-muted-fg)]\">{children}</div>\n </div>\n </PopoverButton>\n </span>\n )\n}\n"]}
@@ -16,7 +16,7 @@ var PopoverContent = React.forwardRef(function PopoverContent2({ className, alig
16
16
  align,
17
17
  sideOffset,
18
18
  className: cn(
19
- "as-anim-pop z-50 w-72 rounded-[var(--as-radius-lg)] border border-[var(--as-border)] bg-[var(--as-surface-raised)] p-4 text-[var(--as-fg)] shadow-[var(--as-shadow-3)] focus:outline-none",
19
+ "as-anim-pop z-[var(--as-z-popover)] w-72 rounded-[var(--as-radius-lg)] border border-[var(--as-border)] bg-[var(--as-surface-raised)] p-4 text-[var(--as-fg)] shadow-[var(--as-shadow-3)] focus:outline-none",
20
20
  className
21
21
  ),
22
22
  ...props
@@ -25,5 +25,5 @@ var PopoverContent = React.forwardRef(function PopoverContent2({ className, alig
25
25
  });
26
26
 
27
27
  export { Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger };
28
- //# sourceMappingURL=chunk-CI56SSO2.js.map
29
- //# sourceMappingURL=chunk-CI56SSO2.js.map
28
+ //# sourceMappingURL=chunk-SIIY2EGI.js.map
29
+ //# sourceMappingURL=chunk-SIIY2EGI.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/popover/Popover.tsx"],"names":["PopoverContent"],"mappings":";;;;;AAIO,IAAM,OAAA,GAA2B,gBAAA,CAAA;AACjC,IAAM,cAAA,GAAkC,gBAAA,CAAA;AACxC,IAAM,aAAA,GAAiC,gBAAA,CAAA;AACvC,IAAM,YAAA,GAAgC,gBAAA,CAAA;AAEtC,IAAM,cAAA,GAAuB,KAAA,CAAA,UAAA,CAGlC,SAASA,eAAAA,CAAe,EAAE,SAAA,EAAW,KAAA,GAAQ,QAAA,EAAU,UAAA,GAAa,CAAA,EAAG,GAAG,KAAA,IAAS,GAAA,EAAK;AACxF,EAAA,uBACE,GAAA,CAAkB,yBAAjB,EACC,QAAA,kBAAA,GAAA;AAAA,IAAkB,gBAAA,CAAA,OAAA;AAAA,IAAjB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAQ,SAAA;AAAA,MACR,KAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,2LAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN,EACF,CAAA;AAEJ,CAAC","file":"chunk-CI56SSO2.js","sourcesContent":["import * as React from 'react'\nimport * as PopoverPrimitive from '@radix-ui/react-popover'\nimport { cn } from '../../lib/utils'\n\nexport const Popover = PopoverPrimitive.Root\nexport const PopoverTrigger = PopoverPrimitive.Trigger\nexport const PopoverAnchor = PopoverPrimitive.Anchor\nexport const PopoverClose = PopoverPrimitive.Close\n\nexport const PopoverContent = React.forwardRef<\n React.ComponentRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(function PopoverContent({ className, align = 'center', sideOffset = 6, ...props }, ref) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n data-as=\"popover\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'as-anim-pop z-50 w-72 rounded-[var(--as-radius-lg)] border border-[var(--as-border)] bg-[var(--as-surface-raised)] p-4 text-[var(--as-fg)] shadow-[var(--as-shadow-3)] focus:outline-none',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n})\n"]}
1
+ {"version":3,"sources":["../src/components/popover/Popover.tsx"],"names":["PopoverContent"],"mappings":";;;;;AAIO,IAAM,OAAA,GAA2B,gBAAA,CAAA;AACjC,IAAM,cAAA,GAAkC,gBAAA,CAAA;AACxC,IAAM,aAAA,GAAiC,gBAAA,CAAA;AACvC,IAAM,YAAA,GAAgC,gBAAA,CAAA;AAEtC,IAAM,cAAA,GAAuB,KAAA,CAAA,UAAA,CAGlC,SAASA,eAAAA,CAAe,EAAE,SAAA,EAAW,KAAA,GAAQ,QAAA,EAAU,UAAA,GAAa,CAAA,EAAG,GAAG,KAAA,IAAS,GAAA,EAAK;AACxF,EAAA,uBACE,GAAA,CAAkB,yBAAjB,EACC,QAAA,kBAAA,GAAA;AAAA,IAAkB,gBAAA,CAAA,OAAA;AAAA,IAAjB;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAQ,SAAA;AAAA,MACR,KAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,8MAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN,EACF,CAAA;AAEJ,CAAC","file":"chunk-SIIY2EGI.js","sourcesContent":["import * as React from 'react'\nimport * as PopoverPrimitive from '@radix-ui/react-popover'\nimport { cn } from '../../lib/utils'\n\nexport const Popover = PopoverPrimitive.Root\nexport const PopoverTrigger = PopoverPrimitive.Trigger\nexport const PopoverAnchor = PopoverPrimitive.Anchor\nexport const PopoverClose = PopoverPrimitive.Close\n\nexport const PopoverContent = React.forwardRef<\n React.ComponentRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(function PopoverContent({ className, align = 'center', sideOffset = 6, ...props }, ref) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n data-as=\"popover\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'as-anim-pop z-[var(--as-z-popover)] w-72 rounded-[var(--as-radius-lg)] border border-[var(--as-border)] bg-[var(--as-surface-raised)] p-4 text-[var(--as-fg)] shadow-[var(--as-shadow-3)] focus:outline-none',\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n})\n"]}
@@ -27,7 +27,7 @@ var ModalContent = React.forwardRef(function ModalContent2({ className, children
27
27
  DialogPrimitive.Overlay,
28
28
  {
29
29
  "data-as": "modal-overlay",
30
- className: cn("as-anim-fade fixed inset-0 z-50 bg-[var(--as-overlay)]")
30
+ className: cn("as-anim-fade fixed inset-0 z-[var(--as-z-modal)] bg-[var(--as-overlay)]")
31
31
  }
32
32
  ),
33
33
  /* @__PURE__ */ jsxs(
@@ -36,7 +36,7 @@ var ModalContent = React.forwardRef(function ModalContent2({ className, children
36
36
  ref,
37
37
  "data-as": "modal",
38
38
  className: cn(
39
- "as-anim-modal fixed left-1/2 top-1/2 z-50 flex max-h-[85vh] w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 flex-col overflow-y-auto rounded-[var(--as-radius-lg)] border border-[var(--as-border)] bg-[var(--as-surface-raised)] text-[var(--as-fg)] shadow-[var(--as-shadow-3)] focus:outline-none",
39
+ "as-anim-modal fixed left-1/2 top-1/2 z-[var(--as-z-modal)] flex max-h-[85vh] w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 flex-col overflow-y-auto rounded-[var(--as-radius-lg)] border border-[var(--as-border)] bg-[var(--as-surface-raised)] text-[var(--as-fg)] shadow-[var(--as-shadow-3)] focus:outline-none",
40
40
  modalContentVariants({ size }),
41
41
  className
42
42
  ),
@@ -109,5 +109,5 @@ var ModalFooter = React.forwardRef(
109
109
  );
110
110
 
111
111
  export { Modal, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalTitle, ModalTrigger, modalContentVariants };
112
- //# sourceMappingURL=chunk-RHBQ3GZE.js.map
113
- //# sourceMappingURL=chunk-RHBQ3GZE.js.map
112
+ //# sourceMappingURL=chunk-SXVOJ7WE.js.map
113
+ //# sourceMappingURL=chunk-SXVOJ7WE.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/modal/Modal.tsx"],"names":["ModalContent","ModalHeader","ModalTitle","ModalDescription","ModalFooter"],"mappings":"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","file":"chunk-RHBQ3GZE.js","sourcesContent":["import * as React from 'react'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { X } from 'lucide-react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../lib/utils'\n\nexport const Modal = DialogPrimitive.Root\nexport const ModalTrigger = DialogPrimitive.Trigger\nexport const ModalClose = DialogPrimitive.Close\n\nconst modalContentVariants = cva('', {\n variants: {\n size: {\n sm: 'max-w-sm',\n md: 'max-w-md',\n lg: 'max-w-lg',\n xl: 'max-w-xl',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nexport interface ModalContentProps\n extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>,\n VariantProps<typeof modalContentVariants> {\n closeLabel?: string\n}\n\nexport const ModalContent = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Content>,\n ModalContentProps\n>(function ModalContent({ className, children, size, closeLabel = 'Close', ...props }, ref) {\n return (\n <DialogPrimitive.Portal>\n <DialogPrimitive.Overlay\n data-as=\"modal-overlay\"\n className={cn('as-anim-fade fixed inset-0 z-50 bg-[var(--as-overlay)]')}\n />\n <DialogPrimitive.Content\n ref={ref}\n data-as=\"modal\"\n className={cn(\n 'as-anim-modal fixed left-1/2 top-1/2 z-50 flex max-h-[85vh] w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 flex-col overflow-y-auto rounded-[var(--as-radius-lg)] border border-[var(--as-border)] bg-[var(--as-surface-raised)] text-[var(--as-fg)] shadow-[var(--as-shadow-3)] focus:outline-none',\n modalContentVariants({ size }),\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close\n aria-label={closeLabel}\n className=\"absolute right-4 top-4 rounded-[var(--as-radius-sm)] p-1 text-[var(--as-muted-fg)] transition-colors hover:bg-[var(--as-secondary)] hover:text-[var(--as-fg)] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--as-focus-ring)]\"\n >\n <X aria-hidden=\"true\" className=\"size-4\" />\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n )\n})\n\nexport const ModalHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n function ModalHeader({ className, ...props }, ref) {\n return (\n <div\n ref={ref}\n data-as=\"modal-header\"\n className={cn('flex flex-col gap-1.5 p-6 pb-4', className)}\n {...props}\n />\n )\n },\n)\n\nexport const ModalTitle = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(function ModalTitle({ className, ...props }, ref) {\n return (\n <DialogPrimitive.Title\n ref={ref}\n data-as=\"modal-title\"\n className={cn('pr-8 text-lg font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n )\n})\n\nexport const ModalDescription = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(function ModalDescription({ className, ...props }, ref) {\n return (\n <DialogPrimitive.Description\n ref={ref}\n data-as=\"modal-description\"\n className={cn('text-sm text-[var(--as-muted-fg)]', className)}\n {...props}\n />\n )\n})\n\nexport const ModalFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n function ModalFooter({ className, ...props }, ref) {\n return (\n <div\n ref={ref}\n data-as=\"modal-footer\"\n className={cn(\n 'flex flex-col-reverse gap-2 p-6 pt-0 sm:flex-row sm:justify-end',\n className,\n )}\n {...props}\n />\n )\n },\n)\n\nexport { modalContentVariants }\n"]}
1
+ {"version":3,"sources":["../src/components/modal/Modal.tsx"],"names":["ModalContent","ModalHeader","ModalTitle","ModalDescription","ModalFooter"],"mappings":"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","file":"chunk-SXVOJ7WE.js","sourcesContent":["import * as React from 'react'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { X } from 'lucide-react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../lib/utils'\n\nexport const Modal = DialogPrimitive.Root\nexport const ModalTrigger = DialogPrimitive.Trigger\nexport const ModalClose = DialogPrimitive.Close\n\nconst modalContentVariants = cva('', {\n variants: {\n size: {\n sm: 'max-w-sm',\n md: 'max-w-md',\n lg: 'max-w-lg',\n xl: 'max-w-xl',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n})\n\nexport interface ModalContentProps\n extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>,\n VariantProps<typeof modalContentVariants> {\n closeLabel?: string\n}\n\nexport const ModalContent = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Content>,\n ModalContentProps\n>(function ModalContent({ className, children, size, closeLabel = 'Close', ...props }, ref) {\n return (\n <DialogPrimitive.Portal>\n <DialogPrimitive.Overlay\n data-as=\"modal-overlay\"\n className={cn('as-anim-fade fixed inset-0 z-[var(--as-z-modal)] bg-[var(--as-overlay)]')}\n />\n <DialogPrimitive.Content\n ref={ref}\n data-as=\"modal\"\n className={cn(\n 'as-anim-modal fixed left-1/2 top-1/2 z-[var(--as-z-modal)] flex max-h-[85vh] w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 flex-col overflow-y-auto rounded-[var(--as-radius-lg)] border border-[var(--as-border)] bg-[var(--as-surface-raised)] text-[var(--as-fg)] shadow-[var(--as-shadow-3)] focus:outline-none',\n modalContentVariants({ size }),\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close\n aria-label={closeLabel}\n className=\"absolute right-4 top-4 rounded-[var(--as-radius-sm)] p-1 text-[var(--as-muted-fg)] transition-colors hover:bg-[var(--as-secondary)] hover:text-[var(--as-fg)] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[var(--as-focus-ring)]\"\n >\n <X aria-hidden=\"true\" className=\"size-4\" />\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n )\n})\n\nexport const ModalHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n function ModalHeader({ className, ...props }, ref) {\n return (\n <div\n ref={ref}\n data-as=\"modal-header\"\n className={cn('flex flex-col gap-1.5 p-6 pb-4', className)}\n {...props}\n />\n )\n },\n)\n\nexport const ModalTitle = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(function ModalTitle({ className, ...props }, ref) {\n return (\n <DialogPrimitive.Title\n ref={ref}\n data-as=\"modal-title\"\n className={cn('pr-8 text-lg font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n )\n})\n\nexport const ModalDescription = React.forwardRef<\n React.ComponentRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(function ModalDescription({ className, ...props }, ref) {\n return (\n <DialogPrimitive.Description\n ref={ref}\n data-as=\"modal-description\"\n className={cn('text-sm text-[var(--as-muted-fg)]', className)}\n {...props}\n />\n )\n})\n\nexport const ModalFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n function ModalFooter({ className, ...props }, ref) {\n return (\n <div\n ref={ref}\n data-as=\"modal-footer\"\n className={cn(\n 'flex flex-col-reverse gap-2 p-6 pt-0 sm:flex-row sm:justify-end',\n className,\n )}\n {...props}\n />\n )\n },\n)\n\nexport { modalContentVariants }\n"]}
@@ -1,4 +1,4 @@
1
- import { Modal, ModalContent, ModalHeader, ModalTitle, ModalDescription } from './chunk-RHBQ3GZE.js';
1
+ import { Modal, ModalContent, ModalHeader, ModalTitle, ModalDescription } from './chunk-SXVOJ7WE.js';
2
2
  import { Button } from './chunk-GTXGTQ6F.js';
3
3
  import { cn } from './chunk-BLJWR4ZV.js';
4
4
  import { AlertTriangle } from 'lucide-react';
@@ -51,5 +51,5 @@ function ConfirmationModal({
51
51
  }
52
52
 
53
53
  export { ConfirmationModal };
54
- //# sourceMappingURL=chunk-GA3XIDVX.js.map
55
- //# sourceMappingURL=chunk-GA3XIDVX.js.map
54
+ //# sourceMappingURL=chunk-TKKHWO6C.js.map
55
+ //# sourceMappingURL=chunk-TKKHWO6C.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/confirmation-modal/ConfirmationModal.tsx"],"names":[],"mappings":";;;;;;AA2BO,SAAS,iBAAA,CAAkB;AAAA,EAChC,IAAA;AAAA,EACA,YAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA,GAAe,SAAA;AAAA,EACf,WAAA,GAAc,QAAA;AAAA,EACd,WAAA,GAAc,KAAA;AAAA,EACd,IAAA,GAAO,KAAA;AAAA,EACP,SAAA;AAAA,EACA,MAAM,IAAA,GAAO,aAAA;AAAA,EACb,IAAA,GAAO,IAAA;AAAA,EACP,UAAA,GAAa;AACf,CAAA,EAA2B;AACzB,EAAA,uBACE,GAAA,CAAC,SAAM,IAAA,EAAY,YAAA,EACjB,+BAAC,YAAA,EAAA,EAAa,IAAA,EAAY,UAAA,EAAwB,kBAAA,EAAkB,MAAA,EAClE,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,WAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,yBAAA,EACb,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,gCAAA;AAAA,cACA,cACI,kDAAA,GACA;AAAA,aACN;AAAA,YAEA,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,aAAA,EAAY,MAAA,EAAO,WAAU,QAAA,EAAS;AAAA;AAAA,SAC9C;AAAA,wBACA,GAAA,CAAC,cAAY,QAAA,EAAA,KAAA,EAAM;AAAA,OAAA,EACrB,CAAA;AAAA,MACC,WAAA,mBAAc,GAAA,CAAC,gBAAA,EAAA,EAAkB,QAAA,EAAA,WAAA,EAAY,CAAA,GAAsB;AAAA,KAAA,EACtE,CAAA;AAAA,oBACA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iEAAA,EACb,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,MAAA,EAAA,EAAO,OAAA,EAAQ,SAAA,EAAU,OAAA,EAAS,MAAM,aAAa,KAAK,CAAA,EAAG,QAAA,EAAU,IAAA,EACrE,QAAA,EAAA,WAAA,EACH,CAAA;AAAA,sBACA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAS,cAAc,aAAA,GAAgB,SAAA;AAAA,UACvC,OAAA,EAAS,MAAM,SAAA,EAAU;AAAA,UACzB,OAAA,EAAS,IAAA;AAAA,UAER,QAAA,EAAA;AAAA;AAAA;AACH,KAAA,EACF;AAAA,GAAA,EACF,CAAA,EACF,CAAA;AAEJ","file":"chunk-GA3XIDVX.js","sourcesContent":["import * as React from 'react'\nimport { AlertTriangle, type LucideIcon } from 'lucide-react'\nimport { cn } from '../../lib/utils'\nimport { Button } from '../button/Button'\nimport {\n Modal,\n ModalContent,\n ModalDescription,\n ModalHeader,\n ModalTitle,\n} from '../modal/Modal'\n\nexport interface ConfirmationModalProps {\n open: boolean\n onOpenChange: (open: boolean) => void\n title: string\n description?: string\n confirmLabel?: string\n cancelLabel?: string\n destructive?: boolean\n busy?: boolean\n onConfirm: () => void\n icon?: LucideIcon\n size?: 'sm' | 'md' | 'lg' | 'xl'\n closeLabel?: string\n}\n\nexport function ConfirmationModal({\n open,\n onOpenChange,\n title,\n description,\n confirmLabel = 'Confirm',\n cancelLabel = 'Cancel',\n destructive = false,\n busy = false,\n onConfirm,\n icon: Icon = AlertTriangle,\n size = 'sm',\n closeLabel = 'Close',\n}: ConfirmationModalProps) {\n return (\n <Modal open={open} onOpenChange={onOpenChange}>\n <ModalContent size={size} closeLabel={closeLabel} aria-describedby={undefined}>\n <ModalHeader>\n <div className=\"flex items-center gap-3\">\n <span\n className={cn(\n 'rounded-[var(--as-radius)] p-2',\n destructive\n ? 'bg-[var(--as-danger)]/10 text-[var(--as-danger)]'\n : 'bg-[var(--as-secondary)] text-[var(--as-fg)]',\n )}\n >\n <Icon aria-hidden=\"true\" className=\"size-5\" />\n </span>\n <ModalTitle>{title}</ModalTitle>\n </div>\n {description ? <ModalDescription>{description}</ModalDescription> : null}\n </ModalHeader>\n <div className=\"flex flex-col-reverse gap-2 p-6 pt-0 sm:flex-row sm:justify-end\">\n <Button variant=\"outline\" onClick={() => onOpenChange(false)} disabled={busy}>\n {cancelLabel}\n </Button>\n <Button\n variant={destructive ? 'destructive' : 'default'}\n onClick={() => onConfirm()}\n loading={busy}\n >\n {confirmLabel}\n </Button>\n </div>\n </ModalContent>\n </Modal>\n )\n}\n"]}
1
+ {"version":3,"sources":["../src/components/confirmation-modal/ConfirmationModal.tsx"],"names":[],"mappings":";;;;;;AA2BO,SAAS,iBAAA,CAAkB;AAAA,EAChC,IAAA;AAAA,EACA,YAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA,GAAe,SAAA;AAAA,EACf,WAAA,GAAc,QAAA;AAAA,EACd,WAAA,GAAc,KAAA;AAAA,EACd,IAAA,GAAO,KAAA;AAAA,EACP,SAAA;AAAA,EACA,MAAM,IAAA,GAAO,aAAA;AAAA,EACb,IAAA,GAAO,IAAA;AAAA,EACP,UAAA,GAAa;AACf,CAAA,EAA2B;AACzB,EAAA,uBACE,GAAA,CAAC,SAAM,IAAA,EAAY,YAAA,EACjB,+BAAC,YAAA,EAAA,EAAa,IAAA,EAAY,UAAA,EAAwB,kBAAA,EAAkB,MAAA,EAClE,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,WAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,yBAAA,EACb,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA;AAAA,cACT,gCAAA;AAAA,cACA,cACI,kDAAA,GACA;AAAA,aACN;AAAA,YAEA,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,aAAA,EAAY,MAAA,EAAO,WAAU,QAAA,EAAS;AAAA;AAAA,SAC9C;AAAA,wBACA,GAAA,CAAC,cAAY,QAAA,EAAA,KAAA,EAAM;AAAA,OAAA,EACrB,CAAA;AAAA,MACC,WAAA,mBAAc,GAAA,CAAC,gBAAA,EAAA,EAAkB,QAAA,EAAA,WAAA,EAAY,CAAA,GAAsB;AAAA,KAAA,EACtE,CAAA;AAAA,oBACA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iEAAA,EACb,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,MAAA,EAAA,EAAO,OAAA,EAAQ,SAAA,EAAU,OAAA,EAAS,MAAM,aAAa,KAAK,CAAA,EAAG,QAAA,EAAU,IAAA,EACrE,QAAA,EAAA,WAAA,EACH,CAAA;AAAA,sBACA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAS,cAAc,aAAA,GAAgB,SAAA;AAAA,UACvC,OAAA,EAAS,MAAM,SAAA,EAAU;AAAA,UACzB,OAAA,EAAS,IAAA;AAAA,UAER,QAAA,EAAA;AAAA;AAAA;AACH,KAAA,EACF;AAAA,GAAA,EACF,CAAA,EACF,CAAA;AAEJ","file":"chunk-TKKHWO6C.js","sourcesContent":["import * as React from 'react'\nimport { AlertTriangle, type LucideIcon } from 'lucide-react'\nimport { cn } from '../../lib/utils'\nimport { Button } from '../button/Button'\nimport {\n Modal,\n ModalContent,\n ModalDescription,\n ModalHeader,\n ModalTitle,\n} from '../modal/Modal'\n\nexport interface ConfirmationModalProps {\n open: boolean\n onOpenChange: (open: boolean) => void\n title: string\n description?: string\n confirmLabel?: string\n cancelLabel?: string\n destructive?: boolean\n busy?: boolean\n onConfirm: () => void\n icon?: LucideIcon\n size?: 'sm' | 'md' | 'lg' | 'xl'\n closeLabel?: string\n}\n\nexport function ConfirmationModal({\n open,\n onOpenChange,\n title,\n description,\n confirmLabel = 'Confirm',\n cancelLabel = 'Cancel',\n destructive = false,\n busy = false,\n onConfirm,\n icon: Icon = AlertTriangle,\n size = 'sm',\n closeLabel = 'Close',\n}: ConfirmationModalProps) {\n return (\n <Modal open={open} onOpenChange={onOpenChange}>\n <ModalContent size={size} closeLabel={closeLabel} aria-describedby={undefined}>\n <ModalHeader>\n <div className=\"flex items-center gap-3\">\n <span\n className={cn(\n 'rounded-[var(--as-radius)] p-2',\n destructive\n ? 'bg-[var(--as-danger)]/10 text-[var(--as-danger)]'\n : 'bg-[var(--as-secondary)] text-[var(--as-fg)]',\n )}\n >\n <Icon aria-hidden=\"true\" className=\"size-5\" />\n </span>\n <ModalTitle>{title}</ModalTitle>\n </div>\n {description ? <ModalDescription>{description}</ModalDescription> : null}\n </ModalHeader>\n <div className=\"flex flex-col-reverse gap-2 p-6 pt-0 sm:flex-row sm:justify-end\">\n <Button variant=\"outline\" onClick={() => onOpenChange(false)} disabled={busy}>\n {cancelLabel}\n </Button>\n <Button\n variant={destructive ? 'destructive' : 'default'}\n onClick={() => onConfirm()}\n loading={busy}\n >\n {confirmLabel}\n </Button>\n </div>\n </ModalContent>\n </Modal>\n )\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { Popover, PopoverTrigger, PopoverContent } from './chunk-CI56SSO2.js';
1
+ import { Popover, PopoverTrigger, PopoverContent } from './chunk-SIIY2EGI.js';
2
2
  import { cn } from './chunk-BLJWR4ZV.js';
3
3
  import * as React from 'react';
4
4
  import { parseISO, isValid, startOfDay, startOfMonth, endOfMonth, startOfWeek, endOfWeek, addDays, format, isSameDay, isSameMonth, setMonth, setYear, subMonths, subYears, addMonths, addYears } from 'date-fns';
@@ -211,7 +211,7 @@ var DatePicker = React.forwardRef(
211
211
  target?.focus();
212
212
  },
213
213
  className: cn(
214
- "as-anim-pop z-50 w-[280px] rounded-[var(--as-radius-lg)] border border-[var(--as-border)] bg-[var(--as-surface-raised)] p-2 text-[var(--as-fg)] shadow-[var(--as-shadow-3)] outline-none",
214
+ "as-anim-pop z-[var(--as-z-popover)] w-[280px] rounded-[var(--as-radius-lg)] border border-[var(--as-border)] bg-[var(--as-surface-raised)] p-2 text-[var(--as-fg)] shadow-[var(--as-shadow-3)] outline-none",
215
215
  panelClassName
216
216
  ),
217
217
  children: [
@@ -355,5 +355,5 @@ var DatePicker = React.forwardRef(
355
355
  );
356
356
 
357
357
  export { DatePicker };
358
- //# sourceMappingURL=chunk-MEBOS2FX.js.map
359
- //# sourceMappingURL=chunk-MEBOS2FX.js.map
358
+ //# sourceMappingURL=chunk-UU2V5FGF.js.map
359
+ //# sourceMappingURL=chunk-UU2V5FGF.js.map