@wow-two-beta/ui 0.0.28 → 0.0.30

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 (106) hide show
  1. package/dist/actions/backToTopButton/BackToTopButton.d.ts +1 -5
  2. package/dist/actions/backToTopButton/BackToTopButton.d.ts.map +1 -1
  3. package/dist/actions/button/Button.d.ts +31 -19
  4. package/dist/actions/button/Button.d.ts.map +1 -1
  5. package/dist/actions/button/Button.variants.d.ts +8 -17
  6. package/dist/actions/button/Button.variants.d.ts.map +1 -1
  7. package/dist/actions/buttonGroup/ButtonGroup.d.ts +1 -5
  8. package/dist/actions/buttonGroup/ButtonGroup.d.ts.map +1 -1
  9. package/dist/actions/copyButton/CopyButton.d.ts +1 -4
  10. package/dist/actions/copyButton/CopyButton.d.ts.map +1 -1
  11. package/dist/actions/disclosureButton/DisclosureButton.d.ts +1 -5
  12. package/dist/actions/disclosureButton/DisclosureButton.d.ts.map +1 -1
  13. package/dist/actions/fab/FAB.d.ts +1 -4
  14. package/dist/actions/fab/FAB.d.ts.map +1 -1
  15. package/dist/actions/iconButton/IconButton.d.ts +1 -4
  16. package/dist/actions/iconButton/IconButton.d.ts.map +1 -1
  17. package/dist/actions/index.js +6 -7
  18. package/dist/actions/link/Link.d.ts +1 -4
  19. package/dist/actions/link/Link.d.ts.map +1 -1
  20. package/dist/actions/overlayButton/OverlayButton.d.ts +1 -10
  21. package/dist/actions/overlayButton/OverlayButton.d.ts.map +1 -1
  22. package/dist/actions/segmentedControl/SegmentedControl.d.ts +1 -5
  23. package/dist/actions/segmentedControl/SegmentedControl.d.ts.map +1 -1
  24. package/dist/actions/toggleButton/ToggleButton.d.ts +1 -4
  25. package/dist/actions/toggleButton/ToggleButton.d.ts.map +1 -1
  26. package/dist/actions/toggleButtonGroup/ToggleButtonGroup.d.ts +1 -5
  27. package/dist/actions/toggleButtonGroup/ToggleButtonGroup.d.ts.map +1 -1
  28. package/dist/{chunk-NTW7SDAP.js → chunk-526AMQXZ.js} +4 -4
  29. package/dist/{chunk-NTW7SDAP.js.map → chunk-526AMQXZ.js.map} +1 -1
  30. package/dist/{chunk-NC2CBGX2.js → chunk-BMABNEZX.js} +3 -4
  31. package/dist/chunk-BMABNEZX.js.map +1 -0
  32. package/dist/{chunk-ASIHQQDQ.js → chunk-CBMPWDRA.js} +4 -4
  33. package/dist/{chunk-ASIHQQDQ.js.map → chunk-CBMPWDRA.js.map} +1 -1
  34. package/dist/{chunk-6RFXTWLM.js → chunk-CKFM2H7O.js} +5 -5
  35. package/dist/{chunk-6RFXTWLM.js.map → chunk-CKFM2H7O.js.map} +1 -1
  36. package/dist/{chunk-A5JQGP5F.js → chunk-D3CGJMKB.js} +7 -8
  37. package/dist/chunk-D3CGJMKB.js.map +1 -0
  38. package/dist/{chunk-FFQENBTW.js → chunk-DWWF7QPK.js} +3 -3
  39. package/dist/{chunk-FFQENBTW.js.map → chunk-DWWF7QPK.js.map} +1 -1
  40. package/dist/{chunk-3PUV6PGJ.js → chunk-FFOGR3WH.js} +9 -9
  41. package/dist/{chunk-3PUV6PGJ.js.map → chunk-FFOGR3WH.js.map} +1 -1
  42. package/dist/{chunk-NKADHZMX.js → chunk-G7K64TW2.js} +4 -4
  43. package/dist/{chunk-NKADHZMX.js.map → chunk-G7K64TW2.js.map} +1 -1
  44. package/dist/{chunk-TDX22OWF.js → chunk-GWIFNLGS.js} +15 -5
  45. package/dist/chunk-GWIFNLGS.js.map +1 -0
  46. package/dist/{chunk-MCUDIBTG.js → chunk-HECIUFDS.js} +9 -10
  47. package/dist/chunk-HECIUFDS.js.map +1 -0
  48. package/dist/{chunk-DN7WBRIV.js → chunk-LDRFQG44.js} +11 -3
  49. package/dist/chunk-LDRFQG44.js.map +1 -0
  50. package/dist/{chunk-NLUTV5BP.js → chunk-NJDUGXFL.js} +10 -11
  51. package/dist/chunk-NJDUGXFL.js.map +1 -0
  52. package/dist/{chunk-76ZIAFWD.js → chunk-NUMFGKPY.js} +21 -3
  53. package/dist/chunk-NUMFGKPY.js.map +1 -0
  54. package/dist/{chunk-IERJ5D7R.js → chunk-NXVK3VSQ.js} +8 -8
  55. package/dist/{chunk-IERJ5D7R.js.map → chunk-NXVK3VSQ.js.map} +1 -1
  56. package/dist/{chunk-TSTJCUXX.js → chunk-VDE5B3IY.js} +8 -9
  57. package/dist/chunk-VDE5B3IY.js.map +1 -0
  58. package/dist/{chunk-4ARRGMGD.js → chunk-VZNIJCMD.js} +127 -93
  59. package/dist/chunk-VZNIJCMD.js.map +1 -0
  60. package/dist/{chunk-U5SWHGKO.js → chunk-XSTHHOAN.js} +8 -9
  61. package/dist/chunk-XSTHHOAN.js.map +1 -0
  62. package/dist/{chunk-2AUDMNHI.js → chunk-XTAFNWLG.js} +7 -8
  63. package/dist/chunk-XTAFNWLG.js.map +1 -0
  64. package/dist/chunk-ZJMDHG7B.js +125 -0
  65. package/dist/chunk-ZJMDHG7B.js.map +1 -0
  66. package/dist/display/index.js +7 -8
  67. package/dist/feedback/index.js +8 -9
  68. package/dist/forms/index.js +13 -14
  69. package/dist/hooks/index.d.ts +1 -0
  70. package/dist/hooks/index.d.ts.map +1 -1
  71. package/dist/hooks/index.js +1 -1
  72. package/dist/hooks/useDebounceHandler.d.ts +13 -0
  73. package/dist/hooks/useDebounceHandler.d.ts.map +1 -0
  74. package/dist/icons/Spinner.d.ts +6 -0
  75. package/dist/icons/Spinner.d.ts.map +1 -0
  76. package/dist/icons/index.d.ts +1 -0
  77. package/dist/icons/index.d.ts.map +1 -1
  78. package/dist/icons/index.js +3 -2
  79. package/dist/index.js +19 -20
  80. package/dist/layout/index.js +9 -10
  81. package/dist/nav/index.js +10 -11
  82. package/dist/overlays/index.js +9 -10
  83. package/dist/primitives/index.js +2 -3
  84. package/dist/utils/CssExtensions.d.ts +30 -0
  85. package/dist/utils/CssExtensions.d.ts.map +1 -0
  86. package/dist/utils/OptionalExtensions.d.ts +13 -0
  87. package/dist/utils/OptionalExtensions.d.ts.map +1 -0
  88. package/dist/utils/index.d.ts +3 -0
  89. package/dist/utils/index.d.ts.map +1 -1
  90. package/dist/utils/index.js +2 -3
  91. package/package.json +1 -1
  92. package/dist/chunk-2AUDMNHI.js.map +0 -1
  93. package/dist/chunk-4ARRGMGD.js.map +0 -1
  94. package/dist/chunk-76ZIAFWD.js.map +0 -1
  95. package/dist/chunk-A5JQGP5F.js.map +0 -1
  96. package/dist/chunk-BMBIZLO4.js +0 -34
  97. package/dist/chunk-BMBIZLO4.js.map +0 -1
  98. package/dist/chunk-DN7WBRIV.js.map +0 -1
  99. package/dist/chunk-KZ4VFY2T.js +0 -11
  100. package/dist/chunk-KZ4VFY2T.js.map +0 -1
  101. package/dist/chunk-MCUDIBTG.js.map +0 -1
  102. package/dist/chunk-NC2CBGX2.js.map +0 -1
  103. package/dist/chunk-NLUTV5BP.js.map +0 -1
  104. package/dist/chunk-TDX22OWF.js.map +0 -1
  105. package/dist/chunk-TSTJCUXX.js.map +0 -1
  106. package/dist/chunk-U5SWHGKO.js.map +0 -1
@@ -1,6 +1,6 @@
1
- import { tv } from './chunk-BMBIZLO4.js';
2
- import { Icon } from './chunk-TDX22OWF.js';
3
- import { cn } from './chunk-KZ4VFY2T.js';
1
+ import { Icon } from './chunk-GWIFNLGS.js';
2
+ import { tv } from './chunk-ZJMDHG7B.js';
3
+ import { cn } from './chunk-LDRFQG44.js';
4
4
  import { forwardRef } from 'react';
5
5
  import { jsx, jsxs } from 'react/jsx-runtime';
6
6
  import { X } from 'lucide-react';
@@ -155,5 +155,5 @@ function isInRange(d, start, end) {
155
155
  }
156
156
 
157
157
  export { Kbd, MONTHS_LONG, Tag, WEEKDAYS_SHORT, addDays, addMonths, buildMonthGrid, formatISODate, formatISOTime, isDateDisabled, isInRange, isSameDay, isToday, parseISODate, parseISOTime, startOfDay, startOfMonth, tagVariants };
158
- //# sourceMappingURL=chunk-6RFXTWLM.js.map
159
- //# sourceMappingURL=chunk-6RFXTWLM.js.map
158
+ //# sourceMappingURL=chunk-CKFM2H7O.js.map
159
+ //# sourceMappingURL=chunk-CKFM2H7O.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/display/kbd/Kbd.tsx","../src/display/tag/Tag.variants.ts","../src/display/tag/Tag.tsx","../src/forms/DateExtensions.ts"],"names":["forwardRef","jsx"],"mappings":"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","file":"chunk-6RFXTWLM.js","sourcesContent":["import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\n\nexport type KbdProps = ComponentPropsWithoutRef<'kbd'>;\n\n/**\n * Keyboard key affordance — `<kbd>` styled with subtle border and inset\n * shadow. Single key per `<Kbd>`; chain via `<Kbd>⌘</Kbd> + <Kbd>K</Kbd>`.\n */\nexport const Kbd = forwardRef<HTMLElement, KbdProps>(({ className, ...props }, ref) => (\n <kbd\n ref={ref}\n className={cn(\n 'inline-flex h-5 min-w-5 items-center justify-center rounded-sm border border-border',\n 'bg-muted px-1.5 font-mono text-xs text-muted-foreground shadow-[inset_0_-1px_0_0_rgb(0_0_0/0.05)]',\n className,\n )}\n {...props}\n />\n));\nKbd.displayName = 'Kbd';\n","import { tv, type VariantProps } from '../../utils';\n\nexport const tagVariants = tv({\n base: 'inline-flex items-center gap-1 rounded-md border border-border bg-card px-2 py-0.5 text-xs font-medium text-card-foreground',\n variants: {\n variant: {\n neutral: '',\n brand: 'border-transparent bg-primary-soft text-primary-soft-foreground',\n success: 'border-transparent bg-success-soft text-success-soft-foreground',\n warning: 'border-transparent bg-warning-soft text-warning-soft-foreground',\n danger: 'border-transparent bg-destructive-soft text-destructive-soft-foreground',\n info: 'border-transparent bg-info-soft text-info-soft-foreground',\n },\n },\n defaultVariants: {\n variant: 'neutral',\n },\n});\n\nexport type TagVariants = VariantProps<typeof tagVariants>;\n","import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport { X } from 'lucide-react';\nimport { cn } from '../../utils';\nimport { Icon } from '../../icons';\nimport { tagVariants, type TagVariants } from './Tag.variants';\n\nexport interface TagProps\n extends Omit<ComponentPropsWithoutRef<'span'>, 'children'>,\n TagVariants {\n children?: ReactNode;\n /** Show a close (×) button. Pass a handler to receive the click. */\n onClose?: () => void;\n /** Accessible label for the close button. Default `\"Remove\"`. */\n closeLabel?: string;\n}\n\n/**\n * Pill with an optional close button. The close button is a raw `<button>`\n * (not `IconButton`) so this stays a strict atom.\n */\nexport const Tag = forwardRef<HTMLSpanElement, TagProps>(\n ({ children, onClose, closeLabel = 'Remove', variant, className, ...props }, ref) => (\n <span ref={ref} className={cn(tagVariants({ variant }), className)} {...props}>\n {children}\n {onClose && (\n <button\n type=\"button\"\n aria-label={closeLabel}\n onClick={onClose}\n className=\"-mr-1 inline-flex h-4 w-4 items-center justify-center rounded-sm text-muted-foreground hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\"\n >\n <Icon icon={X} size={12} />\n </button>\n )}\n </span>\n ),\n);\nTag.displayName = 'Tag';\n","// Shared date helpers for Calendar / DatePicker / DateField / RangeCalendar.\n// Co-located in `forms/` so imports stay within-domain.\n//\n// Native Date only — no date-fns / luxon dependency. All helpers operate on\n// local time (no UTC math) since calendar UIs are inherently local.\n\nexport const WEEKDAYS_SHORT = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\nexport const MONTHS_LONG = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\nexport function startOfDay(d: Date): Date {\n const c = new Date(d);\n c.setHours(0, 0, 0, 0);\n return c;\n}\n\nexport function isSameDay(a: Date | null | undefined, b: Date | null | undefined): boolean {\n if (!a || !b) return false;\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n}\n\nexport function isToday(d: Date): boolean {\n return isSameDay(d, new Date());\n}\n\nexport function addMonths(d: Date, n: number): Date {\n const c = new Date(d);\n c.setMonth(c.getMonth() + n);\n return c;\n}\n\nexport function addDays(d: Date, n: number): Date {\n const c = new Date(d);\n c.setDate(c.getDate() + n);\n return c;\n}\n\nexport function startOfMonth(d: Date): Date {\n return new Date(d.getFullYear(), d.getMonth(), 1);\n}\n\nexport function daysInMonth(year: number, month: number): number {\n // month is 0-indexed; setting day 0 of next month gives last day of month.\n return new Date(year, month + 1, 0).getDate();\n}\n\n/**\n * Build the 6-week (42-cell) grid that the calendar UI renders.\n * Cells outside the target month carry `outOfMonth: true`.\n */\nexport function buildMonthGrid(year: number, month: number): { date: Date; outOfMonth: boolean }[] {\n const first = new Date(year, month, 1);\n const firstWeekday = first.getDay(); // 0 (Sun) – 6 (Sat)\n const start = addDays(first, -firstWeekday);\n const cells: { date: Date; outOfMonth: boolean }[] = [];\n for (let i = 0; i < 42; i++) {\n const date = addDays(start, i);\n cells.push({ date, outOfMonth: date.getMonth() !== month });\n }\n return cells;\n}\n\n/** Format Date → \"YYYY-MM-DD\" for native `<input type=\"date\">` value. */\nexport function formatISODate(d: Date | null | undefined): string {\n if (!d) return '';\n const year = d.getFullYear();\n const month = String(d.getMonth() + 1).padStart(2, '0');\n const day = String(d.getDate()).padStart(2, '0');\n return `${year}-${month}-${day}`;\n}\n\n/** Parse \"YYYY-MM-DD\" → Date (local time). Returns null for invalid input. */\nexport function parseISODate(s: string | null | undefined): Date | null {\n if (!s) return null;\n const m = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(s);\n if (!m) return null;\n const [, y, mo, d] = m;\n if (!y || !mo || !d) return null;\n const date = new Date(Number(y), Number(mo) - 1, Number(d));\n if (isNaN(date.getTime())) return null;\n return date;\n}\n\n/** Format Date → \"HH:MM\" for native `<input type=\"time\">` value. */\nexport function formatISOTime(d: Date | null | undefined): string {\n if (!d) return '';\n const h = String(d.getHours()).padStart(2, '0');\n const m = String(d.getMinutes()).padStart(2, '0');\n return `${h}:${m}`;\n}\n\n/** Parse \"HH:MM\" → { hours, minutes }. Returns null for invalid input. */\nexport function parseISOTime(s: string | null | undefined): { hours: number; minutes: number } | null {\n if (!s) return null;\n const m = /^(\\d{2}):(\\d{2})$/.exec(s);\n if (!m) return null;\n const [, h, mi] = m;\n if (!h || !mi) return null;\n const hours = Number(h);\n const minutes = Number(mi);\n if (hours < 0 || hours > 23 || minutes < 0 || minutes > 59) return null;\n return { hours, minutes };\n}\n\nexport function clampDate(d: Date, min?: Date | null, max?: Date | null): Date {\n if (min && d < min) return min;\n if (max && d > max) return max;\n return d;\n}\n\nexport function isDateDisabled(\n d: Date,\n options: { min?: Date | null; max?: Date | null; isDisabled?: (d: Date) => boolean },\n): boolean {\n const { min, max, isDisabled } = options;\n if (min && startOfDay(d) < startOfDay(min)) return true;\n if (max && startOfDay(d) > startOfDay(max)) return true;\n if (isDisabled?.(d)) return true;\n return false;\n}\n\nexport function isInRange(\n d: Date,\n start: Date | null | undefined,\n end: Date | null | undefined,\n): boolean {\n if (!start || !end) return false;\n const t = startOfDay(d).getTime();\n const s = startOfDay(start).getTime();\n const e = startOfDay(end).getTime();\n return t >= Math.min(s, e) && t <= Math.max(s, e);\n}\n"]}
1
+ {"version":3,"sources":["../src/display/kbd/Kbd.tsx","../src/display/tag/Tag.variants.ts","../src/display/tag/Tag.tsx","../src/forms/DateExtensions.ts"],"names":["forwardRef","jsx"],"mappings":"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","file":"chunk-CKFM2H7O.js","sourcesContent":["import { forwardRef, type ComponentPropsWithoutRef } from 'react';\nimport { cn } from '../../utils';\n\nexport type KbdProps = ComponentPropsWithoutRef<'kbd'>;\n\n/**\n * Keyboard key affordance — `<kbd>` styled with subtle border and inset\n * shadow. Single key per `<Kbd>`; chain via `<Kbd>⌘</Kbd> + <Kbd>K</Kbd>`.\n */\nexport const Kbd = forwardRef<HTMLElement, KbdProps>(({ className, ...props }, ref) => (\n <kbd\n ref={ref}\n className={cn(\n 'inline-flex h-5 min-w-5 items-center justify-center rounded-sm border border-border',\n 'bg-muted px-1.5 font-mono text-xs text-muted-foreground shadow-[inset_0_-1px_0_0_rgb(0_0_0/0.05)]',\n className,\n )}\n {...props}\n />\n));\nKbd.displayName = 'Kbd';\n","import { tv, type VariantProps } from '../../utils';\n\nexport const tagVariants = tv({\n base: 'inline-flex items-center gap-1 rounded-md border border-border bg-card px-2 py-0.5 text-xs font-medium text-card-foreground',\n variants: {\n variant: {\n neutral: '',\n brand: 'border-transparent bg-primary-soft text-primary-soft-foreground',\n success: 'border-transparent bg-success-soft text-success-soft-foreground',\n warning: 'border-transparent bg-warning-soft text-warning-soft-foreground',\n danger: 'border-transparent bg-destructive-soft text-destructive-soft-foreground',\n info: 'border-transparent bg-info-soft text-info-soft-foreground',\n },\n },\n defaultVariants: {\n variant: 'neutral',\n },\n});\n\nexport type TagVariants = VariantProps<typeof tagVariants>;\n","import { forwardRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';\nimport { X } from 'lucide-react';\nimport { cn } from '../../utils';\nimport { Icon } from '../../icons';\nimport { tagVariants, type TagVariants } from './Tag.variants';\n\nexport interface TagProps\n extends Omit<ComponentPropsWithoutRef<'span'>, 'children'>,\n TagVariants {\n children?: ReactNode;\n /** Show a close (×) button. Pass a handler to receive the click. */\n onClose?: () => void;\n /** Accessible label for the close button. Default `\"Remove\"`. */\n closeLabel?: string;\n}\n\n/**\n * Pill with an optional close button. The close button is a raw `<button>`\n * (not `IconButton`) so this stays a strict atom.\n */\nexport const Tag = forwardRef<HTMLSpanElement, TagProps>(\n ({ children, onClose, closeLabel = 'Remove', variant, className, ...props }, ref) => (\n <span ref={ref} className={cn(tagVariants({ variant }), className)} {...props}>\n {children}\n {onClose && (\n <button\n type=\"button\"\n aria-label={closeLabel}\n onClick={onClose}\n className=\"-mr-1 inline-flex h-4 w-4 items-center justify-center rounded-sm text-muted-foreground hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring\"\n >\n <Icon icon={X} size={12} />\n </button>\n )}\n </span>\n ),\n);\nTag.displayName = 'Tag';\n","// Shared date helpers for Calendar / DatePicker / DateField / RangeCalendar.\n// Co-located in `forms/` so imports stay within-domain.\n//\n// Native Date only — no date-fns / luxon dependency. All helpers operate on\n// local time (no UTC math) since calendar UIs are inherently local.\n\nexport const WEEKDAYS_SHORT = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\nexport const MONTHS_LONG = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\nexport function startOfDay(d: Date): Date {\n const c = new Date(d);\n c.setHours(0, 0, 0, 0);\n return c;\n}\n\nexport function isSameDay(a: Date | null | undefined, b: Date | null | undefined): boolean {\n if (!a || !b) return false;\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n );\n}\n\nexport function isToday(d: Date): boolean {\n return isSameDay(d, new Date());\n}\n\nexport function addMonths(d: Date, n: number): Date {\n const c = new Date(d);\n c.setMonth(c.getMonth() + n);\n return c;\n}\n\nexport function addDays(d: Date, n: number): Date {\n const c = new Date(d);\n c.setDate(c.getDate() + n);\n return c;\n}\n\nexport function startOfMonth(d: Date): Date {\n return new Date(d.getFullYear(), d.getMonth(), 1);\n}\n\nexport function daysInMonth(year: number, month: number): number {\n // month is 0-indexed; setting day 0 of next month gives last day of month.\n return new Date(year, month + 1, 0).getDate();\n}\n\n/**\n * Build the 6-week (42-cell) grid that the calendar UI renders.\n * Cells outside the target month carry `outOfMonth: true`.\n */\nexport function buildMonthGrid(year: number, month: number): { date: Date; outOfMonth: boolean }[] {\n const first = new Date(year, month, 1);\n const firstWeekday = first.getDay(); // 0 (Sun) – 6 (Sat)\n const start = addDays(first, -firstWeekday);\n const cells: { date: Date; outOfMonth: boolean }[] = [];\n for (let i = 0; i < 42; i++) {\n const date = addDays(start, i);\n cells.push({ date, outOfMonth: date.getMonth() !== month });\n }\n return cells;\n}\n\n/** Format Date → \"YYYY-MM-DD\" for native `<input type=\"date\">` value. */\nexport function formatISODate(d: Date | null | undefined): string {\n if (!d) return '';\n const year = d.getFullYear();\n const month = String(d.getMonth() + 1).padStart(2, '0');\n const day = String(d.getDate()).padStart(2, '0');\n return `${year}-${month}-${day}`;\n}\n\n/** Parse \"YYYY-MM-DD\" → Date (local time). Returns null for invalid input. */\nexport function parseISODate(s: string | null | undefined): Date | null {\n if (!s) return null;\n const m = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(s);\n if (!m) return null;\n const [, y, mo, d] = m;\n if (!y || !mo || !d) return null;\n const date = new Date(Number(y), Number(mo) - 1, Number(d));\n if (isNaN(date.getTime())) return null;\n return date;\n}\n\n/** Format Date → \"HH:MM\" for native `<input type=\"time\">` value. */\nexport function formatISOTime(d: Date | null | undefined): string {\n if (!d) return '';\n const h = String(d.getHours()).padStart(2, '0');\n const m = String(d.getMinutes()).padStart(2, '0');\n return `${h}:${m}`;\n}\n\n/** Parse \"HH:MM\" → { hours, minutes }. Returns null for invalid input. */\nexport function parseISOTime(s: string | null | undefined): { hours: number; minutes: number } | null {\n if (!s) return null;\n const m = /^(\\d{2}):(\\d{2})$/.exec(s);\n if (!m) return null;\n const [, h, mi] = m;\n if (!h || !mi) return null;\n const hours = Number(h);\n const minutes = Number(mi);\n if (hours < 0 || hours > 23 || minutes < 0 || minutes > 59) return null;\n return { hours, minutes };\n}\n\nexport function clampDate(d: Date, min?: Date | null, max?: Date | null): Date {\n if (min && d < min) return min;\n if (max && d > max) return max;\n return d;\n}\n\nexport function isDateDisabled(\n d: Date,\n options: { min?: Date | null; max?: Date | null; isDisabled?: (d: Date) => boolean },\n): boolean {\n const { min, max, isDisabled } = options;\n if (min && startOfDay(d) < startOfDay(min)) return true;\n if (max && startOfDay(d) > startOfDay(max)) return true;\n if (isDisabled?.(d)) return true;\n return false;\n}\n\nexport function isInRange(\n d: Date,\n start: Date | null | undefined,\n end: Date | null | undefined,\n): boolean {\n if (!start || !end) return false;\n const t = startOfDay(d).getTime();\n const s = startOfDay(start).getTime();\n const e = startOfDay(end).getTime();\n return t >= Math.min(s, e) && t <= Math.max(s, e);\n}\n"]}
@@ -1,9 +1,8 @@
1
- import { OverlayChromeProvider, OverlayBody, OverlayCloseButton, OverlayDescription, OverlayFooter, OverlayHeader, OverlayTitle } from './chunk-NTW7SDAP.js';
2
- import { Backdrop } from './chunk-ASIHQQDQ.js';
3
- import { useControlled } from './chunk-76ZIAFWD.js';
4
- import { Slot, Portal, ScrollLockProvider, DismissableLayer } from './chunk-NC2CBGX2.js';
5
- import { composeRefs } from './chunk-DN7WBRIV.js';
6
- import { cn } from './chunk-KZ4VFY2T.js';
1
+ import { OverlayChromeProvider, OverlayBody, OverlayCloseButton, OverlayDescription, OverlayFooter, OverlayHeader, OverlayTitle } from './chunk-526AMQXZ.js';
2
+ import { Backdrop } from './chunk-CBMPWDRA.js';
3
+ import { useControlled } from './chunk-NUMFGKPY.js';
4
+ import { Slot, Portal, ScrollLockProvider, DismissableLayer } from './chunk-BMABNEZX.js';
5
+ import { composeRefs, cn } from './chunk-LDRFQG44.js';
7
6
  import { createContext, forwardRef, useCallback, useMemo, useContext, useRef, useId } from 'react';
8
7
  import { FocusScope } from '@radix-ui/react-focus-scope';
9
8
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -136,5 +135,5 @@ Dialog.Footer = DialogFooter;
136
135
  Dialog.Close = DialogClose;
137
136
 
138
137
  export { Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger };
139
- //# sourceMappingURL=chunk-A5JQGP5F.js.map
140
- //# sourceMappingURL=chunk-A5JQGP5F.js.map
138
+ //# sourceMappingURL=chunk-D3CGJMKB.js.map
139
+ //# sourceMappingURL=chunk-D3CGJMKB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/overlays/dialog/Dialog.tsx"],"names":["DialogTrigger","DialogContent"],"mappings":"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","file":"chunk-D3CGJMKB.js","sourcesContent":["import {\n createContext,\n forwardRef,\n useCallback,\n useContext,\n useId,\n useMemo,\n useRef,\n type ButtonHTMLAttributes,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { cn, composeRefs } from '../../utils';\nimport { useControlled } from '../../hooks';\nimport { DismissableLayer, Portal, ScrollLockProvider, Slot } from '../../primitives';\nimport { Backdrop } from '../backdrop';\nimport {\n OverlayBody,\n OverlayChromeProvider,\n OverlayCloseButton,\n OverlayDescription,\n OverlayFooter,\n OverlayHeader,\n OverlayTitle,\n type OverlayChromeContextValue,\n} from '../OverlayChrome';\n\ninterface DialogContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n triggerRef: React.MutableRefObject<HTMLElement | null>;\n titleId: string;\n descriptionId: string;\n role: 'dialog' | 'alertdialog';\n dismissOnOutsideClick: boolean;\n dismissOnEscape: boolean;\n}\n\nconst DialogContext = createContext<DialogContextValue | null>(null);\n\nfunction useDialogContext() {\n const ctx = useContext(DialogContext);\n if (!ctx) throw new Error('Dialog.* must be used inside <Dialog>');\n return ctx;\n}\n\nexport interface DialogProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n dismissOnOutsideClick?: boolean;\n dismissOnEscape?: boolean;\n /** Internal — `AlertDialog` overrides this. */\n role?: 'dialog' | 'alertdialog';\n children: ReactNode;\n}\n\nexport function Dialog({\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n dismissOnOutsideClick = true,\n dismissOnEscape = true,\n role = 'dialog',\n children,\n}: DialogProps) {\n const [open, setOpen] = useControlled({\n controlled: openProp,\n default: defaultOpen,\n onChange: onOpenChange,\n });\n const triggerRef = useRef<HTMLElement | null>(null);\n const titleId = useId();\n const descriptionId = useId();\n\n const ctx = useMemo<DialogContextValue>(\n () => ({\n open,\n setOpen,\n triggerRef,\n titleId,\n descriptionId,\n role,\n dismissOnOutsideClick,\n dismissOnEscape,\n }),\n [open, setOpen, titleId, descriptionId, role, dismissOnOutsideClick, dismissOnEscape],\n );\n\n return <DialogContext.Provider value={ctx}>{children}</DialogContext.Provider>;\n}\n\nexport interface DialogTriggerProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n asChild?: boolean;\n children: ReactNode;\n}\n\nexport const DialogTrigger = forwardRef<HTMLButtonElement, DialogTriggerProps>(\n function DialogTrigger({ asChild, onClick, children, ...rest }, forwardedRef) {\n const ctx = useDialogContext();\n const Component = asChild ? Slot : 'button';\n return (\n <Component\n ref={composeRefs(forwardedRef, ctx.triggerRef as React.MutableRefObject<HTMLButtonElement | null>) as never}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={ctx.open}\n data-state={ctx.open ? 'open' : 'closed'}\n onClick={(e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n ctx.setOpen(true);\n }}\n {...rest}\n >\n {children}\n </Component>\n );\n },\n);\n\nexport interface DialogContentProps extends HTMLAttributes<HTMLDivElement> {\n /** Disable the default backdrop. */\n hideBackdrop?: boolean;\n /** Apply backdrop blur. */\n blur?: boolean;\n children: ReactNode;\n}\n\nexport const DialogContent = forwardRef<HTMLDivElement, DialogContentProps>(\n function DialogContent(\n { hideBackdrop, blur, className, children, ...rest },\n forwardedRef,\n ) {\n const ctx = useDialogContext();\n\n const close = useCallback(() => {\n ctx.setOpen(false);\n requestAnimationFrame(() => ctx.triggerRef.current?.focus());\n }, [ctx]);\n\n const chromeCtx = useMemo<OverlayChromeContextValue>(\n () => ({ titleId: ctx.titleId, descriptionId: ctx.descriptionId, close }),\n [ctx.titleId, ctx.descriptionId, close],\n );\n\n if (!ctx.open) return null;\n return (\n <Portal>\n <ScrollLockProvider>\n {!hideBackdrop && (\n <Backdrop\n inline\n blur={blur}\n onClick={() => {\n if (ctx.dismissOnOutsideClick) ctx.setOpen(false);\n }}\n />\n )}\n <div className=\"fixed inset-0 z-50 grid place-items-center overflow-y-auto p-4\">\n <FocusScope asChild trapped loop>\n <DismissableLayer\n disableEscape={!ctx.dismissOnEscape}\n onEscape={() => ctx.setOpen(false)}\n disableOutsideClick\n >\n <div\n ref={forwardedRef}\n role={ctx.role}\n aria-modal=\"true\"\n aria-labelledby={ctx.titleId}\n aria-describedby={ctx.descriptionId}\n data-state=\"open\"\n className={cn(\n 'relative w-full max-w-lg rounded-lg border border-border bg-background p-6 shadow-lg outline-none animate-in fade-in-0 zoom-in-95',\n className,\n )}\n {...rest}\n >\n <OverlayChromeProvider value={chromeCtx}>{children}</OverlayChromeProvider>\n </div>\n </DismissableLayer>\n </FocusScope>\n </div>\n </ScrollLockProvider>\n </Portal>\n );\n },\n);\n\n// Re-export shared chrome subcomponents under the Dialog namespace.\nexport const DialogHeader = OverlayHeader;\nexport const DialogTitle = OverlayTitle;\nexport const DialogDescription = OverlayDescription;\nexport const DialogBody = OverlayBody;\nexport const DialogFooter = OverlayFooter;\nexport const DialogClose = OverlayCloseButton;\n\ntype DialogComponent = typeof Dialog & {\n Trigger: typeof DialogTrigger;\n Content: typeof DialogContent;\n Header: typeof DialogHeader;\n Title: typeof DialogTitle;\n Description: typeof DialogDescription;\n Body: typeof DialogBody;\n Footer: typeof DialogFooter;\n Close: typeof DialogClose;\n};\n\n(Dialog as DialogComponent).Trigger = DialogTrigger;\n(Dialog as DialogComponent).Content = DialogContent;\n(Dialog as DialogComponent).Header = DialogHeader;\n(Dialog as DialogComponent).Title = DialogTitle;\n(Dialog as DialogComponent).Description = DialogDescription;\n(Dialog as DialogComponent).Body = DialogBody;\n(Dialog as DialogComponent).Footer = DialogFooter;\n(Dialog as DialogComponent).Close = DialogClose;\n\nexport default Dialog as DialogComponent;\n"]}
@@ -1,4 +1,4 @@
1
- import { tv } from './chunk-BMBIZLO4.js';
1
+ import { tv } from './chunk-ZJMDHG7B.js';
2
2
 
3
3
  // src/forms/listbox/Listbox.variants.ts
4
4
  var listboxVariants = tv({
@@ -27,5 +27,5 @@ var listboxEmptyVariants = tv({
27
27
  });
28
28
 
29
29
  export { listboxEmptyVariants, listboxGroupLabelVariants, listboxItemVariants, listboxSeparatorVariants, listboxVariants };
30
- //# sourceMappingURL=chunk-FFQENBTW.js.map
31
- //# sourceMappingURL=chunk-FFQENBTW.js.map
30
+ //# sourceMappingURL=chunk-DWWF7QPK.js.map
31
+ //# sourceMappingURL=chunk-DWWF7QPK.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/forms/listbox/Listbox.variants.ts"],"names":[],"mappings":";;;AAEO,IAAM,kBAAkB,EAAA,CAAG;AAAA,EAChC,IAAA,EAAM;AACR,CAAC;AAEM,IAAM,sBAAsB,EAAA,CAAG;AAAA,EACpC,IAAA,EAAM,yGAAA;AAAA,EACN,QAAA,EAAU;AAAA,IACR,KAAA,EAAO;AAAA,MACL,OAAA,EAAS,yBAAA;AAAA,MACT,MAAA,EAAQ,0BAAA;AAAA,MACR,QAAA,EAAU,8CAAA;AAAA,MACV,QAAA,EAAU;AAAA;AACZ,GACF;AAAA,EACA,eAAA,EAAiB,EAAE,KAAA,EAAO,SAAA;AAC5B,CAAC;AAEM,IAAM,4BAA4B,EAAA,CAAG;AAAA,EAC1C,IAAA,EAAM;AACR,CAAC;AAEM,IAAM,2BAA2B,EAAA,CAAG;AAAA,EACzC,IAAA,EAAM;AACR,CAAC;AAEM,IAAM,uBAAuB,EAAA,CAAG;AAAA,EACrC,IAAA,EAAM;AACR,CAAC","file":"chunk-FFQENBTW.js","sourcesContent":["import { tv, type VariantProps } from '../../utils';\n\nexport const listboxVariants = tv({\n base: 'flex max-h-72 flex-col gap-0.5 overflow-y-auto rounded-md border border-border bg-popover p-1 text-sm text-popover-foreground shadow-md outline-none',\n});\n\nexport const listboxItemVariants = tv({\n base: 'relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none',\n variants: {\n state: {\n default: 'text-popover-foreground',\n active: 'bg-muted text-foreground',\n selected: 'bg-primary-soft text-primary-soft-foreground',\n disabled: 'pointer-events-none opacity-50',\n },\n },\n defaultVariants: { state: 'default' },\n});\n\nexport const listboxGroupLabelVariants = tv({\n base: 'px-2 py-1.5 text-xs font-semibold text-muted-foreground',\n});\n\nexport const listboxSeparatorVariants = tv({\n base: '-mx-1 my-1 h-px bg-border',\n});\n\nexport const listboxEmptyVariants = tv({\n base: 'px-2 py-6 text-center text-sm text-muted-foreground',\n});\n\nexport type ListboxVariants = VariantProps<typeof listboxVariants>;\nexport type ListboxItemVariants = VariantProps<typeof listboxItemVariants>;\n"]}
1
+ {"version":3,"sources":["../src/forms/listbox/Listbox.variants.ts"],"names":[],"mappings":";;;AAEO,IAAM,kBAAkB,EAAA,CAAG;AAAA,EAChC,IAAA,EAAM;AACR,CAAC;AAEM,IAAM,sBAAsB,EAAA,CAAG;AAAA,EACpC,IAAA,EAAM,yGAAA;AAAA,EACN,QAAA,EAAU;AAAA,IACR,KAAA,EAAO;AAAA,MACL,OAAA,EAAS,yBAAA;AAAA,MACT,MAAA,EAAQ,0BAAA;AAAA,MACR,QAAA,EAAU,8CAAA;AAAA,MACV,QAAA,EAAU;AAAA;AACZ,GACF;AAAA,EACA,eAAA,EAAiB,EAAE,KAAA,EAAO,SAAA;AAC5B,CAAC;AAEM,IAAM,4BAA4B,EAAA,CAAG;AAAA,EAC1C,IAAA,EAAM;AACR,CAAC;AAEM,IAAM,2BAA2B,EAAA,CAAG;AAAA,EACzC,IAAA,EAAM;AACR,CAAC;AAEM,IAAM,uBAAuB,EAAA,CAAG;AAAA,EACrC,IAAA,EAAM;AACR,CAAC","file":"chunk-DWWF7QPK.js","sourcesContent":["import { tv, type VariantProps } from '../../utils';\n\nexport const listboxVariants = tv({\n base: 'flex max-h-72 flex-col gap-0.5 overflow-y-auto rounded-md border border-border bg-popover p-1 text-sm text-popover-foreground shadow-md outline-none',\n});\n\nexport const listboxItemVariants = tv({\n base: 'relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none',\n variants: {\n state: {\n default: 'text-popover-foreground',\n active: 'bg-muted text-foreground',\n selected: 'bg-primary-soft text-primary-soft-foreground',\n disabled: 'pointer-events-none opacity-50',\n },\n },\n defaultVariants: { state: 'default' },\n});\n\nexport const listboxGroupLabelVariants = tv({\n base: 'px-2 py-1.5 text-xs font-semibold text-muted-foreground',\n});\n\nexport const listboxSeparatorVariants = tv({\n base: '-mx-1 my-1 h-px bg-border',\n});\n\nexport const listboxEmptyVariants = tv({\n base: 'px-2 py-6 text-center text-sm text-muted-foreground',\n});\n\nexport type ListboxVariants = VariantProps<typeof listboxVariants>;\nexport type ListboxItemVariants = VariantProps<typeof listboxItemVariants>;\n"]}
@@ -1,10 +1,10 @@
1
- import { Spinner } from './chunk-NKADHZMX.js';
2
- import { Backdrop } from './chunk-ASIHQQDQ.js';
3
- import { tv } from './chunk-BMBIZLO4.js';
4
- import { useReducedMotion, useControlled } from './chunk-76ZIAFWD.js';
5
- import { Icon } from './chunk-TDX22OWF.js';
6
- import { Portal, Announce } from './chunk-NC2CBGX2.js';
7
- import { cn } from './chunk-KZ4VFY2T.js';
1
+ import { Spinner } from './chunk-G7K64TW2.js';
2
+ import { Backdrop } from './chunk-CBMPWDRA.js';
3
+ import { useReducedMotion, useControlled } from './chunk-NUMFGKPY.js';
4
+ import { Icon } from './chunk-GWIFNLGS.js';
5
+ import { tv } from './chunk-ZJMDHG7B.js';
6
+ import { Portal, Announce } from './chunk-BMABNEZX.js';
7
+ import { cn } from './chunk-LDRFQG44.js';
8
8
  import { forwardRef, createContext, useState, Children, isValidElement, useEffect, useMemo, useRef, useContext, useId, useCallback } from 'react';
9
9
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
10
10
  import { X, Check, TrendingUp, TrendingDown, Minus, ChevronDown, Bell } from 'lucide-react';
@@ -1477,5 +1477,5 @@ var NotificationCenter = NotificationCenterInner;
1477
1477
  NotificationCenter.Item = NotificationItem;
1478
1478
 
1479
1479
  export { Alert, AlertSimple, Banner, BannerSimple, Callout, InlineSpinner, LiveCursor, LoadingOverlay, LoadingState, MeterBar, NotificationCenter, NotificationItem, OnboardingChecklist, OnboardingChecklistTask, PresenceIndicator, ProgressBar, ProgressCircle, ProgressSteps, Skeleton, StatusIndicator, Toast, ToastSimple, Toaster, Tour, TrendIndicator, TypingIndicator, UndoBar, alertSimpleVariants, bannerSimpleVariants, progressFillVariants, progressTrackVariants, skeletonVariants, toastSimpleVariants, toaster, useOnboardingChecklist, useToaster };
1480
- //# sourceMappingURL=chunk-3PUV6PGJ.js.map
1481
- //# sourceMappingURL=chunk-3PUV6PGJ.js.map
1480
+ //# sourceMappingURL=chunk-FFOGR3WH.js.map
1481
+ //# sourceMappingURL=chunk-FFOGR3WH.js.map