@rinzai/zen 0.10.3 → 0.13.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 (299) hide show
  1. package/README.md +38 -8
  2. package/dist/accordion/index.d.ts +41 -0
  3. package/dist/accordion/index.d.ts.map +1 -0
  4. package/dist/accordion/index.js +81 -0
  5. package/dist/animated-number/index.d.ts +3 -2
  6. package/dist/animated-number/index.d.ts.map +1 -1
  7. package/dist/animated-number/index.js +40 -38
  8. package/dist/avatar/index.d.ts +8 -3
  9. package/dist/avatar/index.d.ts.map +1 -1
  10. package/dist/avatar/index.js +29 -21
  11. package/dist/backdrop/index.d.ts +4 -4
  12. package/dist/backdrop/index.d.ts.map +1 -1
  13. package/dist/backdrop/index.js +41 -39
  14. package/dist/badge/index.d.ts +4 -2
  15. package/dist/badge/index.d.ts.map +1 -1
  16. package/dist/badge/index.js +20 -11
  17. package/dist/base.css +4 -0
  18. package/dist/breadcrumbs/index.d.ts +1 -1
  19. package/dist/breadcrumbs/index.d.ts.map +1 -1
  20. package/dist/breadcrumbs/index.js +25 -24
  21. package/dist/button/index.d.ts +3 -3
  22. package/dist/button/index.d.ts.map +1 -1
  23. package/dist/button/index.js +16 -11
  24. package/dist/button-group/index.d.ts +13 -0
  25. package/dist/button-group/index.d.ts.map +1 -0
  26. package/dist/button-group/index.js +14 -0
  27. package/dist/calendar/index.d.ts +15 -8
  28. package/dist/calendar/index.d.ts.map +1 -1
  29. package/dist/calendar/index.js +97 -91
  30. package/dist/calendar-heatmap/index.d.ts +7 -5
  31. package/dist/calendar-heatmap/index.d.ts.map +1 -1
  32. package/dist/calendar-heatmap/index.js +32 -30
  33. package/dist/canvas/geometry.d.ts +51 -0
  34. package/dist/canvas/geometry.d.ts.map +1 -0
  35. package/dist/canvas/geometry.js +90 -0
  36. package/dist/canvas/index.d.ts +59 -0
  37. package/dist/canvas/index.d.ts.map +1 -0
  38. package/dist/canvas/index.js +305 -0
  39. package/dist/carousel/index.d.ts +27 -0
  40. package/dist/carousel/index.d.ts.map +1 -0
  41. package/dist/carousel/index.js +162 -0
  42. package/dist/chart/index.d.ts +5 -4
  43. package/dist/chart/index.d.ts.map +1 -1
  44. package/dist/chart/index.js +137 -135
  45. package/dist/chart/palette.js +0 -1
  46. package/dist/checkbox/index.d.ts +3 -3
  47. package/dist/checkbox/index.d.ts.map +1 -1
  48. package/dist/checkbox/index.js +33 -30
  49. package/dist/chip/index.js +1 -1
  50. package/dist/code-block/index.d.ts.map +1 -1
  51. package/dist/code-block/index.js +27 -32
  52. package/dist/code-input/index.d.ts.map +1 -1
  53. package/dist/code-input/index.js +30 -24
  54. package/dist/collapse/index.d.ts +4 -3
  55. package/dist/collapse/index.d.ts.map +1 -1
  56. package/dist/collapse/index.js +42 -39
  57. package/dist/color-picker/index.d.ts +43 -0
  58. package/dist/color-picker/index.d.ts.map +1 -0
  59. package/dist/color-picker/index.js +221 -0
  60. package/dist/combobox/index.d.ts +14 -6
  61. package/dist/combobox/index.d.ts.map +1 -1
  62. package/dist/combobox/index.js +151 -139
  63. package/dist/command-palette/index.d.ts +4 -3
  64. package/dist/command-palette/index.d.ts.map +1 -1
  65. package/dist/command-palette/index.js +60 -57
  66. package/dist/confirm-dialog/index.d.ts +6 -7
  67. package/dist/confirm-dialog/index.d.ts.map +1 -1
  68. package/dist/confirm-dialog/index.js +20 -16
  69. package/dist/date-picker/index.d.ts +23 -14
  70. package/dist/date-picker/index.d.ts.map +1 -1
  71. package/dist/date-picker/index.js +109 -93
  72. package/dist/dialog/index.d.ts +3 -4
  73. package/dist/dialog/index.d.ts.map +1 -1
  74. package/dist/dialog/index.js +58 -55
  75. package/dist/disclosure/index.d.ts +8 -0
  76. package/dist/disclosure/index.d.ts.map +1 -1
  77. package/dist/disclosure/index.js +31 -32
  78. package/dist/editable-cell/index.d.ts +4 -5
  79. package/dist/editable-cell/index.d.ts.map +1 -1
  80. package/dist/editable-cell/index.js +23 -22
  81. package/dist/field/index.d.ts +8 -8
  82. package/dist/field/index.d.ts.map +1 -1
  83. package/dist/field/index.js +20 -18
  84. package/dist/filter-bar/index.d.ts +2 -2
  85. package/dist/filter-bar/index.d.ts.map +1 -1
  86. package/dist/filter-bar/index.js +38 -36
  87. package/dist/header/index.d.ts +1 -1
  88. package/dist/header/index.d.ts.map +1 -1
  89. package/dist/header/index.js +13 -11
  90. package/dist/hover-card/index.d.ts +32 -0
  91. package/dist/hover-card/index.d.ts.map +1 -0
  92. package/dist/hover-card/index.js +84 -0
  93. package/dist/icon-picker/index.d.ts +16 -5
  94. package/dist/icon-picker/index.d.ts.map +1 -1
  95. package/dist/icon-picker/index.js +42 -47
  96. package/dist/icons/micro/plus.d.ts +3 -0
  97. package/dist/icons/micro/plus.d.ts.map +1 -0
  98. package/dist/icons/micro/plus.js +17 -0
  99. package/dist/index.d.ts +41 -24
  100. package/dist/index.d.ts.map +1 -1
  101. package/dist/input/index.d.ts +5 -1
  102. package/dist/input/index.d.ts.map +1 -1
  103. package/dist/input/index.js +10 -10
  104. package/dist/input-group/index.d.ts +4 -1
  105. package/dist/input-group/index.d.ts.map +1 -1
  106. package/dist/input-group/index.js +17 -17
  107. package/dist/keypad/index.d.ts +9 -7
  108. package/dist/keypad/index.d.ts.map +1 -1
  109. package/dist/keypad/index.js +22 -19
  110. package/dist/lib.js +112 -93
  111. package/dist/load-more/index.d.ts +4 -2
  112. package/dist/load-more/index.d.ts.map +1 -1
  113. package/dist/load-more/index.js +26 -23
  114. package/dist/locale-provider/index.d.ts +23 -0
  115. package/dist/locale-provider/index.d.ts.map +1 -0
  116. package/dist/locale-provider/index.js +35 -0
  117. package/dist/menu/index.d.ts +62 -9
  118. package/dist/menu/index.d.ts.map +1 -1
  119. package/dist/menu/index.js +371 -128
  120. package/dist/meter/index.d.ts +2 -2
  121. package/dist/meter/index.d.ts.map +1 -1
  122. package/dist/meter/index.js +4 -4
  123. package/dist/money-input/index.d.ts +20 -10
  124. package/dist/money-input/index.d.ts.map +1 -1
  125. package/dist/money-input/index.js +199 -190
  126. package/dist/month-picker/index.d.ts +17 -10
  127. package/dist/month-picker/index.d.ts.map +1 -1
  128. package/dist/month-picker/index.js +97 -86
  129. package/dist/navigation-menu/index.d.ts +42 -0
  130. package/dist/navigation-menu/index.d.ts.map +1 -0
  131. package/dist/navigation-menu/index.js +144 -0
  132. package/dist/number-field/index.d.ts +34 -0
  133. package/dist/number-field/index.d.ts.map +1 -0
  134. package/dist/number-field/index.js +119 -0
  135. package/dist/page-header/index.d.ts +4 -3
  136. package/dist/page-header/index.d.ts.map +1 -1
  137. package/dist/page-header/index.js +2 -1
  138. package/dist/pagination/index.d.ts +1 -1
  139. package/dist/pagination/index.d.ts.map +1 -1
  140. package/dist/pagination/index.js +35 -33
  141. package/dist/progress-ring/index.d.ts +4 -3
  142. package/dist/progress-ring/index.d.ts.map +1 -1
  143. package/dist/progress-ring/index.js +11 -10
  144. package/dist/radio-cards/index.d.ts +9 -5
  145. package/dist/radio-cards/index.d.ts.map +1 -1
  146. package/dist/radio-cards/index.js +26 -24
  147. package/dist/radio-group/index.d.ts +9 -8
  148. package/dist/radio-group/index.d.ts.map +1 -1
  149. package/dist/radio-group/index.js +35 -34
  150. package/dist/range-slider/index.d.ts +10 -4
  151. package/dist/range-slider/index.d.ts.map +1 -1
  152. package/dist/range-slider/index.js +43 -31
  153. package/dist/repeat-picker/index.d.ts +13 -6
  154. package/dist/repeat-picker/index.d.ts.map +1 -1
  155. package/dist/repeat-picker/index.js +74 -62
  156. package/dist/resizable/index.d.ts +29 -0
  157. package/dist/resizable/index.d.ts.map +1 -0
  158. package/dist/resizable/index.js +135 -0
  159. package/dist/segmented/index.d.ts +8 -5
  160. package/dist/segmented/index.d.ts.map +1 -1
  161. package/dist/segmented/index.js +36 -34
  162. package/dist/select/index.d.ts +9 -3
  163. package/dist/select/index.d.ts.map +1 -1
  164. package/dist/select/index.js +94 -91
  165. package/dist/separator/index.d.ts +14 -0
  166. package/dist/separator/index.d.ts.map +1 -0
  167. package/dist/separator/index.js +15 -0
  168. package/dist/side-nav/index.js +1 -1
  169. package/dist/skeleton/index.d.ts +4 -4
  170. package/dist/skeleton/index.d.ts.map +1 -1
  171. package/dist/skeleton/index.js +4 -3
  172. package/dist/slider/index.d.ts +6 -3
  173. package/dist/slider/index.d.ts.map +1 -1
  174. package/dist/slider/index.js +29 -23
  175. package/dist/sortable/index.d.ts +10 -20
  176. package/dist/sortable/index.d.ts.map +1 -1
  177. package/dist/sortable/index.js +72 -134
  178. package/dist/sortable/shared.d.ts +56 -0
  179. package/dist/sortable/shared.d.ts.map +1 -0
  180. package/dist/sortable/shared.js +104 -0
  181. package/dist/sortable/tree-model.d.ts +46 -0
  182. package/dist/sortable/tree-model.d.ts.map +1 -0
  183. package/dist/sortable/tree-model.js +87 -0
  184. package/dist/sortable/tree.d.ts +31 -0
  185. package/dist/sortable/tree.d.ts.map +1 -0
  186. package/dist/sortable/tree.js +150 -0
  187. package/dist/sparkline/index.d.ts +1 -1
  188. package/dist/sparkline/index.d.ts.map +1 -1
  189. package/dist/sparkline/index.js +26 -25
  190. package/dist/spinner/index.d.ts +4 -3
  191. package/dist/spinner/index.d.ts.map +1 -1
  192. package/dist/spinner/index.js +2 -1
  193. package/dist/status-pill/index.d.ts.map +1 -1
  194. package/dist/status-pill/index.js +1 -1
  195. package/dist/stepper/index.d.ts +1 -1
  196. package/dist/stepper/index.d.ts.map +1 -1
  197. package/dist/stepper/index.js +31 -30
  198. package/dist/tab-bar/index.js +1 -1
  199. package/dist/table/index.d.ts +5 -5
  200. package/dist/table/index.d.ts.map +1 -1
  201. package/dist/table/index.js +66 -64
  202. package/dist/table/selection.d.ts +2 -2
  203. package/dist/table/selection.d.ts.map +1 -1
  204. package/dist/table/selection.js +41 -38
  205. package/dist/table/swipe.d.ts +1 -1
  206. package/dist/table/swipe.d.ts.map +1 -1
  207. package/dist/table/swipe.js +1 -1
  208. package/dist/table-of-contents/index.d.ts +4 -2
  209. package/dist/table-of-contents/index.d.ts.map +1 -1
  210. package/dist/table-of-contents/index.js +27 -25
  211. package/dist/tabs/index.d.ts.map +1 -1
  212. package/dist/tabs/index.js +90 -88
  213. package/dist/tag-input/index.d.ts +3 -1
  214. package/dist/tag-input/index.d.ts.map +1 -1
  215. package/dist/tag-input/index.js +61 -52
  216. package/dist/textarea/index.js +4 -4
  217. package/dist/theme-toggle/index.d.ts +9 -8
  218. package/dist/theme-toggle/index.d.ts.map +1 -1
  219. package/dist/theme-toggle/index.js +30 -28
  220. package/dist/theme.css +90 -12
  221. package/dist/time-field/index.d.ts +31 -0
  222. package/dist/time-field/index.d.ts.map +1 -0
  223. package/dist/time-field/index.js +175 -0
  224. package/dist/timeline/index.js +1 -1
  225. package/dist/toast/index.d.ts +1 -1
  226. package/dist/toast/index.d.ts.map +1 -1
  227. package/dist/toast/index.js +127 -125
  228. package/dist/toggle/index.d.ts +2 -2
  229. package/dist/toggle/index.d.ts.map +1 -1
  230. package/dist/toggle/index.js +8 -6
  231. package/dist/toggle-group/index.d.ts +35 -0
  232. package/dist/toggle-group/index.d.ts.map +1 -0
  233. package/dist/toggle-group/index.js +53 -0
  234. package/dist/toolbar/index.d.ts +19 -0
  235. package/dist/toolbar/index.d.ts.map +1 -0
  236. package/dist/toolbar/index.js +36 -0
  237. package/dist/tooltip/index.d.ts.map +1 -1
  238. package/dist/tooltip/index.js +40 -74
  239. package/dist/tree/index.d.ts.map +1 -1
  240. package/dist/tree/index.js +105 -102
  241. package/dist/trend/index.d.ts +2 -2
  242. package/dist/trend/index.d.ts.map +1 -1
  243. package/dist/trend/index.js +20 -19
  244. package/dist/utils/color.d.ts +35 -0
  245. package/dist/utils/color.d.ts.map +1 -0
  246. package/dist/utils/color.js +65 -0
  247. package/dist/utils/cva.js +0 -1
  248. package/dist/utils/cx.js +0 -1
  249. package/dist/utils/date.d.ts +6 -0
  250. package/dist/utils/date.d.ts.map +1 -1
  251. package/dist/utils/date.js +1 -2
  252. package/dist/utils/direction.d.ts +7 -0
  253. package/dist/utils/direction.d.ts.map +1 -0
  254. package/dist/utils/direction.js +6 -0
  255. package/dist/utils/form-value.d.ts +15 -0
  256. package/dist/utils/form-value.d.ts.map +1 -0
  257. package/dist/utils/form-value.js +29 -0
  258. package/dist/utils/fx.js +0 -1
  259. package/dist/utils/merge.js +0 -1
  260. package/dist/utils/messages.d.ts +137 -0
  261. package/dist/utils/messages.d.ts.map +1 -0
  262. package/dist/utils/messages.js +133 -0
  263. package/dist/utils/money.js +0 -1
  264. package/dist/utils/month.js +0 -1
  265. package/dist/utils/motion.js +0 -1
  266. package/dist/utils/refs.d.ts +6 -0
  267. package/dist/utils/refs.d.ts.map +1 -0
  268. package/dist/utils/refs.js +13 -0
  269. package/dist/utils/repeat.d.ts +3 -1
  270. package/dist/utils/repeat.d.ts.map +1 -1
  271. package/dist/utils/repeat.js +28 -25
  272. package/dist/utils/roving.d.ts +17 -0
  273. package/dist/utils/roving.d.ts.map +1 -0
  274. package/dist/utils/roving.js +35 -0
  275. package/dist/utils/section-link.js +0 -1
  276. package/dist/utils/slot.d.ts.map +1 -1
  277. package/dist/utils/slot.js +7 -11
  278. package/dist/utils/status-icons.js +7 -7
  279. package/dist/utils/styles.d.ts +9 -2
  280. package/dist/utils/styles.d.ts.map +1 -1
  281. package/dist/utils/styles.js +6 -3
  282. package/dist/utils/theme-wave.d.ts.map +1 -1
  283. package/dist/utils/theme-wave.js +70 -70
  284. package/dist/utils/theme.d.ts.map +1 -1
  285. package/dist/utils/theme.js +56 -60
  286. package/dist/utils/useAnchoredPopup.d.ts +7 -4
  287. package/dist/utils/useAnchoredPopup.d.ts.map +1 -1
  288. package/dist/utils/useAnchoredPopup.js +18 -11
  289. package/dist/utils/useControllable.d.ts +9 -0
  290. package/dist/utils/useControllable.d.ts.map +1 -0
  291. package/dist/utils/useControllable.js +15 -0
  292. package/dist/utils/useCopyToClipboard.d.ts +13 -0
  293. package/dist/utils/useCopyToClipboard.d.ts.map +1 -0
  294. package/dist/utils/useCopyToClipboard.js +26 -0
  295. package/dist/utils/useHoverPopup.d.ts +39 -0
  296. package/dist/utils/useHoverPopup.d.ts.map +1 -0
  297. package/dist/utils/useHoverPopup.js +64 -0
  298. package/dist/zen.css +1 -1
  299. package/package.json +1 -1
@@ -1,64 +1,67 @@
1
1
  "use client";
2
2
  import { cx as e } from "../utils/cx.js";
3
3
  import { useGraphicsMode as t } from "../utils/graphics.js";
4
- import n from "../button/index.js";
5
- import r from "../icons/micro/x-mark.js";
6
- import { useToastHost as i } from "../toast/index.js";
7
- import { useSwipe as a } from "../utils/swipe.js";
8
- import { createContext as o, useContext as s, useEffect as c, useId as l, useRef as u } from "react";
9
- import { jsx as d, jsxs as f } from "react/jsx-runtime";
4
+ import { useMergedRefs as n } from "../utils/refs.js";
5
+ import { useMessages as r } from "../locale-provider/index.js";
6
+ import i from "../button/index.js";
7
+ import a from "../icons/micro/x-mark.js";
8
+ import { useToastHost as o } from "../toast/index.js";
9
+ import { useSwipe as s } from "../utils/swipe.js";
10
+ import { createContext as c, useContext as l, useEffect as u, useId as d, useRef as f } from "react";
11
+ import { jsx as p, jsxs as m } from "react/jsx-runtime";
10
12
  //#region packages/dialog/index.tsx
11
- var p = o(() => {});
12
- function m({ open: t, onOpenChange: n, title: i, description: a, children: o, dismissible: s = !0, initialFocus: c, size: m = "md", side: g, className: v, role: y, closeLabel: b = "Close" }) {
13
- let x = u(null), S = l(), C = l();
14
- return _(x, s && t ? g : void 0, () => n?.(!1)), h(x, t, c), /* @__PURE__ */ f("dialog", {
15
- ref: x,
16
- role: y,
17
- "aria-labelledby": S,
18
- "aria-describedby": a ? C : void 0,
19
- "data-side": g,
20
- className: e("zen__dialog glass glass-blur glow-edge text-card-foreground bg-card/90! overflow-visible p-0", !g && "m-auto max-h-[calc(100dvh-2rem)] max-w-[calc(100vw-2rem)] rounded-xl", !g && (m === "lg" ? "w-[60rem]" : "w-[28rem]"), g === "bottom" && "mx-auto mt-auto mb-0 max-h-[85dvh] w-full max-w-2xl rounded-t-2xl", (g === "left" || g === "right") && "my-0 h-dvh max-h-dvh w-[24rem] max-w-[calc(100vw-2.5rem)]", g === "right" && "mr-0 ml-auto rounded-l-2xl", g === "left" && "mr-auto ml-0 rounded-r-2xl", "backdrop:bg-[color:var(--backdrop-scrim,oklch(0_0_0/0.5))] backdrop:backdrop-blur-sm pointer-coarse:backdrop:backdrop-blur-none", v),
13
+ var h = c(() => {});
14
+ function g({ open: t, onOpenChange: i, title: o, description: s, children: c, dismissible: l = !0, initialFocus: u, size: g = "md", side: v, className: b, role: x, closeLabel: S, ref: C, ...w }) {
15
+ let T = r(), E = S ?? T.close, D = f(null), O = n(D, C), k = d(), A = d();
16
+ return y(D, l && t ? v : void 0, () => i?.(!1)), _(D, t, u), /* @__PURE__ */ m("dialog", {
17
+ ...w,
18
+ ref: O,
19
+ role: x,
20
+ "aria-labelledby": k,
21
+ "aria-describedby": s ? A : void 0,
22
+ "data-side": v,
23
+ className: e("zen__dialog glass glass-blur glow-edge text-card-foreground bg-card/90! overflow-visible p-0", !v && "m-auto max-h-[calc(100dvh-2rem)] max-w-[calc(100vw-2rem)] rounded-xl", !v && (g === "lg" ? "w-[60rem]" : "w-[28rem]"), v === "bottom" && "mx-auto mt-auto mb-0 max-h-[85dvh] w-full max-w-2xl rounded-t-2xl", (v === "left" || v === "right") && "my-0 h-dvh max-h-dvh w-[24rem] max-w-[calc(100vw-2.5rem)]", v === "right" && "mr-0 ml-auto rounded-l-2xl", v === "left" && "mr-auto ml-0 rounded-r-2xl", "backdrop:bg-[color:var(--backdrop-scrim,oklch(0_0_0/0.5))] backdrop:backdrop-blur-sm pointer-coarse:backdrop:backdrop-blur-none", b),
21
24
  onCancel: (e) => {
22
- e.preventDefault(), s && n?.(!1);
25
+ e.preventDefault(), l && i?.(!1);
23
26
  },
24
27
  onClick: (e) => {
25
- e.target === e.currentTarget && s && n?.(!1);
28
+ e.target === e.currentTarget && l && i?.(!1);
26
29
  },
27
- children: [/* @__PURE__ */ f("div", {
28
- className: e("flex flex-col gap-4 overflow-x-hidden overflow-y-auto p-6", g ? g === "bottom" ? "max-h-[85dvh] pt-3" : "h-full" : "max-h-[calc(100dvh-2rem)]"),
30
+ children: [/* @__PURE__ */ m("div", {
31
+ className: e("flex flex-col gap-4 overflow-x-hidden overflow-y-auto p-6", v ? v === "bottom" ? "max-h-[85dvh] pt-3" : "h-full" : "max-h-[calc(100dvh-2rem)]"),
29
32
  children: [
30
- g === "bottom" && /* @__PURE__ */ d("div", {
33
+ v === "bottom" && /* @__PURE__ */ p("div", {
31
34
  "aria-hidden": !0,
32
35
  className: "bg-tint/20 mx-auto h-1 w-10 shrink-0 rounded-full"
33
36
  }),
34
- /* @__PURE__ */ f("div", {
35
- className: e("flex flex-col gap-2", s && "pe-8"),
36
- children: [/* @__PURE__ */ d("h2", {
37
- id: S,
37
+ /* @__PURE__ */ m("div", {
38
+ className: e("flex flex-col gap-2", l && "pe-8"),
39
+ children: [/* @__PURE__ */ p("h2", {
40
+ id: k,
38
41
  className: "text-lg font-semibold tracking-tight text-balance",
39
- children: i
40
- }), a && /* @__PURE__ */ d("p", {
41
- id: C,
42
+ children: o
43
+ }), s && /* @__PURE__ */ p("p", {
44
+ id: A,
42
45
  className: "text-muted-foreground mt-0! text-sm leading-5",
43
- children: a
46
+ children: s
44
47
  })]
45
48
  }),
46
- /* @__PURE__ */ d(p.Provider, {
47
- value: () => n?.(!1),
48
- children: o
49
+ /* @__PURE__ */ p(h.Provider, {
50
+ value: () => i?.(!1),
51
+ children: c
49
52
  })
50
53
  ]
51
- }), s && /* @__PURE__ */ d("button", {
54
+ }), l && /* @__PURE__ */ p("button", {
52
55
  type: "button",
53
- "aria-label": b,
54
- onClick: () => n?.(!1),
55
- className: e("text-muted-foreground hover:bg-tint/[0.07] hover:text-foreground focus-visible:ring-ring/50 absolute end-4 grid size-8 cursor-pointer place-items-center rounded-lg outline-hidden transition-colors focus-visible:ring-2", g === "bottom" ? "top-7.5" : "top-5.5"),
56
- children: /* @__PURE__ */ d(r, { className: "size-4" })
56
+ "aria-label": E,
57
+ onClick: () => i?.(!1),
58
+ className: e("text-muted-foreground hover:bg-tint/[0.07] hover:text-foreground absolute end-4 grid size-8 cursor-pointer place-items-center rounded-lg outline-hidden transition-colors focus-ring", v === "bottom" ? "top-7.5" : "top-5.5"),
59
+ children: /* @__PURE__ */ p(a, { className: "size-4" })
57
60
  })]
58
61
  });
59
62
  }
60
- function h(e, n, r) {
61
- t(), c(() => {
63
+ function _(e, n, r) {
64
+ t(), u(() => {
62
65
  let t = e.current;
63
66
  if (t) {
64
67
  if (n && !t.open) {
@@ -76,42 +79,42 @@ function h(e, n, r) {
76
79
  e,
77
80
  n,
78
81
  r
79
- ]), i(e, n);
82
+ ]), o(e, n);
80
83
  }
81
- var g = .3;
82
- function _(e, t, n) {
83
- let r = t === "bottom" ? "y" : "x", i = t === "left" ? -1 : 1, o = () => r === "y" ? e.current.offsetHeight : e.current.offsetWidth, s = () => {
84
+ var v = .3;
85
+ function y(e, t, n) {
86
+ let r = t === "bottom" ? "y" : "x", i = t === "left" ? -1 : 1, a = () => r === "y" ? e.current.offsetHeight : e.current.offsetWidth, o = () => {
84
87
  e.current?.style.removeProperty("--zen-swipe"), e.current?.style.removeProperty("--zen-swipe-progress");
85
88
  };
86
- c(s, [e, t]), a(e, t ? {
89
+ u(o, [e, t]), s(e, t ? {
87
90
  axis: r,
88
91
  sign: i
89
92
  } : void 0, {
90
93
  move: (t) => {
91
94
  let n = t > 0 ? t : t / 6;
92
- e.current.style.setProperty("--zen-swipe", r === "y" ? `0 ${n}px` : `${n * i}px 0`), e.current.style.setProperty("--zen-swipe-progress", String(Math.max(0, Math.min(1, t / o()))));
95
+ e.current.style.setProperty("--zen-swipe", r === "y" ? `0 ${n}px` : `${n * i}px 0`), e.current.style.setProperty("--zen-swipe-progress", String(Math.max(0, Math.min(1, t / a()))));
93
96
  },
94
97
  release: (e, t) => {
95
- e > o() * g || e > 0 && t > .5 ? n() : s();
98
+ e > a() * v || e > 0 && t > .5 ? n() : o();
96
99
  },
97
- cancel: s,
98
- threshold: () => o() * g
100
+ cancel: o,
101
+ threshold: () => a() * v
99
102
  });
100
103
  }
101
- function v({ className: t, ...n }) {
102
- return /* @__PURE__ */ d("div", {
104
+ function b({ className: t, ...n }) {
105
+ return /* @__PURE__ */ p("div", {
103
106
  className: e("flex justify-end gap-2", t),
104
107
  ...n
105
108
  });
106
109
  }
107
- function y({ onClick: e, ...t }) {
108
- let r = s(p);
109
- return /* @__PURE__ */ d(n, {
110
+ function x({ onClick: e, ...t }) {
111
+ let n = l(h);
112
+ return /* @__PURE__ */ p(i, {
110
113
  ...t,
111
114
  onClick: (t) => {
112
- e?.(t), t.defaultPrevented || r();
115
+ e?.(t), t.defaultPrevented || n();
113
116
  }
114
117
  });
115
118
  }
116
119
  //#endregion
117
- export { y as DialogClose, v as DialogFooter, m as default, h as useModal };
120
+ export { x as DialogClose, b as DialogFooter, g as default, _ as useModal };
@@ -1,4 +1,11 @@
1
1
  import { ComponentProps, ReactNode } from 'react';
2
+ interface DisclosureContextValue {
3
+ open: boolean;
4
+ setOpen: (open: boolean) => void;
5
+ contentId: string;
6
+ }
7
+ /** The enclosing Disclosure's state, for building your own trigger or content. */
8
+ export declare function useDisclosure(part: string): DisclosureContextValue;
2
9
  /**
3
10
  * A section that a button shows and hides, e.g. "Past (3)" under a list. Put
4
11
  * a DisclosureTrigger and a DisclosureContent inside (it adds no element of its
@@ -22,4 +29,5 @@ export interface DisclosureProps {
22
29
  onOpenChange?: (open: boolean) => void;
23
30
  children?: ReactNode;
24
31
  }
32
+ export {};
25
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/disclosure/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAiB,SAAS,EAAkD,MAAM,OAAO,CAAC;AAgBjH;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,IAAI,EAAE,WAAmB,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,eAAe,+BAWxG;AAED,sHAAsH;AACtH,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,CAAC,QAAQ,CAAC,+BAwBpG;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,sCAuDxF;AAED,MAAM,WAAW,eAAe;IAC5B,8EAA8E;IAC9E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACxB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/disclosure/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAiB,SAAS,EAAkD,MAAM,OAAO,CAAC;AAEjH,UAAU,sBAAsB;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;CACrB;AAID,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,0BAIzC;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAAE,IAAI,EAAE,WAAmB,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,eAAe,+BAMxG;AAED,sHAAsH;AACtH,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,CAAC,QAAQ,CAAC,+BAwBpG;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,sCAuDxF;AAED,MAAM,WAAW,eAAe;IAC5B,8EAA8E;IAC9E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACxB"}
@@ -1,60 +1,59 @@
1
1
  "use client";
2
2
  import { cx as e } from "../utils/cx.js";
3
- import { FieldChevron as t } from "../utils/field-chevron.js";
4
- import { createContext as n, useContext as r, useEffect as i, useId as a, useRef as o, useState as s } from "react";
5
- import { jsx as c, jsxs as l } from "react/jsx-runtime";
3
+ import { useControllable as t } from "../utils/useControllable.js";
4
+ import { FieldChevron as n } from "../utils/field-chevron.js";
5
+ import { createContext as r, useContext as i, useEffect as a, useId as o, useRef as s, useState as c } from "react";
6
+ import { jsx as l, jsxs as u } from "react/jsx-runtime";
6
7
  //#region packages/disclosure/index.tsx
7
- var u = n(null);
8
- function d(e) {
9
- let t = r(u);
8
+ var d = r(null);
9
+ function f(e) {
10
+ let t = i(d);
10
11
  if (!t) throw Error(`<${e}> must be inside <Disclosure>`);
11
12
  return t;
12
13
  }
13
- function f({ open: e, defaultOpen: t = !1, onOpenChange: n, children: r }) {
14
- let [i, o] = s(t), l = a(), d = e ?? i;
15
- return /* @__PURE__ */ c(u.Provider, {
14
+ function p({ open: e, defaultOpen: n = !1, onOpenChange: r, children: i }) {
15
+ let [a, s] = t(e, n, r), c = o();
16
+ return /* @__PURE__ */ l(d.Provider, {
16
17
  value: {
17
- open: d,
18
- setOpen: (t) => {
19
- e === void 0 && o(t), n?.(t);
20
- },
21
- contentId: l
18
+ open: a,
19
+ setOpen: s,
20
+ contentId: c
22
21
  },
23
- children: r
22
+ children: i
24
23
  });
25
24
  }
26
- function p({ className: n, onClick: r, children: i, ...a }) {
27
- let { open: o, setOpen: s, contentId: u } = d("DisclosureTrigger");
28
- return /* @__PURE__ */ l("button", {
25
+ function m({ className: t, onClick: r, children: i, ...a }) {
26
+ let { open: o, setOpen: s, contentId: c } = f("DisclosureTrigger");
27
+ return /* @__PURE__ */ u("button", {
29
28
  type: "button",
30
29
  "aria-expanded": o,
31
- "aria-controls": o ? u : void 0,
30
+ "aria-controls": o ? c : void 0,
32
31
  onClick: (e) => {
33
32
  r?.(e), e.defaultPrevented || s(!o);
34
33
  },
35
- className: e("zen__disclosure group text-muted-foreground flex w-fit cursor-pointer items-center gap-1.5 rounded-md text-sm font-medium outline-hidden", "hover:text-foreground aria-expanded:text-foreground transition-colors duration-200", "focus-visible:outline-ring/50 focus-visible:outline-2 focus-visible:outline-offset-4", n),
34
+ className: e("zen__disclosure group text-muted-foreground flex w-fit cursor-pointer items-center gap-1.5 rounded-md text-sm font-medium outline-hidden", "hover:text-foreground aria-expanded:text-foreground transition-colors duration-200", "focus-visible:outline-ring/50 focus-visible:outline-2 focus-visible:outline-offset-4", t),
36
35
  ...a,
37
- children: [/* @__PURE__ */ c(t, { className: e("ease-out-soft text-inherit duration-300", !o && "-rotate-90") }), i]
36
+ children: [/* @__PURE__ */ l(n, { className: e("ease-out-soft text-inherit duration-300", !o && "-rotate-90") }), i]
38
37
  });
39
38
  }
40
- function m({ className: t, children: n, ...r }) {
41
- let { open: a, contentId: l } = d("DisclosureContent"), u = o(null), [f, p] = s(a), [m, h] = s(!1);
42
- return a && !f && (p(!0), h(!0)), i(() => {
39
+ function h({ className: t, children: n, ...r }) {
40
+ let { open: i, contentId: o } = f("DisclosureContent"), u = s(null), [d, p] = c(i), [m, h] = c(!1);
41
+ return i && !d && (p(!0), h(!0)), a(() => {
43
42
  let e = u.current;
44
- if (a || !f || !e) return;
43
+ if (i || !d || !e) return;
45
44
  let t = !0;
46
45
  return Promise.all((e.getAnimations?.() ?? []).map((e) => e.finished)).then(() => t && p(!1), () => {}), () => {
47
46
  t = !1;
48
47
  };
49
- }, [a, f]), f ? /* @__PURE__ */ c("div", {
48
+ }, [i, d]), d ? /* @__PURE__ */ l("div", {
50
49
  ref: u,
51
- id: l,
52
- "data-open": a || void 0,
53
- inert: !a,
50
+ id: o,
51
+ "data-open": i || void 0,
52
+ inert: !i,
54
53
  className: e("zen__disclosure-content ease-out-soft grid grid-rows-[0fr] transition-[grid-template-rows] duration-300 data-open:grid-rows-[1fr]", m && "data-open:starting:grid-rows-[0fr]"),
55
- children: /* @__PURE__ */ c("div", {
54
+ children: /* @__PURE__ */ l("div", {
56
55
  className: "min-h-0 overflow-hidden",
57
- children: /* @__PURE__ */ c("div", {
56
+ children: /* @__PURE__ */ l("div", {
58
57
  className: e("zen__disclosure-body -translate-y-1 pt-2 opacity-0 transition-[opacity,translate] duration-300 ease-out", "in-data-open:translate-y-0 in-data-open:opacity-100", m && "in-data-open:starting:-translate-y-1 in-data-open:starting:opacity-0", t),
59
58
  ...r,
60
59
  children: n
@@ -63,4 +62,4 @@ function m({ className: t, children: n, ...r }) {
63
62
  }) : null;
64
63
  }
65
64
  //#endregion
66
- export { m as DisclosureContent, p as DisclosureTrigger, f as default };
65
+ export { h as DisclosureContent, m as DisclosureTrigger, p as default, f as useDisclosure };
@@ -1,4 +1,4 @@
1
- import { ReactNode } from 'react';
1
+ import { ComponentProps, ReactNode } from 'react';
2
2
  /**
3
3
  * A value edited in place, e.g. in a table cell: shows `children` as a button,
4
4
  * and on click (or Enter) swaps in your editor. Call `close()` from the editor
@@ -6,8 +6,9 @@ import { ReactNode } from 'react';
6
6
  * MoneyInput, an Input, a Select. A value changed by an edit glows briefly
7
7
  * when the editor closes.
8
8
  */
9
- export default function EditableCell({ children, editor, label, readOnly, editing: editingProp, onEditingChange, title, className, }: EditableCellProps): import('react').JSX.Element;
10
- export interface EditableCellProps {
9
+ export default function EditableCell({ children, editor, label, readOnly, editing: editingProp, onEditingChange, title, className, ref, onClick, ...rest }: EditableCellProps): import('react').JSX.Element;
10
+ /** Other props (data-*, aria-*) go on the button. */
11
+ export interface EditableCellProps extends Omit<ComponentProps<'button'>, 'children'> {
11
12
  /** What the cell shows when not editing. */
12
13
  children: ReactNode;
13
14
  /** The editor to show while editing; call `close` when it's done. */
@@ -19,7 +20,5 @@ export interface EditableCellProps {
19
20
  /** Control the editing state yourself (with onEditingChange). */
20
21
  editing?: boolean;
21
22
  onEditingChange?: (editing: boolean) => void;
22
- title?: string;
23
- className?: string;
24
23
  }
25
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/editable-cell/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAgD,MAAM,OAAO,CAAC;AAIhF;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACjC,QAAQ,EACR,MAAM,EACN,KAAK,EACL,QAAgB,EAChB,OAAO,EAAE,WAAW,EACpB,eAAe,EACf,KAAK,EACL,SAAS,GACZ,EAAE,iBAAiB,+BAwCnB;AAED,MAAM,WAAW,iBAAiB;IAC9B,4CAA4C;IAC5C,QAAQ,EAAE,SAAS,CAAC;IACpB,qEAAqE;IACrE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC;IACzC,qGAAqG;IACrG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/editable-cell/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAgD,MAAM,OAAO,CAAC;AAIhG;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACjC,QAAQ,EACR,MAAM,EACN,KAAK,EACL,QAAgB,EAChB,OAAO,EAAE,WAAW,EACpB,eAAe,EACf,KAAK,EACL,SAAS,EACT,GAAG,EACH,OAAO,EACP,GAAG,IAAI,EACV,EAAE,iBAAiB,+BAsCnB;AAED,qDAAqD;AACrD,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC;IACjF,4CAA4C;IAC5C,QAAQ,EAAE,SAAS,CAAC;IACpB,qEAAqE;IACrE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC;IACzC,qGAAqG;IACrG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD"}
@@ -1,31 +1,32 @@
1
1
  "use client";
2
2
  import { cx as e } from "../utils/cx.js";
3
- import { useEffect as t, useLayoutEffect as n, useRef as r, useState as i } from "react";
4
- import { Fragment as a, jsx as o } from "react/jsx-runtime";
3
+ import { useMergedRefs as t } from "../utils/refs.js";
4
+ import { useControllable as n } from "../utils/useControllable.js";
5
+ import { useEffect as r, useLayoutEffect as i, useRef as a, useState as o } from "react";
6
+ import { Fragment as s, jsx as c } from "react/jsx-runtime";
5
7
  //#region packages/editable-cell/index.tsx
6
- var s = typeof window > "u" ? t : n;
7
- function c({ children: t, editor: n, label: c, readOnly: l = !1, editing: u, onEditingChange: d, title: f, className: p }) {
8
- let [m, h] = i(!1), g = u ?? m, _ = (e) => {
9
- u === void 0 && h(e), d?.(e);
10
- }, v = r(null), [y, b] = i(null);
11
- return s(() => {
12
- let e = v.current;
13
- !g && e && y !== null && e.textContent !== y && (e.dataset.changed = "");
14
- }, [g, y]), l ? /* @__PURE__ */ o("span", {
15
- title: f,
16
- className: e("zen__editable-cell block px-1 text-right tabular-nums", p),
17
- children: t
18
- }) : g ? /* @__PURE__ */ o(a, { children: n(() => _(!1)) }) : /* @__PURE__ */ o("button", {
19
- ref: v,
8
+ var l = typeof window > "u" ? r : i;
9
+ function u({ children: r, editor: i, label: u, readOnly: d = !1, editing: f, onEditingChange: p, title: m, className: h, ref: g, onClick: _, ...v }) {
10
+ let [y, b] = n(f, !1, p), x = a(null), S = t(x, g), [C, w] = o(null);
11
+ return l(() => {
12
+ let e = x.current;
13
+ !y && e && C !== null && e.textContent !== C && (e.dataset.changed = "");
14
+ }, [y, C]), d ? /* @__PURE__ */ c("span", {
15
+ title: m,
16
+ className: e("zen__editable-cell block px-1 text-end tabular-nums", h),
17
+ children: r
18
+ }) : y ? /* @__PURE__ */ c(s, { children: i(() => b(!1)) }) : /* @__PURE__ */ c("button", {
20
19
  type: "button",
21
- title: f,
22
- "aria-label": c ? `${c}. Edit` : void 0,
20
+ title: m,
21
+ "aria-label": u ? `${u}. Edit` : void 0,
22
+ ...v,
23
+ ref: S,
23
24
  onClick: (e) => {
24
- b(e.currentTarget.textContent), _(!0);
25
+ _?.(e), w(e.currentTarget.textContent), b(!0);
25
26
  },
26
- className: e("zen__editable-cell hover:bg-primary/10 focus-visible:ring-ring/50 w-full cursor-pointer rounded-md px-1.5 py-0.5 text-right tabular-nums transition-colors focus-visible:ring-2 focus-visible:outline-hidden", p),
27
- children: t
27
+ className: e("zen__editable-cell hover:bg-primary/10 w-full cursor-pointer rounded-md px-1.5 py-0.5 text-end tabular-nums transition-colors focus-ring", h),
28
+ children: r
28
29
  });
29
30
  }
30
31
  //#endregion
31
- export { c as default };
32
+ export { u as default };
@@ -1,4 +1,5 @@
1
- import { ReactNode } from 'react';
1
+ import { AlertProps } from '../alert';
2
+ import { ComponentProps, ReactNode } from 'react';
2
3
  /** What a Field tells the control inside it. */
3
4
  export interface FieldControl {
4
5
  /** For the control's id (the label's `for`). */
@@ -41,10 +42,11 @@ export declare function useFieldProps(props: {
41
42
  * markup (e.g. an amount beside a unit select), give it an id and pass the
42
43
  * same id as `htmlFor`: Zen's controls with that id pick them up themselves.
43
44
  */
44
- export default function Field({ label, hint, error, htmlFor, children, className }: FieldProps): import('react').JSX.Element;
45
+ export default function Field({ label, hint, error, htmlFor, children, className, ...rest }: FieldProps): import('react').JSX.Element;
45
46
  /** A message for a form as a whole: an error or success in a tinted box, or a quiet note. An Alert, set for forms. */
46
- export declare function FormMessage({ tone, children, className }: FormMessageProps): import('react').JSX.Element;
47
- export interface FieldProps {
47
+ export declare function FormMessage({ tone, children, className, ...rest }: FormMessageProps): import('react').JSX.Element;
48
+ /** Other props (data-*, an id) go on the field's outer element. */
49
+ export interface FieldProps extends Omit<ComponentProps<'div'>, 'children'> {
48
50
  label: ReactNode;
49
51
  /** Help text under the control. */
50
52
  hint?: ReactNode;
@@ -56,9 +58,7 @@ export interface FieldProps {
56
58
  children: ReactNode;
57
59
  className?: string;
58
60
  }
59
- export interface FormMessageProps {
60
- tone?: 'info' | 'success' | 'error';
61
- children: ReactNode;
62
- className?: string;
61
+ export interface FormMessageProps extends Omit<AlertProps, 'tone' | 'plain'> {
62
+ tone?: 'default' | 'positive' | 'negative';
63
63
  }
64
64
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/field/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA6D,SAAS,EAAqB,MAAM,OAAO,CAAC;AAEhH,gDAAgD;AAChD,MAAM,WAAW,YAAY;IACzB,gDAAgD;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,wFAAwF;IACxF,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAID;;;;GAIG;AACH,wBAAgB,QAAQ,wBAEvB;AAMD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE;;;;;;EAO1G;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,UAAU,+BAiD7F;AAED,sHAAsH;AACtH,wBAAgB,WAAW,CAAC,EAAE,IAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,gBAAgB,+BAUnF;AAED,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,SAAS,CAAC;IACjB,mCAAmC;IACnC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,uEAAuE;IACvE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0FAA0F;IAC1F,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC7B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACpC,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/field/index.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAGpD,OAAO,EAEH,cAAc,EAId,SAAS,EAGZ,MAAM,OAAO,CAAC;AAEf,gDAAgD;AAChD,MAAM,WAAW,YAAY;IACzB,gDAAgD;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,wFAAwF;IACxF,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B;AAID;;;;GAIG;AACH,wBAAgB,QAAQ,wBAEvB;AAMD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE;;;;;;EAO1G;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,UAAU,+BAiDtG;AAED,sHAAsH;AACtH,wBAAgB,WAAW,CAAC,EAAE,IAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,gBAAgB,+BAM/F;AAED,mEAAmE;AACnE,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IACvE,KAAK,EAAE,SAAS,CAAC;IACjB,mCAAmC;IACnC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,uEAAuE;IACvE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0FAA0F;IAC1F,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IACxE,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;CAC9C"}
@@ -17,36 +17,37 @@ function p(e) {
17
17
  "aria-invalid": e["aria-invalid"] ?? t["aria-invalid"]
18
18
  };
19
19
  }
20
- function m({ label: n, hint: i, error: o, htmlFor: d, children: p, className: m }) {
21
- let h = s(), g = !d && a(p) ? p : null, _ = d ?? g?.props.id ?? `${h}-control`, v = i && !o ? `${h}-hint` : void 0, y = o ? `${h}-error` : void 0, b = `${h}-label`, x = {
22
- id: _,
23
- labelId: b,
24
- "aria-describedby": f(v, y),
20
+ function m({ label: n, hint: i, error: o, htmlFor: d, children: p, className: m, ...h }) {
21
+ let g = s(), _ = !d && a(p) ? p : null, v = d ?? _?.props.id ?? `${g}-control`, y = i && !o ? `${g}-hint` : void 0, b = o ? `${g}-error` : void 0, x = `${g}-label`, S = {
22
+ id: v,
23
+ labelId: x,
24
+ "aria-describedby": f(y, b),
25
25
  "aria-invalid": o ? !0 : void 0
26
26
  };
27
27
  return /* @__PURE__ */ c(u.Provider, {
28
- value: x,
28
+ value: S,
29
29
  children: /* @__PURE__ */ l("div", {
30
+ ...h,
30
31
  className: e("zen__field flex flex-col gap-2", m),
31
32
  children: [
32
33
  /* @__PURE__ */ c("label", {
33
- id: b,
34
- htmlFor: _,
34
+ id: x,
35
+ htmlFor: v,
35
36
  className: "text-sm leading-none font-medium",
36
37
  children: n
37
38
  }),
38
- g ? r(g, {
39
- id: _,
40
- "aria-describedby": f(g.props["aria-describedby"], x["aria-describedby"]),
41
- "aria-invalid": o ? !0 : g.props["aria-invalid"]
42
- }) : p,
43
- v && /* @__PURE__ */ c("p", {
39
+ _ ? r(_, {
44
40
  id: v,
41
+ "aria-describedby": f(_.props["aria-describedby"], S["aria-describedby"]),
42
+ "aria-invalid": o ? !0 : _.props["aria-invalid"]
43
+ }) : p,
44
+ y && /* @__PURE__ */ c("p", {
45
+ id: y,
45
46
  className: "text-muted-foreground mt-0! text-xs",
46
47
  children: i
47
48
  }),
48
49
  o && /* @__PURE__ */ l("p", {
49
- id: y,
50
+ id: b,
50
51
  role: "alert",
51
52
  className: "text-destructive mt-0! flex items-center gap-1.5 text-xs font-medium",
52
53
  children: [/* @__PURE__ */ c(t, { className: "shrink-0" }), o]
@@ -55,10 +56,11 @@ function m({ label: n, hint: i, error: o, htmlFor: d, children: p, className: m
55
56
  })
56
57
  });
57
58
  }
58
- function h({ tone: t = "info", children: r, className: i }) {
59
+ function h({ tone: t = "default", children: r, className: i, ...a }) {
59
60
  return /* @__PURE__ */ c(n, {
60
- tone: t === "error" ? "negative" : t === "success" ? "positive" : "default",
61
- plain: t === "info",
61
+ ...a,
62
+ tone: t,
63
+ plain: t === "default",
62
64
  className: e("mt-0!", i),
63
65
  children: r
64
66
  });
@@ -3,9 +3,9 @@ import { ComponentProps, ReactNode } from 'react';
3
3
  * The filters in effect, as chips each removed with its ×, and "Clear all"
4
4
  * once there are two or more. Renders nothing when no filter is set.
5
5
  */
6
- export default function FilterBar({ onClear, clearLabel, 'aria-label': label, className, children, ref, ...rest }: FilterBarProps): import('react').JSX.Element | null;
6
+ export default function FilterBar({ onClear, clearLabel: clearLabelProp, 'aria-label': labelProp, className, children, ref, ...rest }: FilterBarProps): import('react').JSX.Element | null;
7
7
  /** One filter in a FilterBar: what it is (e.g. "Amount: $50–$500"), and its × to remove it. */
8
- export declare function FilterChip({ onRemove, removeLabel, className, children }: FilterChipProps): import('react').JSX.Element;
8
+ export declare function FilterChip({ onRemove, removeLabel: removeLabelProp, className, children }: FilterChipProps): import('react').JSX.Element;
9
9
  export interface FilterBarProps extends ComponentProps<'div'> {
10
10
  /** Removes every filter; shown as "Clear all" once there are two or more. */
11
11
  onClear?: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/filter-bar/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAY,cAAc,EAAE,SAAS,EAAiD,MAAM,OAAO,CAAC;AAM3G;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAC9B,OAAO,EACP,UAAwB,EACxB,YAAY,EAAE,KAAwB,EACtC,SAAS,EACT,QAAQ,EACR,GAAG,EACH,GAAG,IAAI,EACV,EAAE,cAAc,sCA6BhB;AAiDD,+FAA+F;AAC/F,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,WAA6B,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,eAAe,+BAmB3G;AAED,MAAM,WAAW,cAAe,SAAQ,cAAc,CAAC,KAAK,CAAC;IACzD,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACvB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/filter-bar/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAY,cAAc,EAAE,SAAS,EAAiD,MAAM,OAAO,CAAC;AAM3G;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAC9B,OAAO,EACP,UAAU,EAAE,cAAc,EAC1B,YAAY,EAAE,SAAS,EACvB,SAAS,EACT,QAAQ,EACR,GAAG,EACH,GAAG,IAAI,EACV,EAAE,cAAc,sCAgChB;AAiDD,+FAA+F;AAC/F,wBAAgB,UAAU,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,eAAe,+BAqB1G;AAED,MAAM,WAAW,cAAe,SAAQ,cAAc,CAAC,KAAK,CAAC;IACzD,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACvB"}