@rinzai/zen 0.11.0 → 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 (289) hide show
  1. package/README.md +37 -7
  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 +7 -2
  9. package/dist/avatar/index.d.ts.map +1 -1
  10. package/dist/avatar/index.js +17 -11
  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.js +0 -1
  34. package/dist/canvas/index.d.ts +6 -6
  35. package/dist/canvas/index.d.ts.map +1 -1
  36. package/dist/canvas/index.js +135 -133
  37. package/dist/carousel/index.d.ts +27 -0
  38. package/dist/carousel/index.d.ts.map +1 -0
  39. package/dist/carousel/index.js +162 -0
  40. package/dist/chart/index.d.ts +5 -4
  41. package/dist/chart/index.d.ts.map +1 -1
  42. package/dist/chart/index.js +137 -135
  43. package/dist/chart/palette.js +0 -1
  44. package/dist/checkbox/index.d.ts +3 -3
  45. package/dist/checkbox/index.d.ts.map +1 -1
  46. package/dist/checkbox/index.js +33 -30
  47. package/dist/chip/index.js +1 -1
  48. package/dist/code-block/index.d.ts.map +1 -1
  49. package/dist/code-block/index.js +27 -25
  50. package/dist/code-input/index.d.ts.map +1 -1
  51. package/dist/code-input/index.js +30 -24
  52. package/dist/collapse/index.d.ts +4 -3
  53. package/dist/collapse/index.d.ts.map +1 -1
  54. package/dist/collapse/index.js +42 -39
  55. package/dist/color-picker/index.d.ts +14 -7
  56. package/dist/color-picker/index.d.ts.map +1 -1
  57. package/dist/color-picker/index.js +139 -128
  58. package/dist/combobox/index.d.ts +14 -6
  59. package/dist/combobox/index.d.ts.map +1 -1
  60. package/dist/combobox/index.js +158 -146
  61. package/dist/command-palette/index.d.ts +4 -3
  62. package/dist/command-palette/index.d.ts.map +1 -1
  63. package/dist/command-palette/index.js +60 -57
  64. package/dist/confirm-dialog/index.d.ts +6 -7
  65. package/dist/confirm-dialog/index.d.ts.map +1 -1
  66. package/dist/confirm-dialog/index.js +20 -16
  67. package/dist/date-picker/index.d.ts +23 -14
  68. package/dist/date-picker/index.d.ts.map +1 -1
  69. package/dist/date-picker/index.js +109 -93
  70. package/dist/dialog/index.d.ts +3 -4
  71. package/dist/dialog/index.d.ts.map +1 -1
  72. package/dist/dialog/index.js +58 -55
  73. package/dist/disclosure/index.d.ts +8 -0
  74. package/dist/disclosure/index.d.ts.map +1 -1
  75. package/dist/disclosure/index.js +31 -32
  76. package/dist/editable-cell/index.d.ts +4 -5
  77. package/dist/editable-cell/index.d.ts.map +1 -1
  78. package/dist/editable-cell/index.js +23 -22
  79. package/dist/field/index.d.ts +8 -8
  80. package/dist/field/index.d.ts.map +1 -1
  81. package/dist/field/index.js +20 -18
  82. package/dist/filter-bar/index.d.ts +2 -2
  83. package/dist/filter-bar/index.d.ts.map +1 -1
  84. package/dist/filter-bar/index.js +38 -36
  85. package/dist/header/index.d.ts +1 -1
  86. package/dist/header/index.d.ts.map +1 -1
  87. package/dist/header/index.js +13 -11
  88. package/dist/hover-card/index.d.ts +32 -0
  89. package/dist/hover-card/index.d.ts.map +1 -0
  90. package/dist/hover-card/index.js +84 -0
  91. package/dist/icon-picker/index.d.ts +16 -5
  92. package/dist/icon-picker/index.d.ts.map +1 -1
  93. package/dist/icon-picker/index.js +42 -47
  94. package/dist/icons/micro/plus.d.ts +3 -0
  95. package/dist/icons/micro/plus.d.ts.map +1 -0
  96. package/dist/icons/micro/plus.js +17 -0
  97. package/dist/index.d.ts +37 -24
  98. package/dist/index.d.ts.map +1 -1
  99. package/dist/input/index.d.ts +5 -1
  100. package/dist/input/index.d.ts.map +1 -1
  101. package/dist/input/index.js +9 -9
  102. package/dist/input-group/index.d.ts +4 -1
  103. package/dist/input-group/index.d.ts.map +1 -1
  104. package/dist/input-group/index.js +14 -14
  105. package/dist/keypad/index.d.ts +9 -7
  106. package/dist/keypad/index.d.ts.map +1 -1
  107. package/dist/keypad/index.js +22 -19
  108. package/dist/lib.js +112 -97
  109. package/dist/load-more/index.d.ts +4 -2
  110. package/dist/load-more/index.d.ts.map +1 -1
  111. package/dist/load-more/index.js +26 -23
  112. package/dist/locale-provider/index.d.ts +23 -0
  113. package/dist/locale-provider/index.d.ts.map +1 -0
  114. package/dist/locale-provider/index.js +35 -0
  115. package/dist/menu/index.d.ts +62 -9
  116. package/dist/menu/index.d.ts.map +1 -1
  117. package/dist/menu/index.js +371 -128
  118. package/dist/meter/index.d.ts +2 -2
  119. package/dist/meter/index.d.ts.map +1 -1
  120. package/dist/meter/index.js +4 -4
  121. package/dist/money-input/index.d.ts +20 -10
  122. package/dist/money-input/index.d.ts.map +1 -1
  123. package/dist/money-input/index.js +199 -190
  124. package/dist/month-picker/index.d.ts +17 -10
  125. package/dist/month-picker/index.d.ts.map +1 -1
  126. package/dist/month-picker/index.js +97 -86
  127. package/dist/navigation-menu/index.d.ts +42 -0
  128. package/dist/navigation-menu/index.d.ts.map +1 -0
  129. package/dist/navigation-menu/index.js +144 -0
  130. package/dist/number-field/index.d.ts +34 -0
  131. package/dist/number-field/index.d.ts.map +1 -0
  132. package/dist/number-field/index.js +119 -0
  133. package/dist/page-header/index.d.ts +4 -3
  134. package/dist/page-header/index.d.ts.map +1 -1
  135. package/dist/page-header/index.js +2 -1
  136. package/dist/pagination/index.d.ts +1 -1
  137. package/dist/pagination/index.d.ts.map +1 -1
  138. package/dist/pagination/index.js +35 -33
  139. package/dist/progress-ring/index.d.ts +4 -3
  140. package/dist/progress-ring/index.d.ts.map +1 -1
  141. package/dist/progress-ring/index.js +11 -10
  142. package/dist/radio-cards/index.d.ts +9 -5
  143. package/dist/radio-cards/index.d.ts.map +1 -1
  144. package/dist/radio-cards/index.js +26 -24
  145. package/dist/radio-group/index.d.ts +9 -8
  146. package/dist/radio-group/index.d.ts.map +1 -1
  147. package/dist/radio-group/index.js +35 -34
  148. package/dist/range-slider/index.d.ts +10 -4
  149. package/dist/range-slider/index.d.ts.map +1 -1
  150. package/dist/range-slider/index.js +43 -31
  151. package/dist/repeat-picker/index.d.ts +13 -6
  152. package/dist/repeat-picker/index.d.ts.map +1 -1
  153. package/dist/repeat-picker/index.js +73 -61
  154. package/dist/resizable/index.d.ts +29 -0
  155. package/dist/resizable/index.d.ts.map +1 -0
  156. package/dist/resizable/index.js +135 -0
  157. package/dist/segmented/index.d.ts +8 -5
  158. package/dist/segmented/index.d.ts.map +1 -1
  159. package/dist/segmented/index.js +36 -34
  160. package/dist/select/index.d.ts +9 -3
  161. package/dist/select/index.d.ts.map +1 -1
  162. package/dist/select/index.js +99 -96
  163. package/dist/separator/index.d.ts +14 -0
  164. package/dist/separator/index.d.ts.map +1 -0
  165. package/dist/separator/index.js +15 -0
  166. package/dist/side-nav/index.js +1 -1
  167. package/dist/skeleton/index.d.ts +4 -4
  168. package/dist/skeleton/index.d.ts.map +1 -1
  169. package/dist/skeleton/index.js +4 -3
  170. package/dist/slider/index.d.ts +6 -3
  171. package/dist/slider/index.d.ts.map +1 -1
  172. package/dist/slider/index.js +29 -23
  173. package/dist/sortable/index.d.ts +10 -20
  174. package/dist/sortable/index.d.ts.map +1 -1
  175. package/dist/sortable/index.js +72 -134
  176. package/dist/sortable/shared.d.ts +56 -0
  177. package/dist/sortable/shared.d.ts.map +1 -0
  178. package/dist/sortable/shared.js +104 -0
  179. package/dist/sortable/tree-model.d.ts +46 -0
  180. package/dist/sortable/tree-model.d.ts.map +1 -0
  181. package/dist/sortable/tree-model.js +87 -0
  182. package/dist/sortable/tree.d.ts +31 -0
  183. package/dist/sortable/tree.d.ts.map +1 -0
  184. package/dist/sortable/tree.js +150 -0
  185. package/dist/sparkline/index.d.ts +1 -1
  186. package/dist/sparkline/index.d.ts.map +1 -1
  187. package/dist/sparkline/index.js +26 -25
  188. package/dist/spinner/index.d.ts +4 -3
  189. package/dist/spinner/index.d.ts.map +1 -1
  190. package/dist/spinner/index.js +2 -1
  191. package/dist/status-pill/index.d.ts.map +1 -1
  192. package/dist/status-pill/index.js +1 -1
  193. package/dist/stepper/index.d.ts +1 -1
  194. package/dist/stepper/index.d.ts.map +1 -1
  195. package/dist/stepper/index.js +31 -30
  196. package/dist/tab-bar/index.js +1 -1
  197. package/dist/table/index.d.ts +5 -5
  198. package/dist/table/index.d.ts.map +1 -1
  199. package/dist/table/index.js +66 -64
  200. package/dist/table/selection.d.ts +2 -2
  201. package/dist/table/selection.d.ts.map +1 -1
  202. package/dist/table/selection.js +41 -38
  203. package/dist/table/swipe.d.ts +1 -1
  204. package/dist/table/swipe.d.ts.map +1 -1
  205. package/dist/table/swipe.js +1 -1
  206. package/dist/table-of-contents/index.d.ts +4 -2
  207. package/dist/table-of-contents/index.d.ts.map +1 -1
  208. package/dist/table-of-contents/index.js +27 -25
  209. package/dist/tabs/index.d.ts.map +1 -1
  210. package/dist/tabs/index.js +90 -88
  211. package/dist/tag-input/index.d.ts +3 -1
  212. package/dist/tag-input/index.d.ts.map +1 -1
  213. package/dist/tag-input/index.js +61 -52
  214. package/dist/theme-toggle/index.d.ts +9 -8
  215. package/dist/theme-toggle/index.d.ts.map +1 -1
  216. package/dist/theme-toggle/index.js +30 -28
  217. package/dist/theme.css +90 -12
  218. package/dist/time-field/index.d.ts +31 -0
  219. package/dist/time-field/index.d.ts.map +1 -0
  220. package/dist/time-field/index.js +175 -0
  221. package/dist/timeline/index.js +1 -1
  222. package/dist/toast/index.d.ts +1 -1
  223. package/dist/toast/index.d.ts.map +1 -1
  224. package/dist/toast/index.js +127 -125
  225. package/dist/toggle/index.d.ts +2 -2
  226. package/dist/toggle/index.d.ts.map +1 -1
  227. package/dist/toggle/index.js +8 -6
  228. package/dist/toggle-group/index.d.ts +35 -0
  229. package/dist/toggle-group/index.d.ts.map +1 -0
  230. package/dist/toggle-group/index.js +53 -0
  231. package/dist/toolbar/index.d.ts +19 -0
  232. package/dist/toolbar/index.d.ts.map +1 -0
  233. package/dist/toolbar/index.js +36 -0
  234. package/dist/tooltip/index.d.ts.map +1 -1
  235. package/dist/tooltip/index.js +40 -74
  236. package/dist/tree/index.d.ts.map +1 -1
  237. package/dist/tree/index.js +105 -102
  238. package/dist/trend/index.d.ts +2 -2
  239. package/dist/trend/index.d.ts.map +1 -1
  240. package/dist/trend/index.js +20 -19
  241. package/dist/utils/color.js +0 -1
  242. package/dist/utils/cva.js +0 -1
  243. package/dist/utils/cx.js +0 -1
  244. package/dist/utils/date.d.ts +6 -0
  245. package/dist/utils/date.d.ts.map +1 -1
  246. package/dist/utils/date.js +1 -2
  247. package/dist/utils/direction.d.ts +7 -0
  248. package/dist/utils/direction.d.ts.map +1 -0
  249. package/dist/utils/direction.js +6 -0
  250. package/dist/utils/form-value.d.ts +15 -0
  251. package/dist/utils/form-value.d.ts.map +1 -0
  252. package/dist/utils/form-value.js +29 -0
  253. package/dist/utils/fx.js +0 -1
  254. package/dist/utils/merge.js +0 -1
  255. package/dist/utils/messages.d.ts +137 -0
  256. package/dist/utils/messages.d.ts.map +1 -0
  257. package/dist/utils/messages.js +133 -0
  258. package/dist/utils/money.js +0 -1
  259. package/dist/utils/month.js +0 -1
  260. package/dist/utils/motion.js +0 -1
  261. package/dist/utils/refs.d.ts +6 -0
  262. package/dist/utils/refs.d.ts.map +1 -0
  263. package/dist/utils/refs.js +13 -0
  264. package/dist/utils/repeat.d.ts +3 -1
  265. package/dist/utils/repeat.d.ts.map +1 -1
  266. package/dist/utils/repeat.js +28 -25
  267. package/dist/utils/roving.d.ts +17 -0
  268. package/dist/utils/roving.d.ts.map +1 -0
  269. package/dist/utils/roving.js +35 -0
  270. package/dist/utils/section-link.js +0 -1
  271. package/dist/utils/slot.d.ts.map +1 -1
  272. package/dist/utils/slot.js +7 -11
  273. package/dist/utils/status-icons.js +7 -7
  274. package/dist/utils/styles.d.ts +9 -2
  275. package/dist/utils/styles.d.ts.map +1 -1
  276. package/dist/utils/styles.js +6 -3
  277. package/dist/utils/theme-wave.js +0 -1
  278. package/dist/utils/theme.js +0 -1
  279. package/dist/utils/useAnchoredPopup.d.ts +7 -4
  280. package/dist/utils/useAnchoredPopup.d.ts.map +1 -1
  281. package/dist/utils/useAnchoredPopup.js +18 -11
  282. package/dist/utils/useControllable.d.ts +9 -0
  283. package/dist/utils/useControllable.d.ts.map +1 -0
  284. package/dist/utils/useControllable.js +15 -0
  285. package/dist/utils/useHoverPopup.d.ts +39 -0
  286. package/dist/utils/useHoverPopup.d.ts.map +1 -0
  287. package/dist/utils/useHoverPopup.js +64 -0
  288. package/dist/zen.css +1 -1
  289. package/package.json +1 -1
@@ -1,38 +1,40 @@
1
1
  "use client";
2
2
  import { cx as e } from "../utils/cx.js";
3
- import { useCopyToClipboard as t } from "../utils/useCopyToClipboard.js";
4
- import { useEffect as n, useRef as r, useState as i } from "react";
5
- import { jsx as a, jsxs as o } from "react/jsx-runtime";
3
+ import { useMessages as t } from "../locale-provider/index.js";
4
+ import { useCopyToClipboard as n } from "../utils/useCopyToClipboard.js";
5
+ import { useEffect as r, useRef as i, useState as a } from "react";
6
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
6
7
  //#region packages/code-block/index.tsx
7
- function s({ code: s, language: c, highlight: l, copyable: u = !0, variant: d = "glass", className: f, ...p }) {
8
- let m = s.trim(), { copy: h, copied: g } = t(), _ = r(null), [v, y] = i(!1);
9
- return n(() => {
10
- let e = _.current;
8
+ function c({ code: c, language: l, highlight: u, copyable: d = !0, variant: f = "glass", className: p, ...m }) {
9
+ let h = t(), g = c.trim(), { copy: _, copied: v } = n(), y = i(null), [b, x] = a(!1);
10
+ return r(() => {
11
+ let e = y.current;
11
12
  if (!e || typeof ResizeObserver > "u") return;
12
- let t = new ResizeObserver(() => y(e.scrollWidth > e.clientWidth || e.scrollHeight > e.clientHeight));
13
+ let t = new ResizeObserver(() => x(e.scrollWidth > e.clientWidth || e.scrollHeight > e.clientHeight));
13
14
  return t.observe(e), () => t.disconnect();
14
- }, []), /* @__PURE__ */ o("div", {
15
- className: e("zen__code-block group relative flex flex-col", d === "glass" && "glass glow-edge overflow-hidden rounded-xl", f),
16
- "data-language": c,
17
- ...p,
18
- children: [/* @__PURE__ */ a("pre", {
19
- ref: _,
20
- tabIndex: v ? 0 : void 0,
21
- className: "text-foreground focus-visible:ring-ring/50 m-0! min-h-0 overflow-auto rounded-none! bg-transparent! p-5! font-mono text-[13px]! leading-6 font-normal! outline-hidden focus-visible:ring-2 focus-visible:ring-inset",
22
- children: l ? /* @__PURE__ */ a("code", {
15
+ }, []), /* @__PURE__ */ s("div", {
16
+ className: e("zen__code-block group relative flex flex-col", f === "glass" && "glass glow-edge overflow-hidden rounded-xl", p),
17
+ "data-language": l,
18
+ ...m,
19
+ children: [/* @__PURE__ */ o("pre", {
20
+ ref: y,
21
+ tabIndex: b ? 0 : void 0,
22
+ dir: "ltr",
23
+ className: "text-foreground focus-ring m-0! min-h-0 overflow-auto rounded-none! bg-transparent! p-5! font-mono text-[13px]! leading-6 font-normal! outline-hidden focus-visible:ring-inset",
24
+ children: u ? /* @__PURE__ */ o("code", {
23
25
  className: "bg-transparent! p-0! text-inherit!",
24
- dangerouslySetInnerHTML: { __html: l(m, c) }
25
- }) : /* @__PURE__ */ a("code", {
26
+ dangerouslySetInnerHTML: { __html: u(g, l) }
27
+ }) : /* @__PURE__ */ o("code", {
26
28
  className: "bg-transparent! p-0! text-inherit!",
27
- children: m
29
+ children: g
28
30
  })
29
- }), u && /* @__PURE__ */ a("button", {
31
+ }), d && /* @__PURE__ */ o("button", {
30
32
  type: "button",
31
- onClick: () => h(m),
32
- className: e("zen__code-copy inline-flex items-center justify-center text-muted-foreground hover:bg-tint/[0.07] hover:text-foreground focus-visible:ring-ring/50 absolute top-2.5 right-2.5 cursor-pointer rounded-lg px-2.5 py-1 text-xs font-medium outline-hidden transition-[opacity,background-color,color] focus-visible:ring-2", "opacity-0 group-hover:opacity-100 focus-visible:opacity-100 pointer-coarse:min-h-11 pointer-coarse:min-w-11 [@media(hover:none)]:bg-card/90 [@media(hover:none)]:opacity-100", g && "text-primary opacity-100"),
33
- children: g ? "Copied" : "Copy"
33
+ onClick: () => _(g),
34
+ className: e("zen__code-copy inline-flex items-center justify-center text-muted-foreground hover:bg-tint/[0.07] hover:text-foreground absolute top-2.5 end-2.5 cursor-pointer rounded-lg px-2.5 py-1 text-xs font-medium outline-hidden transition-[opacity,background-color,color] focus-ring", "opacity-0 group-hover:opacity-100 focus-visible:opacity-100 pointer-coarse:min-h-11 pointer-coarse:min-w-11 [@media(hover:none)]:bg-card/90 [@media(hover:none)]:opacity-100", v && "text-primary opacity-100"),
35
+ children: v ? h.copied : h.copy
34
36
  })]
35
37
  });
36
38
  }
37
39
  //#endregion
38
- export { s as default };
40
+ export { c as default };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/code-input/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAY,MAAM,OAAO,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAC9B,MAAU,EACV,KAAK,EAAE,UAAU,EACjB,YAAiB,EACjB,aAAa,EACb,UAAU,EACV,OAAc,EACd,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACV,EAAE,cAAc,+BAgEhB;AAED,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,cAAc,GAAG,WAAW,CAAC;IACzG,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,wDAAwD;IACxD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,qGAAqG;IACrG,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/code-input/index.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAoB,MAAM,OAAO,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAC9B,MAAU,EACV,KAAK,EAAE,UAAU,EACjB,YAAiB,EACjB,aAAa,EACb,UAAU,EACV,OAAc,EACd,SAAS,EACT,QAAQ,EACR,GAAG,IAAI,EACV,EAAE,cAAc,+BAmEhB;AAED,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,cAAc,GAAG,WAAW,CAAC;IACzG,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,wDAAwD;IACxD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,qGAAqG;IACrG,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -1,44 +1,50 @@
1
1
  "use client";
2
2
  import { cx as e } from "../utils/cx.js";
3
- import { useFieldProps as t } from "../field/index.js";
4
- import { useState as n } from "react";
5
- import { jsx as r, jsxs as i } from "react/jsx-runtime";
3
+ import { useMergedRefs as t } from "../utils/refs.js";
4
+ import { useControllable as n } from "../utils/useControllable.js";
5
+ import { useFieldProps as r } from "../field/index.js";
6
+ import { useFormReset as i } from "../utils/form-value.js";
7
+ import { useRef as a, useState as o } from "react";
8
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
6
9
  //#region packages/code-input/index.tsx
7
- function a({ length: a = 6, value: o, defaultValue: s = "", onValueChange: c, onComplete: l, allowed: u = /\d/, className: d, disabled: f, ...p }) {
8
- let [m, h] = n(s), g = o ?? m, [_, v] = n(!1), y = t(p), b = u.source === "\\d";
9
- return /* @__PURE__ */ i("div", {
10
- className: e("zen__code-input relative inline-flex gap-2", f && "opacity-50", d),
11
- children: [/* @__PURE__ */ r("input", {
10
+ function l({ length: l = 6, value: u, defaultValue: d = "", onValueChange: f, onComplete: p, allowed: m = /\d/, className: h, disabled: g, ..._ }) {
11
+ let [v, y, b] = n(u, d, f), x = a(null), S = t(x, _.ref);
12
+ i(x, b);
13
+ let [C, w] = o(!1), T = r(_), E = m.source === "\\d";
14
+ return /* @__PURE__ */ c("div", {
15
+ className: e("zen__code-input relative inline-flex gap-2", g && "opacity-50", h),
16
+ children: [/* @__PURE__ */ s("input", {
12
17
  autoComplete: "one-time-code",
13
- inputMode: b ? "numeric" : "text",
18
+ inputMode: E ? "numeric" : "text",
14
19
  spellCheck: !1,
15
- maxLength: a,
16
- ...p,
17
- ...y,
18
- disabled: f,
19
- value: g,
20
+ maxLength: l,
21
+ ..._,
22
+ ...T,
23
+ ref: S,
24
+ disabled: g,
25
+ value: v,
20
26
  onChange: (e) => {
21
- let t = e.target.value.split("").filter((e) => u.test(e)).join("").slice(0, a);
22
- o === void 0 && h(t), c?.(t), t.length === a && g.length !== a && l?.(t);
27
+ let t = e.target.value.split("").filter((e) => m.test(e)).join("").slice(0, l);
28
+ _.onChange?.(e), y(t), t.length === l && v.length !== l && p?.(t);
23
29
  },
24
30
  onFocus: (e) => {
25
- p.onFocus?.(e), v(!0);
31
+ _.onFocus?.(e), w(!0);
26
32
  let t = e.target.value.length;
27
33
  e.target.setSelectionRange(t, t);
28
34
  },
29
35
  onBlur: (e) => {
30
- p.onBlur?.(e), v(!1);
36
+ _.onBlur?.(e), w(!1);
31
37
  },
32
38
  className: "absolute inset-0 z-10 cursor-text font-mono text-transparent caret-transparent opacity-0 outline-hidden selection:bg-transparent disabled:cursor-not-allowed"
33
- }), Array.from({ length: a }, (t, n) => {
34
- let o = _ && (n === g.length || n === a - 1 && g.length === a);
35
- return /* @__PURE__ */ i("span", {
39
+ }), Array.from({ length: l }, (t, n) => {
40
+ let r = C && (n === v.length || n === l - 1 && v.length === l);
41
+ return /* @__PURE__ */ c("span", {
36
42
  "aria-hidden": !0,
37
- className: e("glow-border bg-tint/[0.035] relative grid h-12 w-10 place-items-center rounded-lg border font-mono text-lg tabular-nums [--glow-border-color:oklch(var(--glow)/0.22)]", "transition-[border-color,box-shadow,background-color] duration-200", o && "border-glow/60 bg-tint/[0.05] shadow-glow-focus [--glow-border-color:transparent]", y["aria-invalid"] && "border-destructive/60"),
38
- children: [g[n], o && n === g.length && /* @__PURE__ */ r("span", { className: "zen__code-caret bg-foreground absolute h-5 w-px" })]
43
+ className: e("glow-border bg-tint/[0.035] relative grid h-12 w-10 place-items-center rounded-lg border font-mono text-lg tabular-nums [--glow-border-color:oklch(var(--glow)/0.22)]", "transition-[border-color,box-shadow,background-color] duration-200", r && "border-glow/60 bg-tint/[0.05] shadow-glow-focus [--glow-border-color:transparent]", T["aria-invalid"] && "border-destructive/60"),
44
+ children: [v[n], r && n === v.length && /* @__PURE__ */ s("span", { className: "zen__code-caret bg-foreground absolute h-5 w-px" })]
39
45
  }, n);
40
46
  })]
41
47
  });
42
48
  }
43
49
  //#endregion
44
- export { a as default };
50
+ export { l as default };
@@ -1,5 +1,5 @@
1
1
  import { BadgeProps } from '../badge';
2
- import { ReactNode } from 'react';
2
+ import { ComponentProps, ReactNode } from 'react';
3
3
  /**
4
4
  * A row showing as many items as fit on one line, and the rest behind a "+N"
5
5
  * button that opens them in a popover. It measures the items as rendered (any
@@ -7,8 +7,9 @@ import { ReactNode } from 'react';
7
7
  * is the room it's given, not its items': size the row with className (e.g.
8
8
  * w-full, max-w-md, gap-1).
9
9
  */
10
- export default function Collapse<TData>({ items, data, children, moreLabel, badgeVariant, badgeClassName, className, }: CollapseProps<TData>): import('react').JSX.Element;
11
- export interface CollapseProps<TData> {
10
+ export default function Collapse<TData>({ items, data, children, moreLabel, badgeVariant, badgeClassName, className, ref, ...rest }: CollapseProps<TData>): import('react').JSX.Element;
11
+ /** Other props (data-*, an id) go on the row. */
12
+ export interface CollapseProps<TData> extends Omit<ComponentProps<'div'>, 'children'> {
12
13
  items: string[];
13
14
  /** Extra data per item, passed to `children` with it. */
14
15
  data?: TData[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/collapse/index.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG/C,OAAO,EAAE,SAAS,EAAgD,MAAM,OAAO,CAAC;AAEhF;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAAK,EAAE,EACpC,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,SAAc,EACd,YAA0B,EAC1B,cAAc,EACd,SAAS,GACZ,EAAE,aAAa,CAAC,KAAK,CAAC,+BAqGtB;AAED,MAAM,WAAW,aAAa,CAAC,KAAK;IAChC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,yDAAyD;IACzD,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;IACf,4EAA4E;IAC5E,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,KAAK,SAAS,CAAC;IACvE,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IACrC,kCAAkC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/collapse/index.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAI/C,OAAO,EAAE,cAAc,EAAE,SAAS,EAAgD,MAAM,OAAO,CAAC;AAEhG;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAAK,EAAE,EACpC,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,SAAc,EACd,YAA0B,EAC1B,cAAc,EACd,SAAS,EACT,GAAG,EACH,GAAG,IAAI,EACV,EAAE,aAAa,CAAC,KAAK,CAAC,+BAwGtB;AAED,iDAAiD;AACjD,MAAM,WAAW,aAAa,CAAC,KAAK,CAAE,SAAQ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;IACjF,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,yDAAyD;IACzD,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;IACf,4EAA4E;IAC5E,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,KAAK,SAAS,CAAC;IACvE,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IACrC,kCAAkC;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -1,82 +1,85 @@
1
1
  "use client";
2
2
  import { cx as e } from "../utils/cx.js";
3
- import t from "../badge/index.js";
4
- import n, { PopoverContent as r, PopoverTrigger as i } from "../popover/index.js";
5
- import { useEffect as a, useLayoutEffect as o, useRef as s, useState as c } from "react";
6
- import { jsx as l, jsxs as u } from "react/jsx-runtime";
3
+ import { useMergedRefs as t } from "../utils/refs.js";
4
+ import { useMessages as n } from "../locale-provider/index.js";
5
+ import r from "../badge/index.js";
6
+ import i, { PopoverContent as a, PopoverTrigger as o } from "../popover/index.js";
7
+ import { useEffect as s, useLayoutEffect as c, useRef as l, useState as u } from "react";
8
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
7
9
  //#region packages/collapse/index.tsx
8
- function d({ items: d, data: f, children: p, moreLabel: m = "", badgeVariant: h = "secondary", badgeClassName: g, className: _ }) {
9
- let v = s(null), [y, b] = c(null), x = s({
10
+ function p({ items: p, data: m, children: h, moreLabel: g = "", badgeVariant: _ = "secondary", badgeClassName: v, className: y, ref: b, ...x }) {
11
+ let S = n(), C = l(null), w = t(C, b), [T, E] = u(null), D = l({
10
12
  items: [],
11
13
  more: 0,
12
14
  gap: 0
13
- }), S = d.join("\0");
14
- o(() => b(null), [S]), o(() => {
15
- let e = v.current;
15
+ }), O = p.join("\0");
16
+ c(() => E(null), [O]), c(() => {
17
+ let e = C.current;
16
18
  if (!e) return;
17
19
  let t = () => {
18
- let { items: t, more: n, gap: r } = x.current, i = e.clientWidth;
20
+ let { items: t, more: n, gap: r } = D.current, i = e.clientWidth;
19
21
  if (t.reduce((e, t) => e + t, 0) + r * Math.max(0, t.length - 1) <= i) return t.length;
20
22
  let a = n, o = 0;
21
23
  for (; o < t.length && a + t[o] + r <= i;) a += t[o++] + r;
22
24
  return o;
23
25
  };
24
- if (y === null) {
26
+ if (T === null) {
25
27
  let n = Array.from(e.querySelectorAll(":scope > [data-collapse-item]")), r = e.querySelector(":scope > [data-collapse-more]");
26
- x.current = {
28
+ D.current = {
27
29
  items: n.map((e) => e.offsetWidth),
28
30
  more: r?.offsetWidth ?? 0,
29
31
  gap: parseFloat(getComputedStyle(e).columnGap) || 0
30
- }, b(t());
32
+ }, E(t());
31
33
  return;
32
34
  }
33
35
  if (typeof ResizeObserver > "u") return;
34
- let n = new ResizeObserver(() => b(t()));
36
+ let n = new ResizeObserver(() => E(t()));
35
37
  return n.observe(e), () => n.disconnect();
36
- }, [y, S]), a(() => {
38
+ }, [T, O]), s(() => {
37
39
  let e = !0;
38
- return document.fonts?.ready.then(() => e && b(null)), () => {
40
+ return document.fonts?.ready.then(() => e && E(null)), () => {
39
41
  e = !1;
40
42
  };
41
43
  }, []);
42
- let C = y ?? d.length, w = d.slice(C), T = (e) => `+${e}${m ? ` ${m}` : ""}`;
43
- return /* @__PURE__ */ u("div", {
44
- ref: v,
45
- className: e("zen__collapse flex min-w-0 items-center overflow-hidden [contain:inline-size]", _),
46
- children: [d.slice(0, C).map((e, t) => /* @__PURE__ */ l("span", {
44
+ let k = T ?? p.length, A = p.slice(k), j = (e) => `+${e}${g ? ` ${g}` : ""}`;
45
+ return /* @__PURE__ */ f("div", {
46
+ ...x,
47
+ ref: w,
48
+ className: e("zen__collapse flex min-w-0 items-center overflow-hidden [contain:inline-size]", y),
49
+ children: [p.slice(0, k).map((e, t) => /* @__PURE__ */ d("span", {
47
50
  "data-collapse-item": !0,
48
51
  className: "flex shrink-0",
49
- children: p(e, t, f?.[t])
50
- }, e)), y === null ? /* @__PURE__ */ l("span", {
52
+ children: h(e, t, m?.[t])
53
+ }, e)), T === null ? /* @__PURE__ */ d("span", {
51
54
  "data-collapse-more": !0,
52
55
  "aria-hidden": !0,
53
56
  className: "invisible flex shrink-0",
54
- children: /* @__PURE__ */ l(t, {
55
- variant: h,
56
- className: g,
57
- children: T(d.length)
57
+ children: /* @__PURE__ */ d(r, {
58
+ variant: _,
59
+ className: v,
60
+ children: j(p.length)
58
61
  })
59
- }) : w.length > 0 && /* @__PURE__ */ u(n, { children: [/* @__PURE__ */ l(i, {
62
+ }) : A.length > 0 && /* @__PURE__ */ f(i, { children: [/* @__PURE__ */ d(o, {
60
63
  "data-collapse-more": !0,
61
64
  onClick: (e) => e.stopPropagation(),
62
65
  className: "flex shrink-0 rounded-md",
63
- "aria-label": `Show ${T(w.length).slice(1)}`,
64
- children: /* @__PURE__ */ l(t, {
65
- variant: h,
66
- className: e("cursor-pointer", g),
67
- children: T(w.length)
66
+ "aria-label": S.showMore(j(A.length).slice(1)),
67
+ children: /* @__PURE__ */ d(r, {
68
+ variant: _,
69
+ className: e("cursor-pointer", v),
70
+ children: j(A.length)
68
71
  })
69
- }), /* @__PURE__ */ l(r, {
70
- "aria-label": T(w.length).slice(1),
71
- children: /* @__PURE__ */ l("div", {
72
+ }), /* @__PURE__ */ d(a, {
73
+ "aria-label": j(A.length).slice(1),
74
+ children: /* @__PURE__ */ d("div", {
72
75
  className: "grid max-h-60 grid-flow-row grid-cols-2 gap-3 overflow-auto p-2",
73
- children: w.map((e, t) => /* @__PURE__ */ l("span", {
76
+ children: A.map((e, t) => /* @__PURE__ */ d("span", {
74
77
  className: "flex",
75
- children: p(e, C + t, f?.[C + t])
78
+ children: h(e, k + t, m?.[k + t])
76
79
  }, e))
77
80
  })
78
81
  })] })]
79
82
  });
80
83
  }
81
84
  //#endregion
82
- export { d as default };
85
+ export { p as default };
@@ -1,26 +1,29 @@
1
+ import { FieldSize } from '../utils/styles';
1
2
  import { ComponentProps } from 'react';
2
3
  /**
3
4
  * Everything ColorPicker opens: a saturation and brightness area, hue and
4
5
  * alpha sliders, the hex, and your swatches. Use it inline, or in a popup of
5
6
  * your own. Values are hex: "#rrggbb", or "#rrggbbaa" with `alpha`.
6
7
  */
7
- export declare function ColorPanel({ value, onChange, onValueCommit, alpha, swatches, className, ...rest }: ColorPanelProps): import('react').JSX.Element;
8
+ export declare function ColorPanel({ value: valueProp, defaultValue, onValueChange, onValueCommit, alpha, swatches, className, ...rest }: ColorPanelProps): import('react').JSX.Element;
8
9
  /**
9
10
  * A field showing a colour and its hex that opens a ColorPanel: drag or use
10
11
  * the arrow keys in the area, slide the hue (and opacity, with `alpha`), type
11
12
  * a hex or pick a swatch. Works in a Field like any input.
12
13
  */
13
- export default function ColorPicker({ value, onChange, onValueCommit, alpha, swatches, id, disabled, className, style, ...rest }: ColorPickerProps): import('react').JSX.Element;
14
+ export default function ColorPicker({ value: valueProp, defaultValue, onValueChange, onValueCommit, alpha, swatches, name, size, id, disabled, className, style, ...rest }: ColorPickerProps): import('react').JSX.Element;
14
15
  export interface ColorSwatch {
15
16
  label: string;
16
17
  /** Hex, like the picker's value. */
17
18
  value: string;
18
19
  }
19
20
  interface ColorValueProps {
20
- /** "#rrggbb", or "#rrggbbaa" with `alpha`. */
21
- value: string;
21
+ /** "#rrggbb", or "#rrggbbaa" with `alpha`, when you keep it. */
22
+ value?: string;
23
+ /** The first colour, when the picker keeps its own. Black by default. */
24
+ defaultValue?: string;
22
25
  /** Every change, while dragging too. */
23
- onChange: (value: string) => void;
26
+ onValueChange?: (value: string) => void;
24
27
  /** Once a change is made: let go of the area or a slider, a key, a hex entered, a swatch picked. */
25
28
  onValueCommit?: (value: string) => void;
26
29
  /** Offer opacity; values may then be "#rrggbbaa". */
@@ -28,9 +31,13 @@ interface ColorValueProps {
28
31
  /** Colours to pick in one press, such as your theme's. */
29
32
  swatches?: ColorSwatch[];
30
33
  }
31
- export interface ColorPanelProps extends ColorValueProps, Omit<ComponentProps<'div'>, 'onChange'> {
34
+ export interface ColorPanelProps extends ColorValueProps, Omit<ComponentProps<'div'>, 'defaultValue'> {
32
35
  }
33
- export interface ColorPickerProps extends ColorValueProps, Omit<ComponentProps<'button'>, 'value' | 'onChange'> {
36
+ export interface ColorPickerProps extends ColorValueProps, Omit<ComponentProps<'button'>, 'value' | 'defaultValue'> {
37
+ /** Form field name: the hex is submitted with the form. */
38
+ name?: string;
39
+ /** Height, matching Button's: sm (32px), default (40px) or lg (44px). */
40
+ size?: FieldSize;
34
41
  }
35
42
  export {};
36
43
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/color-picker/index.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAgD,MAAM,OAAO,CAAC;AAmBrF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACvB,KAAK,EACL,QAAQ,EACR,aAAa,EACb,KAAa,EACb,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACV,EAAE,eAAe,+BAgJjB;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAChC,KAAK,EACL,QAAQ,EACR,aAAa,EACb,KAAK,EACL,QAAQ,EACR,EAAE,EACF,QAAQ,EACR,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACV,EAAE,gBAAgB,+BAyClB;AAED,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,eAAe;IACrB,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,oGAAoG;IACpG,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,qDAAqD;IACrD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,eAAgB,SAAQ,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC;CAAG;AAEpG,MAAM,WAAW,gBAAiB,SAAQ,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;CAAG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../packages/color-picker/index.tsx"],"names":[],"mappings":"AASA,OAAO,EAAc,KAAK,SAAS,EAAgC,MAAM,mBAAmB,CAAC;AAE7F,OAAO,EAAE,cAAc,EAAgD,MAAM,OAAO,CAAC;AAmBrF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACvB,KAAK,EAAE,SAAS,EAChB,YAAwB,EACxB,aAAa,EACb,aAAa,EACb,KAAa,EACb,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACV,EAAE,eAAe,+BAkJjB;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAChC,KAAK,EAAE,SAAS,EAChB,YAAwB,EACxB,aAAa,EACb,aAAa,EACb,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,IAAgB,EAChB,EAAE,EACF,QAAQ,EACR,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACV,EAAE,gBAAgB,+BAmDlB;AAED,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,eAAe;IACrB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,oGAAoG;IACpG,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,qDAAqD;IACrD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,eAAgB,SAAQ,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;CAAG;AAExG,MAAM,WAAW,gBAAiB,SAAQ,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,cAAc,CAAC;IAC/G,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,IAAI,CAAC,EAAE,SAAS,CAAC;CACpB"}