@datum-cloud/datum-ui 1.6.1 → 1.7.1

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 (59) hide show
  1. package/dist/app-navigation/index.mjs +2 -2
  2. package/dist/{app-navigation--mry98XV.mjs → app-navigation-CNig4Maj.mjs} +32 -31
  3. package/dist/assistant/index.mjs +1 -1
  4. package/dist/autocomplete/index.mjs +1 -1
  5. package/dist/{autocomplete-G24AgvxU.mjs → autocomplete-DM6JYV4W.mjs} +1 -1
  6. package/dist/autosearch/index.mjs +8 -7
  7. package/dist/avatar-stack/index.mjs +1 -1
  8. package/dist/{avatar-stack-D1-BA7hA.mjs → avatar-stack-BZK6zUJr.mjs} +1 -1
  9. package/dist/{calendar-date-picker-C52Y05ZN.mjs → calendar-date-picker-AzvSqjeS.mjs} +6 -5
  10. package/dist/chart/index.mjs +1 -1
  11. package/dist/{chart-DeCrbcpY.mjs → chart-EgzTS28l.mjs} +6 -3
  12. package/dist/code-editor/index.mjs +1 -1
  13. package/dist/data-table/index.mjs +1 -1
  14. package/dist/{data-table-CfeovSJV.mjs → data-table-mByk373T.mjs} +11 -10
  15. package/dist/date-picker/index.mjs +3 -3
  16. package/dist/date-time-picker/index.mjs +1 -1
  17. package/dist/{date-time-picker-BbtA6JJJ.mjs → date-time-picker-D3-DeNo8.mjs} +1 -1
  18. package/dist/dropzone/index.mjs +1 -1
  19. package/dist/{dropzone-C_vA4q0u.mjs → dropzone-DrWVd7OI.mjs} +5 -3
  20. package/dist/empty-content/index.mjs +1 -1
  21. package/dist/{empty-content-BpS0PONb.mjs → empty-content-DvaelFpJ.mjs} +3 -2
  22. package/dist/form/adapters/rhf/index.mjs +6 -3
  23. package/dist/form/index.mjs +1 -1
  24. package/dist/form/stepper/index.mjs +23 -19
  25. package/dist/{form-2pTdgtYr.mjs → form-BUUNQfC9.mjs} +43 -34
  26. package/dist/grouped-table/index.mjs +1 -1
  27. package/dist/{grouped-table-CPF8Jijv.mjs → grouped-table-b2jDEPR6.mjs} +1 -1
  28. package/dist/index.mjs +26 -26
  29. package/dist/{layers-DJYz6fyE.mjs → layers-DWYdrGmC.mjs} +7 -3
  30. package/dist/logo/themed/index.mjs +1 -1
  31. package/dist/map/index.mjs +1 -1
  32. package/dist/more-actions/index.mjs +1 -1
  33. package/dist/{more-actions-G9hs0rpJ.mjs → more-actions-Bx443Ccx.mjs} +13 -12
  34. package/dist/multi-select/index.mjs +1 -1
  35. package/dist/{multi-select-DIWTdi0i.mjs → multi-select-PHaMEbY-.mjs} +1 -1
  36. package/dist/picker/index.mjs +1 -1
  37. package/dist/{picker-CRUSdzpo.mjs → picker-b5-x-EHs.mjs} +27 -22
  38. package/dist/rich-text-editor/index.mjs +1 -1
  39. package/dist/{rich-text-editor-DRIwcleW.mjs → rich-text-editor-CGuSn8xi.mjs} +1 -1
  40. package/dist/sidebar/index.mjs +1 -1
  41. package/dist/{sidebar-Df6Po0K8.mjs → sidebar-BRUNOqXi.mjs} +37 -36
  42. package/dist/stepper/index.mjs +1 -1
  43. package/dist/{stepper-DJkYcilu.mjs → stepper-dNvkipop.mjs} +2 -1
  44. package/dist/tag-input/index.mjs +1 -1
  45. package/dist/{tag-input-CSav22U5.mjs → tag-input-Ctxtcpwy.mjs} +37 -33
  46. package/dist/task-queue/index.mjs +1 -1
  47. package/dist/{task-queue-dropdown-DfdGiyfA.mjs → task-queue-dropdown-pqFd4rSf.mjs} +76 -75
  48. package/dist/theme/index.mjs +1 -1
  49. package/dist/{themes-BK5atywZ.mjs → themes-Ba2bajuF.mjs} +19 -17
  50. package/dist/time-picker/index.mjs +1 -1
  51. package/dist/{time-picker-Bgt6R1fU.mjs → time-picker-B_fN5vhO.mjs} +1 -1
  52. package/dist/{to-api-format-CgKtSuWO.mjs → to-api-format-43Boq7OR.mjs} +12 -8
  53. package/dist/tooltip/index.mjs +1 -1
  54. package/dist/{tooltip-BhatUaar.mjs → tooltip-C_SL1imw.mjs} +27 -23
  55. package/dist/{types-DrN0rei5.mjs → types-agDpVXBG.mjs} +5 -3
  56. package/dist/{use-option-picker-CV-9CyBV.mjs → use-option-picker-s2bUYwXC.mjs} +3 -2
  57. package/dist/utils/index.mjs +1 -1
  58. package/dist/{utils-U06Eu2KT.mjs → utils-CA4QEIJ8.mjs} +6 -2
  59. package/package.json +52 -52
@@ -8,19 +8,19 @@ import { t as Input } from "./input-j4tbmYYz.mjs";
8
8
  import { t as Label } from "./label-Bk6FXsju.mjs";
9
9
  import { n as RadioGroupItem, t as RadioGroup } from "./radio-group-LduBVTnh.mjs";
10
10
  import { i as SelectItem, l as SelectTrigger, n as SelectContent, t as Select, u as SelectValue } from "./select-DCU44UO6.mjs";
11
- import { t as Tooltip } from "./tooltip-BhatUaar.mjs";
11
+ import { t as Tooltip } from "./tooltip-C_SL1imw.mjs";
12
12
  import { t as Switch } from "./switch-DPHr3TcN.mjs";
13
13
  import { t as Textarea } from "./textarea-B6YhjFVC.mjs";
14
- import { t as Autocomplete } from "./autocomplete-G24AgvxU.mjs";
14
+ import { t as Autocomplete } from "./autocomplete-DM6JYV4W.mjs";
15
15
  import { Autosearch } from "./autosearch/index.mjs";
16
- import { t as CalendarDatePicker } from "./calendar-date-picker-C52Y05ZN.mjs";
16
+ import { t as CalendarDatePicker } from "./calendar-date-picker-AzvSqjeS.mjs";
17
17
  import { t as toast } from "./toast-BUPlDkN3.mjs";
18
- import { t as DateTimePicker } from "./date-time-picker-BbtA6JJJ.mjs";
18
+ import { t as DateTimePicker } from "./date-time-picker-D3-DeNo8.mjs";
19
19
  import { n as useFormContext$1, t as FormProvider } from "./form-context-DzB2a-dw.mjs";
20
20
  import { t as useCopyToClipboard } from "./use-copy-to-clipboard-DZDq_85T.mjs";
21
21
  import { n as useAdapter } from "./adapter-context-h0jCVqGO.mjs";
22
22
  import { InputWithAddons } from "./input-with-addons/index.mjs";
23
- import { t as TimePicker } from "./time-picker-Bgt6R1fU.mjs";
23
+ import { t as TimePicker } from "./time-picker-B_fN5vhO.mjs";
24
24
  import { t as Transfer } from "./transfer-CEq9AhL7.mjs";
25
25
  import { CheckIcon, CircleHelp, CopyIcon } from "lucide-react";
26
26
  import * as React from "react";
@@ -351,7 +351,7 @@ FormCopyBox.displayName = "Form.CopyBox";
351
351
  */
352
352
  function FormCustom({ children }) {
353
353
  const ctx = useFormContext$1();
354
- return /* @__PURE__ */ jsx(Fragment$1, { children: children({
354
+ const renderProps = {
355
355
  form: ctx.form,
356
356
  fields: ctx.fields,
357
357
  isSubmitting: ctx.isSubmitting,
@@ -363,7 +363,8 @@ function FormCustom({ children }) {
363
363
  touchedFields: ctx.touchedFields,
364
364
  submit: ctx.submit,
365
365
  reset: ctx.reset
366
- }) });
366
+ };
367
+ return /* @__PURE__ */ jsx(Fragment$1, { children: children(renderProps) });
367
368
  }
368
369
  FormCustom.displayName = "Form.Custom";
369
370
  //#endregion
@@ -403,22 +404,23 @@ function FormDatePicker({ placeholder, disabled, className, triggerClassName, nu
403
404
  }, [fieldState?.value]);
404
405
  const minDate = minDateProp;
405
406
  const maxDate = maxDateProp;
407
+ const handleDateSelect = React.useCallback((range) => {
408
+ if (!range) {
409
+ fieldState?.change(void 0);
410
+ fieldState?.blur();
411
+ return;
412
+ }
413
+ if (numberOfMonths === 1) fieldState?.change(range.from.toISOString());
414
+ else fieldState?.change({
415
+ from: range.from.toISOString(),
416
+ to: range.to?.toISOString()
417
+ });
418
+ fieldState?.blur();
419
+ }, [fieldState, numberOfMonths]);
406
420
  return /* @__PURE__ */ jsx(CalendarDatePicker, {
407
421
  id,
408
422
  date: currentValue,
409
- onDateSelect: React.useCallback((range) => {
410
- if (!range) {
411
- fieldState?.change(void 0);
412
- fieldState?.blur();
413
- return;
414
- }
415
- if (numberOfMonths === 1) fieldState?.change(range.from.toISOString());
416
- else fieldState?.change({
417
- from: range.from.toISOString(),
418
- to: range.to?.toISOString()
419
- });
420
- fieldState?.blur();
421
- }, [fieldState, numberOfMonths]),
423
+ onDateSelect: handleDateSelect,
422
424
  numberOfMonths,
423
425
  placeholder,
424
426
  disabled: isDisabled,
@@ -448,12 +450,13 @@ function FormDateTimePicker({ minDate: minDateProp, maxDate: maxDateProp, disabl
448
450
  }, [fieldState?.value]);
449
451
  const minDate = minDateProp;
450
452
  const maxDate = maxDateProp;
453
+ const handleChange = React.useCallback((value) => {
454
+ fieldState?.change(value);
455
+ fieldState?.blur();
456
+ }, [fieldState]);
451
457
  return /* @__PURE__ */ jsx(DateTimePicker, {
452
458
  value: currentValue,
453
- onChange: React.useCallback((value) => {
454
- fieldState?.change(value);
455
- fieldState?.blur();
456
- }, [fieldState]),
459
+ onChange: handleChange,
457
460
  minDate,
458
461
  maxDate,
459
462
  disabledDates,
@@ -485,8 +488,9 @@ FormDateTimePicker.displayName = "Form.DateTimePicker";
485
488
  */
486
489
  function FormDescription({ children, className }) {
487
490
  const fieldContext = useOptionalFieldContext();
491
+ const id = fieldContext ? `${fieldContext.id}-description` : void 0;
488
492
  return /* @__PURE__ */ jsx("p", {
489
- id: fieldContext ? `${fieldContext.id}-description` : void 0,
493
+ id,
490
494
  className: cn("text-muted-foreground text-xs text-wrap", className),
491
495
  children
492
496
  });
@@ -839,12 +843,13 @@ FormField.displayName = "Form.Field";
839
843
  */
840
844
  function FormFieldArray({ name, children }) {
841
845
  const fieldArray = useAdapter().useFieldArray(name);
842
- return /* @__PURE__ */ jsx(Fragment$1, { children: children({
846
+ const renderProps = {
843
847
  fields: fieldArray.items,
844
848
  append: fieldArray.append,
845
849
  remove: fieldArray.remove,
846
850
  move: fieldArray.move
847
- }) });
851
+ };
852
+ return /* @__PURE__ */ jsx(Fragment$1, { children: children(renderProps) });
848
853
  }
849
854
  FormFieldArray.displayName = "Form.FieldArray";
850
855
  //#endregion
@@ -936,8 +941,9 @@ function FormRadioGroup({ orientation = "vertical", disabled, className, childre
936
941
  const { id, errors, disabled: fieldDisabled, fieldState } = useFieldContext$1();
937
942
  const isDisabled = disabled ?? fieldDisabled;
938
943
  const hasErrors = errors && errors.length > 0;
944
+ const value = fieldState?.value != null ? String(fieldState.value) : void 0;
939
945
  return /* @__PURE__ */ jsx(RadioGroup, {
940
- value: fieldState?.value != null ? String(fieldState.value) : void 0,
946
+ value,
941
947
  onValueChange: (val) => {
942
948
  fieldState?.change(val);
943
949
  fieldState?.blur();
@@ -1162,8 +1168,9 @@ function FormSelect({ placeholder, disabled, className, children }) {
1162
1168
  const { id, errors, disabled: fieldDisabled, fieldState } = useFieldContext$1();
1163
1169
  const isDisabled = disabled ?? fieldDisabled;
1164
1170
  const hasErrors = errors && errors.length > 0;
1171
+ const value = fieldState?.value != null ? String(fieldState.value) : void 0;
1165
1172
  return /* @__PURE__ */ jsxs(Select, {
1166
- value: fieldState?.value != null ? String(fieldState.value) : void 0,
1173
+ value,
1167
1174
  onValueChange: (val) => fieldState?.change(val),
1168
1175
  disabled: isDisabled,
1169
1176
  children: [/* @__PURE__ */ jsx(SelectTrigger, {
@@ -1296,13 +1303,15 @@ function FormTimePicker({ min, max, step, placeholder, disabled, className }) {
1296
1303
  const { id, errors, disabled: fieldDisabled, fieldState } = useFieldContext$1();
1297
1304
  const isDisabled = disabled ?? fieldDisabled;
1298
1305
  const hasErrors = errors && errors.length > 0;
1306
+ const currentValue = fieldState?.value ?? "";
1307
+ const handleChange = React.useCallback((value) => {
1308
+ fieldState?.change(value || void 0);
1309
+ fieldState?.blur();
1310
+ }, [fieldState]);
1299
1311
  return /* @__PURE__ */ jsx(TimePicker, {
1300
1312
  id,
1301
- value: fieldState?.value ?? "",
1302
- onChange: React.useCallback((value) => {
1303
- fieldState?.change(value || void 0);
1304
- fieldState?.blur();
1305
- }, [fieldState]),
1313
+ value: currentValue,
1314
+ onChange: handleChange,
1306
1315
  min,
1307
1316
  max,
1308
1317
  step,
@@ -1,2 +1,2 @@
1
- import { t as GroupedTable } from "../grouped-table-CPF8Jijv.mjs";
1
+ import { t as GroupedTable } from "../grouped-table-b2jDEPR6.mjs";
2
2
  export { GroupedTable };
@@ -5,7 +5,7 @@ import { t as useControllableState } from "./use-controllable-state-Dna7u3r9.mjs
5
5
  import { t as Input } from "./input-j4tbmYYz.mjs";
6
6
  import { Skeleton } from "./skeleton/index.mjs";
7
7
  import { TableBody, TableCell, TableHead, TableHeader, TableRow } from "./table/index.mjs";
8
- import { f as rowMatchesSearch, h as createSelectionColumn, m as DataTableColumnHeader, p as DataTableRowActions } from "./data-table-CfeovSJV.mjs";
8
+ import { f as rowMatchesSearch, h as createSelectionColumn, m as DataTableColumnHeader, p as DataTableRowActions } from "./data-table-mByk373T.mjs";
9
9
  import { n as useDebouncedSearchInput } from "./use-debounced-search-input-yu_F0QBt.mjs";
10
10
  import { ChevronRight } from "lucide-react";
11
11
  import { useCallback, useMemo, useState } from "react";
package/dist/index.mjs CHANGED
@@ -11,7 +11,7 @@ import { i as buttonGroupVariants, n as ButtonGroupSeparator, r as ButtonGroupTe
11
11
  import { t as Icon } from "./icon-wrapper-DKfJlJd0.mjs";
12
12
  import { Calendar, CalendarDayButton } from "./calendar/index.mjs";
13
13
  import { a as CardDescription, i as CardContent, n as CardFooter, o as CardTitle, r as CardHeader, t as Card } from "./card-Cphn2nA3.mjs";
14
- import { a as ChartTooltip, i as ChartStyle, n as ChartLegend, o as ChartTooltipContent, r as ChartLegendContent, t as ChartContainer } from "./chart-DeCrbcpY.mjs";
14
+ import { a as ChartTooltip, i as ChartStyle, n as ChartLegend, o as ChartTooltipContent, r as ChartLegendContent, t as ChartContainer } from "./chart-EgzTS28l.mjs";
15
15
  import { t as Checkbox } from "./checkbox-C6P12fio.mjs";
16
16
  import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "./collapsible/index.mjs";
17
17
  import { a as CommandInput, c as CommandSeparator, i as CommandGroup, l as CommandShortcut, n as CommandDialog, o as CommandItem, r as CommandEmpty, s as CommandList, t as Command } from "./command-C0aGIYnQ.mjs";
@@ -23,7 +23,7 @@ import { t as Input } from "./input-j4tbmYYz.mjs";
23
23
  import { a as InputGroupText, i as InputGroupInput, n as InputGroupAddon, o as InputGroupTextarea, r as InputGroupButton, t as InputGroup } from "./input-group-DieA8aBt.mjs";
24
24
  import { t as Label } from "./label-Bk6FXsju.mjs";
25
25
  import { t as Spinner } from "./spinner-C5Xv-i2C.mjs";
26
- import { A as useLeaflet, C as MapMarkerClusterGroup, D as MapRectangle, E as MapPopup, O as MapTooltip, S as MapMarker, T as MapPolyline, _ as MapLocateControl, a as MapTileLayer, b as MapCircle, c as MapDrawDelete, d as MapDrawPolygon, f as MapDrawPolyline, g as MapFullscreenControl, h as MapControlContainer, i as MapLayersControl, j as PlaceAutocomplete, k as Map, l as MapDrawEdit, m as MapDrawUndo, n as MapLayerGroup, o as MapDrawCircle, p as MapDrawRectangle, r as MapLayers, s as MapDrawControl, t as MapFeatureGroup, u as MapDrawMarker, v as MapSearchControl, w as MapPolygon, x as MapCircleMarker, y as MapZoomControl } from "./layers-DJYz6fyE.mjs";
26
+ import { A as useLeaflet, C as MapMarkerClusterGroup, D as MapRectangle, E as MapPopup, O as MapTooltip, S as MapMarker, T as MapPolyline, _ as MapLocateControl, a as MapTileLayer, b as MapCircle, c as MapDrawDelete, d as MapDrawPolygon, f as MapDrawPolyline, g as MapFullscreenControl, h as MapControlContainer, i as MapLayersControl, j as PlaceAutocomplete, k as Map, l as MapDrawEdit, m as MapDrawUndo, n as MapLayerGroup, o as MapDrawCircle, p as MapDrawRectangle, r as MapLayers, s as MapDrawControl, t as MapFeatureGroup, u as MapDrawMarker, v as MapSearchControl, w as MapPolygon, x as MapCircleMarker, y as MapZoomControl } from "./layers-DWYdrGmC.mjs";
27
27
  import { i as useInSheet, n as MobileSheet, r as InSheetContext, t as ResponsiveSheetTrigger } from "./mobile-sheet-D9L-JOee.mjs";
28
28
  import { a as SheetHeader, i as SheetFooter, o as SheetTitle, r as SheetDescription, s as SheetTrigger } from "./sheet-DXCZyMHI.mjs";
29
29
  import { i as SheetOverlay, n as SheetClose, r as SheetContent, t as Sheet } from "./sheet-BZViad2U.mjs";
@@ -33,8 +33,8 @@ import { t as useBreakpoint } from "./use-breakpoint-CwiUJSmk.mjs";
33
33
  import { t as ResponsiveDropdown } from "./responsive-dropdown-fCmduKaz.mjs";
34
34
  import { t as ResponsivePopover } from "./responsive-popover-DJZgXWIE.mjs";
35
35
  import { a as SelectLabel, c as SelectSeparator, i as SelectItem, l as SelectTrigger, n as SelectContent, o as SelectScrollDownButton, r as SelectGroup, s as SelectScrollUpButton, t as Select, u as SelectValue } from "./select-DCU44UO6.mjs";
36
- import { C as SidebarProvider, S as SidebarGroupLabel, _ as SidebarMenuSubButton, a as SidebarInput, b as SidebarGroupAction, c as SidebarSeparator, d as SidebarMenuAction, f as SidebarMenuBadge, g as SidebarMenuSub, h as SidebarMenuSkeleton, i as SidebarHeader, l as SidebarTrigger, m as SidebarMenuItem, n as SidebarContent, o as SidebarInset, p as SidebarMenuButton, r as SidebarFooter, s as SidebarRail, t as Sidebar, u as SidebarMenu, v as SidebarMenuSubItem, w as useSidebar, x as SidebarGroupContent, y as SidebarGroup } from "./sidebar-Df6Po0K8.mjs";
37
- import { t as Tooltip } from "./tooltip-BhatUaar.mjs";
36
+ import { C as SidebarProvider, S as SidebarGroupLabel, _ as SidebarMenuSubButton, a as SidebarInput, b as SidebarGroupAction, c as SidebarSeparator, d as SidebarMenuAction, f as SidebarMenuBadge, g as SidebarMenuSub, h as SidebarMenuSkeleton, i as SidebarHeader, l as SidebarTrigger, m as SidebarMenuItem, n as SidebarContent, o as SidebarInset, p as SidebarMenuButton, r as SidebarFooter, s as SidebarRail, t as Sidebar, u as SidebarMenu, v as SidebarMenuSubItem, w as useSidebar, x as SidebarGroupContent, y as SidebarGroup } from "./sidebar-BRUNOqXi.mjs";
37
+ import { t as Tooltip } from "./tooltip-C_SL1imw.mjs";
38
38
  import { Skeleton } from "./skeleton/index.mjs";
39
39
  import { t as Switch } from "./switch-DPHr3TcN.mjs";
40
40
  import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from "./table/index.mjs";
@@ -42,44 +42,44 @@ import { Tabs, TabsContent, TabsLinkTrigger, TabsList, TabsTrigger } from "./tab
42
42
  import { t as Textarea } from "./textarea-B6YhjFVC.mjs";
43
43
  import { a as ListItem, c as Title, d as titleVariants, i as List, l as paragraphVariants, n as Code, o as Paragraph, r as Link, s as Text, t as Blockquote, u as textVariants } from "./typography-BXIBvq3-.mjs";
44
44
  import { t as VisuallyHidden } from "./visuallyhidden-D7L_qs8b.mjs";
45
- import { a as hasActiveDescendant, i as findItemByHref, n as NavMenu, o as isNavItemActive, r as NavMenuItem, s as normalizePath, t as AppNavigation } from "./app-navigation--mry98XV.mjs";
45
+ import { a as hasActiveDescendant, i as findItemByHref, n as NavMenu, o as isNavItemActive, r as NavMenuItem, s as normalizePath, t as AppNavigation } from "./app-navigation-CNig4Maj.mjs";
46
46
  import { t as LoaderOverlay } from "./loader-overlay-DD94azZX.mjs";
47
- import { t as Autocomplete } from "./autocomplete-G24AgvxU.mjs";
47
+ import { t as Autocomplete } from "./autocomplete-DM6JYV4W.mjs";
48
48
  import { Autosearch, defaultAutosearchValue } from "./autosearch/index.mjs";
49
- import { n as avatarStackVariants, t as AvatarStack } from "./avatar-stack-D1-BA7hA.mjs";
50
- import { G as getTimezoneOffset, U as formatTimezoneLabel, W as getBrowserTimezone } from "./picker-CRUSdzpo.mjs";
51
- import { t as CalendarDatePicker } from "./calendar-date-picker-C52Y05ZN.mjs";
52
- import { i as ClientOnly, n as useTheme, r as ThemeScript, t as ThemeProvider } from "./themes-BK5atywZ.mjs";
53
- import { a as formatJson, c as isValidYaml, d as CodeEditor, i as CodeEditorTabs, l as jsonToYaml, n as jsonSchema, o as formatYaml, r as yamlSchema, s as isValidJson, t as createCodeEditorSchema, u as yamlToJson } from "./types-DrN0rei5.mjs";
49
+ import { n as avatarStackVariants, t as AvatarStack } from "./avatar-stack-BZK6zUJr.mjs";
50
+ import { G as getTimezoneOffset, U as formatTimezoneLabel, W as getBrowserTimezone } from "./picker-b5-x-EHs.mjs";
51
+ import { t as CalendarDatePicker } from "./calendar-date-picker-AzvSqjeS.mjs";
52
+ import { i as ClientOnly, n as useTheme, r as ThemeScript, t as ThemeProvider } from "./themes-Ba2bajuF.mjs";
53
+ import { a as formatJson, c as isValidYaml, d as CodeEditor, i as CodeEditorTabs, l as jsonToYaml, n as jsonSchema, o as formatYaml, r as yamlSchema, s as isValidJson, t as createCodeEditorSchema, u as yamlToJson } from "./types-agDpVXBG.mjs";
54
54
  import { t as toast } from "./toast-BUPlDkN3.mjs";
55
55
  import { n as Toaster, t as useToast } from "./use-toast-Bpq0yJIT.mjs";
56
- import { _ as DEFAULT_DEBOUNCE_MS, a as useDataTablePagination, b as DEFAULT_PAGE_SIZES, c as useDataTableSelection, d as resolvePath, f as rowMatchesSearch, g as useNuqsAdapter, h as createSelectionColumn, i as useDataTableLoading, l as useDataTableSorting, m as DataTableColumnHeader, n as useDataTableFilters, o as useDataTableRows, p as DataTableRowActions, r as useDataTableInlineContents, s as useDataTableSearch, t as DataTable, u as createDataTableStore, v as DEFAULT_LOADING_ROWS, y as DEFAULT_PAGE_SIZE } from "./data-table-CfeovSJV.mjs";
56
+ import { _ as DEFAULT_DEBOUNCE_MS, a as useDataTablePagination, b as DEFAULT_PAGE_SIZES, c as useDataTableSelection, d as resolvePath, f as rowMatchesSearch, g as useNuqsAdapter, h as createSelectionColumn, i as useDataTableLoading, l as useDataTableSorting, m as DataTableColumnHeader, n as useDataTableFilters, o as useDataTableRows, p as DataTableRowActions, r as useDataTableInlineContents, s as useDataTableSearch, t as DataTable, u as createDataTableStore, v as DEFAULT_LOADING_ROWS, y as DEFAULT_PAGE_SIZE } from "./data-table-mByk373T.mjs";
57
57
  import { t as ActionRow } from "./action-row-DTvs91_3.mjs";
58
58
  import { n as useDebouncedSearchInput, t as DEFAULT_SEARCH_DEBOUNCE_MS } from "./use-debounced-search-input-yu_F0QBt.mjs";
59
- import { t as MultiSelect } from "./multi-select-DIWTdi0i.mjs";
60
- import { t as DateTimePicker } from "./date-time-picker-BbtA6JJJ.mjs";
59
+ import { t as MultiSelect } from "./multi-select-PHaMEbY-.mjs";
60
+ import { t as DateTimePicker } from "./date-time-picker-D3-DeNo8.mjs";
61
61
  import { a as DropdownMenuItem, c as DropdownMenuRadioGroup, d as DropdownMenuShortcut, f as DropdownMenuSub, h as DropdownMenuTrigger, i as DropdownMenuGroup, l as DropdownMenuRadioItem, m as DropdownMenuSubTrigger, n as DropdownMenuCheckboxItem, o as DropdownMenuLabel, p as DropdownMenuSubContent, r as DropdownMenuContent, s as DropdownMenuPortal, t as DropdownMenu, u as DropdownMenuSeparator } from "./dropdown-B0znsOlu.mjs";
62
- import { i as FileInputButton, n as DropzoneContent, r as DropzoneEmptyState, t as Dropzone } from "./dropzone-C_vA4q0u.mjs";
63
- import { t as EmptyContent } from "./empty-content-BpS0PONb.mjs";
64
- import { A as FormCheckbox, C as FormDialog, D as FormCustom, E as FormDatePicker, M as FormAutosearch, N as FormAutocomplete, O as FormCopyBox, S as FormError, T as FormDateTimePicker, _ as FormRadioGroup, a as useField, b as FormFieldArray, c as useWatchAll, d as FormTextarea, f as FormSwitch, g as FormRoot, h as FormSelectItem, i as useFieldContext, j as FormButton, k as FormCombobox, l as FormTransfer, m as FormSelect, n as useFormState, o as FormWhen, p as FormSubmit, r as useFormContext, s as useWatch, t as Form, u as FormTimePicker, v as FormRadioItem, w as FormDescription, x as FormField, y as FormInput } from "./form-2pTdgtYr.mjs";
62
+ import { i as FileInputButton, n as DropzoneContent, r as DropzoneEmptyState, t as Dropzone } from "./dropzone-DrWVd7OI.mjs";
63
+ import { t as EmptyContent } from "./empty-content-DvaelFpJ.mjs";
64
+ import { A as FormCheckbox, C as FormDialog, D as FormCustom, E as FormDatePicker, M as FormAutosearch, N as FormAutocomplete, O as FormCopyBox, S as FormError, T as FormDateTimePicker, _ as FormRadioGroup, a as useField, b as FormFieldArray, c as useWatchAll, d as FormTextarea, f as FormSwitch, g as FormRoot, h as FormSelectItem, i as useFieldContext, j as FormButton, k as FormCombobox, l as FormTransfer, m as FormSelect, n as useFormState, o as FormWhen, p as FormSubmit, r as useFormContext, s as useWatch, t as Form, u as FormTimePicker, v as FormRadioItem, w as FormDescription, x as FormField, y as FormInput } from "./form-BUUNQfC9.mjs";
65
65
  import { t as useCopyToClipboard } from "./use-copy-to-clipboard-DZDq_85T.mjs";
66
66
  import { n as useAdapter, t as FormAdapterProvider } from "./adapter-context-h0jCVqGO.mjs";
67
67
  import { InputWithAddons } from "./input-with-addons/index.mjs";
68
- import { t as TimePicker } from "./time-picker-Bgt6R1fU.mjs";
68
+ import { t as TimePicker } from "./time-picker-B_fN5vhO.mjs";
69
69
  import { t as Transfer } from "./transfer-CEq9AhL7.mjs";
70
70
  import { a as getResponsiveValue, c as GRID_COLUMNS, d as RESPONSIVE_MAP, i as getGutter, l as GRID_PREFIX, n as Row, o as registerMediaQuery, r as RowContext, s as GRID_BREAKPOINTS, t as Col, u as RESPONSIVE_ARRAY } from "./col-BYGWTB4j.mjs";
71
- import { t as GroupedTable } from "./grouped-table-CPF8Jijv.mjs";
71
+ import { t as GroupedTable } from "./grouped-table-b2jDEPR6.mjs";
72
72
  import { t as InputNumber } from "./input-number-TXmW-X9o.mjs";
73
73
  import { a as logoStyles, i as LogoFlat, n as LogoStacked, r as LogoIcon, t as LogoText } from "./logo-text-Dpm5O6Kg.mjs";
74
74
  import { t as Logo } from "./logo-C3FxD7jb.mjs";
75
- import { t as MoreActions } from "./more-actions-G9hs0rpJ.mjs";
75
+ import { t as MoreActions } from "./more-actions-Bx443Ccx.mjs";
76
76
  import { configureProgress, startProgress, stopProgress } from "./nprogress/index.mjs";
77
77
  import { t as PageTitle } from "./page-title-ipRWEOeM.mjs";
78
- import { n as useRichTextEditor, r as RichTextContent, t as RichTextEditor } from "./rich-text-editor-DRIwcleW.mjs";
79
- import { t as defineStepper } from "./stepper-DJkYcilu.mjs";
80
- import { t as TagsInput } from "./tag-input-CSav22U5.mjs";
81
- import { _ as RedisTaskStorage, a as TaskPanelItem, b as createProjectMetadata, c as TaskPanelHeader, d as useCurrentScope, f as useTasksWithLabels, g as detectStorage, h as TaskQueue, i as TaskPanel, l as getContextLabel, m as TaskQueueProvider, n as TaskSummaryDialog, o as TaskPanelCounter, p as useTaskQueue, r as TaskQueueTrigger, s as TaskPanelActions, t as TaskQueueDropdown, u as matchesCurrentScope, v as LocalTaskStorage, x as createUserMetadata, y as createOrgMetadata } from "./task-queue-dropdown-DfdGiyfA.mjs";
82
- import { _ as getShortTimezoneDisplay, a as TimeRangePicker, b as utcToLocalInputString, c as getPresetByKey, d as TimezoneSelector, f as QuickRangesPanel, g as getDefaultTimezoneOptions, h as formatUtcForDisplay, i as formatTimeRangeDisplay, l as getPresetByShortcut, m as createTimezoneOption, n as formatDateForInput, o as DEFAULT_PRESETS, p as CustomRangePanel, r as formatSingleTimeDisplay, s as getDefaultPreset, t as toApiTimeRange, u as getPresetRange, v as localInputStringToUtc, x as zonedDateToUtcString, y as utcStringToZonedDate } from "./to-api-format-CgKtSuWO.mjs";
78
+ import { n as useRichTextEditor, r as RichTextContent, t as RichTextEditor } from "./rich-text-editor-CGuSn8xi.mjs";
79
+ import { t as defineStepper } from "./stepper-dNvkipop.mjs";
80
+ import { t as TagsInput } from "./tag-input-Ctxtcpwy.mjs";
81
+ import { _ as RedisTaskStorage, a as TaskPanelItem, b as createProjectMetadata, c as TaskPanelHeader, d as useCurrentScope, f as useTasksWithLabels, g as detectStorage, h as TaskQueue, i as TaskPanel, l as getContextLabel, m as TaskQueueProvider, n as TaskSummaryDialog, o as TaskPanelCounter, p as useTaskQueue, r as TaskQueueTrigger, s as TaskPanelActions, t as TaskQueueDropdown, u as matchesCurrentScope, v as LocalTaskStorage, x as createUserMetadata, y as createOrgMetadata } from "./task-queue-dropdown-pqFd4rSf.mjs";
82
+ import { _ as getShortTimezoneDisplay, a as TimeRangePicker, b as utcToLocalInputString, c as getPresetByKey, d as TimezoneSelector, f as QuickRangesPanel, g as getDefaultTimezoneOptions, h as formatUtcForDisplay, i as formatTimeRangeDisplay, l as getPresetByShortcut, m as createTimezoneOption, n as formatDateForInput, o as DEFAULT_PRESETS, p as CustomRangePanel, r as formatSingleTimeDisplay, s as getDefaultPreset, t as toApiTimeRange, u as getPresetRange, v as localInputStringToUtc, x as zonedDateToUtcString, y as utcStringToZonedDate } from "./to-api-format-43Boq7OR.mjs";
83
83
  import { t as useDebounce } from "./hooks-CwZ6hyI1.mjs";
84
- import { n as toUTCTimestampStartOfDay, t as toUTCTimestampEndOfDay } from "./utils-U06Eu2KT.mjs";
84
+ import { n as toUTCTimestampStartOfDay, t as toUTCTimestampEndOfDay } from "./utils-CA4QEIJ8.mjs";
85
85
  export { CustomRangePanel as AbsoluteRangePanel, CustomRangePanel, ActionRow, Alert, AlertDescription, AlertTitle, AppNavigation, Autocomplete, Autosearch, Avatar, AvatarFallback, AvatarImage, AvatarStack, Badge, Blockquote, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, CalendarDatePicker, CalendarDayButton, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, ClientOnly, CloseIcon, Code, CodeEditor, CodeEditorTabs, Col, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, DEFAULT_DEBOUNCE_MS, DEFAULT_LOADING_ROWS, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZES, DEFAULT_PRESETS, DEFAULT_SEARCH_DEBOUNCE_MS, DataTable, DataTableColumnHeader, DataTableRowActions, DateTimePicker, Dialog, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Dropzone, DropzoneContent, DropzoneEmptyState, EmptyContent, FileInputButton, Form, FormAdapterProvider, FormAutocomplete, FormAutosearch, FormButton, FormCheckbox, FormCombobox, FormCopyBox, FormCustom, FormDatePicker, FormDateTimePicker, FormDescription, FormDialog, FormError, FormField, FormFieldArray, FormInput, FormRadioGroup, FormRadioItem, FormRoot, FormSelect, FormSelectItem, FormSubmit, FormSwitch, FormTextarea, FormTimePicker, FormTransfer, FormWhen, GRID_BREAKPOINTS, GRID_COLUMNS, GRID_PREFIX, GroupedTable, HoverCard, HoverCardContent, HoverCardTrigger, Icon, InSheetContext, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, InputNumber, InputWithAddons, Label, Link, LinkButton, List, ListItem, LoaderOverlay, LocalTaskStorage, Logo, LogoFlat, LogoIcon, LogoStacked, LogoText, Map, MapCircle, MapCircleMarker, MapControlContainer, MapDrawCircle, MapDrawControl, MapDrawDelete, MapDrawEdit, MapDrawMarker, MapDrawPolygon, MapDrawPolyline, MapDrawRectangle, MapDrawUndo, MapFeatureGroup, MapFullscreenControl, MapLayerGroup, MapLayers, MapLayersControl, MapLocateControl, MapMarker, MapMarkerClusterGroup, MapPolygon, MapPolyline, MapPopup, MapRectangle, MapSearchControl, MapTileLayer, MapTooltip, MapZoomControl, MobileSheet, MoreActions, MultiSelect, NavMenu, NavMenuItem, PageTitle, Paragraph, PlaceAutocomplete, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, QuickRangesPanel, RESPONSIVE_ARRAY, RESPONSIVE_MAP, RadioGroup, RadioGroupItem, RedisTaskStorage, ResponsiveDropdown, ResponsivePopover, ResponsiveSheetTrigger, RichTextContent, RichTextEditor, Row, RowContext, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Spinner, SpinnerIcon, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsLinkTrigger, TabsList, TabsTrigger, TagsInput, TaskPanel, TaskPanelActions, TaskPanelCounter, TaskPanelHeader, TaskPanelItem, TaskQueue, TaskQueueDropdown, TaskQueueProvider, TaskQueueTrigger, TaskSummaryDialog, Text, Textarea, ThemeProvider, ThemeScript, TimePicker, TimeRangePicker, TimezoneSelector, Title, Toaster, Tooltip, Transfer, VisuallyHidden, avatarStackVariants, badgeVariants, buttonGroupVariants, buttonVariants, cn, configureProgress, createCodeEditorSchema, createDataTableStore, createOrgMetadata, createProjectMetadata, createSelectionColumn, createTimezoneOption, createUserMetadata, defaultAutosearchValue, defineStepper, detectStorage, findItemByHref, formatDateForInput, formatJson, formatSingleTimeDisplay, formatTimeRangeDisplay, formatTimezoneLabel, formatUtcForDisplay, formatYaml, getBrowserTimezone, getContextLabel, getDefaultPreset, getDefaultTimezoneOptions, getGutter, getPresetByKey, getPresetByShortcut, getPresetRange, getResponsiveValue, getShortTimezoneDisplay, getTimezoneOffset, hasActiveDescendant, isNavItemActive, isValidJson, isValidYaml, jsonSchema, jsonToYaml, localInputStringToUtc, logoStyles, matchesCurrentScope, normalizePath, paragraphVariants, registerMediaQuery, resolvePath, rowMatchesSearch, startProgress, stopProgress, textVariants, titleVariants, toApiTimeRange, toUTCTimestampEndOfDay, toUTCTimestampStartOfDay, toast, useAdapter, useBreakpoint, useControllableState, useCopyToClipboard, useCurrentScope, useDataTableFilters, useDataTableInlineContents, useDataTableLoading, useDataTablePagination, useDataTableRows, useDataTableSearch, useDataTableSelection, useDataTableSorting, useDebounce, useDebouncedSearchInput, useField, useFieldContext, useFormContext, useFormState, useInSheet, useLeaflet, useNuqsAdapter, useRichTextEditor, useSidebar, useTaskQueue, useTasksWithLabels, useTheme, useToast, useWatch, useWatchAll, utcStringToZonedDate, utcToLocalInputString, yamlSchema, yamlToJson, zonedDateToUtcString };
@@ -73,12 +73,13 @@ function usePlaceSearch({ debounceMs, query, ...props }) {
73
73
  if (!response.ok) throw new Error(`Photon API error: ${response.status} ${response.statusText}`);
74
74
  const data = await response.json();
75
75
  const seenOsmKeys = /* @__PURE__ */ new Set();
76
- setResults(data.features.filter((feature) => {
76
+ const dedupedFeatures = data.features.filter((feature) => {
77
77
  const key = `${feature.properties.osm_type}:${feature.properties.osm_id}`;
78
78
  if (seenOsmKeys.has(key)) return false;
79
79
  seenOsmKeys.add(key);
80
80
  return true;
81
- }));
81
+ });
82
+ setResults(dedupedFeatures);
82
83
  } catch (err) {
83
84
  if (err instanceof Error && err.name !== "AbortError") {
84
85
  setError(err);
@@ -994,7 +995,10 @@ function MapLayers({ defaultTileLayer, defaultLayerGroups = [], ...props }) {
994
995
  });
995
996
  }
996
997
  useEffect(() => {
997
- if (tileLayers.length > 0 && !selectedTileLayer) setSelectedTileLayer(defaultTileLayer && tileLayers.some((layer) => layer.name === defaultTileLayer) ? defaultTileLayer : tileLayers[0].name);
998
+ if (tileLayers.length > 0 && !selectedTileLayer) {
999
+ const validDefaultValue = defaultTileLayer && tileLayers.some((layer) => layer.name === defaultTileLayer) ? defaultTileLayer : tileLayers[0].name;
1000
+ setSelectedTileLayer(validDefaultValue);
1001
+ }
998
1002
  }, [
999
1003
  tileLayers,
1000
1004
  defaultTileLayer,
@@ -1,4 +1,4 @@
1
- import { i as ClientOnly, n as useTheme } from "../../themes-BK5atywZ.mjs";
1
+ import { i as ClientOnly, n as useTheme } from "../../themes-Ba2bajuF.mjs";
2
2
  import { i as LogoFlat, n as LogoStacked, r as LogoIcon, t as LogoText } from "../../logo-text-Dpm5O6Kg.mjs";
3
3
  import "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,2 +1,2 @@
1
- import { A as useLeaflet, C as MapMarkerClusterGroup, D as MapRectangle, E as MapPopup, O as MapTooltip, S as MapMarker, T as MapPolyline, _ as MapLocateControl, a as MapTileLayer, b as MapCircle, c as MapDrawDelete, d as MapDrawPolygon, f as MapDrawPolyline, g as MapFullscreenControl, h as MapControlContainer, i as MapLayersControl, j as PlaceAutocomplete, k as Map, l as MapDrawEdit, m as MapDrawUndo, n as MapLayerGroup, o as MapDrawCircle, p as MapDrawRectangle, r as MapLayers, s as MapDrawControl, t as MapFeatureGroup, u as MapDrawMarker, v as MapSearchControl, w as MapPolygon, x as MapCircleMarker, y as MapZoomControl } from "../layers-DJYz6fyE.mjs";
1
+ import { A as useLeaflet, C as MapMarkerClusterGroup, D as MapRectangle, E as MapPopup, O as MapTooltip, S as MapMarker, T as MapPolyline, _ as MapLocateControl, a as MapTileLayer, b as MapCircle, c as MapDrawDelete, d as MapDrawPolygon, f as MapDrawPolyline, g as MapFullscreenControl, h as MapControlContainer, i as MapLayersControl, j as PlaceAutocomplete, k as Map, l as MapDrawEdit, m as MapDrawUndo, n as MapLayerGroup, o as MapDrawCircle, p as MapDrawRectangle, r as MapLayers, s as MapDrawControl, t as MapFeatureGroup, u as MapDrawMarker, v as MapSearchControl, w as MapPolygon, x as MapCircleMarker, y as MapZoomControl } from "../layers-DWYdrGmC.mjs";
2
2
  export { Map, MapCircle, MapCircleMarker, MapControlContainer, MapDrawCircle, MapDrawControl, MapDrawDelete, MapDrawEdit, MapDrawMarker, MapDrawPolygon, MapDrawPolyline, MapDrawRectangle, MapDrawUndo, MapFeatureGroup, MapFullscreenControl, MapLayerGroup, MapLayers, MapLayersControl, MapLocateControl, MapMarker, MapMarkerClusterGroup, MapPolygon, MapPolyline, MapPopup, MapRectangle, MapSearchControl, MapTileLayer, MapTooltip, MapZoomControl, PlaceAutocomplete, useLeaflet };
@@ -1,3 +1,3 @@
1
1
  import { t as ActionRow } from "../action-row-DTvs91_3.mjs";
2
- import { t as MoreActions } from "../more-actions-G9hs0rpJ.mjs";
2
+ import { t as MoreActions } from "../more-actions-Bx443Ccx.mjs";
3
3
  export { ActionRow, MoreActions };
@@ -1,7 +1,7 @@
1
1
  import { t as cn } from "./utils-Bu32wN-x.mjs";
2
2
  import { t as Button } from "./button-A1qTjZ8U.mjs";
3
3
  import { t as ResponsiveDropdown } from "./responsive-dropdown-fCmduKaz.mjs";
4
- import { t as Tooltip } from "./tooltip-BhatUaar.mjs";
4
+ import { t as Tooltip } from "./tooltip-C_SL1imw.mjs";
5
5
  import { t as ActionRow } from "./action-row-DTvs91_3.mjs";
6
6
  import { Ellipsis } from "lucide-react";
7
7
  import { useState } from "react";
@@ -15,20 +15,21 @@ function MoreActions(props) {
15
15
  return typeof action.hidden === "function" ? !action.hidden(row) : !action.hidden;
16
16
  });
17
17
  if (visibleActions.length === 0) return null;
18
+ const trigger = /* @__PURE__ */ jsx(Button, {
19
+ onClick: () => setOpen(!open),
20
+ type: "quaternary",
21
+ theme: "borderless",
22
+ size: "icon",
23
+ disabled,
24
+ "aria-label": sheetTitle,
25
+ "aria-haspopup": "menu",
26
+ className: cn("data-[state=open]:bg-accent size-7 p-0 focus-visible:ring-0 focus-visible:ring-offset-0", className),
27
+ children: /* @__PURE__ */ jsx(Ellipsis, { className: cn("size-5", iconClassName) })
28
+ });
18
29
  return /* @__PURE__ */ jsx(ResponsiveDropdown, {
19
30
  open,
20
31
  onOpenChange: setOpen,
21
- trigger: /* @__PURE__ */ jsx(Button, {
22
- onClick: () => setOpen(!open),
23
- type: "quaternary",
24
- theme: "borderless",
25
- size: "icon",
26
- disabled,
27
- "aria-label": sheetTitle,
28
- "aria-haspopup": "menu",
29
- className: cn("data-[state=open]:bg-accent size-7 p-0 focus-visible:ring-0 focus-visible:ring-offset-0", className),
30
- children: /* @__PURE__ */ jsx(Ellipsis, { className: cn("size-5", iconClassName) })
31
- }),
32
+ trigger,
32
33
  sheetTitle,
33
34
  align: "end",
34
35
  responsive,
@@ -1,2 +1,2 @@
1
- import { t as MultiSelect } from "../multi-select-DIWTdi0i.mjs";
1
+ import { t as MultiSelect } from "../multi-select-PHaMEbY-.mjs";
2
2
  export { MultiSelect };
@@ -4,7 +4,7 @@ import { t as Separator } from "./separator-vbPD_WFQ.mjs";
4
4
  import { t as useControllableState } from "./use-controllable-state-Dna7u3r9.mjs";
5
5
  import { t as ResponsivePopover } from "./responsive-popover-DJZgXWIE.mjs";
6
6
  import { t as LoaderOverlay } from "./loader-overlay-DD94azZX.mjs";
7
- import { n as OptionList, t as useOptionPicker } from "./use-option-picker-CV-9CyBV.mjs";
7
+ import { n as OptionList, t as useOptionPicker } from "./use-option-picker-s2bUYwXC.mjs";
8
8
  import { cva } from "class-variance-authority";
9
9
  import { CheckIcon, ChevronDown, WandSparkles, XCircle, XIcon } from "lucide-react";
10
10
  import * as React from "react";
@@ -1,2 +1,2 @@
1
- import { $ as isRangeMode, A as resolveCommit, B as PickerContext, C as DATE_PRESETS, D as formatTimeLabel, E as dateToYYYYMMDD, F as PickerClear, G as getTimezoneOffset, H as formatInTimezone, I as PickerFooter, J as ALLOWED_STEPS, K as isoToZonedDate, L as PickerReset, M as PickerPresets, N as PickerApply, O as isValidTimeString, P as PickerCancel, Q as isDateBearingMode, R as PickerContent, S as DATETIME_PRESETS, T as usePickerState, U as formatTimezoneLabel, V as usePickerContext, W as getBrowserTimezone, X as RANGE_MODES, Y as DATE_BEARING_MODES, Z as TIME_BEARING_MODES, _ as PickerTimezoneSelect, a as DateRangeTimePicker, b as useTimeSlots, c as clampRange, d as formatPickerValue, et as isTimeBearingMode, f as isSameDate, g as PickerTrigger, h as Picker, i as DateTimePicker, j as useKeyboardShortcuts, k as parseTimeString, l as getDaysDifference, m as isSameStringRange, n as TimePicker, o as DateRangePicker, p as isSameDateRange, q as zonedDateToIso, r as DateTimeRangePicker, s as DatePicker, t as TimeRangePicker, u as isRangeValid, v as PickerTimezoneIndicator, w as getDefaultPresets, x as usePresets, y as PickerTimeInput, z as PickerCalendar } from "../picker-CRUSdzpo.mjs";
1
+ import { $ as isRangeMode, A as resolveCommit, B as PickerContext, C as DATE_PRESETS, D as formatTimeLabel, E as dateToYYYYMMDD, F as PickerClear, G as getTimezoneOffset, H as formatInTimezone, I as PickerFooter, J as ALLOWED_STEPS, K as isoToZonedDate, L as PickerReset, M as PickerPresets, N as PickerApply, O as isValidTimeString, P as PickerCancel, Q as isDateBearingMode, R as PickerContent, S as DATETIME_PRESETS, T as usePickerState, U as formatTimezoneLabel, V as usePickerContext, W as getBrowserTimezone, X as RANGE_MODES, Y as DATE_BEARING_MODES, Z as TIME_BEARING_MODES, _ as PickerTimezoneSelect, a as DateRangeTimePicker, b as useTimeSlots, c as clampRange, d as formatPickerValue, et as isTimeBearingMode, f as isSameDate, g as PickerTrigger, h as Picker, i as DateTimePicker, j as useKeyboardShortcuts, k as parseTimeString, l as getDaysDifference, m as isSameStringRange, n as TimePicker, o as DateRangePicker, p as isSameDateRange, q as zonedDateToIso, r as DateTimeRangePicker, s as DatePicker, t as TimeRangePicker, u as isRangeValid, v as PickerTimezoneIndicator, w as getDefaultPresets, x as usePresets, y as PickerTimeInput, z as PickerCalendar } from "../picker-b5-x-EHs.mjs";
2
2
  export { ALLOWED_STEPS, DATETIME_PRESETS, DATE_BEARING_MODES, DATE_PRESETS, DatePicker, DateRangePicker, DateRangeTimePicker, DateTimePicker, DateTimeRangePicker, Picker, PickerApply, PickerCalendar, PickerCancel, PickerClear, PickerContent, PickerContext, PickerFooter, PickerPresets, PickerReset, PickerTimeInput, PickerTimezoneIndicator, PickerTimezoneSelect, PickerTrigger, RANGE_MODES, TIME_BEARING_MODES, TimePicker, TimeRangePicker, clampRange, dateToYYYYMMDD, formatInTimezone, formatPickerValue, formatTimeLabel, formatTimezoneLabel, getBrowserTimezone, getDaysDifference, getDefaultPresets, getTimezoneOffset, isDateBearingMode, isRangeMode, isRangeValid, isSameDate, isSameDateRange, isSameStringRange, isTimeBearingMode, isValidTimeString, isoToZonedDate, parseTimeString, resolveCommit, useKeyboardShortcuts, usePickerContext, usePickerState, usePresets, useTimeSlots, zonedDateToIso };
@@ -5,7 +5,7 @@ import { Calendar } from "./calendar/index.mjs";
5
5
  import { t as useBreakpoint } from "./use-breakpoint-CwiUJSmk.mjs";
6
6
  import { t as ResponsivePopover } from "./responsive-popover-DJZgXWIE.mjs";
7
7
  import { i as SelectItem, l as SelectTrigger, n as SelectContent, t as Select, u as SelectValue } from "./select-daE2Nn0Z.mjs";
8
- import { n as OptionList, t as useOptionPicker } from "./use-option-picker-CV-9CyBV.mjs";
8
+ import { n as OptionList, t as useOptionPicker } from "./use-option-picker-s2bUYwXC.mjs";
9
9
  import { CalendarIcon, Clock, Globe, X } from "lucide-react";
10
10
  import { createContext, useCallback, useContext, useEffect, useMemo, useReducer, useRef, useState } from "react";
11
11
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -115,7 +115,7 @@ const ALLOWED_STEPS = [
115
115
  /** Browser-detected IANA timezone, falling back to UTC if unavailable. */
116
116
  function getBrowserTimezone() {
117
117
  try {
118
- return Intl.DateTimeFormat().resolvedOptions().timeZone;
118
+ return new Intl.DateTimeFormat().resolvedOptions().timeZone;
119
119
  } catch {
120
120
  return "UTC";
121
121
  }
@@ -236,15 +236,16 @@ function PickerCalendar({ numberOfMonths = 1, className, minDate, maxDate, disab
236
236
  })();
237
237
  if (mode === "date-range" || mode === "date-range-time" || mode === "datetime-range") {
238
238
  const v = state.pendingValue;
239
+ const selected = v ? mode === "date-range" ? {
240
+ from: v.from,
241
+ to: v.to
242
+ } : {
243
+ from: isoToZonedDate(v.from, timezone),
244
+ to: isoToZonedDate(v.to, timezone)
245
+ } : void 0;
239
246
  return /* @__PURE__ */ jsx(Calendar, {
240
247
  mode: "range",
241
- selected: v ? mode === "date-range" ? {
242
- from: v.from,
243
- to: v.to
244
- } : {
245
- from: isoToZonedDate(v.from, timezone),
246
- to: isoToZonedDate(v.to, timezone)
247
- } : void 0,
248
+ selected,
248
249
  onSelect: (range) => {
249
250
  if (!range?.from || !range?.to) return;
250
251
  if (mode === "date-range") actions.setRange({
@@ -270,9 +271,10 @@ function PickerCalendar({ numberOfMonths = 1, className, minDate, maxDate, disab
270
271
  classNames: CALENDAR_RESPONSIVE_CLASSNAMES
271
272
  });
272
273
  }
274
+ const selected = state.pendingValue instanceof Date ? state.pendingValue : mode === "datetime" && typeof state.pendingValue === "string" ? isoToZonedDate(state.pendingValue, timezone) : void 0;
273
275
  return /* @__PURE__ */ jsx(Calendar, {
274
276
  mode: "single",
275
- selected: state.pendingValue instanceof Date ? state.pendingValue : mode === "datetime" && typeof state.pendingValue === "string" ? isoToZonedDate(state.pendingValue, timezone) : void 0,
277
+ selected,
276
278
  onSelect: (d) => {
277
279
  if (!d) return;
278
280
  if (mode === "date") actions.setSingleDate(d);
@@ -335,11 +337,12 @@ function PickerFooter({ children, className }) {
335
337
  PickerFooter.displayName = "Picker.Footer";
336
338
  function PickerApply({ children = "Apply" }) {
337
339
  const { state, actions } = usePickerContext();
340
+ const disabled = state.pendingValue === null || state.pendingValue === void 0;
338
341
  return /* @__PURE__ */ jsx(Button, {
339
342
  type: "primary",
340
343
  theme: "solid",
341
344
  size: "xs",
342
- disabled: state.pendingValue === null || state.pendingValue === void 0,
345
+ disabled,
343
346
  onClick: actions.apply,
344
347
  children
345
348
  });
@@ -386,9 +389,10 @@ function PickerPresets({ className }) {
386
389
  return /* @__PURE__ */ jsx("div", {
387
390
  className: cn("border-border hidden flex-col gap-1 border-r p-2 md:flex", className),
388
391
  children: presets.map((preset) => {
392
+ const isSelected = state.selectedPresetKey === preset.key;
389
393
  return /* @__PURE__ */ jsxs(Button$1, {
390
394
  type: "button",
391
- variant: state.selectedPresetKey === preset.key ? "default" : "ghost",
395
+ variant: isSelected ? "default" : "ghost",
392
396
  size: "sm",
393
397
  className: "justify-start font-normal",
394
398
  onClick: () => {
@@ -1190,17 +1194,18 @@ function PickerTimeInput({ target, min, max, className }) {
1190
1194
  PickerTimeInput.displayName = "Picker.TimeInput";
1191
1195
  function InlineSlotList({ slots, value, onSelect, className }) {
1192
1196
  const [open, setOpen] = useState(true);
1197
+ const picker = useOptionPicker({
1198
+ multiple: false,
1199
+ options: slots,
1200
+ value,
1201
+ onValueChange: (next) => {
1202
+ if (typeof next === "string") onSelect(next);
1203
+ },
1204
+ open,
1205
+ onOpenChange: setOpen
1206
+ });
1193
1207
  return /* @__PURE__ */ jsx(OptionList, {
1194
- picker: useOptionPicker({
1195
- multiple: false,
1196
- options: slots,
1197
- value,
1198
- onValueChange: (next) => {
1199
- if (typeof next === "string") onSelect(next);
1200
- },
1201
- open,
1202
- onOpenChange: setOpen
1203
- }),
1208
+ picker,
1204
1209
  disableSearch: slots.length <= 48,
1205
1210
  searchPlaceholder: "Search time...",
1206
1211
  listClassName: cn("max-h-[240px]", className)
@@ -1,2 +1,2 @@
1
- import { n as useRichTextEditor, r as RichTextContent, t as RichTextEditor } from "../rich-text-editor-DRIwcleW.mjs";
1
+ import { n as useRichTextEditor, r as RichTextContent, t as RichTextEditor } from "../rich-text-editor-CGuSn8xi.mjs";
2
2
  export { RichTextContent, RichTextEditor, useRichTextEditor };
@@ -3,7 +3,7 @@ import { t as Button } from "./button-A1qTjZ8U.mjs";
3
3
  import { t as Icon } from "./icon-wrapper-DKfJlJd0.mjs";
4
4
  import { t as Input } from "./input-j4tbmYYz.mjs";
5
5
  import { t as ResponsivePopover } from "./responsive-popover-DJZgXWIE.mjs";
6
- import { t as Tooltip } from "./tooltip-BhatUaar.mjs";
6
+ import { t as Tooltip } from "./tooltip-C_SL1imw.mjs";
7
7
  import { BoldIcon, ItalicIcon, LinkIcon, StrikethroughIcon, UnderlineIcon, UnlinkIcon } from "lucide-react";
8
8
  import { createContext, use, useCallback, useEffect, useState } from "react";
9
9
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,2 +1,2 @@
1
- import { C as SidebarProvider, S as SidebarGroupLabel, _ as SidebarMenuSubButton, a as SidebarInput, b as SidebarGroupAction, c as SidebarSeparator, d as SidebarMenuAction, f as SidebarMenuBadge, g as SidebarMenuSub, h as SidebarMenuSkeleton, i as SidebarHeader, l as SidebarTrigger, m as SidebarMenuItem, n as SidebarContent, o as SidebarInset, p as SidebarMenuButton, r as SidebarFooter, s as SidebarRail, t as Sidebar, u as SidebarMenu, v as SidebarMenuSubItem, w as useSidebar, x as SidebarGroupContent, y as SidebarGroup } from "../sidebar-Df6Po0K8.mjs";
1
+ import { C as SidebarProvider, S as SidebarGroupLabel, _ as SidebarMenuSubButton, a as SidebarInput, b as SidebarGroupAction, c as SidebarSeparator, d as SidebarMenuAction, f as SidebarMenuBadge, g as SidebarMenuSub, h as SidebarMenuSkeleton, i as SidebarHeader, l as SidebarTrigger, m as SidebarMenuItem, n as SidebarContent, o as SidebarInset, p as SidebarMenuButton, r as SidebarFooter, s as SidebarRail, t as Sidebar, u as SidebarMenu, v as SidebarMenuSubItem, w as useSidebar, x as SidebarGroupContent, y as SidebarGroup } from "../sidebar-BRUNOqXi.mjs";
2
2
  export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar };