themelia-react-ui 2.0.2 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/CHANGELOG.md +17 -7
  2. package/README.md +9 -13
  3. package/THIRD_PARTY_NOTICES.md +6 -12
  4. package/dist/{auth-ax2BqjrI.js → auth-BGua8ouh.js} +2 -2
  5. package/dist/{auth-ax2BqjrI.js.map → auth-BGua8ouh.js.map} +1 -1
  6. package/dist/base/cascader.js +1 -1
  7. package/dist/base/combobox.js +2 -2
  8. package/dist/base/date-pickers.js +2 -2
  9. package/dist/base/popover-menu.js +1 -1
  10. package/dist/base/popover.js +1 -1
  11. package/dist/base/sheet.js +1 -1
  12. package/dist/base/sidebar.js +1 -1
  13. package/dist/base/value-inputs.js +1 -1
  14. package/dist/blocks/commerce.js +1 -1
  15. package/dist/{combobox-xCQ2RMNE.js → combobox-DaHESuiL.js} +154 -108
  16. package/dist/combobox-DaHESuiL.js.map +1 -0
  17. package/dist/{combobox-C0EQW6dr.js → combobox-Dxo2fAYQ.js} +342 -340
  18. package/dist/combobox-Dxo2fAYQ.js.map +1 -0
  19. package/dist/{comments-BYYlTA8E.js → comments-DD0DUPwJ.js} +4 -4
  20. package/dist/{comments-BYYlTA8E.js.map → comments-DD0DUPwJ.js.map} +1 -1
  21. package/dist/components/base/combobox/combobox-field.d.ts +16 -0
  22. package/dist/components/ui/combobox-dismiss.d.ts +16 -0
  23. package/dist/components/ui/combobox.d.ts +11 -6
  24. package/dist/components/ui/dialog.d.ts +1 -1
  25. package/dist/components/ui/popover.d.ts +1 -1
  26. package/dist/components/ui/sheet.d.ts +1 -1
  27. package/dist/{date-picker-ay0Pha_a.js → date-picker-B2K3ucWn.js} +2 -2
  28. package/dist/{date-picker-ay0Pha_a.js.map → date-picker-B2K3ucWn.js.map} +1 -1
  29. package/dist/{date-pickers-Ccw8DL2b.js → date-pickers-Ds8gLaoP.js} +3 -3
  30. package/dist/{date-pickers-Ccw8DL2b.js.map → date-pickers-Ds8gLaoP.js.map} +1 -1
  31. package/dist/features/activities.js +2 -2
  32. package/dist/features/async-preview.js +1 -1
  33. package/dist/features/combobox.js +1 -1
  34. package/dist/features/comments.js +1 -1
  35. package/dist/features/data-view.js +2 -2
  36. package/dist/features/email-composer.js +2 -2
  37. package/dist/features/event-calendar.js +1 -1
  38. package/dist/features/filters.js +1 -1
  39. package/dist/features/global-search.js +1 -1
  40. package/dist/features/map.js +1 -1
  41. package/dist/features/media-library.js +1 -1
  42. package/dist/features/mentions.js +1 -1
  43. package/dist/features/overlays.js +1 -1
  44. package/dist/features/products.js +1 -1
  45. package/dist/features/resource-assignment.js +1 -1
  46. package/dist/features/schema-form.js +1 -1
  47. package/dist/features/suggestions.js +1 -1
  48. package/dist/features/theme-tweaker.js +2 -2
  49. package/dist/{filters-BGfvjP4d.js → filters-DJVAveHA.js} +4 -4
  50. package/dist/{filters-BGfvjP4d.js.map → filters-DJVAveHA.js.map} +1 -1
  51. package/dist/{header-CGXuhcRm.js → header-BSfIEWbI.js} +4 -4
  52. package/dist/{header-CGXuhcRm.js.map → header-BSfIEWbI.js.map} +1 -1
  53. package/dist/{hooks-Dkz0K2WT.js → hooks-ClH9thn4.js} +2 -2
  54. package/dist/{hooks-Dkz0K2WT.js.map → hooks-ClH9thn4.js.map} +1 -1
  55. package/dist/layout/auth.js +1 -1
  56. package/dist/layout/header.js +1 -1
  57. package/dist/layout/hooks.js +1 -1
  58. package/dist/layout/page.js +1 -1
  59. package/dist/layout/sidebar.js +2 -2
  60. package/dist/layout/workspace.js +1 -1
  61. package/dist/layout.js +6 -6
  62. package/dist/lib/use-popup-focus-recovery.d.ts +8 -0
  63. package/dist/{mentions-utuUvH1K.js → mentions-CGlEJ15c.js} +2 -2
  64. package/dist/{mentions-utuUvH1K.js.map → mentions-CGlEJ15c.js.map} +1 -1
  65. package/dist/{overlays-DNWmZrJ4.js → overlays-tMkF-VAN.js} +270 -268
  66. package/dist/overlays-tMkF-VAN.js.map +1 -0
  67. package/dist/{page-Bgl1F560.js → page-CL9YeH_V.js} +2 -2
  68. package/dist/{page-Bgl1F560.js.map → page-CL9YeH_V.js.map} +1 -1
  69. package/dist/{popover-7_m66eYW.js → popover-gnTOhbFM.js} +62 -60
  70. package/dist/popover-gnTOhbFM.js.map +1 -0
  71. package/dist/{popover-menu-B9WWygpa.js → popover-menu-Cn9rUkdc.js} +2 -2
  72. package/dist/{popover-menu-B9WWygpa.js.map → popover-menu-Cn9rUkdc.js.map} +1 -1
  73. package/dist/services/actions.js +1 -1
  74. package/dist/{sheet-CGpB3omz.js → sheet-ijlsjq-n.js} +70 -68
  75. package/dist/sheet-ijlsjq-n.js.map +1 -0
  76. package/dist/{sidebar-CPx_7YBa.js → sidebar-Db6gkh3U.js} +2 -2
  77. package/dist/{sidebar-CPx_7YBa.js.map → sidebar-Db6gkh3U.js.map} +1 -1
  78. package/dist/{sidebar-A0ElHINE.js → sidebar-DkTO4VTO.js} +3 -3
  79. package/dist/{sidebar-A0ElHINE.js.map → sidebar-DkTO4VTO.js.map} +1 -1
  80. package/dist/use-popup-focus-recovery-C0QPvgOR.js +36 -0
  81. package/dist/use-popup-focus-recovery-C0QPvgOR.js.map +1 -0
  82. package/dist/{value-inputs-DXPDjvBU.js → value-inputs-TaX4OjNk.js} +3 -3
  83. package/dist/{value-inputs-DXPDjvBU.js.map → value-inputs-TaX4OjNk.js.map} +1 -1
  84. package/dist/{workspace-Cdrg7k9f.js → workspace-B-OEm3Kf.js} +2 -2
  85. package/dist/{workspace-Cdrg7k9f.js.map → workspace-B-OEm3Kf.js.map} +1 -1
  86. package/docs/consumer-skill/SKILL.md +1 -1
  87. package/docs/consumer-skill/references/agents-md.md +1 -1
  88. package/docs/consumer-skill/references/installation.md +6 -0
  89. package/docs/consumer-skill/references/public-api.json +2 -2
  90. package/docs/consumer-skill/references/tokens.json +1 -1
  91. package/docs/consumer-skill/references/workflows.md +5 -4
  92. package/package.json +3 -3
  93. package/dist/combobox-C0EQW6dr.js.map +0 -1
  94. package/dist/combobox-xCQ2RMNE.js.map +0 -1
  95. package/dist/overlays-DNWmZrJ4.js.map +0 -1
  96. package/dist/popover-7_m66eYW.js.map +0 -1
  97. package/dist/sheet-CGpB3omz.js.map +0 -1
@@ -7,8 +7,8 @@ import { c as i } from "./typography-UTnveOEy.js";
7
7
  import { t as a } from "./structure-BmisBK-3.js";
8
8
  import { i as o } from "./popover.recipes-D3j8R8Yp.js";
9
9
  import { s } from "./form-sizing-BdP_Mf5p.js";
10
- import { a as c, c as l, i as u, l as d, o as ee, s as te, u as ne } from "./date-picker-ay0Pha_a.js";
11
- import { c as re, o as ie, t as ae } from "./popover-7_m66eYW.js";
10
+ import { a as c, c as l, i as u, l as d, o as ee, s as te, u as ne } from "./date-picker-B2K3ucWn.js";
11
+ import { c as re, o as ie, t as ae } from "./popover-gnTOhbFM.js";
12
12
  import { t as f } from "./form-field-CwH9y77i.js";
13
13
  import { l as p } from "./choice-inputs-CNHvARCJ.js";
14
14
  import * as m from "react";
@@ -172,4 +172,4 @@ x.displayName = "MonthYearPicker";
172
172
  //#endregion
173
173
  export { x as t };
174
174
 
175
- //# sourceMappingURL=date-pickers-Ccw8DL2b.js.map
175
+ //# sourceMappingURL=date-pickers-Ds8gLaoP.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"date-pickers-Ccw8DL2b.js","names":["React","CalendarIcon","useDatesConfig","cn","Button","Text","Stack","popoverWidthRecipes","pickerTriggerClasses","DatePickerFooter","defaultDatePickerStrings","DatePickerField","usePickerTriggerSize","DatePickerHeader","resolvePickerButtonProps","PopoverTrigger","Popover","PopoverContent","FormField","Select","React$1","DEFAULT_YEAR_SPAN","MonthYearPicker","dateFormat","sizeProp","size","presentation","buttonTone","buttonStyle","currentYear","open","setOpen","selection","setSelection","value","defaultValue","dates","dateFnsLocale","locale","enUS","t","useStrings","strings","generatedTriggerId","triggerId","id","describedBy","ariaDescribedBy","error","isInvalid","invalid","monthSelectId","yearSelectId","yearRange","start","fromYear","end","toYear","i","monthNames","format","createOutput","date","year","month","readableFormat","handleMonthChange","monthValue","handleYearChange","yearValue","handleConfirm","onValueChange","closeOnSelect","buttonText","placeholder","ref","className","triggerProps","iconOnly","Calendar","formControlIconClasses","header","index","disabled","footer"],"sources":["../src/components/base/date-pickers/month-year-picker.tsx"],"sourcesContent":["import { format } from 'date-fns';\nimport { Calendar as CalendarIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Button } from '../buttons';\nimport { FormField } from '../forms/form-field';\nimport { Stack } from '../structure';\nimport {\n\tPopover,\n\tPopoverContent,\n\tPopoverTrigger\n} from '../popover';\nimport { Select } from '../choice-inputs';\nimport { Text } from '../../typography';\nimport { useDatesConfig } from '../../../lib/ui-provider';\nimport { cn } from '../../../lib/utils';\n\nimport { useStrings } from '../../../lib/strings';\n\nimport { DatePickerField } from './date-picker-field';\nimport { DatePickerFooter } from './date-picker-footer';\nimport { DatePickerHeader } from './date-picker-header';\nimport { pickerTriggerClasses, usePickerTriggerSize } from './date-picker.recipes';\nimport { resolvePickerButtonProps } from './date-picker-internals';\nimport { formControlIconClasses } from '../forms/form-sizing';\nimport { defaultDatePickerStrings } from './date-pickers.strings';\nimport type { MonthYearPickerProps, MonthYearOutput } from './datepicker.types';\nimport { enUS } from 'date-fns/locale';\nimport { popoverWidthRecipes } from '../popover/popover.recipes';\n\n/** Years offered on either side of the current year when no range is given. */\nconst DEFAULT_YEAR_SPAN = 10;\n\nexport const MonthYearPicker = React.forwardRef<HTMLDivElement, MonthYearPickerProps>(function MonthYearPicker({\n\tvalue,\n\tdefaultValue,\n\tonValueChange,\n\tformat: dateFormat = 'yyyy-MM',\n\treadableFormat = 'MMMM yyyy',\n\tplaceholder,\n\tlabel,\n\thint,\n\terror,\n\tinvalid,\n\tid,\n\tdisabled = false,\n\tsize: sizeProp,\n\tbuttonTone,\n\tbuttonStyle,\n\tclassName,\n\tcloseOnSelect = true,\n\tstrings,\n\tlocale,\n\theader,\n\tfooter,\n\tfromYear,\n\ttoYear,\n\ticonOnly = false\n}: MonthYearPickerProps, ref) {\n\tconst size = usePickerTriggerSize(sizeProp);\n\tconst presentation = resolvePickerButtonProps(buttonTone, buttonStyle);\n\tconst currentYear = new Date().getFullYear();\n\tconst [open, setOpen] = React.useState(false);\n\tconst [selection, setSelection] = React.useState<{\n\t\tmonth: number;\n\t\tyear: number;\n\t} | undefined>(value ?? defaultValue);\n\n\tconst dates = useDatesConfig();\n\tconst dateFnsLocale = locale ?? dates.locale ?? enUS;\n\tconst t = useStrings(defaultDatePickerStrings, strings);\n\tconst generatedTriggerId = React.useId();\n\tconst triggerId = id ?? generatedTriggerId;\n\t// Mirrors the DatePicker variants: the error line is the trigger's\n\t// description, so screen readers announce it with the control.\n\tconst describedBy = `${triggerId}-description`;\n\tconst ariaDescribedBy = error ? describedBy : undefined;\n\tconst isInvalid = Boolean(error) || Boolean(invalid);\n\t// Derived from useId so several pickers can coexist on one page; these were\n\t// previously the fixed literals \"month-select\" / \"year-select\".\n\tconst monthSelectId = `${triggerId}-month`;\n\tconst yearSelectId = `${triggerId}-year`;\n\n\t// Year range. Anchored to the current year rather than fixed literals: the\n\t// previous 2017–2035 defaults would have stopped offering any future year\n\t// once 2035 arrived.\n\tconst yearRange = React.useMemo(() => {\n\t\tconst start = fromYear ?? currentYear - DEFAULT_YEAR_SPAN;\n\t\tconst end = toYear ?? currentYear + DEFAULT_YEAR_SPAN;\n\t\treturn Array.from({ length: Math.max(end - start + 1, 1) }, (_, i) => start + i);\n\t}, [fromYear, toYear, currentYear]);\n\n\t// Month names (localized)\n\tconst monthNames = React.useMemo(() => {\n\t\treturn Array.from({ length: 12 }, (_, i) => {\n\t\t\tconst date = new Date(2000, i, 1);\n\t\t\treturn format(date, 'MMMM', { locale: dateFnsLocale });\n\t\t});\n\t}, [dateFnsLocale]);\n\n\t// Sync internal state with controlled value\n\tReact.useEffect(() => {\n\t\tif (value !== undefined) {\n\t\t\tsetSelection(value);\n\t\t}\n\t}, [value]);\n\n\t// Helper to create the output object\n\tconst createOutput = React.useCallback(\n\t\t(month: number, year: number): MonthYearOutput => {\n\t\t\tconst date = new Date(year, month, 1);\n\t\t\treturn {\n\t\t\t\tmonth,\n\t\t\t\tyear,\n\t\t\t\tformatted: format(date, dateFormat, { locale: dateFnsLocale }),\n\t\t\t\treadable: format(date, readableFormat, { locale: dateFnsLocale }),\n\t\t\t\tdate\n\t\t\t};\n\t\t},\n\t\t[dateFormat, readableFormat, dateFnsLocale]\n\t);\n\n\t// Handle selection change\n\tconst handleMonthChange = React.useCallback(\n\t\t(monthValue: unknown) => {\n\t\t\tconst monthStr = String(monthValue);\n\t\t\tconst month = parseInt(monthStr, 10);\n\t\t\tconst year = selection?.year ?? currentYear;\n\t\t\tsetSelection({ month, year });\n\t\t},\n\t\t[selection?.year, currentYear]\n\t);\n\n\tconst handleYearChange = React.useCallback(\n\t\t(yearValue: unknown) => {\n\t\t\tconst yearStr = String(yearValue);\n\t\t\tconst year = parseInt(yearStr, 10);\n\t\t\tconst month = selection?.month ?? 0;\n\t\t\tsetSelection({ month, year });\n\t\t},\n\t\t[selection?.month]\n\t);\n\n\t// Handle confirm button click\n\tconst handleConfirm = React.useCallback(() => {\n\t\tif (selection) {\n\t\t\tonValueChange?.(createOutput(selection.month, selection.year));\n\t\t\tif (closeOnSelect) {\n\t\t\t\tsetOpen(false);\n\t\t\t}\n\t\t}\n\t}, [selection, onValueChange, createOutput, closeOnSelect]);\n\n\t// Button display text\n\tconst buttonText = React.useMemo(() => {\n\t\tif (selection) {\n\t\t\tconst date = new Date(selection.year, selection.month, 1);\n\t\t\treturn format(date, readableFormat, { locale: dateFnsLocale });\n\t\t}\n\t\treturn placeholder ?? t.selectMonthYear;\n\t}, [selection, readableFormat, dateFnsLocale, placeholder, t.selectMonthYear]);\n\n\treturn (\n\t\t<DatePickerField\n\t\t\trootRef={ref}\n\t\t\tclassName={cn('month-year-picker--component', className)}\n\t\t\tlabel={label}\n\t\t\thint={hint}\n\t\t\terror={error}\n\t\t\ttriggerId={triggerId}\n\t\t\tdescribedById={describedBy}\n\t\t>\n\t\t\t<Popover open={open} onOpenChange={setOpen}>\n\t\t\t\t<PopoverTrigger\n\t\t\t\t\trender={(triggerProps) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t{...triggerProps}\n\t\t\t\t\t\t\tid={triggerId}\n\t\t\t\t\t\t\ttone={presentation.tone}\n\t\t\t\t\t\t\tbuttonStyle={presentation.buttonStyle}\n\t\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\t\taria-invalid={isInvalid}\n\t\t\t\t\t\t\taria-describedby={ariaDescribedBy}\n\t\t\t\t\t\t\t// Icon-only drops the visible value, so the action name has to\n\t\t\t\t\t\t\t// carry the button on its own.\n\t\t\t\t\t\t\taria-label={iconOnly ? t.selectMonthYear : undefined}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\tpickerTriggerClasses(size, iconOnly),\n\t\t\t\t\t\t\t\t!selection && 'text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\t(triggerProps as { className?: string }).className,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<CalendarIcon className={formControlIconClasses[size]} aria-hidden=\"true\" />\n\t\t\t\t\t\t\t{!iconOnly && (\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" lineHeight=\"tight\" className=\"min-w-0 truncate text-inherit\">\n\t\t\t\t\t\t\t\t\t{buttonText}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t/>\n\n\t\t\t\t<PopoverContent\n\t\t\t\t\tinset=\"flush\"\n\t\t\t\t\tclassName={cn(popoverWidthRecipes.lg, 'gap-0')}\n\t\t\t\t\talign=\"start\"\n\t\t\t\t>\n\t\t\t\t\t{/* Header */}\n\t\t\t\t\t{!!header && <DatePickerHeader config={header} />}\n\n\t\t\t\t\t{/* Month and Year Selectors: ordinary FormField rows, so the label\n\t\t\t\t\t rhythm matches every other field. */}\n\t\t\t\t\t<div className=\"p-surface\">\n\t\t\t\t\t<Stack gap=\"xl\">\n\t\t\t\t\t\t<FormField label={t.month} htmlFor={monthSelectId}>\n\t\t\t\t\t\t\t<Select id={monthSelectId}\n\t\t\t\t\t\t\t\toptions={monthNames.map((label,index)=>({label,value:index.toString()}))}\n\t\t\t\t\t\t\t\tvalue={selection?.month?.toString()} onValueChange={handleMonthChange}\n\t\t\t\t\t\t\t\tplaceholder={t.month} disabled={disabled}/>\n\t\t\t\t\t\t</FormField>\n\n\t\t\t\t\t\t<FormField label={t.year} htmlFor={yearSelectId}>\n\t\t\t\t\t\t\t<Select id={yearSelectId}\n\t\t\t\t\t\t\t\toptions={yearRange.map(year=>({label:year.toString(),value:year.toString()}))}\n\t\t\t\t\t\t\t\tvalue={selection?.year?.toString()} onValueChange={handleYearChange}\n\t\t\t\t\t\t\t\tplaceholder={t.year} disabled={disabled}/>\n\t\t\t\t\t\t</FormField>\n\t\t\t\t\t</Stack>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Confirm Button */}\n\t\t\t\t\t<div className=\"px-surface pb-surface\">\n\t\t\t\t\t\t<Button tone=\"primary\"\n\t\t\t\t\t\t\tclassName=\"w-full\"\n\t\t\t\t\t\t\tonClick={handleConfirm}\n\t\t\t\t\t\t\tdisabled={disabled || !selection}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t.confirm}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Footer */}\n\t\t\t\t\t{!!footer && !!selection && (\n\t\t\t<DatePickerFooter\n\t\t\t\t\t\t\tconfig={footer}\n\t\t\t\t\t\t\toutput={createOutput(selection.month, selection.year)}\n\t\t\t\t\t\t\thasSelection={!!selection}\n\t\t\t\t\t\t\tautoSummary={buttonText}\n\t\t\t\t\t\t/>\n\t\t)}\n\t\t\t\t</PopoverContent>\n\t\t\t</Popover>\n\n\t\t</DatePickerField>\n\t);\n});\n\n// Convenience export for type\nexport type { MonthYearPickerProps, MonthYearOutput };\n\nMonthYearPicker.displayName = 'MonthYearPicker';\n"],"mappings":"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"}
1
+ {"version":3,"file":"date-pickers-Ds8gLaoP.js","names":["React","CalendarIcon","useDatesConfig","cn","Button","Text","Stack","popoverWidthRecipes","pickerTriggerClasses","DatePickerFooter","defaultDatePickerStrings","DatePickerField","usePickerTriggerSize","DatePickerHeader","resolvePickerButtonProps","PopoverTrigger","Popover","PopoverContent","FormField","Select","React$1","DEFAULT_YEAR_SPAN","MonthYearPicker","dateFormat","sizeProp","size","presentation","buttonTone","buttonStyle","currentYear","open","setOpen","selection","setSelection","value","defaultValue","dates","dateFnsLocale","locale","enUS","t","useStrings","strings","generatedTriggerId","triggerId","id","describedBy","ariaDescribedBy","error","isInvalid","invalid","monthSelectId","yearSelectId","yearRange","start","fromYear","end","toYear","i","monthNames","format","createOutput","date","year","month","readableFormat","handleMonthChange","monthValue","handleYearChange","yearValue","handleConfirm","onValueChange","closeOnSelect","buttonText","placeholder","ref","className","triggerProps","iconOnly","Calendar","formControlIconClasses","header","index","disabled","footer"],"sources":["../src/components/base/date-pickers/month-year-picker.tsx"],"sourcesContent":["import { format } from 'date-fns';\nimport { Calendar as CalendarIcon } from 'lucide-react';\nimport * as React from 'react';\n\nimport { Button } from '../buttons';\nimport { FormField } from '../forms/form-field';\nimport { Stack } from '../structure';\nimport {\n\tPopover,\n\tPopoverContent,\n\tPopoverTrigger\n} from '../popover';\nimport { Select } from '../choice-inputs';\nimport { Text } from '../../typography';\nimport { useDatesConfig } from '../../../lib/ui-provider';\nimport { cn } from '../../../lib/utils';\n\nimport { useStrings } from '../../../lib/strings';\n\nimport { DatePickerField } from './date-picker-field';\nimport { DatePickerFooter } from './date-picker-footer';\nimport { DatePickerHeader } from './date-picker-header';\nimport { pickerTriggerClasses, usePickerTriggerSize } from './date-picker.recipes';\nimport { resolvePickerButtonProps } from './date-picker-internals';\nimport { formControlIconClasses } from '../forms/form-sizing';\nimport { defaultDatePickerStrings } from './date-pickers.strings';\nimport type { MonthYearPickerProps, MonthYearOutput } from './datepicker.types';\nimport { enUS } from 'date-fns/locale';\nimport { popoverWidthRecipes } from '../popover/popover.recipes';\n\n/** Years offered on either side of the current year when no range is given. */\nconst DEFAULT_YEAR_SPAN = 10;\n\nexport const MonthYearPicker = React.forwardRef<HTMLDivElement, MonthYearPickerProps>(function MonthYearPicker({\n\tvalue,\n\tdefaultValue,\n\tonValueChange,\n\tformat: dateFormat = 'yyyy-MM',\n\treadableFormat = 'MMMM yyyy',\n\tplaceholder,\n\tlabel,\n\thint,\n\terror,\n\tinvalid,\n\tid,\n\tdisabled = false,\n\tsize: sizeProp,\n\tbuttonTone,\n\tbuttonStyle,\n\tclassName,\n\tcloseOnSelect = true,\n\tstrings,\n\tlocale,\n\theader,\n\tfooter,\n\tfromYear,\n\ttoYear,\n\ticonOnly = false\n}: MonthYearPickerProps, ref) {\n\tconst size = usePickerTriggerSize(sizeProp);\n\tconst presentation = resolvePickerButtonProps(buttonTone, buttonStyle);\n\tconst currentYear = new Date().getFullYear();\n\tconst [open, setOpen] = React.useState(false);\n\tconst [selection, setSelection] = React.useState<{\n\t\tmonth: number;\n\t\tyear: number;\n\t} | undefined>(value ?? defaultValue);\n\n\tconst dates = useDatesConfig();\n\tconst dateFnsLocale = locale ?? dates.locale ?? enUS;\n\tconst t = useStrings(defaultDatePickerStrings, strings);\n\tconst generatedTriggerId = React.useId();\n\tconst triggerId = id ?? generatedTriggerId;\n\t// Mirrors the DatePicker variants: the error line is the trigger's\n\t// description, so screen readers announce it with the control.\n\tconst describedBy = `${triggerId}-description`;\n\tconst ariaDescribedBy = error ? describedBy : undefined;\n\tconst isInvalid = Boolean(error) || Boolean(invalid);\n\t// Derived from useId so several pickers can coexist on one page; these were\n\t// previously the fixed literals \"month-select\" / \"year-select\".\n\tconst monthSelectId = `${triggerId}-month`;\n\tconst yearSelectId = `${triggerId}-year`;\n\n\t// Year range. Anchored to the current year rather than fixed literals: the\n\t// previous 2017–2035 defaults would have stopped offering any future year\n\t// once 2035 arrived.\n\tconst yearRange = React.useMemo(() => {\n\t\tconst start = fromYear ?? currentYear - DEFAULT_YEAR_SPAN;\n\t\tconst end = toYear ?? currentYear + DEFAULT_YEAR_SPAN;\n\t\treturn Array.from({ length: Math.max(end - start + 1, 1) }, (_, i) => start + i);\n\t}, [fromYear, toYear, currentYear]);\n\n\t// Month names (localized)\n\tconst monthNames = React.useMemo(() => {\n\t\treturn Array.from({ length: 12 }, (_, i) => {\n\t\t\tconst date = new Date(2000, i, 1);\n\t\t\treturn format(date, 'MMMM', { locale: dateFnsLocale });\n\t\t});\n\t}, [dateFnsLocale]);\n\n\t// Sync internal state with controlled value\n\tReact.useEffect(() => {\n\t\tif (value !== undefined) {\n\t\t\tsetSelection(value);\n\t\t}\n\t}, [value]);\n\n\t// Helper to create the output object\n\tconst createOutput = React.useCallback(\n\t\t(month: number, year: number): MonthYearOutput => {\n\t\t\tconst date = new Date(year, month, 1);\n\t\t\treturn {\n\t\t\t\tmonth,\n\t\t\t\tyear,\n\t\t\t\tformatted: format(date, dateFormat, { locale: dateFnsLocale }),\n\t\t\t\treadable: format(date, readableFormat, { locale: dateFnsLocale }),\n\t\t\t\tdate\n\t\t\t};\n\t\t},\n\t\t[dateFormat, readableFormat, dateFnsLocale]\n\t);\n\n\t// Handle selection change\n\tconst handleMonthChange = React.useCallback(\n\t\t(monthValue: unknown) => {\n\t\t\tconst monthStr = String(monthValue);\n\t\t\tconst month = parseInt(monthStr, 10);\n\t\t\tconst year = selection?.year ?? currentYear;\n\t\t\tsetSelection({ month, year });\n\t\t},\n\t\t[selection?.year, currentYear]\n\t);\n\n\tconst handleYearChange = React.useCallback(\n\t\t(yearValue: unknown) => {\n\t\t\tconst yearStr = String(yearValue);\n\t\t\tconst year = parseInt(yearStr, 10);\n\t\t\tconst month = selection?.month ?? 0;\n\t\t\tsetSelection({ month, year });\n\t\t},\n\t\t[selection?.month]\n\t);\n\n\t// Handle confirm button click\n\tconst handleConfirm = React.useCallback(() => {\n\t\tif (selection) {\n\t\t\tonValueChange?.(createOutput(selection.month, selection.year));\n\t\t\tif (closeOnSelect) {\n\t\t\t\tsetOpen(false);\n\t\t\t}\n\t\t}\n\t}, [selection, onValueChange, createOutput, closeOnSelect]);\n\n\t// Button display text\n\tconst buttonText = React.useMemo(() => {\n\t\tif (selection) {\n\t\t\tconst date = new Date(selection.year, selection.month, 1);\n\t\t\treturn format(date, readableFormat, { locale: dateFnsLocale });\n\t\t}\n\t\treturn placeholder ?? t.selectMonthYear;\n\t}, [selection, readableFormat, dateFnsLocale, placeholder, t.selectMonthYear]);\n\n\treturn (\n\t\t<DatePickerField\n\t\t\trootRef={ref}\n\t\t\tclassName={cn('month-year-picker--component', className)}\n\t\t\tlabel={label}\n\t\t\thint={hint}\n\t\t\terror={error}\n\t\t\ttriggerId={triggerId}\n\t\t\tdescribedById={describedBy}\n\t\t>\n\t\t\t<Popover open={open} onOpenChange={setOpen}>\n\t\t\t\t<PopoverTrigger\n\t\t\t\t\trender={(triggerProps) => (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t{...triggerProps}\n\t\t\t\t\t\t\tid={triggerId}\n\t\t\t\t\t\t\ttone={presentation.tone}\n\t\t\t\t\t\t\tbuttonStyle={presentation.buttonStyle}\n\t\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\t\taria-invalid={isInvalid}\n\t\t\t\t\t\t\taria-describedby={ariaDescribedBy}\n\t\t\t\t\t\t\t// Icon-only drops the visible value, so the action name has to\n\t\t\t\t\t\t\t// carry the button on its own.\n\t\t\t\t\t\t\taria-label={iconOnly ? t.selectMonthYear : undefined}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\tpickerTriggerClasses(size, iconOnly),\n\t\t\t\t\t\t\t\t!selection && 'text-muted-foreground',\n\t\t\t\t\t\t\t\t\t\t(triggerProps as { className?: string }).className,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<CalendarIcon className={formControlIconClasses[size]} aria-hidden=\"true\" />\n\t\t\t\t\t\t\t{!iconOnly && (\n\t\t\t\t\t\t\t\t<Text tag=\"span\" size=\"inherit\" lineHeight=\"tight\" className=\"min-w-0 truncate text-inherit\">\n\t\t\t\t\t\t\t\t\t{buttonText}\n\t\t\t\t\t\t\t\t</Text>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t)}\n\t\t\t\t/>\n\n\t\t\t\t<PopoverContent\n\t\t\t\t\tinset=\"flush\"\n\t\t\t\t\tclassName={cn(popoverWidthRecipes.lg, 'gap-0')}\n\t\t\t\t\talign=\"start\"\n\t\t\t\t>\n\t\t\t\t\t{/* Header */}\n\t\t\t\t\t{!!header && <DatePickerHeader config={header} />}\n\n\t\t\t\t\t{/* Month and Year Selectors: ordinary FormField rows, so the label\n\t\t\t\t\t rhythm matches every other field. */}\n\t\t\t\t\t<div className=\"p-surface\">\n\t\t\t\t\t<Stack gap=\"xl\">\n\t\t\t\t\t\t<FormField label={t.month} htmlFor={monthSelectId}>\n\t\t\t\t\t\t\t<Select id={monthSelectId}\n\t\t\t\t\t\t\t\toptions={monthNames.map((label,index)=>({label,value:index.toString()}))}\n\t\t\t\t\t\t\t\tvalue={selection?.month?.toString()} onValueChange={handleMonthChange}\n\t\t\t\t\t\t\t\tplaceholder={t.month} disabled={disabled}/>\n\t\t\t\t\t\t</FormField>\n\n\t\t\t\t\t\t<FormField label={t.year} htmlFor={yearSelectId}>\n\t\t\t\t\t\t\t<Select id={yearSelectId}\n\t\t\t\t\t\t\t\toptions={yearRange.map(year=>({label:year.toString(),value:year.toString()}))}\n\t\t\t\t\t\t\t\tvalue={selection?.year?.toString()} onValueChange={handleYearChange}\n\t\t\t\t\t\t\t\tplaceholder={t.year} disabled={disabled}/>\n\t\t\t\t\t\t</FormField>\n\t\t\t\t\t</Stack>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Confirm Button */}\n\t\t\t\t\t<div className=\"px-surface pb-surface\">\n\t\t\t\t\t\t<Button tone=\"primary\"\n\t\t\t\t\t\t\tclassName=\"w-full\"\n\t\t\t\t\t\t\tonClick={handleConfirm}\n\t\t\t\t\t\t\tdisabled={disabled || !selection}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{t.confirm}\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Footer */}\n\t\t\t\t\t{!!footer && !!selection && (\n\t\t\t<DatePickerFooter\n\t\t\t\t\t\t\tconfig={footer}\n\t\t\t\t\t\t\toutput={createOutput(selection.month, selection.year)}\n\t\t\t\t\t\t\thasSelection={!!selection}\n\t\t\t\t\t\t\tautoSummary={buttonText}\n\t\t\t\t\t\t/>\n\t\t)}\n\t\t\t\t</PopoverContent>\n\t\t\t</Popover>\n\n\t\t</DatePickerField>\n\t);\n});\n\n// Convenience export for type\nexport type { MonthYearPickerProps, MonthYearOutput };\n\nMonthYearPicker.displayName = 'MonthYearPicker';\n"],"mappings":"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"}
@@ -11,8 +11,8 @@ import { t as p } from "../interaction-recipes-XR9ZpVYL.js";
11
11
  import { t as m } from "../icon-badge-DYKIwvOV.js";
12
12
  import { t as h } from "../badge-HpFqoqSY.js";
13
13
  import { s as g } from "../data-display-DT_khPl_.js";
14
- import { o as _, r as v, u as y } from "../comments-BYYlTA8E.js";
15
- import { o as b } from "../mentions-utuUvH1K.js";
14
+ import { o as _, r as v, u as y } from "../comments-DD0DUPwJ.js";
15
+ import { o as b } from "../mentions-CGlEJ15c.js";
16
16
  import { Fragment as x, useCallback as S, useEffect as C, useMemo as w, useRef as T, useState as E } from "react";
17
17
  import { Fragment as D, jsx as O, jsxs as k } from "react/jsx-runtime";
18
18
  import { Activity as A, AlertTriangle as j, ArrowLeftRight as M, Ban as N, Check as P, ChevronDown as F, ChevronRight as ee, CircleDot as I, FileEdit as L, Flag as R, Heart as z, LinkIcon as B, Mail as V, MailCheck as H, MailOpen as U, MailX as W, MessageCircle as te, MessageSquare as G, Pencil as K, Plus as ne, ShieldCheck as re, ShoppingBag as q, Sparkles as J, Star as Y, Trash2 as X, UserMinus as ie, UserPlus as ae } from "lucide-react";
@@ -7,7 +7,7 @@ import { n as i, t as a } from "../feedback-BYIhtitP.js";
7
7
  import { i as o } from "../popover.recipes-D3j8R8Yp.js";
8
8
  import { _ as s, d as c, g as l, p as u } from "../primitives-BFK08r9M.js";
9
9
  import { t as d } from "../badge-HpFqoqSY.js";
10
- import { c as f, o as p, t as m } from "../popover-7_m66eYW.js";
10
+ import { c as f, o as p, t as m } from "../popover-gnTOhbFM.js";
11
11
  import { s as h } from "../data-display-DT_khPl_.js";
12
12
  import g, { createContext as _, useCallback as v, useContext as y, useEffect as b, useMemo as ee, useRef as x, useState as S } from "react";
13
13
  import { Fragment as C, jsx as w, jsxs as T } from "react/jsx-runtime";
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { a as e, i as t, n, o as r, r as i, t as a } from "../combobox-C0EQW6dr.js";
2
+ import { a as e, i as t, n, o as r, r as i, t as a } from "../combobox-Dxo2fAYQ.js";
3
3
  export { a as AsyncResourceCombobox, i as Combobox, t as MultiCombobox, n as defaultAsyncResourceComboboxStrings, r as defaultComboboxStrings, e as useComboboxCore };
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, p as c, r as l, s as u, t as d, u as f } from "../comments-BYYlTA8E.js";
2
+ import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, p as c, r as l, s as u, t as d, u as f } from "../comments-DD0DUPwJ.js";
3
3
  export { a as CommentAttachmentChip, s as CommentComposer, i as CommentContent, e as CommentEmpty, l as CommentItem, o as CommentTimeline, d as Comments, c as defaultCommentsStrings, u as makeReplyEyebrow, t as useAttachmentUpload, f as useComments, n as useResolvedAccessors, r as useResolvedStrings };
@@ -7,9 +7,9 @@ import { r as i, t as a } from "../structure-BmisBK-3.js";
7
7
  import { g as o } from "../primitives-BFK08r9M.js";
8
8
  import { t as s } from "../number-DbV1Dija.js";
9
9
  import { i as c, r as l, t as u } from "../tabs-CDocW5D1.js";
10
- import { t as d } from "../popover-menu-B9WWygpa.js";
10
+ import { t as d } from "../popover-menu-Cn9rUkdc.js";
11
11
  import { f } from "../table-BweFy_P9.js";
12
- import { N as p, O as m, P as h, T as g, l as _, w as v } from "../filters-BGfvjP4d.js";
12
+ import { N as p, O as m, P as h, T as g, l as _, w as v } from "../filters-DJVAveHA.js";
13
13
  import { useEffect as y, useMemo as b, useRef as x } from "react";
14
14
  import { Fragment as S, jsx as C, jsxs as w } from "react/jsx-runtime";
15
15
  import { Check as T, ChevronsUpDown as E } from "lucide-react";
@@ -7,7 +7,7 @@ import { i, t as a } from "../structure-BmisBK-3.js";
7
7
  import { h as o, p as s, t as c, v as l } from "../smart-card-DiC5aac3.js";
8
8
  import { n as u, t as d } from "../feedback-BYIhtitP.js";
9
9
  import { n as f, t as p } from "../action-menu-CllU52Mm.js";
10
- import { n as m, r as h, t as g } from "../overlays-DNWmZrJ4.js";
10
+ import { n as m, r as h, t as g } from "../overlays-tMkF-VAN.js";
11
11
  import { n as _ } from "../content-typography-CnwgMJ37.js";
12
12
  import { t as v } from "../accordion-Cjb6sx0G.js";
13
13
  import { t as y } from "../input-DQdEd0YD.js";
@@ -16,7 +16,7 @@ import { a as x, c as S, d as C, o as w, s as T } from "../text-inputs-f9Ia-aCi.
16
16
  import { l as E } from "../choice-inputs-CNHvARCJ.js";
17
17
  import { t as ee } from "../scroll-area-DcI-M1UT.js";
18
18
  import { i as D, n as O, r as te, t as ne } from "../tabs-CDocW5D1.js";
19
- import { t as k } from "../popover-menu-B9WWygpa.js";
19
+ import { t as k } from "../popover-menu-Cn9rUkdc.js";
20
20
  import { n as A, t as j } from "../rich-text-editor-toolbar-DfXg0-VC.js";
21
21
  import { t as M } from "../rich-text-editor.strings-CB59ekH2.js";
22
22
  import { a as N, c as P, i as F, l as I, n as L, o as R, r as z, s as B, t as V, u as H } from "../http-D_6rOnzU.js";
@@ -11,7 +11,7 @@ import { t as f } from "../interaction-recipes-XR9ZpVYL.js";
11
11
  import { r as p, t as m } from "../date-DCrsDTZc.js";
12
12
  import { n as h } from "../field-affordance-recipes-DZhnIL_Y.js";
13
13
  import { l as g } from "../choice-inputs-CNHvARCJ.js";
14
- import { t as _ } from "../date-pickers-Ccw8DL2b.js";
14
+ import { t as _ } from "../date-pickers-Ds8gLaoP.js";
15
15
  import { r as v, t as y } from "../control-group-recipes-DBXmfh2E.js";
16
16
  import { useCallback as b, useMemo as x, useState as S } from "react";
17
17
  import { Fragment as C, jsx as w, jsxs as T } from "react/jsx-runtime";
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { A as e, C as t, D as n, E as r, F as i, I as a, L as o, M as s, N as c, O as l, P as u, R as d, S as f, T as p, _ as m, a as h, b as g, c as _, d as v, f as y, g as b, h as x, i as S, j as C, k as w, l as T, m as E, n as D, o as O, p as k, r as A, s as j, t as M, u as N, v as P, w as F, x as I, y as L } from "../filters-BGfvjP4d.js";
2
+ import { A as e, C as t, D as n, E as r, F as i, I as a, L as o, M as s, N as c, O as l, P as u, R as d, S as f, T as p, _ as m, a as h, b as g, c as _, d as v, f as y, g as b, h as x, i as S, j as C, k as w, l as T, m as E, n as D, o as O, p as k, r as A, s as j, t as M, u as N, v as P, w as F, x as I, y as L } from "../filters-DJVAveHA.js";
3
3
  export { g as ActiveFilterItem, S as AsyncSelectFacet, P as DateFacet, m as FilterErrorBoundary, T as FilterLayout, c as FilterOperatorEnum, f as FilterOperatorSelect, E as FilterPill, x as FilterPopoverContent, F as FilterProvider, y as FilterTabs, u as FilterType, I as FilterValueDisplay, k as FiltersButton, A as RangeFacet, v as SearchFacet, N as SearchFiltersList, h as SelectFacet, b as TagsFacet, a as defaultFilterStrings, i as defineAsyncSelectConfig, r as getBooleanOperators, n as getDateOperators, l as getDefaultOperatorForType, o as getFilterString, w as getNumberOperators, e as getOperatorsForType, C as getSelectOperators, s as getTextOperators, d as interpolateFilterString, O as mergeFilterQuery, j as parseFiltersFromQuery, M as predicateValidator, _ as serializeFiltersToQuery, L as useAsyncOptions, t as useFilterGroups, p as useFilters, D as zodValidator };
@@ -8,7 +8,7 @@ import { t as o } from "../structure-BmisBK-3.js";
8
8
  import { i as s, n as c } from "../tone-recipes-BPsRAvhu.js";
9
9
  import { a as l, n as u } from "../surface-recipes-BKRVW8Os.js";
10
10
  import { a as d, n as f, r as p } from "../popover.recipes-D3j8R8Yp.js";
11
- import { r as m } from "../overlays-DNWmZrJ4.js";
11
+ import { r as m } from "../overlays-tMkF-VAN.js";
12
12
  import { t as h } from "../interaction-recipes-XR9ZpVYL.js";
13
13
  import { _ as g, g as _ } from "../primitives-BFK08r9M.js";
14
14
  import { i as v, n as y, s as b } from "../avatar-DAPlDvhJ.js";
@@ -7,7 +7,7 @@ import { r as a } from "../popover.recipes-D3j8R8Yp.js";
7
7
  import { d as o, g as s, i as c, l, n as u, o as d, r as f, t as p, u as m } from "../dropdown-menu-Cl4X7L5S.js";
8
8
  import { t as h } from "../layer-recipes-CCpklYME.js";
9
9
  import { a as g, n as _, o as v, r as y, t as b } from "../command-C25VMRII.js";
10
- import { c as x, o as S, t as C } from "../popover-7_m66eYW.js";
10
+ import { c as x, o as S, t as C } from "../popover-gnTOhbFM.js";
11
11
  import { a as ee, c as w, o as T } from "../text-inputs-f9Ia-aCi.js";
12
12
  import { t as te } from "../use-debounce-DZ_1ZBPa.js";
13
13
  import * as E from "react";
@@ -9,7 +9,7 @@ import { r as c, t as l } from "../structure-BmisBK-3.js";
9
9
  import { i as u } from "../smart-card-DiC5aac3.js";
10
10
  import { n as d, t as f } from "../feedback-BYIhtitP.js";
11
11
  import { t as p } from "../progress-B1VnCT0K.js";
12
- import { r as m } from "../overlays-DNWmZrJ4.js";
12
+ import { r as m } from "../overlays-tMkF-VAN.js";
13
13
  import { t as h } from "../interaction-recipes-XR9ZpVYL.js";
14
14
  import { a as g, i as _, t as v } from "../primitives-BFK08r9M.js";
15
15
  import { n as y, t as b } from "../number-DbV1Dija.js";
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { a as e, c as t, d as n, i as r, l as i, n as a, o, r as s, s as c, t as l, u } from "../mentions-utuUvH1K.js";
2
+ import { a as e, c as t, d as n, i as r, l as i, n as a, o, r as s, s as c, t as l, u } from "../mentions-CGlEJ15c.js";
3
3
  export { t as MentionChip, o as MentionContent, a as MentionInlineSuggestions, s as MentionPicker, u as buildMentionHtml, r as defaultMentionInlineSuggestionsStrings, e as defaultMentionPickerStrings, l as parseMentionsFromHtml, c as splitHtmlByMentions, i as useMentions, n as useMentionsSearch };
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import { a as e, c as t, i as n, n as r, o as i, r as a, s as o, t as s } from "../overlays-DNWmZrJ4.js";
2
+ import { a as e, c as t, i as n, n as r, o as i, r as a, s as o, t as s } from "../overlays-tMkF-VAN.js";
3
3
  export { a as ActionDialog, r as ActionDrawer, s as ConfirmDialog, o as defaultAlertDialogStrings, t as defaultOverlayStrings, i as useOverlayActions, n as useOverlayVisibility, e as useOverlayVisibilityGroup };
@@ -9,7 +9,7 @@ import { r as l, t as u } from "../structure-BmisBK-3.js";
9
9
  import { t as d } from "../tone-recipes-BPsRAvhu.js";
10
10
  import { t as f } from "../smart-card-DiC5aac3.js";
11
11
  import { t as p } from "../progress-B1VnCT0K.js";
12
- import { i as m, t as h } from "../overlays-DNWmZrJ4.js";
12
+ import { i as m, t as h } from "../overlays-tMkF-VAN.js";
13
13
  import { t as g } from "../interaction-recipes-XR9ZpVYL.js";
14
14
  import { _, g as v } from "../primitives-BFK08r9M.js";
15
15
  import { n as y } from "../number-DbV1Dija.js";
@@ -5,7 +5,7 @@ import { n } from "../buttons-DPZekJFu.js";
5
5
  import { c as r, o as i } from "../typography-UTnveOEy.js";
6
6
  import { t as a } from "../structure-BmisBK-3.js";
7
7
  import { n as o } from "../cards-BaBZR-AU.js";
8
- import { r as s } from "../overlays-DNWmZrJ4.js";
8
+ import { r as s } from "../overlays-tMkF-VAN.js";
9
9
  import { n as c } from "../display-hAc1HjpI.js";
10
10
  import { s as l } from "../data-display-DT_khPl_.js";
11
11
  import { useCallback as u, useEffect as d, useMemo as f, useRef as p, useState as m } from "react";
@@ -10,7 +10,7 @@ import { t as s } from "../form-field-CwH9y77i.js";
10
10
  import { d as c } from "../text-inputs-f9Ia-aCi.js";
11
11
  import { a as l, i as u, l as d, o as f, r as p } from "../choice-inputs-CNHvARCJ.js";
12
12
  import { n as m } from "../display-hAc1HjpI.js";
13
- import { u as h } from "../value-inputs-DXPDjvBU.js";
13
+ import { u as h } from "../value-inputs-TaX4OjNk.js";
14
14
  import { d as g } from "../forms-numeric-B_jraJaQ.js";
15
15
  import { s as _ } from "../data-display-DT_khPl_.js";
16
16
  import { Fragment as v, useCallback as y, useEffect as b, useId as x, useMemo as S, useState as C } from "react";
@@ -3,7 +3,7 @@ import { useStrings as e } from "../lib/strings.js";
3
3
  import { t } from "../utils-BRhFDwuU.js";
4
4
  import { t as n } from "../feedback-BYIhtitP.js";
5
5
  import { t as r } from "../use-debounced-callback-Cx1h-hdv.js";
6
- import { r as i } from "../combobox-C0EQW6dr.js";
6
+ import { r as i } from "../combobox-Dxo2fAYQ.js";
7
7
  import { useCallback as a, useEffect as o, useMemo as s, useRef as c, useState as l } from "react";
8
8
  import { jsx as u, jsxs as d } from "react/jsx-runtime";
9
9
  //#region src/components/features/suggestions/hooks/use-suggestions.ts
@@ -9,7 +9,7 @@ import { c as l, s as u } from "../typography-UTnveOEy.js";
9
9
  import { t as d } from "../focus-recipes-B653VaLq.js";
10
10
  import { r as f, t as p } from "../structure-BmisBK-3.js";
11
11
  import { _ as m, g as ee, h, p as te, t as ne, v as g } from "../smart-card-DiC5aac3.js";
12
- import { i as re, r as ie } from "../overlays-DNWmZrJ4.js";
12
+ import { i as re, r as ie } from "../overlays-tMkF-VAN.js";
13
13
  import { m as ae } from "../primitives-BFK08r9M.js";
14
14
  import { t as oe } from "../accordion-Cjb6sx0G.js";
15
15
  import { t as _ } from "../badge-HpFqoqSY.js";
@@ -18,7 +18,7 @@ import { t as v } from "../input-DQdEd0YD.js";
18
18
  import { t as y } from "../form-field-CwH9y77i.js";
19
19
  import { d as ce } from "../text-inputs-f9Ia-aCi.js";
20
20
  import { a as b, l as x } from "../choice-inputs-CNHvARCJ.js";
21
- import { i as le, n as S } from "../value-inputs-DXPDjvBU.js";
21
+ import { i as le, n as S } from "../value-inputs-TaX4OjNk.js";
22
22
  import { d as ue } from "../forms-numeric-B_jraJaQ.js";
23
23
  import { t as de } from "../item-K5_ghvze.js";
24
24
  import { i as fe, r as pe, t as me } from "../tabs-CDocW5D1.js";
@@ -18,11 +18,11 @@ import { n as C } from "./field-affordance-recipes-DZhnIL_Y.js";
18
18
  import { a as w, i as T, n as E, o as D, r as O, s as k, t as A } from "./command-C25VMRII.js";
19
19
  import { d as j, p as M, y as N } from "./form-sizing-BdP_Mf5p.js";
20
20
  import { t as P } from "./input-DQdEd0YD.js";
21
- import { t as F } from "./date-picker-ay0Pha_a.js";
22
- import { a as I, c as L, i as R, o as ee, r as z, t as te } from "./popover-7_m66eYW.js";
21
+ import { t as F } from "./date-picker-B2K3ucWn.js";
22
+ import { a as I, c as L, i as R, o as ee, r as z, t as te } from "./popover-gnTOhbFM.js";
23
23
  import { n as B, r as ne, t as re } from "./control-group-recipes-DBXmfh2E.js";
24
24
  import { i as ie, r as ae, t as oe } from "./tabs-CDocW5D1.js";
25
- import { t as se } from "./popover-menu-B9WWygpa.js";
25
+ import { t as se } from "./popover-menu-Cn9rUkdc.js";
26
26
  import { t as ce } from "./use-debounced-callback-Cx1h-hdv.js";
27
27
  import { t as le } from "./use-debounce-DZ_1ZBPa.js";
28
28
  import V, { Component as ue, createContext as de, useCallback as H, useContext as fe, useEffect as U, useId as pe, useMemo as W, useRef as G, useState as K } from "react";
@@ -2206,4 +2206,4 @@ function zt(e, t) {
2206
2206
  //#endregion
2207
2207
  export { Pe as A, ze as C, Me as D, Ne as E, Oe as F, Ee as I, De as L, ke as M, Q as N, Fe as O, Z as P, X as R, Be as S, $ as T, nt as _, Ft as a, Je as b, Nt as c, ht as d, ft as f, st as g, lt as h, It as i, Ae as j, je as k, yt as l, ut as m, Rt as n, Pt as o, dt as p, Lt as r, Mt as s, zt as t, gt as u, $e as v, Re as w, Ve as x, Xe as y };
2208
2208
 
2209
- //# sourceMappingURL=filters-BGfvjP4d.js.map
2209
+ //# sourceMappingURL=filters-DJVAveHA.js.map