@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,45 +1,46 @@
1
1
  "use client";
2
2
  import { cx as e } from "../utils/cx.js";
3
- import { reducedMotion as t } from "../utils/motion.js";
4
- import n from "../icons/micro/x-mark.js";
5
- import { Children as r, useEffect as i, useLayoutEffect as a, useRef as o } from "react";
6
- import { jsx as s, jsxs as c } from "react/jsx-runtime";
3
+ import { useMessages as t } from "../locale-provider/index.js";
4
+ import { reducedMotion as n } from "../utils/motion.js";
5
+ import r from "../icons/micro/x-mark.js";
6
+ import { Children as i, useEffect as a, useLayoutEffect as o, useRef as s } from "react";
7
+ import { jsx as c, jsxs as l } from "react/jsx-runtime";
7
8
  //#region packages/filter-bar/index.tsx
8
- var l = typeof window > "u" ? i : a, u = {
9
+ var u = typeof window > "u" ? a : o, d = {
9
10
  duration: 260,
10
11
  easing: "cubic-bezier(0.2, 0.8, 0.2, 1)"
11
- }, d = {
12
+ }, f = {
12
13
  duration: 120,
13
14
  easing: "ease-in"
14
15
  };
15
- function f({ onClear: t, clearLabel: n = "Clear all", "aria-label": i = "Active filters", className: a, children: l, ref: u, ...d }) {
16
- let f = r.toArray(l).length, m = o(null);
17
- return p(m), f === 0 ? null : /* @__PURE__ */ c("div", {
16
+ function p({ onClear: n, clearLabel: r, "aria-label": a, className: o, children: u, ref: d, ...f }) {
17
+ let p = t(), h = r ?? p.clearAll, g = a ?? p.activeFilters, _ = i.toArray(u).length, v = s(null);
18
+ return m(v), _ === 0 ? null : /* @__PURE__ */ l("div", {
18
19
  ref: (e) => {
19
- if (m.current = e, typeof u == "function") return u(e);
20
- u && (u.current = e);
20
+ if (v.current = e, typeof d == "function") return d(e);
21
+ d && (d.current = e);
21
22
  },
22
23
  role: "group",
23
- "aria-label": i,
24
- className: e("zen__filter-bar relative flex flex-wrap items-center gap-1.5", a),
25
- ...d,
26
- children: [l, f > 1 && t && /* @__PURE__ */ s("button", {
24
+ "aria-label": g,
25
+ className: e("zen__filter-bar relative flex flex-wrap items-center gap-1.5", o),
26
+ ...f,
27
+ children: [u, _ > 1 && n && /* @__PURE__ */ c("button", {
27
28
  type: "button",
28
- onClick: t,
29
- className: "zen__filter-clear text-muted-foreground hover:text-foreground focus-visible:ring-ring/50 touch-target ml-1 cursor-pointer rounded-md px-1.5 py-1 text-xs outline-hidden focus-visible:ring-2",
30
- children: n
29
+ onClick: n,
30
+ className: "zen__filter-clear text-muted-foreground hover:text-foreground touch-target focus-ring ms-1 cursor-pointer rounded-md px-1.5 py-1 text-xs outline-hidden",
31
+ children: h
31
32
  })]
32
33
  });
33
34
  }
34
- function p(e) {
35
- let n = o(/* @__PURE__ */ new Map());
36
- l(() => {
37
- let r = e.current, i = n.current, a = /* @__PURE__ */ new Map();
35
+ function m(e) {
36
+ let t = s(/* @__PURE__ */ new Map());
37
+ u(() => {
38
+ let r = e.current, i = t.current, a = /* @__PURE__ */ new Map();
38
39
  for (let e of r ? [...r.children] : []) e instanceof HTMLElement && !e.dataset.zenLeaving && a.set(e, {
39
40
  left: e.offsetLeft,
40
41
  top: e.offsetTop
41
42
  });
42
- if (n.current = a, !r || t()) return;
43
+ if (t.current = a, !r || n()) return;
43
44
  let o = !1;
44
45
  for (let [e, t] of i) {
45
46
  if (e.isConnected || !(e instanceof HTMLElement)) continue;
@@ -53,12 +54,12 @@ function p(e) {
53
54
  let n = e.animate?.({
54
55
  opacity: [1, 0],
55
56
  scale: [1, .9]
56
- }, d);
57
+ }, f);
57
58
  n ? n.onfinish = n.oncancel = () => e.remove() : e.remove();
58
59
  }
59
60
  let s = {
60
- ...u,
61
- delay: o ? d.duration : 0,
61
+ ...d,
62
+ delay: o ? f.duration : 0,
62
63
  fill: "backwards"
63
64
  };
64
65
  for (let [e, t] of a) {
@@ -69,22 +70,23 @@ function p(e) {
69
70
  }, {
70
71
  ...s,
71
72
  duration: 200,
72
- delay: s.delay + u.duration * .6
73
+ delay: s.delay + d.duration * .6
73
74
  }));
74
75
  }
75
76
  });
76
77
  }
77
- function m({ onRemove: t, removeLabel: r = "Remove filter", className: i, children: a }) {
78
- return /* @__PURE__ */ c("span", {
79
- className: e("zen__filter-chip bg-primary/12 text-foreground inline-flex items-center gap-1 rounded-full py-1 pr-1 pl-3 text-xs shadow-[inset_0_0_0_1px_oklch(var(--primary)/0.25)]", i),
80
- children: [a, /* @__PURE__ */ s("button", {
78
+ function h({ onRemove: n, removeLabel: i, className: a, children: o }) {
79
+ let s = t(), u = i ?? s.removeFilter;
80
+ return /* @__PURE__ */ l("span", {
81
+ className: e("zen__filter-chip bg-primary/12 text-foreground inline-flex items-center gap-1 rounded-full py-1 ps-3 pe-1 text-xs shadow-[inset_0_0_0_1px_oklch(var(--primary)/0.25)]", a),
82
+ children: [o, /* @__PURE__ */ c("button", {
81
83
  type: "button",
82
- "aria-label": r,
83
- onClick: t,
84
- className: "text-muted-foreground hover:text-foreground hover:bg-tint/10 focus-visible:ring-ring/50 touch-target grid size-5 cursor-pointer place-items-center rounded-full outline-hidden focus-visible:ring-2",
85
- children: /* @__PURE__ */ s(n, { className: "size-3" })
84
+ "aria-label": u,
85
+ onClick: n,
86
+ className: "text-muted-foreground hover:text-foreground hover:bg-tint/10 touch-target focus-ring grid size-5 cursor-pointer place-items-center rounded-full outline-hidden",
87
+ children: /* @__PURE__ */ c(r, { className: "size-3" })
86
88
  })]
87
89
  });
88
90
  }
89
91
  //#endregion
90
- export { m as FilterChip, f as default };
92
+ export { h as FilterChip, p as default };
@@ -8,7 +8,7 @@ import { ComponentProps } from 'react';
8
8
  * focused, that moves focus to the page's <main> past the bar's links (WCAG
9
9
  * 2.4.1). Change its text with `skipLabel`, or pass null to leave it out.
10
10
  */
11
- export default function Header({ skipLabel, className, children, ...rest }: HeaderProps): import('react').JSX.Element;
11
+ export default function Header({ skipLabel: skipLabelProp, className, children, ...rest }: HeaderProps): import('react').JSX.Element;
12
12
  export interface HeaderProps extends ComponentProps<'header'> {
13
13
  /** The skip link's text; null for no skip link (e.g. when the page has its own). */
14
14
  skipLabel?: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/header/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEvC;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,SAA6B,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,WAAW,+BAoC1G;AAED,MAAM,WAAW,WAAY,SAAQ,cAAc,CAAC,QAAQ,CAAC;IACzD,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/header/index.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEvC;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,WAAW,+BAsCrG;AAED,MAAM,WAAW,WAAY,SAAQ,cAAc,CAAC,QAAQ,CAAC;IACzD,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B"}
@@ -1,25 +1,27 @@
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 { jsx as n, jsxs as r } from "react/jsx-runtime";
4
+ import { useMessages as n } from "../locale-provider/index.js";
5
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
6
  //#region packages/header/index.tsx
6
- function i({ skipLabel: i = "Skip to content", className: a, children: o, ...s }) {
7
- return t(), /* @__PURE__ */ r("header", {
8
- className: e("zen__header glow-edge border-tint/5 bg-background/60 sticky top-0 z-40 border-b pt-[env(safe-area-inset-top)] backdrop-blur-xl", "pointer-coarse:bg-background/95 pointer-coarse:backdrop-blur-none", a),
9
- ...s,
10
- children: [i !== null && /* @__PURE__ */ n("a", {
7
+ function a({ skipLabel: a, className: o, children: s, ...c }) {
8
+ let l = n(), u = a === void 0 ? l.skipToContent : a;
9
+ return t(), /* @__PURE__ */ i("header", {
10
+ className: e("zen__header glow-edge border-tint/5 bg-background/60 sticky top-0 z-40 border-b pt-[env(safe-area-inset-top)] backdrop-blur-xl", "pointer-coarse:bg-background/95 pointer-coarse:backdrop-blur-none", o),
11
+ ...c,
12
+ children: [u !== null && /* @__PURE__ */ r("a", {
11
13
  href: "#main",
12
14
  onClick: (e) => {
13
15
  let t = document.querySelector("main");
14
16
  t && (e.preventDefault(), t.hasAttribute("tabindex") || (t.tabIndex = -1, t.dataset.zenSkipTarget = ""), t.focus());
15
17
  },
16
- className: "bg-primary text-primary-foreground focus-visible:ring-glow/50 sr-only rounded-lg px-3 py-2 text-sm font-medium outline-hidden focus:not-sr-only focus:absolute focus:top-2 focus:left-4 focus:z-50 focus-visible:ring-2",
17
- children: i
18
- }), /* @__PURE__ */ n("div", {
18
+ className: "bg-primary text-primary-foreground focus-ring sr-only rounded-lg px-3 py-2 text-sm font-medium outline-hidden focus:not-sr-only focus:absolute focus:start-4 focus:top-2 focus:z-50",
19
+ children: u
20
+ }), /* @__PURE__ */ r("div", {
19
21
  className: "flex items-center justify-between gap-4 px-4 py-2.5 md:gap-6 md:px-6 md:py-3",
20
- children: o
22
+ children: s
21
23
  })]
22
24
  });
23
25
  }
24
26
  //#endregion
25
- export { i as default };
27
+ export { a as default };
@@ -0,0 +1,32 @@
1
+ import { ComponentProps, ReactNode } from 'react';
2
+ /**
3
+ * A preview of what a link points to, e.g. a person or an account: a glass
4
+ * card shown after the pointer rests on the link (`openDelay`), or while it
5
+ * has keyboard focus, and kept while the pointer or focus is on the card.
6
+ * Escape hides it. What it shows is extra, out of the tab order: everything in
7
+ * it should be reachable by following the link too. Put a HoverCardTrigger and
8
+ * a HoverCardContent inside (it can go in a paragraph).
9
+ */
10
+ export default function HoverCard({ openDelay, closeDelay, children }: HoverCardProps): import('react').JSX.Element;
11
+ /** What the card previews: a link by default (give it `href`). With `asChild`, your own element (e.g. your router's link). */
12
+ export declare function HoverCardTrigger({ asChild, style, className, onPointerEnter, onPointerLeave, onFocus, onBlur, onKeyDown, children, ...rest }: HoverCardTriggerProps): import('react').JSX.Element;
13
+ /** The card: glass, below the trigger (above it if there's no room), lined up with its start by default. */
14
+ export declare function HoverCardContent(props: HoverCardContentProps): import('react').ReactPortal | null;
15
+ export interface HoverCardProps {
16
+ /** How long the pointer rests on the trigger before the card shows, in ms. Default 500. */
17
+ openDelay?: number;
18
+ /** How long it stays after the pointer leaves, in ms, so the pointer can reach it. Default 200. */
19
+ closeDelay?: number;
20
+ children?: ReactNode;
21
+ }
22
+ export interface HoverCardTriggerProps extends ComponentProps<'a'> {
23
+ /** Put the trigger's props on your own element instead of rendering a link. */
24
+ asChild?: boolean;
25
+ }
26
+ export interface HoverCardContentProps extends ComponentProps<'div'> {
27
+ /** Lined up with the trigger's start (default) or end edge, or centred on it. */
28
+ align?: 'start' | 'end' | 'center';
29
+ /** Gap from the trigger, in px. */
30
+ offset?: number;
31
+ }
32
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/hover-card/index.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAiB,SAAS,EAAsB,MAAM,OAAO,CAAC;AAWrF;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAE,SAAe,EAAE,UAAgB,EAAE,QAAQ,EAAE,EAAE,cAAc,+BAIhG;AAED,8HAA8H;AAC9H,wBAAgB,gBAAgB,CAAC,EAC7B,OAAO,EACP,KAAK,EACL,SAAS,EACT,cAAc,EACd,cAAc,EACd,OAAO,EACP,MAAM,EACN,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACV,EAAE,qBAAqB,+BAsBvB;AAED,4GAA4G;AAC5G,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,sCAK5D;AAiCD,MAAM,WAAW,cAAc;IAC3B,2FAA2F;IAC3F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mGAAmG;IACnG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,qBAAsB,SAAQ,cAAc,CAAC,GAAG,CAAC;IAC9D,+EAA+E;IAC/E,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,qBAAsB,SAAQ,cAAc,CAAC,KAAK,CAAC;IAChE,iFAAiF;IACjF,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IACnC,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -0,0 +1,84 @@
1
+ "use client";
2
+ import { cx as e } from "../utils/cx.js";
3
+ import { useGraphicsMode as t } from "../utils/graphics.js";
4
+ import { Slot as n } from "../utils/slot.js";
5
+ import { anchorFor as r, anchoredStyle as i, useAnchorFallback as a } from "../utils/useAnchoredPopup.js";
6
+ import { POPUP as o } from "../utils/styles.js";
7
+ import { useHydrated as s } from "../utils/useHydrated.js";
8
+ import { useHoverPopup as c } from "../utils/useHoverPopup.js";
9
+ import { createContext as l, useContext as u, useRef as d } from "react";
10
+ import { jsx as f } from "react/jsx-runtime";
11
+ import { createPortal as p } from "react-dom";
12
+ //#region packages/hover-card/index.tsx
13
+ var m = l(null);
14
+ function h(e) {
15
+ let t = u(m);
16
+ if (!t) throw Error(`<${e}> must be inside <HoverCard>`);
17
+ return t;
18
+ }
19
+ function g({ openDelay: e = 500, closeDelay: n = 200, children: r }) {
20
+ t();
21
+ let i = c("zen__hover-card", {
22
+ openDelay: e,
23
+ closeDelay: n
24
+ });
25
+ return /* @__PURE__ */ f(m.Provider, {
26
+ value: i,
27
+ children: r
28
+ });
29
+ }
30
+ function _({ asChild: t, style: i, className: a, onPointerEnter: o, onPointerLeave: s, onFocus: c, onBlur: l, onKeyDown: u, children: d, ...p }) {
31
+ let m = h("HoverCardTrigger"), g = {
32
+ ...p,
33
+ ...r(m.id),
34
+ style: {
35
+ ...r(m.id).style,
36
+ ...i
37
+ },
38
+ ...m.triggerProps({
39
+ onPointerEnter: o,
40
+ onPointerLeave: s,
41
+ onFocus: c,
42
+ onBlur: l,
43
+ onKeyDown: u
44
+ })
45
+ };
46
+ return t ? /* @__PURE__ */ f(n, {
47
+ ...g,
48
+ className: a,
49
+ children: d
50
+ }) : /* @__PURE__ */ f("a", {
51
+ ...g,
52
+ className: e("text-primary focus-ring rounded-sm underline-offset-4 hover:underline", a),
53
+ children: d
54
+ });
55
+ }
56
+ function v(e) {
57
+ return s() ? p(/* @__PURE__ */ f(y, { ...e }), document.body) : null;
58
+ }
59
+ function y({ align: t = "start", offset: n = 8, className: r, style: s, onPointerEnter: c, onPointerLeave: l, onBlur: u, onKeyDown: p, children: m, ...g }) {
60
+ let _ = h("HoverCardContent"), v = d(null);
61
+ return a(v), /* @__PURE__ */ f("div", {
62
+ ...g,
63
+ ref: v,
64
+ id: _.id,
65
+ popover: "manual",
66
+ ..._.contentProps({
67
+ onPointerEnter: c,
68
+ onPointerLeave: l,
69
+ onBlur: u,
70
+ onKeyDown: p
71
+ }),
72
+ style: {
73
+ ...i(_.id, {
74
+ align: t,
75
+ offset: n
76
+ }),
77
+ ...s
78
+ },
79
+ className: e("zen__popover fixed z-50 w-72 overflow-visible p-4", o, r),
80
+ children: m
81
+ });
82
+ }
83
+ //#endregion
84
+ export { v as HoverCardContent, _ as HoverCardTrigger, g as default };
@@ -1,3 +1,4 @@
1
+ import { PopoverTriggerProps } from '../popover';
1
2
  import { ReactNode } from 'react';
2
3
  /** The chart palette, so a category's colour matches it in charts. */
3
4
  export declare const ICON_COLORS: IconColor[];
@@ -7,15 +8,17 @@ export declare const ICON_COLORS: IconColor[];
7
8
  * yours (emoji work); colours default to the chart palette. Both are radio
8
9
  * groups, so arrow keys move through them.
9
10
  */
10
- export default function IconPicker({ icons, colors, value, onChange, label, className, }: IconPickerProps): import('react').JSX.Element;
11
+ export default function IconPicker({ icons, colors, value: valueProp, defaultValue, onValueChange, label, name: nameProp, className, ...rest }: IconPickerProps): import('react').JSX.Element;
11
12
  export interface IconColor {
12
13
  /** What's stored, e.g. "blue". */
13
14
  value: string;
14
- label: string;
15
+ /** Defaults to the LocaleProvider's name for the chart colours ("Blue"…), else the value. */
16
+ label?: string;
15
17
  /** Any CSS colour. */
16
18
  color: string;
17
19
  }
18
- export interface IconPickerProps {
20
+ /** Other props (aria-*, data-*, an id) go on the button. */
21
+ export interface IconPickerProps extends Omit<PopoverTriggerProps, 'value' | 'defaultValue' | 'children'> {
19
22
  icons: {
20
23
  value: string;
21
24
  label: string;
@@ -23,14 +26,22 @@ export interface IconPickerProps {
23
26
  }[];
24
27
  /** Default: ICON_COLORS, the chart palette. */
25
28
  colors?: IconColor[];
26
- value: {
29
+ /** The choice, when you keep it. */
30
+ value?: {
31
+ icon: string;
32
+ color?: string;
33
+ };
34
+ /** The first choice, when the picker keeps its own. */
35
+ defaultValue?: {
27
36
  icon: string;
28
37
  color?: string;
29
38
  };
30
- onChange: (value: {
39
+ onValueChange?: (value: {
31
40
  icon: string;
32
41
  color?: string;
33
42
  }) => void;
43
+ /** Form field name: the icon is submitted under it, the colour under `${name}-color`. */
44
+ name?: string;
34
45
  /** What it's the icon of, e.g. "Category icon"; the button also says the current choice. */
35
46
  label: string;
36
47
  className?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/icon-picker/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAiB,SAAS,EAAS,MAAM,OAAO,CAAC;AAExD,sEAAsE;AACtE,eAAO,MAAM,WAAW,EAAE,SAAS,EASlC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAC/B,KAAK,EACL,MAAoB,EACpB,KAAK,EACL,QAAQ,EACR,KAAK,EACL,SAAS,GACZ,EAAE,eAAe,+BAgEjB;AAED,MAAM,WAAW,SAAS;IACtB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,EAAE,CAAC;IAC3D,+CAA+C;IAC/C,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC5D,4FAA4F;IAC5F,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/icon-picker/index.tsx"],"names":[],"mappings":"AAAA,OAAgB,EAAkC,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAIjG,OAAO,EAAiB,SAAS,EAAS,MAAM,OAAO,CAAC;AAExD,sEAAsE;AACtE,eAAO,MAAM,WAAW,EAAE,SAAS,EASlC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAC/B,KAAK,EACL,MAAoB,EACpB,KAAK,EAAE,SAAS,EAChB,YAA2B,EAC3B,aAAa,EACb,KAAK,EACL,IAAI,EAAE,QAAQ,EACd,SAAS,EACT,GAAG,IAAI,EACV,EAAE,eAAe,+BAqEjB;AAED,MAAM,WAAW,SAAS;IACtB,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,6FAA6F;IAC7F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,4DAA4D;AAC5D,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,mBAAmB,EAAE,OAAO,GAAG,cAAc,GAAG,UAAU,CAAC;IACrG,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,EAAE,CAAC;IAC3D,+CAA+C;IAC/C,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,oCAAoC;IACpC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,uDAAuD;IACvD,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAClE,yFAAyF;IACzF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4FAA4F;IAC5F,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -1,107 +1,102 @@
1
1
  "use client";
2
2
  import { cx as e } from "../utils/cx.js";
3
- import t, { PopoverContent as n, PopoverTrigger as r } from "../popover/index.js";
4
- import { useId as i } from "react";
5
- import { jsx as a, jsxs as o } from "react/jsx-runtime";
3
+ import { useControllable as t } from "../utils/useControllable.js";
4
+ import { useMessages as n } from "../locale-provider/index.js";
5
+ import r, { PopoverContent as i, PopoverTrigger as a } from "../popover/index.js";
6
+ import { useId as o } from "react";
7
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
6
8
  //#region packages/icon-picker/index.tsx
7
- var s = [
9
+ var l = [
8
10
  {
9
11
  value: "blue",
10
- label: "Blue",
11
12
  color: "var(--chart-1)"
12
13
  },
13
14
  {
14
15
  value: "orange",
15
- label: "Orange",
16
16
  color: "var(--chart-2)"
17
17
  },
18
18
  {
19
19
  value: "teal",
20
- label: "Teal",
21
20
  color: "var(--chart-3)"
22
21
  },
23
22
  {
24
23
  value: "amber",
25
- label: "Amber",
26
24
  color: "var(--chart-4)"
27
25
  },
28
26
  {
29
27
  value: "pink",
30
- label: "Pink",
31
28
  color: "var(--chart-5)"
32
29
  },
33
30
  {
34
31
  value: "green",
35
- label: "Green",
36
32
  color: "var(--chart-6)"
37
33
  },
38
34
  {
39
35
  value: "violet",
40
- label: "Violet",
41
36
  color: "var(--chart-7)"
42
37
  },
43
38
  {
44
39
  value: "red",
45
- label: "Red",
46
40
  color: "var(--chart-8)"
47
41
  }
48
42
  ];
49
- function c({ icons: c, colors: l = s, value: u, onChange: d, label: f, className: p }) {
50
- let m = i(), h = c.find((e) => e.value === u.icon), g = l.find((e) => e.value === u.color), _ = (e) => ({ "--icon-color": e ?? "var(--color-muted-foreground)" });
51
- return /* @__PURE__ */ o(t, { children: [/* @__PURE__ */ a(r, {
52
- "aria-label": `${f}: ${[h?.label, g?.label].filter(Boolean).join(", ") || "none"}`,
53
- style: _(g?.color),
54
- className: e("zen__icon-picker focus-visible:ring-ring/50 grid size-10 shrink-0 place-items-center rounded-xl bg-[color-mix(in_oklch,var(--icon-color)_18%,transparent)] text-lg text-(--icon-color) outline-hidden transition-colors focus-visible:ring-2", p),
55
- children: h?.icon
56
- }), /* @__PURE__ */ o(n, {
57
- "aria-label": f,
43
+ function u({ icons: u, colors: d = l, value: f, defaultValue: p = { icon: "" }, onValueChange: m, label: h, name: g, className: _, ...v }) {
44
+ let [y, b] = t(f, p, m), x = n(), S = (e) => e.label ?? x.colourNames[e.value] ?? e.value, C = o(), w = g ?? C, T = u.find((e) => e.value === y.icon), E = d.find((e) => e.value === y.color), D = (e) => ({ "--icon-color": e ?? "var(--color-muted-foreground)" });
45
+ return /* @__PURE__ */ c(r, { children: [/* @__PURE__ */ s(a, {
46
+ ...v,
47
+ "aria-label": `${h}: ${[T?.label, E && S(E)].filter(Boolean).join(", ") || x.none}`,
48
+ style: D(E?.color),
49
+ className: e("zen__icon-picker grid size-10 shrink-0 place-items-center rounded-xl bg-[color-mix(in_oklch,var(--icon-color)_18%,transparent)] text-lg text-(--icon-color) outline-hidden transition-colors focus-ring", _),
50
+ children: T?.icon
51
+ }), /* @__PURE__ */ c(i, {
52
+ "aria-label": h,
58
53
  className: "flex w-72 flex-col gap-3 p-3",
59
- children: [l.length > 0 && /* @__PURE__ */ o("fieldset", {
54
+ children: [d.length > 0 && /* @__PURE__ */ c("fieldset", {
60
55
  className: "flex flex-wrap gap-1.5",
61
- children: [/* @__PURE__ */ a("legend", {
56
+ children: [/* @__PURE__ */ s("legend", {
62
57
  className: "text-muted-foreground mb-1.5 text-xs",
63
- children: "Colour"
64
- }), l.map((e) => /* @__PURE__ */ o("label", {
65
- title: e.label,
58
+ children: x.colour
59
+ }), d.map((e) => /* @__PURE__ */ c("label", {
60
+ title: S(e),
66
61
  className: "relative cursor-pointer",
67
- children: [/* @__PURE__ */ a("input", {
62
+ children: [/* @__PURE__ */ s("input", {
68
63
  type: "radio",
69
- name: `${m}-color`,
70
- "aria-label": e.label,
71
- checked: u.color === e.value,
72
- onChange: () => d({
73
- ...u,
64
+ name: `${w}-color`,
65
+ "aria-label": S(e),
66
+ checked: y.color === e.value,
67
+ onChange: () => b({
68
+ ...y,
74
69
  color: e.value
75
70
  }),
76
71
  className: "peer sr-only"
77
- }), /* @__PURE__ */ a("span", {
72
+ }), /* @__PURE__ */ s("span", {
78
73
  "aria-hidden": !0,
79
74
  style: { background: e.color },
80
- className: "ring-offset-background peer-focus-visible:ring-ring/60 peer-checked:ring-foreground/70 block size-6 rounded-full ring-offset-2 transition-shadow peer-checked:ring-2 peer-focus-visible:ring-2"
75
+ className: "ring-offset-background peer- peer-checked:ring-foreground/70 peer-focus-ring block size-6 rounded-full ring-offset-2 transition-shadow peer-checked:ring-2"
81
76
  })]
82
77
  }, e.value))]
83
- }), /* @__PURE__ */ o("fieldset", {
78
+ }), /* @__PURE__ */ c("fieldset", {
84
79
  className: "grid grid-cols-6 gap-1",
85
- style: _(g?.color),
86
- children: [/* @__PURE__ */ a("legend", {
80
+ style: D(E?.color),
81
+ children: [/* @__PURE__ */ s("legend", {
87
82
  className: "text-muted-foreground mb-1.5 text-xs",
88
- children: "Icon"
89
- }), c.map((e) => /* @__PURE__ */ o("label", {
83
+ children: x.icon
84
+ }), u.map((e) => /* @__PURE__ */ c("label", {
90
85
  title: e.label,
91
86
  className: "cursor-pointer",
92
- children: [/* @__PURE__ */ a("input", {
87
+ children: [/* @__PURE__ */ s("input", {
93
88
  type: "radio",
94
- name: `${m}-icon`,
89
+ name: w,
95
90
  "aria-label": e.label,
96
- checked: u.icon === e.value,
97
- onChange: () => d({
98
- ...u,
91
+ checked: y.icon === e.value,
92
+ onChange: () => b({
93
+ ...y,
99
94
  icon: e.value
100
95
  }),
101
96
  className: "peer sr-only"
102
- }), /* @__PURE__ */ a("span", {
97
+ }), /* @__PURE__ */ s("span", {
103
98
  "aria-hidden": !0,
104
- className: "hover:bg-tint/[0.07] peer-focus-visible:ring-ring/50 grid size-10 place-items-center rounded-lg text-lg transition-colors peer-checked:bg-[color-mix(in_oklch,var(--icon-color)_22%,transparent)] peer-checked:text-(--icon-color) peer-focus-visible:ring-2",
99
+ className: "hover:bg-tint/[0.07] peer- peer-focus-ring grid size-10 place-items-center rounded-lg text-lg transition-colors peer-checked:bg-[color-mix(in_oklch,var(--icon-color)_22%,transparent)] peer-checked:text-(--icon-color)",
105
100
  children: e.icon
106
101
  })]
107
102
  }, e.value))]
@@ -109,4 +104,4 @@ function c({ icons: c, colors: l = s, value: u, onChange: d, label: f, className
109
104
  })] });
110
105
  }
111
106
  //#endregion
112
- export { s as ICON_COLORS, c as default };
107
+ export { l as ICON_COLORS, u as default };
@@ -0,0 +1,3 @@
1
+ import { default as IconProps } from '../icon.types';
2
+ export default function PlusMicro(props: IconProps): import('react').JSX.Element;
3
+ //# sourceMappingURL=plus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plus.d.ts","sourceRoot":"","sources":["../../../packages/icons/micro/plus.tsx"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,eAAe,CAAC;AAEtC,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,KAAK,EAAE,SAAS,+BAcjD"}
@@ -0,0 +1,17 @@
1
+ "use client";
2
+ import { jsx as e } from "react/jsx-runtime";
3
+ //#region packages/icons/micro/plus.tsx
4
+ function t(t) {
5
+ return /* @__PURE__ */ e("svg", {
6
+ className: "size-4",
7
+ xmlns: "http://www.w3.org/2000/svg",
8
+ viewBox: "0 0 16 16",
9
+ fill: "currentColor",
10
+ "aria-hidden": "true",
11
+ "data-slot": "icon",
12
+ ...t,
13
+ children: /* @__PURE__ */ e("path", { d: "M8.75 3.75a.75.75 0 0 0-1.5 0v3.5h-3.5a.75.75 0 0 0 0 1.5h3.5v3.5a.75.75 0 0 0 1.5 0v-3.5h3.5a.75.75 0 0 0 0-1.5h-3.5v-3.5Z" })
14
+ });
15
+ }
16
+ //#endregion
17
+ export { t as default };