@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,5 +1,12 @@
1
1
  /** Shared field look: faint glass, a hairline in the glow colour (white would grey it out) lit by the pointer, violet glow on focus. */
2
2
  export declare const FIELD: string;
3
+ /** Field heights, matching Button's sizes (sm, default, lg) so a row of both lines up. */
4
+ export declare const FIELD_SIZE: {
5
+ readonly sm: "h-8 px-2.5";
6
+ readonly default: "";
7
+ readonly lg: "h-11 px-3.5";
8
+ };
9
+ export type FieldSize = keyof typeof FIELD_SIZE;
3
10
  /**
4
11
  * Placeholder text in a trigger that shows one (Select, MonthPicker, DatePicker…). Fields use the same
5
12
  * colours through placeholder: in FIELD. --zen-placeholder dims it on dark glass, so a placeholder can't
@@ -7,9 +14,9 @@ export declare const FIELD: string;
7
14
  */
8
15
  export declare const PLACEHOLDER = "text-[color:oklch(var(--muted-foreground)/var(--zen-placeholder))]";
9
16
  /** A picker's previous/next arrows (Calendar, MonthPicker). */
10
- export declare const PICKER_NAV = "text-muted-foreground cursor-pointer hover:bg-tint/[0.07] hover:text-foreground focus-visible:ring-ring/50 grid size-8 place-items-center rounded-md outline-hidden transition-colors focus-visible:ring-2";
17
+ export declare const PICKER_NAV = "text-muted-foreground cursor-pointer hover:bg-tint/[0.07] hover:text-foreground grid size-8 place-items-center rounded-md outline-hidden transition-colors focus-ring";
11
18
  /** A month in a picker's month grid (Calendar, MonthPicker); add PICKER_MONTH_ON for the chosen one. */
12
- export declare const PICKER_MONTH = "cursor-pointer rounded-lg py-2 text-sm outline-hidden transition-colors disabled:cursor-not-allowed disabled:opacity-35 focus-visible:ring-ring/50 focus-visible:ring-2 hover:bg-tint/[0.07]";
19
+ export declare const PICKER_MONTH = "cursor-pointer rounded-lg py-2 text-sm outline-hidden transition-colors disabled:cursor-not-allowed disabled:opacity-35 focus-ring hover:bg-tint/[0.07]";
13
20
  export declare const PICKER_MONTH_ON = "bg-primary text-primary-foreground hover:bg-primary";
14
21
  /** Glow a trigger carries while its popup is open. */
15
22
  export declare const TRIGGER_OPEN = "border-glow/60 [--glow-border-color:transparent] shadow-glow-focus";
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../packages/utils/styles.ts"],"names":[],"mappings":"AAEA,wIAAwI;AACxI,eAAO,MAAM,KAAK,QAKmC,CAAC;AAEtD;;;;GAIG;AACH,eAAO,MAAM,WAAW,uEAAuE,CAAC;AAEhG,+DAA+D;AAC/D,eAAO,MAAM,UAAU,+MACyL,CAAC;AAEjN,wGAAwG;AACxG,eAAO,MAAM,YAAY,iMACyK,CAAC;AACnM,eAAO,MAAM,eAAe,wDAAwD,CAAC;AAErF,sDAAsD;AACtD,eAAO,MAAM,YAAY,uEAAuE,CAAC;AAEjG,0EAA0E;AAC1E,eAAO,MAAM,OAAO,QAA+F,CAAC;AAEpH,oEAAoE;AACpE,eAAO,MAAM,KAAK,sJACqI,CAAC;AAExJ,0DAA0D;AAC1D,eAAO,MAAM,UAAU,0GACoF,CAAC;AAE5G,oHAAoH;AACpH,eAAO,MAAM,cAAc,gOACsM,CAAC;AAElO;mGACmG;AACnG,eAAO,MAAM,IAAI,QAEkG,CAAC;AAEpH;;;;GAIG;AACH,eAAO,MAAM,YAAY,QAK4B,CAAC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../packages/utils/styles.ts"],"names":[],"mappings":"AAEA,wIAAwI;AACxI,eAAO,MAAM,KAAK,QAKmC,CAAC;AAEtD,0FAA0F;AAC1F,eAAO,MAAM,UAAU;;;;CAAgE,CAAC;AACxF,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,UAAU,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,WAAW,uEAAuE,CAAC;AAEhG,+DAA+D;AAC/D,eAAO,MAAM,UAAU,0KACoJ,CAAC;AAE5K,wGAAwG;AACxG,eAAO,MAAM,YAAY,4JACoI,CAAC;AAC9J,eAAO,MAAM,eAAe,wDAAwD,CAAC;AAErF,sDAAsD;AACtD,eAAO,MAAM,YAAY,uEAAuE,CAAC;AAEjG,0EAA0E;AAC1E,eAAO,MAAM,OAAO,QAA+F,CAAC;AAEpH,oEAAoE;AACpE,eAAO,MAAM,KAAK,sJACqI,CAAC;AAExJ,0DAA0D;AAC1D,eAAO,MAAM,UAAU,0GACoF,CAAC;AAE5G,oHAAoH;AACpH,eAAO,MAAM,cAAc,gOACsM,CAAC;AAElO;mGACmG;AACnG,eAAO,MAAM,IAAI,QAEkG,CAAC;AAEpH;;;;GAIG;AACH,eAAO,MAAM,YAAY,QAK4B,CAAC"}
@@ -1,6 +1,9 @@
1
- "use client";
2
1
  import { cx as e } from "./cx.js";
3
2
  //#region packages/utils/styles.ts
4
- var t = "glow-border h-10 rounded-lg border [--glow-border-color:oklch(var(--glow)/0.22)] bg-tint/[0.035] px-3 text-sm text-foreground shadow-[inset_0_1px_0_hsl(0_0%_100%/0.04)] transition-[border-color,background-color,box-shadow,--glow-border-color] duration-200 placeholder:text-[color:oklch(var(--muted-foreground)/var(--zen-placeholder))] hover:[--glow-border-color:oklch(var(--glow)/0.4)] focus-visible:border-glow/60 focus-visible:[--glow-border-color:transparent] focus-visible:bg-tint/[0.05] focus-visible:shadow-glow-focus focus-visible:outline-hidden disabled:cursor-not-allowed disabled:opacity-50", n = "text-[color:oklch(var(--muted-foreground)/var(--zen-placeholder))]", r = "text-muted-foreground cursor-pointer hover:bg-tint/[0.07] hover:text-foreground focus-visible:ring-ring/50 grid size-8 place-items-center rounded-md outline-hidden transition-colors focus-visible:ring-2", i = "cursor-pointer rounded-lg py-2 text-sm outline-hidden transition-colors disabled:cursor-not-allowed disabled:opacity-35 focus-visible:ring-ring/50 focus-visible:ring-2 hover:bg-tint/[0.07]", a = "bg-primary text-primary-foreground hover:bg-primary", o = "border-glow/60 [--glow-border-color:transparent] shadow-glow-focus", s = e(t, "inline-flex cursor-pointer items-center justify-between gap-2 whitespace-nowrap"), c = "glass glass-blur rounded-xl text-foreground shadow-[var(--popup-shadow),0_0_40px_-20px_oklch(var(--glow)/calc(0.5*var(--glow-k)))] outline-hidden", l = "glow-edge relative flex w-fit items-center gap-1 rounded-full border border-tint/5 bg-tint/[0.03] p-1", u = "absolute top-1 bottom-1 left-0 rounded-full bg-primary/15 shadow-[inset_0_0_0_1px_oklch(var(--glow)/0.35),0_0_24px_-4px_oklch(var(--glow)/calc(0.6*var(--glow-k)))] transition-[translate,width] duration-500 ease-out-soft", d = "relative z-10 cursor-pointer disabled:cursor-not-allowed rounded-full px-3.5 py-1.5 text-sm whitespace-nowrap outline-hidden transition-[color] duration-300 select-none focus-visible:ring-2 focus-visible:ring-ring/40 text-muted-foreground hover:text-foreground aria-[current=page]:text-foreground aria-selected:text-foreground", f = "glow-border flex w-full items-center gap-1.5 h-10 rounded-lg border [--glow-border-color:oklch(var(--glow)/0.22)] bg-tint/[0.035] px-3 text-sm text-foreground shadow-[inset_0_1px_0_hsl(0_0%_100%/0.04)] transition-[border-color,background-color,box-shadow,--glow-border-color] duration-200 placeholder:text-[color:oklch(var(--muted-foreground)/var(--zen-placeholder))] hover:[--glow-border-color:oklch(var(--glow)/0.4)] focus-within:border-glow/60 focus-within:[--glow-border-color:transparent] focus-within:bg-tint/[0.05] focus-within:shadow-glow-focus focus-within:outline-hidden disabled:cursor-not-allowed disabled:opacity-50";
3
+ var t = "glow-border h-10 rounded-lg border [--glow-border-color:oklch(var(--glow)/0.22)] bg-tint/[0.035] px-3 text-sm text-foreground shadow-[inset_0_1px_0_hsl(0_0%_100%/0.04)] transition-[border-color,background-color,box-shadow,--glow-border-color] duration-200 placeholder:text-[color:oklch(var(--muted-foreground)/var(--zen-placeholder))] hover:[--glow-border-color:oklch(var(--glow)/0.4)] focus-visible:border-glow/60 focus-visible:[--glow-border-color:transparent] focus-visible:bg-tint/[0.05] focus-visible:shadow-glow-focus focus-visible:outline-hidden disabled:cursor-not-allowed disabled:opacity-50", n = {
4
+ sm: "h-8 px-2.5",
5
+ default: "",
6
+ lg: "h-11 px-3.5"
7
+ }, r = "text-[color:oklch(var(--muted-foreground)/var(--zen-placeholder))]", i = "text-muted-foreground cursor-pointer hover:bg-tint/[0.07] hover:text-foreground grid size-8 place-items-center rounded-md outline-hidden transition-colors focus-ring", a = "cursor-pointer rounded-lg py-2 text-sm outline-hidden transition-colors disabled:cursor-not-allowed disabled:opacity-35 focus-ring hover:bg-tint/[0.07]", o = "bg-primary text-primary-foreground hover:bg-primary", s = "border-glow/60 [--glow-border-color:transparent] shadow-glow-focus", c = e(t, "inline-flex cursor-pointer items-center justify-between gap-2 whitespace-nowrap"), l = "glass glass-blur rounded-xl text-foreground shadow-[var(--popup-shadow),0_0_40px_-20px_oklch(var(--glow)/calc(0.5*var(--glow-k)))] outline-hidden", u = "glow-edge relative flex w-fit items-center gap-1 rounded-full border border-tint/5 bg-tint/[0.03] p-1", d = "absolute top-1 bottom-1 left-0 rounded-full bg-primary/15 shadow-[inset_0_0_0_1px_oklch(var(--glow)/0.35),0_0_24px_-4px_oklch(var(--glow)/calc(0.6*var(--glow-k)))] transition-[translate,width] duration-500 ease-out-soft", f = "relative z-10 cursor-pointer disabled:cursor-not-allowed rounded-full px-3.5 py-1.5 text-sm whitespace-nowrap outline-hidden transition-[color] duration-300 select-none focus-ring text-muted-foreground hover:text-foreground aria-[current=page]:text-foreground aria-selected:text-foreground", p = "glow-border flex w-full items-center gap-1.5 h-10 rounded-lg border [--glow-border-color:oklch(var(--glow)/0.22)] bg-tint/[0.035] px-3 text-sm text-foreground shadow-[inset_0_1px_0_hsl(0_0%_100%/0.04)] transition-[border-color,background-color,box-shadow,--glow-border-color] duration-200 placeholder:text-[color:oklch(var(--muted-foreground)/var(--zen-placeholder))] hover:[--glow-border-color:oklch(var(--glow)/0.4)] focus-within:border-glow/60 focus-within:[--glow-border-color:transparent] focus-within:bg-tint/[0.05] focus-within:shadow-glow-focus focus-within:outline-hidden disabled:cursor-not-allowed disabled:opacity-50";
5
8
  //#endregion
6
- export { t as FIELD, f as FIELD_WITHIN, i as PICKER_MONTH, a as PICKER_MONTH_ON, r as PICKER_NAV, d as PILL, u as PILL_INDICATOR, l as PILL_TRACK, n as PLACEHOLDER, c as POPUP, s as TRIGGER, o as TRIGGER_OPEN };
9
+ export { t as FIELD, n as FIELD_SIZE, p as FIELD_WITHIN, a as PICKER_MONTH, o as PICKER_MONTH_ON, i as PICKER_NAV, f as PILL, d as PILL_INDICATOR, u as PILL_TRACK, r as PLACEHOLDER, l as POPUP, c as TRIGGER, s as TRIGGER_OPEN };
@@ -1 +1 @@
1
- {"version":3,"file":"theme-wave.d.ts","sourceRoot":"","sources":["../../packages/utils/theme-wave.ts"],"names":[],"mappings":"AA2NA;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CACrB,MAAM,EAAE,MAAM,IAAI,EAClB,IAAI,CAAC,EAAE,OAAO,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EAChD,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,GACxB,IAAI,CAyKN"}
1
+ {"version":3,"file":"theme-wave.d.ts","sourceRoot":"","sources":["../../packages/utils/theme-wave.ts"],"names":[],"mappings":"AA4NA;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAIvC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,CACrB,MAAM,EAAE,MAAM,IAAI,EAClB,IAAI,CAAC,EAAE,OAAO,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EAChD,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,GACxB,IAAI,CAyKN"}
@@ -1,19 +1,19 @@
1
- "use client";
2
1
  import { applyGraphicsMode as e } from "./graphics.js";
3
2
  import { reducedMotion as t } from "./motion.js";
4
- import { changeTheme as n, oklchToLinearRgb as r } from "./theme.js";
3
+ import { linearToSrgb as n } from "./color.js";
4
+ import { changeTheme as r, oklchToLinearRgb as i } from "./theme.js";
5
5
  //#region packages/utils/theme-wave.ts
6
- var i = 1330, a = [
6
+ var a = 1330, o = [
7
7
  .25,
8
8
  .55,
9
9
  .35,
10
10
  1
11
- ], o = 1050, s = [
11
+ ], s = 1050, c = [
12
12
  .55,
13
13
  0,
14
14
  .85,
15
15
  .35
16
- ], c = .05, l = 36, u = [
16
+ ], l = .05, u = 36, d = [
17
17
  [
18
18
  3,
19
19
  1.9,
@@ -29,15 +29,15 @@ var i = 1330, a = [
29
29
  4.1,
30
30
  .2
31
31
  ]
32
- ], d = 48, f = 72, p = 28, m = "zen-theme-waving", h = "zen-theme-closing", g = "zen-theme-water", _ = "zen-theme-area", v = 0, y = null;
33
- function b() {
34
- y && y.style.setProperty("view-transition-name", y.name, y.priority), y = null;
32
+ ], f = 48, p = 72, m = 28, h = "zen-theme-waving", g = "zen-theme-closing", _ = "zen-theme-water", v = "zen-theme-area", y = 0, b = null;
33
+ function x() {
34
+ b && b.style.setProperty("view-transition-name", b.name, b.priority), b = null;
35
35
  }
36
- function x(e, t, n) {
36
+ function S(e, t, n) {
37
37
  let r = Math.min(1, Math.max(0, (n - e) / (t - e)));
38
38
  return r * r * (3 - 2 * r);
39
39
  }
40
- function S([e, t, n, r], i) {
40
+ function C([e, t, n, r], i) {
41
41
  let a = (e, t, n) => 3 * e * n * (1 - n) ** 2 + 3 * t * n ** 2 * (1 - n) + n ** 3, o = 0, s = 1;
42
42
  for (let t = 0; t < 24; t++) {
43
43
  let t = (o + s) / 2;
@@ -45,10 +45,10 @@ function S([e, t, n, r], i) {
45
45
  }
46
46
  return a(t, r, (o + s) / 2);
47
47
  }
48
- function C(e, t, n, r) {
49
- return Math.min(l, c * t) * u.reduce((t, [i, a, o], s) => t + o * Math.sin(i * e + a * n + r * (s + 1)), 0);
48
+ function w(e, t, n, r) {
49
+ return Math.min(u, l * t) * d.reduce((t, [i, a, o], s) => t + o * Math.sin(i * e + a * n + r * (s + 1)), 0);
50
50
  }
51
- var w = `
51
+ var T = `
52
52
  precision highp float;
53
53
  uniform vec2 res;
54
54
  uniform float dpr;
@@ -64,8 +64,8 @@ uniform vec3 aurora[3];
64
64
  uniform float light;
65
65
 
66
66
  float wobble(float a, float r) {
67
- float size = min(${l.toFixed(1)}, ${c.toFixed(3)} * r);
68
- return size * (${u.map(([e, t, n], r) => `${n.toFixed(2)} * sin(${e.toFixed(1)} * a + ${t.toFixed(2)} * time + seed * ${(r + 1).toFixed(1)})`).join(" + ")});
67
+ float size = min(${u.toFixed(1)}, ${l.toFixed(3)} * r);
68
+ return size * (${d.map(([e, t, n], r) => `${n.toFixed(2)} * sin(${e.toFixed(1)} * a + ${t.toFixed(2)} * time + seed * ${(r + 1).toFixed(1)})`).join(" + ")});
69
69
  }
70
70
 
71
71
  // A train of ripples whose front is x px away (ahead of it when positive, as it moves):
@@ -73,8 +73,8 @@ float wobble(float a, float r) {
73
73
  // the train faster than it spreads, as on water. Its slope (height per px of x): the
74
74
  // ripples are a fixed size, as real ones are, however big the water.
75
75
  float rippleSlope(float x) {
76
- float k = 6.2832 / ${p.toFixed(1)};
77
- float reach = x < 0.0 ? ${(2.5 * p).toFixed(1)} : ${(.35 * p).toFixed(1)};
76
+ float k = 6.2832 / ${m.toFixed(1)};
77
+ float reach = x < 0.0 ? ${(2.5 * m).toFixed(1)} : ${(.35 * m).toFixed(1)};
78
78
  float phase = k * x - 7.0 * time;
79
79
  return exp(-x * x / (2.0 * reach * reach)) * (-x / (reach * reach) * cos(phase) / k - sin(phase));
80
80
  }
@@ -122,18 +122,18 @@ void main() {
122
122
  color = clamp(color, 0.0, 1.0);
123
123
  float cover = max(color.r, max(color.g, color.b));
124
124
  gl_FragColor = vec4(color, cover + shade * (1.0 - cover));
125
- }`, T = "attribute vec2 at; void main() { gl_Position = vec4(at, 0.0, 1.0); }", E;
126
- function D() {
127
- if (E !== void 0) return E;
128
- E = null;
125
+ }`, E = "attribute vec2 at; void main() { gl_Position = vec4(at, 0.0, 1.0); }", D;
126
+ function O() {
127
+ if (D !== void 0) return D;
128
+ D = null;
129
129
  let e = document.createElement("canvas");
130
- e.setAttribute("aria-hidden", "true"), e.style.cssText = `position:fixed;pointer-events:none;z-index:2147483647;view-transition-name:${g} !important`;
130
+ e.setAttribute("aria-hidden", "true"), e.style.cssText = `position:fixed;pointer-events:none;z-index:2147483647;view-transition-name:${_} !important`;
131
131
  let t = e.getContext("webgl", {
132
132
  premultipliedAlpha: !0,
133
133
  antialias: !1
134
134
  }), n = t?.createProgram();
135
135
  if (!t || !n) return null;
136
- for (let [e, r] of [[t.VERTEX_SHADER, T], [t.FRAGMENT_SHADER, w]]) {
136
+ for (let [e, r] of [[t.VERTEX_SHADER, E], [t.FRAGMENT_SHADER, T]]) {
137
137
  let i = t.createShader(e);
138
138
  if (!i) return null;
139
139
  t.shaderSource(i, r), t.compileShader(i), t.attachShader(n, i);
@@ -148,95 +148,95 @@ function D() {
148
148
  3
149
149
  ]), t.STATIC_DRAW), t.enableVertexAttribArray(0), t.vertexAttribPointer(0, 2, t.FLOAT, !1, 0, 0);
150
150
  let r = /* @__PURE__ */ new Map();
151
- return E = {
151
+ return D = {
152
152
  canvas: e,
153
153
  gl: t,
154
154
  uniform: (e) => (r.has(e) || r.set(e, t.getUniformLocation(n, e)), r.get(e))
155
- }, E;
155
+ }, D;
156
156
  }
157
- function O(e) {
157
+ function k(e) {
158
158
  e.gl.clear(e.gl.COLOR_BUFFER_BIT), e.canvas.remove();
159
159
  }
160
- function k(e) {
161
- return r(e).map((e) => e <= .0031308 ? 12.92 * e : 1.055 * e ** (1 / 2.4) - .055);
160
+ function A(e) {
161
+ return i(e).map(n);
162
162
  }
163
- function A() {
163
+ function j() {
164
164
  return !t() && !!document.startViewTransition && e() !== "lite";
165
165
  }
166
- function j() {
167
- if (E !== void 0 || !A()) return;
168
- let e = D();
166
+ function M() {
167
+ if (D !== void 0 || !j()) return;
168
+ let e = O();
169
169
  e?.gl.drawArrays(e.gl.TRIANGLES, 0, 3);
170
170
  }
171
- function M(e, t, r) {
172
- let c = document.documentElement, u = !!r && r !== c, p = window.innerWidth, w = window.innerHeight, T = u ? r.getBoundingClientRect() : new DOMRect(0, 0, p, w), E = Math.max(0, T.left), j = Math.max(0, T.top), M = Math.min(p, T.right), N = Math.min(w, T.bottom), P = A() && M > E && N > j ? D() : null;
171
+ function N(e, t, n) {
172
+ let i = document.documentElement, l = !!n && n !== i, d = window.innerWidth, m = window.innerHeight, T = l ? n.getBoundingClientRect() : new DOMRect(0, 0, d, m), E = Math.max(0, T.left), D = Math.max(0, T.top), M = Math.min(d, T.right), N = Math.min(m, T.bottom), P = j() && M > E && N > D ? O() : null;
173
173
  if (!P) {
174
- n(u ? r : c, e);
174
+ r(l ? n : i, e);
175
175
  return;
176
176
  }
177
- let F = (E + M) / 2, I = (j + N) / 2;
177
+ let F = (E + M) / 2, I = (D + N) / 2;
178
178
  if (t instanceof Element) {
179
179
  let e = t.getBoundingClientRect();
180
180
  F = e.left + e.width / 2, I = e.top + e.height / 2;
181
181
  } else t && ({x: F, y: I} = t);
182
- let L = Math.hypot(Math.max(F - T.left, T.right - F), Math.max(I - T.top, T.bottom - I)), R = Math.random() * 2 * Math.PI, z = L + l + 2, B = ++v;
183
- O(P), b(), c.classList.add(m);
184
- let V = u ? _ : "root";
185
- if (u) {
186
- let { style: e } = r;
187
- y = {
182
+ let L = Math.hypot(Math.max(F - T.left, T.right - F), Math.max(I - T.top, T.bottom - I)), R = Math.random() * 2 * Math.PI, z = L + u + 2, B = ++y;
183
+ k(P), x(), i.classList.add(h);
184
+ let V = l ? v : "root";
185
+ if (l) {
186
+ let { style: e } = n;
187
+ b = {
188
188
  style: e,
189
189
  name: e.getPropertyValue("view-transition-name"),
190
190
  priority: e.getPropertyPriority("view-transition-name")
191
- }, e.setProperty("view-transition-name", _, "important");
191
+ }, e.setProperty("view-transition-name", v, "important");
192
192
  }
193
193
  Object.assign(P.canvas.style, {
194
194
  left: `${E}px`,
195
- top: `${j}px`,
195
+ top: `${D}px`,
196
196
  width: `${M - E}px`,
197
- height: `${N - j}px`,
198
- clipPath: u ? `inset(${T.top - j}px ${M - T.right}px ${N - T.bottom}px ${T.left - E}px round ${getComputedStyle(r).borderRadius})` : ""
197
+ height: `${N - D}px`,
198
+ clipPath: l ? `inset(${T.top - D}px ${M - T.right}px ${N - T.bottom}px ${T.left - E}px round ${getComputedStyle(n).borderRadius})` : ""
199
199
  });
200
200
  let H = [], U = !1, W = document.startViewTransition(async () => {
201
201
  e(), await Promise.resolve();
202
- let t = getComputedStyle(u ? r : c);
203
- U = Number(t.getPropertyValue("--background").trim().split(" ")[0]) <= .5, c.classList.toggle(h, U);
204
- let n = t.getPropertyValue("--glow").trim(), [i, a, o] = n.split(" ").map(Number);
202
+ let t = getComputedStyle(l ? n : i);
203
+ U = Number(t.getPropertyValue("--background").trim().split(" ")[0]) <= .5, i.classList.toggle(g, U);
204
+ let r = t.getPropertyValue("--glow").trim(), [a, o, s] = r.split(" ").map(Number);
205
205
  H = [
206
- n,
206
+ r,
207
207
  t.getPropertyValue("--glow-2").trim(),
208
- `${i} ${a} ${(o + 240) % 360}`
209
- ].flatMap(k), document.body.append(P.canvas);
208
+ `${a} ${o} ${(s + 240) % 360}`
209
+ ].flatMap(A), document.body.append(P.canvas);
210
210
  });
211
211
  W.ready.then(() => {
212
- let e = U ? o : i, t = (e) => (U ? 1 - S(s, e) : S(a, e)) * z, n = `::view-transition-${U ? "old" : "new"}(${V})`, r = new DOMMatrix(getComputedStyle(c, `::view-transition-group(${g})`).transform), [l, p] = u ? [T.left, T.top] : [E - r.e, j - r.f], m = (n) => {
212
+ let e = U ? s : a, t = (e) => (U ? 1 - C(c, e) : C(o, e)) * z, n = `::view-transition-${U ? "old" : "new"}(${V})`, r = new DOMMatrix(getComputedStyle(i, `::view-transition-group(${_})`).transform), [u, d] = l ? [T.left, T.top] : [E - r.e, D - r.f], m = (n) => {
213
213
  let r = t(n), i = n * e / 1e3;
214
- return `polygon(${Array.from({ length: f }, (e, t) => {
215
- let n = t / f * 2 * Math.PI, a = Math.max(0, r + C(n, r, i, R));
216
- return `${(F - l + a * Math.cos(n)).toFixed(1)}px ${(I - p + a * Math.sin(n)).toFixed(1)}px`;
214
+ return `polygon(${Array.from({ length: p }, (e, t) => {
215
+ let n = t / p * 2 * Math.PI, a = Math.max(0, r + w(n, r, i, R));
216
+ return `${(F - u + a * Math.cos(n)).toFixed(1)}px ${(I - d + a * Math.sin(n)).toFixed(1)}px`;
217
217
  }).join(",")})`;
218
218
  }, h = Array.from({ length: 49 }, (e, t) => ({
219
- clipPath: m(t / d),
220
- offset: t / d
221
- })), _ = c.animate(h, {
219
+ clipPath: m(t / f),
220
+ offset: t / f
221
+ })), g = i.animate(h, {
222
222
  duration: e,
223
223
  pseudoElement: n
224
224
  });
225
- _.pause();
226
- let y, { canvas: b, gl: w, uniform: D } = P, k = Math.min(window.devicePixelRatio || 1, 2);
227
- b.width = Math.round((M - E) * k), b.height = Math.round((N - j) * k), w.viewport(0, 0, b.width, b.height), w.uniform2f(D("res"), b.width, b.height), w.uniform1f(D("dpr"), k), w.uniform2f(D("from"), F - E, I - j), w.uniform1f(D("seed"), R), w.uniform3fv(D("aurora[0]"), H), w.uniform1f(D("light"), +!U);
228
- let A = (e) => 1.6 * x(.05, .45, e) * (1 - e) ** 1.5, L = (n) => {
229
- if (B !== v) return;
230
- y ??= n;
231
- let r = Math.min(1, (n - y) / e);
232
- if (_.currentTime = r * e, r === 1) return _.finish(), O(P);
225
+ g.pause();
226
+ let v, { canvas: b, gl: x, uniform: O } = P, A = Math.min(window.devicePixelRatio || 1, 2);
227
+ b.width = Math.round((M - E) * A), b.height = Math.round((N - D) * A), x.viewport(0, 0, b.width, b.height), x.uniform2f(O("res"), b.width, b.height), x.uniform1f(O("dpr"), A), x.uniform2f(O("from"), F - E, I - D), x.uniform1f(O("seed"), R), x.uniform3fv(O("aurora[0]"), H), x.uniform1f(O("light"), +!U);
228
+ let j = (e) => 1.6 * S(.05, .45, e) * (1 - e) ** 1.5, L = (n) => {
229
+ if (B !== y) return;
230
+ v ??= n;
231
+ let r = Math.min(1, (n - v) / e);
232
+ if (g.currentTime = r * e, r === 1) return g.finish(), k(P);
233
233
  let i = t(r), a = Math.min(1, (1 - r) / .12), o, s;
234
- U ? (o = 1.6 * r * Math.sqrt(1 - r) * a, s = Math.min(1, r * 4) * Math.min(1, i / 24) * a) : (o = A(r) * a, s = Math.min(1, i / 40) * (1 - r ** 3) * a), w.uniform1f(D("time"), r * e / 1e3), w.uniform1f(D("edge"), i), w.uniform1f(D("dir"), U ? -1 : 1), w.uniform1f(D("strength"), o), w.uniform1f(D("prism"), s), w.drawArrays(w.TRIANGLES, 0, 3), requestAnimationFrame(L);
234
+ U ? (o = 1.6 * r * Math.sqrt(1 - r) * a, s = Math.min(1, r * 4) * Math.min(1, i / 24) * a) : (o = j(r) * a, s = Math.min(1, i / 40) * (1 - r ** 3) * a), x.uniform1f(O("time"), r * e / 1e3), x.uniform1f(O("edge"), i), x.uniform1f(O("dir"), U ? -1 : 1), x.uniform1f(O("strength"), o), x.uniform1f(O("prism"), s), x.drawArrays(x.TRIANGLES, 0, 3), requestAnimationFrame(L);
235
235
  };
236
236
  requestAnimationFrame(L);
237
237
  }).catch(() => {}), W.finished.finally(() => {
238
- B === v && (b(), c.classList.remove(m, h), O(P));
238
+ B === y && (x(), i.classList.remove(h, g), k(P));
239
239
  });
240
240
  }
241
241
  //#endregion
242
- export { j as prepareThemeWave, M as themeWave };
242
+ export { M as prepareThemeWave, N as themeWave };
@@ -1 +1 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../packages/utils/theme.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,WAAW,iDAAkD,CAAC;AAC3E,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AACrD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAE1C,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,SAAS,CAAC;IACrB,kEAAkE;IAClE,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC3B,QAAQ,EAAE,UAAU,GAAG,MAAM,CAAC;IAC9B,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IAChC,6DAA6D;IAC7D,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC5C;AAED,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcjB,CAAC;AACJ,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAEtD,gEAAgE;AAChE,eAAO,MAAM,aAAa,EAAE,aAQ3B,CAAC;AAEF,4DAA4D;AAC5D,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,GAAG,aAAa,CAG7E;AAED,6DAA6D;AAC7D,wBAAgB,SAAS,CACrB,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,WAAW,GAAG,MAAM,CAAC,CAAC,GAClE,aAAa,CAEf;AAQD,qFAAqF;AACrF,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,GAAE,UAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAyEvG;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACtB,KAAK,EAAE,aAAa,EACpB,EAAE,UAAmB,EAAE,MAAM,EAAE,GAAE;IAAE,UAAU,CAAC,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GACxF,IAAI,CAUN;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,GAAG,IAAI,CAWjE;AAED,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAGrD;AAED,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAkB1D;AAID,sDAAsD;AACtD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAa1E;AAED,wDAAwD;AACxD,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAO1D"}
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../packages/utils/theme.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,eAAO,MAAM,WAAW,iDAAkD,CAAC;AAC3E,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AACrD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAE1C,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC5B,8BAA8B;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,SAAS,CAAC;IACrB,kEAAkE;IAClE,IAAI,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC3B,QAAQ,EAAE,UAAU,GAAG,MAAM,CAAC;IAC9B,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IAChC,6DAA6D;IAC7D,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;CAC5C;AAED,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcjB,CAAC;AACJ,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAEtD,gEAAgE;AAChE,eAAO,MAAM,aAAa,EAAE,aAQ3B,CAAC;AAEF,4DAA4D;AAC5D,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,GAAG,aAAa,CAG7E;AAED,6DAA6D;AAC7D,wBAAgB,SAAS,CACrB,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,WAAW,GAAG,MAAM,CAAC,CAAC,GAClE,aAAa,CAEf;AAQD,qFAAqF;AACrF,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,UAAU,GAAE,UAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAyEvG;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CACtB,KAAK,EAAE,aAAa,EACpB,EAAE,UAAmB,EAAE,MAAM,EAAE,GAAE;IAAE,UAAU,CAAC,EAAE,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAO,GACxF,IAAI,CAUN;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,GAAG,IAAI,CAWjE;AAED,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAGrD;AAED,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,CAkB1D;AAID,sDAAsD;AACtD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAG1E;AAED,wDAAwD;AACxD,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAO1D"}
@@ -1,11 +1,11 @@
1
- "use client";
1
+ import { oklchToLinear as e } from "./color.js";
2
2
  //#region packages/utils/theme.ts
3
- var e = [
3
+ var t = [
4
4
  "mono",
5
5
  "muted",
6
6
  "balanced",
7
7
  "vivid"
8
- ], t = [
8
+ ], n = [
9
9
  {
10
10
  id: "violet",
11
11
  label: "Violet",
@@ -55,7 +55,7 @@ var e = [
55
55
  intensity: "mono",
56
56
  tint: "neutral"
57
57
  }
58
- ], n = {
58
+ ], r = {
59
59
  preset: "violet",
60
60
  hue: 295,
61
61
  intensity: "balanced",
@@ -64,8 +64,8 @@ var e = [
64
64
  glow: "soft",
65
65
  topography: "subtle"
66
66
  };
67
- function r(e, n) {
68
- let r = t.find((e) => e.id === n);
67
+ function i(e, t) {
68
+ let r = n.find((e) => e.id === t);
69
69
  return {
70
70
  ...e,
71
71
  preset: r.id,
@@ -74,21 +74,21 @@ function r(e, n) {
74
74
  tint: r.tint
75
75
  };
76
76
  }
77
- function i(e, t) {
77
+ function a(e, t) {
78
78
  return {
79
79
  ...e,
80
80
  ...t,
81
81
  preset: "custom"
82
82
  };
83
83
  }
84
- var a = {
84
+ var o = {
85
85
  mono: .012,
86
86
  muted: .07,
87
87
  balanced: .13,
88
88
  vivid: .19
89
- }, o = (e, t, n) => `${s(e, 3)} ${s(t, 3)} ${s((n % 360 + 360) % 360, 1)}`, s = (e, t) => Math.round(e * 10 ** t) / 10 ** t;
90
- function c(e, t = "dark") {
91
- let n = e.hue, r = a[e.intensity], i = e.contrast === "high", s = e.tint === "tinted" ? Math.min(.014, r * .12) : .003, c = e.intensity === "mono", l = (e, t = 1) => o(e, s * t, n), u = { "topo-strength": String({
89
+ }, s = (e, t, n) => `${c(e, 3)} ${c(t, 3)} ${c((n % 360 + 360) % 360, 1)}`, c = (e, t) => Math.round(e * 10 ** t) / 10 ** t;
90
+ function l(e, t = "dark") {
91
+ let n = e.hue, r = o[e.intensity], i = e.contrast === "high", a = e.tint === "tinted" ? Math.min(.014, r * .12) : .003, c = e.intensity === "mono", l = (e, t = 1) => s(e, a * t, n), u = { "topo-strength": String({
92
92
  off: 0,
93
93
  subtle: .55,
94
94
  visible: 1
@@ -98,27 +98,27 @@ function c(e, t = "dark") {
98
98
  });
99
99
  return t === "light" ? {
100
100
  background: l(i ? .995 : .985, .4),
101
- foreground: o(i ? .16 : .21, .02, n),
102
- card: o(1, 0, 0),
103
- "card-foreground": o(i ? .16 : .21, .02, n),
104
- popover: o(1, 0, 0),
105
- "popover-foreground": o(i ? .16 : .21, .02, n),
101
+ foreground: s(i ? .16 : .21, .02, n),
102
+ card: s(1, 0, 0),
103
+ "card-foreground": s(i ? .16 : .21, .02, n),
104
+ popover: s(1, 0, 0),
105
+ "popover-foreground": s(i ? .16 : .21, .02, n),
106
106
  secondary: l(.955, .6),
107
- "secondary-foreground": o(.21, .02, n),
107
+ "secondary-foreground": s(.21, .02, n),
108
108
  muted: l(.96, .5),
109
109
  "muted-foreground": l(i ? .42 : .5, 1.5),
110
110
  border: l(i ? .78 : .91, .8),
111
111
  input: l(i ? .78 : .91, .8),
112
- primary: o(c ? .3 : .48, c ? .02 : Math.min(.22, r * 1.5), n),
113
- "primary-foreground": o(.985, 0, 0),
114
- accent: o(.95, c ? .005 : r * .25, n),
115
- "accent-foreground": o(.42, c ? .02 : Math.min(.16, r * .9), n),
116
- ring: o(c ? .3 : .48, c ? .02 : Math.min(.22, r * 1.5), n),
117
- destructive: o(.55, .22, 25),
118
- "destructive-foreground": o(.985, 0, 0),
119
- glow: o(.62, c ? .02 : Math.min(.2, r * 1.4), n),
120
- "glow-2": o(.65, c ? .02 : r * 1.05, n + 30),
121
- tint: o(.21, .02, n),
112
+ primary: s(c ? .3 : .48, c ? .02 : Math.min(.22, r * 1.5), n),
113
+ "primary-foreground": s(.985, 0, 0),
114
+ accent: s(.95, c ? .005 : r * .25, n),
115
+ "accent-foreground": s(.42, c ? .02 : Math.min(.16, r * .9), n),
116
+ ring: s(c ? .3 : .48, c ? .02 : Math.min(.22, r * 1.5), n),
117
+ destructive: s(.55, .22, 25),
118
+ "destructive-foreground": s(.985, 0, 0),
119
+ glow: s(.62, c ? .02 : Math.min(.2, r * 1.4), n),
120
+ "glow-2": s(.65, c ? .02 : r * 1.05, n + 30),
121
+ tint: s(.21, .02, n),
122
122
  ...d({
123
123
  off: 0,
124
124
  soft: .4,
@@ -127,27 +127,27 @@ function c(e, t = "dark") {
127
127
  ...u
128
128
  } : {
129
129
  background: l(i ? .13 : .155),
130
- foreground: o(.97, .004, n),
130
+ foreground: s(.97, .004, n),
131
131
  card: l(i ? .17 : .195),
132
- "card-foreground": o(.97, .004, n),
132
+ "card-foreground": s(.97, .004, n),
133
133
  popover: l(i ? .18 : .21),
134
- "popover-foreground": o(.97, .004, n),
134
+ "popover-foreground": s(.97, .004, n),
135
135
  secondary: l(.25),
136
- "secondary-foreground": o(.97, .004, n),
136
+ "secondary-foreground": s(.97, .004, n),
137
137
  muted: l(.235),
138
138
  "muted-foreground": l(i ? .84 : .72, 1.5),
139
139
  border: l(i ? .4 : .28, 1.5),
140
140
  input: l(i ? .4 : .28, 1.5),
141
- primary: o(c ? .88 : .72, r, n),
142
- "primary-foreground": o(c ? .2 : .17, c ? .01 : .03, n),
143
- accent: o(.3, r * .35, n),
144
- "accent-foreground": o(.88, r * .5, n),
145
- ring: o(.72, r, n),
146
- destructive: o(.64, .2, 25),
147
- "destructive-foreground": o(.13, .02, 25),
148
- glow: o(.7, c ? .02 : r, n),
149
- "glow-2": o(.72, c ? .02 : r * .75, n + 30),
150
- tint: o(1, 0, 0),
141
+ primary: s(c ? .88 : .72, r, n),
142
+ "primary-foreground": s(c ? .2 : .17, c ? .01 : .03, n),
143
+ accent: s(.3, r * .35, n),
144
+ "accent-foreground": s(.88, r * .5, n),
145
+ ring: s(.72, r, n),
146
+ destructive: s(.64, .2, 25),
147
+ "destructive-foreground": s(.13, .02, 25),
148
+ glow: s(.7, c ? .02 : r, n),
149
+ "glow-2": s(.72, c ? .02 : r * .75, n + 30),
150
+ tint: s(1, 0, 0),
151
151
  ...d({
152
152
  off: 0,
153
153
  soft: .55,
@@ -156,13 +156,13 @@ function c(e, t = "dark") {
156
156
  ...u
157
157
  };
158
158
  }
159
- function l(e, { appearance: t = "dark", target: n } = {}) {
160
- let r = n ?? document.documentElement, i = Object.entries(c(e, t)).filter(([e, t]) => r.style.getPropertyValue(`--${e}`) !== t);
161
- i.length && u(r, () => {
159
+ function u(e, { appearance: t = "dark", target: n } = {}) {
160
+ let r = n ?? document.documentElement, i = Object.entries(l(e, t)).filter(([e, t]) => r.style.getPropertyValue(`--${e}`) !== t);
161
+ i.length && d(r, () => {
162
162
  for (let [e, t] of i) r.style.setProperty(`--${e}`, t);
163
163
  });
164
164
  }
165
- function u(e, t) {
165
+ function d(e, t) {
166
166
  if (document.documentElement.classList.contains("zen-theme-waving")) return t();
167
167
  e.setAttribute("data-zen-theme-applying", "");
168
168
  try {
@@ -171,16 +171,16 @@ function u(e, t) {
171
171
  e.removeAttribute("data-zen-theme-applying");
172
172
  }
173
173
  }
174
- function d(e) {
174
+ function f(e) {
175
175
  let t = e ?? document.documentElement;
176
- for (let e of Object.keys(c(n))) t.style.removeProperty(`--${e}`);
176
+ for (let e of Object.keys(l(r))) t.style.removeProperty(`--${e}`);
177
177
  }
178
- function f(r) {
179
- let i = typeof r == "object" && r ? r : {}, a = (e, t, n) => t.includes(e) ? e : n, o = n, s = t.map((e) => e.id);
178
+ function p(e) {
179
+ let i = typeof e == "object" && e ? e : {}, a = (e, t, n) => t.includes(e) ? e : n, o = r, s = n.map((e) => e.id);
180
180
  return {
181
181
  preset: typeof i.preset == "string" && (i.preset === "custom" || s.includes(i.preset)) ? i.preset : o.preset,
182
182
  hue: typeof i.hue == "number" && Number.isFinite(i.hue) ? (Math.round(i.hue) % 360 + 360) % 360 : o.hue,
183
- intensity: a(i.intensity, e, o.intensity),
183
+ intensity: a(i.intensity, t, o.intensity),
184
184
  tint: a(i.tint, ["neutral", "tinted"], o.tint),
185
185
  contrast: a(i.contrast, ["standard", "high"], o.contrast),
186
186
  glow: a(i.glow, [
@@ -195,20 +195,16 @@ function f(r) {
195
195
  ], o.topography)
196
196
  };
197
197
  }
198
- function p(e) {
199
- let [t, n, r] = e.split(" ").map(Number), i = n * Math.cos(r * Math.PI / 180), a = n * Math.sin(r * Math.PI / 180), o = (t + .3963377774 * i + .2158037573 * a) ** 3, s = (t - .1055613458 * i - .0638541728 * a) ** 3, c = (t - .0894841775 * i - 1.291485548 * a) ** 3, l = (e) => Math.min(1, Math.max(0, e));
200
- return [
201
- l(4.0767416621 * o - 3.3077115913 * s + .2309699292 * c),
202
- l(-1.2684380046 * o + 2.6097574011 * s - .3413193965 * c),
203
- l(-.0041960863 * o - .7034186147 * s + 1.707614701 * c)
204
- ];
198
+ function m(t) {
199
+ let [n, r, i] = t.split(" ").map(Number);
200
+ return e(n, r, i);
205
201
  }
206
- function m(e, t) {
202
+ function h(e, t) {
207
203
  let n = (e) => {
208
- let [t, n, r] = p(e);
204
+ let [t, n, r] = m(e);
209
205
  return .2126 * t + .7152 * n + .0722 * r;
210
206
  }, [r, i] = [n(e), n(t)].sort((e, t) => t - e);
211
207
  return (r + .05) / (i + .05);
212
208
  }
213
209
  //#endregion
214
- export { n as DEFAULT_THEME, e as INTENSITIES, t as PRESETS, r as applyPreset, l as applyTheme, u as changeTheme, m as contrastRatio, i as customize, f as normalizeTheme, p as oklchToLinearRgb, d as resetTheme, c as themeVars };
210
+ export { r as DEFAULT_THEME, t as INTENSITIES, n as PRESETS, i as applyPreset, u as applyTheme, d as changeTheme, h as contrastRatio, a as customize, p as normalizeTheme, m as oklchToLinearRgb, f as resetTheme, l as themeVars };
@@ -33,15 +33,18 @@ export declare function anchorFor(id: string): {
33
33
  /**
34
34
  * The popup's position: below the trigger (above it if there's no room below),
35
35
  * lined up with its start or end edge, or centred on it; `width` makes it as
36
- * wide as the trigger, or at least as wide. For parts that take their own
37
- * `align`/`offset` (PopoverContent, MenuContent). The same choices are kept as
38
- * custom properties, for placing it where anchor positioning isn't supported.
36
+ * wide as the trigger, or at least as wide. `side: 'beside'` puts it after the
37
+ * trigger instead (before it if there's no room), its top level with the
38
+ * trigger's, as a submenu opens. For parts that take their own `align`/`offset`
39
+ * (PopoverContent, MenuContent). The same choices are kept as custom
40
+ * properties, for placing it where anchor positioning isn't supported.
39
41
  */
40
- export declare function anchoredStyle(id: string, { align, offset, width }?: AnchorOptions): CSSProperties;
42
+ export declare function anchoredStyle(id: string, { align, offset, width, side }?: AnchorOptions): CSSProperties;
41
43
  interface AnchorOptions {
42
44
  align?: 'start' | 'end' | 'center';
43
45
  offset?: number;
44
46
  width?: 'match' | 'at-least';
47
+ side?: 'below' | 'beside';
45
48
  }
46
49
  /** Places the popup in `ref` against its trigger while it's open, where the browser can't. */
47
50
  export declare function useAnchorFallback(ref: RefObject<HTMLElement | null>): void;
@@ -1 +1 @@
1
- {"version":3,"file":"useAnchoredPopup.d.ts","sourceRoot":"","sources":["../../packages/utils/useAnchoredPopup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAmD,MAAM,OAAO,CAAC;AAElG;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,EAAE,EACrE,KAAe,EACf,MAAU,EACV,UAAkB,EAClB,YAAY,GACf,GAAE,oBAAyB;;;oBAgBb,OAAO;;;eA6CkD,aAAa;;;;;;;;;;;;;EAJpF;AAED,gGAAgG;AAChG,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM;;WACoC,aAAa;EACpF;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,KAAe,EAAE,MAAU,EAAE,KAAK,EAAE,GAAE,aAAkB,GAAG,aAAa,CAmBnH;AAED,UAAU,aAAa;IACnB,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;CAChC;AAYD,8FAA8F;AAC9F,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,QAiCnE;AAiCD,MAAM,WAAW,oBAAoB;IACjC,sFAAsF;IACtF,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IACnC,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C"}
1
+ {"version":3,"file":"useAnchoredPopup.d.ts","sourceRoot":"","sources":["../../packages/utils/useAnchoredPopup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAmD,MAAM,OAAO,CAAC;AAElG;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,EAAE,EACrE,KAAe,EACf,MAAU,EACV,UAAkB,EAClB,YAAY,GACf,GAAE,oBAAyB;;;oBAgBb,OAAO;;;eA6CkD,aAAa;;;;;;;;;;;;;EAJpF;AAED,gGAAgG;AAChG,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM;;WACoC,aAAa;EACpF;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CACzB,EAAE,EAAE,MAAM,EACV,EAAE,KAAe,EAAE,MAAU,EAAE,KAAK,EAAE,IAAc,EAAE,GAAE,aAAkB,GAC3E,aAAa,CAuBf;AAED,UAAU,aAAa;IACnB,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC7B,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC7B;AAYD,8FAA8F;AAC9F,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,QAiCnE;AA6CD,MAAM,WAAW,oBAAoB;IACjC,sFAAsF;IACtF,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IACnC,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C"}