@wow-two-beta/ui 0.0.71 → 0.0.72

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 (716) hide show
  1. package/dist/{chunk-VYFPLQPV.js → chunk-2L7KB7ZG.js} +4 -4
  2. package/dist/chunk-2L7KB7ZG.js.map +1 -0
  3. package/dist/{chunk-RNHY33US.js → chunk-2YBWJHVV.js} +5 -5
  4. package/dist/chunk-2YBWJHVV.js.map +1 -0
  5. package/dist/{chunk-ORYO55KN.js → chunk-5CZUTB7Q.js} +15 -15
  6. package/dist/chunk-5CZUTB7Q.js.map +1 -0
  7. package/dist/{chunk-QTHKG7MQ.js → chunk-5DRWPYQ2.js} +8 -8
  8. package/dist/chunk-5DRWPYQ2.js.map +1 -0
  9. package/dist/{chunk-D7ZFCHX5.js → chunk-6WPRGGCJ.js} +4 -4
  10. package/dist/chunk-6WPRGGCJ.js.map +1 -0
  11. package/dist/{chunk-XOUAFZ2E.js → chunk-AXSWZXPJ.js} +11 -11
  12. package/dist/chunk-AXSWZXPJ.js.map +1 -0
  13. package/dist/{chunk-VTRPW2QQ.js → chunk-BFQX2J5L.js} +14 -14
  14. package/dist/chunk-BFQX2J5L.js.map +1 -0
  15. package/dist/chunk-DQGWGXDZ.js +35 -0
  16. package/dist/chunk-DQGWGXDZ.js.map +1 -0
  17. package/dist/{chunk-UFTKE5U7.js → chunk-DRUWR4VC.js} +15 -15
  18. package/dist/chunk-DRUWR4VC.js.map +1 -0
  19. package/dist/{chunk-KD6MJOL5.js → chunk-DVN7XGVN.js} +16 -16
  20. package/dist/chunk-DVN7XGVN.js.map +1 -0
  21. package/dist/{chunk-LS4EGKUK.js → chunk-EI7EKA2V.js} +12 -12
  22. package/dist/chunk-EI7EKA2V.js.map +1 -0
  23. package/dist/{chunk-XFUD3RZK.js → chunk-FSKL2DAK.js} +10 -10
  24. package/dist/chunk-FSKL2DAK.js.map +1 -0
  25. package/dist/{chunk-OZBLEOLZ.js → chunk-GCBZ6FF7.js} +4 -4
  26. package/dist/chunk-GCBZ6FF7.js.map +1 -0
  27. package/dist/{chunk-GPMNI5MG.js → chunk-JU5KT24H.js} +6 -6
  28. package/dist/chunk-JU5KT24H.js.map +1 -0
  29. package/dist/{chunk-B4X7XXSM.js → chunk-NY7OZGNY.js} +5 -5
  30. package/dist/chunk-NY7OZGNY.js.map +1 -0
  31. package/dist/{chunk-D4ZT36AZ.js → chunk-PCRID2JL.js} +2 -2
  32. package/dist/chunk-PCRID2JL.js.map +1 -0
  33. package/dist/{chunk-KZLEHWAJ.js → chunk-PNHIAN3U.js} +5 -5
  34. package/dist/chunk-PNHIAN3U.js.map +1 -0
  35. package/dist/{chunk-3FJ7WWRB.js → chunk-Q3HSAOWW.js} +15 -14
  36. package/dist/chunk-Q3HSAOWW.js.map +1 -0
  37. package/dist/{chunk-X5JSX4PU.js → chunk-QVY7SIMR.js} +8 -8
  38. package/dist/chunk-QVY7SIMR.js.map +1 -0
  39. package/dist/{chunk-F4HGQMUI.js → chunk-SVSFK6TB.js} +2 -2
  40. package/dist/chunk-SVSFK6TB.js.map +1 -0
  41. package/dist/{chunk-XSW3NZDD.js → chunk-TOB23IBK.js} +18 -18
  42. package/dist/chunk-TOB23IBK.js.map +1 -0
  43. package/dist/{chunk-UMRRFZ4R.js → chunk-XU4ZOEMV.js} +4 -4
  44. package/dist/chunk-XU4ZOEMV.js.map +1 -0
  45. package/dist/{chunk-WKVWOAQV.js → chunk-Y423OHFD.js} +3 -3
  46. package/dist/chunk-Y423OHFD.js.map +1 -0
  47. package/dist/{chunk-SIAFOCT4.js → chunk-ZOK62HJB.js} +6 -6
  48. package/dist/chunk-ZOK62HJB.js.map +1 -0
  49. package/dist/domain/color/Gradient.d.ts +39 -0
  50. package/dist/domain/color/GradientType.d.ts +8 -0
  51. package/dist/domain/color/index.d.ts +3 -0
  52. package/dist/domain/color/index.js +4 -0
  53. package/dist/{hooks → foundation/hooks}/index.js +3 -3
  54. package/dist/{http → foundation/http}/index.js +2 -2
  55. package/dist/foundation/http/index.js.map +1 -0
  56. package/dist/foundation/icons/index.js +6 -0
  57. package/dist/{primitives → foundation/primitives}/index.js +4 -4
  58. package/dist/{themes → foundation/themes}/index.js +2 -2
  59. package/dist/{utils → foundation/utils}/index.js +3 -3
  60. package/dist/index.d.ts +13 -12
  61. package/dist/index.js +24 -23
  62. package/dist/{actions → presentation/actions}/button/Button.d.ts +1 -1
  63. package/dist/{actions → presentation/actions}/button/Button.variants.d.ts +1 -1
  64. package/dist/{actions → presentation/actions}/fab/FAB.variants.d.ts +1 -1
  65. package/dist/presentation/actions/index.js +11 -0
  66. package/dist/{actions → presentation/actions}/link/Link.variants.d.ts +1 -1
  67. package/dist/{actions → presentation/actions}/toggleButton/ToggleButton.d.ts +1 -1
  68. package/dist/{actions → presentation/actions}/toggleButton/ToggleButton.variants.d.ts +1 -1
  69. package/dist/presentation/actions/toggleButtonGroup/ToggleButtonGroup.d.ts +51 -0
  70. package/dist/{display → presentation/display}/avatar/Avatar.d.ts +1 -1
  71. package/dist/{display → presentation/display}/avatar/Avatar.variants.d.ts +1 -1
  72. package/dist/{display → presentation/display}/badge/Badge.variants.d.ts +1 -1
  73. package/dist/{display → presentation/display}/card/Card.d.ts +1 -1
  74. package/dist/{display → presentation/display}/code/Code.variants.d.ts +1 -1
  75. package/dist/{display → presentation/display}/heading/Heading.variants.d.ts +1 -1
  76. package/dist/{display → presentation/display}/index.js +11 -11
  77. package/dist/{display → presentation/display}/list/List.variants.d.ts +1 -1
  78. package/dist/{display → presentation/display}/tag/Tag.variants.d.ts +1 -1
  79. package/dist/{display → presentation/display}/text/Text.variants.d.ts +1 -1
  80. package/dist/{display → presentation/display}/tooltip/Tooltip.d.ts +1 -1
  81. package/dist/{feedback → presentation/feedback}/alertSimple/AlertSimple.variants.d.ts +1 -1
  82. package/dist/{feedback → presentation/feedback}/bannerSimple/BannerSimple.variants.d.ts +1 -1
  83. package/dist/{feedback → presentation/feedback}/index.js +10 -10
  84. package/dist/{feedback → presentation/feedback}/progressBar/ProgressBar.variants.d.ts +1 -1
  85. package/dist/{feedback → presentation/feedback}/skeleton/Skeleton.variants.d.ts +1 -1
  86. package/dist/{feedback → presentation/feedback}/spinner/Spinner.variants.d.ts +1 -1
  87. package/dist/{feedback → presentation/feedback}/toastSimple/ToastSimple.variants.d.ts +1 -1
  88. package/dist/{forms → presentation/forms}/InputStyles.d.ts +1 -1
  89. package/dist/{forms → presentation/forms}/checkbox/Checkbox.d.ts +1 -1
  90. package/dist/{forms → presentation/forms}/checkbox/Checkbox.variants.d.ts +1 -1
  91. package/dist/{forms → presentation/forms}/colorSwatch/ColorSwatch.variants.d.ts +1 -1
  92. package/dist/{forms → presentation/forms}/combobox/Combobox.d.ts +2 -2
  93. package/dist/{forms → presentation/forms}/index.js +15 -15
  94. package/dist/{forms → presentation/forms}/listbox/Listbox.d.ts +1 -1
  95. package/dist/{forms → presentation/forms}/listbox/Listbox.variants.d.ts +1 -1
  96. package/dist/{forms → presentation/forms}/multiSelect/MultiSelect.d.ts +1 -1
  97. package/dist/{forms → presentation/forms}/select/Select.d.ts +1 -1
  98. package/dist/{forms → presentation/forms}/select/Select.variants.d.ts +1 -1
  99. package/dist/{layout → presentation/layout}/container/Container.variants.d.ts +1 -1
  100. package/dist/{layout → presentation/layout}/divider/Divider.variants.d.ts +1 -1
  101. package/dist/{layout → presentation/layout}/grid/Grid.variants.d.ts +1 -1
  102. package/dist/presentation/layout/index.js +14 -0
  103. package/dist/{layout → presentation/layout}/navbar/Navbar.d.ts +1 -1
  104. package/dist/{layout → presentation/layout}/navbar/Navbar.variants.d.ts +1 -1
  105. package/dist/{layout → presentation/layout}/overlay/Overlay.d.ts +1 -1
  106. package/dist/{layout → presentation/layout}/overlay/Overlay.variants.d.ts +1 -1
  107. package/dist/{layout → presentation/layout}/section/Section.d.ts +1 -1
  108. package/dist/{layout → presentation/layout}/section/Section.variants.d.ts +1 -1
  109. package/dist/{layout → presentation/layout}/stack/Stack.variants.d.ts +1 -1
  110. package/dist/{layout → presentation/layout}/surface/Surface.d.ts +1 -1
  111. package/dist/{nav → presentation/nav}/index.js +12 -12
  112. package/dist/{nav → presentation/nav}/menu/Menu.d.ts +2 -2
  113. package/dist/{nav → presentation/nav}/menu/Menu.variants.d.ts +1 -1
  114. package/dist/{nav → presentation/nav}/menubar/Menubar.variants.d.ts +1 -1
  115. package/dist/{overlays → presentation/overlays}/bottomSheet/BottomSheet.d.ts +1 -1
  116. package/dist/{overlays → presentation/overlays}/drawer/Drawer.d.ts +1 -1
  117. package/dist/{overlays → presentation/overlays}/hoverCard/HoverCard.d.ts +1 -1
  118. package/dist/{overlays → presentation/overlays}/index.js +11 -11
  119. package/dist/presentation/overlays/index.js.map +1 -0
  120. package/dist/{overlays → presentation/overlays}/modal/Modal.d.ts +1 -1
  121. package/dist/{overlays → presentation/overlays}/popover/Popover.d.ts +2 -2
  122. package/package.json +58 -53
  123. package/dist/actions/index.js +0 -11
  124. package/dist/actions/toggleButtonGroup/ToggleButtonGroup.d.ts +0 -27
  125. package/dist/chunk-3FJ7WWRB.js.map +0 -1
  126. package/dist/chunk-B4X7XXSM.js.map +0 -1
  127. package/dist/chunk-D4ZT36AZ.js.map +0 -1
  128. package/dist/chunk-D7ZFCHX5.js.map +0 -1
  129. package/dist/chunk-F4HGQMUI.js.map +0 -1
  130. package/dist/chunk-GPMNI5MG.js.map +0 -1
  131. package/dist/chunk-KD6MJOL5.js.map +0 -1
  132. package/dist/chunk-KZLEHWAJ.js.map +0 -1
  133. package/dist/chunk-LS4EGKUK.js.map +0 -1
  134. package/dist/chunk-ORYO55KN.js.map +0 -1
  135. package/dist/chunk-OZBLEOLZ.js.map +0 -1
  136. package/dist/chunk-QTHKG7MQ.js.map +0 -1
  137. package/dist/chunk-RNHY33US.js.map +0 -1
  138. package/dist/chunk-SIAFOCT4.js.map +0 -1
  139. package/dist/chunk-UFTKE5U7.js.map +0 -1
  140. package/dist/chunk-UMRRFZ4R.js.map +0 -1
  141. package/dist/chunk-VTRPW2QQ.js.map +0 -1
  142. package/dist/chunk-VYFPLQPV.js.map +0 -1
  143. package/dist/chunk-WKVWOAQV.js.map +0 -1
  144. package/dist/chunk-X5JSX4PU.js.map +0 -1
  145. package/dist/chunk-XFUD3RZK.js.map +0 -1
  146. package/dist/chunk-XOUAFZ2E.js.map +0 -1
  147. package/dist/chunk-XSW3NZDD.js.map +0 -1
  148. package/dist/http/index.js.map +0 -1
  149. package/dist/icons/index.js +0 -6
  150. package/dist/layout/index.js +0 -14
  151. /package/dist/{actions → domain/color}/index.js.map +0 -0
  152. /package/dist/{hooks → foundation/hooks}/index.d.ts +0 -0
  153. /package/dist/{display → foundation/hooks}/index.js.map +0 -0
  154. /package/dist/{hooks → foundation/hooks}/useClipboard/index.d.ts +0 -0
  155. /package/dist/{hooks → foundation/hooks}/useClipboard/useClipboard.d.ts +0 -0
  156. /package/dist/{hooks → foundation/hooks}/useControlled/index.d.ts +0 -0
  157. /package/dist/{hooks → foundation/hooks}/useControlled/useControlled.d.ts +0 -0
  158. /package/dist/{hooks → foundation/hooks}/useDebounceHandler/index.d.ts +0 -0
  159. /package/dist/{hooks → foundation/hooks}/useDebounceHandler/useDebounceHandler.d.ts +0 -0
  160. /package/dist/{hooks → foundation/hooks}/useDisclosure/index.d.ts +0 -0
  161. /package/dist/{hooks → foundation/hooks}/useDisclosure/useDisclosure.d.ts +0 -0
  162. /package/dist/{hooks → foundation/hooks}/useEscape/index.d.ts +0 -0
  163. /package/dist/{hooks → foundation/hooks}/useEscape/useEscape.d.ts +0 -0
  164. /package/dist/{hooks → foundation/hooks}/useEventListener/index.d.ts +0 -0
  165. /package/dist/{hooks → foundation/hooks}/useEventListener/useEventListener.d.ts +0 -0
  166. /package/dist/{hooks → foundation/hooks}/useFocusTrap/index.d.ts +0 -0
  167. /package/dist/{hooks → foundation/hooks}/useFocusTrap/useFocusTrap.d.ts +0 -0
  168. /package/dist/{hooks → foundation/hooks}/useId/index.d.ts +0 -0
  169. /package/dist/{hooks → foundation/hooks}/useId/useId.d.ts +0 -0
  170. /package/dist/{hooks → foundation/hooks}/useMediaQuery/index.d.ts +0 -0
  171. /package/dist/{hooks → foundation/hooks}/useMediaQuery/useMediaQuery.d.ts +0 -0
  172. /package/dist/{hooks → foundation/hooks}/useOutsideClick/index.d.ts +0 -0
  173. /package/dist/{hooks → foundation/hooks}/useOutsideClick/useOutsideClick.d.ts +0 -0
  174. /package/dist/{hooks → foundation/hooks}/useReducedMotion/index.d.ts +0 -0
  175. /package/dist/{hooks → foundation/hooks}/useReducedMotion/useReducedMotion.d.ts +0 -0
  176. /package/dist/{hooks → foundation/hooks}/useResizeObserver/index.d.ts +0 -0
  177. /package/dist/{hooks → foundation/hooks}/useResizeObserver/useResizeObserver.d.ts +0 -0
  178. /package/dist/{hooks → foundation/hooks}/useScrollLock/index.d.ts +0 -0
  179. /package/dist/{hooks → foundation/hooks}/useScrollLock/useScrollLock.d.ts +0 -0
  180. /package/dist/{hooks → foundation/hooks}/useTypeahead/index.d.ts +0 -0
  181. /package/dist/{hooks → foundation/hooks}/useTypeahead/useTypeahead.d.ts +0 -0
  182. /package/dist/{http → foundation/http}/ApiError.d.ts +0 -0
  183. /package/dist/{http → foundation/http}/ApiResponse.d.ts +0 -0
  184. /package/dist/{http → foundation/http}/DateBrands.d.ts +0 -0
  185. /package/dist/{http → foundation/http}/ProblemDetails.d.ts +0 -0
  186. /package/dist/{http → foundation/http}/index.d.ts +0 -0
  187. /package/dist/{http → foundation/http}/temporalReviver.d.ts +0 -0
  188. /package/dist/{icons → foundation/icons}/Icon.d.ts +0 -0
  189. /package/dist/{icons → foundation/icons}/Spinner.d.ts +0 -0
  190. /package/dist/{icons → foundation/icons}/index.d.ts +0 -0
  191. /package/dist/{feedback → foundation/icons}/index.js.map +0 -0
  192. /package/dist/{primitives → foundation/primitives}/accessibleIcon/AccessibleIcon.d.ts +0 -0
  193. /package/dist/{primitives → foundation/primitives}/accessibleIcon/index.d.ts +0 -0
  194. /package/dist/{primitives → foundation/primitives}/anchoredPositioner/AnchoredPositioner.d.ts +0 -0
  195. /package/dist/{primitives → foundation/primitives}/anchoredPositioner/index.d.ts +0 -0
  196. /package/dist/{primitives → foundation/primitives}/announce/Announce.d.ts +0 -0
  197. /package/dist/{primitives → foundation/primitives}/announce/index.d.ts +0 -0
  198. /package/dist/{primitives → foundation/primitives}/collection/Collection.d.ts +0 -0
  199. /package/dist/{primitives → foundation/primitives}/collection/index.d.ts +0 -0
  200. /package/dist/{primitives → foundation/primitives}/colorModeProvider/ColorModeProvider.d.ts +0 -0
  201. /package/dist/{primitives → foundation/primitives}/colorModeProvider/index.d.ts +0 -0
  202. /package/dist/{primitives → foundation/primitives}/directionProvider/DirectionProvider.d.ts +0 -0
  203. /package/dist/{primitives → foundation/primitives}/directionProvider/index.d.ts +0 -0
  204. /package/dist/{primitives → foundation/primitives}/dismissableLayer/DismissableLayer.d.ts +0 -0
  205. /package/dist/{primitives → foundation/primitives}/dismissableLayer/index.d.ts +0 -0
  206. /package/dist/{primitives → foundation/primitives}/focusScope/FocusScope.d.ts +0 -0
  207. /package/dist/{primitives → foundation/primitives}/focusScope/index.d.ts +0 -0
  208. /package/dist/{primitives → foundation/primitives}/formControlContext/FormControlContext.d.ts +0 -0
  209. /package/dist/{primitives → foundation/primitives}/formControlContext/index.d.ts +0 -0
  210. /package/dist/{primitives → foundation/primitives}/index.d.ts +0 -0
  211. /package/dist/{forms → foundation/primitives}/index.js.map +0 -0
  212. /package/dist/{primitives → foundation/primitives}/overlayArrow/OverlayArrow.d.ts +0 -0
  213. /package/dist/{primitives → foundation/primitives}/overlayArrow/index.d.ts +0 -0
  214. /package/dist/{primitives → foundation/primitives}/portal/Portal.d.ts +0 -0
  215. /package/dist/{primitives → foundation/primitives}/portal/index.d.ts +0 -0
  216. /package/dist/{primitives → foundation/primitives}/presence/Presence.d.ts +0 -0
  217. /package/dist/{primitives → foundation/primitives}/presence/index.d.ts +0 -0
  218. /package/dist/{primitives → foundation/primitives}/rovingFocusGroup/RovingFocusGroup.d.ts +0 -0
  219. /package/dist/{primitives → foundation/primitives}/rovingFocusGroup/index.d.ts +0 -0
  220. /package/dist/{primitives → foundation/primitives}/scrollLockProvider/ScrollLockProvider.d.ts +0 -0
  221. /package/dist/{primitives → foundation/primitives}/scrollLockProvider/index.d.ts +0 -0
  222. /package/dist/{primitives → foundation/primitives}/slot/Slot.d.ts +0 -0
  223. /package/dist/{primitives → foundation/primitives}/slot/index.d.ts +0 -0
  224. /package/dist/{primitives → foundation/primitives}/visuallyHidden/VisuallyHidden.d.ts +0 -0
  225. /package/dist/{primitives → foundation/primitives}/visuallyHidden/index.d.ts +0 -0
  226. /package/dist/{themes → foundation/themes}/Oklch.d.ts +0 -0
  227. /package/dist/{themes → foundation/themes}/Theme.d.ts +0 -0
  228. /package/dist/{themes → foundation/themes}/Tokens.d.ts +0 -0
  229. /package/dist/{themes → foundation/themes}/css.d.ts +0 -0
  230. /package/dist/{themes → foundation/themes}/generate.d.ts +0 -0
  231. /package/dist/{themes → foundation/themes}/index.d.ts +0 -0
  232. /package/dist/{hooks → foundation/themes}/index.js.map +0 -0
  233. /package/dist/{themes → foundation/themes}/pool.d.ts +0 -0
  234. /package/dist/{themes → foundation/themes}/registry.d.ts +0 -0
  235. /package/dist/{themes → foundation/themes}/validate.d.ts +0 -0
  236. /package/dist/{themes → foundation/themes}/validated.d.ts +0 -0
  237. /package/dist/{utils → foundation/utils}/ColorExtensions/ColorExtensions.d.ts +0 -0
  238. /package/dist/{utils → foundation/utils}/ColorExtensions/index.d.ts +0 -0
  239. /package/dist/{utils → foundation/utils}/CssExtensions/CssExtensions.d.ts +0 -0
  240. /package/dist/{utils → foundation/utils}/CssExtensions/index.d.ts +0 -0
  241. /package/dist/{utils → foundation/utils}/Environment/Environment.d.ts +0 -0
  242. /package/dist/{utils → foundation/utils}/Environment/index.d.ts +0 -0
  243. /package/dist/{utils → foundation/utils}/Equality/Equality.d.ts +0 -0
  244. /package/dist/{utils → foundation/utils}/Equality/index.d.ts +0 -0
  245. /package/dist/{utils → foundation/utils}/HtmlExtensions/HtmlExtensions.d.ts +0 -0
  246. /package/dist/{utils → foundation/utils}/HtmlExtensions/index.d.ts +0 -0
  247. /package/dist/{utils → foundation/utils}/KeyboardExtensions/KeyboardExtensions.d.ts +0 -0
  248. /package/dist/{utils → foundation/utils}/KeyboardExtensions/index.d.ts +0 -0
  249. /package/dist/{utils → foundation/utils}/Layers/Layers.d.ts +0 -0
  250. /package/dist/{utils → foundation/utils}/Layers/index.d.ts +0 -0
  251. /package/dist/{utils → foundation/utils}/OptionalExtensions/OptionalExtensions.d.ts +0 -0
  252. /package/dist/{utils → foundation/utils}/OptionalExtensions/index.d.ts +0 -0
  253. /package/dist/{utils → foundation/utils}/PressExtensions/PressExtensions.d.ts +0 -0
  254. /package/dist/{utils → foundation/utils}/PressExtensions/index.d.ts +0 -0
  255. /package/dist/{utils → foundation/utils}/StyleTokens/StyleTokens.d.ts +0 -0
  256. /package/dist/{utils → foundation/utils}/StyleTokens/index.d.ts +0 -0
  257. /package/dist/{utils → foundation/utils}/SurfaceStyles/SurfaceStyles.d.ts +0 -0
  258. /package/dist/{utils → foundation/utils}/SurfaceStyles/index.d.ts +0 -0
  259. /package/dist/{utils → foundation/utils}/Tones/Tones.d.ts +0 -0
  260. /package/dist/{utils → foundation/utils}/Tones/index.d.ts +0 -0
  261. /package/dist/{utils → foundation/utils}/TransitionExtensions/TransitionExtensions.d.ts +0 -0
  262. /package/dist/{utils → foundation/utils}/TransitionExtensions/index.d.ts +0 -0
  263. /package/dist/{utils → foundation/utils}/cn/cn.d.ts +0 -0
  264. /package/dist/{utils → foundation/utils}/cn/index.d.ts +0 -0
  265. /package/dist/{utils → foundation/utils}/composeEventHandlers/composeEventHandlers.d.ts +0 -0
  266. /package/dist/{utils → foundation/utils}/composeEventHandlers/index.d.ts +0 -0
  267. /package/dist/{utils → foundation/utils}/composeRefs/composeRefs.d.ts +0 -0
  268. /package/dist/{utils → foundation/utils}/composeRefs/index.d.ts +0 -0
  269. /package/dist/{utils → foundation/utils}/dataAttr/dataAttr.d.ts +0 -0
  270. /package/dist/{utils → foundation/utils}/dataAttr/index.d.ts +0 -0
  271. /package/dist/{utils → foundation/utils}/index.d.ts +0 -0
  272. /package/dist/{icons → foundation/utils}/index.js.map +0 -0
  273. /package/dist/{utils → foundation/utils}/polymorphic/index.d.ts +0 -0
  274. /package/dist/{utils → foundation/utils}/polymorphic/polymorphic.d.ts +0 -0
  275. /package/dist/{utils → foundation/utils}/tv/index.d.ts +0 -0
  276. /package/dist/{utils → foundation/utils}/tv/tv.d.ts +0 -0
  277. /package/dist/{actions → presentation/actions}/backToTopButton/BackToTopButton.d.ts +0 -0
  278. /package/dist/{actions → presentation/actions}/backToTopButton/index.d.ts +0 -0
  279. /package/dist/{actions → presentation/actions}/button/index.d.ts +0 -0
  280. /package/dist/{actions → presentation/actions}/buttonGroup/ButtonGroup.d.ts +0 -0
  281. /package/dist/{actions → presentation/actions}/buttonGroup/index.d.ts +0 -0
  282. /package/dist/{actions → presentation/actions}/copyButton/CopyButton.d.ts +0 -0
  283. /package/dist/{actions → presentation/actions}/copyButton/index.d.ts +0 -0
  284. /package/dist/{actions → presentation/actions}/disclosureButton/DisclosureButton.d.ts +0 -0
  285. /package/dist/{actions → presentation/actions}/disclosureButton/index.d.ts +0 -0
  286. /package/dist/{actions → presentation/actions}/fab/FAB.d.ts +0 -0
  287. /package/dist/{actions → presentation/actions}/fab/index.d.ts +0 -0
  288. /package/dist/{actions → presentation/actions}/index.d.ts +0 -0
  289. /package/dist/{layout → presentation/actions}/index.js.map +0 -0
  290. /package/dist/{actions → presentation/actions}/link/Link.d.ts +0 -0
  291. /package/dist/{actions → presentation/actions}/link/index.d.ts +0 -0
  292. /package/dist/{actions → presentation/actions}/segmentedControl/SegmentedControl.d.ts +0 -0
  293. /package/dist/{actions → presentation/actions}/segmentedControl/index.d.ts +0 -0
  294. /package/dist/{actions → presentation/actions}/speedDial/SpeedDial.d.ts +0 -0
  295. /package/dist/{actions → presentation/actions}/speedDial/index.d.ts +0 -0
  296. /package/dist/{actions → presentation/actions}/toggleButton/index.d.ts +0 -0
  297. /package/dist/{actions → presentation/actions}/toggleButtonGroup/index.d.ts +0 -0
  298. /package/dist/{actions → presentation/actions}/toolbar/Toolbar.d.ts +0 -0
  299. /package/dist/{actions → presentation/actions}/toolbar/index.d.ts +0 -0
  300. /package/dist/{display → presentation/display}/accordion/Accordion.d.ts +0 -0
  301. /package/dist/{display → presentation/display}/accordion/index.d.ts +0 -0
  302. /package/dist/{display → presentation/display}/activityFeed/ActivityFeed.d.ts +0 -0
  303. /package/dist/{display → presentation/display}/activityFeed/index.d.ts +0 -0
  304. /package/dist/{display → presentation/display}/animatedNumber/AnimatedNumber.d.ts +0 -0
  305. /package/dist/{display → presentation/display}/animatedNumber/index.d.ts +0 -0
  306. /package/dist/{display → presentation/display}/annotationMarker/AnnotationMarker.d.ts +0 -0
  307. /package/dist/{display → presentation/display}/annotationMarker/index.d.ts +0 -0
  308. /package/dist/{display → presentation/display}/audioPlayer/AudioPlayer.d.ts +0 -0
  309. /package/dist/{display → presentation/display}/audioPlayer/index.d.ts +0 -0
  310. /package/dist/{display → presentation/display}/audioWaveform/AudioWaveform.d.ts +0 -0
  311. /package/dist/{display → presentation/display}/audioWaveform/index.d.ts +0 -0
  312. /package/dist/{display → presentation/display}/avatar/index.d.ts +0 -0
  313. /package/dist/{display → presentation/display}/avatarGroup/AvatarGroup.d.ts +0 -0
  314. /package/dist/{display → presentation/display}/avatarGroup/index.d.ts +0 -0
  315. /package/dist/{display → presentation/display}/badge/Badge.d.ts +0 -0
  316. /package/dist/{display → presentation/display}/badge/index.d.ts +0 -0
  317. /package/dist/{display → presentation/display}/badgeOverlay/BadgeOverlay.d.ts +0 -0
  318. /package/dist/{display → presentation/display}/badgeOverlay/index.d.ts +0 -0
  319. /package/dist/{display → presentation/display}/card/index.d.ts +0 -0
  320. /package/dist/{display → presentation/display}/carousel/Carousel.d.ts +0 -0
  321. /package/dist/{display → presentation/display}/carousel/index.d.ts +0 -0
  322. /package/dist/{display → presentation/display}/chatBubble/ChatBubble.d.ts +0 -0
  323. /package/dist/{display → presentation/display}/chatBubble/index.d.ts +0 -0
  324. /package/dist/{display → presentation/display}/code/Code.d.ts +0 -0
  325. /package/dist/{display → presentation/display}/code/index.d.ts +0 -0
  326. /package/dist/{display → presentation/display}/collapsible/Collapsible.d.ts +0 -0
  327. /package/dist/{display → presentation/display}/collapsible/index.d.ts +0 -0
  328. /package/dist/{display → presentation/display}/commentThread/CommentThread.d.ts +0 -0
  329. /package/dist/{display → presentation/display}/commentThread/index.d.ts +0 -0
  330. /package/dist/{display → presentation/display}/confetti/Confetti.d.ts +0 -0
  331. /package/dist/{display → presentation/display}/confetti/index.d.ts +0 -0
  332. /package/dist/{display → presentation/display}/countBadge/CountBadge.d.ts +0 -0
  333. /package/dist/{display → presentation/display}/countBadge/index.d.ts +0 -0
  334. /package/dist/{display → presentation/display}/countUp/CountUp.d.ts +0 -0
  335. /package/dist/{display → presentation/display}/countUp/index.d.ts +0 -0
  336. /package/dist/{display → presentation/display}/dataGrid/DataGrid.d.ts +0 -0
  337. /package/dist/{display → presentation/display}/dataGrid/index.d.ts +0 -0
  338. /package/dist/{display → presentation/display}/dataTable/DataTable.d.ts +0 -0
  339. /package/dist/{display → presentation/display}/dataTable/index.d.ts +0 -0
  340. /package/dist/{display → presentation/display}/descriptionList/DescriptionList.d.ts +0 -0
  341. /package/dist/{display → presentation/display}/descriptionList/index.d.ts +0 -0
  342. /package/dist/{display → presentation/display}/diffViewer/DiffViewer.d.ts +0 -0
  343. /package/dist/{display → presentation/display}/diffViewer/index.d.ts +0 -0
  344. /package/dist/{display → presentation/display}/emptyState/EmptyState.d.ts +0 -0
  345. /package/dist/{display → presentation/display}/emptyState/index.d.ts +0 -0
  346. /package/dist/{display → presentation/display}/eventCalendar/EventCalendar.d.ts +0 -0
  347. /package/dist/{display → presentation/display}/eventCalendar/index.d.ts +0 -0
  348. /package/dist/{display → presentation/display}/eyebrow/Eyebrow.d.ts +0 -0
  349. /package/dist/{display → presentation/display}/eyebrow/index.d.ts +0 -0
  350. /package/dist/{display → presentation/display}/featureCard/FeatureCard.d.ts +0 -0
  351. /package/dist/{display → presentation/display}/featureCard/index.d.ts +0 -0
  352. /package/dist/{display → presentation/display}/gantt/Gantt.d.ts +0 -0
  353. /package/dist/{display → presentation/display}/gantt/index.d.ts +0 -0
  354. /package/dist/{display → presentation/display}/gradientText/GradientText.d.ts +0 -0
  355. /package/dist/{display → presentation/display}/gradientText/index.d.ts +0 -0
  356. /package/dist/{display → presentation/display}/heading/Heading.d.ts +0 -0
  357. /package/dist/{display → presentation/display}/heading/index.d.ts +0 -0
  358. /package/dist/{display → presentation/display}/heatmapCalendar/HeatmapCalendar.d.ts +0 -0
  359. /package/dist/{display → presentation/display}/heatmapCalendar/index.d.ts +0 -0
  360. /package/dist/{display → presentation/display}/highlight/Highlight.d.ts +0 -0
  361. /package/dist/{display → presentation/display}/highlight/index.d.ts +0 -0
  362. /package/dist/{display → presentation/display}/image/Image.d.ts +0 -0
  363. /package/dist/{display → presentation/display}/image/index.d.ts +0 -0
  364. /package/dist/{display → presentation/display}/index.d.ts +0 -0
  365. /package/dist/{nav → presentation/display}/index.js.map +0 -0
  366. /package/dist/{display → presentation/display}/infoRow/InfoRow.d.ts +0 -0
  367. /package/dist/{display → presentation/display}/infoRow/index.d.ts +0 -0
  368. /package/dist/{display → presentation/display}/kbd/Kbd.d.ts +0 -0
  369. /package/dist/{display → presentation/display}/kbd/index.d.ts +0 -0
  370. /package/dist/{display → presentation/display}/keyboardShortcut/KeyboardShortcut.d.ts +0 -0
  371. /package/dist/{display → presentation/display}/keyboardShortcut/index.d.ts +0 -0
  372. /package/dist/{display → presentation/display}/list/List.d.ts +0 -0
  373. /package/dist/{display → presentation/display}/list/index.d.ts +0 -0
  374. /package/dist/{display → presentation/display}/mark/Mark.d.ts +0 -0
  375. /package/dist/{display → presentation/display}/mark/index.d.ts +0 -0
  376. /package/dist/{display → presentation/display}/marquee/Marquee.d.ts +0 -0
  377. /package/dist/{display → presentation/display}/marquee/index.d.ts +0 -0
  378. /package/dist/{display → presentation/display}/messageList/MessageList.d.ts +0 -0
  379. /package/dist/{display → presentation/display}/messageList/index.d.ts +0 -0
  380. /package/dist/{display → presentation/display}/metaInline/MetaInline.d.ts +0 -0
  381. /package/dist/{display → presentation/display}/metaInline/index.d.ts +0 -0
  382. /package/dist/{display → presentation/display}/metricChip/MetricChip.d.ts +0 -0
  383. /package/dist/{display → presentation/display}/metricChip/index.d.ts +0 -0
  384. /package/dist/{display → presentation/display}/nodeEditor/NodeEditor.d.ts +0 -0
  385. /package/dist/{display → presentation/display}/nodeEditor/index.d.ts +0 -0
  386. /package/dist/{display → presentation/display}/notificationDot/NotificationDot.d.ts +0 -0
  387. /package/dist/{display → presentation/display}/notificationDot/index.d.ts +0 -0
  388. /package/dist/{display → presentation/display}/pdfViewer/PDFViewer.d.ts +0 -0
  389. /package/dist/{display → presentation/display}/pdfViewer/index.d.ts +0 -0
  390. /package/dist/{display → presentation/display}/pricingCard/PricingCard.d.ts +0 -0
  391. /package/dist/{display → presentation/display}/pricingCard/index.d.ts +0 -0
  392. /package/dist/{display → presentation/display}/quote/Quote.d.ts +0 -0
  393. /package/dist/{display → presentation/display}/quote/index.d.ts +0 -0
  394. /package/dist/{display → presentation/display}/reactionBar/ReactionBar.d.ts +0 -0
  395. /package/dist/{display → presentation/display}/reactionBar/index.d.ts +0 -0
  396. /package/dist/{display → presentation/display}/scheduleView/ScheduleView.d.ts +0 -0
  397. /package/dist/{display → presentation/display}/scheduleView/index.d.ts +0 -0
  398. /package/dist/{display → presentation/display}/scrollReveal/ScrollReveal.d.ts +0 -0
  399. /package/dist/{display → presentation/display}/scrollReveal/index.d.ts +0 -0
  400. /package/dist/{display → presentation/display}/sectionHeader/SectionHeader.d.ts +0 -0
  401. /package/dist/{display → presentation/display}/sectionHeader/index.d.ts +0 -0
  402. /package/dist/{display → presentation/display}/separator/Separator.d.ts +0 -0
  403. /package/dist/{display → presentation/display}/separator/index.d.ts +0 -0
  404. /package/dist/{display → presentation/display}/snippet/Snippet.d.ts +0 -0
  405. /package/dist/{display → presentation/display}/snippet/index.d.ts +0 -0
  406. /package/dist/{display → presentation/display}/sortable/Sortable.d.ts +0 -0
  407. /package/dist/{display → presentation/display}/sortable/index.d.ts +0 -0
  408. /package/dist/{display → presentation/display}/sparkline/Sparkline.d.ts +0 -0
  409. /package/dist/{display → presentation/display}/sparkline/index.d.ts +0 -0
  410. /package/dist/{display → presentation/display}/stat/Stat.d.ts +0 -0
  411. /package/dist/{display → presentation/display}/stat/index.d.ts +0 -0
  412. /package/dist/{display → presentation/display}/status/Status.d.ts +0 -0
  413. /package/dist/{display → presentation/display}/status/index.d.ts +0 -0
  414. /package/dist/{display → presentation/display}/stepCard/StepCard.d.ts +0 -0
  415. /package/dist/{display → presentation/display}/stepCard/index.d.ts +0 -0
  416. /package/dist/{display → presentation/display}/swipeActions/SwipeActions.d.ts +0 -0
  417. /package/dist/{display → presentation/display}/swipeActions/index.d.ts +0 -0
  418. /package/dist/{display → presentation/display}/table/Table.d.ts +0 -0
  419. /package/dist/{display → presentation/display}/table/index.d.ts +0 -0
  420. /package/dist/{display → presentation/display}/tabs/Tabs.d.ts +0 -0
  421. /package/dist/{display → presentation/display}/tabs/index.d.ts +0 -0
  422. /package/dist/{display → presentation/display}/tag/Tag.d.ts +0 -0
  423. /package/dist/{display → presentation/display}/tag/index.d.ts +0 -0
  424. /package/dist/{display → presentation/display}/text/Text.d.ts +0 -0
  425. /package/dist/{display → presentation/display}/text/index.d.ts +0 -0
  426. /package/dist/{display → presentation/display}/threadView/ThreadView.d.ts +0 -0
  427. /package/dist/{display → presentation/display}/threadView/index.d.ts +0 -0
  428. /package/dist/{display → presentation/display}/tilt/Tilt.d.ts +0 -0
  429. /package/dist/{display → presentation/display}/tilt/index.d.ts +0 -0
  430. /package/dist/{display → presentation/display}/timeline/Timeline.d.ts +0 -0
  431. /package/dist/{display → presentation/display}/timeline/index.d.ts +0 -0
  432. /package/dist/{display → presentation/display}/tooltip/index.d.ts +0 -0
  433. /package/dist/{display → presentation/display}/tree/Tree.d.ts +0 -0
  434. /package/dist/{display → presentation/display}/tree/index.d.ts +0 -0
  435. /package/dist/{display → presentation/display}/typewriter/Typewriter.d.ts +0 -0
  436. /package/dist/{display → presentation/display}/typewriter/index.d.ts +0 -0
  437. /package/dist/{display → presentation/display}/videoPlayer/VideoPlayer.d.ts +0 -0
  438. /package/dist/{display → presentation/display}/videoPlayer/index.d.ts +0 -0
  439. /package/dist/{feedback → presentation/feedback}/alert/Alert.d.ts +0 -0
  440. /package/dist/{feedback → presentation/feedback}/alert/index.d.ts +0 -0
  441. /package/dist/{feedback → presentation/feedback}/alertSimple/AlertSimple.d.ts +0 -0
  442. /package/dist/{feedback → presentation/feedback}/alertSimple/index.d.ts +0 -0
  443. /package/dist/{feedback → presentation/feedback}/banner/Banner.d.ts +0 -0
  444. /package/dist/{feedback → presentation/feedback}/banner/index.d.ts +0 -0
  445. /package/dist/{feedback → presentation/feedback}/bannerSimple/BannerSimple.d.ts +0 -0
  446. /package/dist/{feedback → presentation/feedback}/bannerSimple/index.d.ts +0 -0
  447. /package/dist/{feedback → presentation/feedback}/callout/Callout.d.ts +0 -0
  448. /package/dist/{feedback → presentation/feedback}/callout/index.d.ts +0 -0
  449. /package/dist/{feedback → presentation/feedback}/index.d.ts +0 -0
  450. /package/dist/{overlays → presentation/feedback}/index.js.map +0 -0
  451. /package/dist/{feedback → presentation/feedback}/inlineSpinner/InlineSpinner.d.ts +0 -0
  452. /package/dist/{feedback → presentation/feedback}/inlineSpinner/index.d.ts +0 -0
  453. /package/dist/{feedback → presentation/feedback}/liveCursor/LiveCursor.d.ts +0 -0
  454. /package/dist/{feedback → presentation/feedback}/liveCursor/index.d.ts +0 -0
  455. /package/dist/{feedback → presentation/feedback}/loadingOverlay/LoadingOverlay.d.ts +0 -0
  456. /package/dist/{feedback → presentation/feedback}/loadingOverlay/index.d.ts +0 -0
  457. /package/dist/{feedback → presentation/feedback}/loadingState/LoadingState.d.ts +0 -0
  458. /package/dist/{feedback → presentation/feedback}/loadingState/index.d.ts +0 -0
  459. /package/dist/{feedback → presentation/feedback}/meterBar/MeterBar.d.ts +0 -0
  460. /package/dist/{feedback → presentation/feedback}/meterBar/index.d.ts +0 -0
  461. /package/dist/{feedback → presentation/feedback}/notificationCenter/NotificationCenter.d.ts +0 -0
  462. /package/dist/{feedback → presentation/feedback}/notificationCenter/index.d.ts +0 -0
  463. /package/dist/{feedback → presentation/feedback}/onboardingChecklist/OnboardingChecklist.d.ts +0 -0
  464. /package/dist/{feedback → presentation/feedback}/onboardingChecklist/index.d.ts +0 -0
  465. /package/dist/{feedback → presentation/feedback}/presenceIndicator/PresenceIndicator.d.ts +0 -0
  466. /package/dist/{feedback → presentation/feedback}/presenceIndicator/index.d.ts +0 -0
  467. /package/dist/{feedback → presentation/feedback}/progressBar/ProgressBar.d.ts +0 -0
  468. /package/dist/{feedback → presentation/feedback}/progressBar/index.d.ts +0 -0
  469. /package/dist/{feedback → presentation/feedback}/progressCircle/ProgressCircle.d.ts +0 -0
  470. /package/dist/{feedback → presentation/feedback}/progressCircle/index.d.ts +0 -0
  471. /package/dist/{feedback → presentation/feedback}/progressSteps/ProgressSteps.d.ts +0 -0
  472. /package/dist/{feedback → presentation/feedback}/progressSteps/index.d.ts +0 -0
  473. /package/dist/{feedback → presentation/feedback}/skeleton/Skeleton.d.ts +0 -0
  474. /package/dist/{feedback → presentation/feedback}/skeleton/index.d.ts +0 -0
  475. /package/dist/{feedback → presentation/feedback}/spinner/Spinner.d.ts +0 -0
  476. /package/dist/{feedback → presentation/feedback}/spinner/index.d.ts +0 -0
  477. /package/dist/{feedback → presentation/feedback}/statusIndicator/StatusIndicator.d.ts +0 -0
  478. /package/dist/{feedback → presentation/feedback}/statusIndicator/index.d.ts +0 -0
  479. /package/dist/{feedback → presentation/feedback}/toast/Toast.d.ts +0 -0
  480. /package/dist/{feedback → presentation/feedback}/toast/index.d.ts +0 -0
  481. /package/dist/{feedback → presentation/feedback}/toastSimple/ToastSimple.d.ts +0 -0
  482. /package/dist/{feedback → presentation/feedback}/toastSimple/index.d.ts +0 -0
  483. /package/dist/{feedback → presentation/feedback}/toaster/Toaster.d.ts +0 -0
  484. /package/dist/{feedback → presentation/feedback}/toaster/index.d.ts +0 -0
  485. /package/dist/{feedback → presentation/feedback}/tour/Tour.d.ts +0 -0
  486. /package/dist/{feedback → presentation/feedback}/tour/index.d.ts +0 -0
  487. /package/dist/{feedback → presentation/feedback}/trendIndicator/TrendIndicator.d.ts +0 -0
  488. /package/dist/{feedback → presentation/feedback}/trendIndicator/index.d.ts +0 -0
  489. /package/dist/{feedback → presentation/feedback}/typingIndicator/TypingIndicator.d.ts +0 -0
  490. /package/dist/{feedback → presentation/feedback}/typingIndicator/index.d.ts +0 -0
  491. /package/dist/{feedback → presentation/feedback}/undoBar/UndoBar.d.ts +0 -0
  492. /package/dist/{feedback → presentation/feedback}/undoBar/index.d.ts +0 -0
  493. /package/dist/{forms → presentation/forms}/ColorExtensions.d.ts +0 -0
  494. /package/dist/{forms → presentation/forms}/DateExtensions.d.ts +0 -0
  495. /package/dist/{forms → presentation/forms}/MonthGrid.d.ts +0 -0
  496. /package/dist/{forms → presentation/forms}/addressForm/AddressForm.d.ts +0 -0
  497. /package/dist/{forms → presentation/forms}/addressForm/index.d.ts +0 -0
  498. /package/dist/{forms → presentation/forms}/calendar/Calendar.d.ts +0 -0
  499. /package/dist/{forms → presentation/forms}/calendar/index.d.ts +0 -0
  500. /package/dist/{forms → presentation/forms}/characterCount/CharacterCount.d.ts +0 -0
  501. /package/dist/{forms → presentation/forms}/characterCount/index.d.ts +0 -0
  502. /package/dist/{forms → presentation/forms}/chatComposer/ChatComposer.d.ts +0 -0
  503. /package/dist/{forms → presentation/forms}/chatComposer/index.d.ts +0 -0
  504. /package/dist/{forms → presentation/forms}/checkbox/index.d.ts +0 -0
  505. /package/dist/{forms → presentation/forms}/checkboxField/CheckboxField.d.ts +0 -0
  506. /package/dist/{forms → presentation/forms}/checkboxField/index.d.ts +0 -0
  507. /package/dist/{forms → presentation/forms}/checkboxGroup/CheckboxGroup.d.ts +0 -0
  508. /package/dist/{forms → presentation/forms}/checkboxGroup/index.d.ts +0 -0
  509. /package/dist/{forms → presentation/forms}/choiceCard/ChoiceCard.d.ts +0 -0
  510. /package/dist/{forms → presentation/forms}/choiceCard/index.d.ts +0 -0
  511. /package/dist/{forms → presentation/forms}/codeEditor/CodeEditor.d.ts +0 -0
  512. /package/dist/{forms → presentation/forms}/codeEditor/index.d.ts +0 -0
  513. /package/dist/{forms → presentation/forms}/colorArea/ColorArea.d.ts +0 -0
  514. /package/dist/{forms → presentation/forms}/colorArea/index.d.ts +0 -0
  515. /package/dist/{forms → presentation/forms}/colorField/ColorField.d.ts +0 -0
  516. /package/dist/{forms → presentation/forms}/colorField/index.d.ts +0 -0
  517. /package/dist/{forms → presentation/forms}/colorPicker/ColorPicker.d.ts +0 -0
  518. /package/dist/{forms → presentation/forms}/colorPicker/index.d.ts +0 -0
  519. /package/dist/{forms → presentation/forms}/colorSlider/ColorSlider.d.ts +0 -0
  520. /package/dist/{forms → presentation/forms}/colorSlider/index.d.ts +0 -0
  521. /package/dist/{forms → presentation/forms}/colorSwatch/ColorSwatch.d.ts +0 -0
  522. /package/dist/{forms → presentation/forms}/colorSwatch/index.d.ts +0 -0
  523. /package/dist/{forms → presentation/forms}/colorSwatchPicker/ColorSwatchPicker.d.ts +0 -0
  524. /package/dist/{forms → presentation/forms}/colorSwatchPicker/index.d.ts +0 -0
  525. /package/dist/{forms → presentation/forms}/colorWheel/ColorWheel.d.ts +0 -0
  526. /package/dist/{forms → presentation/forms}/colorWheel/index.d.ts +0 -0
  527. /package/dist/{forms → presentation/forms}/combobox/index.d.ts +0 -0
  528. /package/dist/{forms → presentation/forms}/cronInput/CronInput.d.ts +0 -0
  529. /package/dist/{forms → presentation/forms}/cronInput/index.d.ts +0 -0
  530. /package/dist/{forms → presentation/forms}/currencyInput/CurrencyInput.d.ts +0 -0
  531. /package/dist/{forms → presentation/forms}/currencyInput/index.d.ts +0 -0
  532. /package/dist/{forms → presentation/forms}/dateField/DateField.d.ts +0 -0
  533. /package/dist/{forms → presentation/forms}/dateField/index.d.ts +0 -0
  534. /package/dist/{forms → presentation/forms}/datePicker/DatePicker.d.ts +0 -0
  535. /package/dist/{forms → presentation/forms}/datePicker/index.d.ts +0 -0
  536. /package/dist/{forms → presentation/forms}/dateRangePicker/DateRangePicker.d.ts +0 -0
  537. /package/dist/{forms → presentation/forms}/dateRangePicker/index.d.ts +0 -0
  538. /package/dist/{forms → presentation/forms}/editable/Editable.d.ts +0 -0
  539. /package/dist/{forms → presentation/forms}/editable/index.d.ts +0 -0
  540. /package/dist/{forms → presentation/forms}/emailInput/EmailInput.d.ts +0 -0
  541. /package/dist/{forms → presentation/forms}/emailInput/index.d.ts +0 -0
  542. /package/dist/{forms → presentation/forms}/emojiPicker/EmojiPicker.d.ts +0 -0
  543. /package/dist/{forms → presentation/forms}/emojiPicker/index.d.ts +0 -0
  544. /package/dist/{forms → presentation/forms}/field/Field.d.ts +0 -0
  545. /package/dist/{forms → presentation/forms}/field/index.d.ts +0 -0
  546. /package/dist/{forms → presentation/forms}/fieldset/Fieldset.d.ts +0 -0
  547. /package/dist/{forms → presentation/forms}/fieldset/index.d.ts +0 -0
  548. /package/dist/{forms → presentation/forms}/filePicker/FilePicker.d.ts +0 -0
  549. /package/dist/{forms → presentation/forms}/filePicker/index.d.ts +0 -0
  550. /package/dist/{forms → presentation/forms}/fileUpload/FileUpload.d.ts +0 -0
  551. /package/dist/{forms → presentation/forms}/fileUpload/index.d.ts +0 -0
  552. /package/dist/{forms → presentation/forms}/fontPicker/FontPicker.d.ts +0 -0
  553. /package/dist/{forms → presentation/forms}/fontPicker/index.d.ts +0 -0
  554. /package/dist/{forms → presentation/forms}/formErrorMessage/FormErrorMessage.d.ts +0 -0
  555. /package/dist/{forms → presentation/forms}/formErrorMessage/index.d.ts +0 -0
  556. /package/dist/{forms → presentation/forms}/formHelperText/FormHelperText.d.ts +0 -0
  557. /package/dist/{forms → presentation/forms}/formHelperText/index.d.ts +0 -0
  558. /package/dist/{forms → presentation/forms}/gradientPicker/GradientPicker.d.ts +0 -0
  559. /package/dist/{forms → presentation/forms}/gradientPicker/index.d.ts +0 -0
  560. /package/dist/{forms → presentation/forms}/iconPicker/IconPicker.d.ts +0 -0
  561. /package/dist/{forms → presentation/forms}/iconPicker/index.d.ts +0 -0
  562. /package/dist/{forms → presentation/forms}/index.d.ts +0 -0
  563. /package/dist/{primitives → presentation/forms}/index.js.map +0 -0
  564. /package/dist/{forms → presentation/forms}/inputAddon/InputAddon.d.ts +0 -0
  565. /package/dist/{forms → presentation/forms}/inputAddon/index.d.ts +0 -0
  566. /package/dist/{forms → presentation/forms}/inputGroup/InputGroup.d.ts +0 -0
  567. /package/dist/{forms → presentation/forms}/inputGroup/index.d.ts +0 -0
  568. /package/dist/{forms → presentation/forms}/jsonEditor/JSONEditor.d.ts +0 -0
  569. /package/dist/{forms → presentation/forms}/jsonEditor/index.d.ts +0 -0
  570. /package/dist/{forms → presentation/forms}/keyboardShortcutPicker/KeyboardShortcutPicker.d.ts +0 -0
  571. /package/dist/{forms → presentation/forms}/keyboardShortcutPicker/index.d.ts +0 -0
  572. /package/dist/{forms → presentation/forms}/knob/Knob.d.ts +0 -0
  573. /package/dist/{forms → presentation/forms}/knob/index.d.ts +0 -0
  574. /package/dist/{forms → presentation/forms}/label/Label.d.ts +0 -0
  575. /package/dist/{forms → presentation/forms}/label/index.d.ts +0 -0
  576. /package/dist/{forms → presentation/forms}/labeledInput/LabeledInput.d.ts +0 -0
  577. /package/dist/{forms → presentation/forms}/labeledInput/index.d.ts +0 -0
  578. /package/dist/{forms → presentation/forms}/legend/Legend.d.ts +0 -0
  579. /package/dist/{forms → presentation/forms}/legend/index.d.ts +0 -0
  580. /package/dist/{forms → presentation/forms}/listbox/index.d.ts +0 -0
  581. /package/dist/{forms → presentation/forms}/markdownEditor/MarkdownEditor.d.ts +0 -0
  582. /package/dist/{forms → presentation/forms}/markdownEditor/index.d.ts +0 -0
  583. /package/dist/{forms → presentation/forms}/maskedInput/MaskedInput.d.ts +0 -0
  584. /package/dist/{forms → presentation/forms}/maskedInput/index.d.ts +0 -0
  585. /package/dist/{forms → presentation/forms}/multiSelect/index.d.ts +0 -0
  586. /package/dist/{forms → presentation/forms}/numberInput/NumberInput.d.ts +0 -0
  587. /package/dist/{forms → presentation/forms}/numberInput/index.d.ts +0 -0
  588. /package/dist/{forms → presentation/forms}/passwordInput/PasswordInput.d.ts +0 -0
  589. /package/dist/{forms → presentation/forms}/passwordInput/index.d.ts +0 -0
  590. /package/dist/{forms → presentation/forms}/passwordStrength/PasswordStrength.d.ts +0 -0
  591. /package/dist/{forms → presentation/forms}/passwordStrength/index.d.ts +0 -0
  592. /package/dist/{forms → presentation/forms}/percentInput/PercentInput.d.ts +0 -0
  593. /package/dist/{forms → presentation/forms}/percentInput/index.d.ts +0 -0
  594. /package/dist/{forms → presentation/forms}/phoneInput/PhoneInput.d.ts +0 -0
  595. /package/dist/{forms → presentation/forms}/phoneInput/index.d.ts +0 -0
  596. /package/dist/{forms → presentation/forms}/pinInput/PinInput.d.ts +0 -0
  597. /package/dist/{forms → presentation/forms}/pinInput/index.d.ts +0 -0
  598. /package/dist/{forms → presentation/forms}/radio/Radio.d.ts +0 -0
  599. /package/dist/{forms → presentation/forms}/radio/index.d.ts +0 -0
  600. /package/dist/{forms → presentation/forms}/radioField/RadioField.d.ts +0 -0
  601. /package/dist/{forms → presentation/forms}/radioField/index.d.ts +0 -0
  602. /package/dist/{forms → presentation/forms}/radioGroup/RadioGroup.d.ts +0 -0
  603. /package/dist/{forms → presentation/forms}/radioGroup/index.d.ts +0 -0
  604. /package/dist/{forms → presentation/forms}/rangeCalendar/RangeCalendar.d.ts +0 -0
  605. /package/dist/{forms → presentation/forms}/rangeCalendar/index.d.ts +0 -0
  606. /package/dist/{forms → presentation/forms}/reactionPicker/ReactionPicker.d.ts +0 -0
  607. /package/dist/{forms → presentation/forms}/reactionPicker/index.d.ts +0 -0
  608. /package/dist/{forms → presentation/forms}/recurrenceEditor/RecurrenceEditor.d.ts +0 -0
  609. /package/dist/{forms → presentation/forms}/recurrenceEditor/index.d.ts +0 -0
  610. /package/dist/{forms → presentation/forms}/searchInput/SearchInput.d.ts +0 -0
  611. /package/dist/{forms → presentation/forms}/searchInput/index.d.ts +0 -0
  612. /package/dist/{forms → presentation/forms}/select/index.d.ts +0 -0
  613. /package/dist/{forms → presentation/forms}/slider/Slider.d.ts +0 -0
  614. /package/dist/{forms → presentation/forms}/slider/index.d.ts +0 -0
  615. /package/dist/{forms → presentation/forms}/stepper/Stepper.d.ts +0 -0
  616. /package/dist/{forms → presentation/forms}/stepper/index.d.ts +0 -0
  617. /package/dist/{forms → presentation/forms}/switch/Switch.d.ts +0 -0
  618. /package/dist/{forms → presentation/forms}/switch/index.d.ts +0 -0
  619. /package/dist/{forms → presentation/forms}/switchField/SwitchField.d.ts +0 -0
  620. /package/dist/{forms → presentation/forms}/switchField/index.d.ts +0 -0
  621. /package/dist/{forms → presentation/forms}/tagsInput/TagsInput.d.ts +0 -0
  622. /package/dist/{forms → presentation/forms}/tagsInput/index.d.ts +0 -0
  623. /package/dist/{forms → presentation/forms}/telInput/TelInput.d.ts +0 -0
  624. /package/dist/{forms → presentation/forms}/telInput/index.d.ts +0 -0
  625. /package/dist/{forms → presentation/forms}/textInput/TextInput.d.ts +0 -0
  626. /package/dist/{forms → presentation/forms}/textInput/index.d.ts +0 -0
  627. /package/dist/{forms → presentation/forms}/textareaInput/TextareaInput.d.ts +0 -0
  628. /package/dist/{forms → presentation/forms}/textareaInput/index.d.ts +0 -0
  629. /package/dist/{forms → presentation/forms}/timeField/TimeField.d.ts +0 -0
  630. /package/dist/{forms → presentation/forms}/timeField/index.d.ts +0 -0
  631. /package/dist/{forms → presentation/forms}/timePicker/TimePicker.d.ts +0 -0
  632. /package/dist/{forms → presentation/forms}/timePicker/index.d.ts +0 -0
  633. /package/dist/{forms → presentation/forms}/urlInput/UrlInput.d.ts +0 -0
  634. /package/dist/{forms → presentation/forms}/urlInput/index.d.ts +0 -0
  635. /package/dist/{forms → presentation/forms}/wizard/Wizard.d.ts +0 -0
  636. /package/dist/{forms → presentation/forms}/wizard/index.d.ts +0 -0
  637. /package/dist/{layout → presentation/layout}/appShell/AppShell.d.ts +0 -0
  638. /package/dist/{layout → presentation/layout}/appShell/index.d.ts +0 -0
  639. /package/dist/{layout → presentation/layout}/aspectRatio/AspectRatio.d.ts +0 -0
  640. /package/dist/{layout → presentation/layout}/aspectRatio/index.d.ts +0 -0
  641. /package/dist/{layout → presentation/layout}/box/Box.d.ts +0 -0
  642. /package/dist/{layout → presentation/layout}/box/index.d.ts +0 -0
  643. /package/dist/{layout → presentation/layout}/center/Center.d.ts +0 -0
  644. /package/dist/{layout → presentation/layout}/center/index.d.ts +0 -0
  645. /package/dist/{layout → presentation/layout}/cluster/Cluster.d.ts +0 -0
  646. /package/dist/{layout → presentation/layout}/cluster/index.d.ts +0 -0
  647. /package/dist/{layout → presentation/layout}/container/Container.d.ts +0 -0
  648. /package/dist/{layout → presentation/layout}/container/index.d.ts +0 -0
  649. /package/dist/{layout → presentation/layout}/divider/Divider.d.ts +0 -0
  650. /package/dist/{layout → presentation/layout}/divider/index.d.ts +0 -0
  651. /package/dist/{layout → presentation/layout}/flex/Flex.d.ts +0 -0
  652. /package/dist/{layout → presentation/layout}/flex/index.d.ts +0 -0
  653. /package/dist/{layout → presentation/layout}/frame/Frame.d.ts +0 -0
  654. /package/dist/{layout → presentation/layout}/frame/index.d.ts +0 -0
  655. /package/dist/{layout → presentation/layout}/grid/Grid.d.ts +0 -0
  656. /package/dist/{layout → presentation/layout}/grid/index.d.ts +0 -0
  657. /package/dist/{layout → presentation/layout}/hStack/HStack.d.ts +0 -0
  658. /package/dist/{layout → presentation/layout}/hStack/index.d.ts +0 -0
  659. /package/dist/{layout → presentation/layout}/index.d.ts +0 -0
  660. /package/dist/{themes → presentation/layout}/index.js.map +0 -0
  661. /package/dist/{layout → presentation/layout}/inline/Inline.d.ts +0 -0
  662. /package/dist/{layout → presentation/layout}/inline/index.d.ts +0 -0
  663. /package/dist/{layout → presentation/layout}/navbar/index.d.ts +0 -0
  664. /package/dist/{layout → presentation/layout}/overlay/index.d.ts +0 -0
  665. /package/dist/{layout → presentation/layout}/pullToRefresh/PullToRefresh.d.ts +0 -0
  666. /package/dist/{layout → presentation/layout}/pullToRefresh/index.d.ts +0 -0
  667. /package/dist/{layout → presentation/layout}/resizablePanels/ResizablePanels.d.ts +0 -0
  668. /package/dist/{layout → presentation/layout}/resizablePanels/index.d.ts +0 -0
  669. /package/dist/{layout → presentation/layout}/scrollArea/ScrollArea.d.ts +0 -0
  670. /package/dist/{layout → presentation/layout}/scrollArea/index.d.ts +0 -0
  671. /package/dist/{layout → presentation/layout}/section/index.d.ts +0 -0
  672. /package/dist/{layout → presentation/layout}/spacer/Spacer.d.ts +0 -0
  673. /package/dist/{layout → presentation/layout}/spacer/index.d.ts +0 -0
  674. /package/dist/{layout → presentation/layout}/stack/Stack.d.ts +0 -0
  675. /package/dist/{layout → presentation/layout}/stack/index.d.ts +0 -0
  676. /package/dist/{layout → presentation/layout}/surface/index.d.ts +0 -0
  677. /package/dist/{layout → presentation/layout}/twoColumn/TwoColumn.d.ts +0 -0
  678. /package/dist/{layout → presentation/layout}/twoColumn/index.d.ts +0 -0
  679. /package/dist/{layout → presentation/layout}/vStack/VStack.d.ts +0 -0
  680. /package/dist/{layout → presentation/layout}/vStack/index.d.ts +0 -0
  681. /package/dist/{nav → presentation/nav}/breadcrumb/Breadcrumb.d.ts +0 -0
  682. /package/dist/{nav → presentation/nav}/breadcrumb/index.d.ts +0 -0
  683. /package/dist/{nav → presentation/nav}/commandPalette/CommandPalette.d.ts +0 -0
  684. /package/dist/{nav → presentation/nav}/commandPalette/index.d.ts +0 -0
  685. /package/dist/{nav → presentation/nav}/contextMenu/ContextMenu.d.ts +0 -0
  686. /package/dist/{nav → presentation/nav}/contextMenu/index.d.ts +0 -0
  687. /package/dist/{nav → presentation/nav}/dropdownMenu/DropdownMenu.d.ts +0 -0
  688. /package/dist/{nav → presentation/nav}/dropdownMenu/index.d.ts +0 -0
  689. /package/dist/{nav → presentation/nav}/index.d.ts +0 -0
  690. /package/dist/{utils → presentation/nav}/index.js.map +0 -0
  691. /package/dist/{nav → presentation/nav}/menu/index.d.ts +0 -0
  692. /package/dist/{nav → presentation/nav}/menubar/Menubar.d.ts +0 -0
  693. /package/dist/{nav → presentation/nav}/menubar/index.d.ts +0 -0
  694. /package/dist/{nav → presentation/nav}/navItem/NavItem.d.ts +0 -0
  695. /package/dist/{nav → presentation/nav}/navItem/index.d.ts +0 -0
  696. /package/dist/{nav → presentation/nav}/navigationMenu/NavigationMenu.d.ts +0 -0
  697. /package/dist/{nav → presentation/nav}/navigationMenu/index.d.ts +0 -0
  698. /package/dist/{nav → presentation/nav}/pagination/Pagination.d.ts +0 -0
  699. /package/dist/{nav → presentation/nav}/pagination/index.d.ts +0 -0
  700. /package/dist/{nav → presentation/nav}/scrollSpy/ScrollSpy.d.ts +0 -0
  701. /package/dist/{nav → presentation/nav}/scrollSpy/index.d.ts +0 -0
  702. /package/dist/{nav → presentation/nav}/tableOfContents/TableOfContents.d.ts +0 -0
  703. /package/dist/{nav → presentation/nav}/tableOfContents/index.d.ts +0 -0
  704. /package/dist/{overlays → presentation/overlays}/OverlayChrome.d.ts +0 -0
  705. /package/dist/{overlays → presentation/overlays}/actionSheet/ActionSheet.d.ts +0 -0
  706. /package/dist/{overlays → presentation/overlays}/actionSheet/index.d.ts +0 -0
  707. /package/dist/{overlays → presentation/overlays}/alertModal/AlertModal.d.ts +0 -0
  708. /package/dist/{overlays → presentation/overlays}/alertModal/index.d.ts +0 -0
  709. /package/dist/{overlays → presentation/overlays}/backdrop/Backdrop.d.ts +0 -0
  710. /package/dist/{overlays → presentation/overlays}/backdrop/index.d.ts +0 -0
  711. /package/dist/{overlays → presentation/overlays}/bottomSheet/index.d.ts +0 -0
  712. /package/dist/{overlays → presentation/overlays}/drawer/index.d.ts +0 -0
  713. /package/dist/{overlays → presentation/overlays}/hoverCard/index.d.ts +0 -0
  714. /package/dist/{overlays → presentation/overlays}/index.d.ts +0 -0
  715. /package/dist/{overlays → presentation/overlays}/modal/index.d.ts +0 -0
  716. /package/dist/{overlays → presentation/overlays}/popover/index.d.ts +0 -0
@@ -1,6 +1,6 @@
1
1
  import { __export } from './chunk-DCHYNTHI.js';
2
2
 
3
- // src/themes/index.ts
3
+ // src/foundation/themes/index.ts
4
4
  var themes_exports = {};
5
5
  __export(themes_exports, {
6
6
  AA_TEXT: () => AA_TEXT,
@@ -34,7 +34,7 @@ __export(themes_exports, {
34
34
  validatedThemes: () => validatedThemes
35
35
  });
36
36
 
37
- // src/themes/Oklch.ts
37
+ // src/foundation/themes/Oklch.ts
38
38
  var clamp01 = (x) => x < 0 ? 0 : x > 1 ? 1 : x;
39
39
  function normalizeHue(h) {
40
40
  const m = h % 360;
@@ -178,7 +178,7 @@ var Oklch = {
178
178
  contrastRatioCss
179
179
  };
180
180
 
181
- // src/themes/Tokens.ts
181
+ // src/foundation/themes/Tokens.ts
182
182
  var TONE_FAMILIES = [
183
183
  "primary",
184
184
  "accent",
@@ -217,13 +217,13 @@ function applyToneSlots(target, family, slots) {
217
217
  target[`${family}-soft-foreground`] = slots.softForeground;
218
218
  }
219
219
 
220
- // src/themes/Theme.ts
220
+ // src/foundation/themes/Theme.ts
221
221
  var ThemeStatus = {
222
222
  Validated: "validated",
223
223
  Candidate: "candidate"
224
224
  };
225
225
 
226
- // src/themes/validate.ts
226
+ // src/foundation/themes/validate.ts
227
227
  var AA_TEXT = 4.5;
228
228
  var AA_UI = 3;
229
229
  function contrastPairs() {
@@ -263,7 +263,7 @@ function validateTheme(theme) {
263
263
  return failures.length === 0 ? { contrastAA: true } : { contrastAA: false, failures };
264
264
  }
265
265
 
266
- // src/themes/generate.ts
266
+ // src/foundation/themes/generate.ts
267
267
  var NEUTRAL_TINT = {
268
268
  cool: { hue: 250, chroma: 0.012 },
269
269
  // bluish slate
@@ -467,7 +467,7 @@ function generateTheme(seed) {
467
467
  };
468
468
  }
469
469
 
470
- // src/themes/css.ts
470
+ // src/foundation/themes/css.ts
471
471
  var RADIUS_SCALE = {
472
472
  sm: { md: "0.375rem", lg: "0.5rem", xl: "0.75rem" },
473
473
  md: { md: "0.5rem", lg: "0.75rem", xl: "1rem" },
@@ -513,7 +513,7 @@ function emitThemesManifest(themes) {
513
513
  }));
514
514
  }
515
515
 
516
- // src/themes/validated.ts
516
+ // src/foundation/themes/validated.ts
517
517
  var LIB_DEFAULT_LIGHT = {
518
518
  background: "#ffffff",
519
519
  foreground: "#18181b",
@@ -658,7 +658,7 @@ var smartQr = {
658
658
  };
659
659
  var VALIDATED_THEMES = [smartQr];
660
660
 
661
- // src/themes/pool.ts
661
+ // src/foundation/themes/pool.ts
662
662
  var NAMED_SEEDS = [
663
663
  {
664
664
  id: "catppuccin-latte",
@@ -1394,7 +1394,7 @@ function buildSpectrumSeeds() {
1394
1394
  var SPECTRUM_SEEDS = buildSpectrumSeeds();
1395
1395
  var POOL_SEEDS = [...NAMED_SEEDS, ...SPECTRUM_SEEDS];
1396
1396
 
1397
- // src/themes/registry.ts
1397
+ // src/foundation/themes/registry.ts
1398
1398
  var THEME_SEEDS = [
1399
1399
  {
1400
1400
  id: "wow",
@@ -1652,5 +1652,5 @@ function candidateThemes() {
1652
1652
  var THEME_IDS = THEMES.map((t) => t.id);
1653
1653
 
1654
1654
  export { AA_TEXT, AA_UI, Oklch, SEMANTIC_TOKENS, SURFACE_TOKENS, THEMES, THEME_IDS, THEME_SEEDS, TONE_FAMILIES, ThemeStatus, applyToneSlots, candidateThemes, clampChromaToGamut, contrastPairs, contrastRatio, contrastRatioCss, emitAllThemesCss, emitThemesManifest, generateTheme, getTheme, isInSrgbGamut, normalizeHue, oklchToCss, oklchToHex, parseColor, relativeLuminance, themeToCss, themes_exports, validateTheme, validatedThemes };
1655
- //# sourceMappingURL=chunk-LS4EGKUK.js.map
1656
- //# sourceMappingURL=chunk-LS4EGKUK.js.map
1655
+ //# sourceMappingURL=chunk-EI7EKA2V.js.map
1656
+ //# sourceMappingURL=chunk-EI7EKA2V.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/foundation/themes/index.ts","../src/foundation/themes/Oklch.ts","../src/foundation/themes/Tokens.ts","../src/foundation/themes/Theme.ts","../src/foundation/themes/validate.ts","../src/foundation/themes/generate.ts","../src/foundation/themes/css.ts","../src/foundation/themes/validated.ts","../src/foundation/themes/pool.ts","../src/foundation/themes/registry.ts"],"names":[],"mappings":";;;AAAA,IAAA,cAAA,GAAA;AAAA,QAAA,CAAA,cAAA,EAAA;AAAA,EAAA,OAAA,EAAA,MAAA,OAAA;AAAA,EAAA,KAAA,EAAA,MAAA,KAAA;AAAA,EAAA,KAAA,EAAA,MAAA,KAAA;AAAA,EAAA,eAAA,EAAA,MAAA,eAAA;AAAA,EAAA,cAAA,EAAA,MAAA,cAAA;AAAA,EAAA,MAAA,EAAA,MAAA,MAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,cAAA,EAAA,MAAA,cAAA;AAAA,EAAA,eAAA,EAAA,MAAA,eAAA;AAAA,EAAA,kBAAA,EAAA,MAAA,kBAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,gBAAA,EAAA,MAAA,gBAAA;AAAA,EAAA,gBAAA,EAAA,MAAA,gBAAA;AAAA,EAAA,kBAAA,EAAA,MAAA,kBAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,QAAA,EAAA,MAAA,QAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,YAAA,EAAA,MAAA,YAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,iBAAA,EAAA,MAAA,iBAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,eAAA,EAAA,MAAA;AAAA,CAAA,CAAA;;;ACmCA,IAAM,OAAA,GAAU,CAAC,CAAA,KAAuB,CAAA,GAAI,IAAI,CAAA,GAAI,CAAA,GAAI,IAAI,CAAA,GAAI,CAAA;AAGzD,SAAS,aAAa,CAAA,EAAmB;AAC9C,EAAA,MAAM,IAAI,CAAA,GAAI,GAAA;AACd,EAAA,OAAO,CAAA,GAAI,CAAA,GAAI,CAAA,GAAI,GAAA,GAAM,CAAA;AAC3B;AAMA,SAAS,gBAAA,CAAiB,EAAE,CAAA,EAAG,CAAA,EAAG,GAAE,EAAqB;AACvD,EAAA,MAAM,EAAA,GAAM,YAAA,CAAa,CAAC,CAAA,GAAI,KAAK,EAAA,GAAM,GAAA;AACzC,EAAA,MAAM,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,EAAE,CAAA,GAAI,CAAA;AACzB,EAAA,MAAM,CAAA,GAAI,IAAA,CAAK,GAAA,CAAI,EAAE,CAAA,GAAI,CAAA;AAEzB,EAAA,MAAM,EAAA,GAAK,CAAA,GAAI,YAAA,GAAe,CAAA,GAAI,YAAA,GAAe,CAAA;AACjD,EAAA,MAAM,EAAA,GAAK,CAAA,GAAI,YAAA,GAAe,CAAA,GAAI,YAAA,GAAe,CAAA;AACjD,EAAA,MAAM,EAAA,GAAK,CAAA,GAAI,YAAA,GAAe,CAAA,GAAI,WAAA,GAAc,CAAA;AAEhD,EAAA,MAAM,EAAA,GAAK,KAAK,EAAA,GAAK,EAAA;AACrB,EAAA,MAAM,EAAA,GAAK,KAAK,EAAA,GAAK,EAAA;AACrB,EAAA,MAAM,EAAA,GAAK,KAAK,EAAA,GAAK,EAAA;AAErB,EAAA,OAAO;AAAA,IACL,CAAA,EAAG,YAAA,GAAgB,EAAA,GAAK,YAAA,GAAe,KAAK,YAAA,GAAe,EAAA;AAAA,IAC3D,CAAA,EAAG,aAAA,GAAgB,EAAA,GAAK,YAAA,GAAe,KAAK,YAAA,GAAe,EAAA;AAAA,IAC3D,CAAA,EAAG,aAAA,GAAgB,EAAA,GAAK,YAAA,GAAe,KAAK,WAAA,GAAc;AAAA,GAC5D;AACF;AAMA,SAAS,oBAAoB,CAAA,EAAmB;AAC9C,EAAA,MAAM,CAAA,GAAI,QAAQ,CAAC,CAAA;AACnB,EAAA,OAAO,CAAA,IAAK,QAAA,GAAY,KAAA,GAAQ,CAAA,GAAI,KAAA,GAAQ,KAAK,GAAA,CAAI,CAAA,EAAG,CAAA,GAAI,GAAG,CAAA,GAAI,KAAA;AACrE;AAEA,SAAS,oBAAoB,CAAA,EAAmB;AAC9C,EAAA,OAAO,CAAA,IAAK,UAAU,CAAA,GAAI,KAAA,GAAQ,KAAK,GAAA,CAAA,CAAK,CAAA,GAAI,KAAA,IAAS,KAAA,EAAO,GAAG,CAAA;AACrE;AAEA,SAAS,gBAAgB,GAAA,EAAsB;AAC7C,EAAA,OAAO;AAAA,IACL,CAAA,EAAG,mBAAA,CAAoB,GAAA,CAAI,CAAC,CAAA;AAAA,IAC5B,CAAA,EAAG,mBAAA,CAAoB,GAAA,CAAI,CAAC,CAAA;AAAA,IAC5B,CAAA,EAAG,mBAAA,CAAoB,GAAA,CAAI,CAAC;AAAA,GAC9B;AACF;AAOO,SAAS,cAAc,KAAA,EAAuB;AACnD,EAAA,MAAM,EAAE,CAAA,EAAG,CAAA,EAAG,CAAA,EAAE,GAAI,iBAAiB,KAAK,CAAA;AAC1C,EAAA,MAAM,GAAA,GAAM,IAAA;AACZ,EAAA,OACE,KAAK,CAAC,GAAA,IAAO,CAAA,IAAK,CAAA,GAAI,OAAO,CAAA,IAAK,CAAC,GAAA,IAAO,CAAA,IAAK,IAAI,GAAA,IAAO,CAAA,IAAK,CAAC,GAAA,IAAO,KAAK,CAAA,GAAI,GAAA;AAEpF;AAMO,SAAS,mBAAmB,KAAA,EAAqB;AACtD,EAAA,IAAI,aAAA,CAAc,KAAK,CAAA,EAAG,OAAO,KAAA;AACjC,EAAA,IAAI,EAAA,GAAK,CAAA;AACT,EAAA,IAAI,KAAK,KAAA,CAAM,CAAA;AACf,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,EAAA,EAAI,CAAA,EAAA,EAAK;AAC3B,IAAA,MAAM,GAAA,GAAA,CAAO,KAAK,EAAA,IAAM,CAAA;AACxB,IAAA,IAAI,aAAA,CAAc,EAAE,CAAA,EAAG,KAAA,CAAM,CAAA,EAAG,CAAA,EAAG,GAAA,EAAK,CAAA,EAAG,KAAA,CAAM,CAAA,EAAG,CAAA,EAAG,EAAA,GAAK,GAAA;AAAA,SACvD,EAAA,GAAK,GAAA;AAAA,EACZ;AACA,EAAA,OAAO,EAAE,GAAG,KAAA,CAAM,CAAA,EAAG,GAAG,EAAA,EAAI,CAAA,EAAG,MAAM,CAAA,EAAE;AACzC;AAMA,SAAS,OAAO,CAAA,EAAmB;AACjC,EAAA,OAAO,IAAA,CAAK,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA,GAAI,GAAG,CAAA,CAC/B,QAAA,CAAS,EAAE,CAAA,CACX,QAAA,CAAS,CAAA,EAAG,GAAG,CAAA;AACpB;AAGO,SAAS,WAAW,KAAA,EAAsB;AAC/C,EAAA,MAAM,IAAA,GAAO,mBAAmB,KAAK,CAAA;AACrC,EAAA,MAAM,EAAE,GAAG,CAAA,EAAG,CAAA,KAAM,eAAA,CAAgB,gBAAA,CAAiB,IAAI,CAAC,CAAA;AAC1D,EAAA,OAAO,CAAA,CAAA,EAAI,MAAA,CAAO,CAAC,CAAC,CAAA,EAAG,MAAA,CAAO,CAAC,CAAC,CAAA,EAAG,MAAA,CAAO,CAAC,CAAC,CAAA,CAAA;AAC9C;AAMO,SAAS,WAAW,KAAA,EAAsB;AAC/C,EAAA,MAAM,IAAA,GAAO,mBAAmB,KAAK,CAAA;AACrC,EAAA,MAAM,KAAK,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,GAAI,GAAA,EAAK,QAAQ,CAAC,CAAA;AAC3C,EAAA,MAAM,CAAA,GAAI,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,CAAC,CAAA,CAAE,QAAQ,CAAC,CAAA;AACvC,EAAA,MAAM,IAAI,YAAA,CAAa,IAAA,CAAK,CAAC,CAAA,CAAE,QAAQ,CAAC,CAAA;AACxC,EAAA,OAAO,CAAA,MAAA,EAAS,CAAC,CAAA,EAAA,EAAK,CAAC,IAAI,CAAC,CAAA,CAAA,CAAA;AAC9B;AAGA,SAAS,SAAS,GAAA,EAA0B;AAC1C,EAAA,IAAI,IAAI,GAAA,CAAI,IAAA,EAAK,CAAE,OAAA,CAAQ,MAAM,EAAE,CAAA;AACnC,EAAA,IAAI,CAAA,CAAE,WAAW,CAAA,EAAG;AAClB,IAAA,CAAA,GAAI,CAAA,CAAE,OAAA,CAAQ,MAAA,EAAQ,MAAM,CAAA;AAAA,EAC9B;AACA,EAAA,IAAI,EAAE,MAAA,KAAW,CAAA,IAAK,eAAe,IAAA,CAAK,CAAC,GAAG,OAAO,IAAA;AACrD,EAAA,OAAO;AAAA,IACL,CAAA,EAAG,SAAS,CAAA,CAAE,KAAA,CAAM,GAAG,CAAC,CAAA,EAAG,EAAE,CAAA,GAAI,GAAA;AAAA,IACjC,CAAA,EAAG,SAAS,CAAA,CAAE,KAAA,CAAM,GAAG,CAAC,CAAA,EAAG,EAAE,CAAA,GAAI,GAAA;AAAA,IACjC,CAAA,EAAG,SAAS,CAAA,CAAE,KAAA,CAAM,GAAG,CAAC,CAAA,EAAG,EAAE,CAAA,GAAI;AAAA,GACnC;AACF;AAMA,SAAS,yBAAA,CAA0B,EAAE,CAAA,EAAG,CAAA,EAAG,GAAE,EAAiB;AAC5D,EAAA,MAAM,CAAA,GAAI,oBAAoB,CAAC,CAAA;AAC/B,EAAA,MAAM,CAAA,GAAI,oBAAoB,CAAC,CAAA;AAC/B,EAAA,MAAM,CAAA,GAAI,oBAAoB,CAAC,CAAA;AAC/B,EAAA,OAAO,MAAA,GAAS,CAAA,GAAI,MAAA,GAAS,CAAA,GAAI,MAAA,GAAS,CAAA;AAC5C;AAGO,SAAS,kBAAkB,KAAA,EAAsB;AACtD,EAAA,OAAO,0BAA0B,eAAA,CAAgB,gBAAA,CAAiB,mBAAmB,KAAK,CAAC,CAAC,CAAC,CAAA;AAC/F;AAEA,SAAS,sBAAA,CAAuB,IAAY,EAAA,EAAoB;AAC9D,EAAA,MAAM,EAAA,GAAK,IAAA,CAAK,GAAA,CAAI,EAAA,EAAI,EAAE,CAAA;AAC1B,EAAA,MAAM,EAAA,GAAK,IAAA,CAAK,GAAA,CAAI,EAAA,EAAI,EAAE,CAAA;AAC1B,EAAA,OAAA,CAAQ,EAAA,GAAK,SAAS,EAAA,GAAK,IAAA,CAAA;AAC7B;AAGO,SAAS,aAAA,CAAc,GAAU,CAAA,EAAkB;AACxD,EAAA,OAAO,uBAAuB,iBAAA,CAAkB,CAAC,CAAA,EAAG,iBAAA,CAAkB,CAAC,CAAC,CAAA;AAC1E;AAGO,SAAS,gBAAA,CAAiB,GAAW,CAAA,EAAmB;AAC7D,EAAA,MAAM,EAAA,GAAK,WAAW,CAAC,CAAA;AACvB,EAAA,MAAM,EAAA,GAAK,WAAW,CAAC,CAAA;AACvB,EAAA,IAAI,CAAC,EAAA,IAAM,CAAC,EAAA,EAAI,OAAO,CAAA;AACvB,EAAA,OAAO,aAAA,CAAc,IAAI,EAAE,CAAA;AAC7B;AAMA,IAAM,QAAA,GAAW,oDAAA;AAGV,SAAS,WAAW,KAAA,EAA6B;AACtD,EAAA,MAAM,CAAA,GAAI,MAAM,IAAA,EAAK;AACrB,EAAA,MAAM,CAAA,GAAI,QAAA,CAAS,IAAA,CAAK,CAAC,CAAA;AACzB,EAAA,IAAI,CAAA,IAAK,EAAE,CAAC,CAAA,IAAK,EAAE,CAAC,CAAA,IAAK,CAAA,CAAE,CAAC,CAAA,EAAG;AAC7B,IAAA,MAAM,IAAA,GAAO,UAAA,CAAW,CAAA,CAAE,CAAC,CAAC,CAAA;AAE5B,IAAA,MAAM,IAAI,CAAA,CAAE,QAAA,CAAS,GAAG,CAAA,GAAI,OAAO,GAAA,GAAM,IAAA;AACzC,IAAA,OAAO,EAAE,CAAA,EAAG,CAAA,EAAG,UAAA,CAAW,CAAA,CAAE,CAAC,CAAC,CAAA,EAAG,CAAA,EAAG,UAAA,CAAW,CAAA,CAAE,CAAC,CAAC,CAAA,EAAE;AAAA,EACvD;AACA,EAAA,IAAI,CAAA,CAAE,UAAA,CAAW,GAAG,CAAA,EAAG;AACrB,IAAA,MAAM,IAAA,GAAO,SAAS,CAAC,CAAA;AACvB,IAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAClB,IAAA,OAAO,YAAY,IAAI,CAAA;AAAA,EACzB;AACA,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,YAAY,IAAA,EAAmB;AACtC,EAAA,MAAM,CAAA,GAAI,mBAAA,CAAoB,IAAA,CAAK,CAAC,CAAA;AACpC,EAAA,MAAM,CAAA,GAAI,mBAAA,CAAoB,IAAA,CAAK,CAAC,CAAA;AACpC,EAAA,MAAM,CAAA,GAAI,mBAAA,CAAoB,IAAA,CAAK,CAAC,CAAA;AAEpC,EAAA,MAAM,EAAA,GAAK,KAAK,IAAA,CAAK,YAAA,GAAe,IAAI,YAAA,GAAe,CAAA,GAAI,eAAe,CAAC,CAAA;AAC3E,EAAA,MAAM,EAAA,GAAK,KAAK,IAAA,CAAK,YAAA,GAAe,IAAI,YAAA,GAAe,CAAA,GAAI,eAAe,CAAC,CAAA;AAC3E,EAAA,MAAM,EAAA,GAAK,KAAK,IAAA,CAAK,YAAA,GAAe,IAAI,YAAA,GAAe,CAAA,GAAI,eAAe,CAAC,CAAA;AAE3E,EAAA,MAAM,CAAA,GAAI,YAAA,GAAe,EAAA,GAAK,WAAA,GAAc,KAAK,YAAA,GAAe,EAAA;AAChE,EAAA,MAAM,CAAA,GAAI,YAAA,GAAe,EAAA,GAAK,WAAA,GAAc,KAAK,YAAA,GAAe,EAAA;AAChE,EAAA,MAAM,EAAA,GAAK,YAAA,GAAe,EAAA,GAAK,YAAA,GAAe,KAAK,WAAA,GAAc,EAAA;AAEjE,EAAA,MAAM,CAAA,GAAI,IAAA,CAAK,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AAC1B,EAAA,MAAM,CAAA,GAAI,aAAc,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,CAAA,GAAI,GAAA,GAAO,IAAA,CAAK,EAAE,CAAA;AAC1D,EAAA,OAAO,EAAE,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAE;AACtB;AAGO,IAAM,KAAA,GAAQ;AAAA,EACnB,YAAA;AAAA,EACA,aAAA;AAAA,EACA,kBAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,iBAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF;;;AC3OO,IAAM,aAAA,GAAgB;AAAA,EAC3B,SAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF;AAKO,IAAM,cAAA,GAAiB;AAAA,EAC5B,YAAA;AAAA,EACA,YAAA;AAAA,EACA,MAAA;AAAA,EACA,iBAAA;AAAA,EACA,SAAA;AAAA,EACA,oBAAA;AAAA,EACA,OAAA;AAAA,EACA,kBAAA;AAAA,EACA,mBAAA;AAAA,EACA,SAAA;AAAA,EACA,oBAAA;AAAA,EACA,QAAA;AAAA,EACA,eAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF;AA2CO,IAAM,eAAA,GAA4C;AAAA,EACvD,GAAG,cAAA;AAAA,EACH,GAAG,aAAA,CAAc,OAAA;AAAA,IACf,CAAC,CAAA,KACC,CAAC,CAAA,EAAG,CAAA,EAAG,CAAC,CAAA,WAAA,CAAA,EAAe,CAAA,EAAG,CAAC,CAAA,KAAA,CAAA,EAAS,CAAA,EAAG,CAAC,CAAA,gBAAA,CAAkB;AAAA;AAEhE;AAGO,SAAS,cAAA,CACd,MAAA,EACA,MAAA,EACA,KAAA,EACM;AACN,EAAA,MAAA,CAAO,MAAM,IAAI,KAAA,CAAM,IAAA;AACvB,EAAA,MAAA,CAAO,CAAA,EAAG,MAAM,CAAA,WAAA,CAAa,CAAA,GAAI,KAAA,CAAM,UAAA;AACvC,EAAA,MAAA,CAAO,CAAA,EAAG,MAAM,CAAA,KAAA,CAAO,CAAA,GAAI,KAAA,CAAM,IAAA;AACjC,EAAA,MAAA,CAAO,CAAA,EAAG,MAAM,CAAA,gBAAA,CAAkB,CAAA,GAAI,KAAA,CAAM,cAAA;AAC9C;;;ACpFO,IAAM,WAAA,GAAc;AAAA,EACzB,SAAA,EAAW,WAAA;AAAA,EACX,SAAA,EAAW;AACb;;;ACRO,IAAM,OAAA,GAAU;AAChB,IAAM,KAAA,GAAQ;AAgBd,SAAS,aAAA,GAAgC;AAC9C,EAAA,MAAM,KAAA,GAAwB;AAAA,IAC5B,EAAE,EAAA,EAAI,YAAA,EAAc,EAAA,EAAI,YAAA,EAAc,KAAK,OAAA,EAAQ;AAAA,IACnD,EAAE,EAAA,EAAI,iBAAA,EAAmB,EAAA,EAAI,MAAA,EAAQ,KAAK,OAAA,EAAQ;AAAA,IAClD,EAAE,EAAA,EAAI,oBAAA,EAAsB,EAAA,EAAI,SAAA,EAAW,KAAK,OAAA,EAAQ;AAAA,IACxD,EAAE,EAAA,EAAI,kBAAA,EAAoB,EAAA,EAAI,OAAA,EAAS,KAAK,OAAA,EAAQ;AAAA,IACpD,EAAE,EAAA,EAAI,mBAAA,EAAqB,EAAA,EAAI,YAAA,EAAc,KAAK,KAAA,EAAM;AAAA,IACxD,EAAE,EAAA,EAAI,oBAAA,EAAsB,EAAA,EAAI,SAAA,EAAW,KAAK,OAAA,EAAQ;AAAA;AAAA,IAExD,EAAE,EAAA,EAAI,MAAA,EAAQ,EAAA,EAAI,YAAA,EAAc,KAAK,KAAA;AAAM,GAC7C;AAEA,EAAA,KAAA,MAAW,KAAK,aAAA,EAAe;AAE7B,IAAA,KAAA,CAAM,IAAA,CAAK,EAAE,EAAA,EAAI,CAAA,EAAG,CAAC,eAAe,EAAA,EAAI,CAAA,EAAG,GAAA,EAAK,OAAA,EAAS,CAAA;AAEzD,IAAA,KAAA,CAAM,IAAA,CAAK,EAAE,EAAA,EAAI,CAAA,EAAG,CAAC,CAAA,gBAAA,CAAA,EAAoB,EAAA,EAAI,CAAA,EAAG,CAAC,CAAA,KAAA,CAAA,EAAS,GAAA,EAAK,OAAA,EAAS,CAAA;AAAA,EAC1E;AAEA,EAAA,OAAO,KAAA;AACT;AAGA,SAAS,SAAA,CAAU,KAAe,IAAA,EAAkC;AAClE,EAAA,MAAM,WAAqB,EAAC;AAC5B,EAAA,KAAA,MAAW,EAAE,EAAA,EAAI,EAAA,EAAI,GAAA,EAAI,IAAK,eAAc,EAAG;AAC7C,IAAA,MAAM,QAAQ,gBAAA,CAAiB,GAAA,CAAI,EAAE,CAAA,EAAG,GAAA,CAAI,EAAE,CAAC,CAAA;AAC/C,IAAA,IAAI,KAAA,GAAQ,OAAO,GAAA,EAAK;AACtB,MAAA,QAAA,CAAS,IAAA;AAAA,QACP,CAAA,EAAG,IAAI,CAAA,EAAA,EAAK,EAAE,OAAO,EAAE,CAAA,GAAA,EAAM,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAC,CAAA,OAAA,EAAU,GAAA,CAAI,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA;AAAA,OACvE;AAAA,IACF;AAAA,EACF;AACA,EAAA,OAAO,QAAA;AACT;AAMO,SAAS,cAAc,KAAA,EAAiD;AAC7E,EAAA,MAAM,QAAA,GAAW;AAAA,IACf,GAAG,SAAA,CAAU,KAAA,CAAM,KAAA,EAAO,OAAO,CAAA;AAAA,IACjC,GAAG,SAAA,CAAU,KAAA,CAAM,IAAA,EAAM,MAAM;AAAA,GACjC;AACA,EAAA,OAAO,QAAA,CAAS,MAAA,KAAW,CAAA,GACvB,EAAE,UAAA,EAAY,MAAK,GACnB,EAAE,UAAA,EAAY,KAAA,EAAO,QAAA,EAAS;AACpC;;;AC9BA,IAAM,YAAA,GAAqE;AAAA,EACzE,IAAA,EAAM,EAAE,GAAA,EAAK,GAAA,EAAK,QAAQ,KAAA,EAAM;AAAA;AAAA,EAChC,OAAA,EAAS,EAAE,GAAA,EAAK,GAAA,EAAK,QAAQ,IAAA,EAAM;AAAA;AAAA,EACnC,IAAA,EAAM,EAAE,GAAA,EAAK,EAAA,EAAI,QAAQ,KAAA;AAAM;AACjC,CAAA;AAGA,IAAM,UAAA,GAAa;AAAA,EACjB,OAAA,EAAS,GAAA;AAAA,EACT,OAAA,EAAS,EAAA;AAAA,EACT,WAAA,EAAa,EAAA;AAAA,EACb,IAAA,EAAM;AACR,CAAA;AAMA,IAAM,MAAA,GAAS,CAAC,CAAA,KAAsB,IAAA,CAAK,GAAA,CAAI,OAAO,IAAA,CAAK,GAAA,CAAI,IAAA,EAAM,CAAC,CAAC,CAAA;AAGvE,SAAS,UAAA,CAAW,IAAW,GAAA,EAAoB;AACjD,EAAA,MAAM,QAAe,EAAE,CAAA,EAAG,OAAO,CAAA,EAAG,IAAA,EAAO,GAAG,GAAA,EAAI;AAClD,EAAA,MAAM,QAAe,EAAE,CAAA,EAAG,MAAM,CAAA,EAAG,IAAA,EAAM,GAAG,GAAA,EAAI;AAChD,EAAA,OAAO,aAAA,CAAc,OAAO,EAAE,CAAA,IAAK,cAAc,KAAA,EAAO,EAAE,IAAI,KAAA,GAAQ,KAAA;AACxE;AAMA,SAAS,eAAA,CAAgB,EAAA,EAAW,EAAA,EAAW,GAAA,EAAoB;AACjE,EAAA,IAAI,GAAA,GAAM,EAAE,GAAG,EAAA,EAAG;AAClB,EAAA,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,CAAA,IAAK,KAAK,OAAO,GAAA;AAG1C,EAAA,MAAM,SAAA,GAAY,iBAAA,CAAkB,EAAE,CAAA,GAAI,GAAA;AAC1C,EAAA,MAAM,IAAA,GAAO,YAAY,IAAA,GAAO,KAAA;AAEhC,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,EAAA,EAAI,CAAA,EAAA,EAAK;AAC3B,IAAA,GAAA,GAAM,EAAE,GAAG,GAAA,EAAK,CAAA,EAAG,OAAO,GAAA,CAAI,CAAA,GAAI,IAAI,CAAA,EAAE;AACxC,IAAA,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,CAAA,IAAK,KAAK,OAAO,GAAA;AAC1C,IAAA,IAAI,GAAA,CAAI,CAAA,IAAK,IAAA,IAAQ,GAAA,CAAI,KAAK,KAAA,EAAO;AAAA,EACvC;AAEA,EAAA,OAAO,YAAY,EAAE,CAAA,EAAG,KAAA,EAAO,CAAA,EAAG,GAAG,CAAA,EAAG,EAAA,CAAG,CAAA,EAAE,GAAI,EAAE,CAAA,EAAG,GAAA,EAAK,GAAG,CAAA,EAAG,CAAA,EAAG,GAAG,CAAA,EAAE;AAC3E;AAQA,SAAS,gBAAA,CACP,IAAA,EACA,EAAA,EACA,GAAA,EACoC;AACpC,EAAA,IAAI,KAAA,GAAQ,eAAA,CAAgB,EAAA,EAAI,IAAA,EAAM,GAAG,CAAA;AACzC,EAAA,IAAI,aAAA,CAAc,OAAO,IAAI,CAAA,IAAK,KAAK,OAAO,EAAE,IAAA,EAAM,UAAA,EAAY,KAAA,EAAM;AAGxE,EAAA,MAAM,SAAA,GAAY,iBAAA,CAAkB,KAAK,CAAA,IAAK,GAAA;AAC9C,EAAA,MAAM,IAAA,GAAO,YAAY,KAAA,GAAQ,IAAA;AACjC,EAAA,IAAI,OAAA,GAAU,EAAE,GAAG,IAAA,EAAK;AACxB,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,EAAA,EAAI,CAAA,EAAA,EAAK;AAC3B,IAAA,OAAA,GAAU,EAAE,GAAG,OAAA,EAAS,CAAA,EAAG,OAAO,OAAA,CAAQ,CAAA,GAAI,IAAI,CAAA,EAAE;AACpD,IAAA,KAAA,GAAQ,eAAA,CAAgB,KAAA,EAAO,OAAA,EAAS,GAAG,CAAA;AAC3C,IAAA,IAAI,aAAA,CAAc,KAAA,EAAO,OAAO,CAAA,IAAK,GAAA,EAAK;AAC1C,IAAA,IAAI,OAAA,CAAQ,CAAA,IAAK,IAAA,IAAQ,OAAA,CAAQ,KAAK,KAAA,EAAO;AAAA,EAC/C;AACA,EAAA,OAAO,EAAE,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAM;AAC5C;AA0BA,SAAS,UAAA,CAAW,QAAiB,OAAA,EAAmC;AACtE,EAAA,MAAM,QAAQ,OAAA,KAAY,OAAA;AAC1B,EAAA,IAAI,MAAA,EAAQ;AACV,IAAA,OAAO;AAAA,MACL,GAAA,EAAK,QAAQ,IAAA,GAAO,GAAA;AAAA,MACpB,QAAA,EAAU,QAAQ,IAAA,GAAO,IAAA;AAAA,MACzB,GAAA,EAAK,IAAA;AAAA,MACL,KAAA,EAAO,GAAA;AAAA,MACP,KAAA,EAAO,IAAA;AAAA,MACP,KAAA,EAAO,GAAA;AAAA,MACP,KAAA,EAAO,IAAA;AAAA,MACP,MAAA,EAAQ;AAAA,KACV;AAAA,EACF;AACA,EAAA,OAAO;AAAA,IACL,GAAA,EAAK,CAAA;AAAA,IACL,QAAA,EAAU,QAAQ,MAAA,GAAS,MAAA;AAAA,IAC3B,GAAA,EAAK,GAAA;AAAA,IACL,KAAA,EAAO,IAAA;AAAA,IACP,KAAA,EAAO,IAAA;AAAA,IACP,KAAA,EAAO,IAAA;AAAA,IACP,KAAA,EAAO,IAAA;AAAA,IACP,MAAA,EAAQ;AAAA,GACV;AACF;AAGA,SAAS,SAAA,CACP,UAAA,EACA,SAAA,EACA,WAAA,EACA,SACA,MAAA,EACU;AACV,EAAA,MAAM,GAAA,GAAM,UAAA,CAAW,MAAA,EAAQ,OAAO,CAAA;AACtC,EAAA,MAAM,IAAA,GAAO,aAAa,WAAW,CAAA;AACrC,EAAA,MAAM,KAAK,IAAA,CAAK,GAAA;AAChB,EAAA,MAAM,KAAK,IAAA,CAAK,MAAA;AAGhB,EAAA,MAAM,UAAA,GAAoB,EAAE,CAAA,EAAG,MAAA,CAAO,GAAA,CAAI,GAAG,CAAA,EAAG,CAAA,EAAG,EAAA,EAAI,CAAA,EAAG,EAAA,EAAG;AAE7D,EAAA,MAAM,IAAA,GAAc,EAAE,CAAA,EAAG,MAAA,CAAO,GAAA,CAAI,GAAA,GAAM,GAAA,CAAI,QAAQ,CAAA,EAAG,CAAA,EAAG,EAAA,EAAI,CAAA,EAAG,EAAA,EAAG;AACtE,EAAA,MAAM,OAAA,GAAU,IAAA;AAChB,EAAA,MAAM,KAAA,GAAe,EAAE,CAAA,EAAG,MAAA,CAAO,IAAI,GAAA,GAAM,GAAA,CAAI,QAAA,GAAW,GAAG,CAAA,EAAG,CAAA,EAAG,EAAA,GAAK,GAAA,EAAK,GAAG,EAAA,EAAG;AAGnF,EAAA,MAAM,MAAA,GAAgB,EAAE,CAAA,EAAG,MAAA,CAAO,IAAI,GAAA,GAAM,GAAA,CAAI,QAAA,GAAW,GAAG,CAAA,EAAG,CAAA,EAAG,EAAA,GAAK,GAAA,EAAK,GAAG,EAAA,EAAG;AACpF,EAAA,MAAM,YAAA,GAAsB;AAAA,IAC1B,GAAG,MAAA,CAAO,GAAA,CAAI,GAAA,GAAM,GAAA,CAAI,WAAW,GAAG,CAAA;AAAA,IACtC,GAAG,EAAA,GAAK,GAAA;AAAA,IACR,CAAA,EAAG;AAAA,GACL;AACA,EAAA,MAAM,KAAA,GAAQ,YAAA;AAGd,EAAA,MAAM,UAAA,GAAa,eAAA,CAAgB,EAAE,CAAA,EAAG,GAAA,CAAI,GAAA,EAAK,CAAA,EAAG,EAAA,GAAK,CAAA,EAAG,CAAA,EAAG,EAAA,EAAG,EAAG,YAAY,OAAO,CAAA;AACxF,EAAA,MAAM,MAAA,GAAS,eAAA,CAAgB,UAAA,EAAY,IAAA,EAAM,OAAO,CAAA;AACxD,EAAA,MAAM,SAAA,GAAY,eAAA,CAAgB,UAAA,EAAY,OAAA,EAAS,OAAO,CAAA;AAC9D,EAAA,MAAM,OAAA,GAAU,eAAA;AAAA,IACd,EAAE,GAAG,MAAA,GAAS,IAAA,GAAO,KAAK,CAAA,EAAG,EAAA,GAAK,GAAA,EAAK,CAAA,EAAG,EAAA,EAAG;AAAA,IAC7C,KAAA;AAAA,IACA;AAAA,GACF;AACA,EAAA,MAAM,QAAA,GAAW,eAAA;AAAA,IACf,EAAE,GAAG,MAAA,GAAS,IAAA,GAAO,MAAM,CAAA,EAAG,EAAA,GAAK,CAAA,EAAG,CAAA,EAAG,EAAA,EAAG;AAAA,IAC5C,UAAA;AAAA,IACA;AAAA,GACF;AAGA,EAAA,MAAM,UAAiB,MAAA,GACnB,EAAE,CAAA,EAAG,IAAA,EAAM,GAAG,EAAA,EAAI,CAAA,EAAG,EAAA,EAAG,GACxB,EAAE,CAAA,EAAG,GAAA,EAAK,GAAG,EAAA,GAAK,CAAA,EAAG,GAAG,EAAA,EAAG;AAC/B,EAAA,MAAM,SAAA,GAAY,eAAA;AAAA,IAChB,EAAE,GAAG,MAAA,GAAS,IAAA,GAAO,MAAM,CAAA,EAAG,EAAA,EAAI,GAAG,EAAA,EAAG;AAAA,IACxC,OAAA;AAAA,IACA;AAAA,GACF;AAGA,EAAA,MAAM,SAAA,GAAY,CAAC,GAAA,EAAa,WAAA,GAAc,CAAA,KAAiB;AAC7D,IAAA,MAAM,QAAA,GAAkB,EAAE,CAAA,EAAG,GAAA,CAAI,KAAA,EAAO,GAAG,GAAA,CAAI,KAAA,GAAQ,WAAA,EAAa,CAAA,EAAG,GAAA,EAAI;AAC3E,IAAA,MAAM,WAAA,GAAc,UAAA,CAAW,QAAA,EAAU,GAAG,CAAA;AAE5C,IAAA,MAAM,EAAE,MAAM,UAAA,EAAY,EAAA,KAAO,gBAAA,CAAiB,QAAA,EAAU,aAAa,OAAO,CAAA;AAChF,IAAA,MAAM,IAAA,GAAc,EAAE,CAAA,EAAG,GAAA,CAAI,KAAA,EAAO,GAAG,GAAA,CAAI,KAAA,GAAQ,WAAA,EAAa,CAAA,EAAG,GAAA,EAAI;AAEvE,IAAA,MAAM,UAAA,GAAoB,SACtB,EAAE,CAAA,EAAG,MAAM,CAAA,EAAG,GAAA,CAAI,KAAA,GAAQ,GAAA,GAAM,WAAA,EAAa,CAAA,EAAG,KAAI,GACpD,EAAE,GAAG,IAAA,EAAM,CAAA,EAAG,IAAI,KAAA,GAAQ,GAAA,GAAM,WAAA,EAAa,CAAA,EAAG,GAAA,EAAI;AACxD,IAAA,MAAM,MAAA,GAAS,eAAA,CAAgB,UAAA,EAAY,IAAA,EAAM,OAAO,CAAA;AACxD,IAAA,OAAO;AAAA,MACL,IAAA,EAAM,WAAW,IAAI,CAAA;AAAA,MACrB,UAAA,EAAY,WAAW,EAAE,CAAA;AAAA,MACzB,IAAA,EAAM,WAAW,IAAI,CAAA;AAAA,MACrB,cAAA,EAAgB,WAAW,MAAM;AAAA,KACnC;AAAA,EACF,CAAA;AAGA,EAAA,MAAM,IAAA,GAAO,eAAA;AAAA,IACX,EAAE,GAAG,MAAA,GAAS,GAAA,GAAM,MAAM,CAAA,EAAG,IAAA,EAAM,GAAG,UAAA,EAAW;AAAA,IACjD,UAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,MAAM,GAAA,GAAyB;AAAA,IAC7B,UAAA,EAAY,WAAW,UAAU,CAAA;AAAA,IACjC,UAAA,EAAY,WAAW,UAAU,CAAA;AAAA,IACjC,IAAA,EAAM,WAAW,IAAI,CAAA;AAAA,IACrB,iBAAA,EAAmB,WAAW,MAAM,CAAA;AAAA,IACpC,OAAA,EAAS,WAAW,OAAO,CAAA;AAAA,IAC3B,oBAAA,EAAsB,WAAW,SAAS,CAAA;AAAA,IAC1C,KAAA,EAAO,WAAW,KAAK,CAAA;AAAA,IACvB,kBAAA,EAAoB,WAAW,OAAO,CAAA;AAAA,IACtC,mBAAA,EAAqB,WAAW,QAAQ,CAAA;AAAA,IACxC,OAAA,EAAS,WAAW,OAAO,CAAA;AAAA,IAC3B,oBAAA,EAAsB,WAAW,SAAS,CAAA;AAAA,IAC1C,MAAA,EAAQ,WAAW,MAAM,CAAA;AAAA,IACzB,eAAA,EAAiB,WAAW,YAAY,CAAA;AAAA,IACxC,KAAA,EAAO,WAAW,KAAK,CAAA;AAAA,IACvB,IAAA,EAAM,WAAW,IAAI;AAAA,GACvB;AAEA,EAAA,MAAM,KAAA,GAAwC;AAAA,IAC5C,OAAA,EAAS,UAAA;AAAA,IACT,MAAA,EAAQ,SAAA;AAAA,IACR,aAAa,UAAA,CAAW,WAAA;AAAA,IACxB,MAAM,UAAA,CAAW,IAAA;AAAA,IACjB,SAAS,UAAA,CAAW,OAAA;AAAA,IACpB,SAAS,UAAA,CAAW;AAAA,GACtB;AAEA,EAAA,KAAA,MAAW,CAAC,MAAA,EAAQ,GAAG,KAAK,MAAA,CAAO,OAAA,CAAQ,KAAK,CAAA,EAAiC;AAE/E,IAAA,MAAM,WAAA,GAAc,MAAA,KAAW,SAAA,GAAY,IAAA,GAAO,CAAA;AAClD,IAAA,cAAA,CAAe,GAAA,EAAK,MAAA,EAAQ,SAAA,CAAU,GAAA,EAAK,WAAW,CAAC,CAAA;AAAA,EACzD;AAEA,EAAA,OAAO,GAAA;AACT;AAMA,SAAS,aAAA,CAAc,YAAoB,IAAA,EAA0B;AACnE,EAAA,QAAQ,IAAA;AAAM,IACZ,KAAK,eAAA;AACH,MAAA,OAAO,YAAA,CAAa,aAAa,GAAG,CAAA;AAAA,IACtC,KAAK,WAAA;AACH,MAAA,OAAO,YAAA,CAAa,aAAa,EAAE,CAAA;AAAA,IACrC,KAAK,SAAA;AACH,MAAA,OAAO,YAAA,CAAa,aAAa,GAAG,CAAA;AAAA,IACtC,KAAK,MAAA;AACH,MAAA,OAAO,UAAA;AAAA;AAEb;AAMA,SAAS,mBAAmB,IAAA,EAAyB;AACnD,EAAA,MAAM,IAAA,GAAO,KAAK,WAAA,IAAe,SAAA;AACjC,EAAA,MAAM,IAAA,GAAO,KAAK,OAAA,IAAW,OAAA;AAC7B,EAAA,OAAO,CAAA,yBAAA,EAAyB,KAAK,KAAA,CAAM,IAAA,CAAK,UAAU,CAAC,CAAA,UAAA,EAAO,IAAI,CAAA,eAAA,EAAe,IAAI,CAAA,UAAA,CAAA;AAC3F;AAMO,SAAS,cAAc,IAAA,EAAwB;AACpD,EAAA,MAAM,UAAA,GAAa,YAAA,CAAa,IAAA,CAAK,UAAU,CAAA;AAC/C,EAAA,MAAM,WAAA,GAAc,KAAK,WAAA,IAAe,SAAA;AACxC,EAAA,MAAM,UAAA,GAAa,KAAK,UAAA,IAAc,eAAA;AACtC,EAAA,MAAM,OAAA,GAAU,KAAK,OAAA,IAAW,OAAA;AAChC,EAAA,MAAM,SAAA,GAAY,aAAA,CAAc,UAAA,EAAY,UAAU,CAAA;AAEtD,EAAA,MAAM,QAAQ,SAAA,CAAU,UAAA,EAAY,SAAA,EAAW,WAAA,EAAa,SAAS,KAAK,CAAA;AAC1E,EAAA,MAAM,OAAO,SAAA,CAAU,UAAA,EAAY,SAAA,EAAW,WAAA,EAAa,SAAS,IAAI,CAAA;AAExE,EAAA,MAAM,IAAA,GAAO,aAAA,CAAc,EAAE,KAAA,EAAO,MAAM,CAAA;AAE1C,EAAA,MAAM,QAAA,GAAW;AAAA,IACf,WAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA,CAAK,aAAa,IAAA,GAAO;AAAA,GAC3B;AAEA,EAAA,OAAO;AAAA,IACL,IAAI,IAAA,CAAK,EAAA;AAAA,IACT,MAAM,IAAA,CAAK,IAAA;AAAA,IACX,WAAA,EAAa,IAAA,CAAK,WAAA,IAAe,kBAAA,CAAmB,IAAI,CAAA;AAAA,IACxD,IAAA,EAAM,KAAA,CAAM,IAAA,iBAAK,IAAI,IAAI,CAAC,GAAI,IAAA,CAAK,IAAA,IAAQ,EAAC,EAAI,GAAG,QAAQ,CAAC,CAAC,CAAA;AAAA,IAC7D,KAAA;AAAA,IACA,IAAA;AAAA,IACA,QAAQ,IAAA,CAAK,MAAA;AAAA;AAAA;AAAA,IAGb,QAAQ,WAAA,CAAY,SAAA;AAAA,IACpB;AAAA,GACF;AACF;;;AClVA,IAAM,YAAA,GAA6E;AAAA,EACjF,IAAI,EAAE,EAAA,EAAI,YAAY,EAAA,EAAI,QAAA,EAAU,IAAI,SAAA,EAAU;AAAA,EAClD,IAAI,EAAE,EAAA,EAAI,UAAU,EAAA,EAAI,SAAA,EAAW,IAAI,MAAA,EAAO;AAAA,EAC9C,IAAI,EAAE,EAAA,EAAI,YAAY,EAAA,EAAI,UAAA,EAAY,IAAI,SAAA;AAC5C,CAAA;AAGA,SAAS,YAAA,CAAa,GAAA,EAAe,MAAA,GAAS,IAAA,EAAc;AAC1D,EAAA,OAAO,eAAA,CAAgB,GAAA,CAAI,CAAC,GAAA,KAAQ,CAAA,EAAG,MAAM,CAAA,QAAA,EAAW,GAAG,CAAA,EAAA,EAAK,GAAA,CAAI,GAAG,CAAC,GAAG,CAAA,CAAE,IAAA;AAAA,IAC3E;AAAA,GACF;AACF;AAGA,SAAS,kBAAA,CAAmB,KAAA,EAAc,MAAA,GAAS,IAAA,EAAc;AAC/D,EAAA,IAAI,CAAC,KAAA,CAAM,MAAA,EAAQ,OAAO,EAAA;AAC1B,EAAA,MAAM,KAAA,GAAQ,YAAA,CAAa,KAAA,CAAM,MAAM,CAAA;AACvC,EAAA,OACE,IAAA,GACA,OAAO,OAAA,CAAQ,KAAK,EACjB,GAAA,CAAI,CAAC,CAAC,CAAA,EAAG,CAAC,MAAM,CAAA,EAAG,MAAM,YAAY,CAAC,CAAA,EAAA,EAAK,CAAC,CAAA,CAAA,CAAG,CAAA,CAC/C,KAAK,IAAI,CAAA;AAEhB;AAMO,SAAS,WAAW,KAAA,EAAsB;AAC/C,EAAA,MAAM,MAAA,GAAS,mBAAmB,KAAK,CAAA;AACvC,EAAA,MAAM,KAAA,GAAQ,CAAA,OAAA,EAAU,KAAA,CAAM,EAAE,CAAA;AAAA,EAAO,YAAA,CAAa,KAAA,CAAM,KAAK,CAAC,GAAG,MAAM;AAAA,CAAA,CAAA;AACzE,EAAA,MAAM,IAAA,GAAO,CAAA,YAAA,EAAe,KAAA,CAAM,EAAE,CAAA;AAAA,EAAO,YAAA,CAAa,KAAA,CAAM,IAAI,CAAC;AAAA,CAAA,CAAA;AACnE,EAAA,OAAO,GAAG,KAAK;;AAAA,EAAO,IAAI,CAAA,CAAA;AAC5B;AAGO,SAAS,iBAAiB,MAAA,EAAyB;AACxD,EAAA,MAAM,MAAA,GACJ,4JAAA;AAEF,EAAA,MAAM,OAAO,MAAA,CAAO,GAAA,CAAI,UAAU,CAAA,CAAE,KAAK,MAAM,CAAA;AAC/C,EAAA,OAAO,GAAG,MAAM;AAAA,EAAK,IAAI;AAAA,CAAA;AAC3B;AAcO,SAAS,mBAAmB,MAAA,EAAuC;AACxE,EAAA,OAAO,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,IACxB,IAAI,CAAA,CAAE,EAAA;AAAA,IACN,MAAM,CAAA,CAAE,IAAA;AAAA,IACR,aAAa,CAAA,CAAE,WAAA;AAAA,IACf,MAAM,CAAA,CAAE,IAAA;AAAA,IACR,QAAQ,CAAA,CAAE,MAAA;AAAA,IACV,UAAA,EAAY,EAAE,IAAA,CAAK;AAAA,GACrB,CAAE,CAAA;AACJ;;;AClDA,IAAM,iBAAA,GAA8B;AAAA,EAClC,UAAA,EAAY,SAAA;AAAA,EACZ,UAAA,EAAY,SAAA;AAAA,EACZ,IAAA,EAAM,SAAA;AAAA,EACN,iBAAA,EAAmB,SAAA;AAAA,EACnB,OAAA,EAAS,SAAA;AAAA,EACT,oBAAA,EAAsB,SAAA;AAAA,EACtB,KAAA,EAAO,SAAA;AAAA,EACP,kBAAA,EAAoB,SAAA;AAAA,EACpB,mBAAA,EAAqB,SAAA;AAAA,EACrB,OAAA,EAAS,SAAA;AAAA,EACT,oBAAA,EAAsB,SAAA;AAAA,EACtB,MAAA,EAAQ,SAAA;AAAA,EACR,eAAA,EAAiB,SAAA;AAAA,EACjB,KAAA,EAAO,SAAA;AAAA,EACP,IAAA,EAAM,SAAA;AAAA,EACN,OAAA,EAAS,SAAA;AAAA,EACT,oBAAA,EAAsB,SAAA;AAAA,EACtB,cAAA,EAAgB,SAAA;AAAA,EAChB,yBAAA,EAA2B,SAAA;AAAA,EAC3B,MAAA,EAAQ,SAAA;AAAA,EACR,mBAAA,EAAqB,SAAA;AAAA,EACrB,aAAA,EAAe,SAAA;AAAA,EACf,wBAAA,EAA0B,SAAA;AAAA,EAC1B,WAAA,EAAa,SAAA;AAAA,EACb,wBAAA,EAA0B,SAAA;AAAA,EAC1B,kBAAA,EAAoB,SAAA;AAAA,EACpB,6BAAA,EAA+B,SAAA;AAAA,EAC/B,IAAA,EAAM,SAAA;AAAA,EACN,iBAAA,EAAmB,SAAA;AAAA,EACnB,WAAA,EAAa,SAAA;AAAA,EACb,sBAAA,EAAwB,SAAA;AAAA,EACxB,OAAA,EAAS,SAAA;AAAA,EACT,oBAAA,EAAsB,SAAA;AAAA,EACtB,cAAA,EAAgB,SAAA;AAAA,EAChB,yBAAA,EAA2B,SAAA;AAAA,EAC3B,OAAA,EAAS,SAAA;AAAA,EACT,oBAAA,EAAsB,SAAA;AAAA,EACtB,cAAA,EAAgB,SAAA;AAAA,EAChB,yBAAA,EAA2B;AAC7B,CAAA;AAEA,IAAM,gBAAA,GAA6B;AAAA,EACjC,UAAA,EAAY,SAAA;AAAA,EACZ,UAAA,EAAY,SAAA;AAAA,EACZ,IAAA,EAAM,SAAA;AAAA,EACN,iBAAA,EAAmB,SAAA;AAAA,EACnB,OAAA,EAAS,SAAA;AAAA,EACT,oBAAA,EAAsB,SAAA;AAAA,EACtB,KAAA,EAAO,SAAA;AAAA,EACP,kBAAA,EAAoB,SAAA;AAAA,EACpB,mBAAA,EAAqB,SAAA;AAAA,EACrB,OAAA,EAAS,SAAA;AAAA,EACT,oBAAA,EAAsB,SAAA;AAAA,EACtB,MAAA,EAAQ,SAAA;AAAA,EACR,eAAA,EAAiB,SAAA;AAAA,EACjB,KAAA,EAAO,SAAA;AAAA,EACP,IAAA,EAAM,SAAA;AAAA,EACN,OAAA,EAAS,SAAA;AAAA,EACT,oBAAA,EAAsB,SAAA;AAAA,EACtB,cAAA,EAAgB,SAAA;AAAA,EAChB,yBAAA,EAA2B,SAAA;AAAA,EAC3B,MAAA,EAAQ,SAAA;AAAA,EACR,mBAAA,EAAqB,SAAA;AAAA,EACrB,aAAA,EAAe,SAAA;AAAA,EACf,wBAAA,EAA0B,SAAA;AAAA,EAC1B,WAAA,EAAa,SAAA;AAAA,EACb,wBAAA,EAA0B,SAAA;AAAA,EAC1B,kBAAA,EAAoB,SAAA;AAAA,EACpB,6BAAA,EAA+B,SAAA;AAAA,EAC/B,IAAA,EAAM,SAAA;AAAA,EACN,iBAAA,EAAmB,SAAA;AAAA,EACnB,WAAA,EAAa,SAAA;AAAA,EACb,sBAAA,EAAwB,SAAA;AAAA,EACxB,OAAA,EAAS,SAAA;AAAA,EACT,oBAAA,EAAsB,SAAA;AAAA,EACtB,cAAA,EAAgB,SAAA;AAAA,EAChB,yBAAA,EAA2B,SAAA;AAAA,EAC3B,OAAA,EAAS,SAAA;AAAA,EACT,oBAAA,EAAsB,SAAA;AAAA,EACtB,cAAA,EAAgB,SAAA;AAAA,EAChB,yBAAA,EAA2B;AAC7B,CAAA;AAkBA,IAAM,YAAA,GAAyB;AAAA,EAC7B,GAAG,iBAAA;AAAA,EACH,UAAA,EAAY,SAAA;AAAA,EACZ,IAAA,EAAM,SAAA;AAAA,EACN,OAAA,EAAS,SAAA;AAAA,EACT,oBAAA,EAAsB,SAAA;AAAA,EACtB,KAAA,EAAO,SAAA;AAAA,EACP,UAAA,EAAY,SAAA;AAAA,EACZ,iBAAA,EAAmB,SAAA;AAAA;AAAA,EACnB,kBAAA,EAAoB,SAAA;AAAA,EACpB,mBAAA,EAAqB,SAAA;AAAA,EACrB,MAAA,EAAQ,SAAA;AAAA,EACR,eAAA,EAAiB,SAAA;AAAA,EACjB,KAAA,EAAO,SAAA;AAAA,EACP,IAAA,EAAM,SAAA;AAAA,EACN,OAAA,EAAS,SAAA;AAAA,EACT,oBAAA,EAAsB,SAAA;AAAA,EACtB,cAAA,EAAgB,SAAA;AAAA,EAChB,yBAAA,EAA2B,SAAA;AAAA,EAC3B,MAAA,EAAQ,SAAA;AAAA,EACR,mBAAA,EAAqB,SAAA;AAAA,EACrB,aAAA,EAAe,SAAA;AAAA,EACf,wBAAA,EAA0B;AAC5B,CAAA;AAEA,IAAM,WAAA,GAAwB;AAAA,EAC5B,GAAG,gBAAA;AAAA,EACH,UAAA,EAAY,SAAA;AAAA,EACZ,IAAA,EAAM,SAAA;AAAA,EACN,OAAA,EAAS,SAAA;AAAA,EACT,oBAAA,EAAsB,SAAA;AAAA,EACtB,KAAA,EAAO,SAAA;AAAA,EACP,UAAA,EAAY,SAAA;AAAA,EACZ,iBAAA,EAAmB,SAAA;AAAA;AAAA,EACnB,kBAAA,EAAoB,SAAA;AAAA,EACpB,mBAAA,EAAqB,SAAA;AAAA,EACrB,MAAA,EAAQ,SAAA;AAAA,EACR,eAAA,EAAiB,SAAA;AAAA,EACjB,KAAA,EAAO,SAAA;AAAA,EACP,IAAA,EAAM,SAAA;AAAA,EACN,OAAA,EAAS,SAAA;AAAA,EACT,cAAA,EAAgB,SAAA;AAAA,EAChB,yBAAA,EAA2B,SAAA;AAAA,EAC3B,MAAA,EAAQ,SAAA;AAAA,EACR,aAAA,EAAe,SAAA;AAAA,EACf,wBAAA,EAA0B;AAC5B,CAAA;AAGA,IAAM,OAAA,GAAiB;AAAA,EACrB,EAAA,EAAI,UAAA;AAAA,EACJ,IAAA,EAAM,UAAA;AAAA,EACN,WAAA,EACE,yHAAA;AAAA,EACF,MAAM,CAAC,OAAA,EAAS,QAAA,EAAU,MAAA,EAAQ,aAAa,SAAS,CAAA;AAAA,EACxD,KAAA,EAAO,YAAA;AAAA,EACP,IAAA,EAAM,WAAA;AAAA,EACN,QAAQ,WAAA,CAAY,SAAA;AAAA;AAAA;AAAA,EAGpB,MAAM,aAAA,CAAc,EAAE,OAAO,YAAA,EAAc,IAAA,EAAM,aAAa;AAChE,CAAA;AAGO,IAAM,gBAAA,GAA4B,CAAC,OAAO,CAAA;;;ACjKjD,IAAM,WAAA,GAA2B;AAAA,EAC/B;AAAA,IACE,EAAA,EAAI,kBAAA;AAAA,IACJ,IAAA,EAAM,kBAAA;AAAA,IACN,WAAA,EAAa,8EAAA;AAAA,IACb,MAAM,CAAC,QAAA,EAAU,YAAA,EAAc,QAAA,EAAU,QAAQ,MAAM,CAAA;AAAA,IACvD,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,mBAAA;AAAA,IACJ,IAAA,EAAM,sBAAA;AAAA,IACN,WAAA,EAAa,oEAAA;AAAA,IACb,MAAM,CAAC,QAAA,EAAU,YAAA,EAAc,QAAA,EAAU,QAAQ,OAAO,CAAA;AAAA,IACxD,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,sBAAA;AAAA,IACJ,IAAA,EAAM,sBAAA;AAAA,IACN,WAAA,EAAa,kFAAA;AAAA,IACb,MAAM,CAAC,QAAA,EAAU,YAAA,EAAc,QAAA,EAAU,QAAQ,MAAM,CAAA;AAAA,IACvD,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,SAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,kBAAA;AAAA,IACJ,IAAA,EAAM,kBAAA;AAAA,IACN,WAAA,EAAa,yEAAA;AAAA,IACb,MAAM,CAAC,QAAA,EAAU,YAAA,EAAc,QAAA,EAAU,QAAQ,MAAM,CAAA;AAAA,IACvD,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,aAAA;AAAA,IACJ,IAAA,EAAM,aAAA;AAAA,IACN,WAAA,EAAa,4EAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,aAAA,EAAe,QAAQ,MAAM,CAAA;AAAA,IAC9C,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,mBAAA;AAAA,IACJ,IAAA,EAAM,mBAAA;AAAA,IACN,WAAA,EAAa,oFAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,aAAA,EAAe,QAAQ,OAAO,CAAA;AAAA,IAC/C,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,SAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,mBAAA;AAAA,IACJ,IAAA,EAAM,mBAAA;AAAA,IACN,WAAA,EAAa,kEAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,aAAA,EAAe,QAAQ,OAAO,CAAA;AAAA,IAC/C,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,WAAA;AAAA,IACJ,IAAA,EAAM,cAAA;AAAA,IACN,WAAA,EAAa,wEAAA;AAAA,IACb,MAAM,CAAC,QAAA,EAAU,WAAA,EAAa,OAAA,EAAS,QAAQ,MAAM,CAAA;AAAA,IACrD,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,SAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,gBAAA;AAAA,IACJ,IAAA,EAAM,mBAAA;AAAA,IACN,WAAA,EAAa,4EAAA;AAAA,IACb,MAAM,CAAC,QAAA,EAAU,WAAA,EAAa,OAAA,EAAS,QAAQ,MAAM,CAAA;AAAA,IACrD,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,gBAAA;AAAA,IACJ,IAAA,EAAM,mBAAA;AAAA,IACN,WAAA,EAAa,kEAAA;AAAA,IACb,MAAM,CAAC,QAAA,EAAU,WAAA,EAAa,MAAA,EAAQ,QAAQ,OAAO,CAAA;AAAA,IACrD,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,UAAA;AAAA,IACJ,IAAA,EAAM,UAAA;AAAA,IACN,WAAA,EAAa,yEAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,UAAA,EAAY,QAAQ,MAAM,CAAA;AAAA,IAC3C,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,WAAA;AAAA,IACJ,IAAA,EAAM,WAAA;AAAA,IACN,WAAA,EAAa,sEAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,WAAA,EAAa,WAAW,OAAO,CAAA;AAAA,IAChD,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,SAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,UAAA;AAAA,IACJ,IAAA,EAAM,UAAA;AAAA,IACN,WAAA,EAAa,2EAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,KAAA,EAAO,QAAQ,SAAS,CAAA;AAAA,IACzC,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,YAAA;AAAA,IACJ,IAAA,EAAM,YAAA;AAAA,IACN,WAAA,EAAa,qEAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,KAAA,EAAO,QAAQ,OAAO,CAAA;AAAA,IACvC,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,SAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,WAAA;AAAA,IACJ,IAAA,EAAM,WAAA;AAAA,IACN,WAAA,EAAa,iEAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,KAAA,EAAO,QAAQ,OAAO,CAAA;AAAA,IACvC,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,YAAA;AAAA,IACJ,IAAA,EAAM,YAAA;AAAA,IACN,WAAA,EAAa,iFAAA;AAAA,IACb,MAAM,CAAC,QAAA,EAAU,YAAA,EAAc,QAAA,EAAU,QAAQ,OAAO,CAAA;AAAA,IACxD,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,kBAAA;AAAA,IACJ,IAAA,EAAM,kBAAA;AAAA,IACN,WAAA,EAAa,6DAAA;AAAA,IACb,MAAM,CAAC,QAAA,EAAU,YAAA,EAAc,QAAA,EAAU,QAAQ,OAAO,CAAA;AAAA,IACxD,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,UAAA;AAAA,IACJ,IAAA,EAAM,UAAA;AAAA,IACN,WAAA,EAAa,qFAAA;AAAA,IACb,MAAM,CAAC,QAAA,EAAU,UAAA,EAAY,MAAA,EAAQ,SAAS,MAAM,CAAA;AAAA,IACpD,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,SAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,gBAAA;AAAA,IACJ,IAAA,EAAM,gBAAA;AAAA,IACN,WAAA,EAAa,iEAAA;AAAA,IACb,MAAM,CAAC,QAAA,EAAU,UAAA,EAAY,MAAA,EAAQ,SAAS,OAAO,CAAA;AAAA,IACrD,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,WAAA;AAAA,IACJ,IAAA,EAAM,WAAA;AAAA,IACN,WAAA,EAAa,qFAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,WAAA,EAAa,QAAQ,SAAS,CAAA;AAAA,IAC/C,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,SAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,WAAA;AAAA,IACJ,IAAA,EAAM,WAAA;AAAA,IACN,WAAA,EAAa,8DAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,WAAA,EAAa,QAAQ,OAAO,CAAA;AAAA,IAC7C,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,WAAA;AAAA,IACJ,IAAA,EAAM,WAAA;AAAA,IACN,WAAA,EAAa,kFAAA;AAAA,IACb,MAAM,CAAC,QAAA,EAAU,WAAA,EAAa,OAAA,EAAS,WAAW,MAAM,CAAA;AAAA,IACxD,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,SAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,QAAA;AAAA,IACJ,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,mFAAA;AAAA,IACb,MAAM,CAAC,OAAA,EAAS,WAAA,EAAa,SAAA,EAAW,QAAQ,MAAM,CAAA;AAAA,IACtD,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,SAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,UAAA;AAAA,IACJ,IAAA,EAAM,UAAA;AAAA,IACN,WAAA,EAAa,uFAAA;AAAA,IACb,IAAA,EAAM,CAAC,OAAA,EAAS,UAAA,EAAY,WAAW,SAAS,CAAA;AAAA,IAChD,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,SAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,gBAAA;AAAA,IACJ,IAAA,EAAM,gBAAA;AAAA,IACN,WAAA,EAAa,+EAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,UAAA,EAAY,QAAQ,MAAM,CAAA;AAAA,IAC3C,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,WAAA;AAAA,IACJ,IAAA,EAAM,WAAA;AAAA,IACN,WAAA,EAAa,0EAAA;AAAA,IACb,MAAM,CAAC,QAAA,EAAU,UAAA,EAAY,MAAA,EAAQ,SAAS,MAAM,CAAA;AAAA,IACpD,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,cAAA;AAAA,IACJ,IAAA,EAAM,cAAA;AAAA,IACN,WAAA,EAAa,uEAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,SAAA,EAAW,QAAQ,MAAM,CAAA;AAAA,IAC1C,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,4FAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,SAAA,EAAW,QAAQ,SAAS,CAAA;AAAA,IAC7C,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,SAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,aAAA;AAAA,IACJ,IAAA,EAAM,aAAA;AAAA,IACN,WAAA,EAAa,2EAAA;AAAA,IACb,IAAA,EAAM,CAAC,OAAA,EAAS,QAAA,EAAU,QAAQ,cAAc,CAAA;AAAA,IAChD,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,cAAA;AAAA,IACJ,IAAA,EAAM,cAAA;AAAA,IACN,WAAA,EAAa,6EAAA;AAAA,IACb,MAAM,CAAC,OAAA,EAAS,QAAA,EAAU,SAAA,EAAW,gBAAgB,OAAO,CAAA;AAAA,IAC5D,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,SAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,eAAA;AAAA,IACJ,IAAA,EAAM,eAAA;AAAA,IACN,WAAA,EAAa,8EAAA;AAAA,IACb,IAAA,EAAM,CAAC,OAAA,EAAS,QAAA,EAAU,QAAQ,OAAO,CAAA;AAAA,IACzC,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,uFAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,QAAA,EAAU,QAAQ,SAAS,CAAA;AAAA,IAC5C,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,OAAA;AAAA,IACJ,IAAA,EAAM,OAAA;AAAA,IACN,WAAA,EAAa,4FAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,OAAA,EAAS,WAAW,SAAS,CAAA;AAAA,IAC9C,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,SAAA;AAAA,IACb,UAAA,EAAY,SAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,aAAA;AAAA,IACJ,IAAA,EAAM,aAAA;AAAA,IACN,WAAA,EAAa,oFAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,SAAA,EAAW,QAAQ,SAAS,CAAA;AAAA,IAC7C,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,gBAAA;AAAA,IACJ,IAAA,EAAM,gBAAA;AAAA,IACN,WAAA,EAAa,iFAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,WAAA,EAAa,QAAQ,OAAO,CAAA;AAAA,IAC7C,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,eAAA;AAAA,IACJ,IAAA,EAAM,eAAA;AAAA,IACN,WAAA,EAAa,4DAAA;AAAA,IACb,MAAM,CAAC,QAAA,EAAU,SAAA,EAAW,MAAA,EAAQ,SAAS,OAAO,CAAA;AAAA,IACpD,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,kBAAA;AAAA,IACJ,IAAA,EAAM,kBAAA;AAAA,IACN,WAAA,EAAa,8EAAA;AAAA,IACb,MAAM,CAAC,QAAA,EAAU,SAAA,EAAW,MAAA,EAAQ,SAAS,OAAO,CAAA;AAAA,IACpD,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,SAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,YAAA;AAAA,IACJ,IAAA,EAAM,YAAA;AAAA,IACN,WAAA,EAAa,8EAAA;AAAA,IACb,MAAM,CAAC,QAAA,EAAU,MAAA,EAAQ,MAAA,EAAQ,SAAS,OAAO,CAAA;AAAA,IACjD,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,QAAA;AAAA,IACJ,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,4FAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,MAAA,EAAQ,QAAQ,QAAQ,CAAA;AAAA,IACzC,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,SAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,aAAA;AAAA,IACJ,IAAA,EAAM,aAAA;AAAA,IACN,WAAA,EAAa,qFAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,SAAA,EAAW,WAAW,MAAM,CAAA;AAAA,IAC7C,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,kBAAA;AAAA,IACJ,IAAA,EAAM,kBAAA;AAAA,IACN,WAAA,EAAa,mFAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,QAAA,EAAU,WAAW,MAAM,CAAA;AAAA,IAC5C,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,kBAAA;AAAA,IACJ,IAAA,EAAM,kBAAA;AAAA,IACN,WAAA,EAAa,8EAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,MAAA,EAAQ,QAAQ,OAAO,CAAA;AAAA,IACxC,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,WAAA;AAAA,IACJ,IAAA,EAAM,WAAA;AAAA,IACN,WAAA,EAAa,+EAAA;AAAA,IACb,IAAA,EAAM,CAAC,OAAA,EAAS,MAAA,EAAQ,WAAW,MAAM,CAAA;AAAA,IACzC,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,SAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,WAAA;AAAA,IACJ,IAAA,EAAM,WAAA;AAAA,IACN,WAAA,EAAa,yEAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,MAAA,EAAQ,SAAS,SAAS,CAAA;AAAA,IAC3C,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,gBAAA;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,4EAAA;AAAA,IACb,IAAA,EAAM,CAAC,OAAA,EAAS,MAAA,EAAQ,SAAS,cAAc,CAAA;AAAA,IAC/C,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,SAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,QAAA;AAAA,IACJ,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,oFAAA;AAAA,IACb,IAAA,EAAM,CAAC,OAAA,EAAS,SAAA,EAAW,WAAW,WAAW,CAAA;AAAA,IACjD,UAAA,EAAY,CAAA;AAAA,IACZ,WAAA,EAAa,SAAA;AAAA,IACb,UAAA,EAAY,MAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,QAAA;AAAA,IACJ,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,6FAAA;AAAA,IACb,IAAA,EAAM,CAAC,OAAA,EAAS,MAAA,EAAQ,gBAAgB,SAAS,CAAA;AAAA,IACjD,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,qFAAA;AAAA,IACb,IAAA,EAAM,CAAC,OAAA,EAAS,QAAA,EAAU,WAAW,SAAS,CAAA;AAAA,IAC9C,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,SAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,WAAA;AAAA,IACJ,IAAA,EAAM,WAAA;AAAA,IACN,WAAA,EAAa,iGAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,MAAA,EAAQ,WAAW,MAAM,CAAA;AAAA,IAC1C,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,WAAA;AAAA,IACJ,IAAA,EAAM,WAAA;AAAA,IACN,WAAA,EAAa,+FAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,SAAA,EAAW,QAAQ,MAAM,CAAA;AAAA,IAC1C,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,eAAA;AAAA,IACJ,IAAA,EAAM,eAAA;AAAA,IACN,WAAA,EAAa,sEAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,MAAA,EAAQ,WAAW,OAAO,CAAA;AAAA,IAC3C,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,SAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,QAAA;AAAA,IACJ,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,6EAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,MAAA,EAAQ,SAAS,OAAO,CAAA;AAAA,IACzC,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,UAAA;AAAA,IACJ,IAAA,EAAM,UAAA;AAAA,IACN,WAAA,EAAa,iFAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,SAAA,EAAW,QAAQ,SAAS,CAAA;AAAA,IAC7C,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,SAAA;AAAA,IACb,UAAA,EAAY,MAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,YAAA;AAAA,IACJ,IAAA,EAAM,YAAA;AAAA,IACN,WAAA,EAAa,gFAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,MAAA,EAAQ,SAAS,MAAM,CAAA;AAAA,IACxC,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,4EAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,MAAA,EAAQ,SAAS,OAAO,CAAA;AAAA,IACzC,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,uFAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,MAAA,EAAQ,SAAS,cAAc,CAAA;AAAA,IAChD,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,WAAA;AAAA,IACJ,IAAA,EAAM,WAAA;AAAA,IACN,WAAA,EAAa,4FAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,SAAA,EAAW,WAAW,MAAM,CAAA;AAAA,IAC7C,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,SAAA;AAAA,IACb,UAAA,EAAY,SAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,oFAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,MAAA,EAAQ,SAAS,MAAM,CAAA;AAAA,IACxC,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,YAAA;AAAA,IACJ,IAAA,EAAM,YAAA;AAAA,IACN,WAAA,EAAa,2FAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,MAAA,EAAQ,SAAS,cAAc,CAAA;AAAA,IAChD,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,gBAAA;AAAA,IACJ,IAAA,EAAM,gBAAA;AAAA,IACN,WAAA,EAAa,iFAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,MAAA,EAAQ,QAAQ,SAAS,CAAA;AAAA,IAC1C,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,SAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,QAAA;AAAA,IACJ,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,sFAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,SAAA,EAAW,MAAM,CAAA;AAAA,IAClC,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,SAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,WAAA;AAAA,IACJ,IAAA,EAAM,WAAA;AAAA,IACN,WAAA,EAAa,oFAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,MAAA,EAAQ,QAAQ,MAAM,CAAA;AAAA,IACvC,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,yFAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,SAAA,EAAW,MAAM,CAAA;AAAA,IAClC,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,aAAA;AAAA,IACJ,IAAA,EAAM,aAAA;AAAA,IACN,WAAA,EAAa,iFAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,MAAA,EAAQ,SAAS,MAAM,CAAA;AAAA,IACxC,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,QAAA;AAAA,IACJ,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,uFAAA;AAAA,IACb,IAAA,EAAM,CAAC,UAAA,EAAY,SAAA,EAAW,QAAQ,MAAM,CAAA;AAAA,IAC5C,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,SAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,gBAAA;AAAA,IACJ,IAAA,EAAM,UAAA;AAAA,IACN,WAAA,EAAa,4EAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,SAAA,EAAW,QAAQ,OAAO,CAAA;AAAA,IAC3C,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,SAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,aAAA;AAAA,IACJ,IAAA,EAAM,YAAA;AAAA,IACN,WAAA,EAAa,sFAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,SAAA,EAAW,SAAS,OAAO,CAAA;AAAA,IAC5C,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,SAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,YAAA;AAAA,IACJ,IAAA,EAAM,aAAA;AAAA,IACN,WAAA,EAAa,4EAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,MAAA,EAAQ,QAAQ,OAAO,CAAA;AAAA,IACxC,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA;AAEb,CAAA;AAsBA,IAAM,SAAA,GAAuB;AAAA,EAC3B,EAAE,GAAA,EAAK,CAAA,EAAG,MAAA,EAAQ,SAAA,EAAW,MAAM,OAAA,EAAQ;AAAA,EAC3C,EAAE,GAAA,EAAK,EAAA,EAAI,MAAA,EAAQ,OAAA,EAAS,MAAM,OAAA,EAAQ;AAAA,EAC1C,EAAE,GAAA,EAAK,EAAA,EAAI,MAAA,EAAQ,UAAA,EAAY,MAAM,MAAA,EAAO;AAAA,EAC5C,EAAE,GAAA,EAAK,EAAA,EAAI,MAAA,EAAQ,QAAA,EAAU,MAAM,MAAA,EAAO;AAAA,EAC1C,EAAE,GAAA,EAAK,EAAA,EAAI,MAAA,EAAQ,YAAA,EAAc,MAAM,QAAA,EAAS;AAAA,EAChD,EAAE,GAAA,EAAK,GAAA,EAAK,MAAA,EAAQ,QAAA,EAAU,MAAM,QAAA,EAAS;AAAA,EAC7C,EAAE,GAAA,EAAK,GAAA,EAAK,MAAA,EAAQ,MAAA,EAAQ,MAAM,OAAA,EAAQ;AAAA,EAC1C,EAAE,GAAA,EAAK,GAAA,EAAK,MAAA,EAAQ,QAAA,EAAU,MAAM,MAAA,EAAO;AAAA,EAC3C,EAAE,GAAA,EAAK,GAAA,EAAK,MAAA,EAAQ,QAAA,EAAU,MAAM,MAAA,EAAO;AAAA,EAC3C,EAAE,GAAA,EAAK,GAAA,EAAK,MAAA,EAAQ,UAAA,EAAY,MAAM,OAAA,EAAQ;AAAA,EAC9C,EAAE,GAAA,EAAK,GAAA,EAAK,MAAA,EAAQ,UAAA,EAAY,MAAM,MAAA,EAAO;AAAA,EAC7C,EAAE,GAAA,EAAK,GAAA,EAAK,MAAA,EAAQ,MAAA,EAAQ,MAAM,UAAA,EAAW;AAAA,EAC7C,EAAE,GAAA,EAAK,GAAA,EAAK,MAAA,EAAQ,QAAA,EAAU,MAAM,OAAA,EAAQ;AAAA,EAC5C,EAAE,GAAA,EAAK,GAAA,EAAK,MAAA,EAAQ,SAAA,EAAW,MAAM,OAAA,EAAQ;AAAA,EAC7C,EAAE,GAAA,EAAK,GAAA,EAAK,MAAA,EAAQ,SAAA,EAAW,MAAM,OAAA;AACvC,CAAA;AAGA,IAAM,eAAA,GAAmF;AAAA,EACvF,EAAE,IAAA,EAAM,eAAA,EAAiB,IAAA,EAAM,GAAA,EAAK,MAAM,eAAA,EAAgB;AAAA,EAC1D,EAAE,IAAA,EAAM,WAAA,EAAa,IAAA,EAAM,GAAA,EAAK,MAAM,WAAA,EAAY;AAAA,EAClD,EAAE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,GAAA,EAAK,MAAM,SAAA;AACtC,CAAA;AAGA,IAAM,aAAA,GAAoE;AAAA,EACxE,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,GAAA,EAAI;AAAA,EAC1B,EAAE,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,GAAA;AACxB,CAAA;AAMA,SAAS,kBAAA,GAAkC;AACzC,EAAA,MAAM,QAAqB,EAAC;AAC5B,EAAA,KAAA,MAAW,QAAQ,SAAA,EAAW;AAC5B,IAAA,IAAI,CAAA,GAAI,CAAA;AACR,IAAA,KAAA,MAAW,UAAU,eAAA,EAAiB;AACpC,MAAA,KAAA,MAAW,QAAQ,aAAA,EAAe;AAEhC,QAAA,MAAM,OAAA,GAAgC,CAAA,GAAI,CAAA,KAAM,CAAA,GAAI,OAAA,GAAU,MAAA;AAC9D,QAAA,MAAM,QAAA,GAAW,IAAA,CAAK,IAAA,KAAS,MAAA,GAAS,MAAA,GAAS,MAAA;AACjD,QAAA,KAAA,CAAM,IAAA,CAAK;AAAA,UACT,EAAA,EAAI,YAAY,IAAA,CAAK,GAAG,IAAI,MAAA,CAAO,IAAI,CAAA,EAAG,IAAA,CAAK,IAAI,CAAA,CAAA;AAAA,UACnD,MAAM,CAAA,EAAG,IAAA,CAAK,MAAM,CAAA,CAAA,EAAI,KAAK,IAAI,CAAA,CAAA;AAAA,UACjC,WAAA,EAAa,CAAA,EAAG,IAAA,CAAK,MAAM,CAAA,cAAA,EAAiB,IAAA,CAAK,GAAG,CAAA,YAAA,EAAO,MAAA,CAAO,IAAI,CAAA,WAAA,EAAc,QAAQ,cAAc,OAAO,CAAA,WAAA,CAAA;AAAA,UACjH,IAAA,EAAM,CAAC,UAAA,EAAY,OAAA,EAAS,IAAA,CAAK,OAAO,WAAA,EAAY,EAAG,QAAA,EAAU,MAAA,CAAO,IAAI,CAAA;AAAA,UAC5E,YAAY,IAAA,CAAK,GAAA;AAAA,UACjB,aAAa,IAAA,CAAK,IAAA;AAAA,UAClB,YAAY,MAAA,CAAO,IAAA;AAAA,UACnB;AAAA,SACD,CAAA;AACD,QAAA,CAAA,EAAA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,EAAA,OAAO,KAAA;AACT;AAEA,IAAM,iBAA8B,kBAAA,EAAmB;AAShD,IAAM,UAAA,GAA0B,CAAC,GAAG,WAAA,EAAa,GAAG,cAAc,CAAA;;;ACpxBlE,IAAM,WAAA,GAA2B;AAAA,EACtC;AAAA,IACE,EAAA,EAAI,KAAA;AAAA,IACJ,IAAA,EAAM,KAAA;AAAA,IACN,WAAA,EAAa,4EAAA;AAAA,IACb,IAAA,EAAM,CAAC,OAAA,EAAS,SAAS,CAAA;AAAA,IACzB,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,UAAA;AAAA,IACJ,IAAA,EAAM,UAAA;AAAA,IACN,WAAA,EAAa,4DAAA;AAAA,IACb,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,SAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,OAAA;AAAA,IACJ,IAAA,EAAM,OAAA;AAAA,IACN,WAAA,EAAa,2EAAA;AAAA,IACb,IAAA,EAAM,CAAC,SAAA,EAAW,cAAc,CAAA;AAAA,IAChC,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,OAAA;AAAA,IACJ,IAAA,EAAM,OAAA;AAAA,IACN,WAAA,EAAa,oDAAA;AAAA,IACb,IAAA,EAAM,CAAC,MAAA,EAAQ,OAAO,CAAA;AAAA,IACtB,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,QAAA;AAAA,IACJ,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,yDAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,MAAM,CAAA;AAAA,IACvB,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,6CAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,MAAM,CAAA;AAAA,IACvB,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,QAAA;AAAA,IACJ,IAAA,EAAM,QAAA;AAAA,IACN,WAAA,EAAa,uEAAA;AAAA,IACb,IAAA,EAAM,CAAC,MAAA,EAAQ,SAAS,CAAA;AAAA,IACxB,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,OAAA;AAAA,IACJ,IAAA,EAAM,OAAA;AAAA,IACN,WAAA,EAAa,sDAAA;AAAA,IACb,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,SAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,MAAA;AAAA,IACJ,IAAA,EAAM,MAAA;AAAA,IACN,WAAA,EAAa,qDAAA;AAAA,IACb,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,gEAAA;AAAA,IACb,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,SAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,MAAA;AAAA,IACJ,IAAA,EAAM,MAAA;AAAA,IACN,WAAA,EAAa,gDAAA;AAAA,IACb,IAAA,EAAM,CAAC,SAAA,EAAW,MAAM,CAAA;AAAA,IACxB,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,OAAA;AAAA,IACJ,IAAA,EAAM,OAAA;AAAA,IACN,WAAA,EAAa,0DAAA;AAAA,IACb,IAAA,EAAM,CAAC,MAAA,EAAQ,SAAS,CAAA;AAAA,IACxB,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,UAAA;AAAA,IACJ,IAAA,EAAM,UAAA;AAAA,IACN,WAAA,EAAa,gDAAA;AAAA,IACb,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,IACrB,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,SAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,MAAA;AAAA,IACJ,IAAA,EAAM,MAAA;AAAA,IACN,WAAA,EAAa,2DAAA;AAAA,IACb,IAAA,EAAM,CAAC,MAAA,EAAQ,OAAO,CAAA;AAAA,IACtB,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,SAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,MAAA;AAAA,IACJ,IAAA,EAAM,MAAA;AAAA,IACN,WAAA,EAAa,kDAAA;AAAA,IACb,IAAA,EAAM,CAAC,MAAA,EAAQ,SAAS,CAAA;AAAA,IACxB,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,MAAA;AAAA,IACJ,IAAA,EAAM,MAAA;AAAA,IACN,WAAA,EAAa,8CAAA;AAAA,IACb,IAAA,EAAM,CAAC,QAAA,EAAU,MAAM,CAAA;AAAA,IACvB,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,SAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,MAAA;AAAA,IACJ,IAAA,EAAM,MAAA;AAAA,IACN,WAAA,EAAa,mEAAA;AAAA,IACb,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAA,EAAQ,OAAO,CAAA;AAAA,IAC9B,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,WAAA;AAAA,IACJ,IAAA,EAAM,WAAA;AAAA,IACN,WAAA,EAAa,yEAAA;AAAA,IACb,IAAA,EAAM,CAAC,MAAA,EAAQ,OAAO,CAAA;AAAA,IACtB,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,mFAAA;AAAA,IACb,IAAA,EAAM,CAAC,MAAA,EAAQ,SAAS,CAAA;AAAA,IACxB,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,SAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,yEAAA;AAAA,IACb,IAAA,EAAM,CAAC,MAAA,EAAQ,OAAA,EAAS,OAAO,CAAA;AAAA,IAC/B,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,WAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,WAAA,EAAa,kFAAA;AAAA,IACb,IAAA,EAAM,CAAC,SAAA,EAAW,SAAS,CAAA;AAAA,IAC3B,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,SAAA;AAAA,IACb,UAAA,EAAY,eAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,MAAA;AAAA,IACJ,IAAA,EAAM,MAAA;AAAA,IACN,WAAA,EAAa,oFAAA;AAAA,IACb,IAAA,EAAM,CAAC,SAAA,EAAW,SAAA,EAAW,WAAW,CAAA;AAAA,IACxC,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,SAAA;AAAA,IACb,UAAA,EAAY,MAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,UAAA;AAAA,IACJ,IAAA,EAAM,UAAA;AAAA,IACN,WAAA,EAAa,sEAAA;AAAA,IACb,IAAA,EAAM,CAAC,SAAA,EAAW,SAAS,CAAA;AAAA,IAC3B,UAAA,EAAY,GAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,MAAA;AAAA,IACZ,OAAA,EAAS;AAAA,GACX;AAAA,EACA;AAAA,IACE,EAAA,EAAI,MAAA;AAAA,IACJ,IAAA,EAAM,MAAA;AAAA,IACN,WAAA,EAAa,uEAAA;AAAA,IACb,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAA,EAAQ,SAAS,CAAA;AAAA,IAChC,UAAA,EAAY,EAAA;AAAA,IACZ,WAAA,EAAa,MAAA;AAAA,IACb,UAAA,EAAY,MAAA;AAAA,IACZ,OAAA,EAAS;AAAA;AAEb;AAQA,IAAM,eAAA,GAA+B,CAAC,GAAG,WAAA,EAAa,GAAG,UAAU,CAAA;AAMnE,IAAM,gBAAA,GAA4B,eAAA,CAAgB,GAAA,CAAI,aAAa,CAAA;AAM5D,IAAM,MAAA,GAAkB,CAAC,GAAG,gBAAA,EAAkB,GAAG,gBAAgB;AAGjE,SAAS,SAAS,EAAA,EAA+B;AACtD,EAAA,OAAO,OAAO,IAAA,CAAK,CAAC,CAAA,KAAM,CAAA,CAAE,OAAO,EAAE,CAAA;AACvC;AAGO,SAAS,eAAA,GAA2B;AACzC,EAAA,OAAO,OAAO,MAAA,CAAO,CAAC,MAAM,CAAA,CAAE,MAAA,KAAW,YAAY,SAAS,CAAA;AAChE;AAGO,SAAS,eAAA,GAA2B;AACzC,EAAA,OAAO,OAAO,MAAA,CAAO,CAAC,MAAM,CAAA,CAAE,MAAA,KAAW,YAAY,SAAS,CAAA;AAChE;AAGO,IAAM,YAAsB,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,KAAM,EAAE,EAAE","file":"chunk-EI7EKA2V.js","sourcesContent":["/* ---------------------------------------------------------------------------\n * @wow-two-beta/ui — themes (foundation module).\n *\n * A theme ENGINE: derive proven light/dark token sets from an OKLCH seed, apply\n * a curated theme by name, validate any theme for WCAG AA, and emit the scoped\n * CSS / JSON manifest an app (or Claude) uses to \"use theme X\".\n *\n * Import: `import { THEMES, getTheme, generateTheme } from '@wow-two-beta/ui/themes'`\n * Apply : add `theme-{id}` to a root element; toggle `.dark` for dark mode.\n * The matching stylesheet ships at `@wow-two-beta/ui/themes.css`.\n *\n * Foundation layer — no upward imports (ESLint enforces).\n * ------------------------------------------------------------------------- */\n\n// Color engine\nexport { Oklch } from './Oklch';\nexport type { Oklch as OklchColor } from './Oklch';\nexport {\n normalizeHue,\n isInSrgbGamut,\n clampChromaToGamut,\n oklchToHex,\n oklchToCss,\n parseColor,\n relativeLuminance,\n contrastRatio,\n contrastRatioCss,\n} from './Oklch';\n\n// Token contract\nexport type {\n SemanticToken,\n TokenSet,\n RadiusScale,\n ToneFamilyName,\n ToneSlots,\n} from './Tokens';\nexport {\n SEMANTIC_TOKENS,\n SURFACE_TOKENS,\n TONE_FAMILIES,\n applyToneSlots,\n} from './Tokens';\n\n// Theme + seed shapes\nexport type {\n Theme,\n ThemeMeta,\n ThemeSeed,\n NeutralTemp,\n AccentMode,\n SurfaceStyle,\n} from './Theme';\n// ThemeStatus is a const-object enum + a type of the same name (value + type export).\nexport { ThemeStatus } from './Theme';\n\n// Generator\nexport { generateTheme } from './generate';\n\n// Validator\nexport { validateTheme, contrastPairs, AA_TEXT, AA_UI } from './validate';\n\n// CSS / manifest emitters\nexport {\n themeToCss,\n emitAllThemesCss,\n emitThemesManifest,\n type ThemeManifestEntry,\n} from './css';\n\n// Curated registry\nexport {\n THEMES,\n THEME_SEEDS,\n THEME_IDS,\n getTheme,\n validatedThemes,\n candidateThemes,\n} from './registry';\n","/* ---------------------------------------------------------------------------\n * OKLCH color engine — hand-rolled, zero-dependency.\n *\n * Everything the theme generator/validator needs to reason about color:\n * - OKLCH <-> linear sRGB <-> sRGB (gamma) <-> hex\n * - WCAG 2.1 relative luminance + contrast ratio\n * - small gamut helpers (in-gamut check, chroma clamp)\n *\n * Color space note: OKLCH is the cylindrical form of OKLab (Björn Ottosson,\n * 2020). L ∈ [0,1] (perceptual lightness), C ≥ 0 (chroma), H ∈ [0,360) (hue°).\n * We output CSS `oklch(L C H)` strings directly for tokens, and use the sRGB\n * conversion only for contrast math (WCAG is defined on sRGB luminance).\n * ------------------------------------------------------------------------- */\n\n/** Cylindrical OKLab color: L ∈ [0,1], C ≥ 0, H ∈ [0,360). */\nexport interface Oklch {\n l: number;\n c: number;\n h: number;\n}\n\n/** Linear-light sRGB (not gamma-encoded), each channel ∈ [0,1] (may exceed for out-of-gamut). */\ninterface LinearRgb {\n r: number;\n g: number;\n b: number;\n}\n\n/** Gamma-encoded sRGB, each channel ∈ [0,1]. */\ninterface Srgb {\n r: number;\n g: number;\n b: number;\n}\n\nconst clamp01 = (x: number): number => (x < 0 ? 0 : x > 1 ? 1 : x);\n\n/** Wrap a hue into [0,360). */\nexport function normalizeHue(h: number): number {\n const m = h % 360;\n return m < 0 ? m + 360 : m;\n}\n\n// ---------------------------------------------------------------------------\n// OKLab <-> linear sRGB (matrices from Ottosson's reference implementation)\n// ---------------------------------------------------------------------------\n\nfunction oklchToLinearRgb({ l, c, h }: Oklch): LinearRgb {\n const hr = (normalizeHue(h) * Math.PI) / 180;\n const a = Math.cos(hr) * c;\n const b = Math.sin(hr) * c;\n\n const l_ = l + 0.3963377774 * a + 0.2158037573 * b;\n const m_ = l - 0.1055613458 * a - 0.0638541728 * b;\n const s_ = l - 0.0894841775 * a - 1.291485548 * b;\n\n const l3 = l_ * l_ * l_;\n const m3 = m_ * m_ * m_;\n const s3 = s_ * s_ * s_;\n\n return {\n r: +4.0767416621 * l3 - 3.3077115913 * m3 + 0.2309699292 * s3,\n g: -1.2684380046 * l3 + 2.6097574011 * m3 - 0.3413193965 * s3,\n b: -0.0041960863 * l3 - 0.7034186147 * m3 + 1.707614701 * s3,\n };\n}\n\n// ---------------------------------------------------------------------------\n// linear sRGB <-> gamma sRGB (IEC 61966-2-1)\n// ---------------------------------------------------------------------------\n\nfunction linearToSrgbChannel(x: number): number {\n const v = clamp01(x);\n return v <= 0.0031308 ? 12.92 * v : 1.055 * Math.pow(v, 1 / 2.4) - 0.055;\n}\n\nfunction srgbToLinearChannel(x: number): number {\n return x <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction linearRgbToSrgb(rgb: LinearRgb): Srgb {\n return {\n r: linearToSrgbChannel(rgb.r),\n g: linearToSrgbChannel(rgb.g),\n b: linearToSrgbChannel(rgb.b),\n };\n}\n\n// ---------------------------------------------------------------------------\n// Gamut\n// ---------------------------------------------------------------------------\n\n/** True when the OKLCH color maps inside the sRGB gamut (no channel clipping). */\nexport function isInSrgbGamut(color: Oklch): boolean {\n const { r, g, b } = oklchToLinearRgb(color);\n const eps = 1e-4;\n return (\n r >= -eps && r <= 1 + eps && g >= -eps && g <= 1 + eps && b >= -eps && b <= 1 + eps\n );\n}\n\n/**\n * Reduce chroma (keeping L and H) until the color fits the sRGB gamut.\n * Binary search on chroma — cheap, deterministic, good enough for tokens.\n */\nexport function clampChromaToGamut(color: Oklch): Oklch {\n if (isInSrgbGamut(color)) return color;\n let lo = 0;\n let hi = color.c;\n for (let i = 0; i < 24; i++) {\n const mid = (lo + hi) / 2;\n if (isInSrgbGamut({ l: color.l, c: mid, h: color.h })) lo = mid;\n else hi = mid;\n }\n return { l: color.l, c: lo, h: color.h };\n}\n\n// ---------------------------------------------------------------------------\n// Hex\n// ---------------------------------------------------------------------------\n\nfunction to2Hex(v: number): string {\n return Math.round(clamp01(v) * 255)\n .toString(16)\n .padStart(2, '0');\n}\n\n/** Convert OKLCH → `#rrggbb`. Chroma is gamut-clamped first so output is always valid sRGB. */\nexport function oklchToHex(color: Oklch): string {\n const safe = clampChromaToGamut(color);\n const { r, g, b } = linearRgbToSrgb(oklchToLinearRgb(safe));\n return `#${to2Hex(r)}${to2Hex(g)}${to2Hex(b)}`;\n}\n\n/**\n * Format OKLCH as a CSS `oklch(L% C H)` string.\n * Rounded for compact, stable output (L→0.1%, C→4dp, H→0.1°).\n */\nexport function oklchToCss(color: Oklch): string {\n const safe = clampChromaToGamut(color);\n const l = (clamp01(safe.l) * 100).toFixed(1);\n const c = Math.max(0, safe.c).toFixed(4);\n const h = normalizeHue(safe.h).toFixed(1);\n return `oklch(${l}% ${c} ${h})`;\n}\n\n/** Parse `#rgb` / `#rrggbb` → gamma sRGB channels ∈ [0,1]. Returns null on malformed input. */\nfunction parseHex(hex: string): Srgb | null {\n let h = hex.trim().replace(/^#/, '');\n if (h.length === 3) {\n h = h.replace(/(.)/g, '$1$1');\n }\n if (h.length !== 6 || /[^0-9a-fA-F]/.test(h)) return null;\n return {\n r: parseInt(h.slice(0, 2), 16) / 255,\n g: parseInt(h.slice(2, 4), 16) / 255,\n b: parseInt(h.slice(4, 6), 16) / 255,\n };\n}\n\n// ---------------------------------------------------------------------------\n// WCAG 2.1 luminance + contrast\n// ---------------------------------------------------------------------------\n\nfunction relativeLuminanceFromSrgb({ r, g, b }: Srgb): number {\n const R = srgbToLinearChannel(r);\n const G = srgbToLinearChannel(g);\n const B = srgbToLinearChannel(b);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n}\n\n/** WCAG relative luminance for an OKLCH color (via its in-gamut sRGB mapping). */\nexport function relativeLuminance(color: Oklch): number {\n return relativeLuminanceFromSrgb(linearRgbToSrgb(oklchToLinearRgb(clampChromaToGamut(color))));\n}\n\nfunction contrastFromLuminances(l1: number, l2: number): number {\n const hi = Math.max(l1, l2);\n const lo = Math.min(l1, l2);\n return (hi + 0.05) / (lo + 0.05);\n}\n\n/** WCAG 2.1 contrast ratio (1–21) between two OKLCH colors. Symmetric. */\nexport function contrastRatio(a: Oklch, b: Oklch): number {\n return contrastFromLuminances(relativeLuminance(a), relativeLuminance(b));\n}\n\n/** WCAG 2.1 contrast ratio between two CSS color strings. Supports `oklch(...)` and hex. */\nexport function contrastRatioCss(a: string, b: string): number {\n const ca = parseColor(a);\n const cb = parseColor(b);\n if (!ca || !cb) return 1;\n return contrastRatio(ca, cb);\n}\n\n// ---------------------------------------------------------------------------\n// Parsing back from emitted token strings (for the validator)\n// ---------------------------------------------------------------------------\n\nconst OKLCH_RE = /^oklch\\(\\s*([\\d.]+)%?\\s+([\\d.]+)\\s+([\\d.]+)\\s*\\)$/i;\n\n/** Parse a token color string (`oklch(L% C H)` or hex) back into OKLCH. Returns null if unparseable. */\nexport function parseColor(value: string): Oklch | null {\n const v = value.trim();\n const m = OKLCH_RE.exec(v);\n if (m && m[1] && m[2] && m[3]) {\n const lRaw = parseFloat(m[1]);\n // L written as a percent (e.g. `62.5%`) or a 0–1 number.\n const l = v.includes('%') ? lRaw / 100 : lRaw;\n return { l, c: parseFloat(m[2]), h: parseFloat(m[3]) };\n }\n if (v.startsWith('#')) {\n const srgb = parseHex(v);\n if (!srgb) return null;\n return srgbToOklch(srgb);\n }\n return null;\n}\n\nfunction srgbToOklch(srgb: Srgb): Oklch {\n const r = srgbToLinearChannel(srgb.r);\n const g = srgbToLinearChannel(srgb.g);\n const b = srgbToLinearChannel(srgb.b);\n\n const l_ = Math.cbrt(0.4122214708 * r + 0.5363325363 * g + 0.0514459929 * b);\n const m_ = Math.cbrt(0.2119034982 * r + 0.6806995451 * g + 0.1073969566 * b);\n const s_ = Math.cbrt(0.0883024619 * r + 0.2817188376 * g + 0.6299787005 * b);\n\n const L = 0.2104542553 * l_ + 0.793617785 * m_ - 0.0040720468 * s_;\n const a = 1.9779984951 * l_ - 2.428592205 * m_ + 0.4505937099 * s_;\n const bb = 0.0259040371 * l_ + 0.7827717662 * m_ - 0.808675766 * s_;\n\n const c = Math.hypot(a, bb);\n const h = normalizeHue((Math.atan2(bb, a) * 180) / Math.PI);\n return { l: L, c, h };\n}\n\n/** Grouped namespace export (mirrors `ColorExtensions` style elsewhere in the lib). */\nexport const Oklch = {\n normalizeHue,\n isInSrgbGamut,\n clampChromaToGamut,\n oklchToHex,\n oklchToCss,\n parseColor,\n relativeLuminance,\n contrastRatio,\n contrastRatioCss,\n} as const;\n","/* ---------------------------------------------------------------------------\n * The semantic token contract.\n *\n * Mirrors EXACTLY the semantic `--color-*` tokens declared in `src/index.css`\n * (the `@theme` block + its `.dark { }` overrides). A theme supplies a value\n * for every key in both light and dark modes; the CSS emitter writes them back\n * as `--color-{key}` under `.theme-{id}` / `.dark.theme-{id}`.\n *\n * Keep this in lock-step with `index.css`: add a semantic token there → add the\n * matching key here (and the generator will need to produce it).\n * ------------------------------------------------------------------------- */\n\n/** The six tone families that each carry base / -foreground / -soft / -soft-foreground. */\nexport const TONE_FAMILIES = [\n 'primary',\n 'accent',\n 'destructive',\n 'info',\n 'success',\n 'warning',\n] as const;\n\nexport type ToneFamilyName = (typeof TONE_FAMILIES)[number];\n\n/** Surface + chrome tokens (everything that isn't one of the tone families). */\nexport const SURFACE_TOKENS = [\n 'background',\n 'foreground',\n 'card',\n 'card-foreground',\n 'popover',\n 'popover-foreground',\n 'muted',\n 'muted-foreground',\n 'subtle-foreground',\n 'inverse',\n 'inverse-foreground',\n 'border',\n 'border-strong',\n 'input',\n 'ring',\n] as const;\n\n/** The four slot suffixes every tone family expands into. */\ntype ToneSlotSuffix = '' | '-foreground' | '-soft' | '-soft-foreground';\n\n/** A single tone family expanded to its four token keys, e.g. `primary | primary-foreground | …`. */\ntype ToneFamilyTokens<F extends string> = F extends string\n ? `${F}${ToneSlotSuffix}`\n : never;\n\n/**\n * Every semantic token key (the part after `--color-`).\n *\n * = surface/chrome tokens ∪ (each tone family × {base,-foreground,-soft,-soft-foreground}).\n * 15 surface + 6×4 tone = 39 keys total.\n */\nexport type SemanticToken =\n | (typeof SURFACE_TOKENS)[number]\n | ToneFamilyTokens<ToneFamilyName>;\n\n/** A complete set of color values — one CSS color string per semantic token. */\nexport type TokenSet = Record<SemanticToken, string>;\n\n/** Optional radius scale a theme may carry (maps to `--radius-{md,lg,xl}`). */\nexport interface RadiusScale {\n md: string;\n lg: string;\n xl: string;\n}\n\n/** The four slots of one tone family. */\nexport interface ToneSlots {\n base: string;\n foreground: string;\n soft: string;\n softForeground: string;\n}\n\n/**\n * The full, ordered list of every semantic token key — derived from the same\n * constants the type is built from, so it can never drift from `SemanticToken`.\n * Used by the validator/emitter to iterate exhaustively.\n */\nexport const SEMANTIC_TOKENS: readonly SemanticToken[] = [\n ...SURFACE_TOKENS,\n ...TONE_FAMILIES.flatMap(\n (f) =>\n [f, `${f}-foreground`, `${f}-soft`, `${f}-soft-foreground`] as SemanticToken[],\n ),\n];\n\n/** Write a tone family's four slots into a partial token set under the family's keys. */\nexport function applyToneSlots(\n target: Partial<TokenSet>,\n family: ToneFamilyName,\n slots: ToneSlots,\n): void {\n target[family] = slots.base;\n target[`${family}-foreground`] = slots.foreground;\n target[`${family}-soft`] = slots.soft;\n target[`${family}-soft-foreground`] = slots.softForeground;\n}\n","/* ---------------------------------------------------------------------------\n * Theme + Seed shapes.\n *\n * A `Theme` is a fully-resolved, validated pair of light/dark token sets plus\n * metadata. A `ThemeSeed` is the small, human-authorable recipe the OKLCH\n * generator expands into a `Theme` (see `generateTheme`).\n * ------------------------------------------------------------------------- */\n\nimport type { TokenSet } from './Tokens';\n\n/**\n * Theme lifecycle status.\n *\n * - `validated` — hand-authored from real, visually-verified app tokens; the\n * colors are locked (never auto-nudged), proven in a shipping product.\n * - `candidate` — generated/curated and AA-proven by the engine, but not yet\n * validated against a real app surface.\n */\nexport const ThemeStatus = {\n Validated: 'validated',\n Candidate: 'candidate',\n} as const;\n\n/** A theme's lifecycle status value (`\"validated\"` | `\"candidate\"`). */\nexport type ThemeStatus = (typeof ThemeStatus)[keyof typeof ThemeStatus];\n\n/** Contrast / \"is this theme proven\" metadata, produced by the validator. */\nexport interface ThemeMeta {\n /** True iff every foreground↔surface pair clears its WCAG AA threshold in BOTH modes. */\n contrastAA: boolean;\n /**\n * Human-readable pair failures (empty when `contrastAA` is true).\n * Each entry: `\"<mode>: <fg> on <bg> = <ratio> (need <threshold>)\"`.\n */\n failures?: string[];\n}\n\n/** A named, validated theme — the unit the registry stores and the emitter renders. */\nexport interface Theme {\n /** Stable kebab-case id; drives the `.theme-{id}` class. */\n id: string;\n /** Display name. */\n name: string;\n /** One-line description. */\n description: string;\n /** Free-form tags for filtering/search (e.g. `[\"dark\",\"cool\",\"brand\"]`). */\n tags: string[];\n /** Light-mode token values. */\n light: TokenSet;\n /** Dark-mode token values. */\n dark: TokenSet;\n /** Border-radius scale knob (maps to the lib's `--radius-*`). Optional. */\n radius?: 'sm' | 'md' | 'lg';\n /** Lifecycle status — `validated` (real-app proven, locked) or `candidate` (engine-proven). */\n status: ThemeStatus;\n /** Validation result — `meta.contrastAA === true` ⇒ the theme is \"proven\". */\n meta: ThemeMeta;\n}\n\n/** Neutral surface temperature — biases the grey ramp warm/cool/neutral. */\nexport type NeutralTemp = 'cool' | 'neutral' | 'warm';\n\n/** How the accent hue is derived from the primary hue. */\nexport type AccentMode = 'complementary' | 'analogous' | 'triadic' | 'mono';\n\n/** Surface character — `soft` = gentle low-contrast surfaces, `crisp` = punchier separation. */\nexport type SurfaceStyle = 'soft' | 'crisp';\n\n/**\n * The recipe a theme is generated from. Pure inputs → deterministic `Theme`\n * (no randomness; identical seeds always yield identical themes).\n */\nexport interface ThemeSeed {\n /** Stable kebab-case id for the produced theme. */\n id: string;\n /** Display name. */\n name: string;\n /** One-line description (optional — a sensible default is derived from the seed). */\n description?: string;\n /** Tags to attach (generator also auto-tags temp/mode/scheme). */\n tags?: string[];\n /** Primary brand hue in degrees, 0–360. */\n primaryHue: number;\n /** Neutral ramp temperature. Default `neutral`. */\n neutralTemp?: NeutralTemp;\n /** Accent derivation. Default `complementary`. */\n accentMode?: AccentMode;\n /** Surface character. Default `crisp`. */\n surface?: SurfaceStyle;\n /** Radius knob to carry through. Optional. */\n radius?: 'sm' | 'md' | 'lg';\n}\n","/* ---------------------------------------------------------------------------\n * Theme validator — WCAG AA contrast checks across every text/surface pair.\n *\n * \"Proven\" = every paired (-foreground vs its surface/base) clears AA in BOTH\n * light and dark modes. Text pairs need ≥ 4.5:1; the focus `ring` (a UI\n * affordance, not text) needs ≥ 3:1 against the page background.\n * ------------------------------------------------------------------------- */\n\nimport type { Theme, ThemeMeta } from './Theme';\nimport { TONE_FAMILIES, type SemanticToken, type TokenSet } from './Tokens';\nimport { contrastRatioCss } from './Oklch';\n\n/** WCAG AA thresholds. Text = normal-size body text; UI = non-text affordances. */\nexport const AA_TEXT = 4.5;\nexport const AA_UI = 3.0;\n\n/** One foreground↔background pair to verify, with its required ratio. */\ninterface ContrastPair {\n /** Foreground token (text/icon/affordance color). */\n fg: SemanticToken;\n /** Background token the fg sits on. */\n bg: SemanticToken;\n /** Required minimum ratio (AA_TEXT or AA_UI). */\n min: number;\n}\n\n/**\n * The canonical set of pairs every theme must satisfy.\n * Surface text pairs + each tone family's solid/soft foreground pairs + ring.\n */\nexport function contrastPairs(): ContrastPair[] {\n const pairs: ContrastPair[] = [\n { fg: 'foreground', bg: 'background', min: AA_TEXT },\n { fg: 'card-foreground', bg: 'card', min: AA_TEXT },\n { fg: 'popover-foreground', bg: 'popover', min: AA_TEXT },\n { fg: 'muted-foreground', bg: 'muted', min: AA_TEXT },\n { fg: 'subtle-foreground', bg: 'background', min: AA_UI },\n { fg: 'inverse-foreground', bg: 'inverse', min: AA_TEXT },\n // Focus ring is a UI affordance against the page → AA_UI.\n { fg: 'ring', bg: 'background', min: AA_UI },\n ];\n\n for (const f of TONE_FAMILIES) {\n // Solid: foreground text on the saturated base.\n pairs.push({ fg: `${f}-foreground`, bg: f, min: AA_TEXT });\n // Soft: foreground text on the tinted soft surface.\n pairs.push({ fg: `${f}-soft-foreground`, bg: `${f}-soft`, min: AA_TEXT });\n }\n\n return pairs;\n}\n\n/** Check one token set (one mode) against the pair list. Returns failure strings. */\nfunction checkMode(set: TokenSet, mode: 'light' | 'dark'): string[] {\n const failures: string[] = [];\n for (const { fg, bg, min } of contrastPairs()) {\n const ratio = contrastRatioCss(set[fg], set[bg]);\n if (ratio + 1e-3 < min) {\n failures.push(\n `${mode}: ${fg} on ${bg} = ${ratio.toFixed(2)} (need ${min.toFixed(1)})`,\n );\n }\n }\n return failures;\n}\n\n/**\n * Validate a theme's light AND dark token sets.\n * `contrastAA` is true only when both modes pass every pair.\n */\nexport function validateTheme(theme: Pick<Theme, 'light' | 'dark'>): ThemeMeta {\n const failures = [\n ...checkMode(theme.light, 'light'),\n ...checkMode(theme.dark, 'dark'),\n ];\n return failures.length === 0\n ? { contrastAA: true }\n : { contrastAA: false, failures };\n}\n","/* ---------------------------------------------------------------------------\n * OKLCH theme generator.\n *\n * `generateTheme(seed)` → a fully-resolved, validated `Theme` with both light\n * and dark `TokenSet`s. Pure & deterministic — output depends only on the seed\n * (no `Math.random`). Strategy:\n *\n * 1. Neutral ramp — low-chroma lightness steps, hue/chroma biased by\n * `neutralTemp`; `surface` widens/narrows the steps. Drives background /\n * card / popover / muted / border / input / *-foreground.\n * 2. Primary — from `primaryHue` at a readable chroma; soft = high-L\n * low-C tint; foregrounds auto-nudged to clear AA.\n * 3. Accent — primary hue rotated per `accentMode`.\n * 4. Status — success / warning / destructive / info anchored to\n * canonical hues but chroma-harmonized to the primary.\n *\n * Every *-foreground is contrast-paired and nudged (lighter/darker in L) until\n * it clears its WCAG AA threshold, so generated themes are \"proven\" by default.\n * ------------------------------------------------------------------------- */\n\nimport type {\n AccentMode,\n NeutralTemp,\n SurfaceStyle,\n Theme,\n ThemeSeed,\n} from './Theme';\nimport { ThemeStatus } from './Theme';\nimport {\n applyToneSlots,\n type ToneFamilyName,\n type ToneSlots,\n type TokenSet,\n} from './Tokens';\nimport {\n contrastRatio,\n normalizeHue,\n oklchToCss,\n relativeLuminance,\n type Oklch,\n} from './Oklch';\nimport { AA_TEXT, AA_UI, validateTheme } from './validate';\n\n// ---------------------------------------------------------------------------\n// Neutral ramp configuration\n// ---------------------------------------------------------------------------\n\n/** Hue + chroma the neutral grey ramp is tinted toward, per temperature. */\nconst NEUTRAL_TINT: Record<NeutralTemp, { hue: number; chroma: number }> = {\n cool: { hue: 250, chroma: 0.012 }, // bluish slate\n neutral: { hue: 270, chroma: 0.003 }, // near-achromatic\n warm: { hue: 70, chroma: 0.012 }, // warm stone\n};\n\n/** Canonical status hues (OKLCH degrees), tuned for sRGB. */\nconst STATUS_HUE = {\n success: 150,\n warning: 80,\n destructive: 27,\n info: 230,\n} as const;\n\n// ---------------------------------------------------------------------------\n// Small helpers\n// ---------------------------------------------------------------------------\n\nconst clampL = (l: number): number => Math.min(0.985, Math.max(0.06, l));\n\n/** Pick the foreground (near-white vs near-black, tinted to `hue`) with higher contrast on `bg`. */\nfunction bestTextOn(bg: Oklch, hue: number): Oklch {\n const white: Oklch = { l: 0.985, c: 0.004, h: hue };\n const black: Oklch = { l: 0.18, c: 0.01, h: hue };\n return contrastRatio(white, bg) >= contrastRatio(black, bg) ? white : black;\n}\n\n/**\n * Nudge a foreground's lightness toward the better-contrast end until it clears\n * `min` against `bg` (or we run out of headroom). Deterministic stepping.\n */\nfunction nudgeForeground(fg: Oklch, bg: Oklch, min: number): Oklch {\n let cur = { ...fg };\n if (contrastRatio(cur, bg) >= min) return cur;\n\n // Decide direction: move toward whichever pole increases contrast.\n const goLighter = relativeLuminance(bg) < 0.4;\n const step = goLighter ? 0.03 : -0.03;\n\n for (let i = 0; i < 32; i++) {\n cur = { ...cur, l: clampL(cur.l + step) };\n if (contrastRatio(cur, bg) >= min) return cur;\n if (cur.l <= 0.06 || cur.l >= 0.985) break;\n }\n // Last resort: pure pole (white or black) for maximum contrast.\n return goLighter ? { l: 0.985, c: 0, h: fg.h } : { l: 0.1, c: 0, h: fg.h };\n}\n\n/**\n * Resolve a {base, foreground} pair that clears `min`. First nudge the\n * foreground; if it's already maxed at a pole and still short, slide the BASE\n * lightness away from the foreground (darker when fg is light, lighter when fg\n * is dark) — preserving hue/chroma — until the pair passes. Returns both.\n */\nfunction resolveSolidPair(\n base: Oklch,\n fg: Oklch,\n min: number,\n): { base: Oklch; foreground: Oklch } {\n let curFg = nudgeForeground(fg, base, min);\n if (contrastRatio(curFg, base) >= min) return { base, foreground: curFg };\n\n // Foreground couldn't get there alone → move the base.\n const fgIsLight = relativeLuminance(curFg) >= 0.5;\n const step = fgIsLight ? -0.02 : 0.02; // push base contrast up\n let curBase = { ...base };\n for (let i = 0; i < 32; i++) {\n curBase = { ...curBase, l: clampL(curBase.l + step) };\n curFg = nudgeForeground(curFg, curBase, min);\n if (contrastRatio(curFg, curBase) >= min) break;\n if (curBase.l <= 0.06 || curBase.l >= 0.985) break;\n }\n return { base: curBase, foreground: curFg };\n}\n\n// ---------------------------------------------------------------------------\n// Per-mode build\n// ---------------------------------------------------------------------------\n\ninterface ModeConfig {\n /** Background lightness. */\n bgL: number;\n /** Step between stacked surfaces (card/popover/muted), signed toward foreground. */\n surfStep: number;\n /** Foreground (body text) lightness. */\n fgL: number;\n /** Base lightness for saturated tone bases (primary/status). */\n toneL: number;\n /** Chroma for saturated tone bases. */\n toneC: number;\n /** Soft-surface lightness. */\n softL: number;\n /** Soft-surface chroma. */\n softC: number;\n /** Is this the dark mode build? */\n isDark: boolean;\n}\n\n/** Resolve per-mode lightness/chroma knobs from the surface style. */\nfunction modeConfig(isDark: boolean, surface: SurfaceStyle): ModeConfig {\n const crisp = surface === 'crisp';\n if (isDark) {\n return {\n bgL: crisp ? 0.16 : 0.2,\n surfStep: crisp ? 0.05 : 0.04,\n fgL: 0.96,\n toneL: 0.7,\n toneC: 0.16,\n softL: 0.3,\n softC: 0.06,\n isDark: true,\n };\n }\n return {\n bgL: 1.0,\n surfStep: crisp ? -0.035 : -0.025,\n fgL: 0.2,\n toneL: 0.58,\n toneC: 0.17,\n softL: 0.95,\n softC: 0.05,\n isDark: false,\n };\n}\n\n/** Build one mode's full token set. */\nfunction buildMode(\n primaryHue: number,\n accentHue: number,\n neutralTemp: NeutralTemp,\n surface: SurfaceStyle,\n isDark: boolean,\n): TokenSet {\n const cfg = modeConfig(isDark, surface);\n const tint = NEUTRAL_TINT[neutralTemp];\n const nh = tint.hue;\n const nc = tint.chroma;\n\n // ---- neutral surfaces ----\n const background: Oklch = { l: clampL(cfg.bgL), c: nc, h: nh };\n // card/popover sit one step \"in front of\" the background.\n const card: Oklch = { l: clampL(cfg.bgL + cfg.surfStep), c: nc, h: nh };\n const popover = card;\n const muted: Oklch = { l: clampL(cfg.bgL + cfg.surfStep * 1.5), c: nc * 1.4, h: nh };\n\n // Borders / input outline — a couple steps further from bg, slightly more chroma.\n const border: Oklch = { l: clampL(cfg.bgL + cfg.surfStep * 2.2), c: nc * 1.6, h: nh };\n const borderStrong: Oklch = {\n l: clampL(cfg.bgL + cfg.surfStep * 3.4),\n c: nc * 1.8,\n h: nh,\n };\n const input = borderStrong;\n\n // Foregrounds (auto-nudged for AA).\n const foreground = nudgeForeground({ l: cfg.fgL, c: nc * 2, h: nh }, background, AA_TEXT);\n const cardFg = nudgeForeground(foreground, card, AA_TEXT);\n const popoverFg = nudgeForeground(foreground, popover, AA_TEXT);\n const mutedFg = nudgeForeground(\n { l: isDark ? 0.72 : 0.5, c: nc * 2.5, h: nh },\n muted,\n AA_TEXT,\n );\n const subtleFg = nudgeForeground(\n { l: isDark ? 0.55 : 0.62, c: nc * 2, h: nh },\n background,\n AA_UI,\n );\n\n // Inverse = flipped surface (dark chip on light theme, light chip on dark theme).\n const inverse: Oklch = isDark\n ? { l: 0.96, c: nc, h: nh }\n : { l: 0.2, c: nc * 2, h: nh };\n const inverseFg = nudgeForeground(\n { l: isDark ? 0.18 : 0.97, c: nc, h: nh },\n inverse,\n AA_TEXT,\n );\n\n // ---- tone family builder ----\n const buildTone = (hue: number, chromaScale = 1): ToneSlots => {\n const baseSeed: Oklch = { l: cfg.toneL, c: cfg.toneC * chromaScale, h: hue };\n const foregroundC = bestTextOn(baseSeed, hue);\n // Co-resolve base + foreground so the solid pair always clears AA text.\n const { base, foreground: fg } = resolveSolidPair(baseSeed, foregroundC, AA_TEXT);\n const soft: Oklch = { l: cfg.softL, c: cfg.softC * chromaScale, h: hue };\n // Soft-foreground: a deep (light mode) / bright (dark mode) tint of the same hue.\n const softFgSeed: Oklch = isDark\n ? { l: 0.85, c: cfg.softC * 1.4 * chromaScale, h: hue }\n : { l: 0.42, c: cfg.toneC * 0.9 * chromaScale, h: hue };\n const softFg = nudgeForeground(softFgSeed, soft, AA_TEXT);\n return {\n base: oklchToCss(base),\n foreground: oklchToCss(fg),\n soft: oklchToCss(soft),\n softForeground: oklchToCss(softFg),\n };\n };\n\n // Ring = primary at a vivid, mid lightness; checked as UI affordance vs bg.\n const ring = nudgeForeground(\n { l: isDark ? 0.7 : 0.55, c: 0.16, h: primaryHue },\n background,\n AA_UI,\n );\n\n const set: Partial<TokenSet> = {\n background: oklchToCss(background),\n foreground: oklchToCss(foreground),\n card: oklchToCss(card),\n 'card-foreground': oklchToCss(cardFg),\n popover: oklchToCss(popover),\n 'popover-foreground': oklchToCss(popoverFg),\n muted: oklchToCss(muted),\n 'muted-foreground': oklchToCss(mutedFg),\n 'subtle-foreground': oklchToCss(subtleFg),\n inverse: oklchToCss(inverse),\n 'inverse-foreground': oklchToCss(inverseFg),\n border: oklchToCss(border),\n 'border-strong': oklchToCss(borderStrong),\n input: oklchToCss(input),\n ring: oklchToCss(ring),\n };\n\n const tones: Record<ToneFamilyName, number> = {\n primary: primaryHue,\n accent: accentHue,\n destructive: STATUS_HUE.destructive,\n info: STATUS_HUE.info,\n success: STATUS_HUE.success,\n warning: STATUS_HUE.warning,\n };\n\n for (const [family, hue] of Object.entries(tones) as [ToneFamilyName, number][]) {\n // Warning runs a touch lower-chroma so the yellow doesn't blow out.\n const chromaScale = family === 'warning' ? 0.92 : 1;\n applyToneSlots(set, family, buildTone(hue, chromaScale));\n }\n\n return set as TokenSet;\n}\n\n// ---------------------------------------------------------------------------\n// Accent derivation\n// ---------------------------------------------------------------------------\n\nfunction accentHueFrom(primaryHue: number, mode: AccentMode): number {\n switch (mode) {\n case 'complementary':\n return normalizeHue(primaryHue + 180);\n case 'analogous':\n return normalizeHue(primaryHue + 40);\n case 'triadic':\n return normalizeHue(primaryHue + 120);\n case 'mono':\n return primaryHue;\n }\n}\n\n// ---------------------------------------------------------------------------\n// Public entry\n// ---------------------------------------------------------------------------\n\nfunction defaultDescription(seed: ThemeSeed): string {\n const temp = seed.neutralTemp ?? 'neutral';\n const surf = seed.surface ?? 'crisp';\n return `Generated theme · hue ${Math.round(seed.primaryHue)}° · ${temp} neutrals · ${surf} surfaces.`;\n}\n\n/**\n * Expand a {@link ThemeSeed} into a validated {@link Theme}.\n * Deterministic: same seed in → identical theme out.\n */\nexport function generateTheme(seed: ThemeSeed): Theme {\n const primaryHue = normalizeHue(seed.primaryHue);\n const neutralTemp = seed.neutralTemp ?? 'neutral';\n const accentMode = seed.accentMode ?? 'complementary';\n const surface = seed.surface ?? 'crisp';\n const accentHue = accentHueFrom(primaryHue, accentMode);\n\n const light = buildMode(primaryHue, accentHue, neutralTemp, surface, false);\n const dark = buildMode(primaryHue, accentHue, neutralTemp, surface, true);\n\n const meta = validateTheme({ light, dark });\n\n const autoTags = [\n neutralTemp,\n accentMode,\n surface,\n meta.contrastAA ? 'aa' : 'aa-fail',\n ];\n\n return {\n id: seed.id,\n name: seed.name,\n description: seed.description ?? defaultDescription(seed),\n tags: Array.from(new Set([...(seed.tags ?? []), ...autoTags])),\n light,\n dark,\n radius: seed.radius,\n // Generated/curated themes default to `candidate` — engine-proven, not yet\n // validated against a real app surface.\n status: ThemeStatus.Candidate,\n meta,\n };\n}\n","/* ---------------------------------------------------------------------------\n * CSS emitter — turn a Theme into scoped class blocks.\n *\n * An app applies a theme by adding `theme-{id}` to a root element. The emitted\n * CSS overrides the lib's semantic `--color-*` vars (and optional `--radius-*`)\n * under that class, so every Tailwind utility (`bg-primary`, `text-foreground`,\n * …) re-resolves to the theme's values. Dark mode reuses the lib's variant:\n * `.dark.theme-{id}` (i.e. `.dark` + the theme class on the same element, or an\n * ancestor `.dark`).\n * ------------------------------------------------------------------------- */\n\nimport type { Theme, ThemeStatus } from './Theme';\nimport { SEMANTIC_TOKENS, type TokenSet } from './Tokens';\n\n/** Radius knob → concrete `--radius-*` triple (mirrors the lib's default scale shifts). */\nconst RADIUS_SCALE: Record<NonNullable<Theme['radius']>, Record<string, string>> = {\n sm: { md: '0.375rem', lg: '0.5rem', xl: '0.75rem' },\n md: { md: '0.5rem', lg: '0.75rem', xl: '1rem' },\n lg: { md: '0.625rem', lg: '0.875rem', xl: '1.25rem' },\n};\n\n/** Render one token set as ` --color-{key}: {value};` declaration lines. */\nfunction declarations(set: TokenSet, indent = ' '): string {\n return SEMANTIC_TOKENS.map((tok) => `${indent}--color-${tok}: ${set[tok]};`).join(\n '\\n',\n );\n}\n\n/** Render the optional radius overrides as declaration lines (empty string when unset). */\nfunction radiusDeclarations(theme: Theme, indent = ' '): string {\n if (!theme.radius) return '';\n const scale = RADIUS_SCALE[theme.radius];\n return (\n '\\n' +\n Object.entries(scale)\n .map(([k, v]) => `${indent}--radius-${k}: ${v};`)\n .join('\\n')\n );\n}\n\n/**\n * Emit the CSS for a single theme: a light `.theme-{id}` block + a\n * `.dark.theme-{id}` block. Returns a string (no trailing newline).\n */\nexport function themeToCss(theme: Theme): string {\n const radius = radiusDeclarations(theme);\n const light = `.theme-${theme.id} {\\n${declarations(theme.light)}${radius}\\n}`;\n const dark = `.dark.theme-${theme.id} {\\n${declarations(theme.dark)}\\n}`;\n return `${light}\\n\\n${dark}`;\n}\n\n/** Emit a full stylesheet for many themes, with a generated-file banner. */\nexport function emitAllThemesCss(themes: Theme[]): string {\n const banner =\n '/* Generated by @wow-two-beta/ui theme engine — do not edit by hand.\\n' +\n ' * Source: src/themes/registry.ts → regenerate via the package build. */\\n';\n const body = themes.map(themeToCss).join('\\n\\n');\n return `${banner}\\n${body}\\n`;\n}\n\n/** Machine-readable manifest entry for one theme (no token payload — index only). */\nexport interface ThemeManifestEntry {\n id: string;\n name: string;\n description: string;\n tags: string[];\n /** Lifecycle status — `validated` (real-app proven) or `candidate` (engine-proven). */\n status: ThemeStatus;\n contrastAA: boolean;\n}\n\n/** Build the `themes.json` manifest payload from the registry. */\nexport function emitThemesManifest(themes: Theme[]): ThemeManifestEntry[] {\n return themes.map((t) => ({\n id: t.id,\n name: t.name,\n description: t.description,\n tags: t.tags,\n status: t.status,\n contrastAA: t.meta.contrastAA,\n }));\n}\n","/* ---------------------------------------------------------------------------\n * Validated themes — hand-authored from real, visually-verified app tokens.\n *\n * Unlike the curated registry (every preset is generated from a seed and\n * AA-nudged by the engine), a validated theme's colors are AUTHORED VERBATIM\n * from a shipping product and must never be re-derived — running them through\n * `generateTheme` would change the validated colors. So we build the full\n * 39-key light/dark TokenSets by hand: the app's bespoke overrides on top of\n * the lib's DEFAULT token values (the ones declared in `src/index.css`), which\n * the real app inherits for every token it doesn't override.\n *\n * We DO run `validateTheme` and record `meta` for transparency, but `status`\n * stays `validated` regardless of AA result — the human validated it visually.\n *\n * `VALIDATED_THEMES` is merged FIRST into the exported `THEMES` array.\n * ------------------------------------------------------------------------- */\n\nimport type { Theme } from './Theme';\nimport { ThemeStatus } from './Theme';\nimport type { TokenSet } from './Tokens';\nimport { validateTheme } from './validate';\n\n/* ---------------------------------------------------------------------------\n * Lib DEFAULT token values — copied verbatim from `src/index.css`.\n * - `LIB_DEFAULT_LIGHT` ← the `@theme { }` block\n * - `LIB_DEFAULT_DARK` ← the `.dark { }` block\n * A validated theme spreads these first, then applies its app-specific\n * overrides, so every token it doesn't define falls back to exactly the value\n * the real app inherits.\n * ------------------------------------------------------------------------- */\n\nconst LIB_DEFAULT_LIGHT: TokenSet = {\n background: '#ffffff',\n foreground: '#18181b',\n card: '#ffffff',\n 'card-foreground': '#18181b',\n popover: '#ffffff',\n 'popover-foreground': '#18181b',\n muted: '#f4f4f5',\n 'muted-foreground': '#71717a',\n 'subtle-foreground': '#a1a1aa',\n inverse: '#18181b',\n 'inverse-foreground': '#fafafa',\n border: '#e4e4e7',\n 'border-strong': '#d4d4d8',\n input: '#d4d4d8',\n ring: '#3b82f6',\n primary: '#2563eb',\n 'primary-foreground': '#ffffff',\n 'primary-soft': '#dbeafe',\n 'primary-soft-foreground': '#1d4ed8',\n accent: '#0d9488',\n 'accent-foreground': '#ffffff',\n 'accent-soft': '#ccfbf1',\n 'accent-soft-foreground': '#115e59',\n destructive: '#dc2626',\n 'destructive-foreground': '#ffffff',\n 'destructive-soft': '#fef2f2',\n 'destructive-soft-foreground': '#b91c1c',\n info: '#0891b2',\n 'info-foreground': '#ffffff',\n 'info-soft': '#ecfeff',\n 'info-soft-foreground': '#0e7490',\n success: '#16a34a',\n 'success-foreground': '#ffffff',\n 'success-soft': '#f0fdf4',\n 'success-soft-foreground': '#15803d',\n warning: '#f59e0b',\n 'warning-foreground': '#78350f',\n 'warning-soft': '#fffbeb',\n 'warning-soft-foreground': '#b45309',\n};\n\nconst LIB_DEFAULT_DARK: TokenSet = {\n background: '#09090b',\n foreground: '#fafafa',\n card: '#18181b',\n 'card-foreground': '#fafafa',\n popover: '#18181b',\n 'popover-foreground': '#fafafa',\n muted: '#18181b',\n 'muted-foreground': '#a1a1aa',\n 'subtle-foreground': '#71717a',\n inverse: '#fafafa',\n 'inverse-foreground': '#09090b',\n border: '#27272a',\n 'border-strong': '#3f3f46',\n input: '#3f3f46',\n ring: '#60a5fa',\n primary: '#3b82f6',\n 'primary-foreground': '#ffffff',\n 'primary-soft': '#1e3a8a',\n 'primary-soft-foreground': '#dbeafe',\n accent: '#2dd4bf',\n 'accent-foreground': '#042f2e',\n 'accent-soft': '#134e4a',\n 'accent-soft-foreground': '#5eead4',\n destructive: '#ef4444',\n 'destructive-foreground': '#ffffff',\n 'destructive-soft': '#7f1d1d',\n 'destructive-soft-foreground': '#fee2e2',\n info: '#06b6d4',\n 'info-foreground': '#ffffff',\n 'info-soft': '#164e63',\n 'info-soft-foreground': '#cffafe',\n success: '#22c55e',\n 'success-foreground': '#ffffff',\n 'success-soft': '#14532d',\n 'success-soft-foreground': '#dcfce7',\n warning: '#f59e0b',\n 'warning-foreground': '#78350f',\n 'warning-soft': '#78350f',\n 'warning-soft-foreground': '#fef3c7',\n};\n\n/* ---------------------------------------------------------------------------\n * Smart QR — the real, visually-validated product theme.\n *\n * Hand-authored from the shipping Smart QR app: violet brand + teal accent on\n * cool lavender-grey (light) / charcoal (dark). The overrides below are the\n * EXACT app token hex values; everything else inherits the lib defaults above\n * (so the self-contained theme renders identically to the real app).\n *\n * Tokens filled from lib defaults (NOT app-defined — the app inherits them):\n * light: card-foreground (= foreground), inverse, inverse-foreground,\n * and the destructive / info / success / warning families.\n * dark: card-foreground (= foreground), inverse, inverse-foreground,\n * primary-foreground, accent-foreground,\n * and the destructive / info / success / warning families.\n * ------------------------------------------------------------------------- */\n\nconst smartQrLight: TokenSet = {\n ...LIB_DEFAULT_LIGHT,\n background: '#d9dde8',\n card: '#ebeef4',\n popover: '#ebeef4',\n 'popover-foreground': '#1c1d26',\n muted: '#f1f2f8',\n foreground: '#1c1d26',\n 'card-foreground': '#1c1d26', // = foreground (app inherits foreground here)\n 'muted-foreground': '#6e7188',\n 'subtle-foreground': '#9b9fb5',\n border: '#e4e6f0',\n 'border-strong': '#c7cad9',\n input: '#e4e6f0',\n ring: '#8b5cf6',\n primary: '#7c3aed',\n 'primary-foreground': '#f5f3ff',\n 'primary-soft': '#ede9fe',\n 'primary-soft-foreground': '#5b21b6',\n accent: '#0d9488',\n 'accent-foreground': '#ffffff',\n 'accent-soft': '#ccfbf1',\n 'accent-soft-foreground': '#115e59',\n};\n\nconst smartQrDark: TokenSet = {\n ...LIB_DEFAULT_DARK,\n background: '#121214',\n card: '#1c1c1f',\n popover: '#1c1c1f',\n 'popover-foreground': '#e7e7e9',\n muted: '#18181b',\n foreground: '#e7e7e9',\n 'card-foreground': '#e7e7e9', // = foreground (app inherits foreground here)\n 'muted-foreground': '#a1a1aa',\n 'subtle-foreground': '#6e6e76',\n border: '#2a2a2e',\n 'border-strong': '#3a3a40',\n input: '#2a2a2e',\n ring: '#8b5cf6',\n primary: '#8b5cf6',\n 'primary-soft': '#2a2440',\n 'primary-soft-foreground': '#c4b5fd',\n accent: '#2dd4bf',\n 'accent-soft': '#103a35',\n 'accent-soft-foreground': '#5eead4',\n};\n\n/** Smart QR — the first validated, real-app-proven theme. Colors are locked. */\nconst smartQr: Theme = {\n id: 'smart-qr',\n name: 'Smart QR',\n description:\n 'Violet brand + teal accent on cool lavender-grey (light) / charcoal (dark) — the validated Smart QR product theme.',\n tags: ['brand', 'violet', 'teal', 'validated', 'product'],\n light: smartQrLight,\n dark: smartQrDark,\n status: ThemeStatus.Validated,\n // Recorded for transparency. We do NOT auto-nudge any value — status stays\n // `validated` even if a pair fails (the human validated it visually).\n meta: validateTheme({ light: smartQrLight, dark: smartQrDark }),\n};\n\n/** Validated themes, merged FIRST into the curated `THEMES` array. */\nexport const VALIDATED_THEMES: Theme[] = [smartQr];\n","/* ---------------------------------------------------------------------------\n * Candidate theme pool — a large, diverse, AA-proven catalog.\n *\n * Same contract as `THEME_SEEDS` in `registry.ts`: every entry is a `ThemeSeed`\n * expanded through `generateTheme`, so the whole pool is contrast-validated by\n * the engine and stamped `status: \"candidate\"`. These are *vibes*, not literal\n * clones — the seed captures hue family / neutral temperature / accent scheme /\n * surface character, and the OKLCH generator does the rest (AA-nudging included).\n *\n * Two cohorts:\n * 1. NAMED — popular dev/editor/brand palettes not already in the curated 24.\n * One seed each, hue chosen to evoke the palette's signature brand color.\n * 2. SPECTRUM — a systematic hue sweep (~every 20-30°) crossed with a couple\n * of accent modes / neutral temps, filling the wheel so any brand hue an\n * app picks already has a near neighbour in the pool.\n *\n * `registry.ts` imports `POOL_SEEDS` and appends it after the curated seeds, so\n * the final order is: smart-qr (validated) → 24 curated candidates → this pool.\n *\n * Foundation layer — no upward imports (ESLint enforces).\n * ------------------------------------------------------------------------- */\n\nimport type { ThemeSeed } from './Theme';\n\n/* ===========================================================================\n * 1. NAMED — editor / brand palettes (vibe-matched, not cloned).\n *\n * Hues are eyeballed from each palette's signature accent (OKLCH degrees):\n * ~25 red · ~45 orange · ~75 amber/olive · ~110 chartreuse · ~145 green ·\n * ~165 emerald/teal · ~195 teal/cyan · ~225 azure · ~255 indigo ·\n * ~285 violet · ~320 magenta · ~350 pink/rose.\n * Ids are kebab-case and unique vs the curated 24 + smart-qr.\n * ========================================================================= */\n\nconst NAMED_SEEDS: ThemeSeed[] = [\n {\n id: 'catppuccin-latte',\n name: 'Catppuccin Latte',\n description: 'Soft mauve brand on warm latte neutrals — the light Catppuccin flavour.',\n tags: ['editor', 'catppuccin', 'pastel', 'warm', 'soft'],\n primaryHue: 290,\n neutralTemp: 'warm',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'catppuccin-frappe',\n name: 'Catppuccin Frappé',\n description: 'Muted mauve brand on cool slate — the mid Catppuccin flavour.',\n tags: ['editor', 'catppuccin', 'pastel', 'cool', 'muted'],\n primaryHue: 287,\n neutralTemp: 'cool',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'catppuccin-macchiato',\n name: 'Catppuccin Macchiato',\n description: 'Lavender-mauve brand on deep cool neutrals — the darker Catppuccin flavour.',\n tags: ['editor', 'catppuccin', 'pastel', 'cool', 'soft'],\n primaryHue: 280,\n neutralTemp: 'cool',\n accentMode: 'triadic',\n surface: 'soft',\n },\n {\n id: 'catppuccin-mocha',\n name: 'Catppuccin Mocha',\n description: 'Pastel mauve brand on the darkest Catppuccin slate — cozy and dim.',\n tags: ['editor', 'catppuccin', 'pastel', 'cool', 'soft'],\n primaryHue: 283,\n neutralTemp: 'cool',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'tokyo-night',\n name: 'Tokyo Night',\n description: 'Indigo-blue brand on deep cool navy — neon-city night editor palette.',\n tags: ['editor', 'tokyo-night', 'cool', 'calm'],\n primaryHue: 252,\n neutralTemp: 'cool',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'tokyo-night-storm',\n name: 'Tokyo Night Storm',\n description: 'Soft blue brand on stormy blue-grey — the lighter-ground Tokyo Night variant.',\n tags: ['editor', 'tokyo-night', 'cool', 'muted'],\n primaryHue: 246,\n neutralTemp: 'cool',\n accentMode: 'triadic',\n surface: 'soft',\n },\n {\n id: 'tokyo-night-light',\n name: 'Tokyo Night Light',\n description: 'Indigo brand on crisp cool paper — the daytime Tokyo Night.',\n tags: ['editor', 'tokyo-night', 'cool', 'light'],\n primaryHue: 250,\n neutralTemp: 'cool',\n accentMode: 'analogous',\n surface: 'crisp',\n },\n {\n id: 'rose-pine',\n name: 'Rosé Pine',\n description: 'Dusky rose brand on muted plum-grey — the cozy Rosé Pine vibe.',\n tags: ['editor', 'rose-pine', 'muted', 'soft', 'cool'],\n primaryHue: 350,\n neutralTemp: 'cool',\n accentMode: 'triadic',\n surface: 'soft',\n },\n {\n id: 'rose-pine-moon',\n name: 'Rosé Pine Moon',\n description: 'Soft rose brand on a lighter moonlit plum ground — Rosé Pine Moon.',\n tags: ['editor', 'rose-pine', 'muted', 'soft', 'cool'],\n primaryHue: 345,\n neutralTemp: 'cool',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'rose-pine-dawn',\n name: 'Rosé Pine Dawn',\n description: 'Rose brand on warm parchment — the light Rosé Pine Dawn.',\n tags: ['editor', 'rose-pine', 'warm', 'soft', 'light'],\n primaryHue: 352,\n neutralTemp: 'warm',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'one-dark',\n name: 'One Dark',\n description: 'Hyperlink-blue brand on cool gunmetal — the Atom/One Dark classic.',\n tags: ['editor', 'one-dark', 'cool', 'calm'],\n primaryHue: 240,\n neutralTemp: 'cool',\n accentMode: 'complementary',\n surface: 'crisp',\n },\n {\n id: 'one-light',\n name: 'One Light',\n description: 'Blue brand on crisp neutral paper — the One Light editor theme.',\n tags: ['editor', 'one-light', 'neutral', 'light'],\n primaryHue: 240,\n neutralTemp: 'neutral',\n accentMode: 'complementary',\n surface: 'crisp',\n },\n {\n id: 'ayu-dark',\n name: 'Ayu Dark',\n description: 'Warm amber brand on near-black ink — Ayu Dark’s signature glow.',\n tags: ['editor', 'ayu', 'warm', 'vibrant'],\n primaryHue: 60,\n neutralTemp: 'warm',\n accentMode: 'analogous',\n surface: 'crisp',\n },\n {\n id: 'ayu-mirage',\n name: 'Ayu Mirage',\n description: 'Amber-gold brand on muted blue-grey — the mid Ayu Mirage tone.',\n tags: ['editor', 'ayu', 'warm', 'muted'],\n primaryHue: 55,\n neutralTemp: 'cool',\n accentMode: 'triadic',\n surface: 'soft',\n },\n {\n id: 'ayu-light',\n name: 'Ayu Light',\n description: 'Warm orange brand on bright paper — the daytime Ayu Light.',\n tags: ['editor', 'ayu', 'warm', 'light'],\n primaryHue: 48,\n neutralTemp: 'warm',\n accentMode: 'analogous',\n surface: 'crisp',\n },\n {\n id: 'everforest',\n name: 'Everforest',\n description: 'Soft moss-green brand on warm forest-grey — the gentle Everforest palette.',\n tags: ['editor', 'everforest', 'nature', 'warm', 'muted'],\n primaryHue: 135,\n neutralTemp: 'warm',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'everforest-light',\n name: 'Everforest Light',\n description: 'Moss green brand on warm cream — the light Everforest.',\n tags: ['editor', 'everforest', 'nature', 'warm', 'light'],\n primaryHue: 130,\n neutralTemp: 'warm',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'kanagawa',\n name: 'Kanagawa',\n description: 'Wave-blue brand on warm sumi-ink grey — inspired by Hokusai’s Great Wave.',\n tags: ['editor', 'kanagawa', 'cool', 'muted', 'warm'],\n primaryHue: 220,\n neutralTemp: 'warm',\n accentMode: 'triadic',\n surface: 'soft',\n },\n {\n id: 'kanagawa-lotus',\n name: 'Kanagawa Lotus',\n description: 'Indigo brand on warm parchment — the light Kanagawa Lotus.',\n tags: ['editor', 'kanagawa', 'warm', 'light', 'muted'],\n primaryHue: 235,\n neutralTemp: 'warm',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'night-owl',\n name: 'Night Owl',\n description: 'Cyan-teal brand on deep midnight blue — a palette tuned for late-night coding.',\n tags: ['editor', 'night-owl', 'cool', 'vibrant'],\n primaryHue: 195,\n neutralTemp: 'cool',\n accentMode: 'triadic',\n surface: 'soft',\n },\n {\n id: 'light-owl',\n name: 'Light Owl',\n description: 'Teal brand on crisp cool paper — the daytime Light Owl.',\n tags: ['editor', 'night-owl', 'cool', 'light'],\n primaryHue: 198,\n neutralTemp: 'cool',\n accentMode: 'complementary',\n surface: 'crisp',\n },\n {\n id: 'synthwave',\n name: 'Synthwave',\n description: 'Hot-magenta brand with a cyan accent on deep purple-black — retro 80s neon.',\n tags: ['editor', 'synthwave', 'retro', 'vibrant', 'neon'],\n primaryHue: 320,\n neutralTemp: 'cool',\n accentMode: 'triadic',\n surface: 'crisp',\n },\n {\n id: 'outrun',\n name: 'Outrun',\n description: 'Sunset-orange brand with a violet accent on dark indigo — neon sunset drive.',\n tags: ['retro', 'synthwave', 'vibrant', 'warm', 'neon'],\n primaryHue: 32,\n neutralTemp: 'cool',\n accentMode: 'triadic',\n surface: 'crisp',\n },\n {\n id: 'material',\n name: 'Material',\n description: 'Indigo brand with a teal accent on neutral greys — the Material Design baseline.',\n tags: ['brand', 'material', 'neutral', 'classic'],\n primaryHue: 255,\n neutralTemp: 'neutral',\n accentMode: 'complementary',\n surface: 'crisp',\n },\n {\n id: 'material-ocean',\n name: 'Material Ocean',\n description: 'Bright blue brand on deep ocean-navy — the Material Theme Ocean variant.',\n tags: ['editor', 'material', 'cool', 'calm'],\n primaryHue: 225,\n neutralTemp: 'cool',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'palenight',\n name: 'Palenight',\n description: 'Soft violet brand on dim blue-grey — the mellow Material Palenight.',\n tags: ['editor', 'material', 'cool', 'muted', 'soft'],\n primaryHue: 270,\n neutralTemp: 'cool',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'oceanic-next',\n name: 'Oceanic Next',\n description: 'Teal-blue brand on slate navy — the Oceanic Next editor palette.',\n tags: ['editor', 'oceanic', 'cool', 'calm'],\n primaryHue: 200,\n neutralTemp: 'cool',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'horizon',\n name: 'Horizon',\n description: 'Coral-rose brand with a cyan accent on warm plum-charcoal — the warm Horizon palette.',\n tags: ['editor', 'horizon', 'warm', 'vibrant'],\n primaryHue: 5,\n neutralTemp: 'warm',\n accentMode: 'triadic',\n surface: 'soft',\n },\n {\n id: 'github-dark',\n name: 'GitHub Dark',\n description: 'GitHub-blue brand on cool slate — the dark GitHub interface palette.',\n tags: ['brand', 'github', 'cool', 'professional'],\n primaryHue: 235,\n neutralTemp: 'cool',\n accentMode: 'complementary',\n surface: 'crisp',\n },\n {\n id: 'github-light',\n name: 'GitHub Light',\n description: 'GitHub-blue brand on crisp neutral white — the light GitHub interface.',\n tags: ['brand', 'github', 'neutral', 'professional', 'light'],\n primaryHue: 235,\n neutralTemp: 'neutral',\n accentMode: 'complementary',\n surface: 'crisp',\n },\n {\n id: 'github-dimmed',\n name: 'GitHub Dimmed',\n description: 'GitHub-blue brand on softened slate — the low-glare GitHub Dimmed mode.',\n tags: ['brand', 'github', 'cool', 'muted'],\n primaryHue: 233,\n neutralTemp: 'cool',\n accentMode: 'complementary',\n surface: 'soft',\n },\n {\n id: 'cobalt2',\n name: 'Cobalt2',\n description: 'Electric cobalt brand with an amber accent on deep navy — Wes Bos’ Cobalt2.',\n tags: ['editor', 'cobalt', 'cool', 'vibrant'],\n primaryHue: 228,\n neutralTemp: 'cool',\n accentMode: 'complementary',\n surface: 'crisp',\n },\n {\n id: 'panda',\n name: 'Panda',\n description: 'Pink-magenta brand with a cyan accent on near-black grey — the friendly Panda Syntax.',\n tags: ['editor', 'panda', 'vibrant', 'neutral'],\n primaryHue: 335,\n neutralTemp: 'neutral',\n accentMode: 'triadic',\n surface: 'crisp',\n },\n {\n id: 'monokai-pro',\n name: 'Monokai Pro',\n description: 'Warm yellow-amber brand with a magenta accent on warm charcoal — Monokai Pro.',\n tags: ['editor', 'monokai', 'warm', 'vibrant'],\n primaryHue: 70,\n neutralTemp: 'warm',\n accentMode: 'complementary',\n surface: 'crisp',\n },\n {\n id: 'solarized-dark',\n name: 'Solarized Dark',\n description: 'Cyan-blue brand on the deep teal-grey Solarized base — the dark Solarized.',\n tags: ['editor', 'solarized', 'cool', 'muted'],\n primaryHue: 205,\n neutralTemp: 'cool',\n accentMode: 'complementary',\n surface: 'soft',\n },\n {\n id: 'gruvbox-light',\n name: 'Gruvbox Light',\n description: 'Warm orange brand on retro cream — the light Gruvbox.',\n tags: ['editor', 'gruvbox', 'warm', 'retro', 'light'],\n primaryHue: 45,\n neutralTemp: 'warm',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'gruvbox-material',\n name: 'Gruvbox Material',\n description: 'Softened amber brand on muted warm grey — the gentler Gruvbox Material.',\n tags: ['editor', 'gruvbox', 'warm', 'retro', 'muted'],\n primaryHue: 52,\n neutralTemp: 'warm',\n accentMode: 'triadic',\n surface: 'soft',\n },\n {\n id: 'nord-light',\n name: 'Nord Light',\n description: 'Frost-blue brand on bright arctic snow — the light counterpart to Nord.',\n tags: ['editor', 'nord', 'cool', 'muted', 'light'],\n primaryHue: 213,\n neutralTemp: 'cool',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'aurora',\n name: 'Aurora',\n description: 'Frost-green brand with a violet accent on cool slate — Nord’s Aurora highlights.',\n tags: ['editor', 'nord', 'cool', 'nature'],\n primaryHue: 150,\n neutralTemp: 'cool',\n accentMode: 'triadic',\n surface: 'soft',\n },\n {\n id: 'dracula-pro',\n name: 'Dracula Pro',\n description: 'Refined purple brand with a pink accent on warm-tinted charcoal — Dracula Pro.',\n tags: ['editor', 'dracula', 'vibrant', 'cool'],\n primaryHue: 268,\n neutralTemp: 'cool',\n accentMode: 'analogous',\n surface: 'crisp',\n },\n {\n id: 'shades-of-purple',\n name: 'Shades of Purple',\n description: 'Royal violet brand with a gold accent on deep indigo — the bold SoP palette.',\n tags: ['editor', 'purple', 'vibrant', 'cool'],\n primaryHue: 275,\n neutralTemp: 'cool',\n accentMode: 'complementary',\n surface: 'crisp',\n },\n {\n id: 'winter-is-coming',\n name: 'Winter is Coming',\n description: 'Cool blue brand on icy slate — the crisp Winter-is-Coming editor theme.',\n tags: ['editor', 'cool', 'calm', 'muted'],\n primaryHue: 218,\n neutralTemp: 'cool',\n accentMode: 'analogous',\n surface: 'crisp',\n },\n {\n id: 'cyberpunk',\n name: 'Cyberpunk',\n description: 'Electric cyan brand with a hot-pink accent on black — high-voltage neon.',\n tags: ['retro', 'neon', 'vibrant', 'cool'],\n primaryHue: 192,\n neutralTemp: 'cool',\n accentMode: 'triadic',\n surface: 'crisp',\n },\n {\n id: 'spacegray',\n name: 'Spacegray',\n description: 'Muted blue brand on understated cool grey — the calm Spacegray UI.',\n tags: ['editor', 'cool', 'muted', 'minimal'],\n primaryHue: 210,\n neutralTemp: 'cool',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'github-copilot',\n name: 'Copilot',\n description: 'Teal-cyan brand on neutral slate — a calm assistant-inspired palette.',\n tags: ['brand', 'cool', 'fresh', 'professional'],\n primaryHue: 185,\n neutralTemp: 'neutral',\n accentMode: 'complementary',\n surface: 'crisp',\n },\n {\n id: 'vercel',\n name: 'Vercel',\n description: 'Pure achromatic brand on stark neutral greys — the high-contrast Vercel look.',\n tags: ['brand', 'neutral', 'minimal', 'grayscale'],\n primaryHue: 0,\n neutralTemp: 'neutral',\n accentMode: 'mono',\n surface: 'crisp',\n },\n {\n id: 'stripe',\n name: 'Stripe',\n description: 'Indigo-violet brand with an analogous accent on cool neutrals — the Stripe brand feel.',\n tags: ['brand', 'cool', 'professional', 'vibrant'],\n primaryHue: 258,\n neutralTemp: 'cool',\n accentMode: 'analogous',\n surface: 'crisp',\n },\n {\n id: 'spotify',\n name: 'Spotify',\n description: 'Vivid green brand on near-black neutral — the energetic streaming-app palette.',\n tags: ['brand', 'nature', 'vibrant', 'neutral'],\n primaryHue: 145,\n neutralTemp: 'neutral',\n accentMode: 'analogous',\n surface: 'crisp',\n },\n {\n id: 'firewatch',\n name: 'Firewatch',\n description: 'Sunset-orange brand with a teal accent on dusky blue — inspired by the game’s vistas.',\n tags: ['nature', 'warm', 'vibrant', 'cool'],\n primaryHue: 28,\n neutralTemp: 'cool',\n accentMode: 'complementary',\n surface: 'soft',\n },\n {\n id: 'andromeda',\n name: 'Andromeda',\n description: 'Magenta-pink brand with a green accent on deep space-blue — the vivid Andromeda palette.',\n tags: ['editor', 'vibrant', 'cool', 'neon'],\n primaryHue: 330,\n neutralTemp: 'cool',\n accentMode: 'complementary',\n surface: 'crisp',\n },\n {\n id: 'bluloco-light',\n name: 'Bluloco Light',\n description: 'Saturated blue brand on crisp paper — the punchy Bluloco Light.',\n tags: ['editor', 'cool', 'vibrant', 'light'],\n primaryHue: 230,\n neutralTemp: 'neutral',\n accentMode: 'complementary',\n surface: 'crisp',\n },\n {\n id: 'noctis',\n name: 'Noctis',\n description: 'Teal brand on deep blue-green ink — the legible Noctis editor palette.',\n tags: ['editor', 'cool', 'fresh', 'muted'],\n primaryHue: 180,\n neutralTemp: 'cool',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'min-dark',\n name: 'Min Dark',\n description: 'Restrained cyan brand on pure dark neutral — the minimal Miniml/Min theme.',\n tags: ['editor', 'minimal', 'cool', 'neutral'],\n primaryHue: 190,\n neutralTemp: 'neutral',\n accentMode: 'mono',\n surface: 'crisp',\n },\n {\n id: 'poimandres',\n name: 'Poimandres',\n description: 'Teal-cyan brand on deep blue-grey — the muted, modern Poimandres palette.',\n tags: ['editor', 'cool', 'muted', 'calm'],\n primaryHue: 188,\n neutralTemp: 'cool',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'flexoki',\n name: 'Flexoki',\n description: 'Warm red-brown brand on inky warm paper — the analog Flexoki palette.',\n tags: ['editor', 'warm', 'muted', 'paper'],\n primaryHue: 25,\n neutralTemp: 'warm',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'zenburn',\n name: 'Zenburn',\n description: 'Muted olive-tan brand on low-contrast warm grey — the classic low-glare Zenburn.',\n tags: ['editor', 'warm', 'muted', 'low-contrast'],\n primaryHue: 95,\n neutralTemp: 'warm',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'oxocarbon',\n name: 'Oxocarbon',\n description: 'Magenta-violet brand with a cyan accent on pure carbon grey — IBM-inspired Oxocarbon.',\n tags: ['editor', 'vibrant', 'neutral', 'cool'],\n primaryHue: 300,\n neutralTemp: 'neutral',\n accentMode: 'triadic',\n surface: 'crisp',\n },\n {\n id: 'iceberg',\n name: 'Iceberg',\n description: 'Cool periwinkle-blue brand on icy blue-grey — the restrained Iceberg palette.',\n tags: ['editor', 'cool', 'muted', 'calm'],\n primaryHue: 245,\n neutralTemp: 'cool',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'apprentice',\n name: 'Apprentice',\n description: 'Muted khaki-green brand on warm dark grey — the low-key Apprentice terminal palette.',\n tags: ['editor', 'warm', 'muted', 'low-contrast'],\n primaryHue: 100,\n neutralTemp: 'warm',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'tomorrow-night',\n name: 'Tomorrow Night',\n description: 'Calm blue brand on neutral charcoal — the balanced Tomorrow Night classic.',\n tags: ['editor', 'cool', 'calm', 'neutral'],\n primaryHue: 222,\n neutralTemp: 'neutral',\n accentMode: 'complementary',\n surface: 'crisp',\n },\n {\n id: 'embark',\n name: 'Embark',\n description: 'Violet brand with a teal accent on deep blue-purple — the vivid Embark palette.',\n tags: ['editor', 'vibrant', 'cool'],\n primaryHue: 278,\n neutralTemp: 'cool',\n accentMode: 'triadic',\n surface: 'soft',\n },\n {\n id: 'moonlight',\n name: 'Moonlight',\n description: 'Periwinkle-violet brand on deep blue night — the dreamy Moonlight II palette.',\n tags: ['editor', 'cool', 'calm', 'soft'],\n primaryHue: 262,\n neutralTemp: 'cool',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'bearded',\n name: 'Bearded',\n description: 'Magenta brand with a green accent on cool charcoal — a bold Bearded-style palette.',\n tags: ['editor', 'vibrant', 'cool'],\n primaryHue: 315,\n neutralTemp: 'cool',\n accentMode: 'complementary',\n surface: 'crisp',\n },\n {\n id: 'city-lights',\n name: 'City Lights',\n description: 'Steel-blue brand on deep blue-grey — the muted, urban City Lights palette.',\n tags: ['editor', 'cool', 'muted', 'calm'],\n primaryHue: 205,\n neutralTemp: 'cool',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'snazzy',\n name: 'Snazzy',\n description: 'Bright cyan brand with a magenta accent on near-black — the punchy Hyper Snazzy.',\n tags: ['terminal', 'vibrant', 'cool', 'neon'],\n primaryHue: 188,\n neutralTemp: 'cool',\n accentMode: 'triadic',\n surface: 'crisp',\n },\n {\n id: 'tomorrow-light',\n name: 'Tomorrow',\n description: 'Soft blue brand on clean neutral paper — the original light Tomorrow.',\n tags: ['editor', 'neutral', 'calm', 'light'],\n primaryHue: 222,\n neutralTemp: 'neutral',\n accentMode: 'complementary',\n surface: 'crisp',\n },\n {\n id: 'paper-color',\n name: 'PaperColor',\n description: 'Crisp blue brand on bright paper-white — the print-like PaperColor light theme.',\n tags: ['editor', 'neutral', 'paper', 'light'],\n primaryHue: 228,\n neutralTemp: 'neutral',\n accentMode: 'complementary',\n surface: 'crisp',\n },\n {\n id: 'quietlight',\n name: 'Quiet Light',\n description: 'Olive-green brand on warm cream — the soft, low-contrast Quiet Light.',\n tags: ['editor', 'warm', 'soft', 'light'],\n primaryHue: 110,\n neutralTemp: 'warm',\n accentMode: 'analogous',\n surface: 'soft',\n },\n];\n\n/* ===========================================================================\n * 2. SPECTRUM — systematic hue sweep filling the wheel.\n *\n * For a set of evenly-spaced hues (~every 24°), emit a few seeds varying the\n * accent mode / neutral temp / surface so the catalog covers the full circle\n * with diverse moods. Ids are `spectrum-{hue}-{accentInitial}{tempInitial}`,\n * e.g. `spectrum-204-ac` (hue 204, analogous, cool). Names are the hue's color\n * family + a descriptor so they read like real presets, not coordinates.\n * ========================================================================= */\n\n/** A point on the wheel: hue + a human color-family label. */\ninterface HueStop {\n hue: number;\n /** Color-family word used to name the spectrum presets at this hue. */\n family: string;\n /** Mood/lightness word that pairs with the family for the display name. */\n word: string;\n}\n\n/** Evenly-spaced stops around the wheel (~24° apart), each with a real name. */\nconst HUE_STOPS: HueStop[] = [\n { hue: 0, family: 'Scarlet', word: 'Ember' },\n { hue: 24, family: 'Coral', word: 'Flare' },\n { hue: 48, family: 'Marigold', word: 'Glow' },\n { hue: 72, family: 'Citron', word: 'Zest' },\n { hue: 96, family: 'Chartreuse', word: 'Sprout' },\n { hue: 120, family: 'Clover', word: 'Meadow' },\n { hue: 144, family: 'Jade', word: 'Grove' },\n { hue: 168, family: 'Spruce', word: 'Tide' },\n { hue: 192, family: 'Lagoon', word: 'Reef' },\n { hue: 216, family: 'Cerulean', word: 'Drift' },\n { hue: 240, family: 'Sapphire', word: 'Dusk' },\n { hue: 264, family: 'Iris', word: 'Nocturne' },\n { hue: 288, family: 'Orchid', word: 'Bloom' },\n { hue: 312, family: 'Fuchsia', word: 'Pulse' },\n { hue: 336, family: 'Magenta', word: 'Blush' },\n];\n\n/** Accent-mode → id initial + descriptive word for the description. */\nconst ACCENT_VARIANTS: { mode: ThemeSeed['accentMode']; init: string; word: string }[] = [\n { mode: 'complementary', init: 'x', word: 'complementary' },\n { mode: 'analogous', init: 'a', word: 'analogous' },\n { mode: 'triadic', init: 't', word: 'triadic' },\n];\n\n/** Neutral-temp → id initial + descriptive word. */\nconst TEMP_VARIANTS: { temp: ThemeSeed['neutralTemp']; init: string }[] = [\n { temp: 'cool', init: 'c' },\n { temp: 'warm', init: 'w' },\n];\n\n/**\n * Build the spectrum sweep: for each hue stop, cross (3 accent modes × 2 temps),\n * alternating surface so the pool isn't monotonous. 15 hues × 6 = 90 seeds.\n */\nfunction buildSpectrumSeeds(): ThemeSeed[] {\n const seeds: ThemeSeed[] = [];\n for (const stop of HUE_STOPS) {\n let i = 0;\n for (const accent of ACCENT_VARIANTS) {\n for (const temp of TEMP_VARIANTS) {\n // Alternate surface across the 6 variants for visual variety.\n const surface: ThemeSeed['surface'] = i % 2 === 0 ? 'crisp' : 'soft';\n const tempWord = temp.temp === 'cool' ? 'cool' : 'warm';\n seeds.push({\n id: `spectrum-${stop.hue}-${accent.init}${temp.init}`,\n name: `${stop.family} ${stop.word}`,\n description: `${stop.family} brand at hue ${stop.hue}° — ${accent.word} accent on ${tempWord} neutrals (${surface} surfaces).`,\n tags: ['spectrum', 'sweep', stop.family.toLowerCase(), tempWord, accent.word],\n primaryHue: stop.hue,\n neutralTemp: temp.temp,\n accentMode: accent.mode,\n surface,\n });\n i++;\n }\n }\n }\n return seeds;\n}\n\nconst SPECTRUM_SEEDS: ThemeSeed[] = buildSpectrumSeeds();\n\n/* ===========================================================================\n * Exported pool — named cohort first, then the spectrum sweep.\n * `registry.ts` appends this after the curated 24, all expanded via\n * `generateTheme` (→ `status: \"candidate\"`).\n * ========================================================================= */\n\n/** The full candidate pool seeds (named editor/brand palettes + hue sweep). */\nexport const POOL_SEEDS: ThemeSeed[] = [...NAMED_SEEDS, ...SPECTRUM_SEEDS];\n","/* ---------------------------------------------------------------------------\n * Curated theme registry.\n *\n * ~24 named presets. Every one is authored as a `ThemeSeed` and expanded through\n * `generateTheme`, so the whole catalog is contrast-validated the same way an\n * app's bespoke theme would be. Names nod to well-known palettes but the colors\n * are generated (not literal clones) — the seed captures the *vibe* (hue family,\n * neutral temperature, accent scheme, surface character).\n *\n * `THEMES` is the resolved array; `getTheme(id)` looks one up.\n * ------------------------------------------------------------------------- */\n\nimport type { Theme, ThemeSeed } from './Theme';\nimport { ThemeStatus } from './Theme';\nimport { generateTheme } from './generate';\nimport { VALIDATED_THEMES } from './validated';\nimport { POOL_SEEDS } from './pool';\n\n/** The authoring seeds. Order here = order in `THEMES` and the emitted stylesheet. */\nexport const THEME_SEEDS: ThemeSeed[] = [\n {\n id: 'wow',\n name: 'WoW',\n description: 'House blue — the @wow-two-beta/ui default vibe, regenerated in OKLCH.',\n tags: ['brand', 'default'],\n primaryHue: 264,\n neutralTemp: 'cool',\n accentMode: 'analogous',\n surface: 'crisp',\n },\n {\n id: 'midnight',\n name: 'Midnight',\n description: 'Deep indigo on cool slate — calm, focused, low-glare.',\n tags: ['cool', 'calm'],\n primaryHue: 268,\n neutralTemp: 'cool',\n accentMode: 'triadic',\n surface: 'soft',\n },\n {\n id: 'slate',\n name: 'Slate',\n description: 'Neutral steel-blue brand on balanced greys — quiet and professional.',\n tags: ['neutral', 'professional'],\n primaryHue: 235,\n neutralTemp: 'cool',\n accentMode: 'complementary',\n surface: 'crisp',\n },\n {\n id: 'ocean',\n name: 'Ocean',\n description: 'Azure brand with a teal accent over cool neutrals.',\n tags: ['cool', 'fresh'],\n primaryHue: 222,\n neutralTemp: 'cool',\n accentMode: 'analogous',\n surface: 'crisp',\n },\n {\n id: 'forest',\n name: 'Forest',\n description: 'Pine green brand, warm-leaning neutrals, earthy accent.',\n tags: ['nature', 'warm'],\n primaryHue: 150,\n neutralTemp: 'warm',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'emerald',\n name: 'Emerald',\n description: 'Vivid green-teal brand on crisp cool greys.',\n tags: ['nature', 'cool'],\n primaryHue: 165,\n neutralTemp: 'cool',\n accentMode: 'complementary',\n surface: 'crisp',\n },\n {\n id: 'sunset',\n name: 'Sunset',\n description: 'Warm orange brand with a violet accent — energetic dusk palette.',\n tags: ['warm', 'vibrant'],\n primaryHue: 42,\n neutralTemp: 'warm',\n accentMode: 'complementary',\n surface: 'crisp',\n },\n {\n id: 'amber',\n name: 'Amber',\n description: 'Golden brand on warm stone — cozy and grounded.',\n tags: ['warm', 'cozy'],\n primaryHue: 75,\n neutralTemp: 'warm',\n accentMode: 'triadic',\n surface: 'soft',\n },\n {\n id: 'rose',\n name: 'Rose',\n description: 'Soft crimson-pink brand with a warm neutral ground.',\n tags: ['warm', 'soft'],\n primaryHue: 12,\n neutralTemp: 'warm',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'crimson',\n name: 'Crimson',\n description: 'Bold red brand on neutral greys — high-impact and direct.',\n tags: ['warm', 'bold'],\n primaryHue: 25,\n neutralTemp: 'neutral',\n accentMode: 'complementary',\n surface: 'crisp',\n },\n {\n id: 'plum',\n name: 'Plum',\n description: 'Rich magenta-purple brand with a green accent.',\n tags: ['vibrant', 'cool'],\n primaryHue: 330,\n neutralTemp: 'cool',\n accentMode: 'complementary',\n surface: 'crisp',\n },\n {\n id: 'grape',\n name: 'Grape',\n description: 'Royal violet brand over cool neutrals, analogous accent.',\n tags: ['cool', 'vibrant'],\n primaryHue: 295,\n neutralTemp: 'cool',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'lavender',\n name: 'Lavender',\n description: 'Gentle violet brand, soft surfaces, low-glare.',\n tags: ['cool', 'soft'],\n primaryHue: 285,\n neutralTemp: 'cool',\n accentMode: 'triadic',\n surface: 'soft',\n },\n {\n id: 'teal',\n name: 'Teal',\n description: 'Balanced teal brand with a coral accent on neutral greys.',\n tags: ['cool', 'fresh'],\n primaryHue: 195,\n neutralTemp: 'neutral',\n accentMode: 'complementary',\n surface: 'crisp',\n },\n {\n id: 'cyan',\n name: 'Cyan',\n description: 'Bright cyan brand, cool neutrals, electric feel.',\n tags: ['cool', 'vibrant'],\n primaryHue: 210,\n neutralTemp: 'cool',\n accentMode: 'analogous',\n surface: 'crisp',\n },\n {\n id: 'mint',\n name: 'Mint',\n description: 'Light spring-green brand on soft cool greys.',\n tags: ['nature', 'soft'],\n primaryHue: 158,\n neutralTemp: 'neutral',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'nord',\n name: 'Nord',\n description: 'Arctic blue brand on desaturated cool slate — Nord-inspired.',\n tags: ['cool', 'calm', 'muted'],\n primaryHue: 213,\n neutralTemp: 'cool',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'solarized',\n name: 'Solarized',\n description: 'Cyan-blue brand on warm tan neutrals — Solarized-inspired balance.',\n tags: ['warm', 'muted'],\n primaryHue: 205,\n neutralTemp: 'warm',\n accentMode: 'complementary',\n surface: 'soft',\n },\n {\n id: 'dracula',\n name: 'Dracula',\n description: 'Purple brand with a pink-magenta accent on cool neutrals — Dracula-inspired.',\n tags: ['cool', 'vibrant'],\n primaryHue: 265,\n neutralTemp: 'cool',\n accentMode: 'triadic',\n surface: 'crisp',\n },\n {\n id: 'gruvbox',\n name: 'Gruvbox',\n description: 'Warm orange-amber brand on retro warm neutrals — Gruvbox-inspired.',\n tags: ['warm', 'retro', 'muted'],\n primaryHue: 50,\n neutralTemp: 'warm',\n accentMode: 'analogous',\n surface: 'soft',\n },\n {\n id: 'monokai',\n name: 'Monokai',\n description: 'Lime-green brand with a magenta accent on neutral greys — Monokai-inspired.',\n tags: ['vibrant', 'neutral'],\n primaryHue: 130,\n neutralTemp: 'neutral',\n accentMode: 'complementary',\n surface: 'crisp',\n },\n {\n id: 'mono',\n name: 'Mono',\n description: 'Achromatic — black/white brand on pure neutral greys. Minimal, content-first.',\n tags: ['neutral', 'minimal', 'grayscale'],\n primaryHue: 270,\n neutralTemp: 'neutral',\n accentMode: 'mono',\n surface: 'crisp',\n },\n {\n id: 'graphite',\n name: 'Graphite',\n description: 'Near-mono with a faint cool-blue brand — understated and dense.',\n tags: ['neutral', 'minimal'],\n primaryHue: 240,\n neutralTemp: 'cool',\n accentMode: 'mono',\n surface: 'crisp',\n },\n {\n id: 'sand',\n name: 'Sand',\n description: 'Warm taupe brand on soft sandy neutrals — paper-like and gentle.',\n tags: ['warm', 'soft', 'minimal'],\n primaryHue: 60,\n neutralTemp: 'warm',\n accentMode: 'mono',\n surface: 'soft',\n },\n];\n\n/**\n * Every candidate seed, in emit order: the curated 24 first, then the larger\n * diverse pool (named editor/brand palettes + the full-wheel hue sweep) from\n * `pool.ts`. Kept as a single list so `THEME_IDS`/`THEME_SEEDS` consumers and\n * the studio see the whole candidate catalog.\n */\nconst CANDIDATE_SEEDS: ThemeSeed[] = [...THEME_SEEDS, ...POOL_SEEDS];\n\n/**\n * The generator-built presets. AA-proven by the engine but not yet validated\n * against a real app surface → `generateTheme` stamps them `status: \"candidate\"`.\n */\nconst CANDIDATE_THEMES: Theme[] = CANDIDATE_SEEDS.map(generateTheme);\n\n/**\n * The full registry: validated (real-app-proven) themes FIRST, then the curated\n * candidate presets. Order here = order in the emitted stylesheet / manifest.\n */\nexport const THEMES: Theme[] = [...VALIDATED_THEMES, ...CANDIDATE_THEMES];\n\n/** Look up a theme by id. Returns `undefined` when absent. */\nexport function getTheme(id: string): Theme | undefined {\n return THEMES.find((t) => t.id === id);\n}\n\n/** Themes proven against a real app surface (`status === \"validated\"`). */\nexport function validatedThemes(): Theme[] {\n return THEMES.filter((t) => t.status === ThemeStatus.Validated);\n}\n\n/** Engine-proven curated presets not yet app-validated (`status === \"candidate\"`). */\nexport function candidateThemes(): Theme[] {\n return THEMES.filter((t) => t.status === ThemeStatus.Candidate);\n}\n\n/** Ids of all curated themes, in registry order. */\nexport const THEME_IDS: string[] = THEMES.map((t) => t.id);\n"]}
@@ -1,11 +1,11 @@
1
- import { Drawer, DrawerContent, DrawerTitle, DrawerDescription } from './chunk-X5JSX4PU.js';
2
- import { ModalContent, ModalClose, ModalFooter, ModalBody, ModalDescription, ModalTitle, ModalHeader, ModalTrigger, Modal } from './chunk-QTHKG7MQ.js';
3
- import { OverlayChromeProvider, OverlayDescription, OverlayTitle } from './chunk-OZBLEOLZ.js';
4
- import { Backdrop } from './chunk-VYFPLQPV.js';
5
- import { useControlled, useEscape } from './chunk-RNHY33US.js';
6
- import { surfaceVariants } from './chunk-XSW3NZDD.js';
7
- import { Slot, Presence, AnchoredPositioner, DismissableLayer, Portal, ScrollLockProvider, OverlayArrow } from './chunk-B4X7XXSM.js';
8
- import { cn, composeRefs } from './chunk-D4ZT36AZ.js';
1
+ import { Drawer, DrawerContent, DrawerTitle, DrawerDescription } from './chunk-QVY7SIMR.js';
2
+ import { ModalContent, ModalClose, ModalFooter, ModalBody, ModalDescription, ModalTitle, ModalHeader, ModalTrigger, Modal } from './chunk-5DRWPYQ2.js';
3
+ import { OverlayChromeProvider, OverlayDescription, OverlayTitle } from './chunk-GCBZ6FF7.js';
4
+ import { Backdrop } from './chunk-2L7KB7ZG.js';
5
+ import { useControlled, useEscape } from './chunk-2YBWJHVV.js';
6
+ import { surfaceVariants } from './chunk-TOB23IBK.js';
7
+ import { Slot, Presence, AnchoredPositioner, DismissableLayer, Portal, ScrollLockProvider, OverlayArrow } from './chunk-NY7OZGNY.js';
8
+ import { cn, composeRefs } from './chunk-PCRID2JL.js';
9
9
  import { forwardRef, createContext, useMemo, useState, useRef, useId, useEffect, useContext, useCallback, isValidElement, cloneElement } from 'react';
10
10
  import { jsx, jsxs } from 'react/jsx-runtime';
11
11
  import { FocusScope } from '@radix-ui/react-focus-scope';
@@ -637,5 +637,5 @@ var BottomSheet2 = Object.assign(BottomSheetRoot, {
637
637
  });
638
638
 
639
639
  export { ActionSheet, ActionSheetAction, ActionSheetCancel, AlertModal, AlertModalAction, AlertModalCancel, AlertModalContent, BottomSheet2 as BottomSheet, BottomSheetDescription, BottomSheetTitle, HoverCard, HoverCardArrow, HoverCardContent, HoverCardTrigger, Popover, PopoverArrow, PopoverContent, PopoverTrigger, useBottomSheet };
640
- //# sourceMappingURL=chunk-XFUD3RZK.js.map
641
- //# sourceMappingURL=chunk-XFUD3RZK.js.map
640
+ //# sourceMappingURL=chunk-FSKL2DAK.js.map
641
+ //# sourceMappingURL=chunk-FSKL2DAK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/presentation/overlays/alertModal/AlertModal.tsx","../src/presentation/overlays/popover/Popover.tsx","../src/presentation/overlays/hoverCard/HoverCard.tsx","../src/presentation/overlays/actionSheet/ActionSheet.tsx","../src/presentation/overlays/bottomSheet/BottomSheet.tsx"],"names":["AlertModalContent","AlertModalAction","AlertModalCancel","jsx","forwardRef","PopoverTrigger","PopoverContent","PopoverPortalRoot","createContext","useContext","useRef","useMemo","HoverCardPanel","HoverCardContent","ActionSheetAction","ActionSheetCancel","useState","useEffect","jsxs","FocusScope","BottomSheet"],"mappings":"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","file":"chunk-FSKL2DAK.js","sourcesContent":["import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from 'react';\nimport { cn } from '../../../foundation/utils';\nimport {\n Modal,\n ModalBody,\n ModalContent,\n ModalDescription,\n ModalFooter,\n ModalHeader,\n ModalTitle,\n ModalTrigger,\n ModalClose,\n type ModalProps,\n type ModalContentProps,\n} from '../modal';\n\nexport type AlertModalProps = Omit<ModalProps, 'role' | 'dismissOnOutsideClick'>;\n\nfunction AlertModalRoot(props: AlertModalProps) {\n return <Modal {...props} role=\"alertdialog\" dismissOnOutsideClick={false} />;\n}\nAlertModalRoot.displayName = 'AlertModal';\n\nexport const AlertModalContent = forwardRef<HTMLDivElement, ModalContentProps>(\n function AlertModalContent(props, ref) {\n return <ModalContent ref={ref} {...props} />;\n },\n);\n\nexport interface AlertModalActionProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n /** Runs before the dialog closes. */\n onAction?: () => void;\n children: ReactNode;\n}\n\nexport const AlertModalAction = forwardRef<HTMLButtonElement, AlertModalActionProps>(\n function AlertModalAction({ onAction, onClick, className, children, ...rest }, ref) {\n return (\n <ModalClose\n ref={ref}\n onClick={(e) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n onAction?.();\n }}\n className={cn(\n 'inline-flex h-9 items-center justify-center rounded-md bg-primary px-4 text-sm font-medium text-primary-foreground transition-colors hover:bg-primary/90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n className,\n )}\n {...rest}\n >\n {children}\n </ModalClose>\n );\n },\n);\n\nexport interface AlertModalCancelProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n children: ReactNode;\n}\n\nexport const AlertModalCancel = forwardRef<HTMLButtonElement, AlertModalCancelProps>(\n function AlertModalCancel({ className, children, ...rest }, ref) {\n return (\n <ModalClose\n ref={ref}\n className={cn(\n 'inline-flex h-9 items-center justify-center rounded-md border border-border bg-background px-4 text-sm font-medium text-foreground transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n className,\n )}\n {...rest}\n >\n {children}\n </ModalClose>\n );\n },\n);\n\nexport const AlertModal = Object.assign(AlertModalRoot, {\n Trigger: ModalTrigger,\n Content: AlertModalContent,\n Header: ModalHeader,\n Title: ModalTitle,\n Description: ModalDescription,\n Body: ModalBody,\n Footer: ModalFooter,\n Action: AlertModalAction,\n Cancel: AlertModalCancel,\n});\n\nexport default AlertModal;\n","import {\n createContext,\n forwardRef,\n useContext,\n useMemo,\n useRef,\n useState,\n type ButtonHTMLAttributes,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { cn, composeRefs, surfaceVariants, type SurfaceVariants } from '../../../foundation/utils';\nimport { useControlled } from '../../../foundation/hooks';\nimport {\n AnchoredPositioner,\n DismissableLayer,\n OverlayArrow,\n Portal,\n Presence,\n Slot,\n type AnchoredPositionerProps,\n type OverlayArrowProps,\n} from '../../../foundation/primitives';\n\ninterface PopoverContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n triggerRef: React.MutableRefObject<HTMLElement | null>;\n /** Trigger node held in state so an initially-open popover re-renders anchored. */\n triggerNode: HTMLElement | null;\n onTriggerChange: (node: HTMLElement | null) => void;\n placement: AnchoredPositionerProps['placement'];\n offset: number;\n dismissOnOutsideClick: boolean;\n dismissOnEscape: boolean;\n}\n\nconst PopoverContext = createContext<PopoverContextValue | null>(null);\n\nfunction usePopoverContext() {\n const ctx = useContext(PopoverContext);\n if (!ctx) throw new Error('Popover.* must be used inside <Popover>');\n return ctx;\n}\n\nexport interface PopoverProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n placement?: AnchoredPositionerProps['placement'];\n offset?: number;\n dismissOnOutsideClick?: boolean;\n dismissOnEscape?: boolean;\n children: ReactNode;\n}\n\nfunction PopoverRoot({\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n placement = 'bottom',\n offset = 8,\n dismissOnOutsideClick = true,\n dismissOnEscape = true,\n children,\n}: PopoverProps) {\n const [open, setOpen] = useControlled({\n controlled: openProp,\n default: defaultOpen,\n onChange: onOpenChange,\n });\n const triggerRef = useRef<HTMLElement | null>(null);\n const [triggerNode, setTriggerNode] = useState<HTMLElement | null>(null);\n\n const ctx = useMemo<PopoverContextValue>(\n () => ({\n open,\n setOpen,\n triggerRef,\n triggerNode,\n onTriggerChange: setTriggerNode,\n placement,\n offset,\n dismissOnOutsideClick,\n dismissOnEscape,\n }),\n [open, setOpen, triggerNode, placement, offset, dismissOnOutsideClick, dismissOnEscape],\n );\n\n return <PopoverContext.Provider value={ctx}>{children}</PopoverContext.Provider>;\n}\nPopoverRoot.displayName = 'Popover';\n\nexport interface PopoverTriggerProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n asChild?: boolean;\n children: ReactNode;\n}\n\nexport const PopoverTrigger = forwardRef<HTMLButtonElement, PopoverTriggerProps>(\n function PopoverTrigger({ asChild, onClick, children, ...rest }, forwardedRef) {\n const ctx = usePopoverContext();\n const { triggerRef, onTriggerChange } = ctx;\n const Component = asChild ? Slot : 'button';\n // Memoized so the callback ref isn't re-invoked (null → node) every render.\n const composedRef = useMemo(\n () =>\n composeRefs<HTMLButtonElement>(\n forwardedRef,\n triggerRef as React.MutableRefObject<HTMLButtonElement | null>,\n onTriggerChange,\n ),\n [forwardedRef, triggerRef, onTriggerChange],\n );\n return (\n <Component\n ref={composedRef as never}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={ctx.open}\n data-state={ctx.open ? 'open' : 'closed'}\n onClick={(e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n ctx.setOpen(!ctx.open);\n }}\n {...rest}\n >\n {children}\n </Component>\n );\n },\n);\n\n/** Represents the prop surface of the `Popover.Content`. */\nexport interface PopoverContentProps\n extends HTMLAttributes<HTMLDivElement>,\n SurfaceVariants {\n /** Skips the surface chrome (bg/border/shadow); keeps only z-index + animation. */\n isBare?: boolean;\n children: ReactNode;\n}\n\n/** Contains the default chrome width that preserves the historical look. */\nconst DEFAULT_WIDTH = 'w-72';\n\nexport const PopoverContent = forwardRef<HTMLDivElement, PopoverContentProps>(\n function PopoverContent(\n { isBare, variant, tone, radius, padding, elevation, className, children, ...rest },\n forwardedRef,\n ) {\n const ctx = usePopoverContext();\n /* Default to lg padding when chrome is on (matches old `p-4`); consumer can override. */\n const resolvedPadding = padding ?? (isBare ? 'none' : 'lg');\n return (\n <Presence isPresent={ctx.open}>\n {/* `Presence` injects ref + data-state onto this portal root and defers\n unmount until its exit anim ends. The panel pop is driven off this\n root's state via `group-data-[state=*]` on the surface below. */}\n <PopoverPortalRoot>\n {/* z-popover (80) on the SC root (transform makes the stacking context) so a\n popover from a Modal (z-modal, 70) paints above it — both portal to body. */}\n <AnchoredPositioner\n anchor={ctx.triggerNode}\n placement={ctx.placement}\n offset={ctx.offset}\n className=\"z-popover\"\n >\n <FocusScope asChild trapped loop>\n <DismissableLayer\n isEscapeDisabled={!ctx.dismissOnEscape}\n onEscape={() => {\n ctx.setOpen(false);\n requestAnimationFrame(() => ctx.triggerRef.current?.focus());\n }}\n isOutsideClickDisabled={!ctx.dismissOnOutsideClick}\n onOutsidePointerDown={(e) => {\n if (ctx.triggerRef.current?.contains(e.target as Node)) return;\n ctx.setOpen(false);\n }}\n >\n <div\n ref={forwardedRef}\n role=\"dialog\"\n className={cn(\n /* pop (fade+scale) gated on the portal-root data-state + motion-safe\n so reduced-motion users get no movement. */\n 'outline-none',\n 'motion-safe:group-data-[state=open]:animate-(--animate-pop-in)',\n 'motion-safe:group-data-[state=closed]:animate-(--animate-pop-out) motion-reduce:animate-none',\n !isBare &&\n cn(\n DEFAULT_WIDTH,\n surfaceVariants({\n variant,\n tone,\n radius,\n padding: resolvedPadding,\n elevation,\n }),\n ),\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n </DismissableLayer>\n </FocusScope>\n </AnchoredPositioner>\n </PopoverPortalRoot>\n </Presence>\n );\n },\n);\n\n/**\n * `Presence`-clonable root: a single element that accepts `ref` + `data-state`\n * (injected by `Presence`) and renders inside a `Portal`. Marked `group` so the\n * panel below animates off its `data-[state]`. Holds no layout of its own\n * (`display: contents`) so the anchored positioning of children is unaffected.\n */\nconst PopoverPortalRoot = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n function PopoverPortalRoot({ children, className, ...props }, ref) {\n return (\n <Portal>\n <div ref={ref} className={cn('group contents', className)} {...props}>\n {children}\n </div>\n </Portal>\n );\n },\n);\n\nexport function PopoverArrow({ className, ...rest }: OverlayArrowProps) {\n return <OverlayArrow className={cn('text-popover', className)} {...rest} />;\n}\n\nexport const Popover = Object.assign(PopoverRoot, {\n Trigger: PopoverTrigger,\n Content: PopoverContent,\n Arrow: PopoverArrow,\n});\n\nexport default Popover;\n","import {\n cloneElement,\n createContext,\n forwardRef,\n isValidElement,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n type HTMLAttributes,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from 'react';\nimport { cn, composeRefs } from '../../../foundation/utils';\nimport { useControlled, useEscape } from '../../../foundation/hooks';\nimport {\n AnchoredPositioner,\n OverlayArrow,\n Portal,\n Presence,\n type AnchoredPositionerProps,\n type OverlayArrowProps,\n} from '../../../foundation/primitives';\n\ninterface HoverCardContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n triggerRef: React.MutableRefObject<HTMLElement | null>;\n show: () => void;\n hide: () => void;\n cancelHide: () => void;\n placement: AnchoredPositionerProps['placement'];\n offset: number;\n}\n\nconst HoverCardContext = createContext<HoverCardContextValue | null>(null);\n\nfunction useHoverCardContext() {\n const ctx = useContext(HoverCardContext);\n if (!ctx) throw new Error('HoverCard.* must be used inside <HoverCard>');\n return ctx;\n}\n\nexport interface HoverCardProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n openDelay?: number;\n closeDelay?: number;\n placement?: AnchoredPositionerProps['placement'];\n offset?: number;\n children: ReactNode;\n}\n\nfunction HoverCardRoot({\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n openDelay = 700,\n closeDelay = 300,\n placement = 'bottom',\n offset = 8,\n children,\n}: HoverCardProps) {\n const [open, setOpen] = useControlled({\n controlled: openProp,\n default: defaultOpen,\n onChange: onOpenChange,\n });\n const triggerRef = useRef<HTMLElement | null>(null);\n const openTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n const closeTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const clear = useCallback(() => {\n if (openTimer.current) clearTimeout(openTimer.current);\n if (closeTimer.current) clearTimeout(closeTimer.current);\n openTimer.current = null;\n closeTimer.current = null;\n }, []);\n\n const show = useCallback(() => {\n clear();\n openTimer.current = setTimeout(() => setOpen(true), openDelay);\n }, [clear, openDelay, setOpen]);\n\n const hide = useCallback(() => {\n clear();\n closeTimer.current = setTimeout(() => setOpen(false), closeDelay);\n }, [clear, closeDelay, setOpen]);\n\n const cancelHide = useCallback(() => {\n if (closeTimer.current) {\n clearTimeout(closeTimer.current);\n closeTimer.current = null;\n }\n }, []);\n\n // Clear pending timers on unmount — avoids setState-after-unmount.\n useEffect(() => clear, [clear]);\n\n // WCAG 1.4.13 — hover content must be dismissible without moving the pointer.\n useEscape(() => {\n clear();\n setOpen(false);\n }, open);\n\n const ctx = useMemo<HoverCardContextValue>(\n () => ({ open, setOpen, triggerRef, show, hide, cancelHide, placement, offset }),\n [open, setOpen, show, hide, cancelHide, placement, offset],\n );\n\n return <HoverCardContext.Provider value={ctx}>{children}</HoverCardContext.Provider>;\n}\nHoverCardRoot.displayName = 'HoverCard';\n\nexport interface HoverCardTriggerProps {\n asChild?: boolean;\n children: ReactElement;\n}\n\nexport function HoverCardTrigger({ children }: HoverCardTriggerProps) {\n const ctx = useHoverCardContext();\n if (!isValidElement(children)) return children;\n const trigger = children as ReactElement<{\n ref?: Ref<HTMLElement>;\n onPointerEnter?: (e: React.PointerEvent) => void;\n onPointerLeave?: (e: React.PointerEvent) => void;\n onFocus?: (e: React.FocusEvent) => void;\n onBlur?: (e: React.FocusEvent) => void;\n }> & { ref?: Ref<HTMLElement> };\n\n return cloneElement(trigger, {\n ref: composeRefs((node: HTMLElement | null) => {\n ctx.triggerRef.current = node;\n }, trigger.ref),\n onPointerEnter: (e: React.PointerEvent) => {\n trigger.props.onPointerEnter?.(e);\n ctx.show();\n },\n onPointerLeave: (e: React.PointerEvent) => {\n trigger.props.onPointerLeave?.(e);\n ctx.hide();\n },\n onFocus: (e: React.FocusEvent) => {\n trigger.props.onFocus?.(e);\n ctx.show();\n },\n onBlur: (e: React.FocusEvent) => {\n trigger.props.onBlur?.(e);\n ctx.hide();\n },\n });\n}\n\nexport interface HoverCardContentProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\n/*\n * Presence clones its single child and injects `ref` + `data-state` onto it,\n * so that child must be the animated element. Portal/AnchoredPositioner can't\n * carry those props down to the styled div, so this forwardRef panel bridges\n * them: Presence drives this panel, the panel renders the Portal → positioner\n * tree, and forwards `ref` + the injected `data-state` (via `...rest`) onto the\n * inner div that carries the pop transition.\n */\nconst HoverCardPanel = forwardRef<HTMLDivElement, HoverCardContentProps>(\n function HoverCardPanel({ className, children, onPointerEnter, onPointerLeave, ...rest }, forwardedRef) {\n const ctx = useHoverCardContext();\n return (\n <Portal>\n <AnchoredPositioner\n anchor={ctx.triggerRef.current}\n placement={ctx.placement}\n offset={ctx.offset}\n className=\"z-dropdown\"\n >\n <div\n ref={forwardedRef}\n onPointerEnter={(e) => {\n onPointerEnter?.(e);\n ctx.cancelHide();\n }}\n onPointerLeave={(e) => {\n onPointerLeave?.(e);\n ctx.hide();\n }}\n className={cn(\n 'w-64 rounded-md border border-border bg-popover p-4 text-popover-foreground shadow-md outline-none',\n 'motion-safe:data-[state=open]:animate-(--animate-pop-in) motion-safe:data-[state=closed]:animate-(--animate-pop-out) motion-reduce:animate-none',\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n </AnchoredPositioner>\n </Portal>\n );\n },\n);\n\nexport const HoverCardContent = forwardRef<HTMLDivElement, HoverCardContentProps>(\n function HoverCardContent(props, forwardedRef) {\n const ctx = useHoverCardContext();\n return (\n <Presence isPresent={ctx.open}>\n <HoverCardPanel ref={forwardedRef} {...props} />\n </Presence>\n );\n },\n);\n\nexport function HoverCardArrow({ className, ...rest }: OverlayArrowProps) {\n return <OverlayArrow className={cn('text-popover', className)} {...rest} />;\n}\n\nexport const HoverCard = Object.assign(HoverCardRoot, {\n Trigger: HoverCardTrigger,\n Content: HoverCardContent,\n Arrow: HoverCardArrow,\n});\n\nexport default HoverCard;\n","import {\n createContext,\n forwardRef,\n useContext,\n useMemo,\n type ButtonHTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { cn } from '../../../foundation/utils';\nimport { useControlled } from '../../../foundation/hooks';\nimport { Drawer, DrawerContent, DrawerDescription, DrawerTitle } from '../drawer';\n\ninterface ActionSheetContextValue {\n setOpen: (open: boolean) => void;\n}\n\nconst ActionSheetContext = createContext<ActionSheetContextValue | null>(null);\n\nfunction useActionSheetContext() {\n const ctx = useContext(ActionSheetContext);\n if (!ctx) throw new Error('ActionSheet.* must be used inside <ActionSheet>');\n return ctx;\n}\n\nexport interface ActionSheetProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n title?: ReactNode;\n description?: ReactNode;\n className?: string;\n children: ReactNode;\n}\n\n/**\n * iOS-style action sheet — opinionated bottom Drawer with stacked button rows\n * and a separated Cancel.\n */\nfunction ActionSheetRoot({\n open,\n defaultOpen,\n onOpenChange,\n title,\n description,\n className,\n children,\n}: ActionSheetProps) {\n // ActionSheet owns open state + drives Drawer fully controlled, so `ctx.setOpen`\n // works in both controlled and uncontrolled modes (Drawer's context isn't interceptable).\n const [resolvedOpen, setOpen] = useControlled({\n controlled: open,\n default: defaultOpen ?? false,\n onChange: onOpenChange,\n });\n\n const ctx = useMemo<ActionSheetContextValue>(() => ({ setOpen }), [setOpen]);\n\n return (\n <ActionSheetContext.Provider value={ctx}>\n <Drawer open={resolvedOpen} onOpenChange={setOpen} side=\"bottom\">\n <DrawerContent\n className={cn(\n 'mx-auto max-w-md rounded-t-xl bg-card p-2 text-card-foreground',\n className,\n )}\n >\n {(title || description) && (\n <div className=\"px-3 py-2 text-center\">\n {title && (\n <DrawerTitle className=\"text-sm font-medium text-muted-foreground\">\n {title}\n </DrawerTitle>\n )}\n {description && (\n <DrawerDescription className=\"mt-1 text-xs text-muted-foreground\">\n {description}\n </DrawerDescription>\n )}\n </div>\n )}\n <div className=\"flex flex-col gap-px overflow-hidden rounded-lg bg-border\">\n {children}\n </div>\n </DrawerContent>\n </Drawer>\n </ActionSheetContext.Provider>\n );\n}\nActionSheetRoot.displayName = 'ActionSheet';\n\nexport interface ActionSheetActionProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n onSelect?: () => void;\n isDestructive?: boolean;\n}\n\nexport const ActionSheetAction = forwardRef<HTMLButtonElement, ActionSheetActionProps>(\n function ActionSheetAction(\n { className, onSelect, isDestructive, onClick, children, type = 'button', ...rest },\n ref,\n ) {\n const ctx = useActionSheetContext();\n return (\n <button\n ref={ref}\n type={type}\n onClick={(e) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n onSelect?.();\n ctx.setOpen(false);\n }}\n className={cn(\n 'flex h-12 w-full items-center justify-center bg-card px-4 text-base font-medium transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50',\n isDestructive ? 'text-destructive' : 'text-foreground',\n className,\n )}\n {...rest}\n >\n {children}\n </button>\n );\n },\n);\n\nexport type ActionSheetCancelProps = ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport const ActionSheetCancel = forwardRef<HTMLButtonElement, ActionSheetCancelProps>(\n function ActionSheetCancel({ className, onClick, children = 'Cancel', type = 'button', ...rest }, ref) {\n const ctx = useActionSheetContext();\n return (\n <button\n ref={ref}\n type={type}\n onClick={(e) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n ctx.setOpen(false);\n }}\n className={cn(\n 'mt-2 flex h-12 w-full items-center justify-center rounded-lg bg-card text-base font-semibold text-foreground shadow-sm transition-colors hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n className,\n )}\n {...rest}\n >\n {children}\n </button>\n );\n },\n);\n\nexport const ActionSheet = Object.assign(ActionSheetRoot, {\n Action: ActionSheetAction,\n Cancel: ActionSheetCancel,\n});\n\nexport default ActionSheet;\n","import {\n createContext,\n forwardRef,\n useContext,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type HTMLAttributes,\n type KeyboardEvent,\n type PointerEvent as ReactPointerEvent,\n type ReactNode,\n} from 'react';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { cn, surfaceVariants, type SurfaceVariants } from '../../../foundation/utils';\nimport { useControlled } from '../../../foundation/hooks';\nimport { DismissableLayer, Portal, Presence, ScrollLockProvider } from '../../../foundation/primitives';\nimport { Backdrop } from '../backdrop';\nimport {\n OverlayChromeProvider,\n OverlayDescription,\n OverlayTitle,\n type OverlayChromeContextValue,\n} from '../OverlayChrome';\n\ntype SnapPoint = number | string;\n\ninterface BottomSheetContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n currentSnap: number;\n setCurrentSnap: (i: number) => void;\n snapPoints: SnapPoint[];\n}\n\nconst BottomSheetContext = createContext<BottomSheetContextValue | null>(null);\n\nexport function useBottomSheet() {\n const ctx = useContext(BottomSheetContext);\n if (!ctx) throw new Error('useBottomSheet must be used inside <BottomSheet>');\n return ctx;\n}\n\nfunction resolveSnapPx(point: SnapPoint, viewport: number): number {\n if (typeof point === 'number') return point;\n const trimmed = point.trim();\n if (trimmed.endsWith('vh')) return (parseFloat(trimmed) / 100) * viewport;\n if (trimmed.endsWith('px')) return parseFloat(trimmed);\n if (trimmed.endsWith('%')) return (parseFloat(trimmed) / 100) * viewport;\n // Fallback: try parseFloat as px.\n const n = parseFloat(trimmed);\n return Number.isFinite(n) ? n : 0;\n}\n\n/** Represents the prop surface of `BottomSheet`. */\nexport interface BottomSheetProps extends HTMLAttributes<HTMLDivElement>, SurfaceVariants {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n snapPoints?: SnapPoint[];\n initialSnap?: number;\n dismissOnOutsideClick?: boolean;\n dismissOnEscape?: boolean;\n dragToDismiss?: boolean;\n children: ReactNode;\n}\n\n/**\n * Mobile bottom sheet with drag handle + snap points. Pointer-event drag\n * between heights; releasing snaps to the nearest point. Past the lowest\n * snap with `dragToDismiss`, the sheet closes.\n */\nconst BottomSheetRoot = forwardRef<HTMLDivElement, BottomSheetProps>(function BottomSheet(\n {\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n snapPoints = ['40vh', '90vh'],\n initialSnap = 0,\n dismissOnOutsideClick = true,\n dismissOnEscape = true,\n dragToDismiss = true,\n variant,\n tone,\n radius,\n padding,\n elevation,\n className,\n children,\n ...rest\n },\n forwardedRef,\n) {\n const [open, setOpen] = useControlled({\n controlled: openProp,\n default: defaultOpen,\n onChange: onOpenChange,\n });\n const [currentSnap, setCurrentSnap] = useState(\n Math.min(initialSnap, snapPoints.length - 1),\n );\n const sheetRef = useRef<HTMLDivElement | null>(null);\n const startYRef = useRef<number | null>(null);\n const startHeightRef = useRef(0);\n const [dragHeight, setDragHeight] = useState<number | null>(null);\n // Keeps the portal subtree (scroll lock + backdrop + sheet) mounted while the\n // exit animation plays after `open` flips false; the per-node <Presence>\n // wrappers defer their own unmount, and this flag releases the scroll lock\n // only once they've finished. Mirrors the \"open OR exiting\" gate other\n // overlays use, while preserving the no-lock-when-closed behavior.\n const [isExiting, setIsExiting] = useState(false);\n const titleId = useId();\n const descriptionId = useId();\n\n // Reset to initialSnap each time we re-open.\n useEffect(() => {\n if (open) setCurrentSnap(Math.min(initialSnap, snapPoints.length - 1));\n }, [open, initialSnap, snapPoints.length]);\n\n // Drive the trailing-mount flag: opening clears it; closing holds the subtree\n // mounted for one exit cycle (longest motion token = base duration) so the\n // slide-down + backdrop fade can play, then drops it to release scroll lock.\n useEffect(() => {\n if (open) {\n setIsExiting(false);\n return;\n }\n setIsExiting(true);\n const timer = window.setTimeout(() => setIsExiting(false), 320);\n return () => window.clearTimeout(timer);\n }, [open]);\n\n const ctx = useMemo<BottomSheetContextValue>(\n () => ({ open, setOpen, currentSnap, setCurrentSnap, snapPoints }),\n [open, setOpen, currentSnap, snapPoints],\n );\n\n const chromeCtx = useMemo<OverlayChromeContextValue>(\n () => ({ titleId, descriptionId, close: () => setOpen(false) }),\n [titleId, descriptionId, setOpen],\n );\n\n const handlePointerDown = (e: ReactPointerEvent<HTMLDivElement>) => {\n startYRef.current = e.clientY;\n const rect = sheetRef.current?.getBoundingClientRect();\n startHeightRef.current = rect ? rect.height : 0;\n (e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);\n };\n\n const handlePointerMove = (e: ReactPointerEvent<HTMLDivElement>) => {\n if (startYRef.current == null) return;\n const dy = e.clientY - startYRef.current;\n setDragHeight(Math.max(0, startHeightRef.current - dy));\n };\n\n const handlePointerUp = (e: ReactPointerEvent<HTMLDivElement>) => {\n if (startYRef.current == null) return;\n startYRef.current = null;\n (e.currentTarget as HTMLElement).releasePointerCapture?.(e.pointerId);\n\n const viewport = typeof window !== 'undefined' ? window.innerHeight : 800;\n const heights = snapPoints.map((p) => resolveSnapPx(p, viewport));\n const liveHeight = dragHeight ?? heights[currentSnap] ?? 0;\n setDragHeight(null);\n\n // Below lowest snap by 60px → dismiss.\n if (dragToDismiss && liveHeight < (heights[0] ?? 0) - 60) {\n setOpen(false);\n return;\n }\n // Snap to nearest.\n let bestIdx = 0;\n let bestDist = Number.POSITIVE_INFINITY;\n heights.forEach((h, i) => {\n const d = Math.abs(h - liveHeight);\n if (d < bestDist) {\n bestDist = d;\n bestIdx = i;\n }\n });\n setCurrentSnap(bestIdx);\n };\n\n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'ArrowUp' && currentSnap < snapPoints.length - 1) {\n e.preventDefault();\n setCurrentSnap(currentSnap + 1);\n } else if (e.key === 'ArrowDown') {\n e.preventDefault();\n if (currentSnap > 0) setCurrentSnap(currentSnap - 1);\n else if (dragToDismiss) setOpen(false);\n }\n };\n\n // Mounted whenever open OR mid-exit — the <Presence> wrappers below defer\n // their own unmount until the slide-down / fade-out finishes.\n if (!open && !isExiting) return null;\n\n const heightStyle: string | number = (() => {\n if (dragHeight != null) return `${dragHeight}px`;\n const point = snapPoints[currentSnap];\n if (typeof point === 'number') return `${point}px`;\n return point ?? '40vh';\n })();\n\n return (\n <BottomSheetContext.Provider value={ctx}>\n <Portal>\n <ScrollLockProvider>\n {/* Backdrop in its own Presence so its fade-out plays before unmount;\n `Presence` injects `data-state` onto it and the fade tokens gate on it. */}\n <Presence isPresent={open}>\n <Backdrop\n isInline\n className={cn(\n 'motion-safe:data-[state=open]:animate-(--animate-fade-in)',\n 'motion-safe:data-[state=closed]:animate-(--animate-fade-out)',\n )}\n onClick={() => {\n if (dismissOnOutsideClick) setOpen(false);\n }}\n />\n </Presence>\n <FocusScope asChild trapped loop>\n <DismissableLayer\n isEscapeDisabled={!dismissOnEscape}\n onEscape={() => setOpen(false)}\n isOutsideClickDisabled\n >\n {/* The sheet panel is the Presence-animated node — it carries\n `data-state` (injected via {...props}) and the slide classes.\n FULL slide from the bottom edge: translate-y-full when closed,\n driven by `transition-transform` (the inline transition also\n carries `transform` so the height + slide animate together).\n Gated `motion-safe` + `motion-reduce` so reduced-motion users\n get no movement. */}\n <Presence isPresent={open}>\n <div\n ref={(el) => {\n sheetRef.current = el;\n if (typeof forwardedRef === 'function') forwardedRef(el);\n else if (forwardedRef) (forwardedRef as React.MutableRefObject<HTMLDivElement | null>).current = el;\n }}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n aria-describedby={descriptionId}\n style={{\n height: heightStyle,\n transition:\n dragHeight == null\n ? 'height 220ms ease-out, transform var(--duration-base) var(--ease-out)'\n : 'none',\n }}\n className={cn(\n 'fixed inset-x-0 bottom-0 z-modal flex flex-col rounded-t-xl border-t outline-none',\n 'will-change-transform',\n 'motion-safe:data-[state=closed]:translate-y-full',\n 'motion-reduce:translate-y-0',\n surfaceVariants({\n variant: variant ?? 'elevated',\n tone,\n radius: radius ?? 'none',\n padding: padding ?? 'none',\n elevation: elevation ?? 5,\n }),\n className,\n )}\n {...rest}\n >\n <div\n role=\"separator\"\n aria-orientation=\"horizontal\"\n aria-valuenow={currentSnap}\n aria-valuemin={0}\n aria-valuemax={snapPoints.length - 1}\n tabIndex={0}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n onPointerCancel={handlePointerUp}\n onKeyDown={handleKeyDown}\n className=\"flex h-7 cursor-ns-resize items-center justify-center focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring\"\n >\n <span className=\"h-1 w-10 rounded-full bg-border-strong\" aria-hidden=\"true\" />\n </div>\n <div className=\"flex-1 overflow-y-auto px-4 pb-4\">\n <OverlayChromeProvider value={chromeCtx}>{children}</OverlayChromeProvider>\n </div>\n </div>\n </Presence>\n </DismissableLayer>\n </FocusScope>\n </ScrollLockProvider>\n </Portal>\n </BottomSheetContext.Provider>\n );\n});\n\n// Re-export shared chrome under the BottomSheet namespace — they wire\n// `id={titleId}`/`id={descriptionId}` so the sheet's aria-labelledby/describedby resolve.\nexport const BottomSheetTitle = OverlayTitle;\nexport const BottomSheetDescription = OverlayDescription;\n\nexport const BottomSheet = Object.assign(BottomSheetRoot, {\n Title: BottomSheetTitle,\n Description: BottomSheetDescription,\n});\n\nexport default BottomSheet;\n"]}