@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
@@ -1,9 +1,9 @@
1
- import { Command, CommandList, CommandItem, CommandGroup } from './chunk-HTEL5DQI.js';
2
- import { Input } from './chunk-VOHTRR5X.js';
1
+ import { Command, CommandList, CommandItem, CommandGroup } from './chunk-3R3QVJCB.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 { controlTriggerClass } from './chunk-IBK5D2Q6.js';
6
- import { useTranslation } from './chunk-TXRYSMOD.js';
5
+ import { controlTriggerClass, controlOpenRingClass } from './chunk-B4K4BXEF.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 * as SelectPrimitive from '@radix-ui/react-select';
@@ -159,7 +159,7 @@ function SearchSelect({
159
159
  "aria-expanded": open,
160
160
  disabled,
161
161
  "data-testid": dataTestId,
162
- className: cn("w-full justify-between font-normal", className),
162
+ className: cn("w-full justify-between font-normal", controlOpenRingClass, className),
163
163
  children: [
164
164
  /* @__PURE__ */ jsx("span", { className: cn("truncate text-start", !value && "text-muted-foreground"), children: currentLabel }),
165
165
  /* @__PURE__ */ jsx(ChevronsUpDown, { className: "ms-2 size-4 shrink-0 opacity-50", "aria-hidden": "true" })
@@ -1,6 +1,6 @@
1
- import { Input } from './chunk-VOHTRR5X.js';
2
- import { controlIconClass } from './chunk-IBK5D2Q6.js';
3
- import { useTranslation } from './chunk-TXRYSMOD.js';
1
+ import { Input } from './chunk-BNXPDUO4.js';
2
+ import { controlIconClass } from './chunk-B4K4BXEF.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 { jsxs, jsx } from 'react/jsx-runtime';
@@ -1,9 +1,9 @@
1
- import { formatBytes } from './chunk-FK5QEFVY.js';
2
- import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter } from './chunk-LCQFYL44.js';
1
+ import { formatBytes } from './chunk-GDHDJAVB.js';
2
+ import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter } from './chunk-WNOX32KG.js';
3
3
  import { Slider } from './chunk-CRERCLIZ.js';
4
4
  import { Button } from './chunk-M4PZNAMV.js';
5
- import { controlIconClass } from './chunk-IBK5D2Q6.js';
6
- import { useTranslation } from './chunk-TXRYSMOD.js';
5
+ import { controlIconClass } from './chunk-B4K4BXEF.js';
6
+ import { useTranslation } from './chunk-H2TX3OPW.js';
7
7
  import { cn } from './chunk-U7N2A7A3.js';
8
8
  import * as React2 from 'react';
9
9
  import { Upload as Upload$1, ImagePlus, Camera, Trash2, RotateCcw, X } from 'lucide-react';
@@ -484,7 +484,7 @@ function Upload({
484
484
  "aria-label": t("dataEntry.upload.avatarLabel"),
485
485
  children: [
486
486
  !showPlaceholder && item?.previewUrl ? /* @__PURE__ */ jsx("img", { src: item.previewUrl, alt: "", className: "size-full object-cover" }) : /* @__PURE__ */ jsx("span", { className: "text-muted-foreground flex size-full items-center justify-center", children: /* @__PURE__ */ jsx(Camera, { className: controlIconClass, "aria-hidden": "true" }) }),
487
- !disabled && /* @__PURE__ */ jsx("span", { className: "absolute inset-x-0 bottom-0 bg-black/50 py-1 text-center text-[10px] text-white", children: t("dataEntry.upload.change") })
487
+ !disabled && /* @__PURE__ */ jsx("span", { className: "text-2xs absolute inset-x-0 bottom-0 bg-black/50 py-1 text-center text-white", children: t("dataEntry.upload.change") })
488
488
  ]
489
489
  }
490
490
  ),
@@ -0,0 +1,12 @@
1
+ // src/components/feedback/overlay-header-tone.ts
2
+ var overlayHeaderToneClass = {
3
+ default: "",
4
+ success: "bg-success/10",
5
+ warning: "bg-warning/10",
6
+ destructive: "bg-destructive/10",
7
+ info: "bg-info/10",
8
+ muted: "bg-muted",
9
+ neutral: "bg-muted"
10
+ };
11
+
12
+ export { overlayHeaderToneClass };
@@ -1,7 +1,7 @@
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 { 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';
3
+ import { useOptionalAppContext, useTranslation, APP_TIME_FORMAT_OPTIONS, getTimeFormatLabel, resolveTimezonePickerOptions, getTimezoneLabel, APP_LOCALES } from './chunk-H2TX3OPW.js';
4
+ import { APP_DATE_FORMAT_OPTIONS, getDateFormatLabel } from './chunk-JEIUEOTJ.js';
5
5
  import { cn } from './chunk-U7N2A7A3.js';
6
6
  import * as React from 'react';
7
7
  import { useId } from 'react';
@@ -1,7 +1,8 @@
1
- import { Input } from './chunk-VOHTRR5X.js';
1
+ import { overlayHeaderToneClass } from './chunk-VU4GFGDG.js';
2
+ import { Input } from './chunk-BNXPDUO4.js';
2
3
  import { buttonVariants, Button } from './chunk-M4PZNAMV.js';
4
+ import { useTranslation } from './chunk-H2TX3OPW.js';
3
5
  import { Label } from './chunk-7PWBC4BY.js';
4
- import { useTranslation } from './chunk-TXRYSMOD.js';
5
6
  import { cn } from './chunk-U7N2A7A3.js';
6
7
  import * as React from 'react';
7
8
  import * as DialogPrimitive from '@radix-ui/react-dialog';
@@ -67,8 +68,35 @@ var DialogContent = React.forwardRef(({ className, children, showClose, showClos
67
68
  ] });
68
69
  });
69
70
  DialogContent.displayName = "DialogContent";
70
- var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx("div", { "data-slot": "dialog-header", className, ...props });
71
+ var DialogHeader = ({
72
+ className,
73
+ title,
74
+ subtitle,
75
+ extra,
76
+ tone = "default",
77
+ children,
78
+ ...props
79
+ }) => {
80
+ return /* @__PURE__ */ jsx(
81
+ "div",
82
+ {
83
+ "data-slot": "dialog-header",
84
+ "data-tone": tone,
85
+ className: cn(overlayHeaderToneClass[tone], className),
86
+ ...props,
87
+ children: children ?? /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-[var(--space-3)] pe-[var(--space-8)]", children: [
88
+ /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-col gap-[var(--space-1)]", children: [
89
+ title != null && /* @__PURE__ */ jsx(DialogTitle, { children: title }),
90
+ subtitle != null && /* @__PURE__ */ jsx(DialogDescription, { children: subtitle })
91
+ ] }),
92
+ extra != null && /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center gap-[var(--space-2)] whitespace-nowrap", children: extra })
93
+ ] })
94
+ }
95
+ );
96
+ };
71
97
  DialogHeader.displayName = "DialogHeader";
98
+ var DialogBody = ({ className, ...props }) => /* @__PURE__ */ jsx("div", { "data-slot": "dialog-body", className, ...props });
99
+ DialogBody.displayName = "DialogBody";
72
100
  var DialogFooter = ({ className, ...props }) => (
73
101
  // Layout (right-aligned actions, mobile column-reverse) lives in feedback-layout.css
74
102
  // [data-slot="dialog-footer"]. Destructive action goes far-left via `className="mr-auto"`.
@@ -136,7 +164,32 @@ var AlertDialogContent = React.forwardRef(({ className, children, showClose, sho
136
164
  );
137
165
  });
138
166
  AlertDialogContent.displayName = "AlertDialogContent";
139
- var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx("div", { "data-slot": "dialog-header", className: cn(className), ...props });
167
+ var AlertDialogHeader = ({
168
+ className,
169
+ title,
170
+ subtitle,
171
+ extra,
172
+ tone = "default",
173
+ children,
174
+ ...props
175
+ }) => {
176
+ return /* @__PURE__ */ jsx(
177
+ "div",
178
+ {
179
+ "data-slot": "dialog-header",
180
+ "data-tone": tone,
181
+ className: cn(overlayHeaderToneClass[tone], className),
182
+ ...props,
183
+ children: children ?? /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-[var(--space-3)] pe-[var(--space-8)]", children: [
184
+ /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-col gap-[var(--space-1)]", children: [
185
+ title != null && /* @__PURE__ */ jsx(AlertDialogTitle, { children: title }),
186
+ subtitle != null && /* @__PURE__ */ jsx(AlertDialogDescription, { children: subtitle })
187
+ ] }),
188
+ extra != null && /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center gap-[var(--space-2)] whitespace-nowrap", children: extra })
189
+ ] })
190
+ }
191
+ );
192
+ };
140
193
  AlertDialogHeader.displayName = "AlertDialogHeader";
141
194
  var AlertDialogFooter = ({ className, ...props }) => (
142
195
  // Layout lives in feedback-layout.css [data-slot="dialog-footer"] (right-aligned actions).
@@ -266,6 +319,7 @@ var Dialog = Object.assign(DialogRoot, {
266
319
  Overlay: DialogOverlay,
267
320
  Content: DialogContent,
268
321
  Header: DialogHeader,
322
+ Body: DialogBody,
269
323
  Footer: DialogFooter,
270
324
  Title: DialogTitle,
271
325
  Description: DialogDescription,
@@ -274,4 +328,4 @@ var Dialog = Object.assign(DialogRoot, {
274
328
  Cancel: DialogCancel
275
329
  });
276
330
 
277
- export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, Dialog, DialogAction, DialogCancel, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogRoot, DialogTitle, DialogTrigger };
331
+ export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, Dialog, DialogAction, DialogBody, DialogCancel, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogRoot, DialogTitle, DialogTrigger };
@@ -106,6 +106,11 @@ var VOCABULARY_REGISTRY = {
106
106
  category: "shared",
107
107
  description: "Radix asChild polymorphism"
108
108
  },
109
+ WidthProp: {
110
+ file: "vocabulary/shared.prop.ts",
111
+ category: "shared",
112
+ description: "Explicit layout length (number\u2192px | CSS string) \u2014 NOT the SizeProp tier"
113
+ },
109
114
  // content.prop.ts
110
115
  TitleProp: {
111
116
  file: "vocabulary/content.prop.ts",
@@ -204,6 +209,16 @@ var VOCABULARY_REGISTRY = {
204
209
  category: "interaction",
205
210
  description: "Shared size names xs | sm | md | lg"
206
211
  },
212
+ FormLayoutProp: {
213
+ file: "vocabulary/interaction.prop.ts",
214
+ category: "interaction",
215
+ description: "Form label layout: vertical | horizontal | inline"
216
+ },
217
+ BreakpointProp: {
218
+ file: "vocabulary/interaction.prop.ts",
219
+ category: "interaction",
220
+ description: "Responsive breakpoint name sm | md | lg | xl (mobile-first)"
221
+ },
207
222
  ConfirmVariantProp: {
208
223
  file: "vocabulary/interaction.prop.ts",
209
224
  category: "interaction",
@@ -412,10 +427,23 @@ var COMPONENT_PROP_REGISTRY = {
412
427
  file: "components/data-entry.prop.ts",
413
428
  vocabulary: ["PlaceholderProp", "DisabledProp"]
414
429
  },
430
+ FormProp: {
431
+ group: "data-entry",
432
+ file: "components/data-entry.prop.ts",
433
+ vocabulary: ["FormLayoutProp", "WidthProp", "BreakpointProp", "DensityProp"]
434
+ },
415
435
  FormFieldProp: {
416
436
  group: "data-entry",
417
437
  file: "components/data-entry.prop.ts",
418
- vocabulary: ["IdProp", "LabelProp", "RequiredProp", "HelperProp", "ErrorProp"]
438
+ vocabulary: [
439
+ "IdProp",
440
+ "LabelProp",
441
+ "RequiredProp",
442
+ "HelperProp",
443
+ "ErrorProp",
444
+ "FormLayoutProp",
445
+ "WidthProp"
446
+ ]
419
447
  },
420
448
  SearchInputProp: {
421
449
  group: "data-entry",
@@ -496,7 +524,7 @@ var COMPONENT_PROP_REGISTRY = {
496
524
  "IdProp",
497
525
  "ClassNameProp"
498
526
  ],
499
- note: "Deprecated \u2014 the searchable engine behind `<Select options showSearch>`; prefer Select."
527
+ note: "Internal \u2014 the searchable engine behind `<Select options showSearch>` (not public API); use Select."
500
528
  },
501
529
  SelectDataProp: {
502
530
  group: "data-entry",
@@ -0,0 +1,177 @@
1
+ import { overlayHeaderToneClass } from './chunk-VU4GFGDG.js';
2
+ import { cn } from './chunk-U7N2A7A3.js';
3
+ import * as React from 'react';
4
+ import * as DialogPrimitive from '@radix-ui/react-dialog';
5
+ import { cva } from 'class-variance-authority';
6
+ import { X } from 'lucide-react';
7
+ import { jsx, jsxs } from 'react/jsx-runtime';
8
+
9
+ var toCssLength = (v) => typeof v === "number" ? `${v}px` : v;
10
+ function Sheet(props) {
11
+ return /* @__PURE__ */ jsx(DialogPrimitive.Root, { "data-slot": "sheet", ...props });
12
+ }
13
+ function SheetTrigger(props) {
14
+ return /* @__PURE__ */ jsx(DialogPrimitive.Trigger, { "data-slot": "sheet-trigger", ...props });
15
+ }
16
+ function SheetClose(props) {
17
+ return /* @__PURE__ */ jsx(DialogPrimitive.Close, { "data-slot": "sheet-close", ...props });
18
+ }
19
+ function SheetPortal(props) {
20
+ return /* @__PURE__ */ jsx(DialogPrimitive.Portal, { "data-slot": "sheet-portal", ...props });
21
+ }
22
+ var SheetOverlay = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
23
+ DialogPrimitive.Overlay,
24
+ {
25
+ ref,
26
+ "data-slot": "sheet-overlay",
27
+ className: cn(
28
+ "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",
29
+ className
30
+ ),
31
+ ...props
32
+ }
33
+ ));
34
+ SheetOverlay.displayName = DialogPrimitive.Overlay.displayName;
35
+ var sheetVariants = cva(
36
+ "fixed z-50 flex flex-col gap-[var(--space-chrome-gap)] bg-background px-[var(--sheet-pad-x)] py-[var(--sheet-pad-y)] shadow-lg transition ease-in-out data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:animate-in data-[state=open]:duration-500",
37
+ {
38
+ variants: {
39
+ side: {
40
+ right: "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-md",
41
+ left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-md",
42
+ top: "inset-x-0 top-0 h-auto border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
43
+ bottom: "inset-x-0 bottom-0 h-auto border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom"
44
+ }
45
+ },
46
+ defaultVariants: { side: "right" }
47
+ }
48
+ );
49
+ var SheetContent = React.forwardRef(
50
+ ({ side = "right", className, children, showCloseButton = true, width, style, ...props }, ref) => {
51
+ const horizontal = side === "left" || side === "right";
52
+ const widthSet = width != null && horizontal;
53
+ const mergedStyle = widthSet ? { ...style, ["--sheet-width"]: toCssLength(width) } : style;
54
+ return /* @__PURE__ */ jsxs(SheetPortal, { children: [
55
+ /* @__PURE__ */ jsx(SheetOverlay, {}),
56
+ /* @__PURE__ */ jsxs(
57
+ DialogPrimitive.Content,
58
+ {
59
+ ref,
60
+ "data-slot": "sheet-content",
61
+ style: mergedStyle,
62
+ className: cn(
63
+ sheetVariants({ side }),
64
+ // `width` caps at the viewport: full-width panel on a small screen, capped on a large one.
65
+ widthSet && "w-[min(var(--sheet-width),100%)] max-w-none sm:max-w-none",
66
+ className
67
+ ),
68
+ ...props,
69
+ children: [
70
+ children,
71
+ showCloseButton ? /* @__PURE__ */ jsxs(
72
+ DialogPrimitive.Close,
73
+ {
74
+ "data-slot": "sheet-close",
75
+ className: "ring-offset-background focus:ring-ring absolute end-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",
76
+ children: [
77
+ /* @__PURE__ */ jsx(X, { className: "size-4", "aria-hidden": "true" }),
78
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
79
+ ]
80
+ }
81
+ ) : null
82
+ ]
83
+ }
84
+ )
85
+ ] });
86
+ }
87
+ );
88
+ SheetContent.displayName = DialogPrimitive.Content.displayName;
89
+ var SheetHeader = ({
90
+ className,
91
+ title,
92
+ subtitle,
93
+ extra,
94
+ tone = "default",
95
+ children,
96
+ ...props
97
+ }) => {
98
+ return /* @__PURE__ */ jsx(
99
+ "div",
100
+ {
101
+ "data-slot": "sheet-header",
102
+ "data-tone": tone,
103
+ className: cn(
104
+ "border-border -mx-[var(--sheet-pad-x)] -mt-[var(--sheet-pad-y)] flex flex-col gap-1.5 border-b px-[var(--sheet-pad-x)] py-[var(--sheet-pad-y)]",
105
+ overlayHeaderToneClass[tone],
106
+ className
107
+ ),
108
+ ...props,
109
+ children: children ?? // `pe-8` reserves room for the absolute close button (end-4) so title/extra never sit under it.
110
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-3 pe-8", children: [
111
+ /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-col gap-1", children: [
112
+ title != null && /* @__PURE__ */ jsx(SheetTitle, { children: title }),
113
+ subtitle != null && /* @__PURE__ */ jsx(SheetDescription, { children: subtitle })
114
+ ] }),
115
+ extra != null && /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center gap-2 whitespace-nowrap", children: extra })
116
+ ] })
117
+ }
118
+ );
119
+ };
120
+ var SheetBody = ({ className, ...props }) => (
121
+ // Scrollable region between a fixed header and a pinned footer (rule #41). Full-bleed horizontally
122
+ // (`-mx-6 px-6`) so content aligns to the sheet edge while the 3px focus ring of a full-width
123
+ // control keeps 24px of room and never clips against the scroll container's computed
124
+ // `overflow-x`. `py-1`/`scroll-py-1` keep a focused control's ring visible at the scroll edges.
125
+ // Use this instead of a hand-rolled `<div className="overflow-y-auto">` (which clips rings).
126
+ /* @__PURE__ */ jsx(
127
+ "div",
128
+ {
129
+ "data-slot": "sheet-body",
130
+ className: cn(
131
+ "-mx-[var(--sheet-pad-x)] min-h-0 flex-1 scroll-py-1 overflow-y-auto px-[var(--sheet-pad-x)] py-1",
132
+ className
133
+ ),
134
+ ...props
135
+ }
136
+ )
137
+ );
138
+ var SheetFooter = ({ className, ...props }) => (
139
+ // Pinned action bar (Ant Design Drawer footer): sticks to the bottom, full-bleed top border, actions
140
+ // RIGHT-aligned (primary rightmost). A destructive / clear / reset action goes far-LEFT — give it
141
+ // `className="mr-auto"`. See cardinal rule "Drawer & dialog footer layout".
142
+ // Owns its full vertical padding (symmetric 16/16) via `py-4`; `-mb-6` cancels SheetContent's
143
+ // `p-6` bottom so the footer doesn't inherit an asymmetric 16-top / 24-bottom rhythm.
144
+ /* @__PURE__ */ jsx(
145
+ "div",
146
+ {
147
+ "data-slot": "sheet-footer",
148
+ className: cn(
149
+ "border-border -mx-[var(--sheet-pad-x)] mt-auto -mb-[var(--sheet-pad-y)] flex flex-wrap items-center justify-end gap-2 border-t px-[var(--sheet-pad-x)] py-[var(--sheet-pad-y)]",
150
+ className
151
+ ),
152
+ ...props
153
+ }
154
+ )
155
+ );
156
+ var SheetTitle = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
157
+ DialogPrimitive.Title,
158
+ {
159
+ ref,
160
+ "data-slot": "sheet-title",
161
+ className: cn("text-foreground text-lg font-medium", className),
162
+ ...props
163
+ }
164
+ ));
165
+ SheetTitle.displayName = DialogPrimitive.Title.displayName;
166
+ var SheetDescription = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
167
+ DialogPrimitive.Description,
168
+ {
169
+ ref,
170
+ "data-slot": "sheet-description",
171
+ className: cn("text-muted-foreground text-sm", className),
172
+ ...props
173
+ }
174
+ ));
175
+ SheetDescription.displayName = DialogPrimitive.Description.displayName;
176
+
177
+ export { Sheet, SheetBody, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger };
@@ -1,6 +1,6 @@
1
- import { Input } from './chunk-VOHTRR5X.js';
1
+ import { Input } from './chunk-BNXPDUO4.js';
2
+ import { useTranslation } from './chunk-H2TX3OPW.js';
2
3
  import { Label } from './chunk-7PWBC4BY.js';
3
- import { useTranslation } from './chunk-TXRYSMOD.js';
4
4
  import { useDebouncedValue } from './chunk-LFW37FGG.js';
5
5
  import { cn } from './chunk-U7N2A7A3.js';
6
6
  import * as React from 'react';
@@ -1,7 +1,7 @@
1
- import { humanError } from './chunk-FK5QEFVY.js';
1
+ import { humanError } from './chunk-GDHDJAVB.js';
2
2
  import { Flex } from './chunk-INIIF7F7.js';
3
3
  import { Button } from './chunk-M4PZNAMV.js';
4
- import { useTranslation } from './chunk-TXRYSMOD.js';
4
+ import { useTranslation } from './chunk-H2TX3OPW.js';
5
5
  import { cn } from './chunk-U7N2A7A3.js';
6
6
  import * as React from 'react';
7
7
  import { Info, CheckCircle2, TriangleAlert, AlertCircle, X, RefreshCw } from 'lucide-react';
@@ -1,5 +1,5 @@
1
- import { Input } from './chunk-VOHTRR5X.js';
2
- import { useTranslation } from './chunk-TXRYSMOD.js';
1
+ import { Input } from './chunk-BNXPDUO4.js';
2
+ import { useTranslation } from './chunk-H2TX3OPW.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,9 +1,9 @@
1
- export { B as BreadcrumbItem } from '../../navigation.prop-BKlxd-j7.js';
2
- export { c as FlexProp, P as PageContainerProp, P as PageContainerProps } from '../../layout.prop-B1yQPUNZ.js';
3
- export { F as Flex, P as PageContainer } from '../../flex-DXtIALBh.js';
4
- export { C as ColumnDef, D as DataTable, a as Density, b as Descriptions, E as EmptyState } from '../../data-table-B_q7j992.js';
1
+ export { B as BreadcrumbItem } from '../../navigation.prop-CXDaVNaR.js';
2
+ export { c as FlexProp, P as PageContainerProp, P as PageContainerProps } from '../../layout.prop-ChLFNGJ6.js';
3
+ export { F as Flex, P as PageContainer } from '../../flex-88Ps6YCv.js';
4
+ export { C as ColumnDef, D as DataTable, a as Density, b as Descriptions, E as EmptyState } from '../../data-table-DO-gU4wJ.js';
5
5
  export { Badge } from '../data-display/badge.js';
6
- export { F as Field, a as FormField, S as SearchInput } from '../../search-input-BR4nAWiT.js';
6
+ export { F as Field, a as FormField, S as SearchInput } from '../../search-input-BPtjUAa1.js';
7
7
  export { a as SkeletonDetail, c as SkeletonRows, d as SkeletonStat, e as SkeletonTable } from '../../skeleton-cj9kh5wo.js';
8
8
  export { Alert, AlertActions, AlertContent, AlertDescription, AlertQueryError, AlertTitle } from '../feedback/alert.js';
9
9
  export { Upload, useUploadDraft } from '../data-entry/upload.js';
@@ -13,34 +13,33 @@ export { Transfer } from '../data-entry/transfer.js';
13
13
  export { Tabs, TabsContent, TabsList, TabsTrigger } from '../navigation/tabs.js';
14
14
  export { Pagination } from '../navigation/pagination.js';
15
15
  export { Steps } from '../navigation/steps.js';
16
- export { T as Toolbar, a as ToolbarGroup } from '../../filter-bar-B07JSxME.js';
16
+ export { T as Toolbar, a as ToolbarGroup } from '../../filter-bar-tEwfKthz.js';
17
17
  export { AlertDialog, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from '../feedback/dialog.js';
18
18
  export { Toaster } from '../feedback/sonner.js';
19
- export { L as LegacyToastOptions, t as toast, u as useToast } from '../../use-toast-Dsw3yE2S.js';
19
+ export { toast } from 'sonner';
20
20
  export { useDebouncedValue, useTimeoutFlag } from '../../lib/hooks.js';
21
- export { A as collectUploadCommitActions, B as createUploadItem } from '../../data-entry.prop-6J0o45se.js';
21
+ export { B as collectUploadCommitActions, E as createUploadItem } from '../../data-entry.prop-BGxD81Lf.js';
22
22
  export { j as formatDate } from '../../format-date-ByyZoqI5.js';
23
- import '../../shared.prop-BsNSXeqD.js';
23
+ import '../../shared.prop-BvMSLFJ6.js';
24
24
  import 'react';
25
25
  import '../../content.prop-DrV_zDy-.js';
26
26
  import '../../layout.prop-CXvl2rVR.js';
27
27
  import 'react/jsx-runtime';
28
- import '../../data-display.prop-Cf2p9QC4.js';
29
- import '../../interaction.prop-DSFizzP6.js';
30
- import '../../data.prop-DMYMNl6L.js';
28
+ import '../../data-display.prop-BOtnzI17.js';
29
+ import '../../interaction.prop-R77MnAMZ.js';
30
+ import '../../data.prop-D4uDw_SW.js';
31
31
  import 'class-variance-authority/types';
32
32
  import 'class-variance-authority';
33
- import '../../feedback.prop-Nc9Aa8SV.js';
33
+ import '../../feedback.prop-CtrL24E1.js';
34
34
  import '@radix-ui/react-checkbox';
35
35
  import '@radix-ui/react-radio-group';
36
36
  import '@radix-ui/react-slider';
37
37
  import '@radix-ui/react-switch';
38
38
  import 'react-day-picker';
39
39
  import '@radix-ui/react-tabs';
40
- import '../../navigation.prop-Dumy196X.js';
40
+ import '../../navigation.prop-Cc_Iu87S.js';
41
41
  import '@radix-ui/react-dialog';
42
42
  import '@radix-ui/react-alert-dialog';
43
- import 'sonner';
44
43
  import 'date-fns';
45
44
  import '../../types-mvzYGrma.js';
46
45
 
@@ -1,47 +1,49 @@
1
1
  import '../../chunk-GJXOBDER.js';
2
- export { Toolbar, ToolbarGroup } from '../../chunk-7HF56YHC.js';
3
- export { Steps } from '../../chunk-FOANNF6Z.js';
2
+ export { Toolbar, ToolbarGroup } from '../../chunk-WIRQNCCP.js';
3
+ export { Steps } from '../../chunk-QD3YG56T.js';
4
4
  import '../../chunk-B73NA66T.js';
5
5
  import '../../chunk-WGWI7EGL.js';
6
- export { Pagination } from '../../chunk-6WSWK7TU.js';
6
+ export { Pagination } from '../../chunk-572FHZ3M.js';
7
7
  export { Tabs, TabsContent, TabsList, TabsTrigger } from '../../chunk-V3N266PT.js';
8
- export { PageContainer } from '../../chunk-ZM4SMKEI.js';
8
+ export { PageContainer } from '../../chunk-DEUHS5A2.js';
9
9
  import '../../chunk-XK3M3VRR.js';
10
10
  import '../../chunk-W4REF4TD.js';
11
11
  import '../../chunk-HL3G4SVG.js';
12
- export { toast, useToast } from '../../chunk-B3WX53JQ.js';
13
- export { SkeletonDetail, SkeletonRows, SkeletonStat, SkeletonTable } from '../../chunk-COD66MFF.js';
12
+ export { sonnerToast as toast } from '../../chunk-ES4Q3KGL.js';
13
+ export { SkeletonDetail, SkeletonRows, SkeletonStat, SkeletonTable } from '../../chunk-2BR7KFCP.js';
14
14
  export { Toaster } from '../../chunk-TO7URV7U.js';
15
15
  import '../../chunk-32WO3YLB.js';
16
- export { Alert, AlertActions, AlertContent, AlertDescription, AlertQueryError, AlertTitle } from '../../chunk-2JCSS6B4.js';
17
- export { Transfer } from '../../chunk-JSQOCVM6.js';
18
- export { TreeSelect } from '../../chunk-PO5ISUFA.js';
19
- export { Upload, collectUploadCommitActions, createUploadItem, useUploadDraft } from '../../chunk-MXEVP5S2.js';
20
- export { formatBytes, formatCurrency, humanError, shortId } from '../../chunk-FK5QEFVY.js';
21
- export { AlertDialog, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from '../../chunk-LCQFYL44.js';
16
+ export { Alert, AlertActions, AlertContent, AlertDescription, AlertQueryError, AlertTitle } from '../../chunk-YVZPAN2W.js';
17
+ export { Transfer } from '../../chunk-NVNDO3FI.js';
18
+ export { TreeSelect } from '../../chunk-IWAIIBSW.js';
19
+ export { Upload, collectUploadCommitActions, createUploadItem, useUploadDraft } from '../../chunk-VNQ2NW22.js';
20
+ export { formatBytes, formatCurrency, humanError, shortId } from '../../chunk-GDHDJAVB.js';
21
+ export { AlertDialog, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from '../../chunk-WNOX32KG.js';
22
+ import '../../chunk-VU4GFGDG.js';
22
23
  import '../../chunk-CRERCLIZ.js';
23
24
  import '../../chunk-LMKUKCTN.js';
24
- export { SearchInput } from '../../chunk-BCBK4FLV.js';
25
- import '../../chunk-2TYRT5XH.js';
26
- export { Cascader } from '../../chunk-FK2JDABO.js';
25
+ export { SearchInput } from '../../chunk-XZXE5KVV.js';
26
+ import '../../chunk-RX2F2U6D.js';
27
+ export { Cascader } from '../../chunk-55S5N667.js';
27
28
  import '../../chunk-SMLKNECP.js';
28
- import '../../chunk-HTEL5DQI.js';
29
- import '../../chunk-VOHTRR5X.js';
30
- export { DataTable, Descriptions } from '../../chunk-ASMTSQWA.js';
29
+ import '../../chunk-3R3QVJCB.js';
30
+ import '../../chunk-BNXPDUO4.js';
31
+ export { DataTable, Descriptions } from '../../chunk-IYLJQVKV.js';
31
32
  import '../../chunk-DV52WNXO.js';
32
33
  export { EmptyState } from '../../chunk-YD7V2HGZ.js';
33
34
  export { Flex } from '../../chunk-INIIF7F7.js';
34
35
  import '../../chunk-BE6GJGKJ.js';
35
36
  export { Field } from '../../chunk-44YRPSZ7.js';
36
37
  import '../../chunk-M4PZNAMV.js';
37
- export { Badge } from '../../chunk-UDEPO3UF.js';
38
+ export { Badge } from '../../chunk-IZGLEPGW.js';
38
39
  import '../../chunk-DY5C44UP.js';
39
40
  import '../../chunk-3KPEZ5CF.js';
40
- import '../../chunk-4MMIMZMK.js';
41
- import '../../chunk-IBK5D2Q6.js';
42
- export { FormField } from '../../chunk-QSGW3ZWK.js';
41
+ import '../../chunk-IJ5ALJGA.js';
42
+ import '../../chunk-B4K4BXEF.js';
43
+ import '../../chunk-H2TX3OPW.js';
44
+ export { formatDate } from '../../chunk-JEIUEOTJ.js';
45
+ export { FormField } from '../../chunk-76S3TQFH.js';
46
+ import '../../chunk-C3PKEV6S.js';
43
47
  import '../../chunk-7PWBC4BY.js';
44
- import '../../chunk-TXRYSMOD.js';
45
- export { formatDate } from '../../chunk-3ELRYXJK.js';
46
48
  export { useDebouncedValue, useTimeoutFlag } from '../../chunk-LFW37FGG.js';
47
49
  import '../../chunk-U7N2A7A3.js';
@@ -2,7 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as class_variance_authority_types from 'class-variance-authority/types';
3
3
  import * as React from 'react';
4
4
  import { VariantProps } from 'class-variance-authority';
5
- import { T as ToneProp } from '../../interaction.prop-DSFizzP6.js';
5
+ import { T as ToneProp } from '../../interaction.prop-R77MnAMZ.js';
6
6
 
7
7
  type BadgeVariant = "default" | "secondary" | "outline";
8
8
  type BadgeTone = ToneProp;
@@ -1,5 +1,5 @@
1
- export { Badge } from '../../chunk-UDEPO3UF.js';
2
- import '../../chunk-IBK5D2Q6.js';
3
- import '../../chunk-TXRYSMOD.js';
4
- import '../../chunk-3ELRYXJK.js';
1
+ export { Badge } from '../../chunk-IZGLEPGW.js';
2
+ import '../../chunk-B4K4BXEF.js';
3
+ import '../../chunk-H2TX3OPW.js';
4
+ import '../../chunk-JEIUEOTJ.js';
5
5
  import '../../chunk-U7N2A7A3.js';
@@ -6,6 +6,10 @@ type CarouselApi = UseEmblaReturn[1];
6
6
  type CarouselContextValue = {
7
7
  canScrollPrev: boolean;
8
8
  canScrollNext: boolean;
9
+ /** Index of the currently-selected snap (drives the active dot + value-at-rest). */
10
+ selectedIndex: number;
11
+ /** One entry per scroll snap — `CarouselDots` renders one dot per item. */
12
+ scrollSnaps: number[];
9
13
  api: CarouselApi | null;
10
14
  scrollPrev: () => void;
11
15
  scrollNext: () => void;
@@ -21,5 +25,12 @@ declare const CarouselContent: React.ForwardRefExoticComponent<Omit<React.Detail
21
25
  declare const CarouselItem: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
22
26
  declare const CarouselPrevious: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
23
27
  declare const CarouselNext: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
28
+ /**
29
+ * Dot indicators — one round dot per scroll snap, the active one widened + filled. Reads the Embla
30
+ * api from context (no `setApi` plumbing needed); each dot is a real `<button>` with an i18n
31
+ * accessible name and `aria-current` on the active slide, calling `scrollTo(i)`. Drop it inside
32
+ * `<Carousel>` after the track: `<CarouselContent/> … <CarouselDots/>`.
33
+ */
34
+ declare const CarouselDots: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
24
35
 
25
- export { Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, useCarousel };
36
+ export { Carousel, type CarouselApi, CarouselContent, CarouselDots, CarouselItem, CarouselNext, CarouselPrevious, useCarousel };
@@ -1,4 +1,4 @@
1
- export { Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, useCarousel } from '../../chunk-XVD5SLDL.js';
2
- import '../../chunk-TXRYSMOD.js';
3
- import '../../chunk-3ELRYXJK.js';
1
+ export { Carousel, CarouselContent, CarouselDots, CarouselItem, CarouselNext, CarouselPrevious, useCarousel } from '../../chunk-FJBVDJGL.js';
2
+ import '../../chunk-H2TX3OPW.js';
3
+ import '../../chunk-JEIUEOTJ.js';
4
4
  import '../../chunk-U7N2A7A3.js';