@godxjp/ui 11.0.2 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/README.md +40 -12
  2. package/dist/app/index.d.ts +1 -5
  3. package/dist/app/index.js +4 -4
  4. package/dist/{checkbox-em-oFM5D.d.ts → checkbox-DPFcnsMZ.d.ts} +1 -1
  5. package/dist/{chunk-QVLUCB47.js → chunk-2JCSS6B4.js} +2 -2
  6. package/dist/{chunk-6CSBMMZS.js → chunk-3ELRYXJK.js} +27 -0
  7. package/dist/{chunk-NXVCI6YB.js → chunk-3LPY7YA4.js} +2 -2
  8. package/dist/chunk-BCBK4FLV.js +83 -0
  9. package/dist/{chunk-FAB3LMTK.js → chunk-F7BEIY7S.js} +3 -3
  10. package/dist/chunk-FK2JDABO.js +318 -0
  11. package/dist/{chunk-X2VY4MOW.js → chunk-FK5QEFVY.js} +2 -11
  12. package/dist/{chunk-SARQRCKO.js → chunk-FOANNF6Z.js} +1 -1
  13. package/dist/{chunk-DNGJHWJZ.js → chunk-FTOG7D4T.js} +4 -2
  14. package/dist/{chunk-PUGEOUWZ.js → chunk-I6HD36IU.js} +2 -2
  15. package/dist/{chunk-2HOTP7RL.js → chunk-JSQOCVM6.js} +4 -78
  16. package/dist/{chunk-Z46J47FY.js → chunk-L2MEN2VK.js} +1 -1
  17. package/dist/{chunk-3Q4A4U2P.js → chunk-MMFIL33F.js} +1 -1
  18. package/dist/{chunk-IHRMOJXD.js → chunk-N6ELT7KB.js} +0 -47
  19. package/dist/{chunk-UNVRNJCB.js → chunk-PO5ISUFA.js} +1 -1
  20. package/dist/{chunk-T2QO2S65.js → chunk-PY3CXDO2.js} +3 -3
  21. package/dist/{chunk-EE5DKOHX.js → chunk-SIUIIIQW.js} +1 -1
  22. package/dist/{chunk-HTG5VHU7.js → chunk-TXRYSMOD.js} +2 -6
  23. package/dist/{chunk-IY347EQA.js → chunk-UDEPO3UF.js} +1 -1
  24. package/dist/{chunk-BG5RNXTH.js → chunk-UJUWAQE5.js} +1 -1
  25. package/dist/{chunk-PDXFQS7M.js → chunk-VWDXRNOK.js} +4 -6
  26. package/dist/{chunk-QR7MITE6.js → chunk-WBUUCU7R.js} +52 -20
  27. package/dist/{chunk-54R5TEXH.js → chunk-WJNR3RAG.js} +40 -20
  28. package/dist/{chunk-USNR424B.js → chunk-XT2AI6WJ.js} +4 -11
  29. package/dist/{chunk-JWGLJXQU.js → chunk-XVD5SLDL.js} +1 -1
  30. package/dist/chunk-YD7V2HGZ.js +13 -0
  31. package/dist/{chunk-VSM44AYE.js → chunk-YGD4CCQC.js} +36 -15
  32. package/dist/components/admin/index.d.ts +7 -15
  33. package/dist/components/admin/index.js +28 -26
  34. package/dist/components/data-display/badge.js +3 -3
  35. package/dist/components/data-display/card.d.ts +2 -2
  36. package/dist/components/data-display/carousel.js +3 -3
  37. package/dist/components/data-display/index.js +8 -7
  38. package/dist/components/data-entry/calendar.d.ts +1 -1
  39. package/dist/components/data-entry/calendar.js +1 -1
  40. package/dist/components/data-entry/cascader.d.ts +1 -1
  41. package/dist/components/data-entry/cascader.js +3 -6
  42. package/dist/components/data-entry/checkbox.d.ts +2 -2
  43. package/dist/components/data-entry/color-picker.d.ts +1 -1
  44. package/dist/components/data-entry/color-picker.js +3 -3
  45. package/dist/components/data-entry/command.d.ts +10 -10
  46. package/dist/components/data-entry/date-picker.d.ts +1 -1
  47. package/dist/components/data-entry/date-picker.js +4 -4
  48. package/dist/components/data-entry/date-range-picker.d.ts +1 -1
  49. package/dist/components/data-entry/date-range-picker.js +4 -4
  50. package/dist/components/data-entry/index.d.ts +3 -3
  51. package/dist/components/data-entry/index.js +18 -17
  52. package/dist/components/data-entry/radio.d.ts +1 -1
  53. package/dist/components/data-entry/select.d.ts +1 -1
  54. package/dist/components/data-entry/select.js +4 -4
  55. package/dist/components/data-entry/slider.d.ts +1 -1
  56. package/dist/components/data-entry/switch.d.ts +1 -1
  57. package/dist/components/data-entry/time-input.js +2 -2
  58. package/dist/components/data-entry/time-picker.d.ts +1 -1
  59. package/dist/components/data-entry/time-picker.js +3 -3
  60. package/dist/components/data-entry/transfer.d.ts +2 -2
  61. package/dist/components/data-entry/transfer.js +5 -4
  62. package/dist/components/data-entry/tree-select.d.ts +1 -1
  63. package/dist/components/data-entry/tree-select.js +3 -3
  64. package/dist/components/data-entry/upload.d.ts +2 -2
  65. package/dist/components/data-entry/upload.js +5 -5
  66. package/dist/components/data-grid/index.d.ts +71 -0
  67. package/dist/components/data-grid/index.js +372 -0
  68. package/dist/components/feedback/alert.js +4 -4
  69. package/dist/components/feedback/dialog.js +3 -3
  70. package/dist/components/feedback/index.d.ts +3 -3
  71. package/dist/components/feedback/index.js +6 -6
  72. package/dist/components/layout/index.d.ts +3 -3
  73. package/dist/components/layout/index.js +5 -5
  74. package/dist/components/navigation/index.d.ts +2 -2
  75. package/dist/components/navigation/index.js +9 -9
  76. package/dist/components/navigation/pagination.d.ts +1 -1
  77. package/dist/components/navigation/pagination.js +5 -5
  78. package/dist/components/navigation/steps.d.ts +2 -2
  79. package/dist/components/navigation/steps.js +3 -3
  80. package/dist/components/query/index.d.ts +1 -2
  81. package/dist/components/query/index.js +4 -4
  82. package/dist/components/ui/index.d.ts +3 -3
  83. package/dist/components/ui/index.js +25 -25
  84. package/dist/{data-entry.prop-BR4vNA1j.d.ts → data-entry.prop-6J0o45se.d.ts} +3 -25
  85. package/dist/{filter-bar-BxjSJJnQ.d.ts → filter-bar-B07JSxME.d.ts} +1 -1
  86. package/dist/{flex-D_EXRFSW.d.ts → flex-DXtIALBh.d.ts} +1 -1
  87. package/dist/i18n/index.d.ts +10 -0
  88. package/dist/i18n/index.js +2 -2
  89. package/dist/index.d.ts +7 -7
  90. package/dist/index.js +37 -35
  91. package/dist/{layout.prop-JE2TcRyL.d.ts → layout.prop-B1yQPUNZ.d.ts} +2 -17
  92. package/dist/lib/datetime/index.js +1 -1
  93. package/dist/{navigation.prop-DMcXkR-J.d.ts → navigation.prop-Dumy196X.d.ts} +1 -5
  94. package/dist/props/components/index.d.ts +4 -4
  95. package/dist/props/index.d.ts +4 -4
  96. package/dist/props/index.js +2 -2
  97. package/dist/props/registry.d.ts +0 -47
  98. package/dist/props/registry.js +1 -1
  99. package/dist/{query.prop-BDdz9L1G.d.ts → query.prop-Dog-EAfG.d.ts} +2 -6
  100. package/dist/{search-input-C_x-JFD3.d.ts → search-input-BR4nAWiT.d.ts} +1 -1
  101. package/dist/styles/control.css +3 -8
  102. package/dist/styles/layout.css +7 -3
  103. package/dist/styles/navigation-layout.css +3 -3
  104. package/dist/styles/shell-layout.css +4 -4
  105. package/package.json +15 -3
  106. package/dist/chunk-5NCFLCM7.js +0 -255
  107. /package/dist/{chunk-7CFO5FFE.js → chunk-GJXOBDER.js} +0 -0
@@ -1,15 +1,6 @@
1
- import { formatDate, getSyncedLocale, translateCurrent } from './chunk-6CSBMMZS.js';
1
+ import { getSyncedLocale, translateCurrent } from './chunk-3ELRYXJK.js';
2
2
 
3
3
  // src/lib/format.ts
4
- function formatDateTime(value, options) {
5
- return formatDate(value, { ...options, kind: "datetime" });
6
- }
7
- function formatDateLong(value, options) {
8
- return formatDate(value, { ...options, kind: "long" });
9
- }
10
- function formatRelative(value, options) {
11
- return formatDate(value, { ...options, kind: "relative" });
12
- }
13
4
  function formatBytes(n, locale = getSyncedLocale()) {
14
5
  if (n == null) return "\u2014";
15
6
  const num = (digits, scaled) => new Intl.NumberFormat(locale, {
@@ -43,4 +34,4 @@ function humanError(err) {
43
34
  return translateCurrent("feedback.genericError");
44
35
  }
45
36
 
46
- export { formatBytes, formatCurrency, formatDateLong, formatDateTime, formatRelative, humanError, shortId };
37
+ export { formatBytes, formatCurrency, humanError, shortId };
@@ -1,5 +1,5 @@
1
1
  import { controlIconClass } from './chunk-IBK5D2Q6.js';
2
- import { useTranslation } from './chunk-HTG5VHU7.js';
2
+ import { useTranslation } from './chunk-TXRYSMOD.js';
3
3
  import { cn } from './chunk-U7N2A7A3.js';
4
4
  import { Check, Loader2, X, Circle } from 'lucide-react';
5
5
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -11,11 +11,12 @@ function Calendar({
11
11
  showOutsideDays = true,
12
12
  ...props
13
13
  }) {
14
+ const rangeDefaults = props.mode === "range" ? { resetOnSelect: props.resetOnSelect ?? true } : null;
14
15
  return /* @__PURE__ */ jsx(
15
16
  DayPicker,
16
17
  {
17
18
  showOutsideDays,
18
- className: cn("p-3", className),
19
+ className: cn("w-fit p-3", className),
19
20
  classNames: {
20
21
  months: cn("flex flex-col gap-4 sm:flex-row", classNames?.months),
21
22
  month: cn("relative flex flex-col gap-4", classNames?.month),
@@ -80,7 +81,8 @@ function Calendar({
80
81
  return /* @__PURE__ */ jsx(Icon, { className: cn("size-4", chevronClassName), "aria-hidden": "true" });
81
82
  }
82
83
  },
83
- ...props
84
+ ...props,
85
+ ...rangeDefaults
84
86
  }
85
87
  );
86
88
  }
@@ -1,9 +1,9 @@
1
- import { Tooltip, TooltipTrigger, TooltipContent } from './chunk-32WO3YLB.js';
2
1
  import { DropdownMenu, DropdownMenuTrigger } from './chunk-LMKUKCTN.js';
2
+ import { Tooltip, TooltipTrigger, TooltipContent } from './chunk-32WO3YLB.js';
3
3
  import { Collapsible, CollapsibleTrigger, CollapsibleContent } from './chunk-DV52WNXO.js';
4
4
  import { densityClass, pageContainerVariantClass } from './chunk-INIIF7F7.js';
5
5
  import { Popover, PopoverTrigger, PopoverContent } from './chunk-DY5C44UP.js';
6
- import { useTranslation } from './chunk-HTG5VHU7.js';
6
+ import { useTranslation } from './chunk-TXRYSMOD.js';
7
7
  import { cn } from './chunk-U7N2A7A3.js';
8
8
  import { ChevronRight, ChevronDown, PanelLeftOpen, PanelLeftClose, Search, Bell, SlidersHorizontal } from 'lucide-react';
9
9
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -1,88 +1,14 @@
1
+ import { SearchInput } from './chunk-BCBK4FLV.js';
1
2
  import { reactNodeText } from './chunk-SMLKNECP.js';
2
- import { Input } from './chunk-VOHTRR5X.js';
3
3
  import { Checkbox } from './chunk-BE6GJGKJ.js';
4
4
  import { Button } from './chunk-M4PZNAMV.js';
5
5
  import { ScrollArea } from './chunk-3KPEZ5CF.js';
6
- import { Label } from './chunk-7PWBC4BY.js';
7
- import { useTranslation } from './chunk-HTG5VHU7.js';
8
- import { useDebouncedValue } from './chunk-LFW37FGG.js';
6
+ import { useTranslation } from './chunk-TXRYSMOD.js';
9
7
  import { cn } from './chunk-U7N2A7A3.js';
10
8
  import * as React from 'react';
11
- import { Search, X, ChevronRight, ChevronLeft } from 'lucide-react';
9
+ import { ChevronRight, ChevronLeft } from 'lucide-react';
12
10
  import { jsxs, jsx } from 'react/jsx-runtime';
13
11
 
14
- function SearchInput({
15
- value: controlledValue,
16
- defaultValue = "",
17
- placeholder,
18
- debounce = 250,
19
- onValueChange,
20
- onSearch,
21
- label,
22
- ariaLabel,
23
- className,
24
- inputClassName,
25
- id,
26
- disabled = false
27
- }) {
28
- const { t } = useTranslation();
29
- const isControlled = controlledValue !== void 0;
30
- const [internal, setInternal] = React.useState(defaultValue);
31
- const value = isControlled ? controlledValue : internal;
32
- const debounced = useDebouncedValue(value, debounce);
33
- const reactId = React.useId();
34
- const inputId = id ?? `search-${reactId}`;
35
- const resolvedPlaceholder = placeholder ?? t("dataEntry.searchInput.placeholder");
36
- const resolvedAriaLabel = ariaLabel ?? t("common.search");
37
- const onSearchRef = React.useRef(onSearch);
38
- React.useEffect(() => {
39
- onSearchRef.current = onSearch;
40
- });
41
- React.useEffect(() => {
42
- onSearchRef.current(debounced);
43
- }, [debounced]);
44
- const setValue = (v) => {
45
- if (!isControlled) setInternal(v);
46
- onValueChange?.(v);
47
- };
48
- return /* @__PURE__ */ jsxs("div", { className: cn("ui-search-input", className), children: [
49
- label !== void 0 ? /* @__PURE__ */ jsx(Label, { htmlFor: inputId, className: "ui-search-input-label", children: label }) : /* @__PURE__ */ jsx(Label, { htmlFor: inputId, className: "sr-only", children: resolvedAriaLabel }),
50
- /* @__PURE__ */ jsxs("div", { className: "ui-search-input-field", children: [
51
- /* @__PURE__ */ jsx(Search, { className: "ui-search-input-icon", "aria-hidden": "true" }),
52
- /* @__PURE__ */ jsx(
53
- Input,
54
- {
55
- id: inputId,
56
- type: "text",
57
- role: "searchbox",
58
- value,
59
- onChange: (e) => {
60
- setValue(e.target.value);
61
- },
62
- placeholder: resolvedPlaceholder,
63
- "aria-label": resolvedAriaLabel,
64
- className: cn(
65
- "ui-search-input-control !pr-[var(--search-input-end-padding)] !pl-[var(--search-input-start-padding)]",
66
- inputClassName
67
- ),
68
- disabled
69
- }
70
- ),
71
- value && !disabled && /* @__PURE__ */ jsx(
72
- "button",
73
- {
74
- type: "button",
75
- onClick: () => {
76
- setValue("");
77
- },
78
- "aria-label": t("common.clearSearch"),
79
- className: "ui-search-input-clear",
80
- children: /* @__PURE__ */ jsx(X, {})
81
- }
82
- )
83
- ] })
84
- ] });
85
- }
86
12
  function TransferPanel({
87
13
  title,
88
14
  items,
@@ -264,4 +190,4 @@ function Transfer({
264
190
  ] });
265
191
  }
266
192
 
267
- export { SearchInput, Transfer };
193
+ export { Transfer };
@@ -1,5 +1,5 @@
1
1
  import { Input } from './chunk-VOHTRR5X.js';
2
- import { useTranslation } from './chunk-HTG5VHU7.js';
2
+ import { useTranslation } from './chunk-TXRYSMOD.js';
3
3
  import { cn } from './chunk-U7N2A7A3.js';
4
4
  import * as React2 from 'react';
5
5
  import { EyeOff, Eye, Minus, Star, X } from 'lucide-react';
@@ -1,4 +1,4 @@
1
- import { normalizeHhmm, isValidHhmm } from './chunk-6CSBMMZS.js';
1
+ import { normalizeHhmm, isValidHhmm } from './chunk-3ELRYXJK.js';
2
2
  import { cn } from './chunk-U7N2A7A3.js';
3
3
  import * as React from 'react';
4
4
  import { jsx } from 'react/jsx-runtime';
@@ -337,8 +337,6 @@ var COMPONENT_PROP_REGISTRY = {
337
337
  "PageContainerVariantProp"
338
338
  ]
339
339
  },
340
- StackProp: { group: "layout", file: "components/layout.prop.ts", vocabulary: ["GapProp"] },
341
- InlineProp: { group: "layout", file: "components/layout.prop.ts", vocabulary: ["GapProp"] },
342
340
  FlexDirectionProp: { group: "layout", file: "components/layout.prop.ts", vocabulary: [] },
343
341
  FlexAlignProp: { group: "layout", file: "components/layout.prop.ts", vocabulary: [] },
344
342
  FlexJustifyProp: { group: "layout", file: "components/layout.prop.ts", vocabulary: [] },
@@ -399,12 +397,6 @@ var COMPONENT_PROP_REGISTRY = {
399
397
  file: "components/layout.prop.ts",
400
398
  vocabulary: ["ChildrenProp", "OnOpenChangeProp", "OnValueChangeProp"]
401
399
  },
402
- PageHeaderProp: {
403
- group: "layout",
404
- file: "components/layout.prop.ts",
405
- vocabulary: ["TitleProp", "SubtitleProp", "ExtraProp", "BreadcrumbProp"],
406
- deprecated: true
407
- },
408
400
  ButtonProp: {
409
401
  group: "general",
410
402
  file: "components/general.prop.ts",
@@ -491,25 +483,6 @@ var COMPONENT_PROP_REGISTRY = {
491
483
  file: "components/data-entry.prop.ts",
492
484
  vocabulary: ["ValueProp", "OnValueChangeProp", "DisabledProp", "IdProp"]
493
485
  },
494
- AutocompleteProp: {
495
- group: "data-entry",
496
- file: "components/data-entry.prop.ts",
497
- vocabulary: [
498
- "PlaceholderProp",
499
- "ValueProp",
500
- "OnValueChangeProp",
501
- "DisabledProp",
502
- "IdProp",
503
- "EmptyMessageProp",
504
- "ClassNameProp"
505
- ],
506
- note: "Deprecated \u2014 a thin wrapper over SearchSelect (static options)."
507
- },
508
- AutocompleteOptionProp: {
509
- group: "data-entry",
510
- file: "components/data-entry.prop.ts",
511
- vocabulary: ["ValueProp", "LabelProp"]
512
- },
513
486
  SearchSelectProp: {
514
487
  group: "data-entry",
515
488
  file: "components/data-entry.prop.ts",
@@ -693,11 +666,6 @@ var COMPONENT_PROP_REGISTRY = {
693
666
  "ClassNameProp"
694
667
  ]
695
668
  },
696
- MutationFeedbackProp: {
697
- group: "query",
698
- file: "components/query.prop.ts",
699
- vocabulary: ["OnValueChangeProp"]
700
- },
701
669
  ButtonRefetchProp: {
702
670
  group: "query",
703
671
  file: "components/query.prop.ts",
@@ -710,11 +678,6 @@ var COMPONENT_PROP_REGISTRY = {
710
678
  "LabelProp"
711
679
  ]
712
680
  },
713
- QueryRefetchButtonProp: {
714
- group: "query",
715
- file: "components/query.prop.ts",
716
- vocabulary: ["LabelProp", "ClassNameProp"]
717
- },
718
681
  InfiniteQueryStateProp: {
719
682
  group: "query",
720
683
  file: "components/query.prop.ts",
@@ -759,16 +722,6 @@ var COMPONENT_PROP_REGISTRY = {
759
722
  vocabulary: ["ClassNameProp", "ChildrenProp"]
760
723
  },
761
724
  SkeletonRowsProp: { group: "feedback", file: "components/feedback.prop.ts", vocabulary: [] },
762
- FilterBarProp: {
763
- group: "navigation",
764
- file: "components/navigation.prop.ts",
765
- vocabulary: ["OnClearFiltersProp", "HasActiveFiltersProp", "ChildrenProp"]
766
- },
767
- FilterGroupProp: {
768
- group: "navigation",
769
- file: "components/navigation.prop.ts",
770
- vocabulary: ["LabelProp", "ChildrenProp"]
771
- },
772
725
  ToolbarProp: {
773
726
  group: "navigation",
774
727
  file: "components/navigation.prop.ts",
@@ -4,7 +4,7 @@ import { Checkbox } from './chunk-BE6GJGKJ.js';
4
4
  import { Button } from './chunk-M4PZNAMV.js';
5
5
  import { Popover, PopoverTrigger, PopoverContent } from './chunk-DY5C44UP.js';
6
6
  import { ScrollArea } from './chunk-3KPEZ5CF.js';
7
- import { useTranslation } from './chunk-HTG5VHU7.js';
7
+ import { useTranslation } from './chunk-TXRYSMOD.js';
8
8
  import { cn } from './chunk-U7N2A7A3.js';
9
9
  import * as React from 'react';
10
10
  import { X, ChevronsUpDown, ChevronDown, ChevronRight } from 'lucide-react';
@@ -1,7 +1,7 @@
1
- import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from './chunk-NXVCI6YB.js';
1
+ import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from './chunk-3LPY7YA4.js';
2
2
  import { Button } from './chunk-M4PZNAMV.js';
3
- import { useOptionalAppContext, useTranslation, APP_TIME_FORMAT_OPTIONS, getTimeFormatLabel, resolveTimezonePickerOptions, getTimezoneLabel, APP_LOCALES } from './chunk-HTG5VHU7.js';
4
- import { APP_DATE_FORMAT_OPTIONS, getDateFormatLabel } from './chunk-6CSBMMZS.js';
3
+ import { useOptionalAppContext, useTranslation, APP_TIME_FORMAT_OPTIONS, getTimeFormatLabel, resolveTimezonePickerOptions, getTimezoneLabel, APP_LOCALES } from './chunk-TXRYSMOD.js';
4
+ import { APP_DATE_FORMAT_OPTIONS, getDateFormatLabel } from './chunk-3ELRYXJK.js';
5
5
  import { cn } from './chunk-U7N2A7A3.js';
6
6
  import * as React from 'react';
7
7
  import { useId } from 'react';
@@ -1,6 +1,6 @@
1
1
  import { Input } from './chunk-VOHTRR5X.js';
2
2
  import { controlIconClass } from './chunk-IBK5D2Q6.js';
3
- import { useTranslation } from './chunk-HTG5VHU7.js';
3
+ import { useTranslation } from './chunk-TXRYSMOD.js';
4
4
  import { cn } from './chunk-U7N2A7A3.js';
5
5
  import * as React from 'react';
6
6
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -1,4 +1,4 @@
1
- import { APP_TIME_FORMATS, isAppDateFormat, isAppTimeFormat, isAppLocale, translate, getDateFnsLocale, syncI18nLocale, syncDatetimeContext, disableLiveRelativeFormatting, enableLiveRelativeFormatting, getDayPickerLocale, APP_REQUEST_HEADER_DATE_FORMAT, APP_REQUEST_HEADER_TIME_FORMAT, resolveDefaultDateFormat } from './chunk-6CSBMMZS.js';
1
+ import { APP_TIME_FORMATS, isAppDateFormat, isAppTimeFormat, isAppLocale, translate, getDateFnsLocale, syncI18nLocale, syncDatetimeContext, disableLiveRelativeFormatting, enableLiveRelativeFormatting, getDayPickerLocale, APP_REQUEST_HEADER_DATE_FORMAT, APP_REQUEST_HEADER_TIME_FORMAT, resolveDefaultDateFormat } from './chunk-3ELRYXJK.js';
2
2
  import * as React from 'react';
3
3
  import { useMemo } from 'react';
4
4
  import { jsx } from 'react/jsx-runtime';
@@ -111,7 +111,6 @@ var APP_TIMEZONE_PRESET = [
111
111
  "Australia/Perth",
112
112
  "Pacific/Auckland"
113
113
  ];
114
- var APP_TIMEZONE_OPTIONS = APP_TIMEZONE_PRESET;
115
114
  var TIMEZONE_ALIASES = {
116
115
  "Asia/Ho_Chi_Minh": "Asia/Saigon"
117
116
  };
@@ -155,9 +154,6 @@ function isValidIanaTimezone(value) {
155
154
  const canonical = TIMEZONE_ALIASES[value];
156
155
  return canonical ? set.has(canonical) : false;
157
156
  }
158
- function isKnownAppTimezone(value) {
159
- return APP_TIMEZONE_PRESET.includes(value);
160
- }
161
157
  function resolveTimezonePickerOptions(configured, current) {
162
158
  const base = configured && configured.length > 0 ? [...configured] : [...getAllIanaTimezones()];
163
159
  if (current && !base.includes(current)) {
@@ -465,4 +461,4 @@ function usePickerLocales(dayPickerOverride) {
465
461
  );
466
462
  }
467
463
 
468
- export { APP_LOCALES, APP_REQUEST_HEADER_LOCALE, APP_REQUEST_HEADER_TIMEZONE, APP_TIMEZONE_OPTIONS, APP_TIMEZONE_PRESET, APP_TIME_FORMAT_OPTIONS, AppProvider, DEFAULT_STORAGE_KEY, TIMEZONE_ALIASES, formatTimezoneDisplayLabel, getAllIanaTimezones, getAppRequestHeaders, getBrowserTimezone, getTimeFormatLabel, getTimezoneCityName, getTimezoneLabel, getTimezoneOffsetLabel, isKnownAppTimezone, isValidIanaTimezone, readStoredPreferences, resetAppRequestHeaders, resetIanaTimezoneCacheForTests, resolveDefaultTimeFormat, resolveDefaultTimezone, resolveTimezoneForIntl, resolveTimezonePickerOptions, syncAppRequestHeaders, useAppContext, useAppDateFormat, useAppLocale, useAppTimeFormat, useAppTimezone, useOptionalAppContext, usePickerLocales, useTranslation, writeStoredPreferences };
464
+ export { APP_LOCALES, APP_REQUEST_HEADER_LOCALE, APP_REQUEST_HEADER_TIMEZONE, APP_TIMEZONE_PRESET, APP_TIME_FORMAT_OPTIONS, AppProvider, DEFAULT_STORAGE_KEY, TIMEZONE_ALIASES, formatTimezoneDisplayLabel, getAllIanaTimezones, getAppRequestHeaders, getBrowserTimezone, getTimeFormatLabel, getTimezoneCityName, getTimezoneLabel, getTimezoneOffsetLabel, isValidIanaTimezone, readStoredPreferences, resetAppRequestHeaders, resetIanaTimezoneCacheForTests, resolveDefaultTimeFormat, resolveDefaultTimezone, resolveTimezoneForIntl, resolveTimezonePickerOptions, syncAppRequestHeaders, useAppContext, useAppDateFormat, useAppLocale, useAppTimeFormat, useAppTimezone, useOptionalAppContext, usePickerLocales, useTranslation, writeStoredPreferences };
@@ -1,5 +1,5 @@
1
1
  import { toneNeutralClass, toneMutedClass, toneInfoClass, toneDestructiveClass, toneWarningClass, toneSuccessClass } from './chunk-IBK5D2Q6.js';
2
- import { useTranslation } from './chunk-HTG5VHU7.js';
2
+ import { useTranslation } from './chunk-TXRYSMOD.js';
3
3
  import { cn } from './chunk-U7N2A7A3.js';
4
4
  import { cva } from 'class-variance-authority';
5
5
  import { XCircle, Pause, CheckCircle2, Circle, Trash2, AlertCircle, Clock, Play } from 'lucide-react';
@@ -1,7 +1,7 @@
1
1
  import { Input } from './chunk-VOHTRR5X.js';
2
2
  import { buttonVariants, Button } from './chunk-M4PZNAMV.js';
3
3
  import { Label } from './chunk-7PWBC4BY.js';
4
- import { useTranslation } from './chunk-HTG5VHU7.js';
4
+ import { useTranslation } from './chunk-TXRYSMOD.js';
5
5
  import { cn } from './chunk-U7N2A7A3.js';
6
6
  import * as React from 'react';
7
7
  import * as DialogPrimitive from '@radix-ui/react-dialog';
@@ -1,6 +1,6 @@
1
- import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from './chunk-NXVCI6YB.js';
1
+ import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from './chunk-3LPY7YA4.js';
2
2
  import { Button } from './chunk-M4PZNAMV.js';
3
- import { useTranslation } from './chunk-HTG5VHU7.js';
3
+ import { useTranslation } from './chunk-TXRYSMOD.js';
4
4
  import { cn } from './chunk-U7N2A7A3.js';
5
5
  import * as React from 'react';
6
6
  import { MoreHorizontal, ChevronLeft, ChevronRight } from 'lucide-react';
@@ -48,7 +48,7 @@ var PaginationLink = React.forwardRef(
48
48
  disabled: disabled || void 0,
49
49
  "data-state": disabled ? "disabled" : void 0,
50
50
  className: cn(
51
- "ui-pagination-link ui-button--compact-icon ui-pagination-page",
51
+ "ui-pagination-link ui-pagination-page",
52
52
  isActive ? "ui-pagination-link-active" : void 0,
53
53
  disabled ? "ui-pagination-link-disabled" : void 0,
54
54
  className
@@ -63,7 +63,7 @@ PaginationLink.displayName = "PaginationLink";
63
63
  var PaginationEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsx(
64
64
  "span",
65
65
  {
66
- className: cn("ui-pagination-ellipsis ui-button--compact-icon", className),
66
+ className: cn("ui-pagination-ellipsis", className),
67
67
  "aria-hidden": "true",
68
68
  role: "presentation",
69
69
  ...props,
@@ -196,7 +196,6 @@ function Pagination({
196
196
  {
197
197
  "aria-label": t("navigation.pagination.prev"),
198
198
  onClick: () => go(safeCurrent - 1),
199
- className: "ui-button--compact-icon",
200
199
  disabled: Boolean(disabled) || safeCurrent <= 1,
201
200
  children: /* @__PURE__ */ jsx(ChevronLeft, { "aria-hidden": "true" })
202
201
  }
@@ -220,7 +219,6 @@ function Pagination({
220
219
  {
221
220
  "aria-label": t("navigation.pagination.next"),
222
221
  onClick: () => go(safeCurrent + 1),
223
- className: "ui-button--compact-icon",
224
222
  disabled: Boolean(disabled) || safeCurrent >= totalPages,
225
223
  children: /* @__PURE__ */ jsx(ChevronRight, { "aria-hidden": "true" })
226
224
  }
@@ -1,9 +1,9 @@
1
- import { Calendar } from './chunk-DNGJHWJZ.js';
1
+ import { Calendar } from './chunk-FTOG7D4T.js';
2
2
  import { Input } from './chunk-VOHTRR5X.js';
3
3
  import { Button } from './chunk-M4PZNAMV.js';
4
4
  import { Popover, PopoverTrigger, PopoverContent } from './chunk-DY5C44UP.js';
5
- import { useTranslation, usePickerLocales } from './chunk-HTG5VHU7.js';
6
- import { toIsoDate, parseDateInput } from './chunk-6CSBMMZS.js';
5
+ import { useTranslation, usePickerLocales } from './chunk-TXRYSMOD.js';
6
+ import { toIsoDate, parseDateInput } from './chunk-3ELRYXJK.js';
7
7
  import { cn } from './chunk-U7N2A7A3.js';
8
8
  import * as React from 'react';
9
9
  import { CalendarIcon } from 'lucide-react';
@@ -60,6 +60,17 @@ function DateRangePicker({
60
60
  autoComplete: "off",
61
61
  "aria-label": t("dataEntry.dateRangePicker.from") ?? "From",
62
62
  className: "tabular-nums",
63
+ onClick: () => {
64
+ if (!disabled) setOpen(true);
65
+ },
66
+ onKeyDown: (event) => {
67
+ if (event.key === "ArrowDown") {
68
+ event.preventDefault();
69
+ setOpen(true);
70
+ } else if (event.key === "Escape" && open) {
71
+ setOpen(false);
72
+ }
73
+ },
63
74
  onChange: (event) => {
64
75
  setFromText(event.target.value);
65
76
  commitEdge("from", event.target.value);
@@ -82,6 +93,17 @@ function DateRangePicker({
82
93
  autoComplete: "off",
83
94
  "aria-label": t("dataEntry.dateRangePicker.to") ?? "To",
84
95
  className: "tabular-nums",
96
+ onClick: () => {
97
+ if (!disabled) setOpen(true);
98
+ },
99
+ onKeyDown: (event) => {
100
+ if (event.key === "ArrowDown") {
101
+ event.preventDefault();
102
+ setOpen(true);
103
+ } else if (event.key === "Escape" && open) {
104
+ setOpen(false);
105
+ }
106
+ },
85
107
  onChange: (event) => {
86
108
  setToText(event.target.value);
87
109
  commitEdge("to", event.target.value);
@@ -106,25 +128,35 @@ function DateRangePicker({
106
128
  children: /* @__PURE__ */ jsx(CalendarIcon, { className: "size-4 shrink-0", "aria-hidden": "true" })
107
129
  }
108
130
  ) }),
109
- /* @__PURE__ */ jsx(PopoverContent, { className: "w-auto p-0", align: "end", children: /* @__PURE__ */ jsx(
110
- Calendar,
131
+ /* @__PURE__ */ jsx(
132
+ PopoverContent,
111
133
  {
112
- mode: "range",
113
- selected: value,
114
- onSelect: (range) => {
115
- emit(range);
116
- setFromText(toIsoDate(range?.from));
117
- setToText(toIsoDate(range?.to));
118
- },
119
- locale: dayPickerLocale,
120
- disabled: [
121
- ...fromDate ? [{ before: fromDate }] : [],
122
- ...toDate ? [{ after: toDate }] : []
123
- ],
124
- startMonth: fromDate,
125
- endMonth: toDate
134
+ className: "w-auto p-0",
135
+ align: "end",
136
+ onOpenAutoFocus: (event) => event.preventDefault(),
137
+ children: /* @__PURE__ */ jsx(
138
+ Calendar,
139
+ {
140
+ mode: "range",
141
+ selected: value,
142
+ defaultMonth: value?.from,
143
+ numberOfMonths: 2,
144
+ onSelect: (range) => {
145
+ emit(range);
146
+ setFromText(toIsoDate(range?.from));
147
+ setToText(toIsoDate(range?.to));
148
+ },
149
+ locale: dayPickerLocale,
150
+ disabled: [
151
+ ...fromDate ? [{ before: fromDate }] : [],
152
+ ...toDate ? [{ after: toDate }] : []
153
+ ],
154
+ startMonth: fromDate,
155
+ endMonth: toDate
156
+ }
157
+ )
126
158
  }
127
- ) })
159
+ )
128
160
  ] })
129
161
  ] });
130
162
  }
@@ -1,9 +1,9 @@
1
- import { Calendar } from './chunk-DNGJHWJZ.js';
1
+ import { Calendar } from './chunk-FTOG7D4T.js';
2
2
  import { Input } from './chunk-VOHTRR5X.js';
3
3
  import { Button } from './chunk-M4PZNAMV.js';
4
4
  import { Popover, PopoverTrigger, PopoverContent } from './chunk-DY5C44UP.js';
5
- import { useTranslation, usePickerLocales } from './chunk-HTG5VHU7.js';
6
- import { toIsoDate, parseDateInput } from './chunk-6CSBMMZS.js';
5
+ import { useTranslation, usePickerLocales } from './chunk-TXRYSMOD.js';
6
+ import { toIsoDate, parseDateInput } from './chunk-3ELRYXJK.js';
7
7
  import { cn } from './chunk-U7N2A7A3.js';
8
8
  import * as React from 'react';
9
9
  import { CalendarIcon } from 'lucide-react';
@@ -65,6 +65,17 @@ function DatePicker({
65
65
  "aria-expanded": open,
66
66
  "aria-haspopup": "dialog",
67
67
  className: "pe-10",
68
+ onClick: () => {
69
+ if (!disabled) setOpen(true);
70
+ },
71
+ onKeyDown: (event) => {
72
+ if (event.key === "ArrowDown") {
73
+ event.preventDefault();
74
+ setOpen(true);
75
+ } else if (event.key === "Escape" && open) {
76
+ setOpen(false);
77
+ }
78
+ },
68
79
  onChange: (event) => {
69
80
  setText(event.target.value);
70
81
  commit(event.target.value);
@@ -89,25 +100,34 @@ function DatePicker({
89
100
  children: /* @__PURE__ */ jsx(CalendarIcon, { className: "size-4 shrink-0", "aria-hidden": "true" })
90
101
  }
91
102
  ) }),
92
- /* @__PURE__ */ jsx(PopoverContent, { className: "w-auto p-0", align: "end", children: /* @__PURE__ */ jsx(
93
- Calendar,
103
+ /* @__PURE__ */ jsx(
104
+ PopoverContent,
94
105
  {
95
- mode: "single",
96
- selected: value,
97
- onSelect: (date) => {
98
- emit(date);
99
- setText(toIsoDate(date));
100
- setOpen(false);
101
- },
102
- locale: dayPickerLocale,
103
- disabled: [
104
- ...fromDate ? [{ before: fromDate }] : [],
105
- ...toDate ? [{ after: toDate }] : []
106
- ],
107
- startMonth: fromDate,
108
- endMonth: toDate
106
+ className: "w-auto p-0",
107
+ align: "end",
108
+ onOpenAutoFocus: (event) => event.preventDefault(),
109
+ children: /* @__PURE__ */ jsx(
110
+ Calendar,
111
+ {
112
+ mode: "single",
113
+ selected: value,
114
+ defaultMonth: value,
115
+ onSelect: (date) => {
116
+ emit(date);
117
+ setText(toIsoDate(date));
118
+ setOpen(false);
119
+ },
120
+ locale: dayPickerLocale,
121
+ disabled: [
122
+ ...fromDate ? [{ before: fromDate }] : [],
123
+ ...toDate ? [{ after: toDate }] : []
124
+ ],
125
+ startMonth: fromDate,
126
+ endMonth: toDate
127
+ }
128
+ )
109
129
  }
110
- ) })
130
+ )
111
131
  ] })
112
132
  ] });
113
133
  }
@@ -1,22 +1,15 @@
1
- import { Flex, densityClass } from './chunk-INIIF7F7.js';
1
+ import { EmptyState } from './chunk-YD7V2HGZ.js';
2
2
  import { Checkbox } from './chunk-BE6GJGKJ.js';
3
+ import { Flex, densityClass } from './chunk-INIIF7F7.js';
3
4
  import { Button } from './chunk-M4PZNAMV.js';
4
5
  import { Table, TableHeader, TableRow, TableHead, TableBody, TableCell } from './chunk-4MMIMZMK.js';
5
6
  import { tableCellPaddingClass, tableRowHeightClass, controlIconSmClass } from './chunk-IBK5D2Q6.js';
6
- import { useTranslation } from './chunk-HTG5VHU7.js';
7
+ import { useTranslation } from './chunk-TXRYSMOD.js';
7
8
  import { cn } from './chunk-U7N2A7A3.js';
8
9
  import { jsx, jsxs } from 'react/jsx-runtime';
9
10
  import * as React from 'react';
10
11
  import { Layers, Layers2, ArrowUp, ArrowDown, ChevronsUpDown, MoreHorizontal } from 'lucide-react';
11
12
 
12
- function EmptyState({ icon: Icon, title, description, action, className }) {
13
- return /* @__PURE__ */ jsxs("div", { "data-slot": "empty-state", role: "status", className: cn("ui-empty-state", className), children: [
14
- Icon && /* @__PURE__ */ jsx("div", { className: "ui-empty-state-icon", children: /* @__PURE__ */ jsx(Icon, { className: "text-muted-foreground size-6", "aria-hidden": "true" }) }),
15
- /* @__PURE__ */ jsx("h3", { className: "ui-empty-state-title", children: title }),
16
- description && /* @__PURE__ */ jsx("p", { className: "ui-empty-state-description", children: description }),
17
- action && /* @__PURE__ */ jsx("div", { children: action })
18
- ] });
19
- }
20
13
  function Descriptions({ columns = 2, className, children }) {
21
14
  const colsClass = columns === 1 ? "grid-cols-1" : columns === 3 ? "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3" : "grid-cols-1 sm:grid-cols-2";
22
15
  return /* @__PURE__ */ jsx("dl", { className: cn("grid gap-x-6 gap-y-3", colsClass, className), children });
@@ -390,4 +383,4 @@ DataTable.RowActions = function DataTableRowActions({ ariaLabel, children }) {
390
383
  };
391
384
  DataTable.RowActions.displayName = "DataTable.RowActions";
392
385
 
393
- export { DataTable, Descriptions, EmptyState };
386
+ export { DataTable, Descriptions };
@@ -1,4 +1,4 @@
1
- import { useTranslation } from './chunk-HTG5VHU7.js';
1
+ import { useTranslation } from './chunk-TXRYSMOD.js';
2
2
  import { cn } from './chunk-U7N2A7A3.js';
3
3
  import * as React from 'react';
4
4
  import useEmblaCarousel from 'embla-carousel-react';
@@ -0,0 +1,13 @@
1
+ import { cn } from './chunk-U7N2A7A3.js';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+
4
+ function EmptyState({ icon: Icon, title, description, action, className }) {
5
+ return /* @__PURE__ */ jsxs("div", { "data-slot": "empty-state", role: "status", className: cn("ui-empty-state", className), children: [
6
+ Icon && /* @__PURE__ */ jsx("div", { className: "ui-empty-state-icon", children: /* @__PURE__ */ jsx(Icon, { className: "text-muted-foreground size-6", "aria-hidden": "true" }) }),
7
+ /* @__PURE__ */ jsx("h3", { className: "ui-empty-state-title", children: title }),
8
+ description && /* @__PURE__ */ jsx("p", { className: "ui-empty-state-description", children: description }),
9
+ action && /* @__PURE__ */ jsx("div", { children: action })
10
+ ] });
11
+ }
12
+
13
+ export { EmptyState };