@godxjp/ui 12.1.0 → 13.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 (156) hide show
  1. package/dist/app/index.d.ts +2 -2
  2. package/dist/app/index.js +4 -4
  3. package/dist/{app.prop-Cy6dJnU8.d.ts → app.prop-CVY8V4ss.d.ts} +1 -1
  4. package/dist/{checkbox-DPFcnsMZ.d.ts → checkbox-CwfNgQ9d.d.ts} +1 -1
  5. package/dist/{chunk-COD66MFF.js → chunk-2BR7KFCP.js} +1 -1
  6. package/dist/chunk-2H65B4JA.js +1 -0
  7. package/dist/{chunk-HTEL5DQI.js → chunk-3R3QVJCB.js} +1 -1
  8. package/dist/{chunk-FK2JDABO.js → chunk-55S5N667.js} +4 -2
  9. package/dist/{chunk-6WSWK7TU.js → chunk-572FHZ3M.js} +2 -2
  10. package/dist/{chunk-YGD4CCQC.js → chunk-5KK3KJ6L.js} +3 -3
  11. package/dist/chunk-76S3TQFH.js +109 -0
  12. package/dist/{chunk-WBUUCU7R.js → chunk-AKFR72DQ.js} +4 -4
  13. package/dist/{chunk-IBK5D2Q6.js → chunk-B4K4BXEF.js} +3 -2
  14. package/dist/{chunk-VOHTRR5X.js → chunk-BNXPDUO4.js} +1 -1
  15. package/dist/chunk-C3PKEV6S.js +22 -0
  16. package/dist/{chunk-MMFIL33F.js → chunk-C6OEAQTO.js} +1 -1
  17. package/dist/{chunk-ZM4SMKEI.js → chunk-DEUHS5A2.js} +2 -19
  18. package/dist/chunk-ES4Q3KGL.js +1 -0
  19. package/dist/{chunk-XVD5SLDL.js → chunk-FJBVDJGL.js} +56 -3
  20. package/dist/{chunk-FK5QEFVY.js → chunk-GDHDJAVB.js} +1 -1
  21. package/dist/{chunk-TXRYSMOD.js → chunk-H2TX3OPW.js} +1 -1
  22. package/dist/{chunk-EOTOCNT7.js → chunk-HCCID4YY.js} +1 -1
  23. package/dist/{chunk-4MMIMZMK.js → chunk-IJ5ALJGA.js} +1 -1
  24. package/dist/{chunk-PO5ISUFA.js → chunk-IWAIIBSW.js} +4 -2
  25. package/dist/{chunk-ASMTSQWA.js → chunk-IYLJQVKV.js} +10 -7
  26. package/dist/{chunk-UDEPO3UF.js → chunk-IZGLEPGW.js} +2 -2
  27. package/dist/{chunk-3ELRYXJK.js → chunk-JEIUEOTJ.js} +9 -3
  28. package/dist/{chunk-FTOG7D4T.js → chunk-KQ36FDEE.js} +1 -1
  29. package/dist/{chunk-WJNR3RAG.js → chunk-MTJHEQ46.js} +4 -4
  30. package/dist/{chunk-JSQOCVM6.js → chunk-NVNDO3FI.js} +2 -2
  31. package/dist/{chunk-FOANNF6Z.js → chunk-QD3YG56T.js} +2 -2
  32. package/dist/{chunk-2TYRT5XH.js → chunk-RX2F2U6D.js} +5 -5
  33. package/dist/{chunk-SIUIIIQW.js → chunk-SISAM4JZ.js} +3 -3
  34. package/dist/{chunk-MXEVP5S2.js → chunk-VNQ2NW22.js} +5 -5
  35. package/dist/chunk-VU4GFGDG.js +12 -0
  36. package/dist/{chunk-7HF56YHC.js → chunk-WIRQNCCP.js} +3 -3
  37. package/dist/{chunk-LCQFYL44.js → chunk-WNOX32KG.js} +59 -5
  38. package/dist/{chunk-N6ELT7KB.js → chunk-XTVUYEJD.js} +30 -2
  39. package/dist/chunk-XUEDRPWF.js +177 -0
  40. package/dist/{chunk-BCBK4FLV.js → chunk-XZXE5KVV.js} +2 -2
  41. package/dist/{chunk-2JCSS6B4.js → chunk-YVZPAN2W.js} +2 -2
  42. package/dist/{chunk-L2MEN2VK.js → chunk-ZPHIXXTK.js} +2 -2
  43. package/dist/components/admin/index.d.ts +14 -15
  44. package/dist/components/admin/index.js +26 -24
  45. package/dist/components/data-display/badge.d.ts +1 -1
  46. package/dist/components/data-display/badge.js +4 -4
  47. package/dist/components/data-display/carousel.d.ts +12 -1
  48. package/dist/components/data-display/carousel.js +3 -3
  49. package/dist/components/data-display/index.d.ts +6 -6
  50. package/dist/components/data-display/index.js +8 -8
  51. package/dist/components/data-display/table.js +2 -2
  52. package/dist/components/data-entry/calendar.d.ts +6 -4
  53. package/dist/components/data-entry/calendar.js +2 -2
  54. package/dist/components/data-entry/cascader.d.ts +6 -4
  55. package/dist/components/data-entry/cascader.js +5 -5
  56. package/dist/components/data-entry/checkbox.d.ts +7 -5
  57. package/dist/components/data-entry/color-picker.d.ts +6 -4
  58. package/dist/components/data-entry/color-picker.js +5 -5
  59. package/dist/components/data-entry/command.js +2 -2
  60. package/dist/components/data-entry/date-picker.d.ts +6 -4
  61. package/dist/components/data-entry/date-picker.js +6 -6
  62. package/dist/components/data-entry/date-range-picker.d.ts +6 -4
  63. package/dist/components/data-entry/date-range-picker.js +6 -6
  64. package/dist/components/data-entry/index.d.ts +38 -9
  65. package/dist/components/data-entry/index.js +24 -22
  66. package/dist/components/data-entry/input.js +1 -1
  67. package/dist/components/data-entry/radio.d.ts +6 -4
  68. package/dist/components/data-entry/select.d.ts +6 -4
  69. package/dist/components/data-entry/select.js +6 -6
  70. package/dist/components/data-entry/slider.d.ts +6 -4
  71. package/dist/components/data-entry/switch.d.ts +6 -4
  72. package/dist/components/data-entry/textarea.js +2 -2
  73. package/dist/components/data-entry/time-input.js +2 -2
  74. package/dist/components/data-entry/time-picker.d.ts +6 -4
  75. package/dist/components/data-entry/time-picker.js +4 -4
  76. package/dist/components/data-entry/transfer.d.ts +7 -5
  77. package/dist/components/data-entry/transfer.js +5 -5
  78. package/dist/components/data-entry/tree-select.d.ts +6 -4
  79. package/dist/components/data-entry/tree-select.js +5 -5
  80. package/dist/components/data-entry/upload.d.ts +7 -5
  81. package/dist/components/data-entry/upload.js +8 -7
  82. package/dist/components/data-grid/index.js +8 -8
  83. package/dist/components/feedback/alert.d.ts +4 -4
  84. package/dist/components/feedback/alert.js +4 -4
  85. package/dist/components/feedback/dialog.d.ts +19 -5
  86. package/dist/components/feedback/dialog.js +5 -4
  87. package/dist/components/feedback/index.d.ts +17 -26
  88. package/dist/components/feedback/index.js +12 -11
  89. package/dist/components/feedback/sheet.d.ts +21 -2
  90. package/dist/components/feedback/sheet.js +2 -1
  91. package/dist/components/general/button.d.ts +3 -3
  92. package/dist/components/general/index.d.ts +3 -3
  93. package/dist/components/layout/index.d.ts +6 -6
  94. package/dist/components/layout/index.js +4 -3
  95. package/dist/components/navigation/index.d.ts +8 -8
  96. package/dist/components/navigation/index.js +9 -9
  97. package/dist/components/navigation/pagination.d.ts +4 -4
  98. package/dist/components/navigation/pagination.js +7 -7
  99. package/dist/components/navigation/steps.d.ts +5 -5
  100. package/dist/components/navigation/steps.js +4 -4
  101. package/dist/components/query/index.d.ts +4 -4
  102. package/dist/components/query/index.js +4 -4
  103. package/dist/components/ui/index.d.ts +15 -13
  104. package/dist/components/ui/index.js +24 -23
  105. package/dist/{data-display.prop-Cf2p9QC4.d.ts → data-display.prop-BOtnzI17.d.ts} +3 -3
  106. package/dist/{data-entry.prop-6J0o45se.d.ts → data-entry.prop-BGxD81Lf.d.ts} +30 -3
  107. package/dist/{data-table-B_q7j992.d.ts → data-table-DO-gU4wJ.d.ts} +3 -3
  108. package/dist/{data.prop-DMYMNl6L.d.ts → data.prop-D4uDw_SW.d.ts} +1 -1
  109. package/dist/{feedback.prop-Nc9Aa8SV.d.ts → feedback.prop-CtrL24E1.d.ts} +2 -2
  110. package/dist/{filter-bar-B07JSxME.d.ts → filter-bar-tEwfKthz.d.ts} +1 -1
  111. package/dist/{flex-DXtIALBh.d.ts → flex-88Ps6YCv.d.ts} +1 -1
  112. package/dist/form/index.d.ts +3 -3
  113. package/dist/form/index.js +2 -1
  114. package/dist/{form.prop-Bc6r6JJW.d.ts → form.prop-5cyL3bvT.d.ts} +1 -1
  115. package/dist/{general.prop-DoHDCRmL.d.ts → general.prop-1GgJkf4b.d.ts} +2 -2
  116. package/dist/i18n/index.d.ts +3 -1
  117. package/dist/i18n/index.js +2 -2
  118. package/dist/index.d.ts +14 -15
  119. package/dist/index.js +36 -34
  120. package/dist/{interaction.prop-DSFizzP6.d.ts → interaction.prop-R77MnAMZ.d.ts} +5 -1
  121. package/dist/{layout.prop-B1yQPUNZ.d.ts → layout.prop-ChLFNGJ6.d.ts} +2 -2
  122. package/dist/lib/datetime/index.js +1 -1
  123. package/dist/{navigation.prop-BKlxd-j7.d.ts → navigation.prop-CXDaVNaR.d.ts} +1 -1
  124. package/dist/{navigation.prop-Dumy196X.d.ts → navigation.prop-Cc_Iu87S.d.ts} +2 -2
  125. package/dist/props/components/index.d.ts +13 -13
  126. package/dist/props/index.d.ts +13 -13
  127. package/dist/props/index.js +1 -1
  128. package/dist/props/registry.d.ts +22 -2
  129. package/dist/props/registry.js +1 -1
  130. package/dist/props/vocabulary/index.d.ts +4 -4
  131. package/dist/{query.prop-Dog-EAfG.d.ts → query.prop-CyNxaCHe.d.ts} +2 -2
  132. package/dist/{search-input-BR4nAWiT.d.ts → search-input-BPtjUAa1.d.ts} +2 -2
  133. package/dist/{shared.prop-BsNSXeqD.d.ts → shared.prop-BvMSLFJ6.d.ts} +7 -1
  134. package/dist/styles/alert-layout.css +8 -8
  135. package/dist/styles/card-layout.css +301 -292
  136. package/dist/styles/control.css +8 -9
  137. package/dist/styles/data-display-layout.css +50 -5
  138. package/dist/styles/density.css +4 -0
  139. package/dist/styles/dialog-layout.css +35 -7
  140. package/dist/styles/form-layout.css +161 -0
  141. package/dist/styles/index.css +31 -3
  142. package/dist/styles/layout.css +1 -1
  143. package/dist/styles/navigation-layout.css +1 -1
  144. package/dist/styles/shell-layout.css +12 -12
  145. package/dist/tokens/components/card.css +1 -1
  146. package/dist/tokens/components/feedback.css +9 -1
  147. package/dist/tokens/foundation.css +74 -16
  148. package/dist/tokens/semantic/layout.css +29 -11
  149. package/package.json +1 -1
  150. package/dist/chunk-A6VFHPS6.js +0 -119
  151. package/dist/chunk-B3WX53JQ.js +0 -40
  152. package/dist/chunk-QSGW3ZWK.js +0 -45
  153. package/dist/chunk-WFUIE252.js +0 -61
  154. package/dist/styles/feedback-layout.css +0 -49
  155. package/dist/tooltip-Bf2KjRy8.d.ts +0 -14
  156. package/dist/use-toast-Dsw3yE2S.d.ts +0 -19
@@ -5,12 +5,12 @@ import * as date_fns from 'date-fns';
5
5
  import { Locale } from 'date-fns';
6
6
  import { vi } from 'react-day-picker/locale';
7
7
  import * as react_jsx_runtime from 'react/jsx-runtime';
8
- import { a as AppProviderProp, A as AppContextValue } from '../app.prop-Cy6dJnU8.js';
8
+ import { a as AppProviderProp, A as AppContextValue } from '../app.prop-CVY8V4ss.js';
9
9
  import { j as formatDate, a as FormatDateOptions } from '../format-date-ByyZoqI5.js';
10
10
  export { F as FormatDateKind, b as FormatDatetimeOptions, d as detectFormatDateKind, f as formatAppDate, c as formatAppDateLong, e as formatAppDateTime, g as formatAppRelative, h as formatAppTime, i as formatCalendarDate, k as formatTimeOfDay, m as isFormatDateValue } from '../format-date-ByyZoqI5.js';
11
11
  export { getDatetimeContext, isValidHhmm, normalizeHhmm, parseDateInput, syncDatetimeContext } from '../lib/datetime/index.js';
12
12
  export { usePickerLocales, useTranslation } from '../i18n/index.js';
13
- import '../shared.prop-BsNSXeqD.js';
13
+ import '../shared.prop-BvMSLFJ6.js';
14
14
  import 'react';
15
15
  import '@date-fns/tz';
16
16
 
package/dist/app/index.js CHANGED
@@ -1,7 +1,7 @@
1
- import { useAppContext } from '../chunk-TXRYSMOD.js';
2
- 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 } from '../chunk-TXRYSMOD.js';
3
- import { formatDate } from '../chunk-3ELRYXJK.js';
4
- export { APP_DATE_FORMATS, APP_DATE_FORMAT_OPTIONS, APP_LOCALE_CONFIG, APP_REQUEST_HEADER_DATE_FORMAT, APP_REQUEST_HEADER_TIME_FORMAT, APP_TIME_FORMATS, detectFormatDateKind, formatAppDate, formatAppDateLong, formatAppDateTime, formatAppRelative, formatAppTime, formatCalendarDate, formatDate, formatTimeOfDay, getDateFnsLocale, getDateFormatLabel, getDatePattern, getDateTimePattern, getDatetimeContext, getDayPickerLocale, getTimePattern, isAppDateFormat, isAppLocale, isAppTimeFormat, isFormatDateValue, isValidHhmm, normalizeHhmm, parseDateInput, resolveDefaultDateFormat, syncDatetimeContext } from '../chunk-3ELRYXJK.js';
1
+ import { useAppContext } from '../chunk-H2TX3OPW.js';
2
+ 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 } from '../chunk-H2TX3OPW.js';
3
+ import { formatDate } from '../chunk-JEIUEOTJ.js';
4
+ export { APP_DATE_FORMATS, APP_DATE_FORMAT_OPTIONS, APP_LOCALE_CONFIG, APP_REQUEST_HEADER_DATE_FORMAT, APP_REQUEST_HEADER_TIME_FORMAT, APP_TIME_FORMATS, detectFormatDateKind, formatAppDate, formatAppDateLong, formatAppDateTime, formatAppRelative, formatAppTime, formatCalendarDate, formatDate, formatTimeOfDay, getDateFnsLocale, getDateFormatLabel, getDatePattern, getDateTimePattern, getDatetimeContext, getDayPickerLocale, getTimePattern, isAppDateFormat, isAppLocale, isAppTimeFormat, isFormatDateValue, isValidHhmm, normalizeHhmm, parseDateInput, resolveDefaultDateFormat, syncDatetimeContext } from '../chunk-JEIUEOTJ.js';
5
5
  import { useMemo } from 'react';
6
6
 
7
7
  function useFormatting() {
@@ -1,7 +1,7 @@
1
1
  import { Locale } from 'date-fns';
2
2
  import { DayPickerProps } from 'react-day-picker';
3
3
  import { h as AppLocale, l as AppTimezoneDefault, k as AppTimezone, j as AppTimeFormat, g as AppDateFormat, i as AppRequestHeaders } from './types-mvzYGrma.js';
4
- import { C as ChildrenProp, a as ClassNameProp, c as DisabledProp, I as IdProp, N as NameProp, V as ValueProp, g as OnValueChangeProp } from './shared.prop-BsNSXeqD.js';
4
+ import { C as ChildrenProp, a as ClassNameProp, c as DisabledProp, I as IdProp, N as NameProp, V as ValueProp, g as OnValueChangeProp } from './shared.prop-BvMSLFJ6.js';
5
5
 
6
6
  /** App shell prop types — @see docs/COMPONENTS.md#app */
7
7
 
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
- import { b as CheckboxGroupProp } from './data-entry.prop-6J0o45se.js';
4
+ import { b as CheckboxGroupProp } from './data-entry.prop-BGxD81Lf.js';
5
5
 
6
6
  declare function CheckboxGroup({ value: controlledValue, defaultValue, onValueChange, options, orientation, disabled, name, className, children, }: CheckboxGroupProp): react_jsx_runtime.JSX.Element;
7
7
 
@@ -1,4 +1,4 @@
1
- import { tableCellPaddingClass, tableRowHeightClass } from './chunk-IBK5D2Q6.js';
1
+ import { tableCellPaddingClass, tableRowHeightClass } from './chunk-B4K4BXEF.js';
2
2
  import { cn } from './chunk-U7N2A7A3.js';
3
3
  import { jsx, jsxs } from 'react/jsx-runtime';
4
4
 
@@ -0,0 +1 @@
1
+
@@ -1,4 +1,4 @@
1
- import { controlIconLeadingClass } from './chunk-IBK5D2Q6.js';
1
+ import { controlIconLeadingClass } from './chunk-B4K4BXEF.js';
2
2
  import { cn } from './chunk-U7N2A7A3.js';
3
3
  import * as React from 'react';
4
4
  import { Command as Command$1 } from 'cmdk';
@@ -1,9 +1,10 @@
1
1
  import { normalizeTreeOptions, formatPathLabels, getNodeByPath, filterTreeOptions, pathsEqual, pathKey } from './chunk-SMLKNECP.js';
2
- import { Command, CommandInput } from './chunk-HTEL5DQI.js';
2
+ import { Command, CommandInput } from './chunk-3R3QVJCB.js';
3
3
  import { Button } from './chunk-M4PZNAMV.js';
4
4
  import { Popover, PopoverTrigger, PopoverContent } from './chunk-DY5C44UP.js';
5
5
  import { ScrollArea, ScrollBar } from './chunk-3KPEZ5CF.js';
6
- import { useTranslation } from './chunk-TXRYSMOD.js';
6
+ import { controlOpenRingClass } from './chunk-B4K4BXEF.js';
7
+ import { useTranslation } from './chunk-H2TX3OPW.js';
7
8
  import { cn } from './chunk-U7N2A7A3.js';
8
9
  import * as React from 'react';
9
10
  import { Check, X, ChevronsUpDown, ChevronRight, Minus } from 'lucide-react';
@@ -234,6 +235,7 @@ function Cascader({
234
235
  disabled,
235
236
  className: cn(
236
237
  "w-full justify-start font-normal",
238
+ controlOpenRingClass,
237
239
  // Reserve trailing room for the clear + chevron overlay rendered below.
238
240
  showClear ? "pe-14" : "pe-9",
239
241
  !displayLabel && "text-muted-foreground"
@@ -1,6 +1,6 @@
1
- import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from './chunk-2TYRT5XH.js';
1
+ import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from './chunk-RX2F2U6D.js';
2
2
  import { Button } from './chunk-M4PZNAMV.js';
3
- import { useTranslation } from './chunk-TXRYSMOD.js';
3
+ import { useTranslation } from './chunk-H2TX3OPW.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';
@@ -1,8 +1,8 @@
1
- import { Input } from './chunk-VOHTRR5X.js';
1
+ import { Input } from './chunk-BNXPDUO4.js';
2
2
  import { Button } from './chunk-M4PZNAMV.js';
3
3
  import { Popover, PopoverTrigger, PopoverContent } from './chunk-DY5C44UP.js';
4
- import { useTranslation, usePickerLocales } from './chunk-TXRYSMOD.js';
5
- import { normalizeHhmm, isValidHhmm } from './chunk-3ELRYXJK.js';
4
+ import { useTranslation, usePickerLocales } from './chunk-H2TX3OPW.js';
5
+ import { normalizeHhmm, isValidHhmm } from './chunk-JEIUEOTJ.js';
6
6
  import { cn } from './chunk-U7N2A7A3.js';
7
7
  import * as React from 'react';
8
8
  import { Clock } from 'lucide-react';
@@ -0,0 +1,109 @@
1
+ import { ResponsiveGrid } from './chunk-C3PKEV6S.js';
2
+ import { Label } from './chunk-7PWBC4BY.js';
3
+ import { cn } from './chunk-U7N2A7A3.js';
4
+ import * as React from 'react';
5
+ import { jsx, jsxs } from 'react/jsx-runtime';
6
+
7
+ var FormLayoutContext = React.createContext(null);
8
+ function useFormLayout() {
9
+ return React.useContext(FormLayoutContext);
10
+ }
11
+ var Form = React.forwardRef(function Form2({
12
+ layout = "vertical",
13
+ labelWidth,
14
+ controlWidth,
15
+ labelAlign = "end",
16
+ collapseBelow = "md",
17
+ columns,
18
+ density,
19
+ className,
20
+ children,
21
+ ...props
22
+ }, ref) {
23
+ const ctx = React.useMemo(
24
+ () => ({ layout, labelWidth, controlWidth, labelAlign, collapseBelow }),
25
+ [layout, labelWidth, controlWidth, labelAlign, collapseBelow]
26
+ );
27
+ const content = columns != null ? /* @__PURE__ */ jsx(ResponsiveGrid, { columns, children }) : children;
28
+ return /* @__PURE__ */ jsx(
29
+ "form",
30
+ {
31
+ ref,
32
+ "data-slot": "form",
33
+ "data-layout": layout,
34
+ className: cn("ui-form", density && `ui-density-${density}`, className),
35
+ ...props,
36
+ children: /* @__PURE__ */ jsx(FormLayoutContext.Provider, { value: ctx, children: content })
37
+ }
38
+ );
39
+ });
40
+ var toCssLength = (v) => typeof v === "number" ? `${v}px` : v;
41
+ function FormField({
42
+ id,
43
+ label,
44
+ required,
45
+ helper,
46
+ error,
47
+ labelAddon,
48
+ layout: layoutProp,
49
+ labelWidth: labelWidthProp,
50
+ controlWidth: controlWidthProp,
51
+ colSpan,
52
+ className,
53
+ children
54
+ }) {
55
+ const form = useFormLayout();
56
+ const layout = layoutProp ?? form?.layout ?? "vertical";
57
+ const labelWidth = labelWidthProp ?? form?.labelWidth;
58
+ const controlWidth = controlWidthProp ?? form?.controlWidth;
59
+ const labelAlign = form?.labelAlign ?? "end";
60
+ const collapseBelow = form?.collapseBelow ?? "md";
61
+ const helperId = helper ? `${id}-helper` : void 0;
62
+ const errorId = error ? `${id}-error` : void 0;
63
+ if (typeof process !== "undefined" && process.env?.NODE_ENV !== "production" && !React.isValidElement(children)) {
64
+ console.warn(
65
+ "FormField expects a single React element child to receive aria-describedby/aria-errormessage; the helper text and error message will not be associated with the control."
66
+ );
67
+ }
68
+ const childWithA11y = React.isValidElement(children) ? React.cloneElement(children, {
69
+ // Helper and error can coexist: helper stays on aria-describedby, the error on
70
+ // aria-errormessage (surfaced when aria-invalid is true).
71
+ "aria-describedby": helperId,
72
+ "aria-errormessage": errorId,
73
+ "aria-required": required ? true : void 0,
74
+ "aria-invalid": !!error || void 0
75
+ }) : children;
76
+ const style = {};
77
+ if (labelWidth != null)
78
+ style["--form-label-width"] = toCssLength(labelWidth);
79
+ if (controlWidth != null)
80
+ style["--form-control-width"] = toCssLength(controlWidth);
81
+ if (colSpan != null) style.gridColumn = `span ${colSpan}`;
82
+ return /* @__PURE__ */ jsxs(
83
+ "div",
84
+ {
85
+ "data-slot": "form-field",
86
+ "data-layout": layout,
87
+ "data-collapse-below": String(collapseBelow),
88
+ "data-label-align": labelAlign,
89
+ style: Object.keys(style).length ? style : void 0,
90
+ className: cn("ui-form-field", className),
91
+ children: [
92
+ /* @__PURE__ */ jsxs("div", { "data-slot": "form-field-label", className: "ui-form-field-label", children: [
93
+ /* @__PURE__ */ jsxs(Label, { htmlFor: id, className: "ui-inline-xs", children: [
94
+ /* @__PURE__ */ jsx("span", { children: label }),
95
+ required && /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "text-destructive", children: "*" })
96
+ ] }),
97
+ labelAddon
98
+ ] }),
99
+ /* @__PURE__ */ jsxs("div", { "data-slot": "form-field-control", className: "ui-form-field-control", children: [
100
+ childWithA11y,
101
+ helper ? /* @__PURE__ */ jsx("p", { id: helperId, className: "text-muted-foreground text-xs", children: helper }) : null,
102
+ error ? /* @__PURE__ */ jsx("p", { id: errorId, role: "alert", className: "text-destructive text-xs", children: error }) : null
103
+ ] })
104
+ ]
105
+ }
106
+ );
107
+ }
108
+
109
+ export { Form, FormField, useFormLayout };
@@ -1,9 +1,9 @@
1
- import { Calendar } from './chunk-FTOG7D4T.js';
2
- import { Input } from './chunk-VOHTRR5X.js';
1
+ import { Calendar } from './chunk-KQ36FDEE.js';
2
+ import { Input } from './chunk-BNXPDUO4.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-TXRYSMOD.js';
6
- import { toIsoDate, parseDateInput } from './chunk-3ELRYXJK.js';
5
+ import { useTranslation, usePickerLocales } from './chunk-H2TX3OPW.js';
6
+ import { toIsoDate, parseDateInput } from './chunk-JEIUEOTJ.js';
7
7
  import { cn } from './chunk-U7N2A7A3.js';
8
8
  import * as React from 'react';
9
9
  import { CalendarIcon } from 'lucide-react';
@@ -1,6 +1,7 @@
1
1
  // src/lib/control-styles.ts
2
2
  var controlMultilineClass = "ui-control-multiline w-full rounded-lg border border-input bg-background ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/25 disabled:cursor-not-allowed disabled:opacity-50";
3
- var controlTriggerClass = "ui-control flex w-full items-center justify-between gap-2 whitespace-nowrap rounded-lg border border-input bg-background shadow-sm focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/25 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1";
3
+ var controlOpenRingClass = "data-[state=open]:border-ring data-[state=open]:ring-ring/50 data-[state=open]:ring-[3px]";
4
+ var controlTriggerClass = "ui-control flex w-full items-center justify-between gap-2 whitespace-nowrap rounded-lg border border-input bg-background shadow-sm transition-[color,box-shadow] focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/25 data-[state=open]:border-ring data-[state=open]:ring-ring/50 data-[state=open]:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1";
4
5
  var controlIconClass = "size-[length:var(--control-height)] shrink-0";
5
6
  var controlIconSmClass = "size-[calc(var(--control-height)-0.5rem)] shrink-0";
6
7
  var controlIconLeadingClass = "size-[length:var(--control-icon-size)] shrink-0";
@@ -14,4 +15,4 @@ var toneDestructiveClass = "border-destructive/30 bg-destructive/10 text-destruc
14
15
  var toneMutedClass = "border-border bg-muted text-muted-foreground";
15
16
  var toneNeutralClass = "border-border bg-muted text-muted-foreground";
16
17
 
17
- export { controlIconClass, controlIconLeadingClass, controlIconSmClass, controlMultilineClass, controlTriggerClass, tableCellPaddingClass, tableHeadHeightClass, tableRowHeightClass, toneDestructiveClass, toneInfoClass, toneMutedClass, toneNeutralClass, toneSuccessClass, toneWarningClass };
18
+ export { controlIconClass, controlIconLeadingClass, controlIconSmClass, controlMultilineClass, controlOpenRingClass, controlTriggerClass, tableCellPaddingClass, tableHeadHeightClass, tableRowHeightClass, toneDestructiveClass, toneInfoClass, toneMutedClass, toneNeutralClass, toneSuccessClass, toneWarningClass };
@@ -10,7 +10,7 @@ var Input = React.forwardRef(
10
10
  "data-slot": "input",
11
11
  ref,
12
12
  className: cn(
13
- "ui-control border-input bg-background w-full min-w-0 rounded-md border px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none md:text-sm",
13
+ "ui-control border-input bg-background w-full min-w-0 rounded-md border px-3 py-1 text-sm shadow-xs transition-[color,box-shadow] outline-none",
14
14
  "selection:bg-primary selection:text-primary-foreground",
15
15
  "file:text-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium",
16
16
  "placeholder:text-muted-foreground",
@@ -0,0 +1,22 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+
3
+ // src/components/layout/responsive-grid.tsx
4
+ function resolveColumns(columns) {
5
+ if (typeof columns === "number") {
6
+ return {
7
+ "--responsive-grid-sm": Math.min(columns, 2),
8
+ "--responsive-grid-md": Math.min(columns, 3),
9
+ "--responsive-grid-lg": columns
10
+ };
11
+ }
12
+ return {
13
+ "--responsive-grid-sm": columns.sm ?? 1,
14
+ "--responsive-grid-md": columns.md ?? columns.sm ?? 1,
15
+ "--responsive-grid-lg": columns.lg ?? columns.md ?? columns.sm ?? 1
16
+ };
17
+ }
18
+ function ResponsiveGrid({ columns = 4, children }) {
19
+ return /* @__PURE__ */ jsx("div", { className: "ui-responsive-grid", style: resolveColumns(columns), children });
20
+ }
21
+
22
+ export { ResponsiveGrid };
@@ -1,4 +1,4 @@
1
- import { normalizeHhmm, isValidHhmm } from './chunk-3ELRYXJK.js';
1
+ import { normalizeHhmm, isValidHhmm } from './chunk-JEIUEOTJ.js';
2
2
  import { cn } from './chunk-U7N2A7A3.js';
3
3
  import * as React from 'react';
4
4
  import { jsx } from 'react/jsx-runtime';
@@ -3,7 +3,7 @@ import { DropdownMenu, DropdownMenuTrigger } from './chunk-LMKUKCTN.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-TXRYSMOD.js';
6
+ import { useTranslation } from './chunk-H2TX3OPW.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';
@@ -472,23 +472,6 @@ function Topbar({
472
472
  ) : null
473
473
  ] });
474
474
  }
475
- function resolveColumns(columns) {
476
- if (typeof columns === "number") {
477
- return {
478
- "--responsive-grid-sm": Math.min(columns, 2),
479
- "--responsive-grid-md": Math.min(columns, 3),
480
- "--responsive-grid-lg": columns
481
- };
482
- }
483
- return {
484
- "--responsive-grid-sm": columns.sm ?? 1,
485
- "--responsive-grid-md": columns.md ?? columns.sm ?? 1,
486
- "--responsive-grid-lg": columns.lg ?? columns.md ?? columns.sm ?? 1
487
- };
488
- }
489
- function ResponsiveGrid({ columns = 4, children }) {
490
- return /* @__PURE__ */ jsx("div", { className: "ui-responsive-grid", style: resolveColumns(columns), children });
491
- }
492
475
  function SplitPane({ children, aside, asideWidth = "md" }) {
493
476
  return /* @__PURE__ */ jsxs("div", { className: "ui-split-pane", "data-aside-width": asideWidth, children: [
494
477
  /* @__PURE__ */ jsx("div", { className: "ui-split-pane-main", children }),
@@ -496,4 +479,4 @@ function SplitPane({ children, aside, asideWidth = "md" }) {
496
479
  ] });
497
480
  }
498
481
 
499
- export { AppShell, Breadcrumb, PageContainer, ResponsiveGrid, Sidebar, SidebarHeader, SidebarItem, SidebarSection, SplitPane, Topbar };
482
+ export { AppShell, Breadcrumb, PageContainer, Sidebar, SidebarHeader, SidebarItem, SidebarSection, SplitPane, Topbar };
@@ -0,0 +1 @@
1
+ export { toast as sonnerToast } from 'sonner';
@@ -1,4 +1,4 @@
1
- import { useTranslation } from './chunk-TXRYSMOD.js';
1
+ import { useTranslation } from './chunk-H2TX3OPW.js';
2
2
  import { cn } from './chunk-U7N2A7A3.js';
3
3
  import * as React from 'react';
4
4
  import useEmblaCarousel from 'embla-carousel-react';
@@ -18,16 +18,21 @@ var Carousel = React.forwardRef(({ className, opts, plugins, setApi, children, .
18
18
  const [emblaRef, api] = useEmblaCarousel(opts, plugins);
19
19
  const [canScrollPrev, setCanScrollPrev] = React.useState(false);
20
20
  const [canScrollNext, setCanScrollNext] = React.useState(false);
21
+ const [selectedIndex, setSelectedIndex] = React.useState(0);
22
+ const [scrollSnaps, setScrollSnaps] = React.useState([]);
21
23
  const onSelect = React.useCallback(() => {
22
24
  if (!api) return;
23
25
  setCanScrollPrev(api.canScrollPrev());
24
26
  setCanScrollNext(api.canScrollNext());
27
+ setSelectedIndex(api.selectedScrollSnap());
25
28
  }, [api]);
26
29
  React.useEffect(() => {
27
30
  if (!api) return void 0;
28
31
  onSelect();
32
+ setScrollSnaps(api.scrollSnapList());
29
33
  setApi?.(api);
30
34
  api.on("reInit", onSelect);
35
+ api.on("reInit", () => setScrollSnaps(api.scrollSnapList()));
31
36
  api.on("select", onSelect);
32
37
  return () => {
33
38
  api.off("reInit", onSelect);
@@ -50,12 +55,23 @@ var Carousel = React.forwardRef(({ className, opts, plugins, setApi, children, .
50
55
  () => ({
51
56
  canScrollPrev,
52
57
  canScrollNext,
58
+ selectedIndex,
59
+ scrollSnaps,
53
60
  api,
54
61
  scrollPrev,
55
62
  scrollNext,
56
63
  scrollTo
57
64
  }),
58
- [canScrollPrev, canScrollNext, api, scrollPrev, scrollNext, scrollTo]
65
+ [
66
+ canScrollPrev,
67
+ canScrollNext,
68
+ selectedIndex,
69
+ scrollSnaps,
70
+ api,
71
+ scrollPrev,
72
+ scrollNext,
73
+ scrollTo
74
+ ]
59
75
  );
60
76
  return /* @__PURE__ */ jsx(CarouselContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(
61
77
  "div",
@@ -158,5 +174,42 @@ var CarouselNext = React.forwardRef(({ className, ...props }, ref) => {
158
174
  );
159
175
  });
160
176
  CarouselNext.displayName = "CarouselNext";
177
+ var CarouselDots = React.forwardRef(
178
+ ({ className, ...props }, ref) => {
179
+ const { t } = useTranslation();
180
+ const { scrollSnaps, selectedIndex, scrollTo } = useCarousel();
181
+ if (scrollSnaps.length <= 1) return null;
182
+ return /* @__PURE__ */ jsx(
183
+ "div",
184
+ {
185
+ ref,
186
+ "data-slot": "carousel-dots",
187
+ className: cn("ui-carousel-dots", className),
188
+ role: "tablist",
189
+ "aria-label": t("dataDisplay.carousel.dotsLabel"),
190
+ ...props,
191
+ children: scrollSnaps.map((_, index) => {
192
+ const active = index === selectedIndex;
193
+ return /* @__PURE__ */ jsx(
194
+ "button",
195
+ {
196
+ type: "button",
197
+ role: "tab",
198
+ "data-slot": "carousel-dot",
199
+ "data-active": active ? "" : void 0,
200
+ className: "ui-carousel-dot",
201
+ "aria-selected": active,
202
+ "aria-current": active ? "true" : void 0,
203
+ "aria-label": t("dataDisplay.carousel.goToSlide", { index: index + 1 }),
204
+ onClick: () => scrollTo(index)
205
+ },
206
+ index
207
+ );
208
+ })
209
+ }
210
+ );
211
+ }
212
+ );
213
+ CarouselDots.displayName = "CarouselDots";
161
214
 
162
- export { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, useCarousel };
215
+ export { Carousel, CarouselContent, CarouselDots, CarouselItem, CarouselNext, CarouselPrevious, useCarousel };
@@ -1,4 +1,4 @@
1
- import { getSyncedLocale, translateCurrent } from './chunk-3ELRYXJK.js';
1
+ import { getSyncedLocale, translateCurrent } from './chunk-JEIUEOTJ.js';
2
2
 
3
3
  // src/lib/format.ts
4
4
  function formatBytes(n, locale = getSyncedLocale()) {
@@ -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-3ELRYXJK.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-JEIUEOTJ.js';
2
2
  import * as React from 'react';
3
3
  import { useMemo } from 'react';
4
4
  import { jsx } from 'react/jsx-runtime';
@@ -1,4 +1,4 @@
1
- import { controlMultilineClass } from './chunk-IBK5D2Q6.js';
1
+ import { controlMultilineClass } from './chunk-B4K4BXEF.js';
2
2
  import { cn } from './chunk-U7N2A7A3.js';
3
3
  import * as React from 'react';
4
4
  import { jsx } from 'react/jsx-runtime';
@@ -1,4 +1,4 @@
1
- import { tableHeadHeightClass } from './chunk-IBK5D2Q6.js';
1
+ import { tableHeadHeightClass } from './chunk-B4K4BXEF.js';
2
2
  import { cn } from './chunk-U7N2A7A3.js';
3
3
  import * as React from 'react';
4
4
  import { jsx } from 'react/jsx-runtime';
@@ -1,10 +1,11 @@
1
1
  import { normalizeTreeOptions, collectAllExpandableKeys, filterVisibleTree, flattenVisibleTree, findNodeByValue, reactNodeText, getDescendantValues } from './chunk-SMLKNECP.js';
2
- import { Command, CommandInput } from './chunk-HTEL5DQI.js';
2
+ import { Command, CommandInput } from './chunk-3R3QVJCB.js';
3
3
  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-TXRYSMOD.js';
7
+ import { controlOpenRingClass } from './chunk-B4K4BXEF.js';
8
+ import { useTranslation } from './chunk-H2TX3OPW.js';
8
9
  import { cn } from './chunk-U7N2A7A3.js';
9
10
  import * as React from 'react';
10
11
  import { X, ChevronsUpDown, ChevronDown, ChevronRight } from 'lucide-react';
@@ -171,6 +172,7 @@ function TreeSelectRoot({
171
172
  disabled,
172
173
  className: cn(
173
174
  "w-full justify-between font-normal",
175
+ controlOpenRingClass,
174
176
  !displayKeys.length && "text-muted-foreground",
175
177
  className
176
178
  ),
@@ -2,9 +2,9 @@ import { EmptyState } from './chunk-YD7V2HGZ.js';
2
2
  import { Flex, densityClass } from './chunk-INIIF7F7.js';
3
3
  import { Checkbox } from './chunk-BE6GJGKJ.js';
4
4
  import { Button } from './chunk-M4PZNAMV.js';
5
- import { Table, TableHeader, TableRow, TableHead, TableBody, TableCell } from './chunk-4MMIMZMK.js';
6
- import { tableCellPaddingClass, tableRowHeightClass, controlIconSmClass } from './chunk-IBK5D2Q6.js';
7
- import { useTranslation } from './chunk-TXRYSMOD.js';
5
+ import { Table, TableHeader, TableRow, TableHead, TableBody, TableCell } from './chunk-IJ5ALJGA.js';
6
+ import { tableCellPaddingClass, tableRowHeightClass, controlIconSmClass } from './chunk-B4K4BXEF.js';
7
+ import { useTranslation } from './chunk-H2TX3OPW.js';
8
8
  import { cn } from './chunk-U7N2A7A3.js';
9
9
  import { jsx, jsxs } from 'react/jsx-runtime';
10
10
  import * as React from 'react';
@@ -22,10 +22,13 @@ Descriptions.Item = function DescriptionsItem({
22
22
  children
23
23
  }) {
24
24
  const spanClass = span === 2 ? "sm:col-span-2" : span === 3 ? "sm:col-span-2 lg:col-span-3" : "";
25
- return /* @__PURE__ */ jsxs("div", { className: cn(spanClass, className), children: [
26
- /* @__PURE__ */ jsx("dt", { className: "text-muted-foreground text-xs", children: label }),
27
- /* @__PURE__ */ jsx("dd", { className: cn("text-sm break-all", mono && "font-mono"), children })
28
- ] });
25
+ return (
26
+ // grid + the shared --field-label-gap so the label→value gap matches FormField / Form everywhere.
27
+ /* @__PURE__ */ jsxs("div", { className: cn("grid gap-[var(--field-label-gap)]", spanClass, className), children: [
28
+ /* @__PURE__ */ jsx("dt", { className: "text-muted-foreground text-xs", children: label }),
29
+ /* @__PURE__ */ jsx("dd", { className: cn("text-sm break-all", mono && "font-mono"), children })
30
+ ] })
31
+ );
29
32
  };
30
33
  var DataTableContext = React.createContext(null);
31
34
  function useDataTableContext() {
@@ -1,5 +1,5 @@
1
- import { toneNeutralClass, toneMutedClass, toneInfoClass, toneDestructiveClass, toneWarningClass, toneSuccessClass } from './chunk-IBK5D2Q6.js';
2
- import { useTranslation } from './chunk-TXRYSMOD.js';
1
+ import { toneNeutralClass, toneMutedClass, toneInfoClass, toneDestructiveClass, toneWarningClass, toneSuccessClass } from './chunk-B4K4BXEF.js';
2
+ import { useTranslation } from './chunk-H2TX3OPW.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';
@@ -190,7 +190,9 @@ var en_default = {
190
190
  ariaLabel: "Carousel",
191
191
  slideLabel: "{index} of {total}",
192
192
  previous: "Previous",
193
- next: "Next"
193
+ next: "Next",
194
+ dotsLabel: "Choose slide",
195
+ goToSlide: "Go to slide {index}"
194
196
  }
195
197
  },
196
198
  ui: {
@@ -455,7 +457,9 @@ var ja_default = {
455
457
  ariaLabel: "\u30AB\u30EB\u30FC\u30BB\u30EB",
456
458
  slideLabel: "{total} \u4EF6\u4E2D {index} \u4EF6\u76EE",
457
459
  previous: "\u524D\u3078",
458
- next: "\u6B21\u3078"
460
+ next: "\u6B21\u3078",
461
+ dotsLabel: "\u30B9\u30E9\u30A4\u30C9\u3092\u9078\u629E",
462
+ goToSlide: "{index} \u756A\u76EE\u306E\u30B9\u30E9\u30A4\u30C9\u3078"
459
463
  }
460
464
  },
461
465
  ui: {
@@ -720,7 +724,9 @@ var vi_default = {
720
724
  ariaLabel: "B\u0103ng chuy\u1EC1n",
721
725
  slideLabel: "{index} / {total}",
722
726
  previous: "Tr\u01B0\u1EDBc",
723
- next: "Sau"
727
+ next: "Sau",
728
+ dotsLabel: "Ch\u1ECDn slide",
729
+ goToSlide: "\u0110\u1EBFn slide {index}"
724
730
  }
725
731
  },
726
732
  ui: {
@@ -1,5 +1,5 @@
1
1
  import { buttonVariants } from './chunk-M4PZNAMV.js';
2
- import { controlIconSmClass } from './chunk-IBK5D2Q6.js';
2
+ import { controlIconSmClass } from './chunk-B4K4BXEF.js';
3
3
  import { cn } from './chunk-U7N2A7A3.js';
4
4
  import { ChevronLeft, ChevronRight } from 'lucide-react';
5
5
  import { DayPicker } from 'react-day-picker';
@@ -1,9 +1,9 @@
1
- import { Calendar } from './chunk-FTOG7D4T.js';
2
- import { Input } from './chunk-VOHTRR5X.js';
1
+ import { Calendar } from './chunk-KQ36FDEE.js';
2
+ import { Input } from './chunk-BNXPDUO4.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-TXRYSMOD.js';
6
- import { toIsoDate, parseDateInput } from './chunk-3ELRYXJK.js';
5
+ import { useTranslation, usePickerLocales } from './chunk-H2TX3OPW.js';
6
+ import { toIsoDate, parseDateInput } from './chunk-JEIUEOTJ.js';
7
7
  import { cn } from './chunk-U7N2A7A3.js';
8
8
  import * as React from 'react';
9
9
  import { CalendarIcon } from 'lucide-react';
@@ -1,9 +1,9 @@
1
- import { SearchInput } from './chunk-BCBK4FLV.js';
1
+ import { SearchInput } from './chunk-XZXE5KVV.js';
2
2
  import { reactNodeText } from './chunk-SMLKNECP.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 { useTranslation } from './chunk-TXRYSMOD.js';
6
+ import { useTranslation } from './chunk-H2TX3OPW.js';
7
7
  import { cn } from './chunk-U7N2A7A3.js';
8
8
  import * as React from 'react';
9
9
  import { ChevronRight, ChevronLeft } from 'lucide-react';
@@ -1,5 +1,5 @@
1
- import { controlIconClass } from './chunk-IBK5D2Q6.js';
2
- import { useTranslation } from './chunk-TXRYSMOD.js';
1
+ import { controlIconClass } from './chunk-B4K4BXEF.js';
2
+ import { useTranslation } from './chunk-H2TX3OPW.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';