@epilot/spark-ui 1.0.0-alpha.5 → 1.0.0-alpha.7

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/dist/components/accordion.cjs +3 -3
  2. package/dist/components/accordion.cjs.map +1 -1
  3. package/dist/components/accordion.d.ts +1 -1
  4. package/dist/components/accordion.js +3 -3
  5. package/dist/components/accordion.js.map +1 -1
  6. package/dist/components/attachment.d.cts +1 -1
  7. package/dist/components/attachment.d.ts +1 -1
  8. package/dist/components/bar-chart.js +1 -1
  9. package/dist/components/breadcrumbs.cjs +1 -1
  10. package/dist/components/breadcrumbs.cjs.map +1 -1
  11. package/dist/components/breadcrumbs.js +1 -1
  12. package/dist/components/breadcrumbs.js.map +1 -1
  13. package/dist/components/bubble.d.cts +1 -1
  14. package/dist/components/bubble.d.ts +1 -1
  15. package/dist/components/button.d.cts +3 -3
  16. package/dist/components/button.d.ts +3 -3
  17. package/dist/components/calendar.cjs +3 -2
  18. package/dist/components/calendar.cjs.map +1 -1
  19. package/dist/components/calendar.d.cts +5 -1
  20. package/dist/components/calendar.d.ts +5 -1
  21. package/dist/components/calendar.js +3 -2
  22. package/dist/components/calendar.js.map +1 -1
  23. package/dist/components/info-block.d.cts +1 -1
  24. package/dist/components/info-block.d.ts +1 -1
  25. package/dist/components/input-group.cjs +3 -2
  26. package/dist/components/input-group.cjs.map +1 -1
  27. package/dist/components/input-group.d.cts +2 -5
  28. package/dist/components/input-group.d.ts +2 -5
  29. package/dist/components/input-group.js +4 -3
  30. package/dist/components/input-group.js.map +1 -1
  31. package/dist/components/input-otp.cjs +2 -2
  32. package/dist/components/input-otp.cjs.map +1 -1
  33. package/dist/components/input-otp.d.cts +3 -0
  34. package/dist/components/input-otp.d.ts +3 -0
  35. package/dist/components/input-otp.js +2 -2
  36. package/dist/components/input-otp.js.map +1 -1
  37. package/dist/components/input.cjs +3 -2
  38. package/dist/components/input.cjs.map +1 -1
  39. package/dist/components/input.d.cts +1 -8
  40. package/dist/components/input.d.ts +1 -8
  41. package/dist/components/input.js +4 -3
  42. package/dist/components/input.js.map +1 -1
  43. package/dist/components/line-chart.js +1 -1
  44. package/dist/components/list.cjs +1 -1
  45. package/dist/components/list.cjs.map +1 -1
  46. package/dist/components/list.js +1 -1
  47. package/dist/components/list.js.map +1 -1
  48. package/dist/components/page-header.d.cts +1 -1
  49. package/dist/components/page-header.d.ts +1 -1
  50. package/dist/components/power-history-chart.js +1 -1
  51. package/dist/components/power-history.cjs +1 -1
  52. package/dist/components/power-history.js +1 -1
  53. package/dist/components/power-network.cjs +1 -1
  54. package/dist/components/power-network.js +1 -1
  55. package/dist/components/segmented-control.cjs +1 -1
  56. package/dist/components/segmented-control.cjs.map +1 -1
  57. package/dist/components/segmented-control.js +1 -1
  58. package/dist/components/segmented-control.js.map +1 -1
  59. package/dist/components/slider.cjs +3 -3
  60. package/dist/components/slider.cjs.map +1 -1
  61. package/dist/components/slider.js +3 -3
  62. package/dist/components/slider.js.map +1 -1
  63. package/dist/components/tabs.cjs +4 -1
  64. package/dist/components/tabs.cjs.map +1 -1
  65. package/dist/components/tabs.js +4 -1
  66. package/dist/components/tabs.js.map +1 -1
  67. package/dist/components/tooltip.cjs +15 -5
  68. package/dist/components/tooltip.cjs.map +1 -1
  69. package/dist/components/tooltip.d.cts +3 -1
  70. package/dist/components/tooltip.d.ts +3 -1
  71. package/dist/components/tooltip.js +15 -5
  72. package/dist/components/tooltip.js.map +1 -1
  73. package/package.json +1 -1
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const require_chunk = require("../chunk-aJGBMT86.cjs");
4
4
  const require_icons_material_symbol = require("../icons/material-symbol.cjs");
5
+ let _base_ui_react_accordion = require("@base-ui/react/accordion");
5
6
  let react = require("react");
6
7
  react = require_chunk.__toESM(react);
7
8
  let react_jsx_runtime = require("react/jsx-runtime");
8
- let _base_ui_react_accordion = require("@base-ui/react/accordion");
9
9
  let cnfast = require("cnfast");
10
10
  //#region src/components/accordion.tsx
11
11
  function Accordion({ className, variant = "soft", ...props }) {
@@ -19,7 +19,7 @@ function Accordion({ className, variant = "soft", ...props }) {
19
19
  function AccordionItem({ className, ...props }) {
20
20
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_accordion.Accordion.Item, {
21
21
  "data-slot": "accordion-item",
22
- className: (0, cnfast.cn)("group-data-[variant=soft]/accordion:rounded-md group-data-[variant=soft]/accordion:bg-gray-a2", "group-data-[variant=surface]/accordion:bg-gray-2", "group-data-[variant=surface]/accordion:border-x group-data-[variant=surface]/accordion:border-t group-data-[variant=surface]/accordion:border-gray-a6 group-data-[variant=surface]/accordion:first:rounded-t-md group-data-[variant=surface]/accordion:last:rounded-b-md group-data-[variant=surface]/accordion:last:border-b", "group-data-[variant=outline]/accordion:border-x group-data-[variant=outline]/accordion:border-t group-data-[variant=outline]/accordion:border-gray-a6 group-data-[variant=outline]/accordion:first:rounded-t-md group-data-[variant=outline]/accordion:last:rounded-b-md group-data-[variant=outline]/accordion:last:border-b", className),
22
+ className: (0, cnfast.cn)("group-data-[variant=soft]/accordion:rounded-md group-data-[variant=soft]/accordion:bg-gray-a2 dark:group-data-[variant=soft]/accordion:bg-gray-a3", "group-data-[variant=surface]/accordion:bg-gray-2", "group-data-[variant=surface]/accordion:border-x group-data-[variant=surface]/accordion:border-t group-data-[variant=surface]/accordion:border-gray-a6 group-data-[variant=surface]/accordion:first:rounded-t-md group-data-[variant=surface]/accordion:last:rounded-b-md group-data-[variant=surface]/accordion:last:border-b", "group-data-[variant=outline]/accordion:border-x group-data-[variant=outline]/accordion:border-t group-data-[variant=outline]/accordion:border-gray-a6 group-data-[variant=outline]/accordion:first:rounded-t-md group-data-[variant=outline]/accordion:last:rounded-b-md group-data-[variant=outline]/accordion:last:border-b", className),
23
23
  ...props
24
24
  });
25
25
  }
@@ -28,7 +28,7 @@ function AccordionTrigger({ className, children, ...props }) {
28
28
  className: "flex",
29
29
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_base_ui_react_accordion.Accordion.Trigger, {
30
30
  "data-slot": "accordion-trigger",
31
- className: (0, cnfast.cn)("flex min-h-[2.75rem] flex-1 cursor-pointer items-center justify-between gap-4 py-3 text-left font-medium text-gray-12", "focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden", "disabled:pointer-events-none disabled:opacity-50", "group-data-[variant=outline]/accordion:px-4 group-data-[variant=soft]/accordion:px-4 group-data-[variant=surface]/accordion:px-4", "[&[data-panel-open]>:last-child]:rotate-180", className),
31
+ className: (0, cnfast.cn)("flex min-h-[2.75rem] flex-1 cursor-pointer items-center justify-between gap-4 py-3 text-left font-medium text-gray-12", "rounded-md focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden", "disabled:pointer-events-none disabled:opacity-50", "group-data-[variant=outline]/accordion:px-4 group-data-[variant=soft]/accordion:px-4 group-data-[variant=surface]/accordion:px-4", "[&[data-panel-open]>:last-child]:rotate-180", className),
32
32
  ...props,
33
33
  children: [children, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_icons_material_symbol.MaterialSymbol, {
34
34
  className: "shrink-0 text-gray-11 transition-transform duration-200 motion-reduce:transition-none",
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.cjs","names":["AccordionPrimitive","MaterialSymbol"],"sources":["../../src/components/accordion.tsx"],"sourcesContent":["import { Accordion as AccordionPrimitive } from '@base-ui/react/accordion'\nimport * as React from 'react'\nimport { MaterialSymbol } from '../icons/material-symbol'\nimport { cn } from '../utils/cn'\n\ntype AccordionVariant = 'ghost' | 'soft' | 'surface' | 'outline'\n\ntype AccordionProps = React.ComponentProps<typeof AccordionPrimitive.Root> & {\n /**\n * Container chrome (neutral):\n * - `ghost` — no border/fill, just the trigger + spacing;\n * - `soft` (default) — separate soft-tinted rounded cards, 2px gap between them;\n * - `surface` — items glued into one bordered panel with an opaque fill;\n * - `outline` — the same glued bordered panel, but no fill (transparent).\n * A `variant` prop, NOT the ambient `data-style` knob — that would cascade into\n * the panel content. Spacing + scaling still come from the ambient knobs.\n */\n variant?: AccordionVariant\n}\n\nfunction Accordion({ className, variant = 'soft', ...props }: AccordionProps) {\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n // group/accordion + data-variant drive every item/trigger's per-variant\n // chrome; soft stacks its separate cards with a gap (below).\n data-variant={variant}\n className={cn(\n 'group/accordion',\n // soft = separate cards → stack them with a small (2px) gap. surface/outline\n // glue their items into one bordered panel (default block, no gap).\n 'data-[variant=soft]:flex data-[variant=soft]:flex-col data-[variant=soft]:gap-0.5',\n className,\n )}\n {...props}\n />\n )\n}\n\ntype AccordionItemProps = React.ComponentProps<typeof AccordionPrimitive.Item>\n\nfunction AccordionItem({ className, ...props }: AccordionItemProps) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\n // NEUTRAL container chrome per the accordion variant (group/accordion) — mirrors\n // ListItem's group-data-[variant=X]/list: block (list.tsx); keep both in sync if\n // this pattern changes. ghost carries no chrome. Radius = rounded-md (tracks the\n // radius knob but never goes fully round). No text underline / per-item separator\n // anymore.\n\n // soft (default): each item is its own borderless soft-tinted rounded card;\n // the root separates them with a 2px gap (the gap IS the separator).\n 'group-data-[variant=soft]/accordion:rounded-md group-data-[variant=soft]/accordion:bg-gray-a2',\n // surface + outline share ONE glued-panel frame: full thin border around the\n // stack (sides on all, top on each as divider/frame, bottom on the last),\n // first/last round the outer corners. surface fills it (opaque bg); outline\n // leaves it transparent.\n 'group-data-[variant=surface]/accordion:bg-gray-2',\n 'group-data-[variant=surface]/accordion:border-x group-data-[variant=surface]/accordion:border-t group-data-[variant=surface]/accordion:border-gray-a6 group-data-[variant=surface]/accordion:first:rounded-t-md group-data-[variant=surface]/accordion:last:rounded-b-md group-data-[variant=surface]/accordion:last:border-b',\n 'group-data-[variant=outline]/accordion:border-x group-data-[variant=outline]/accordion:border-t group-data-[variant=outline]/accordion:border-gray-a6 group-data-[variant=outline]/accordion:first:rounded-t-md group-data-[variant=outline]/accordion:last:rounded-b-md group-data-[variant=outline]/accordion:last:border-b',\n className,\n )}\n {...props}\n />\n )\n}\n\ntype AccordionTriggerProps = React.ComponentProps<\n typeof AccordionPrimitive.Trigger\n>\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: AccordionTriggerProps) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n // WCAG 2.5.5: min 44px touch target — a HARD floor (min-h-[2.75rem], not\n // min-h-11, which scales below 44px under dense/scaled knobs). py/text still\n // scale with the spacing + scaling knobs, growing the target past 44px.\n // No text underline (was hover:underline).\n 'flex min-h-[2.75rem] flex-1 cursor-pointer items-center justify-between gap-4 py-3 text-left font-medium text-gray-12',\n // default focus style (matches Button): 2px ring + 2px offset, accent colour\n 'focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden',\n 'disabled:pointer-events-none disabled:opacity-50',\n // horizontal padding sits INSIDE the chrome (soft/surface/outline); ghost\n // keeps the label flush (\"just plain text and spacing\").\n 'group-data-[variant=outline]/accordion:px-4 group-data-[variant=soft]/accordion:px-4 group-data-[variant=surface]/accordion:px-4',\n // chevron (last child) flips when open\n '[&[data-panel-open]>:last-child]:rotate-180',\n className,\n )}\n {...props}\n >\n {children}\n <MaterialSymbol\n className=\"shrink-0 text-gray-11 transition-transform duration-200 motion-reduce:transition-none\"\n name=\"expand_more\"\n />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\ntype AccordionContentProps = React.ComponentProps<\n typeof AccordionPrimitive.Panel\n>\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: AccordionContentProps) {\n return (\n <AccordionPrimitive.Panel\n data-slot=\"accordion-content\"\n // Base UI sets --accordion-panel-height + starting/ending styles on the\n // panel; the height transition replaces the radix keyframe animation.\n className=\"h-(--accordion-panel-height) overflow-hidden text-sm text-gray-11 transition-[height] duration-200 ease-out data-ending-style:h-0 data-starting-style:h-0 motion-reduce:transition-none\"\n {...props}\n >\n {/* padding aligns with the trigger: flush for ghost, inside the chrome otherwise */}\n <div\n className={cn(\n 'pb-4 group-data-[variant=outline]/accordion:px-4 group-data-[variant=soft]/accordion:px-4 group-data-[variant=surface]/accordion:px-4',\n className,\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Panel>\n )\n}\n\nexport { Accordion, AccordionContent, AccordionItem, AccordionTrigger }\nexport type { AccordionProps, AccordionVariant }\n"],"mappings":";;;;;;;;;;AAoBA,SAAS,UAAU,EAAE,WAAW,UAAU,QAAQ,GAAG,SAAyB;AAC5E,QACE,iBAAA,GAAA,kBAAA,KAACA,yBAAAA,UAAmB,MAApB;EACE,aAAU;EAGV,gBAAc;EACd,YAAA,GAAA,OAAA,IACE,mBAGA,qFACA,UACD;EACD,GAAI;EACJ,CAAA;;AAMN,SAAS,cAAc,EAAE,WAAW,GAAG,SAA6B;AAClE,QACE,iBAAA,GAAA,kBAAA,KAACA,yBAAAA,UAAmB,MAApB;EACE,aAAU;EACV,YAAA,GAAA,OAAA,IASE,iGAKA,oDACA,iUACA,iUACA,UACD;EACD,GAAI;EACJ,CAAA;;AAQN,SAAS,iBAAiB,EACxB,WACA,UACA,GAAG,SACqB;AACxB,QACE,iBAAA,GAAA,kBAAA,KAACA,yBAAAA,UAAmB,QAApB;EAA2B,WAAU;YACnC,iBAAA,GAAA,kBAAA,MAACA,yBAAAA,UAAmB,SAApB;GACE,aAAU;GACV,YAAA,GAAA,OAAA,IAKE,yHAEA,iFACA,oDAGA,oIAEA,+CACA,UACD;GACD,GAAI;aAlBN,CAoBG,UACD,iBAAA,GAAA,kBAAA,KAACC,8BAAAA,gBAAD;IACE,WAAU;IACV,MAAK;IACL,CAAA,CACyB;;EACH,CAAA;;AAQhC,SAAS,iBAAiB,EACxB,WACA,UACA,GAAG,SACqB;AACxB,QACE,iBAAA,GAAA,kBAAA,KAACD,yBAAAA,UAAmB,OAApB;EACE,aAAU;EAGV,WAAU;EACV,GAAI;YAGJ,iBAAA,GAAA,kBAAA,KAAC,OAAD;GACE,YAAA,GAAA,OAAA,IACE,yIACA,UACD;GAEA;GACG,CAAA;EACmB,CAAA"}
1
+ {"version":3,"file":"accordion.cjs","names":["AccordionPrimitive","MaterialSymbol"],"sources":["../../src/components/accordion.tsx"],"sourcesContent":["import { Accordion as AccordionPrimitive } from '@base-ui/react/accordion'\nimport * as React from 'react'\nimport { MaterialSymbol } from '../icons/material-symbol'\nimport { cn } from '../utils/cn'\n\ntype AccordionVariant = 'ghost' | 'soft' | 'surface' | 'outline'\n\ntype AccordionProps = React.ComponentProps<typeof AccordionPrimitive.Root> & {\n /**\n * Container chrome (neutral):\n * - `ghost` — no border/fill, just the trigger + spacing;\n * - `soft` (default) — separate soft-tinted rounded cards, 2px gap between them;\n * - `surface` — items glued into one bordered panel with an opaque fill;\n * - `outline` — the same glued bordered panel, but no fill (transparent).\n * A `variant` prop, NOT the ambient `data-style` knob — that would cascade into\n * the panel content. Spacing + scaling still come from the ambient knobs.\n */\n variant?: AccordionVariant\n}\n\nfunction Accordion({ className, variant = 'soft', ...props }: AccordionProps) {\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n // group/accordion + data-variant drive every item/trigger's per-variant\n // chrome; soft stacks its separate cards with a gap (below).\n data-variant={variant}\n className={cn(\n 'group/accordion',\n // soft = separate cards → stack them with a small (2px) gap. surface/outline\n // glue their items into one bordered panel (default block, no gap).\n 'data-[variant=soft]:flex data-[variant=soft]:flex-col data-[variant=soft]:gap-0.5',\n className,\n )}\n {...props}\n />\n )\n}\n\ntype AccordionItemProps = React.ComponentProps<typeof AccordionPrimitive.Item>\n\nfunction AccordionItem({ className, ...props }: AccordionItemProps) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\n // NEUTRAL container chrome per the accordion variant (group/accordion) — mirrors\n // ListItem's group-data-[variant=X]/list: block (list.tsx); keep both in sync if\n // this pattern changes. ghost carries no chrome. Radius = rounded-md (tracks the\n // radius knob but never goes fully round). No text underline / per-item separator\n // anymore.\n\n // soft (default): each item is its own borderless soft-tinted rounded card;\n // the root separates them with a 2px gap (the gap IS the separator).\n 'group-data-[variant=soft]/accordion:rounded-md group-data-[variant=soft]/accordion:bg-gray-a2 dark:group-data-[variant=soft]/accordion:bg-gray-a3',\n // surface + outline share ONE glued-panel frame: full thin border around the\n // stack (sides on all, top on each as divider/frame, bottom on the last),\n // first/last round the outer corners. surface fills it (opaque bg); outline\n // leaves it transparent.\n 'group-data-[variant=surface]/accordion:bg-gray-2',\n 'group-data-[variant=surface]/accordion:border-x group-data-[variant=surface]/accordion:border-t group-data-[variant=surface]/accordion:border-gray-a6 group-data-[variant=surface]/accordion:first:rounded-t-md group-data-[variant=surface]/accordion:last:rounded-b-md group-data-[variant=surface]/accordion:last:border-b',\n 'group-data-[variant=outline]/accordion:border-x group-data-[variant=outline]/accordion:border-t group-data-[variant=outline]/accordion:border-gray-a6 group-data-[variant=outline]/accordion:first:rounded-t-md group-data-[variant=outline]/accordion:last:rounded-b-md group-data-[variant=outline]/accordion:last:border-b',\n className,\n )}\n {...props}\n />\n )\n}\n\ntype AccordionTriggerProps = React.ComponentProps<\n typeof AccordionPrimitive.Trigger\n>\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: AccordionTriggerProps) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n // WCAG 2.5.5: min 44px touch target — a HARD floor (min-h-[2.75rem], not\n // min-h-11, which scales below 44px under dense/scaled knobs). py/text still\n // scale with the spacing + scaling knobs, growing the target past 44px.\n // No text underline (was hover:underline).\n 'flex min-h-[2.75rem] flex-1 cursor-pointer items-center justify-between gap-4 py-3 text-left font-medium text-gray-12',\n // default focus style (matches Button): 2px ring + 2px offset, accent colour\n 'rounded-md focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden',\n 'disabled:pointer-events-none disabled:opacity-50',\n // horizontal padding sits INSIDE the chrome (soft/surface/outline); ghost\n // keeps the label flush (\"just plain text and spacing\").\n 'group-data-[variant=outline]/accordion:px-4 group-data-[variant=soft]/accordion:px-4 group-data-[variant=surface]/accordion:px-4',\n // chevron (last child) flips when open\n '[&[data-panel-open]>:last-child]:rotate-180',\n className,\n )}\n {...props}\n >\n {children}\n <MaterialSymbol\n className=\"shrink-0 text-gray-11 transition-transform duration-200 motion-reduce:transition-none\"\n name=\"expand_more\"\n />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\ntype AccordionContentProps = React.ComponentProps<\n typeof AccordionPrimitive.Panel\n>\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: AccordionContentProps) {\n return (\n <AccordionPrimitive.Panel\n data-slot=\"accordion-content\"\n // Base UI sets --accordion-panel-height + starting/ending styles on the\n // panel; the height transition replaces the radix keyframe animation.\n className=\"h-(--accordion-panel-height) overflow-hidden text-sm text-gray-11 transition-[height] duration-200 ease-out data-ending-style:h-0 data-starting-style:h-0 motion-reduce:transition-none\"\n {...props}\n >\n {/* padding aligns with the trigger: flush for ghost, inside the chrome otherwise */}\n <div\n className={cn(\n 'pb-4 group-data-[variant=outline]/accordion:px-4 group-data-[variant=soft]/accordion:px-4 group-data-[variant=surface]/accordion:px-4',\n className,\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Panel>\n )\n}\n\nexport { Accordion, AccordionContent, AccordionItem, AccordionTrigger }\nexport type { AccordionProps, AccordionVariant }\n"],"mappings":";;;;;;;;;;AAoBA,SAAS,UAAU,EAAE,WAAW,UAAU,QAAQ,GAAG,SAAyB;AAC5E,QACE,iBAAA,GAAA,kBAAA,KAACA,yBAAAA,UAAmB,MAApB;EACE,aAAU;EAGV,gBAAc;EACd,YAAA,GAAA,OAAA,IACE,mBAGA,qFACA,UACD;EACD,GAAI;EACJ,CAAA;;AAMN,SAAS,cAAc,EAAE,WAAW,GAAG,SAA6B;AAClE,QACE,iBAAA,GAAA,kBAAA,KAACA,yBAAAA,UAAmB,MAApB;EACE,aAAU;EACV,YAAA,GAAA,OAAA,IASE,qJAKA,oDACA,iUACA,iUACA,UACD;EACD,GAAI;EACJ,CAAA;;AAQN,SAAS,iBAAiB,EACxB,WACA,UACA,GAAG,SACqB;AACxB,QACE,iBAAA,GAAA,kBAAA,KAACA,yBAAAA,UAAmB,QAApB;EAA2B,WAAU;YACnC,iBAAA,GAAA,kBAAA,MAACA,yBAAAA,UAAmB,SAApB;GACE,aAAU;GACV,YAAA,GAAA,OAAA,IAKE,yHAEA,4FACA,oDAGA,oIAEA,+CACA,UACD;GACD,GAAI;aAlBN,CAoBG,UACD,iBAAA,GAAA,kBAAA,KAACC,8BAAAA,gBAAD;IACE,WAAU;IACV,MAAK;IACL,CAAA,CACyB;;EACH,CAAA;;AAQhC,SAAS,iBAAiB,EACxB,WACA,UACA,GAAG,SACqB;AACxB,QACE,iBAAA,GAAA,kBAAA,KAACD,yBAAAA,UAAmB,OAApB;EACE,aAAU;EAGV,WAAU;EACV,GAAI;YAGJ,iBAAA,GAAA,kBAAA,KAAC,OAAD;GACE,YAAA,GAAA,OAAA,IACE,yIACA,UACD;GAEA;GACG,CAAA;EACmB,CAAA"}
@@ -1,8 +1,8 @@
1
1
  "use client";
2
2
 
3
+ import { Accordion as Accordion$1 } from "@base-ui/react/accordion";
3
4
  import * as React$1 from "react";
4
5
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
5
- import { Accordion as Accordion$1 } from "@base-ui/react/accordion";
6
6
 
7
7
  //#region src/components/accordion.d.ts
8
8
  type AccordionVariant = 'ghost' | 'soft' | 'surface' | 'outline';
@@ -1,9 +1,9 @@
1
1
  "use client";
2
2
  import { cn } from "../utils/cn.js";
3
3
  import { MaterialSymbol } from "../icons/material-symbol.js";
4
+ import { Accordion as Accordion$1 } from "@base-ui/react/accordion";
4
5
  import "react";
5
6
  import { jsx, jsxs } from "react/jsx-runtime";
6
- import { Accordion as Accordion$1 } from "@base-ui/react/accordion";
7
7
  //#region src/components/accordion.tsx
8
8
  function Accordion({ className, variant = "soft", ...props }) {
9
9
  return /* @__PURE__ */ jsx(Accordion$1.Root, {
@@ -16,7 +16,7 @@ function Accordion({ className, variant = "soft", ...props }) {
16
16
  function AccordionItem({ className, ...props }) {
17
17
  return /* @__PURE__ */ jsx(Accordion$1.Item, {
18
18
  "data-slot": "accordion-item",
19
- className: cn("group-data-[variant=soft]/accordion:rounded-md group-data-[variant=soft]/accordion:bg-gray-a2", "group-data-[variant=surface]/accordion:bg-gray-2", "group-data-[variant=surface]/accordion:border-x group-data-[variant=surface]/accordion:border-t group-data-[variant=surface]/accordion:border-gray-a6 group-data-[variant=surface]/accordion:first:rounded-t-md group-data-[variant=surface]/accordion:last:rounded-b-md group-data-[variant=surface]/accordion:last:border-b", "group-data-[variant=outline]/accordion:border-x group-data-[variant=outline]/accordion:border-t group-data-[variant=outline]/accordion:border-gray-a6 group-data-[variant=outline]/accordion:first:rounded-t-md group-data-[variant=outline]/accordion:last:rounded-b-md group-data-[variant=outline]/accordion:last:border-b", className),
19
+ className: cn("group-data-[variant=soft]/accordion:rounded-md group-data-[variant=soft]/accordion:bg-gray-a2 dark:group-data-[variant=soft]/accordion:bg-gray-a3", "group-data-[variant=surface]/accordion:bg-gray-2", "group-data-[variant=surface]/accordion:border-x group-data-[variant=surface]/accordion:border-t group-data-[variant=surface]/accordion:border-gray-a6 group-data-[variant=surface]/accordion:first:rounded-t-md group-data-[variant=surface]/accordion:last:rounded-b-md group-data-[variant=surface]/accordion:last:border-b", "group-data-[variant=outline]/accordion:border-x group-data-[variant=outline]/accordion:border-t group-data-[variant=outline]/accordion:border-gray-a6 group-data-[variant=outline]/accordion:first:rounded-t-md group-data-[variant=outline]/accordion:last:rounded-b-md group-data-[variant=outline]/accordion:last:border-b", className),
20
20
  ...props
21
21
  });
22
22
  }
@@ -25,7 +25,7 @@ function AccordionTrigger({ className, children, ...props }) {
25
25
  className: "flex",
26
26
  children: /* @__PURE__ */ jsxs(Accordion$1.Trigger, {
27
27
  "data-slot": "accordion-trigger",
28
- className: cn("flex min-h-[2.75rem] flex-1 cursor-pointer items-center justify-between gap-4 py-3 text-left font-medium text-gray-12", "focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden", "disabled:pointer-events-none disabled:opacity-50", "group-data-[variant=outline]/accordion:px-4 group-data-[variant=soft]/accordion:px-4 group-data-[variant=surface]/accordion:px-4", "[&[data-panel-open]>:last-child]:rotate-180", className),
28
+ className: cn("flex min-h-[2.75rem] flex-1 cursor-pointer items-center justify-between gap-4 py-3 text-left font-medium text-gray-12", "rounded-md focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden", "disabled:pointer-events-none disabled:opacity-50", "group-data-[variant=outline]/accordion:px-4 group-data-[variant=soft]/accordion:px-4 group-data-[variant=surface]/accordion:px-4", "[&[data-panel-open]>:last-child]:rotate-180", className),
29
29
  ...props,
30
30
  children: [children, /* @__PURE__ */ jsx(MaterialSymbol, {
31
31
  className: "shrink-0 text-gray-11 transition-transform duration-200 motion-reduce:transition-none",
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.js","names":["AccordionPrimitive"],"sources":["../../src/components/accordion.tsx"],"sourcesContent":["import { Accordion as AccordionPrimitive } from '@base-ui/react/accordion'\nimport * as React from 'react'\nimport { MaterialSymbol } from '../icons/material-symbol'\nimport { cn } from '../utils/cn'\n\ntype AccordionVariant = 'ghost' | 'soft' | 'surface' | 'outline'\n\ntype AccordionProps = React.ComponentProps<typeof AccordionPrimitive.Root> & {\n /**\n * Container chrome (neutral):\n * - `ghost` — no border/fill, just the trigger + spacing;\n * - `soft` (default) — separate soft-tinted rounded cards, 2px gap between them;\n * - `surface` — items glued into one bordered panel with an opaque fill;\n * - `outline` — the same glued bordered panel, but no fill (transparent).\n * A `variant` prop, NOT the ambient `data-style` knob — that would cascade into\n * the panel content. Spacing + scaling still come from the ambient knobs.\n */\n variant?: AccordionVariant\n}\n\nfunction Accordion({ className, variant = 'soft', ...props }: AccordionProps) {\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n // group/accordion + data-variant drive every item/trigger's per-variant\n // chrome; soft stacks its separate cards with a gap (below).\n data-variant={variant}\n className={cn(\n 'group/accordion',\n // soft = separate cards → stack them with a small (2px) gap. surface/outline\n // glue their items into one bordered panel (default block, no gap).\n 'data-[variant=soft]:flex data-[variant=soft]:flex-col data-[variant=soft]:gap-0.5',\n className,\n )}\n {...props}\n />\n )\n}\n\ntype AccordionItemProps = React.ComponentProps<typeof AccordionPrimitive.Item>\n\nfunction AccordionItem({ className, ...props }: AccordionItemProps) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\n // NEUTRAL container chrome per the accordion variant (group/accordion) — mirrors\n // ListItem's group-data-[variant=X]/list: block (list.tsx); keep both in sync if\n // this pattern changes. ghost carries no chrome. Radius = rounded-md (tracks the\n // radius knob but never goes fully round). No text underline / per-item separator\n // anymore.\n\n // soft (default): each item is its own borderless soft-tinted rounded card;\n // the root separates them with a 2px gap (the gap IS the separator).\n 'group-data-[variant=soft]/accordion:rounded-md group-data-[variant=soft]/accordion:bg-gray-a2',\n // surface + outline share ONE glued-panel frame: full thin border around the\n // stack (sides on all, top on each as divider/frame, bottom on the last),\n // first/last round the outer corners. surface fills it (opaque bg); outline\n // leaves it transparent.\n 'group-data-[variant=surface]/accordion:bg-gray-2',\n 'group-data-[variant=surface]/accordion:border-x group-data-[variant=surface]/accordion:border-t group-data-[variant=surface]/accordion:border-gray-a6 group-data-[variant=surface]/accordion:first:rounded-t-md group-data-[variant=surface]/accordion:last:rounded-b-md group-data-[variant=surface]/accordion:last:border-b',\n 'group-data-[variant=outline]/accordion:border-x group-data-[variant=outline]/accordion:border-t group-data-[variant=outline]/accordion:border-gray-a6 group-data-[variant=outline]/accordion:first:rounded-t-md group-data-[variant=outline]/accordion:last:rounded-b-md group-data-[variant=outline]/accordion:last:border-b',\n className,\n )}\n {...props}\n />\n )\n}\n\ntype AccordionTriggerProps = React.ComponentProps<\n typeof AccordionPrimitive.Trigger\n>\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: AccordionTriggerProps) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n // WCAG 2.5.5: min 44px touch target — a HARD floor (min-h-[2.75rem], not\n // min-h-11, which scales below 44px under dense/scaled knobs). py/text still\n // scale with the spacing + scaling knobs, growing the target past 44px.\n // No text underline (was hover:underline).\n 'flex min-h-[2.75rem] flex-1 cursor-pointer items-center justify-between gap-4 py-3 text-left font-medium text-gray-12',\n // default focus style (matches Button): 2px ring + 2px offset, accent colour\n 'focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden',\n 'disabled:pointer-events-none disabled:opacity-50',\n // horizontal padding sits INSIDE the chrome (soft/surface/outline); ghost\n // keeps the label flush (\"just plain text and spacing\").\n 'group-data-[variant=outline]/accordion:px-4 group-data-[variant=soft]/accordion:px-4 group-data-[variant=surface]/accordion:px-4',\n // chevron (last child) flips when open\n '[&[data-panel-open]>:last-child]:rotate-180',\n className,\n )}\n {...props}\n >\n {children}\n <MaterialSymbol\n className=\"shrink-0 text-gray-11 transition-transform duration-200 motion-reduce:transition-none\"\n name=\"expand_more\"\n />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\ntype AccordionContentProps = React.ComponentProps<\n typeof AccordionPrimitive.Panel\n>\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: AccordionContentProps) {\n return (\n <AccordionPrimitive.Panel\n data-slot=\"accordion-content\"\n // Base UI sets --accordion-panel-height + starting/ending styles on the\n // panel; the height transition replaces the radix keyframe animation.\n className=\"h-(--accordion-panel-height) overflow-hidden text-sm text-gray-11 transition-[height] duration-200 ease-out data-ending-style:h-0 data-starting-style:h-0 motion-reduce:transition-none\"\n {...props}\n >\n {/* padding aligns with the trigger: flush for ghost, inside the chrome otherwise */}\n <div\n className={cn(\n 'pb-4 group-data-[variant=outline]/accordion:px-4 group-data-[variant=soft]/accordion:px-4 group-data-[variant=surface]/accordion:px-4',\n className,\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Panel>\n )\n}\n\nexport { Accordion, AccordionContent, AccordionItem, AccordionTrigger }\nexport type { AccordionProps, AccordionVariant }\n"],"mappings":";;;;;;;AAoBA,SAAS,UAAU,EAAE,WAAW,UAAU,QAAQ,GAAG,SAAyB;AAC5E,QACE,oBAACA,YAAmB,MAApB;EACE,aAAU;EAGV,gBAAc;EACd,WAAW,GACT,mBAGA,qFACA,UACD;EACD,GAAI;EACJ,CAAA;;AAMN,SAAS,cAAc,EAAE,WAAW,GAAG,SAA6B;AAClE,QACE,oBAACA,YAAmB,MAApB;EACE,aAAU;EACV,WAAW,GAST,iGAKA,oDACA,iUACA,iUACA,UACD;EACD,GAAI;EACJ,CAAA;;AAQN,SAAS,iBAAiB,EACxB,WACA,UACA,GAAG,SACqB;AACxB,QACE,oBAACA,YAAmB,QAApB;EAA2B,WAAU;YACnC,qBAACA,YAAmB,SAApB;GACE,aAAU;GACV,WAAW,GAKT,yHAEA,iFACA,oDAGA,oIAEA,+CACA,UACD;GACD,GAAI;aAlBN,CAoBG,UACD,oBAAC,gBAAD;IACE,WAAU;IACV,MAAK;IACL,CAAA,CACyB;;EACH,CAAA;;AAQhC,SAAS,iBAAiB,EACxB,WACA,UACA,GAAG,SACqB;AACxB,QACE,oBAACA,YAAmB,OAApB;EACE,aAAU;EAGV,WAAU;EACV,GAAI;YAGJ,oBAAC,OAAD;GACE,WAAW,GACT,yIACA,UACD;GAEA;GACG,CAAA;EACmB,CAAA"}
1
+ {"version":3,"file":"accordion.js","names":["AccordionPrimitive"],"sources":["../../src/components/accordion.tsx"],"sourcesContent":["import { Accordion as AccordionPrimitive } from '@base-ui/react/accordion'\nimport * as React from 'react'\nimport { MaterialSymbol } from '../icons/material-symbol'\nimport { cn } from '../utils/cn'\n\ntype AccordionVariant = 'ghost' | 'soft' | 'surface' | 'outline'\n\ntype AccordionProps = React.ComponentProps<typeof AccordionPrimitive.Root> & {\n /**\n * Container chrome (neutral):\n * - `ghost` — no border/fill, just the trigger + spacing;\n * - `soft` (default) — separate soft-tinted rounded cards, 2px gap between them;\n * - `surface` — items glued into one bordered panel with an opaque fill;\n * - `outline` — the same glued bordered panel, but no fill (transparent).\n * A `variant` prop, NOT the ambient `data-style` knob — that would cascade into\n * the panel content. Spacing + scaling still come from the ambient knobs.\n */\n variant?: AccordionVariant\n}\n\nfunction Accordion({ className, variant = 'soft', ...props }: AccordionProps) {\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n // group/accordion + data-variant drive every item/trigger's per-variant\n // chrome; soft stacks its separate cards with a gap (below).\n data-variant={variant}\n className={cn(\n 'group/accordion',\n // soft = separate cards → stack them with a small (2px) gap. surface/outline\n // glue their items into one bordered panel (default block, no gap).\n 'data-[variant=soft]:flex data-[variant=soft]:flex-col data-[variant=soft]:gap-0.5',\n className,\n )}\n {...props}\n />\n )\n}\n\ntype AccordionItemProps = React.ComponentProps<typeof AccordionPrimitive.Item>\n\nfunction AccordionItem({ className, ...props }: AccordionItemProps) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\n // NEUTRAL container chrome per the accordion variant (group/accordion) — mirrors\n // ListItem's group-data-[variant=X]/list: block (list.tsx); keep both in sync if\n // this pattern changes. ghost carries no chrome. Radius = rounded-md (tracks the\n // radius knob but never goes fully round). No text underline / per-item separator\n // anymore.\n\n // soft (default): each item is its own borderless soft-tinted rounded card;\n // the root separates them with a 2px gap (the gap IS the separator).\n 'group-data-[variant=soft]/accordion:rounded-md group-data-[variant=soft]/accordion:bg-gray-a2 dark:group-data-[variant=soft]/accordion:bg-gray-a3',\n // surface + outline share ONE glued-panel frame: full thin border around the\n // stack (sides on all, top on each as divider/frame, bottom on the last),\n // first/last round the outer corners. surface fills it (opaque bg); outline\n // leaves it transparent.\n 'group-data-[variant=surface]/accordion:bg-gray-2',\n 'group-data-[variant=surface]/accordion:border-x group-data-[variant=surface]/accordion:border-t group-data-[variant=surface]/accordion:border-gray-a6 group-data-[variant=surface]/accordion:first:rounded-t-md group-data-[variant=surface]/accordion:last:rounded-b-md group-data-[variant=surface]/accordion:last:border-b',\n 'group-data-[variant=outline]/accordion:border-x group-data-[variant=outline]/accordion:border-t group-data-[variant=outline]/accordion:border-gray-a6 group-data-[variant=outline]/accordion:first:rounded-t-md group-data-[variant=outline]/accordion:last:rounded-b-md group-data-[variant=outline]/accordion:last:border-b',\n className,\n )}\n {...props}\n />\n )\n}\n\ntype AccordionTriggerProps = React.ComponentProps<\n typeof AccordionPrimitive.Trigger\n>\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: AccordionTriggerProps) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n // WCAG 2.5.5: min 44px touch target — a HARD floor (min-h-[2.75rem], not\n // min-h-11, which scales below 44px under dense/scaled knobs). py/text still\n // scale with the spacing + scaling knobs, growing the target past 44px.\n // No text underline (was hover:underline).\n 'flex min-h-[2.75rem] flex-1 cursor-pointer items-center justify-between gap-4 py-3 text-left font-medium text-gray-12',\n // default focus style (matches Button): 2px ring + 2px offset, accent colour\n 'rounded-md focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden',\n 'disabled:pointer-events-none disabled:opacity-50',\n // horizontal padding sits INSIDE the chrome (soft/surface/outline); ghost\n // keeps the label flush (\"just plain text and spacing\").\n 'group-data-[variant=outline]/accordion:px-4 group-data-[variant=soft]/accordion:px-4 group-data-[variant=surface]/accordion:px-4',\n // chevron (last child) flips when open\n '[&[data-panel-open]>:last-child]:rotate-180',\n className,\n )}\n {...props}\n >\n {children}\n <MaterialSymbol\n className=\"shrink-0 text-gray-11 transition-transform duration-200 motion-reduce:transition-none\"\n name=\"expand_more\"\n />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\ntype AccordionContentProps = React.ComponentProps<\n typeof AccordionPrimitive.Panel\n>\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: AccordionContentProps) {\n return (\n <AccordionPrimitive.Panel\n data-slot=\"accordion-content\"\n // Base UI sets --accordion-panel-height + starting/ending styles on the\n // panel; the height transition replaces the radix keyframe animation.\n className=\"h-(--accordion-panel-height) overflow-hidden text-sm text-gray-11 transition-[height] duration-200 ease-out data-ending-style:h-0 data-starting-style:h-0 motion-reduce:transition-none\"\n {...props}\n >\n {/* padding aligns with the trigger: flush for ghost, inside the chrome otherwise */}\n <div\n className={cn(\n 'pb-4 group-data-[variant=outline]/accordion:px-4 group-data-[variant=soft]/accordion:px-4 group-data-[variant=surface]/accordion:px-4',\n className,\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Panel>\n )\n}\n\nexport { Accordion, AccordionContent, AccordionItem, AccordionTrigger }\nexport type { AccordionProps, AccordionVariant }\n"],"mappings":";;;;;;;AAoBA,SAAS,UAAU,EAAE,WAAW,UAAU,QAAQ,GAAG,SAAyB;AAC5E,QACE,oBAACA,YAAmB,MAApB;EACE,aAAU;EAGV,gBAAc;EACd,WAAW,GACT,mBAGA,qFACA,UACD;EACD,GAAI;EACJ,CAAA;;AAMN,SAAS,cAAc,EAAE,WAAW,GAAG,SAA6B;AAClE,QACE,oBAACA,YAAmB,MAApB;EACE,aAAU;EACV,WAAW,GAST,qJAKA,oDACA,iUACA,iUACA,UACD;EACD,GAAI;EACJ,CAAA;;AAQN,SAAS,iBAAiB,EACxB,WACA,UACA,GAAG,SACqB;AACxB,QACE,oBAACA,YAAmB,QAApB;EAA2B,WAAU;YACnC,qBAACA,YAAmB,SAApB;GACE,aAAU;GACV,WAAW,GAKT,yHAEA,4FACA,oDAGA,oIAEA,+CACA,UACD;GACD,GAAI;aAlBN,CAoBG,UACD,oBAAC,gBAAD;IACE,WAAU;IACV,MAAK;IACL,CAAA,CACyB;;EACH,CAAA;;AAQhC,SAAS,iBAAiB,EACxB,WACA,UACA,GAAG,SACqB;AACxB,QACE,oBAACA,YAAmB,OAApB;EACE,aAAU;EAGV,WAAU;EACV,GAAI;YAGJ,oBAAC,OAAD;GACE,WAAW,GACT,yIACA,UACD;GAEA;GACG,CAAA;EACmB,CAAA"}
@@ -9,7 +9,7 @@ import { useRender } from "@base-ui/react/use-render";
9
9
 
10
10
  //#region src/components/attachment.d.ts
11
11
  declare const attachmentVariants: (props?: ({
12
- size?: "sm" | "default" | "xs" | null | undefined;
12
+ size?: "default" | "sm" | "xs" | null | undefined;
13
13
  orientation?: "horizontal" | "vertical" | null | undefined;
14
14
  } & _$class_variance_authority_types0.ClassProp) | undefined) => string;
15
15
  declare function Attachment({
@@ -9,7 +9,7 @@ import * as _$class_variance_authority_types0 from "class-variance-authority/typ
9
9
 
10
10
  //#region src/components/attachment.d.ts
11
11
  declare const attachmentVariants: (props?: ({
12
- size?: "sm" | "default" | "xs" | null | undefined;
12
+ size?: "default" | "sm" | "xs" | null | undefined;
13
13
  orientation?: "horizontal" | "vertical" | null | undefined;
14
14
  } & _$class_variance_authority_types0.ClassProp) | undefined) => string;
15
15
  declare function Attachment({
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { useReducedMotion } from "../hooks/use-reduced-motion.js";
3
2
  import { cn } from "../utils/cn.js";
3
+ import { useReducedMotion } from "../hooks/use-reduced-motion.js";
4
4
  import { localeNumberFormat } from "../utils/format.js";
5
5
  import { buildYAxisScale, formatYAxisTick } from "../utils/chart-scale.js";
6
6
  import { ChartTooltipCard, clampTooltipPosition, useMeasuredSize } from "./chart.js";
@@ -34,7 +34,7 @@ const BreadcrumbsLink = ({ className, render, ...rest }) => {
34
34
  return (0, _base_ui_react_use_render.useRender)({
35
35
  defaultTagName: "a",
36
36
  render,
37
- props: (0, _base_ui_react_merge_props.mergeProps)({ className: (0, cnfast.cn)("transition-colors hover:text-gray", className) }, rest)
37
+ props: (0, _base_ui_react_merge_props.mergeProps)({ className: (0, cnfast.cn)("rounded-xs transition-colors hover:text-gray focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden", className) }, rest)
38
38
  });
39
39
  };
40
40
  /** Current page marker — the trailing breadcrumb the user is on. */
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbs.cjs","names":[],"sources":["../../src/components/breadcrumbs.tsx"],"sourcesContent":["import { mergeProps } from '@base-ui/react/merge-props'\nimport { useRender } from '@base-ui/react/use-render'\nimport { cn } from '../utils/cn'\n\nconst Breadcrumbs = ({\n className,\n 'aria-label': ariaLabel = 'Breadcrumb',\n ...rest\n}: React.ComponentProps<'nav'>) => {\n return <nav aria-label={ariaLabel} className={cn(className)} {...rest} />\n}\n\nconst BreadcrumbsList = ({\n className,\n ...rest\n}: React.ComponentProps<'ol'>) => {\n return (\n <ol\n className={cn(\n 'flex flex-wrap items-center gap-1.5 text-sm text-gray-light',\n className,\n )}\n {...rest}\n />\n )\n}\n\nconst BreadcrumbsItem = ({\n className,\n ...rest\n}: React.ComponentProps<'li'>) => {\n return <li className={cn('flex items-center gap-1.5', className)} {...rest} />\n}\n\n/**\n * Link inside a breadcrumb. Pass `render` to render any router-specific link\n * component (TanStack `Link`, Next `Link`, plain `<a>`, …) and inherit the\n * breadcrumb link styling. Without `render` it renders as a plain anchor.\n */\nconst BreadcrumbsLink = ({\n className,\n render,\n ...rest\n}: useRender.ComponentProps<'a'>) => {\n return useRender({\n defaultTagName: 'a',\n render,\n props: mergeProps<'a'>(\n { className: cn('transition-colors hover:text-gray', className) },\n rest,\n ),\n })\n}\n\n/** Current page marker — the trailing breadcrumb the user is on. */\nconst BreadcrumbsPage = ({\n className,\n ...rest\n}: React.ComponentProps<'span'>) => {\n return (\n <span\n aria-current=\"page\"\n className={cn('font-medium text-gray', className)}\n {...rest}\n />\n )\n}\n\n/** Visual separator between breadcrumb items. Defaults to \"/\". */\nconst BreadcrumbsSeparator = ({\n children,\n className,\n ...rest\n}: React.ComponentProps<'span'>) => {\n return (\n <span aria-hidden=\"true\" className={cn(className)} {...rest}>\n {children ?? '/'}\n </span>\n )\n}\n\nexport {\n Breadcrumbs,\n BreadcrumbsList,\n BreadcrumbsItem,\n BreadcrumbsLink,\n BreadcrumbsPage,\n BreadcrumbsSeparator,\n}\n"],"mappings":";;;;;;;;AAIA,MAAM,eAAe,EACnB,WACA,cAAc,YAAY,cAC1B,GAAG,WAC8B;AACjC,QAAO,iBAAA,GAAA,kBAAA,KAAC,OAAD;EAAK,cAAY;EAAW,YAAA,GAAA,OAAA,IAAc,UAAU;EAAE,GAAI;EAAQ,CAAA;;AAG3E,MAAM,mBAAmB,EACvB,WACA,GAAG,WAC6B;AAChC,QACE,iBAAA,GAAA,kBAAA,KAAC,MAAD;EACE,YAAA,GAAA,OAAA,IACE,+DACA,UACD;EACD,GAAI;EACJ,CAAA;;AAIN,MAAM,mBAAmB,EACvB,WACA,GAAG,WAC6B;AAChC,QAAO,iBAAA,GAAA,kBAAA,KAAC,MAAD;EAAI,YAAA,GAAA,OAAA,IAAc,6BAA6B,UAAU;EAAE,GAAI;EAAQ,CAAA;;;;;;;AAQhF,MAAM,mBAAmB,EACvB,WACA,QACA,GAAG,WACgC;AACnC,SAAA,GAAA,0BAAA,WAAiB;EACf,gBAAgB;EAChB;EACA,QAAA,GAAA,2BAAA,YACE,EAAE,YAAA,GAAA,OAAA,IAAc,qCAAqC,UAAU,EAAE,EACjE,KACD;EACF,CAAC;;;AAIJ,MAAM,mBAAmB,EACvB,WACA,GAAG,WAC+B;AAClC,QACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;EACE,gBAAa;EACb,YAAA,GAAA,OAAA,IAAc,yBAAyB,UAAU;EACjD,GAAI;EACJ,CAAA;;;AAKN,MAAM,wBAAwB,EAC5B,UACA,WACA,GAAG,WAC+B;AAClC,QACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;EAAM,eAAY;EAAO,YAAA,GAAA,OAAA,IAAc,UAAU;EAAE,GAAI;YACpD,YAAY;EACR,CAAA"}
1
+ {"version":3,"file":"breadcrumbs.cjs","names":[],"sources":["../../src/components/breadcrumbs.tsx"],"sourcesContent":["import { mergeProps } from '@base-ui/react/merge-props'\nimport { useRender } from '@base-ui/react/use-render'\nimport { cn } from '../utils/cn'\n\nconst Breadcrumbs = ({\n className,\n 'aria-label': ariaLabel = 'Breadcrumb',\n ...rest\n}: React.ComponentProps<'nav'>) => {\n return <nav aria-label={ariaLabel} className={cn(className)} {...rest} />\n}\n\nconst BreadcrumbsList = ({\n className,\n ...rest\n}: React.ComponentProps<'ol'>) => {\n return (\n <ol\n className={cn(\n 'flex flex-wrap items-center gap-1.5 text-sm text-gray-light',\n className,\n )}\n {...rest}\n />\n )\n}\n\nconst BreadcrumbsItem = ({\n className,\n ...rest\n}: React.ComponentProps<'li'>) => {\n return <li className={cn('flex items-center gap-1.5', className)} {...rest} />\n}\n\n/**\n * Link inside a breadcrumb. Pass `render` to render any router-specific link\n * component (TanStack `Link`, Next `Link`, plain `<a>`, …) and inherit the\n * breadcrumb link styling. Without `render` it renders as a plain anchor.\n */\nconst BreadcrumbsLink = ({\n className,\n render,\n ...rest\n}: useRender.ComponentProps<'a'>) => {\n return useRender({\n defaultTagName: 'a',\n render,\n props: mergeProps<'a'>(\n {\n className: cn(\n 'rounded-xs transition-colors hover:text-gray focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden',\n className,\n ),\n },\n rest,\n ),\n })\n}\n\n/** Current page marker — the trailing breadcrumb the user is on. */\nconst BreadcrumbsPage = ({\n className,\n ...rest\n}: React.ComponentProps<'span'>) => {\n return (\n <span\n aria-current=\"page\"\n className={cn('font-medium text-gray', className)}\n {...rest}\n />\n )\n}\n\n/** Visual separator between breadcrumb items. Defaults to \"/\". */\nconst BreadcrumbsSeparator = ({\n children,\n className,\n ...rest\n}: React.ComponentProps<'span'>) => {\n return (\n <span aria-hidden=\"true\" className={cn(className)} {...rest}>\n {children ?? '/'}\n </span>\n )\n}\n\nexport {\n Breadcrumbs,\n BreadcrumbsList,\n BreadcrumbsItem,\n BreadcrumbsLink,\n BreadcrumbsPage,\n BreadcrumbsSeparator,\n}\n"],"mappings":";;;;;;;;AAIA,MAAM,eAAe,EACnB,WACA,cAAc,YAAY,cAC1B,GAAG,WAC8B;AACjC,QAAO,iBAAA,GAAA,kBAAA,KAAC,OAAD;EAAK,cAAY;EAAW,YAAA,GAAA,OAAA,IAAc,UAAU;EAAE,GAAI;EAAQ,CAAA;;AAG3E,MAAM,mBAAmB,EACvB,WACA,GAAG,WAC6B;AAChC,QACE,iBAAA,GAAA,kBAAA,KAAC,MAAD;EACE,YAAA,GAAA,OAAA,IACE,+DACA,UACD;EACD,GAAI;EACJ,CAAA;;AAIN,MAAM,mBAAmB,EACvB,WACA,GAAG,WAC6B;AAChC,QAAO,iBAAA,GAAA,kBAAA,KAAC,MAAD;EAAI,YAAA,GAAA,OAAA,IAAc,6BAA6B,UAAU;EAAE,GAAI;EAAQ,CAAA;;;;;;;AAQhF,MAAM,mBAAmB,EACvB,WACA,QACA,GAAG,WACgC;AACnC,SAAA,GAAA,0BAAA,WAAiB;EACf,gBAAgB;EAChB;EACA,QAAA,GAAA,2BAAA,YACE,EACE,YAAA,GAAA,OAAA,IACE,8HACA,UACD,EACF,EACD,KACD;EACF,CAAC;;;AAIJ,MAAM,mBAAmB,EACvB,WACA,GAAG,WAC+B;AAClC,QACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;EACE,gBAAa;EACb,YAAA,GAAA,OAAA,IAAc,yBAAyB,UAAU;EACjD,GAAI;EACJ,CAAA;;;AAKN,MAAM,wBAAwB,EAC5B,UACA,WACA,GAAG,WAC+B;AAClC,QACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;EAAM,eAAY;EAAO,YAAA,GAAA,OAAA,IAAc,UAAU;EAAE,GAAI;YACpD,YAAY;EACR,CAAA"}
@@ -32,7 +32,7 @@ const BreadcrumbsLink = ({ className, render, ...rest }) => {
32
32
  return useRender({
33
33
  defaultTagName: "a",
34
34
  render,
35
- props: mergeProps({ className: cn("transition-colors hover:text-gray", className) }, rest)
35
+ props: mergeProps({ className: cn("rounded-xs transition-colors hover:text-gray focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden", className) }, rest)
36
36
  });
37
37
  };
38
38
  /** Current page marker — the trailing breadcrumb the user is on. */
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbs.js","names":[],"sources":["../../src/components/breadcrumbs.tsx"],"sourcesContent":["import { mergeProps } from '@base-ui/react/merge-props'\nimport { useRender } from '@base-ui/react/use-render'\nimport { cn } from '../utils/cn'\n\nconst Breadcrumbs = ({\n className,\n 'aria-label': ariaLabel = 'Breadcrumb',\n ...rest\n}: React.ComponentProps<'nav'>) => {\n return <nav aria-label={ariaLabel} className={cn(className)} {...rest} />\n}\n\nconst BreadcrumbsList = ({\n className,\n ...rest\n}: React.ComponentProps<'ol'>) => {\n return (\n <ol\n className={cn(\n 'flex flex-wrap items-center gap-1.5 text-sm text-gray-light',\n className,\n )}\n {...rest}\n />\n )\n}\n\nconst BreadcrumbsItem = ({\n className,\n ...rest\n}: React.ComponentProps<'li'>) => {\n return <li className={cn('flex items-center gap-1.5', className)} {...rest} />\n}\n\n/**\n * Link inside a breadcrumb. Pass `render` to render any router-specific link\n * component (TanStack `Link`, Next `Link`, plain `<a>`, …) and inherit the\n * breadcrumb link styling. Without `render` it renders as a plain anchor.\n */\nconst BreadcrumbsLink = ({\n className,\n render,\n ...rest\n}: useRender.ComponentProps<'a'>) => {\n return useRender({\n defaultTagName: 'a',\n render,\n props: mergeProps<'a'>(\n { className: cn('transition-colors hover:text-gray', className) },\n rest,\n ),\n })\n}\n\n/** Current page marker — the trailing breadcrumb the user is on. */\nconst BreadcrumbsPage = ({\n className,\n ...rest\n}: React.ComponentProps<'span'>) => {\n return (\n <span\n aria-current=\"page\"\n className={cn('font-medium text-gray', className)}\n {...rest}\n />\n )\n}\n\n/** Visual separator between breadcrumb items. Defaults to \"/\". */\nconst BreadcrumbsSeparator = ({\n children,\n className,\n ...rest\n}: React.ComponentProps<'span'>) => {\n return (\n <span aria-hidden=\"true\" className={cn(className)} {...rest}>\n {children ?? '/'}\n </span>\n )\n}\n\nexport {\n Breadcrumbs,\n BreadcrumbsList,\n BreadcrumbsItem,\n BreadcrumbsLink,\n BreadcrumbsPage,\n BreadcrumbsSeparator,\n}\n"],"mappings":";;;;;;AAIA,MAAM,eAAe,EACnB,WACA,cAAc,YAAY,cAC1B,GAAG,WAC8B;AACjC,QAAO,oBAAC,OAAD;EAAK,cAAY;EAAW,WAAW,GAAG,UAAU;EAAE,GAAI;EAAQ,CAAA;;AAG3E,MAAM,mBAAmB,EACvB,WACA,GAAG,WAC6B;AAChC,QACE,oBAAC,MAAD;EACE,WAAW,GACT,+DACA,UACD;EACD,GAAI;EACJ,CAAA;;AAIN,MAAM,mBAAmB,EACvB,WACA,GAAG,WAC6B;AAChC,QAAO,oBAAC,MAAD;EAAI,WAAW,GAAG,6BAA6B,UAAU;EAAE,GAAI;EAAQ,CAAA;;;;;;;AAQhF,MAAM,mBAAmB,EACvB,WACA,QACA,GAAG,WACgC;AACnC,QAAO,UAAU;EACf,gBAAgB;EAChB;EACA,OAAO,WACL,EAAE,WAAW,GAAG,qCAAqC,UAAU,EAAE,EACjE,KACD;EACF,CAAC;;;AAIJ,MAAM,mBAAmB,EACvB,WACA,GAAG,WAC+B;AAClC,QACE,oBAAC,QAAD;EACE,gBAAa;EACb,WAAW,GAAG,yBAAyB,UAAU;EACjD,GAAI;EACJ,CAAA;;;AAKN,MAAM,wBAAwB,EAC5B,UACA,WACA,GAAG,WAC+B;AAClC,QACE,oBAAC,QAAD;EAAM,eAAY;EAAO,WAAW,GAAG,UAAU;EAAE,GAAI;YACpD,YAAY;EACR,CAAA"}
1
+ {"version":3,"file":"breadcrumbs.js","names":[],"sources":["../../src/components/breadcrumbs.tsx"],"sourcesContent":["import { mergeProps } from '@base-ui/react/merge-props'\nimport { useRender } from '@base-ui/react/use-render'\nimport { cn } from '../utils/cn'\n\nconst Breadcrumbs = ({\n className,\n 'aria-label': ariaLabel = 'Breadcrumb',\n ...rest\n}: React.ComponentProps<'nav'>) => {\n return <nav aria-label={ariaLabel} className={cn(className)} {...rest} />\n}\n\nconst BreadcrumbsList = ({\n className,\n ...rest\n}: React.ComponentProps<'ol'>) => {\n return (\n <ol\n className={cn(\n 'flex flex-wrap items-center gap-1.5 text-sm text-gray-light',\n className,\n )}\n {...rest}\n />\n )\n}\n\nconst BreadcrumbsItem = ({\n className,\n ...rest\n}: React.ComponentProps<'li'>) => {\n return <li className={cn('flex items-center gap-1.5', className)} {...rest} />\n}\n\n/**\n * Link inside a breadcrumb. Pass `render` to render any router-specific link\n * component (TanStack `Link`, Next `Link`, plain `<a>`, …) and inherit the\n * breadcrumb link styling. Without `render` it renders as a plain anchor.\n */\nconst BreadcrumbsLink = ({\n className,\n render,\n ...rest\n}: useRender.ComponentProps<'a'>) => {\n return useRender({\n defaultTagName: 'a',\n render,\n props: mergeProps<'a'>(\n {\n className: cn(\n 'rounded-xs transition-colors hover:text-gray focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-hidden',\n className,\n ),\n },\n rest,\n ),\n })\n}\n\n/** Current page marker — the trailing breadcrumb the user is on. */\nconst BreadcrumbsPage = ({\n className,\n ...rest\n}: React.ComponentProps<'span'>) => {\n return (\n <span\n aria-current=\"page\"\n className={cn('font-medium text-gray', className)}\n {...rest}\n />\n )\n}\n\n/** Visual separator between breadcrumb items. Defaults to \"/\". */\nconst BreadcrumbsSeparator = ({\n children,\n className,\n ...rest\n}: React.ComponentProps<'span'>) => {\n return (\n <span aria-hidden=\"true\" className={cn(className)} {...rest}>\n {children ?? '/'}\n </span>\n )\n}\n\nexport {\n Breadcrumbs,\n BreadcrumbsList,\n BreadcrumbsItem,\n BreadcrumbsLink,\n BreadcrumbsPage,\n BreadcrumbsSeparator,\n}\n"],"mappings":";;;;;;AAIA,MAAM,eAAe,EACnB,WACA,cAAc,YAAY,cAC1B,GAAG,WAC8B;AACjC,QAAO,oBAAC,OAAD;EAAK,cAAY;EAAW,WAAW,GAAG,UAAU;EAAE,GAAI;EAAQ,CAAA;;AAG3E,MAAM,mBAAmB,EACvB,WACA,GAAG,WAC6B;AAChC,QACE,oBAAC,MAAD;EACE,WAAW,GACT,+DACA,UACD;EACD,GAAI;EACJ,CAAA;;AAIN,MAAM,mBAAmB,EACvB,WACA,GAAG,WAC6B;AAChC,QAAO,oBAAC,MAAD;EAAI,WAAW,GAAG,6BAA6B,UAAU;EAAE,GAAI;EAAQ,CAAA;;;;;;;AAQhF,MAAM,mBAAmB,EACvB,WACA,QACA,GAAG,WACgC;AACnC,QAAO,UAAU;EACf,gBAAgB;EAChB;EACA,OAAO,WACL,EACE,WAAW,GACT,8HACA,UACD,EACF,EACD,KACD;EACF,CAAC;;;AAIJ,MAAM,mBAAmB,EACvB,WACA,GAAG,WAC+B;AAClC,QACE,oBAAC,QAAD;EACE,gBAAa;EACb,WAAW,GAAG,yBAAyB,UAAU;EACjD,GAAI;EACJ,CAAA;;;AAKN,MAAM,wBAAwB,EAC5B,UACA,WACA,GAAG,WAC+B;AAClC,QACE,oBAAC,QAAD;EAAM,eAAY;EAAO,WAAW,GAAG,UAAU;EAAE,GAAI;YACpD,YAAY;EACR,CAAA"}
@@ -12,7 +12,7 @@ declare function BubbleGroup({
12
12
  ...props
13
13
  }: React$1.ComponentProps<'div'>): _$react_jsx_runtime0.JSX.Element;
14
14
  declare const bubbleVariants: (props?: ({
15
- variant?: "default" | "secondary" | "muted" | "tinted" | "outline" | "ghost" | "destructive" | null | undefined;
15
+ variant?: "secondary" | "destructive" | "default" | "ghost" | "outline" | "muted" | "tinted" | null | undefined;
16
16
  } & _$class_variance_authority_types0.ClassProp) | undefined) => string;
17
17
  declare function Bubble({
18
18
  variant,
@@ -12,7 +12,7 @@ declare function BubbleGroup({
12
12
  ...props
13
13
  }: React$1.ComponentProps<'div'>): _$react_jsx_runtime0.JSX.Element;
14
14
  declare const bubbleVariants: (props?: ({
15
- variant?: "default" | "secondary" | "muted" | "tinted" | "outline" | "ghost" | "destructive" | null | undefined;
15
+ variant?: "secondary" | "destructive" | "default" | "ghost" | "outline" | "muted" | "tinted" | null | undefined;
16
16
  } & _$class_variance_authority_types0.ClassProp) | undefined) => string;
17
17
  declare function Bubble({
18
18
  variant,
@@ -9,9 +9,9 @@ import { VariantProps } from "class-variance-authority";
9
9
 
10
10
  //#region src/components/button.d.ts
11
11
  declare const buttonVariants: (props?: ({
12
- variant?: "secondary" | "destructive" | "primary" | "tertiary" | "bare" | null | undefined;
13
- color?: "neutral" | "accent" | "danger" | null | undefined;
14
- size?: "small" | "icon" | "default" | "medium" | "icon-small" | "icon-medium" | null | undefined;
12
+ variant?: "primary" | "secondary" | "tertiary" | "bare" | "destructive" | null | undefined;
13
+ color?: "accent" | "neutral" | "danger" | null | undefined;
14
+ size?: "small" | "default" | "medium" | "icon-small" | "icon" | "icon-medium" | null | undefined;
15
15
  } & _$class_variance_authority_types0.ClassProp) | undefined) => string;
16
16
  type SparkButtonColor = 'accent' | 'neutral' | 'danger';
17
17
  interface ButtonProps extends React$1.ComponentProps<typeof Button$1>, Omit<VariantProps<typeof buttonVariants>, 'variant' | 'color'> {
@@ -9,9 +9,9 @@ import * as _$class_variance_authority_types0 from "class-variance-authority/typ
9
9
 
10
10
  //#region src/components/button.d.ts
11
11
  declare const buttonVariants: (props?: ({
12
- variant?: "secondary" | "destructive" | "primary" | "tertiary" | "bare" | null | undefined;
13
- color?: "neutral" | "accent" | "danger" | null | undefined;
14
- size?: "small" | "icon" | "default" | "medium" | "icon-small" | "icon-medium" | null | undefined;
12
+ variant?: "primary" | "secondary" | "tertiary" | "bare" | "destructive" | null | undefined;
13
+ color?: "accent" | "neutral" | "danger" | null | undefined;
14
+ size?: "small" | "default" | "medium" | "icon-small" | "icon" | "icon-medium" | null | undefined;
15
15
  } & _$class_variance_authority_types0.ClassProp) | undefined) => string;
16
16
  type SparkButtonColor = 'accent' | 'neutral' | 'danger';
17
17
  interface ButtonProps extends React$1.ComponentProps<typeof Button$1>, Omit<VariantProps<typeof buttonVariants>, 'variant' | 'color'> {
@@ -9,7 +9,7 @@ let react_jsx_runtime = require("react/jsx-runtime");
9
9
  let _daypicker_react = require("@daypicker/react");
10
10
  let cnfast = require("cnfast");
11
11
  //#region src/components/calendar.tsx
12
- function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
12
+ function Calendar({ className, classNames, showOutsideDays = true, fixedWeeks = true, showTodayDot = true, ...props }) {
13
13
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_daypicker_react.DayPicker, {
14
14
  className: (0, cnfast.cn)("p-3", className),
15
15
  classNames: {
@@ -37,7 +37,7 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
37
37
  range_start: "range-start",
38
38
  range_end: "range-end",
39
39
  selected: "rounded-full",
40
- today: "relative bg-base-gray-soft text-gray after:absolute after:right-0 after:-bottom-1 after:left-0 after:m-auto after:inline-flex after:h-1 after:w-1 after:rounded-full after:bg-base-accent-solid after:content-[\"\"]",
40
+ today: (0, cnfast.cn)("relative bg-base-gray-soft text-gray", showTodayDot && "after:absolute after:right-0 after:-bottom-1 after:left-0 after:m-auto after:inline-flex after:h-1 after:w-1 after:rounded-full after:bg-base-accent-solid after:content-[\"\"]"),
41
41
  outside: "outside text-gray-light opacity-50 aria-selected:bg-base-gray-soft aria-selected:text-gray-light",
42
42
  disabled: "text-gray-light opacity-50",
43
43
  range_middle: "aria-selected:bg-base-gray-soft aria-selected:text-gray",
@@ -48,6 +48,7 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
48
48
  className: (0, cnfast.cn)("text-[20px]", orientation === "up" && "rotate-90", orientation === "down" && "-rotate-90"),
49
49
  name: orientation === "right" ? "chevron_right" : "chevron_left"
50
50
  }) },
51
+ fixedWeeks,
51
52
  showOutsideDays,
52
53
  ...props
53
54
  });
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.cjs","names":["DayPicker","buttonVariants","MaterialSymbol"],"sources":["../../src/components/calendar.tsx"],"sourcesContent":["import { DayPicker } from '@daypicker/react'\nimport * as React from 'react'\nimport { MaterialSymbol } from '../icons/material-symbol'\nimport { cn } from '../utils/cn'\nimport { buttonVariants } from './button'\n\ntype CalendarProps = React.ComponentProps<typeof DayPicker>\n\n// Pass `locale` (from '@daypicker/react/locale') for localized month/weekday\n// names — the library ships no language default.\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n ...props\n}: CalendarProps) {\n return (\n <DayPicker\n className={cn('p-3', className)}\n classNames={{\n months: 'relative',\n month: 'flex flex-col gap-2',\n month_caption: 'flex h-10 items-center justify-center',\n caption_label: 'text-sm font-bold text-gray',\n button_previous: cn(\n buttonVariants({ size: 'icon', variant: 'tertiary' }),\n 'absolute top-0 left-0 z-10 text-gray-light hover:text-gray',\n ),\n button_next: cn(\n buttonVariants({ size: 'icon', variant: 'tertiary' }),\n 'absolute top-0 right-0 z-10 text-gray-light hover:text-gray',\n ),\n month_grid: 'w-full border-collapse',\n weekdays: 'flex w-full justify-between',\n weekday:\n 'mt-0.5 flex h-10 w-10 items-center justify-center rounded-full text-sm font-bold text-gray',\n week: 'mt-1 flex w-full justify-between',\n day: cn(\n 'relative mx-0.5 flex h-10 w-10 items-center justify-center rounded-full p-0 text-center text-sm focus-within:relative focus-within:z-20',\n props.mode === 'range'\n ? '[&:has(>.range-end)]:rounded-r-full [&:has(>.range-start)]:rounded-l-full first:[&:has([aria-selected])]:rounded-l-full last:[&:has([aria-selected])]:rounded-r-full'\n : '[&:has([aria-selected])]:rounded-full',\n ),\n day_button: cn(\n buttonVariants({ size: 'icon', variant: 'tertiary' }),\n // hover:…:bg-spark-10 outranks tertiary's hover:bg-gray-a3 — selected days\n // darken like a solid button instead of washing out gray under white text\n 'size-10 shrink-0 rounded-full p-0 font-normal text-gray in-aria-selected:rounded-full in-aria-selected:bg-base-accent-solid in-aria-selected:text-accent-contrast hover:in-aria-selected:bg-spark-10 hover:in-aria-selected:text-accent-contrast',\n ),\n range_start: 'range-start',\n range_end: 'range-end',\n selected: 'rounded-full',\n today:\n 'relative bg-base-gray-soft text-gray after:absolute after:right-0 after:-bottom-1 after:left-0 after:m-auto after:inline-flex after:h-1 after:w-1 after:rounded-full after:bg-base-accent-solid after:content-[\"\"]',\n outside:\n 'outside text-gray-light opacity-50 aria-selected:bg-base-gray-soft aria-selected:text-gray-light',\n disabled: 'text-gray-light opacity-50',\n range_middle: 'aria-selected:bg-base-gray-soft aria-selected:text-gray',\n hidden: 'invisible',\n ...classNames,\n }}\n components={{\n Chevron: ({ orientation }) => (\n <MaterialSymbol\n className={cn(\n 'text-[20px]',\n orientation === 'up' && 'rotate-90',\n orientation === 'down' && '-rotate-90',\n )}\n name={orientation === 'right' ? 'chevron_right' : 'chevron_left'}\n />\n ),\n }}\n showOutsideDays={showOutsideDays}\n {...props}\n />\n )\n}\n\nexport { Calendar }\nexport type { CalendarProps }\n"],"mappings":";;;;;;;;;;;AAUA,SAAS,SAAS,EAChB,WACA,YACA,kBAAkB,MAClB,GAAG,SACa;AAChB,QACE,iBAAA,GAAA,kBAAA,KAACA,iBAAAA,WAAD;EACE,YAAA,GAAA,OAAA,IAAc,OAAO,UAAU;EAC/B,YAAY;GACV,QAAQ;GACR,OAAO;GACP,eAAe;GACf,eAAe;GACf,kBAAA,GAAA,OAAA,IACEC,0BAAAA,eAAe;IAAE,MAAM;IAAQ,SAAS;IAAY,CAAC,EACrD,6DACD;GACD,cAAA,GAAA,OAAA,IACEA,0BAAAA,eAAe;IAAE,MAAM;IAAQ,SAAS;IAAY,CAAC,EACrD,8DACD;GACD,YAAY;GACZ,UAAU;GACV,SACE;GACF,MAAM;GACN,MAAA,GAAA,OAAA,IACE,2IACA,MAAM,SAAS,UACX,yKACA,wCACL;GACD,aAAA,GAAA,OAAA,IACEA,0BAAAA,eAAe;IAAE,MAAM;IAAQ,SAAS;IAAY,CAAC,EAGrD,mPACD;GACD,aAAa;GACb,WAAW;GACX,UAAU;GACV,OACE;GACF,SACE;GACF,UAAU;GACV,cAAc;GACd,QAAQ;GACR,GAAG;GACJ;EACD,YAAY,EACV,UAAU,EAAE,kBACV,iBAAA,GAAA,kBAAA,KAACC,8BAAAA,gBAAD;GACE,YAAA,GAAA,OAAA,IACE,eACA,gBAAgB,QAAQ,aACxB,gBAAgB,UAAU,aAC3B;GACD,MAAM,gBAAgB,UAAU,kBAAkB;GAClD,CAAA,EAEL;EACgB;EACjB,GAAI;EACJ,CAAA"}
1
+ {"version":3,"file":"calendar.cjs","names":["DayPicker","buttonVariants","MaterialSymbol"],"sources":["../../src/components/calendar.tsx"],"sourcesContent":["import { DayPicker } from '@daypicker/react'\nimport * as React from 'react'\nimport { MaterialSymbol } from '../icons/material-symbol'\nimport { cn } from '../utils/cn'\nimport { buttonVariants } from './button'\n\ntype CalendarProps = React.ComponentProps<typeof DayPicker> & {\n showTodayDot?: boolean\n}\n\n// Pass `locale` (from '@daypicker/react/locale') for localized month/weekday\n// names — the library ships no language default.\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n fixedWeeks = true,\n showTodayDot = true,\n ...props\n}: CalendarProps) {\n return (\n <DayPicker\n className={cn('p-3', className)}\n classNames={{\n months: 'relative',\n month: 'flex flex-col gap-2',\n month_caption: 'flex h-10 items-center justify-center',\n caption_label: 'text-sm font-bold text-gray',\n button_previous: cn(\n buttonVariants({ size: 'icon', variant: 'tertiary' }),\n 'absolute top-0 left-0 z-10 text-gray-light hover:text-gray',\n ),\n button_next: cn(\n buttonVariants({ size: 'icon', variant: 'tertiary' }),\n 'absolute top-0 right-0 z-10 text-gray-light hover:text-gray',\n ),\n month_grid: 'w-full border-collapse',\n weekdays: 'flex w-full justify-between',\n weekday:\n 'mt-0.5 flex h-10 w-10 items-center justify-center rounded-full text-sm font-bold text-gray',\n week: 'mt-1 flex w-full justify-between',\n day: cn(\n 'relative mx-0.5 flex h-10 w-10 items-center justify-center rounded-full p-0 text-center text-sm focus-within:relative focus-within:z-20',\n props.mode === 'range'\n ? '[&:has(>.range-end)]:rounded-r-full [&:has(>.range-start)]:rounded-l-full first:[&:has([aria-selected])]:rounded-l-full last:[&:has([aria-selected])]:rounded-r-full'\n : '[&:has([aria-selected])]:rounded-full',\n ),\n day_button: cn(\n buttonVariants({ size: 'icon', variant: 'tertiary' }),\n // hover:…:bg-spark-10 outranks tertiary's hover:bg-gray-a3 — selected days\n // darken like a solid button instead of washing out gray under white text\n 'size-10 shrink-0 rounded-full p-0 font-normal text-gray in-aria-selected:rounded-full in-aria-selected:bg-base-accent-solid in-aria-selected:text-accent-contrast hover:in-aria-selected:bg-spark-10 hover:in-aria-selected:text-accent-contrast',\n ),\n range_start: 'range-start',\n range_end: 'range-end',\n selected: 'rounded-full',\n today: cn(\n 'relative bg-base-gray-soft text-gray',\n showTodayDot &&\n 'after:absolute after:right-0 after:-bottom-1 after:left-0 after:m-auto after:inline-flex after:h-1 after:w-1 after:rounded-full after:bg-base-accent-solid after:content-[\"\"]',\n ),\n outside:\n 'outside text-gray-light opacity-50 aria-selected:bg-base-gray-soft aria-selected:text-gray-light',\n disabled: 'text-gray-light opacity-50',\n range_middle: 'aria-selected:bg-base-gray-soft aria-selected:text-gray',\n hidden: 'invisible',\n ...classNames,\n }}\n components={{\n Chevron: ({ orientation }) => (\n <MaterialSymbol\n className={cn(\n 'text-[20px]',\n orientation === 'up' && 'rotate-90',\n orientation === 'down' && '-rotate-90',\n )}\n name={orientation === 'right' ? 'chevron_right' : 'chevron_left'}\n />\n ),\n }}\n fixedWeeks={fixedWeeks}\n showOutsideDays={showOutsideDays}\n {...props}\n />\n )\n}\n\nexport { Calendar }\nexport type { CalendarProps }\n"],"mappings":";;;;;;;;;;;AAYA,SAAS,SAAS,EAChB,WACA,YACA,kBAAkB,MAClB,aAAa,MACb,eAAe,MACf,GAAG,SACa;AAChB,QACE,iBAAA,GAAA,kBAAA,KAACA,iBAAAA,WAAD;EACE,YAAA,GAAA,OAAA,IAAc,OAAO,UAAU;EAC/B,YAAY;GACV,QAAQ;GACR,OAAO;GACP,eAAe;GACf,eAAe;GACf,kBAAA,GAAA,OAAA,IACEC,0BAAAA,eAAe;IAAE,MAAM;IAAQ,SAAS;IAAY,CAAC,EACrD,6DACD;GACD,cAAA,GAAA,OAAA,IACEA,0BAAAA,eAAe;IAAE,MAAM;IAAQ,SAAS;IAAY,CAAC,EACrD,8DACD;GACD,YAAY;GACZ,UAAU;GACV,SACE;GACF,MAAM;GACN,MAAA,GAAA,OAAA,IACE,2IACA,MAAM,SAAS,UACX,yKACA,wCACL;GACD,aAAA,GAAA,OAAA,IACEA,0BAAAA,eAAe;IAAE,MAAM;IAAQ,SAAS;IAAY,CAAC,EAGrD,mPACD;GACD,aAAa;GACb,WAAW;GACX,UAAU;GACV,QAAA,GAAA,OAAA,IACE,wCACA,gBACE,kLACH;GACD,SACE;GACF,UAAU;GACV,cAAc;GACd,QAAQ;GACR,GAAG;GACJ;EACD,YAAY,EACV,UAAU,EAAE,kBACV,iBAAA,GAAA,kBAAA,KAACC,8BAAAA,gBAAD;GACE,YAAA,GAAA,OAAA,IACE,eACA,gBAAgB,QAAQ,aACxB,gBAAgB,UAAU,aAC3B;GACD,MAAM,gBAAgB,UAAU,kBAAkB;GAClD,CAAA,EAEL;EACW;EACK;EACjB,GAAI;EACJ,CAAA"}
@@ -5,11 +5,15 @@ import * as React$1 from "react";
5
5
  import { DayPicker } from "@daypicker/react";
6
6
 
7
7
  //#region src/components/calendar.d.ts
8
- type CalendarProps = React$1.ComponentProps<typeof DayPicker>;
8
+ type CalendarProps = React$1.ComponentProps<typeof DayPicker> & {
9
+ showTodayDot?: boolean;
10
+ };
9
11
  declare function Calendar({
10
12
  className,
11
13
  classNames,
12
14
  showOutsideDays,
15
+ fixedWeeks,
16
+ showTodayDot,
13
17
  ...props
14
18
  }: CalendarProps): _$react_jsx_runtime0.JSX.Element;
15
19
  //#endregion
@@ -5,11 +5,15 @@ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
5
5
  import { DayPicker } from "@daypicker/react";
6
6
 
7
7
  //#region src/components/calendar.d.ts
8
- type CalendarProps = React$1.ComponentProps<typeof DayPicker>;
8
+ type CalendarProps = React$1.ComponentProps<typeof DayPicker> & {
9
+ showTodayDot?: boolean;
10
+ };
9
11
  declare function Calendar({
10
12
  className,
11
13
  classNames,
12
14
  showOutsideDays,
15
+ fixedWeeks,
16
+ showTodayDot,
13
17
  ...props
14
18
  }: CalendarProps): _$react_jsx_runtime0.JSX.Element;
15
19
  //#endregion
@@ -6,7 +6,7 @@ import "react";
6
6
  import { jsx } from "react/jsx-runtime";
7
7
  import { DayPicker } from "@daypicker/react";
8
8
  //#region src/components/calendar.tsx
9
- function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
9
+ function Calendar({ className, classNames, showOutsideDays = true, fixedWeeks = true, showTodayDot = true, ...props }) {
10
10
  return /* @__PURE__ */ jsx(DayPicker, {
11
11
  className: cn("p-3", className),
12
12
  classNames: {
@@ -34,7 +34,7 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
34
34
  range_start: "range-start",
35
35
  range_end: "range-end",
36
36
  selected: "rounded-full",
37
- today: "relative bg-base-gray-soft text-gray after:absolute after:right-0 after:-bottom-1 after:left-0 after:m-auto after:inline-flex after:h-1 after:w-1 after:rounded-full after:bg-base-accent-solid after:content-[\"\"]",
37
+ today: cn("relative bg-base-gray-soft text-gray", showTodayDot && "after:absolute after:right-0 after:-bottom-1 after:left-0 after:m-auto after:inline-flex after:h-1 after:w-1 after:rounded-full after:bg-base-accent-solid after:content-[\"\"]"),
38
38
  outside: "outside text-gray-light opacity-50 aria-selected:bg-base-gray-soft aria-selected:text-gray-light",
39
39
  disabled: "text-gray-light opacity-50",
40
40
  range_middle: "aria-selected:bg-base-gray-soft aria-selected:text-gray",
@@ -45,6 +45,7 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
45
45
  className: cn("text-[20px]", orientation === "up" && "rotate-90", orientation === "down" && "-rotate-90"),
46
46
  name: orientation === "right" ? "chevron_right" : "chevron_left"
47
47
  }) },
48
+ fixedWeeks,
48
49
  showOutsideDays,
49
50
  ...props
50
51
  });
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.js","names":[],"sources":["../../src/components/calendar.tsx"],"sourcesContent":["import { DayPicker } from '@daypicker/react'\nimport * as React from 'react'\nimport { MaterialSymbol } from '../icons/material-symbol'\nimport { cn } from '../utils/cn'\nimport { buttonVariants } from './button'\n\ntype CalendarProps = React.ComponentProps<typeof DayPicker>\n\n// Pass `locale` (from '@daypicker/react/locale') for localized month/weekday\n// names — the library ships no language default.\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n ...props\n}: CalendarProps) {\n return (\n <DayPicker\n className={cn('p-3', className)}\n classNames={{\n months: 'relative',\n month: 'flex flex-col gap-2',\n month_caption: 'flex h-10 items-center justify-center',\n caption_label: 'text-sm font-bold text-gray',\n button_previous: cn(\n buttonVariants({ size: 'icon', variant: 'tertiary' }),\n 'absolute top-0 left-0 z-10 text-gray-light hover:text-gray',\n ),\n button_next: cn(\n buttonVariants({ size: 'icon', variant: 'tertiary' }),\n 'absolute top-0 right-0 z-10 text-gray-light hover:text-gray',\n ),\n month_grid: 'w-full border-collapse',\n weekdays: 'flex w-full justify-between',\n weekday:\n 'mt-0.5 flex h-10 w-10 items-center justify-center rounded-full text-sm font-bold text-gray',\n week: 'mt-1 flex w-full justify-between',\n day: cn(\n 'relative mx-0.5 flex h-10 w-10 items-center justify-center rounded-full p-0 text-center text-sm focus-within:relative focus-within:z-20',\n props.mode === 'range'\n ? '[&:has(>.range-end)]:rounded-r-full [&:has(>.range-start)]:rounded-l-full first:[&:has([aria-selected])]:rounded-l-full last:[&:has([aria-selected])]:rounded-r-full'\n : '[&:has([aria-selected])]:rounded-full',\n ),\n day_button: cn(\n buttonVariants({ size: 'icon', variant: 'tertiary' }),\n // hover:…:bg-spark-10 outranks tertiary's hover:bg-gray-a3 — selected days\n // darken like a solid button instead of washing out gray under white text\n 'size-10 shrink-0 rounded-full p-0 font-normal text-gray in-aria-selected:rounded-full in-aria-selected:bg-base-accent-solid in-aria-selected:text-accent-contrast hover:in-aria-selected:bg-spark-10 hover:in-aria-selected:text-accent-contrast',\n ),\n range_start: 'range-start',\n range_end: 'range-end',\n selected: 'rounded-full',\n today:\n 'relative bg-base-gray-soft text-gray after:absolute after:right-0 after:-bottom-1 after:left-0 after:m-auto after:inline-flex after:h-1 after:w-1 after:rounded-full after:bg-base-accent-solid after:content-[\"\"]',\n outside:\n 'outside text-gray-light opacity-50 aria-selected:bg-base-gray-soft aria-selected:text-gray-light',\n disabled: 'text-gray-light opacity-50',\n range_middle: 'aria-selected:bg-base-gray-soft aria-selected:text-gray',\n hidden: 'invisible',\n ...classNames,\n }}\n components={{\n Chevron: ({ orientation }) => (\n <MaterialSymbol\n className={cn(\n 'text-[20px]',\n orientation === 'up' && 'rotate-90',\n orientation === 'down' && '-rotate-90',\n )}\n name={orientation === 'right' ? 'chevron_right' : 'chevron_left'}\n />\n ),\n }}\n showOutsideDays={showOutsideDays}\n {...props}\n />\n )\n}\n\nexport { Calendar }\nexport type { CalendarProps }\n"],"mappings":";;;;;;;;AAUA,SAAS,SAAS,EAChB,WACA,YACA,kBAAkB,MAClB,GAAG,SACa;AAChB,QACE,oBAAC,WAAD;EACE,WAAW,GAAG,OAAO,UAAU;EAC/B,YAAY;GACV,QAAQ;GACR,OAAO;GACP,eAAe;GACf,eAAe;GACf,iBAAiB,GACf,eAAe;IAAE,MAAM;IAAQ,SAAS;IAAY,CAAC,EACrD,6DACD;GACD,aAAa,GACX,eAAe;IAAE,MAAM;IAAQ,SAAS;IAAY,CAAC,EACrD,8DACD;GACD,YAAY;GACZ,UAAU;GACV,SACE;GACF,MAAM;GACN,KAAK,GACH,2IACA,MAAM,SAAS,UACX,yKACA,wCACL;GACD,YAAY,GACV,eAAe;IAAE,MAAM;IAAQ,SAAS;IAAY,CAAC,EAGrD,mPACD;GACD,aAAa;GACb,WAAW;GACX,UAAU;GACV,OACE;GACF,SACE;GACF,UAAU;GACV,cAAc;GACd,QAAQ;GACR,GAAG;GACJ;EACD,YAAY,EACV,UAAU,EAAE,kBACV,oBAAC,gBAAD;GACE,WAAW,GACT,eACA,gBAAgB,QAAQ,aACxB,gBAAgB,UAAU,aAC3B;GACD,MAAM,gBAAgB,UAAU,kBAAkB;GAClD,CAAA,EAEL;EACgB;EACjB,GAAI;EACJ,CAAA"}
1
+ {"version":3,"file":"calendar.js","names":[],"sources":["../../src/components/calendar.tsx"],"sourcesContent":["import { DayPicker } from '@daypicker/react'\nimport * as React from 'react'\nimport { MaterialSymbol } from '../icons/material-symbol'\nimport { cn } from '../utils/cn'\nimport { buttonVariants } from './button'\n\ntype CalendarProps = React.ComponentProps<typeof DayPicker> & {\n showTodayDot?: boolean\n}\n\n// Pass `locale` (from '@daypicker/react/locale') for localized month/weekday\n// names — the library ships no language default.\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n fixedWeeks = true,\n showTodayDot = true,\n ...props\n}: CalendarProps) {\n return (\n <DayPicker\n className={cn('p-3', className)}\n classNames={{\n months: 'relative',\n month: 'flex flex-col gap-2',\n month_caption: 'flex h-10 items-center justify-center',\n caption_label: 'text-sm font-bold text-gray',\n button_previous: cn(\n buttonVariants({ size: 'icon', variant: 'tertiary' }),\n 'absolute top-0 left-0 z-10 text-gray-light hover:text-gray',\n ),\n button_next: cn(\n buttonVariants({ size: 'icon', variant: 'tertiary' }),\n 'absolute top-0 right-0 z-10 text-gray-light hover:text-gray',\n ),\n month_grid: 'w-full border-collapse',\n weekdays: 'flex w-full justify-between',\n weekday:\n 'mt-0.5 flex h-10 w-10 items-center justify-center rounded-full text-sm font-bold text-gray',\n week: 'mt-1 flex w-full justify-between',\n day: cn(\n 'relative mx-0.5 flex h-10 w-10 items-center justify-center rounded-full p-0 text-center text-sm focus-within:relative focus-within:z-20',\n props.mode === 'range'\n ? '[&:has(>.range-end)]:rounded-r-full [&:has(>.range-start)]:rounded-l-full first:[&:has([aria-selected])]:rounded-l-full last:[&:has([aria-selected])]:rounded-r-full'\n : '[&:has([aria-selected])]:rounded-full',\n ),\n day_button: cn(\n buttonVariants({ size: 'icon', variant: 'tertiary' }),\n // hover:…:bg-spark-10 outranks tertiary's hover:bg-gray-a3 — selected days\n // darken like a solid button instead of washing out gray under white text\n 'size-10 shrink-0 rounded-full p-0 font-normal text-gray in-aria-selected:rounded-full in-aria-selected:bg-base-accent-solid in-aria-selected:text-accent-contrast hover:in-aria-selected:bg-spark-10 hover:in-aria-selected:text-accent-contrast',\n ),\n range_start: 'range-start',\n range_end: 'range-end',\n selected: 'rounded-full',\n today: cn(\n 'relative bg-base-gray-soft text-gray',\n showTodayDot &&\n 'after:absolute after:right-0 after:-bottom-1 after:left-0 after:m-auto after:inline-flex after:h-1 after:w-1 after:rounded-full after:bg-base-accent-solid after:content-[\"\"]',\n ),\n outside:\n 'outside text-gray-light opacity-50 aria-selected:bg-base-gray-soft aria-selected:text-gray-light',\n disabled: 'text-gray-light opacity-50',\n range_middle: 'aria-selected:bg-base-gray-soft aria-selected:text-gray',\n hidden: 'invisible',\n ...classNames,\n }}\n components={{\n Chevron: ({ orientation }) => (\n <MaterialSymbol\n className={cn(\n 'text-[20px]',\n orientation === 'up' && 'rotate-90',\n orientation === 'down' && '-rotate-90',\n )}\n name={orientation === 'right' ? 'chevron_right' : 'chevron_left'}\n />\n ),\n }}\n fixedWeeks={fixedWeeks}\n showOutsideDays={showOutsideDays}\n {...props}\n />\n )\n}\n\nexport { Calendar }\nexport type { CalendarProps }\n"],"mappings":";;;;;;;;AAYA,SAAS,SAAS,EAChB,WACA,YACA,kBAAkB,MAClB,aAAa,MACb,eAAe,MACf,GAAG,SACa;AAChB,QACE,oBAAC,WAAD;EACE,WAAW,GAAG,OAAO,UAAU;EAC/B,YAAY;GACV,QAAQ;GACR,OAAO;GACP,eAAe;GACf,eAAe;GACf,iBAAiB,GACf,eAAe;IAAE,MAAM;IAAQ,SAAS;IAAY,CAAC,EACrD,6DACD;GACD,aAAa,GACX,eAAe;IAAE,MAAM;IAAQ,SAAS;IAAY,CAAC,EACrD,8DACD;GACD,YAAY;GACZ,UAAU;GACV,SACE;GACF,MAAM;GACN,KAAK,GACH,2IACA,MAAM,SAAS,UACX,yKACA,wCACL;GACD,YAAY,GACV,eAAe;IAAE,MAAM;IAAQ,SAAS;IAAY,CAAC,EAGrD,mPACD;GACD,aAAa;GACb,WAAW;GACX,UAAU;GACV,OAAO,GACL,wCACA,gBACE,kLACH;GACD,SACE;GACF,UAAU;GACV,cAAc;GACd,QAAQ;GACR,GAAG;GACJ;EACD,YAAY,EACV,UAAU,EAAE,kBACV,oBAAC,gBAAD;GACE,WAAW,GACT,eACA,gBAAgB,QAAQ,aACxB,gBAAgB,UAAU,aAC3B;GACD,MAAM,gBAAgB,UAAU,kBAAkB;GAClD,CAAA,EAEL;EACW;EACK;EACjB,GAAI;EACJ,CAAA"}
@@ -6,7 +6,7 @@ import { VariantProps } from "class-variance-authority";
6
6
 
7
7
  //#region src/components/info-block.d.ts
8
8
  declare const InfoBlock: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
9
- variant?: "default" | "bare" | null | undefined;
9
+ variant?: "bare" | "default" | null | undefined;
10
10
  } & _$class_variance_authority_types0.ClassProp) | undefined) => string> & React$1.RefAttributes<HTMLDivElement>>;
11
11
  declare const InfoBlockIcon: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
12
12
  declare const InfoBlockContent: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
@@ -6,7 +6,7 @@ import * as _$class_variance_authority_types0 from "class-variance-authority/typ
6
6
 
7
7
  //#region src/components/info-block.d.ts
8
8
  declare const InfoBlock: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
9
- variant?: "default" | "bare" | null | undefined;
9
+ variant?: "bare" | "default" | null | undefined;
10
10
  } & _$class_variance_authority_types0.ClassProp) | undefined) => string> & React$1.RefAttributes<HTMLDivElement>>;
11
11
  declare const InfoBlockIcon: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
12
12
  declare const InfoBlockContent: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & React$1.RefAttributes<HTMLDivElement>>;
@@ -147,14 +147,15 @@ function InputGroupText({ className, ...props }) {
147
147
  ...props
148
148
  });
149
149
  }
150
- function InputGroupInput({ className, ...props }) {
150
+ const InputGroupInput = react.forwardRef(function InputGroupInput({ className, ...props }, ref) {
151
151
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_components_input.Input, {
152
152
  "data-slot": "input",
153
153
  variant: "none",
154
154
  className: (0, cnfast.cn)("flex-1", className),
155
+ ref,
155
156
  ...props
156
157
  });
157
- }
158
+ });
158
159
  //#endregion
159
160
  exports.InputGroup = InputGroup;
160
161
  exports.InputGroupAddon = InputGroupAddon;
@@ -1 +1 @@
1
- {"version":3,"file":"input-group.cjs","names":["useFieldContext","useTheme","Input"],"sources":["../../src/components/input-group.tsx"],"sourcesContent":["'use client'\n\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\nimport { cn } from '../utils/cn'\nimport { useFieldContext } from './field'\nimport { Input, type InputProps } from './input'\nimport { useTheme } from './theme'\n\nconst GHOST =\n 'rounded-none border-0 border-b-2 px-0 focus-within:border-b-input-active has-[[data-slot=input][aria-invalid=true]]:border-b-input-invalid has-[[data-slot=input][aria-invalid=true]]:focus-within:border-b-red-a8! group-data-[invalid=true]/field:border-b-input-invalid! group-data-[invalid=true]/field:focus-within:border-b-red-a8!'\n\nconst inputGroupVariants = cva(\n 'group/input-group relative flex h-10 w-full min-w-0 items-center gap-2 bg-transparent transition-[color,border-color] outline-none motion-reduce:transition-none',\n {\n variants: {\n chrome: {\n // inside an inset field the shell is the box; the group keeps the\n // classic underline (inputs inside stay chrome-less)\n inset: GHOST,\n // h-11 matches the standalone Input box\n box: 'h-11 rounded-lg px-3 transition-all motion-reduce:transition-none',\n },\n inputStyle: { soft: '', surface: '', outlined: '', ghost: '' },\n inputColor: { brand: '', gray: '' },\n },\n compoundVariants: [\n {\n chrome: 'box',\n inputStyle: 'soft',\n // invalid hover deepens the error tint instead of the accent hover\n class:\n 'group-data-[invalid=true]/field:bg-base-error-soft focus-within:ring-2 focus-within:ring-offset-2 group-data-[invalid=true]/field:focus-within:ring-red-a8 has-[[data-slot=input][aria-invalid=true]]:bg-base-error-soft has-[[data-slot=input][aria-invalid=true]]:focus-within:ring-red-a8 has-[[data-slot=input][aria-invalid=true]:not(:disabled)]:hover:bg-red-a4 group-data-[invalid=true]/field:has-[input:not(:disabled)]:hover:bg-red-a4',\n },\n {\n chrome: 'box',\n inputStyle: 'soft',\n inputColor: 'brand',\n class:\n 'bg-input-base focus-within:ring-input-active has-[input:not(:disabled)]:hover:bg-input-base-hover',\n },\n {\n chrome: 'box',\n inputStyle: 'soft',\n inputColor: 'gray',\n class:\n 'bg-base-gray-soft focus-within:ring-gray-a8 has-[input:not(:disabled)]:hover:bg-gray-a4',\n },\n {\n chrome: 'box',\n inputStyle: ['surface', 'outlined'],\n class:\n 'border group-data-[invalid=true]/field:border-input-invalid focus-within:ring-1 group-data-[invalid=true]/field:focus-within:border-input-invalid! group-data-[invalid=true]/field:focus-within:ring-red-a4! has-[[data-slot=input][aria-invalid=true]]:border-input-invalid has-[[data-slot=input][aria-invalid=true]]:focus-within:border-input-invalid! has-[[data-slot=input][aria-invalid=true]]:focus-within:ring-red-a4!',\n },\n {\n chrome: 'box',\n inputStyle: 'surface',\n inputColor: 'brand',\n class:\n 'border-input bg-base-accent-surface focus-within:border-input-active focus-within:ring-spark-a4',\n },\n {\n chrome: 'box',\n inputStyle: 'surface',\n inputColor: 'gray',\n class:\n 'border-input-gray bg-base-gray-surface focus-within:border-gray-a8 focus-within:ring-gray-a4',\n },\n {\n chrome: 'box',\n inputStyle: 'outlined',\n inputColor: 'brand',\n class:\n 'border-input focus-within:border-input-active focus-within:ring-spark-a4',\n },\n {\n chrome: 'box',\n inputStyle: 'outlined',\n inputColor: 'gray',\n class:\n 'border-input-gray focus-within:border-gray-a8 focus-within:ring-gray-a4',\n },\n { chrome: 'box', inputStyle: 'ghost', class: GHOST },\n {\n chrome: 'box',\n inputStyle: 'ghost',\n inputColor: 'brand',\n class: 'border-b-input',\n },\n {\n chrome: 'box',\n inputStyle: 'ghost',\n inputColor: 'gray',\n class: 'border-b-input-gray',\n },\n { chrome: 'inset', inputColor: 'brand', class: 'border-b-input' },\n { chrome: 'inset', inputColor: 'gray', class: 'border-b-input-gray' },\n ],\n },\n)\n\n// The group carries the box + focus/invalid states; inputs inside are\n// chrome-less (variant=\"none\"). Style follows the enclosing Field's knobs,\n// else the <Theme> input-style/input-color knobs.\nfunction InputGroup({ className, ...props }: React.ComponentProps<'div'>) {\n const field = useFieldContext()\n const theme = useTheme()\n const inputStyle = field?.inputStyle ?? theme.inputStyle ?? 'soft'\n const inputColor = field?.inputColor ?? theme.inputColor ?? 'brand'\n const chrome = field?.labelPosition === 'inset' ? 'inset' : 'box'\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n inputGroupVariants({ chrome, inputStyle, inputColor }),\n className,\n )}\n {...props}\n />\n )\n}\n\nconst inputGroupAddonVariants = cva(\n 'flex h-auto cursor-text items-center justify-center gap-2 py-2 text-sm font-medium text-gray-light select-none [&_svg:not([class*=size-])]:size-4',\n {\n variants: {\n align: {\n // button addons bring their own inner padding — pull them halfway\n // into the group's px so the visual gap matches the text side\n 'inline-start': 'order-first has-[>button]:-ml-2',\n 'inline-end': 'order-last has-[>button]:-mr-2',\n },\n },\n defaultVariants: {\n align: 'inline-start',\n },\n },\n)\n\nfunction InputGroupAddon({\n className,\n align = 'inline-start',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(event) => {\n if ((event.target as HTMLElement).closest('button')) return\n event.currentTarget.parentElement?.querySelector('input')?.focus()\n }}\n {...props}\n />\n )\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n className={cn(\n 'flex items-center gap-2 text-xs text-gray-light [&_svg]:pointer-events-none [&_svg:not([class*=size-])]:size-4',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupInput({ className, ...props }: InputProps) {\n return (\n <Input\n data-slot=\"input\"\n variant=\"none\"\n className={cn('flex-1', className)}\n {...props}\n />\n )\n}\n\nexport { InputGroup, InputGroupAddon, InputGroupInput, InputGroupText }\n"],"mappings":";;;;;;;;;;;;;AASA,MAAM,QACJ;AAEF,MAAM,sBAAA,GAAA,yBAAA,KACJ,oKACA;CACE,UAAU;EACR,QAAQ;GAGN,OAAO;GAEP,KAAK;GACN;EACD,YAAY;GAAE,MAAM;GAAI,SAAS;GAAI,UAAU;GAAI,OAAO;GAAI;EAC9D,YAAY;GAAE,OAAO;GAAI,MAAM;GAAI;EACpC;CACD,kBAAkB;EAChB;GACE,QAAQ;GACR,YAAY;GAEZ,OACE;GACH;EACD;GACE,QAAQ;GACR,YAAY;GACZ,YAAY;GACZ,OACE;GACH;EACD;GACE,QAAQ;GACR,YAAY;GACZ,YAAY;GACZ,OACE;GACH;EACD;GACE,QAAQ;GACR,YAAY,CAAC,WAAW,WAAW;GACnC,OACE;GACH;EACD;GACE,QAAQ;GACR,YAAY;GACZ,YAAY;GACZ,OACE;GACH;EACD;GACE,QAAQ;GACR,YAAY;GACZ,YAAY;GACZ,OACE;GACH;EACD;GACE,QAAQ;GACR,YAAY;GACZ,YAAY;GACZ,OACE;GACH;EACD;GACE,QAAQ;GACR,YAAY;GACZ,YAAY;GACZ,OACE;GACH;EACD;GAAE,QAAQ;GAAO,YAAY;GAAS,OAAO;GAAO;EACpD;GACE,QAAQ;GACR,YAAY;GACZ,YAAY;GACZ,OAAO;GACR;EACD;GACE,QAAQ;GACR,YAAY;GACZ,YAAY;GACZ,OAAO;GACR;EACD;GAAE,QAAQ;GAAS,YAAY;GAAS,OAAO;GAAkB;EACjE;GAAE,QAAQ;GAAS,YAAY;GAAQ,OAAO;GAAuB;EACtE;CACF,CACF;AAKD,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;CACxE,MAAM,QAAQA,yBAAAA,iBAAiB;CAC/B,MAAM,QAAQC,cAAAA,UAAU;CACxB,MAAM,aAAa,OAAO,cAAc,MAAM,cAAc;CAC5D,MAAM,aAAa,OAAO,cAAc,MAAM,cAAc;AAE5D,QACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,aAAU;EACV,MAAK;EACL,YAAA,GAAA,OAAA,IACE,mBAAmB;GAAE,QANZ,OAAO,kBAAkB,UAAU,UAAU;GAMzB;GAAY;GAAY,CAAC,EACtD,UACD;EACD,GAAI;EACJ,CAAA;;AAIN,MAAM,2BAAA,GAAA,yBAAA,KACJ,qJACA;CACE,UAAU,EACR,OAAO;EAGL,gBAAgB;EAChB,cAAc;EACf,EACF;CACD,iBAAiB,EACf,OAAO,gBACR;CACF,CACF;AAED,SAAS,gBAAgB,EACvB,WACA,QAAQ,gBACR,GAAG,SAC0E;AAC7E,QACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,MAAK;EACL,aAAU;EACV,cAAY;EACZ,YAAA,GAAA,OAAA,IAAc,wBAAwB,EAAE,OAAO,CAAC,EAAE,UAAU;EAC5D,UAAU,UAAU;AAClB,OAAK,MAAM,OAAuB,QAAQ,SAAS,CAAE;AACrD,SAAM,cAAc,eAAe,cAAc,QAAQ,EAAE,OAAO;;EAEpE,GAAI;EACJ,CAAA;;AAIN,SAAS,eAAe,EAAE,WAAW,GAAG,SAAuC;AAC7E,QACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;EACE,YAAA,GAAA,OAAA,IACE,kHACA,UACD;EACD,GAAI;EACJ,CAAA;;AAIN,SAAS,gBAAgB,EAAE,WAAW,GAAG,SAAqB;AAC5D,QACE,iBAAA,GAAA,kBAAA,KAACC,yBAAAA,OAAD;EACE,aAAU;EACV,SAAQ;EACR,YAAA,GAAA,OAAA,IAAc,UAAU,UAAU;EAClC,GAAI;EACJ,CAAA"}
1
+ {"version":3,"file":"input-group.cjs","names":["useFieldContext","useTheme","React","Input"],"sources":["../../src/components/input-group.tsx"],"sourcesContent":["'use client'\n\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\nimport { cn } from '../utils/cn'\nimport { useFieldContext } from './field'\nimport { Input, type InputProps } from './input'\nimport { useTheme } from './theme'\n\nconst GHOST =\n 'rounded-none border-0 border-b-2 px-0 focus-within:border-b-input-active has-[[data-slot=input][aria-invalid=true]]:border-b-input-invalid has-[[data-slot=input][aria-invalid=true]]:focus-within:border-b-red-a8! group-data-[invalid=true]/field:border-b-input-invalid! group-data-[invalid=true]/field:focus-within:border-b-red-a8!'\n\nconst inputGroupVariants = cva(\n 'group/input-group relative flex h-10 w-full min-w-0 items-center gap-2 bg-transparent transition-[color,border-color] outline-none motion-reduce:transition-none',\n {\n variants: {\n chrome: {\n // inside an inset field the shell is the box; the group keeps the\n // classic underline (inputs inside stay chrome-less)\n inset: GHOST,\n // h-11 matches the standalone Input box\n box: 'h-11 rounded-lg px-3 transition-all motion-reduce:transition-none',\n },\n inputStyle: { soft: '', surface: '', outlined: '', ghost: '' },\n inputColor: { brand: '', gray: '' },\n },\n compoundVariants: [\n {\n chrome: 'box',\n inputStyle: 'soft',\n // invalid hover deepens the error tint instead of the accent hover\n class:\n 'group-data-[invalid=true]/field:bg-base-error-soft focus-within:ring-2 focus-within:ring-offset-2 group-data-[invalid=true]/field:focus-within:ring-red-a8 has-[[data-slot=input][aria-invalid=true]]:bg-base-error-soft has-[[data-slot=input][aria-invalid=true]]:focus-within:ring-red-a8 has-[[data-slot=input][aria-invalid=true]:not(:disabled)]:hover:bg-red-a4 group-data-[invalid=true]/field:has-[input:not(:disabled)]:hover:bg-red-a4',\n },\n {\n chrome: 'box',\n inputStyle: 'soft',\n inputColor: 'brand',\n class:\n 'bg-input-base focus-within:ring-input-active has-[input:not(:disabled)]:hover:bg-input-base-hover',\n },\n {\n chrome: 'box',\n inputStyle: 'soft',\n inputColor: 'gray',\n class:\n 'bg-base-gray-soft focus-within:ring-gray-a8 has-[input:not(:disabled)]:hover:bg-gray-a4',\n },\n {\n chrome: 'box',\n inputStyle: ['surface', 'outlined'],\n class:\n 'border group-data-[invalid=true]/field:border-input-invalid focus-within:ring-1 group-data-[invalid=true]/field:focus-within:border-input-invalid! group-data-[invalid=true]/field:focus-within:ring-red-a4! has-[[data-slot=input][aria-invalid=true]]:border-input-invalid has-[[data-slot=input][aria-invalid=true]]:focus-within:border-input-invalid! has-[[data-slot=input][aria-invalid=true]]:focus-within:ring-red-a4!',\n },\n {\n chrome: 'box',\n inputStyle: 'surface',\n inputColor: 'brand',\n class:\n 'border-input bg-base-accent-surface focus-within:border-input-active focus-within:ring-spark-a4',\n },\n {\n chrome: 'box',\n inputStyle: 'surface',\n inputColor: 'gray',\n class:\n 'border-input-gray bg-base-gray-surface focus-within:border-gray-a8 focus-within:ring-gray-a4',\n },\n {\n chrome: 'box',\n inputStyle: 'outlined',\n inputColor: 'brand',\n class:\n 'border-input focus-within:border-input-active focus-within:ring-spark-a4',\n },\n {\n chrome: 'box',\n inputStyle: 'outlined',\n inputColor: 'gray',\n class:\n 'border-input-gray focus-within:border-gray-a8 focus-within:ring-gray-a4',\n },\n { chrome: 'box', inputStyle: 'ghost', class: GHOST },\n {\n chrome: 'box',\n inputStyle: 'ghost',\n inputColor: 'brand',\n class: 'border-b-input',\n },\n {\n chrome: 'box',\n inputStyle: 'ghost',\n inputColor: 'gray',\n class: 'border-b-input-gray',\n },\n { chrome: 'inset', inputColor: 'brand', class: 'border-b-input' },\n { chrome: 'inset', inputColor: 'gray', class: 'border-b-input-gray' },\n ],\n },\n)\n\n// The group carries the box + focus/invalid states; inputs inside are\n// chrome-less (variant=\"none\"). Style follows the enclosing Field's knobs,\n// else the <Theme> input-style/input-color knobs.\nfunction InputGroup({ className, ...props }: React.ComponentProps<'div'>) {\n const field = useFieldContext()\n const theme = useTheme()\n const inputStyle = field?.inputStyle ?? theme.inputStyle ?? 'soft'\n const inputColor = field?.inputColor ?? theme.inputColor ?? 'brand'\n const chrome = field?.labelPosition === 'inset' ? 'inset' : 'box'\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n inputGroupVariants({ chrome, inputStyle, inputColor }),\n className,\n )}\n {...props}\n />\n )\n}\n\nconst inputGroupAddonVariants = cva(\n 'flex h-auto cursor-text items-center justify-center gap-2 py-2 text-sm font-medium text-gray-light select-none [&_svg:not([class*=size-])]:size-4',\n {\n variants: {\n align: {\n // button addons bring their own inner padding — pull them halfway\n // into the group's px so the visual gap matches the text side\n 'inline-start': 'order-first has-[>button]:-ml-2',\n 'inline-end': 'order-last has-[>button]:-mr-2',\n },\n },\n defaultVariants: {\n align: 'inline-start',\n },\n },\n)\n\nfunction InputGroupAddon({\n className,\n align = 'inline-start',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(event) => {\n if ((event.target as HTMLElement).closest('button')) return\n event.currentTarget.parentElement?.querySelector('input')?.focus()\n }}\n {...props}\n />\n )\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n className={cn(\n 'flex items-center gap-2 text-xs text-gray-light [&_svg]:pointer-events-none [&_svg:not([class*=size-])]:size-4',\n className,\n )}\n {...props}\n />\n )\n}\n\nconst InputGroupInput = React.forwardRef<HTMLInputElement, InputProps>(\n function InputGroupInput({ className, ...props }, ref) {\n return (\n <Input\n data-slot=\"input\"\n variant=\"none\"\n className={cn('flex-1', className)}\n ref={ref}\n {...props}\n />\n )\n },\n)\n\nexport { InputGroup, InputGroupAddon, InputGroupInput, InputGroupText }\n"],"mappings":";;;;;;;;;;;;;AASA,MAAM,QACJ;AAEF,MAAM,sBAAA,GAAA,yBAAA,KACJ,oKACA;CACE,UAAU;EACR,QAAQ;GAGN,OAAO;GAEP,KAAK;GACN;EACD,YAAY;GAAE,MAAM;GAAI,SAAS;GAAI,UAAU;GAAI,OAAO;GAAI;EAC9D,YAAY;GAAE,OAAO;GAAI,MAAM;GAAI;EACpC;CACD,kBAAkB;EAChB;GACE,QAAQ;GACR,YAAY;GAEZ,OACE;GACH;EACD;GACE,QAAQ;GACR,YAAY;GACZ,YAAY;GACZ,OACE;GACH;EACD;GACE,QAAQ;GACR,YAAY;GACZ,YAAY;GACZ,OACE;GACH;EACD;GACE,QAAQ;GACR,YAAY,CAAC,WAAW,WAAW;GACnC,OACE;GACH;EACD;GACE,QAAQ;GACR,YAAY;GACZ,YAAY;GACZ,OACE;GACH;EACD;GACE,QAAQ;GACR,YAAY;GACZ,YAAY;GACZ,OACE;GACH;EACD;GACE,QAAQ;GACR,YAAY;GACZ,YAAY;GACZ,OACE;GACH;EACD;GACE,QAAQ;GACR,YAAY;GACZ,YAAY;GACZ,OACE;GACH;EACD;GAAE,QAAQ;GAAO,YAAY;GAAS,OAAO;GAAO;EACpD;GACE,QAAQ;GACR,YAAY;GACZ,YAAY;GACZ,OAAO;GACR;EACD;GACE,QAAQ;GACR,YAAY;GACZ,YAAY;GACZ,OAAO;GACR;EACD;GAAE,QAAQ;GAAS,YAAY;GAAS,OAAO;GAAkB;EACjE;GAAE,QAAQ;GAAS,YAAY;GAAQ,OAAO;GAAuB;EACtE;CACF,CACF;AAKD,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;CACxE,MAAM,QAAQA,yBAAAA,iBAAiB;CAC/B,MAAM,QAAQC,cAAAA,UAAU;CACxB,MAAM,aAAa,OAAO,cAAc,MAAM,cAAc;CAC5D,MAAM,aAAa,OAAO,cAAc,MAAM,cAAc;AAE5D,QACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,aAAU;EACV,MAAK;EACL,YAAA,GAAA,OAAA,IACE,mBAAmB;GAAE,QANZ,OAAO,kBAAkB,UAAU,UAAU;GAMzB;GAAY;GAAY,CAAC,EACtD,UACD;EACD,GAAI;EACJ,CAAA;;AAIN,MAAM,2BAAA,GAAA,yBAAA,KACJ,qJACA;CACE,UAAU,EACR,OAAO;EAGL,gBAAgB;EAChB,cAAc;EACf,EACF;CACD,iBAAiB,EACf,OAAO,gBACR;CACF,CACF;AAED,SAAS,gBAAgB,EACvB,WACA,QAAQ,gBACR,GAAG,SAC0E;AAC7E,QACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,MAAK;EACL,aAAU;EACV,cAAY;EACZ,YAAA,GAAA,OAAA,IAAc,wBAAwB,EAAE,OAAO,CAAC,EAAE,UAAU;EAC5D,UAAU,UAAU;AAClB,OAAK,MAAM,OAAuB,QAAQ,SAAS,CAAE;AACrD,SAAM,cAAc,eAAe,cAAc,QAAQ,EAAE,OAAO;;EAEpE,GAAI;EACJ,CAAA;;AAIN,SAAS,eAAe,EAAE,WAAW,GAAG,SAAuC;AAC7E,QACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;EACE,YAAA,GAAA,OAAA,IACE,kHACA,UACD;EACD,GAAI;EACJ,CAAA;;AAIN,MAAM,kBAAkBC,MAAM,WAC5B,SAAS,gBAAgB,EAAE,WAAW,GAAG,SAAS,KAAK;AACrD,QACE,iBAAA,GAAA,kBAAA,KAACC,yBAAAA,OAAD;EACE,aAAU;EACV,SAAQ;EACR,YAAA,GAAA,OAAA,IAAc,UAAU,UAAU;EAC7B;EACL,GAAI;EACJ,CAAA;EAGP"}
@@ -12,7 +12,7 @@ declare function InputGroup({
12
12
  ...props
13
13
  }: React$1.ComponentProps<'div'>): _$react_jsx_runtime0.JSX.Element;
14
14
  declare const inputGroupAddonVariants: (props?: ({
15
- align?: "inline-start" | "inline-end" | null | undefined;
15
+ align?: "inline-end" | "inline-start" | null | undefined;
16
16
  } & _$class_variance_authority_types0.ClassProp) | undefined) => string;
17
17
  declare function InputGroupAddon({
18
18
  className,
@@ -23,10 +23,7 @@ declare function InputGroupText({
23
23
  className,
24
24
  ...props
25
25
  }: React$1.ComponentProps<'span'>): _$react_jsx_runtime0.JSX.Element;
26
- declare function InputGroupInput({
27
- className,
28
- ...props
29
- }: InputProps): _$react_jsx_runtime0.JSX.Element;
26
+ declare const InputGroupInput: React$1.ForwardRefExoticComponent<Omit<InputProps, "ref"> & React$1.RefAttributes<HTMLInputElement>>;
30
27
  //#endregion
31
28
  export { InputGroup, InputGroupAddon, InputGroupInput, InputGroupText };
32
29
  //# sourceMappingURL=input-group.d.cts.map
@@ -12,7 +12,7 @@ declare function InputGroup({
12
12
  ...props
13
13
  }: React$1.ComponentProps<'div'>): _$react_jsx_runtime0.JSX.Element;
14
14
  declare const inputGroupAddonVariants: (props?: ({
15
- align?: "inline-start" | "inline-end" | null | undefined;
15
+ align?: "inline-end" | "inline-start" | null | undefined;
16
16
  } & _$class_variance_authority_types0.ClassProp) | undefined) => string;
17
17
  declare function InputGroupAddon({
18
18
  className,
@@ -23,10 +23,7 @@ declare function InputGroupText({
23
23
  className,
24
24
  ...props
25
25
  }: React$1.ComponentProps<'span'>): _$react_jsx_runtime0.JSX.Element;
26
- declare function InputGroupInput({
27
- className,
28
- ...props
29
- }: InputProps): _$react_jsx_runtime0.JSX.Element;
26
+ declare const InputGroupInput: React$1.ForwardRefExoticComponent<Omit<InputProps, "ref"> & React$1.RefAttributes<HTMLInputElement>>;
30
27
  //#endregion
31
28
  export { InputGroup, InputGroupAddon, InputGroupInput, InputGroupText };
32
29
  //# sourceMappingURL=input-group.d.ts.map