@tosui/react 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/dist/components/Accordion/Accordion.d.ts +37 -0
  2. package/dist/components/Accordion/Accordion.d.ts.map +1 -0
  3. package/dist/components/Accordion/index.d.ts +3 -0
  4. package/dist/components/Accordion/index.d.ts.map +1 -0
  5. package/dist/components/Alert/Alert.d.ts +28 -0
  6. package/dist/components/Alert/Alert.d.ts.map +1 -0
  7. package/dist/components/Alert/index.d.ts +3 -0
  8. package/dist/components/Alert/index.d.ts.map +1 -0
  9. package/dist/components/Avatar/Avatar.d.ts +30 -0
  10. package/dist/components/Avatar/Avatar.d.ts.map +1 -0
  11. package/dist/components/Avatar/index.d.ts +3 -0
  12. package/dist/components/Avatar/index.d.ts.map +1 -0
  13. package/dist/components/Badge/Badge.d.ts +32 -0
  14. package/dist/components/Badge/Badge.d.ts.map +1 -0
  15. package/dist/components/Badge/index.d.ts +3 -0
  16. package/dist/components/Badge/index.d.ts.map +1 -0
  17. package/dist/components/Box/Box.d.ts +28 -28
  18. package/dist/components/Box/Box.d.ts.map +1 -1
  19. package/dist/components/Box/borders/borders.d.ts +18 -0
  20. package/dist/components/Box/borders/borders.d.ts.map +1 -0
  21. package/dist/components/Box/colors/colors.d.ts +14 -0
  22. package/dist/components/Box/colors/colors.d.ts.map +1 -0
  23. package/dist/components/Box/display/display.d.ts +14 -0
  24. package/dist/components/Box/display/display.d.ts.map +1 -0
  25. package/dist/components/Box/flexbox/flexbox.d.ts +26 -0
  26. package/dist/components/Box/flexbox/flexbox.d.ts.map +1 -0
  27. package/dist/components/Box/grid/grid.d.ts +12 -0
  28. package/dist/components/Box/grid/grid.d.ts.map +1 -0
  29. package/dist/components/Box/inset/inset.d.ts +21 -0
  30. package/dist/components/Box/inset/inset.d.ts.map +1 -0
  31. package/dist/components/Box/interactions/interactions.d.ts +14 -0
  32. package/dist/components/Box/interactions/interactions.d.ts.map +1 -0
  33. package/dist/components/Box/margin/margin.d.ts +21 -0
  34. package/dist/components/Box/margin/margin.d.ts.map +1 -0
  35. package/dist/components/Box/opacity/opacity.d.ts +14 -0
  36. package/dist/components/Box/opacity/opacity.d.ts.map +1 -0
  37. package/dist/components/Box/overflow/overflow.d.ts +16 -0
  38. package/dist/components/Box/overflow/overflow.d.ts.map +1 -0
  39. package/dist/components/Box/padding/padding.d.ts +21 -0
  40. package/dist/components/Box/padding/padding.d.ts.map +1 -0
  41. package/dist/components/Box/position/position.d.ts +14 -0
  42. package/dist/components/Box/position/position.d.ts.map +1 -0
  43. package/dist/components/Box/reset/reset.d.ts +2 -0
  44. package/dist/components/Box/reset/reset.d.ts.map +1 -0
  45. package/dist/components/Box/roundness/roundness.d.ts +18 -0
  46. package/dist/components/Box/roundness/roundness.d.ts.map +1 -0
  47. package/dist/components/Box/shadows/shadows.d.ts +14 -0
  48. package/dist/components/Box/shadows/shadows.d.ts.map +1 -0
  49. package/dist/components/Box/shared/constants.d.ts +16 -0
  50. package/dist/components/Box/shared/constants.d.ts.map +1 -0
  51. package/dist/components/Box/shared/index.d.ts +4 -0
  52. package/dist/components/Box/shared/index.d.ts.map +1 -0
  53. package/dist/components/Box/shared/spacing.d.ts +10 -0
  54. package/dist/components/Box/shared/spacing.d.ts.map +1 -0
  55. package/dist/components/Box/shared/types.d.ts +7 -0
  56. package/dist/components/Box/shared/types.d.ts.map +1 -0
  57. package/dist/components/Box/sizing/sizing.d.ts +20 -0
  58. package/dist/components/Box/sizing/sizing.d.ts.map +1 -0
  59. package/dist/components/Box/text/text.d.ts +14 -0
  60. package/dist/components/Box/text/text.d.ts.map +1 -0
  61. package/dist/components/Box/typography/typography.d.ts +16 -0
  62. package/dist/components/Box/typography/typography.d.ts.map +1 -0
  63. package/dist/components/Box/zIndex/zIndex.d.ts +14 -0
  64. package/dist/components/Box/zIndex/zIndex.d.ts.map +1 -0
  65. package/dist/components/Breadcrumb/Breadcrumb.d.ts +34 -0
  66. package/dist/components/Breadcrumb/Breadcrumb.d.ts.map +1 -0
  67. package/dist/components/Breadcrumb/index.d.ts +3 -0
  68. package/dist/components/Breadcrumb/index.d.ts.map +1 -0
  69. package/dist/components/Button/Button.d.ts +30 -0
  70. package/dist/components/Button/Button.d.ts.map +1 -0
  71. package/dist/components/Button/index.d.ts +2 -0
  72. package/dist/components/Button/index.d.ts.map +1 -0
  73. package/dist/components/Card/Card.d.ts +56 -0
  74. package/dist/components/Card/Card.d.ts.map +1 -0
  75. package/dist/components/Card/index.d.ts +3 -0
  76. package/dist/components/Card/index.d.ts.map +1 -0
  77. package/dist/components/Checkbox/Checkbox.d.ts +37 -0
  78. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -0
  79. package/dist/components/Checkbox/index.d.ts +3 -0
  80. package/dist/components/Checkbox/index.d.ts.map +1 -0
  81. package/dist/components/Code/Code.d.ts +27 -0
  82. package/dist/components/Code/Code.d.ts.map +1 -0
  83. package/dist/components/Code/index.d.ts +2 -0
  84. package/dist/components/Code/index.d.ts.map +1 -0
  85. package/dist/components/Container/Container.d.ts +26 -0
  86. package/dist/components/Container/Container.d.ts.map +1 -0
  87. package/dist/components/Container/index.d.ts +2 -0
  88. package/dist/components/Container/index.d.ts.map +1 -0
  89. package/dist/components/Divider/Divider.d.ts +25 -0
  90. package/dist/components/Divider/Divider.d.ts.map +1 -0
  91. package/dist/components/Divider/index.d.ts +2 -0
  92. package/dist/components/Divider/index.d.ts.map +1 -0
  93. package/dist/components/Flex/Flex.d.ts +46 -0
  94. package/dist/components/Flex/Flex.d.ts.map +1 -0
  95. package/dist/components/Flex/index.d.ts +2 -0
  96. package/dist/components/Flex/index.d.ts.map +1 -0
  97. package/dist/components/FormField/FormField.d.ts +31 -0
  98. package/dist/components/FormField/FormField.d.ts.map +1 -0
  99. package/dist/components/FormField/index.d.ts +3 -0
  100. package/dist/components/FormField/index.d.ts.map +1 -0
  101. package/dist/components/Grid/Grid.d.ts +40 -0
  102. package/dist/components/Grid/Grid.d.ts.map +1 -0
  103. package/dist/components/Grid/index.d.ts +2 -0
  104. package/dist/components/Grid/index.d.ts.map +1 -0
  105. package/dist/components/HStack/HStack.d.ts +18 -0
  106. package/dist/components/HStack/HStack.d.ts.map +1 -0
  107. package/dist/components/HStack/index.d.ts +2 -0
  108. package/dist/components/HStack/index.d.ts.map +1 -0
  109. package/dist/components/IconButton/IconButton.d.ts +36 -0
  110. package/dist/components/IconButton/IconButton.d.ts.map +1 -0
  111. package/dist/components/IconButton/index.d.ts +3 -0
  112. package/dist/components/IconButton/index.d.ts.map +1 -0
  113. package/dist/components/Image/Image.d.ts +31 -0
  114. package/dist/components/Image/Image.d.ts.map +1 -0
  115. package/dist/components/Image/index.d.ts +3 -0
  116. package/dist/components/Image/index.d.ts.map +1 -0
  117. package/dist/components/Input/Input.d.ts +28 -0
  118. package/dist/components/Input/Input.d.ts.map +1 -0
  119. package/dist/components/Input/index.d.ts +2 -0
  120. package/dist/components/Input/index.d.ts.map +1 -0
  121. package/dist/components/Label/Label.d.ts +26 -0
  122. package/dist/components/Label/Label.d.ts.map +1 -0
  123. package/dist/components/Label/index.d.ts +2 -0
  124. package/dist/components/Label/index.d.ts.map +1 -0
  125. package/dist/components/Link/Link.d.ts +24 -0
  126. package/dist/components/Link/Link.d.ts.map +1 -0
  127. package/dist/components/Link/index.d.ts +3 -0
  128. package/dist/components/Link/index.d.ts.map +1 -0
  129. package/dist/components/List/List.d.ts +48 -0
  130. package/dist/components/List/List.d.ts.map +1 -0
  131. package/dist/components/List/index.d.ts +3 -0
  132. package/dist/components/List/index.d.ts.map +1 -0
  133. package/dist/components/Menu/Menu.d.ts +61 -0
  134. package/dist/components/Menu/Menu.d.ts.map +1 -0
  135. package/dist/components/Menu/index.d.ts +3 -0
  136. package/dist/components/Menu/index.d.ts.map +1 -0
  137. package/dist/components/Modal/Modal.d.ts +60 -0
  138. package/dist/components/Modal/Modal.d.ts.map +1 -0
  139. package/dist/components/Modal/index.d.ts +3 -0
  140. package/dist/components/Modal/index.d.ts.map +1 -0
  141. package/dist/components/Pagination/Pagination.d.ts +26 -0
  142. package/dist/components/Pagination/Pagination.d.ts.map +1 -0
  143. package/dist/components/Pagination/index.d.ts +3 -0
  144. package/dist/components/Pagination/index.d.ts.map +1 -0
  145. package/dist/components/Popover/Popover.d.ts +52 -0
  146. package/dist/components/Popover/Popover.d.ts.map +1 -0
  147. package/dist/components/Popover/index.d.ts +3 -0
  148. package/dist/components/Popover/index.d.ts.map +1 -0
  149. package/dist/components/Progress/Progress.d.ts +30 -0
  150. package/dist/components/Progress/Progress.d.ts.map +1 -0
  151. package/dist/components/Progress/index.d.ts +3 -0
  152. package/dist/components/Progress/index.d.ts.map +1 -0
  153. package/dist/components/Radio/Radio.d.ts +34 -0
  154. package/dist/components/Radio/Radio.d.ts.map +1 -0
  155. package/dist/components/Radio/index.d.ts +3 -0
  156. package/dist/components/Radio/index.d.ts.map +1 -0
  157. package/dist/components/Select/Select.d.ts +29 -0
  158. package/dist/components/Select/Select.d.ts.map +1 -0
  159. package/dist/components/Select/index.d.ts +3 -0
  160. package/dist/components/Select/index.d.ts.map +1 -0
  161. package/dist/components/Skeleton/Skeleton.d.ts +30 -0
  162. package/dist/components/Skeleton/Skeleton.d.ts.map +1 -0
  163. package/dist/components/Skeleton/index.d.ts +3 -0
  164. package/dist/components/Skeleton/index.d.ts.map +1 -0
  165. package/dist/components/Spacer/Spacer.d.ts +15 -0
  166. package/dist/components/Spacer/Spacer.d.ts.map +1 -0
  167. package/dist/components/Spacer/index.d.ts +2 -0
  168. package/dist/components/Spacer/index.d.ts.map +1 -0
  169. package/dist/components/Spinner/Spinner.d.ts +16 -0
  170. package/dist/components/Spinner/Spinner.d.ts.map +1 -0
  171. package/dist/components/Spinner/index.d.ts +2 -0
  172. package/dist/components/Spinner/index.d.ts.map +1 -0
  173. package/dist/components/Stack/Stack.d.ts +30 -0
  174. package/dist/components/Stack/Stack.d.ts.map +1 -0
  175. package/dist/components/Stack/index.d.ts +2 -0
  176. package/dist/components/Stack/index.d.ts.map +1 -0
  177. package/dist/components/Switch/Switch.d.ts +33 -0
  178. package/dist/components/Switch/Switch.d.ts.map +1 -0
  179. package/dist/components/Switch/index.d.ts +3 -0
  180. package/dist/components/Switch/index.d.ts.map +1 -0
  181. package/dist/components/Tabs/Tabs.d.ts +62 -0
  182. package/dist/components/Tabs/Tabs.d.ts.map +1 -0
  183. package/dist/components/Tabs/index.d.ts +3 -0
  184. package/dist/components/Tabs/index.d.ts.map +1 -0
  185. package/dist/components/Text/Text.d.ts +1 -1
  186. package/dist/components/Text/Text.d.ts.map +1 -1
  187. package/dist/components/Textarea/Textarea.d.ts +33 -0
  188. package/dist/components/Textarea/Textarea.d.ts.map +1 -0
  189. package/dist/components/Textarea/index.d.ts +2 -0
  190. package/dist/components/Textarea/index.d.ts.map +1 -0
  191. package/dist/components/Tooltip/Tooltip.d.ts +36 -0
  192. package/dist/components/Tooltip/Tooltip.d.ts.map +1 -0
  193. package/dist/components/Tooltip/index.d.ts +3 -0
  194. package/dist/components/Tooltip/index.d.ts.map +1 -0
  195. package/dist/components/VStack/VStack.d.ts +18 -0
  196. package/dist/components/VStack/VStack.d.ts.map +1 -0
  197. package/dist/components/VStack/index.d.ts +2 -0
  198. package/dist/components/VStack/index.d.ts.map +1 -0
  199. package/dist/index.css +1 -4721
  200. package/dist/index.d.ts +40 -1
  201. package/dist/index.d.ts.map +1 -1
  202. package/dist/index.js +5431 -2326
  203. package/dist/index.js.map +1 -1
  204. package/dist/utils/{breakpoints.stylex.d.ts → breakpoints.d.ts} +1 -13
  205. package/dist/utils/breakpoints.d.ts.map +1 -0
  206. package/package.json +10 -16
  207. package/dist/components/Box/styleParts/borders.d.ts +0 -97
  208. package/dist/components/Box/styleParts/borders.d.ts.map +0 -1
  209. package/dist/components/Box/styleParts/colors.d.ts +0 -288
  210. package/dist/components/Box/styleParts/colors.d.ts.map +0 -1
  211. package/dist/components/Box/styleParts/display.d.ts +0 -54
  212. package/dist/components/Box/styleParts/display.d.ts.map +0 -1
  213. package/dist/components/Box/styleParts/flexbox.d.ts +0 -174
  214. package/dist/components/Box/styleParts/flexbox.d.ts.map +0 -1
  215. package/dist/components/Box/styleParts/grid.d.ts +0 -45
  216. package/dist/components/Box/styleParts/grid.d.ts.map +0 -1
  217. package/dist/components/Box/styleParts/inset.d.ts +0 -22
  218. package/dist/components/Box/styleParts/inset.d.ts.map +0 -1
  219. package/dist/components/Box/styleParts/interactions.d.ts +0 -128
  220. package/dist/components/Box/styleParts/interactions.d.ts.map +0 -1
  221. package/dist/components/Box/styleParts/margin.d.ts +0 -22
  222. package/dist/components/Box/styleParts/margin.d.ts.map +0 -1
  223. package/dist/components/Box/styleParts/opacity.d.ts +0 -34
  224. package/dist/components/Box/styleParts/opacity.d.ts.map +0 -1
  225. package/dist/components/Box/styleParts/overflow.d.ts +0 -55
  226. package/dist/components/Box/styleParts/overflow.d.ts.map +0 -1
  227. package/dist/components/Box/styleParts/padding.d.ts +0 -22
  228. package/dist/components/Box/styleParts/padding.d.ts.map +0 -1
  229. package/dist/components/Box/styleParts/position.d.ts +0 -39
  230. package/dist/components/Box/styleParts/position.d.ts.map +0 -1
  231. package/dist/components/Box/styleParts/reset.d.ts +0 -28
  232. package/dist/components/Box/styleParts/reset.d.ts.map +0 -1
  233. package/dist/components/Box/styleParts/roundness.d.ts +0 -83
  234. package/dist/components/Box/styleParts/roundness.d.ts.map +0 -1
  235. package/dist/components/Box/styleParts/shadows.d.ts +0 -34
  236. package/dist/components/Box/styleParts/shadows.d.ts.map +0 -1
  237. package/dist/components/Box/styleParts/sizing.d.ts +0 -25
  238. package/dist/components/Box/styleParts/sizing.d.ts.map +0 -1
  239. package/dist/components/Box/styleParts/text.d.ts +0 -66
  240. package/dist/components/Box/styleParts/text.d.ts.map +0 -1
  241. package/dist/components/Box/styleParts/types.d.ts +0 -2
  242. package/dist/components/Box/styleParts/types.d.ts.map +0 -1
  243. package/dist/components/Box/styleParts/typography.d.ts +0 -130
  244. package/dist/components/Box/styleParts/typography.d.ts.map +0 -1
  245. package/dist/components/Box/styleParts/zIndex.d.ts +0 -49
  246. package/dist/components/Box/styleParts/zIndex.d.ts.map +0 -1
  247. package/dist/utils/breakpoints.stylex.d.ts.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/@stylexjs+stylex@0.17.2/node_modules/@stylexjs/stylex/lib/es/stylex.mjs","../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../src/components/Box/styleParts/reset.ts","../src/utils/breakpoints.stylex.ts","../src/components/Box/styleParts/display.ts","../src/components/Box/styleParts/position.ts","../src/components/Box/styleParts/overflow.ts","../src/components/Box/styleParts/zIndex.ts","../src/components/Box/styleParts/sizing.ts","../src/components/Box/styleParts/flexbox.ts","../src/components/Box/styleParts/grid.ts","../src/components/Box/styleParts/inset.ts","../src/components/Box/styleParts/typography.ts","../src/components/Box/styleParts/colors.ts","../src/components/Box/styleParts/borders.ts","../src/components/Box/styleParts/roundness.ts","../src/components/Box/styleParts/shadows.ts","../src/components/Box/styleParts/interactions.ts","../src/components/Box/styleParts/text.ts","../src/components/Box/styleParts/opacity.ts","../src/components/Box/styleParts/padding.ts","../src/components/Box/styleParts/margin.ts","../src/components/Box/Box.tsx","../src/components/Text/Text.tsx","../src/components/Heading/Heading.tsx","../src/index.tsx"],"sourcesContent":["var styleq = {};\n\nvar hasRequiredStyleq;\n\nfunction requireStyleq () {\n\tif (hasRequiredStyleq) return styleq;\n\thasRequiredStyleq = 1;\n\n\tObject.defineProperty(styleq, \"__esModule\", {\n\t value: true\n\t});\n\tstyleq.styleq = void 0;\n\tvar cache = new WeakMap();\n\tvar compiledKey = '$$css';\n\tfunction createStyleq(options) {\n\t var disableCache;\n\t var disableMix;\n\t var transform;\n\t if (options != null) {\n\t disableCache = options.disableCache === true;\n\t disableMix = options.disableMix === true;\n\t transform = options.transform;\n\t }\n\t return function styleq() {\n\t var definedProperties = [];\n\t var className = '';\n\t var inlineStyle = null;\n\t var debugString = '';\n\t var nextCache = disableCache ? null : cache;\n\t var styles = new Array(arguments.length);\n\t for (var i = 0; i < arguments.length; i++) {\n\t styles[i] = arguments[i];\n\t }\n\t while (styles.length > 0) {\n\t var possibleStyle = styles.pop();\n\t if (possibleStyle == null || possibleStyle === false) {\n\t continue;\n\t }\n\t if (Array.isArray(possibleStyle)) {\n\t for (var _i = 0; _i < possibleStyle.length; _i++) {\n\t styles.push(possibleStyle[_i]);\n\t }\n\t continue;\n\t }\n\t var style = transform != null ? transform(possibleStyle) : possibleStyle;\n\t if (style.$$css != null) {\n\t var classNameChunk = '';\n\t if (nextCache != null && nextCache.has(style)) {\n\t var cacheEntry = nextCache.get(style);\n\t if (cacheEntry != null) {\n\t classNameChunk = cacheEntry[0];\n\t debugString = cacheEntry[2];\n\t definedProperties.push.apply(definedProperties, cacheEntry[1]);\n\t nextCache = cacheEntry[3];\n\t }\n\t } else {\n\t var definedPropertiesChunk = [];\n\t for (var prop in style) {\n\t var value = style[prop];\n\t if (prop === compiledKey) {\n\t var compiledKeyValue = style[prop];\n\t if (compiledKeyValue !== true) {\n\t debugString = debugString ? compiledKeyValue + '; ' + debugString : compiledKeyValue;\n\t }\n\t continue;\n\t }\n\t if (typeof value === 'string' || value === null) {\n\t if (!definedProperties.includes(prop)) {\n\t definedProperties.push(prop);\n\t if (nextCache != null) {\n\t definedPropertiesChunk.push(prop);\n\t }\n\t if (typeof value === 'string') {\n\t classNameChunk += classNameChunk ? ' ' + value : value;\n\t }\n\t }\n\t } else {\n\t console.error(\"styleq: \".concat(prop, \" typeof \").concat(String(value), \" is not \\\"string\\\" or \\\"null\\\".\"));\n\t }\n\t }\n\t if (nextCache != null) {\n\t var weakMap = new WeakMap();\n\t nextCache.set(style, [classNameChunk, definedPropertiesChunk, debugString, weakMap]);\n\t nextCache = weakMap;\n\t }\n\t }\n\t if (classNameChunk) {\n\t className = className ? classNameChunk + ' ' + className : classNameChunk;\n\t }\n\t } else {\n\t if (disableMix) {\n\t if (inlineStyle == null) {\n\t inlineStyle = {};\n\t }\n\t inlineStyle = Object.assign({}, style, inlineStyle);\n\t } else {\n\t var subStyle = null;\n\t for (var _prop in style) {\n\t var _value = style[_prop];\n\t if (_value !== undefined) {\n\t if (!definedProperties.includes(_prop)) {\n\t if (_value != null) {\n\t if (inlineStyle == null) {\n\t inlineStyle = {};\n\t }\n\t if (subStyle == null) {\n\t subStyle = {};\n\t }\n\t subStyle[_prop] = _value;\n\t }\n\t definedProperties.push(_prop);\n\t nextCache = null;\n\t }\n\t }\n\t }\n\t if (subStyle != null) {\n\t inlineStyle = Object.assign(subStyle, inlineStyle);\n\t }\n\t }\n\t }\n\t }\n\t var styleProps = [className, inlineStyle, debugString];\n\t return styleProps;\n\t };\n\t}\n\tvar styleq$1 = styleq.styleq = createStyleq();\n\tstyleq$1.factory = createStyleq;\n\treturn styleq;\n}\n\nvar styleqExports = /*@__PURE__*/ requireStyleq();\n\nconst errorForFn = name => new Error(`Unexpected 'stylex.${name}' call at runtime. Styles must be compiled by '@stylexjs/babel-plugin'.`);\nconst errorForType = key => errorForFn(`types.${key}`);\nconst create = function stylexCreate(_styles) {\n throw errorForFn('create');\n};\nconst createTheme = (_baseTokens, _overrides) => {\n throw errorForFn('createTheme');\n};\nconst defineConsts = function stylexDefineConsts(_styles) {\n throw errorForFn('defineConsts');\n};\nconst defineVars = function stylexDefineVars(_styles) {\n throw errorForFn('defineVars');\n};\nconst defineMarker = () => {\n throw errorForFn('defineMarker');\n};\nconst firstThatWorks = (..._styles) => {\n throw errorForFn('firstThatWorks');\n};\nconst keyframes = _keyframes => {\n throw errorForFn('keyframes');\n};\nconst positionTry = _positionTry => {\n throw errorForFn('positionTry');\n};\nfunction props(...styles) {\n const [className, style, dataStyleSrc] = styleqExports.styleq(styles);\n const result = {};\n if (className != null && className !== '') {\n result.className = className;\n }\n if (style != null && Object.keys(style).length > 0) {\n result.style = style;\n }\n if (dataStyleSrc != null && dataStyleSrc !== '') {\n result['data-style-src'] = dataStyleSrc;\n }\n return result;\n}\nconst viewTransitionClass = _viewTransitionClass => {\n throw errorForFn('viewTransitionClass');\n};\nconst defaultMarker = () => {\n throw errorForFn('defaultMarker');\n};\nconst when = {\n ancestor: _p => {\n throw errorForFn('when.ancestor');\n },\n descendant: _p => {\n throw errorForFn('when.descendant');\n },\n siblingBefore: _p => {\n throw errorForFn('when.siblingBefore');\n },\n siblingAfter: _p => {\n throw errorForFn('when.siblingAfter');\n },\n anySibling: _p => {\n throw errorForFn('when.anySibling');\n }\n};\nconst types = {\n angle: _v => {\n throw errorForType('angle');\n },\n color: _v => {\n throw errorForType('color');\n },\n url: _v => {\n throw errorForType('url');\n },\n image: _v => {\n throw errorForType('image');\n },\n integer: _v => {\n throw errorForType('integer');\n },\n lengthPercentage: _v => {\n throw errorForType('lengthPercentage');\n },\n length: _v => {\n throw errorForType('length');\n },\n percentage: _v => {\n throw errorForType('percentage');\n },\n number: _v => {\n throw errorForType('number');\n },\n resolution: _v => {\n throw errorForType('resolution');\n },\n time: _v => {\n throw errorForType('time');\n },\n transformFunction: _v => {\n throw errorForType('transformFunction');\n },\n transformList: _v => {\n throw errorForType('transformList');\n }\n};\nfunction _legacyMerge(...styles) {\n const [className] = styleqExports.styleq(styles);\n return className;\n}\n_legacyMerge.create = create;\n_legacyMerge.createTheme = createTheme;\n_legacyMerge.defineConsts = defineConsts;\n_legacyMerge.defineMarker = defineMarker;\n_legacyMerge.defineVars = defineVars;\n_legacyMerge.defaultMarker = defaultMarker;\n_legacyMerge.firstThatWorks = firstThatWorks;\n_legacyMerge.keyframes = keyframes;\n_legacyMerge.positionTry = positionTry;\n_legacyMerge.props = props;\n_legacyMerge.types = types;\n_legacyMerge.when = when;\n_legacyMerge.viewTransitionClass = viewTransitionClass;\nconst legacyMerge = _legacyMerge;\n\nexport { create, createTheme, defaultMarker, defineConsts, defineMarker, defineVars, firstThatWorks, keyframes, legacyMerge, positionTry, props, types, viewTransitionClass, when };\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import * as stylex from \"@stylexjs/stylex\";\n\nexport const resetStyles = stylex.create({\n base: {\n WebkitTapHighlightColor: \"transparent\",\n margin: 0,\n padding: 0,\n borderStyle: \"solid\",\n borderWidth: 0,\n textDecoration: \"none\",\n appearance: \"none\",\n backgroundColor: \"transparent\",\n boxSizing: \"border-box\",\n color: \"inherit\",\n fontFamily: \"var(--t-font-family-body)\",\n fontSize: \"var(--t-font-size-md)\",\n fontWeight: \"var(--t-font-weight-normal)\",\n lineHeight: \"var(--t-line-height-normal)\",\n },\n\n reducedMotion: {\n animationDuration: {\n \"@media (prefers-reduced-motion: reduce)\": \"0.01ms !important\",\n },\n transitionDuration: {\n \"@media (prefers-reduced-motion: reduce)\": \"0.01ms !important\",\n },\n },\n});\n","import * as stylex from \"@stylexjs/stylex\";\n\nexport const breakpoints = stylex.defineConsts({\n sm: \"@media (min-width: 640px) and (max-width: 767px)\",\n md: \"@media (min-width: 768px) and (max-width: 1023px)\",\n lg: \"@media (min-width: 1024px) and (max-width: 1279px)\",\n xl: \"@media (min-width: 1280px) and (max-width: 1535px)\",\n \"2xl\": \"@media (min-width: 1536px)\",\n});\n\nexport type ResponsiveObject<T> = {\n base?: T;\n sm?: T;\n md?: T;\n lg?: T;\n xl?: T;\n \"2xl\"?: T;\n};\n\nexport type FullResponsiveObject<T> = Required<ResponsiveObject<T>>;\n\n/**\n * Responsive value type utility\n * Accepts either a single value or an object with breakpoint keys\n *\n * @example\n * // Single value\n * fontSize=\"lg\"\n *\n * // Responsive object (mobile-first)\n * fontSize={{ base: \"sm\", md: \"lg\", xl: \"2xl\" }}\n */\nexport type ResponsiveValue<T> = T | ResponsiveObject<T>;\n\nexport function toFullResponsiveObject<T>(\n partial: ResponsiveObject<T>,\n defaultValue: T\n): FullResponsiveObject<T> {\n const base = partial.base ?? defaultValue;\n const sm = partial.sm ?? base;\n const md = partial.md ?? sm;\n const lg = partial.lg ?? md;\n const xl = partial.xl ?? lg;\n const _2xl = partial[\"2xl\"] ?? xl;\n\n return {\n base: base,\n sm: sm,\n md: md,\n lg: lg,\n xl: xl,\n \"2xl\": _2xl,\n } as const;\n}\n\ntype StylesCSSProperties = Exclude<\n Parameters<typeof stylex.viewTransitionClass>[0][\"group\"],\n undefined\n>;\n\ntype AllValue = \"inherit\" | \"initial\" | \"unset\" | null;\n\nexport type GetValuesForProperty<T extends keyof StylesCSSProperties> = Exclude<\n StylesCSSProperties[T],\n AllValue | undefined\n>;\n","import * as stylex from \"@stylexjs/stylex\";\nimport {\n breakpoints,\n type ResponsiveValue,\n type FullResponsiveObject,\n toFullResponsiveObject,\n} from \"../../../utils/breakpoints.stylex\";\n\ntype DisplayValues = keyof typeof displayStyles;\n\nexport type Display = ResponsiveValue<DisplayValues>;\n\nconst displayStyles = stylex.create({\n block: {\n display: \"block\",\n },\n flex: {\n display: \"flex\",\n },\n grid: {\n display: \"grid\",\n },\n inline: {\n display: \"inline\",\n },\n \"inline-block\": {\n display: \"inline-block\",\n },\n \"inline-flex\": {\n display: \"inline-flex\",\n },\n \"inline-grid\": {\n display: \"inline-grid\",\n },\n none: {\n display: \"none\",\n },\n});\n\nconst displayStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<DisplayValues>) => ({\n display: {\n // eslint-disable-next-line @stylexjs/valid-styles\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n});\n\nexport type DisplayProps = {\n display?: Display;\n};\n\nexport function getDisplayStyles(display?: Display) {\n if (!display) return undefined;\n\n return typeof display !== \"object\"\n ? displayStyles[display]\n : displayStylesResponsive.responsive(\n toFullResponsiveObject(display, \"block\")\n );\n}\n","import * as stylex from \"@stylexjs/stylex\";\nimport {\n breakpoints,\n type ResponsiveValue,\n type FullResponsiveObject,\n toFullResponsiveObject,\n} from \"../../../utils/breakpoints.stylex\";\n\ntype PositionValues = keyof typeof positionStyles;\n\nconst positionStyles = stylex.create({\n absolute: {\n position: \"absolute\",\n },\n fixed: {\n position: \"fixed\",\n },\n relative: {\n position: \"relative\",\n },\n static: {\n position: \"static\",\n },\n sticky: {\n position: \"sticky\",\n },\n});\n\nconst positionStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<PositionValues>) => ({\n position: {\n // eslint-disable-next-line @stylexjs/valid-styles\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n});\n\nexport type Position = ResponsiveValue<PositionValues>;\n\nexport type PositionProps = {\n position?: Position;\n};\n\nexport function getPositionStyles(position?: Position) {\n if (!position) return null;\n\n return typeof position !== \"object\"\n ? positionStyles[position]\n : positionStylesResponsive.responsive(\n toFullResponsiveObject(position, \"static\")\n );\n}\n","import * as stylex from \"@stylexjs/stylex\";\nimport {\n breakpoints,\n toFullResponsiveObject,\n type FullResponsiveObject,\n type ResponsiveValue,\n} from \"../../../utils/breakpoints.stylex\";\n\ntype OverflowValues = keyof typeof overflowStyles;\n\nconst DEFAULT_VALUE = \"visible\";\n\nconst overflowStyles = stylex.create({\n auto: {\n overflow: \"auto\",\n },\n hidden: {\n overflow: \"hidden\",\n },\n scroll: {\n overflow: \"scroll\",\n },\n visible: {\n overflow: \"visible\",\n },\n});\n\nconst overflowStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<OverflowValues>) => ({\n overflow: {\n // eslint-disable-next-line @stylexjs/valid-styles\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n});\n\nconst overflowXStyles = stylex.create({\n auto: {\n overflowX: \"auto\",\n },\n hidden: {\n overflowX: \"hidden\",\n },\n scroll: {\n overflowX: \"scroll\",\n },\n visible: {\n overflowX: \"visible\",\n },\n});\n\nconst overflowXStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<OverflowValues>) => ({\n overflowX: {\n // eslint-disable-next-line @stylexjs/valid-styles\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n});\n\nconst overflowYStyles = stylex.create({\n auto: {\n overflowY: \"auto\",\n },\n hidden: {\n overflowY: \"hidden\",\n },\n scroll: {\n overflowY: \"scroll\",\n },\n visible: {\n overflowY: \"visible\",\n },\n});\n\nconst overflowYStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<OverflowValues>) => ({\n overflowY: {\n // eslint-disable-next-line @stylexjs/valid-styles\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n});\n\nexport type OverflowProps = {\n overflow?: ResponsiveValue<OverflowValues>;\n overflowX?: OverflowValues;\n overflowY?: OverflowValues;\n};\n\nexport function getOverflowStyles({\n overflow,\n overflowX,\n overflowY,\n}: OverflowProps) {\n const styles = [];\n\n if (overflow) {\n styles.push(\n typeof overflow !== \"object\"\n ? overflowStyles[overflow]\n : overflowStylesResponsive.responsive(\n toFullResponsiveObject(overflow, DEFAULT_VALUE)\n )\n );\n }\n if (overflowX) {\n styles.push(\n typeof overflowX !== \"object\"\n ? overflowXStyles[overflowX]\n : overflowXStylesResponsive.responsive(\n toFullResponsiveObject(overflowX, DEFAULT_VALUE)\n )\n );\n }\n if (overflowY) {\n styles.push(\n typeof overflowY !== \"object\"\n ? overflowYStyles[overflowY]\n : overflowYStylesResponsive.responsive(\n toFullResponsiveObject(overflowY, DEFAULT_VALUE)\n )\n );\n }\n\n return styles;\n}\n","import * as stylex from \"@stylexjs/stylex\";\nimport {\n breakpoints,\n type ResponsiveValue,\n type FullResponsiveObject,\n toFullResponsiveObject,\n} from \"../../../utils/breakpoints.stylex\";\n\ntype ZIndexValues = keyof typeof zIndexStyles;\n\nconst ZINDEX_VALUES = {\n base: 0,\n behind: -1,\n dropdown: 1000,\n modal: 1200,\n sticky: 1100,\n toast: 1300,\n tooltip: 1400,\n} as const;\n\nconst zIndexStyles = stylex.create({\n base: {\n zIndex: ZINDEX_VALUES.base,\n },\n behind: {\n zIndex: ZINDEX_VALUES.behind,\n },\n dropdown: {\n zIndex: ZINDEX_VALUES.dropdown,\n },\n modal: {\n zIndex: ZINDEX_VALUES.modal,\n },\n sticky: {\n zIndex: ZINDEX_VALUES.sticky,\n },\n toast: {\n zIndex: ZINDEX_VALUES.toast,\n },\n tooltip: {\n zIndex: ZINDEX_VALUES.tooltip,\n },\n});\n\nconst zIndexStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<ZIndexValues>) => ({\n zIndex: {\n // eslint-disable-next-line @stylexjs/valid-styles\n default: ZINDEX_VALUES[value.base],\n [breakpoints.sm]: ZINDEX_VALUES[value.sm],\n [breakpoints.md]: ZINDEX_VALUES[value.md],\n [breakpoints.lg]: ZINDEX_VALUES[value.lg],\n [breakpoints.xl]: ZINDEX_VALUES[value.xl],\n [breakpoints[\"2xl\"]]: ZINDEX_VALUES[value[\"2xl\"]],\n },\n }),\n});\n\nexport type ZIndex = ResponsiveValue<ZIndexValues>;\n\nexport type ZIndexProps = {\n zIndex?: ZIndex;\n};\n\nexport function getZIndexStyles(zIndex?: ZIndex) {\n if (!zIndex) return null;\n\n return typeof zIndex !== \"object\"\n ? zIndexStyles[zIndex]\n : zIndexStylesResponsive.responsive(\n toFullResponsiveObject(zIndex, \"base\")\n );\n}\n","import * as stylex from \"@stylexjs/stylex\";\nimport {\n breakpoints,\n type ResponsiveValue,\n type ResponsiveObject,\n toFullResponsiveObject,\n} from \"../../../utils/breakpoints.stylex\";\nimport { type SpacingValue } from \"./types\";\n\nexport type SizeProps = {\n w?: ResponsiveValue<SpacingValue>;\n h?: ResponsiveValue<SpacingValue>;\n minW?: ResponsiveValue<SpacingValue>;\n maxW?: ResponsiveValue<SpacingValue>;\n minH?: ResponsiveValue<SpacingValue>;\n maxH?: ResponsiveValue<SpacingValue>;\n};\n\nconst sizingStyles = stylex.create({\n height: (value: string) => ({ height: value }),\n heightResponsive: (value: ResponsiveObject<string>) => ({\n height: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n maxHeight: (value: string) => ({ maxHeight: value }),\n maxHeightResponsive: (value: ResponsiveObject<string>) => ({\n maxHeight: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n maxWidth: (value: string) => ({ maxWidth: value }),\n maxWidthResponsive: (value: ResponsiveObject<string>) => ({\n maxWidth: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n minHeight: (value: string) => ({ minHeight: value }),\n minHeightResponsive: (value: ResponsiveObject<string>) => ({\n minHeight: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n minWidth: (value: string) => ({ minWidth: value }),\n minWidthResponsive: (value: ResponsiveObject<string>) => ({\n minWidth: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n width: (value: string) => ({ width: value }),\n widthResponsive: (value: ResponsiveObject<string>) => ({\n width: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n});\n\n// Helper to convert size value to CSS string\nfunction getRawValue(value?: SpacingValue): string | undefined {\n if (value === undefined) return undefined;\n if (typeof value === \"string\") return value;\n if (value === 0) return \"0\";\n return `calc(var(--t-spacing-unit) * ${value})`;\n}\n\nfunction getSizeProps(\n key: \"width\" | \"height\" | \"minWidth\" | \"maxWidth\" | \"minHeight\" | \"maxHeight\",\n value?: ResponsiveValue<SpacingValue>\n) {\n if (typeof value !== \"object\") {\n const rawValue = getRawValue(value);\n return typeof rawValue === \"string\"\n ? sizingStyles[key](rawValue)\n : undefined;\n }\n\n return sizingStyles[`${key}Responsive`](\n toFullResponsiveObject(\n {\n base: getRawValue(value.base),\n sm: getRawValue(value.sm),\n md: getRawValue(value.md),\n lg: getRawValue(value.lg),\n xl: getRawValue(value.xl),\n \"2xl\": getRawValue(value[\"2xl\"]),\n },\n \"auto\"\n )\n );\n}\n\n// Helper function to get all sizing styles for a component\nexport function getSizingStyles(props: SizeProps) {\n const { w, h, minW, maxW, minH, maxH } = props;\n\n const width = getSizeProps(\"width\", w);\n const height = getSizeProps(\"height\", h);\n const minWidth = getSizeProps(\"minWidth\", minW);\n const maxWidth = getSizeProps(\"maxWidth\", maxW);\n const minHeight = getSizeProps(\"minHeight\", minH);\n const maxHeight = getSizeProps(\"maxHeight\", maxH);\n\n const styles = [];\n\n if (width !== undefined) {\n styles.push(width);\n }\n if (height !== undefined) {\n styles.push(height);\n }\n if (minWidth !== undefined) {\n styles.push(minWidth);\n }\n if (maxWidth !== undefined) {\n styles.push(maxWidth);\n }\n if (minHeight !== undefined) {\n styles.push(minHeight);\n }\n if (maxHeight !== undefined) {\n styles.push(maxHeight);\n }\n\n return styles;\n}\n","import * as stylex from \"@stylexjs/stylex\";\nimport {\n breakpoints,\n type ResponsiveValue,\n type ResponsiveObject,\n type FullResponsiveObject,\n toFullResponsiveObject,\n} from \"../../../utils/breakpoints.stylex\";\nimport { type SpacingValue } from \"./types\";\n\ntype FlexDirectionValues = keyof typeof flexDirectionStyles;\ntype JustifyContentValues = keyof typeof justifyContentStyles;\ntype AlignItemsValues = keyof typeof alignItemsStyles;\ntype AlignSelfValues = keyof typeof alignSelfStyles;\ntype FlexWrapValues = keyof typeof flexWrapStyles;\n\nconst flexDirectionStyles = stylex.create({\n column: {\n flexDirection: \"column\",\n },\n \"column-reverse\": {\n flexDirection: \"column-reverse\",\n },\n row: {\n flexDirection: \"row\",\n },\n \"row-reverse\": {\n flexDirection: \"row-reverse\",\n },\n});\n\nconst flexDirectionStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<FlexDirectionValues>) => ({\n flexDirection: {\n // eslint-disable-next-line @stylexjs/valid-styles\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n});\n\nconst justifyContentStyles = stylex.create({\n center: {\n justifyContent: \"center\",\n },\n end: {\n justifyContent: \"end\",\n },\n \"space-around\": {\n justifyContent: \"space-around\",\n },\n \"space-between\": {\n justifyContent: \"space-between\",\n },\n \"space-evenly\": {\n justifyContent: \"space-evenly\",\n },\n start: {\n justifyContent: \"start\",\n },\n});\n\nconst justifyContentStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<JustifyContentValues>) => ({\n justifyContent: {\n // eslint-disable-next-line @stylexjs/valid-styles\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n});\n\nconst alignItemsStyles = stylex.create({\n baseline: {\n alignItems: \"baseline\",\n },\n center: {\n alignItems: \"center\",\n },\n end: {\n alignItems: \"end\",\n },\n start: {\n alignItems: \"start\",\n },\n stretch: {\n alignItems: \"stretch\",\n },\n});\n\nconst alignItemsStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<AlignItemsValues>) => ({\n alignItems: {\n // eslint-disable-next-line @stylexjs/valid-styles\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n});\n\nconst alignSelfStyles = stylex.create({\n auto: {\n alignSelf: \"auto\",\n },\n baseline: {\n alignSelf: \"baseline\",\n },\n center: {\n alignSelf: \"center\",\n },\n end: {\n alignSelf: \"end\",\n },\n start: {\n alignSelf: \"start\",\n },\n stretch: {\n alignSelf: \"stretch\",\n },\n});\n\nconst alignSelfStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<AlignSelfValues>) => ({\n alignSelf: {\n // eslint-disable-next-line @stylexjs/valid-styles\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n});\n\nconst flexWrapStyles = stylex.create({\n nowrap: {\n flexWrap: \"nowrap\",\n },\n wrap: {\n flexWrap: \"wrap\",\n },\n \"wrap-reverse\": {\n flexWrap: \"wrap-reverse\",\n },\n});\n\nconst flexWrapStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<FlexWrapValues>) => ({\n flexWrap: {\n // eslint-disable-next-line @stylexjs/valid-styles\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n});\n\nconst dynamicFlexboxStyles = stylex.create({\n flex: (value: string) => ({ flex: value }),\n flexResponsive: (value: ResponsiveObject<string>) => ({\n flex: {\n // eslint-disable-next-line @stylexjs/valid-styles\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n gap: (value: string) => ({ gap: value }),\n gapResponsive: (value: ResponsiveObject<string>) => ({\n gap: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n});\n\nexport type FlexDirection = ResponsiveValue<FlexDirectionValues>;\nexport type JustifyContent = ResponsiveValue<JustifyContentValues>;\nexport type AlignItems = ResponsiveValue<AlignItemsValues>;\nexport type AlignSelf = ResponsiveValue<AlignSelfValues>;\nexport type FlexWrap = ResponsiveValue<FlexWrapValues>;\n\nexport type FlexboxProps = {\n gap?: ResponsiveValue<SpacingValue>;\n gapRow?: ResponsiveValue<SpacingValue>;\n gapColumn?: ResponsiveValue<SpacingValue>;\n justifyContent?: JustifyContent;\n alignItems?: AlignItems;\n alignSelf?: AlignSelf;\n flexDirection?: FlexDirection;\n flexWrap?: FlexWrap;\n flex?: ResponsiveValue<string>;\n flexGrow?: number;\n flexShrink?: number;\n flexBasis?: string;\n};\n\nfunction getSpacingValue(value?: SpacingValue): string {\n if (value === undefined) return \"normal\";\n if (typeof value === \"string\") return value;\n if (value === 0) return \"0\";\n return `calc(var(--t-spacing-unit) * ${value})`;\n}\n\nfunction getGapValue(\n gap?: ResponsiveValue<SpacingValue>,\n gapRow?: ResponsiveValue<SpacingValue>,\n gapColumn?: ResponsiveValue<SpacingValue>\n) {\n if (gap === undefined && gapRow === undefined && gapColumn === undefined) {\n return undefined;\n }\n\n const isResponsive =\n typeof gap === \"object\" ||\n typeof gapRow === \"object\" ||\n typeof gapColumn === \"object\";\n\n if (!isResponsive) {\n const row = gapRow ?? gap;\n const column = gapColumn ?? gap;\n const rowValue = getSpacingValue(row);\n const columnValue = getSpacingValue(column);\n const gapValue =\n rowValue === columnValue ? rowValue : `${rowValue} ${columnValue}`;\n return dynamicFlexboxStyles.gap(gapValue);\n }\n\n const gapObj = typeof gap === \"object\" ? gap : {};\n const gapRowObj = typeof gapRow === \"object\" ? gapRow : {};\n const gapColumnObj = typeof gapColumn === \"object\" ? gapColumn : {};\n\n const calculateGapForBreakpoint = (\n gapVal?: SpacingValue,\n rowVal?: SpacingValue,\n colVal?: SpacingValue\n ): string => {\n const row = rowVal ?? gapVal;\n const column = colVal ?? gapVal;\n const rowValue = getSpacingValue(row);\n const columnValue = getSpacingValue(column);\n return rowValue === columnValue ? rowValue : `${rowValue} ${columnValue}`;\n };\n\n return dynamicFlexboxStyles.gapResponsive(\n toFullResponsiveObject(\n {\n base: calculateGapForBreakpoint(\n typeof gap === \"object\" ? gap.base : gap,\n typeof gapRow === \"object\" ? gapRow.base : gapRow,\n typeof gapColumn === \"object\" ? gapColumn.base : gapColumn\n ),\n sm: calculateGapForBreakpoint(gapObj.sm, gapRowObj.sm, gapColumnObj.sm),\n md: calculateGapForBreakpoint(gapObj.md, gapRowObj.md, gapColumnObj.md),\n lg: calculateGapForBreakpoint(gapObj.lg, gapRowObj.lg, gapColumnObj.lg),\n xl: calculateGapForBreakpoint(gapObj.xl, gapRowObj.xl, gapColumnObj.xl),\n \"2xl\": calculateGapForBreakpoint(\n gapObj[\"2xl\"],\n gapRowObj[\"2xl\"],\n gapColumnObj[\"2xl\"]\n ),\n },\n \"normal\"\n )\n );\n}\n\nfunction getFlexValue(\n flex?: ResponsiveValue<string>,\n flexGrow?: number,\n flexShrink?: number,\n flexBasis?: string\n) {\n if (flex !== undefined) {\n if (typeof flex !== \"object\") {\n return dynamicFlexboxStyles.flex(flex);\n }\n return dynamicFlexboxStyles.flexResponsive(\n toFullResponsiveObject(flex, \"0 1 auto\")\n );\n }\n\n if (\n flexGrow === undefined &&\n flexShrink === undefined &&\n flexBasis === undefined\n ) {\n return undefined;\n }\n\n const grow = flexGrow ?? 0;\n const shrink = flexShrink ?? 1;\n const basis = flexBasis ?? \"auto\";\n return dynamicFlexboxStyles.flex(`${grow} ${shrink} ${basis}`);\n}\n\nexport function getFlexboxStyles(props: FlexboxProps) {\n const {\n flexDirection,\n justifyContent,\n alignItems,\n alignSelf,\n flexWrap,\n gap,\n gapRow,\n gapColumn,\n flex,\n flexGrow,\n flexShrink,\n flexBasis,\n } = props;\n\n const styles = [];\n\n if (flexDirection) {\n styles.push(\n typeof flexDirection !== \"object\"\n ? flexDirectionStyles[flexDirection]\n : flexDirectionStylesResponsive.responsive(\n toFullResponsiveObject(flexDirection, \"row\")\n )\n );\n }\n\n if (justifyContent) {\n styles.push(\n typeof justifyContent !== \"object\"\n ? justifyContentStyles[justifyContent]\n : justifyContentStylesResponsive.responsive(\n toFullResponsiveObject(justifyContent, \"start\")\n )\n );\n }\n\n if (alignItems) {\n styles.push(\n typeof alignItems !== \"object\"\n ? alignItemsStyles[alignItems]\n : alignItemsStylesResponsive.responsive(\n toFullResponsiveObject(alignItems, \"stretch\")\n )\n );\n }\n\n if (alignSelf) {\n styles.push(\n typeof alignSelf !== \"object\"\n ? alignSelfStyles[alignSelf]\n : alignSelfStylesResponsive.responsive(\n toFullResponsiveObject(alignSelf, \"auto\")\n )\n );\n }\n\n if (flexWrap) {\n styles.push(\n typeof flexWrap !== \"object\"\n ? flexWrapStyles[flexWrap]\n : flexWrapStylesResponsive.responsive(\n toFullResponsiveObject(flexWrap, \"nowrap\")\n )\n );\n }\n\n const gapStyle = getGapValue(gap, gapRow, gapColumn);\n\n if (gapStyle) {\n styles.push(gapStyle);\n }\n\n const flexStyle = getFlexValue(flex, flexGrow, flexShrink, flexBasis);\n\n if (flexStyle) {\n styles.push(flexStyle);\n }\n\n return styles;\n}\n","import * as stylex from \"@stylexjs/stylex\";\nimport {\n breakpoints,\n type ResponsiveValue,\n type ResponsiveObject,\n type FullResponsiveObject,\n toFullResponsiveObject,\n} from \"../../../utils/breakpoints.stylex\";\n\ntype JustifySelfValues = keyof typeof justifySelfStyles;\n\nconst justifySelfStyles = stylex.create({\n auto: {\n justifySelf: \"auto\",\n },\n center: {\n justifySelf: \"center\",\n },\n end: {\n justifySelf: \"end\",\n },\n start: {\n justifySelf: \"start\",\n },\n stretch: {\n justifySelf: \"stretch\",\n },\n});\n\nconst justifySelfStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<JustifySelfValues>) => ({\n justifySelf: {\n // eslint-disable-next-line @stylexjs/valid-styles\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n});\n\nconst dynamicGridStyles = stylex.create({\n gridTemplateColumns: (value: string) => ({ gridTemplateColumns: value }),\n gridTemplateColumnsResponsive: (value: ResponsiveObject<string>) => ({\n gridTemplateColumns: {\n // eslint-disable-next-line @stylexjs/valid-styles\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n gridTemplateRows: (value: string) => ({ gridTemplateRows: value }),\n gridTemplateRowsResponsive: (value: ResponsiveObject<string>) => ({\n gridTemplateRows: {\n // eslint-disable-next-line @stylexjs/valid-styles\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n});\n\nexport type JustifySelf = ResponsiveValue<JustifySelfValues>;\n\nexport type GridProps = {\n justifySelf?: JustifySelf;\n gridTemplateColumns?: ResponsiveValue<string>;\n gridTemplateRows?: ResponsiveValue<string>;\n};\n\nexport function getGridStyles(props: GridProps) {\n const { justifySelf, gridTemplateColumns, gridTemplateRows } = props;\n\n const styles = [];\n\n if (justifySelf !== undefined) {\n styles.push(\n typeof justifySelf !== \"object\"\n ? justifySelfStyles[justifySelf]\n : justifySelfStylesResponsive.responsive(\n toFullResponsiveObject(justifySelf, \"auto\")\n )\n );\n }\n\n if (gridTemplateColumns !== undefined) {\n styles.push(\n typeof gridTemplateColumns !== \"object\"\n ? dynamicGridStyles.gridTemplateColumns(gridTemplateColumns)\n : dynamicGridStyles.gridTemplateColumnsResponsive(\n toFullResponsiveObject(gridTemplateColumns, \"none\")\n )\n );\n }\n\n if (gridTemplateRows !== undefined) {\n styles.push(\n typeof gridTemplateRows !== \"object\"\n ? dynamicGridStyles.gridTemplateRows(gridTemplateRows)\n : dynamicGridStyles.gridTemplateRowsResponsive(\n toFullResponsiveObject(gridTemplateRows, \"none\")\n )\n );\n }\n\n return styles;\n}\n","import * as stylex from \"@stylexjs/stylex\";\nimport {\n breakpoints,\n type ResponsiveValue,\n type ResponsiveObject,\n toFullResponsiveObject,\n} from \"../../../utils/breakpoints.stylex\";\nimport { type SpacingValue } from \"./types\";\n\nexport type InsetProps = {\n inset?: ResponsiveValue<SpacingValue>;\n insetX?: ResponsiveValue<SpacingValue>;\n insetY?: ResponsiveValue<SpacingValue>;\n top?: ResponsiveValue<SpacingValue>;\n right?: ResponsiveValue<SpacingValue>;\n bottom?: ResponsiveValue<SpacingValue>;\n left?: ResponsiveValue<SpacingValue>;\n};\n\nconst insetStyles = stylex.create({\n bottom: (value: string) => ({ bottom: value }),\n bottomResponsive: (value: ResponsiveObject<string>) => ({\n bottom: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n left: (value: string) => ({ left: value }),\n leftResponsive: (value: ResponsiveObject<string>) => ({\n left: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n right: (value: string) => ({ right: value }),\n rightResponsive: (value: ResponsiveObject<string>) => ({\n right: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n top: (value: string) => ({ top: value }),\n topResponsive: (value: ResponsiveObject<string>) => ({\n top: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n});\n\n// Helper to convert spacing value to CSS string\nfunction getRawValue(value?: SpacingValue): string | undefined {\n if (value === undefined) return undefined;\n if (typeof value === \"string\") return value;\n if (value === 0) return \"0\";\n return `calc(var(--t-spacing-unit) * ${value})`;\n}\n\nfunction getInsetProps(\n key: \"top\" | \"right\" | \"bottom\" | \"left\",\n value?: ResponsiveValue<SpacingValue>\n) {\n if (typeof value !== \"object\") {\n const rawValue = getRawValue(value);\n return typeof rawValue === \"string\"\n ? insetStyles[key](rawValue)\n : undefined;\n }\n\n return insetStyles[`${key}Responsive`](\n toFullResponsiveObject(\n {\n base: getRawValue(value.base),\n sm: getRawValue(value.sm),\n md: getRawValue(value.md),\n lg: getRawValue(value.lg),\n xl: getRawValue(value.xl),\n \"2xl\": getRawValue(value[\"2xl\"]),\n },\n \"0\"\n )\n );\n}\n\n// Helper function to get all inset styles for a component\n// Respects cascading specificity: specific (top/right/bottom/left) > axis (insetX/insetY) > all (inset)\nexport function getInsetStyles(props: InsetProps) {\n const { inset, insetX, insetY, top, right, bottom, left } = props;\n\n // Resolve with cascading specificity\n const topValue = getInsetProps(\"top\", top ?? insetY ?? inset);\n const rightValue = getInsetProps(\"right\", right ?? insetX ?? inset);\n const bottomValue = getInsetProps(\"bottom\", bottom ?? insetY ?? inset);\n const leftValue = getInsetProps(\"left\", left ?? insetX ?? inset);\n\n const styles = [];\n\n if (topValue !== undefined) {\n styles.push(topValue);\n }\n if (rightValue !== undefined) {\n styles.push(rightValue);\n }\n if (bottomValue !== undefined) {\n styles.push(bottomValue);\n }\n if (leftValue !== undefined) {\n styles.push(leftValue);\n }\n\n return styles;\n}\n","import * as stylex from \"@stylexjs/stylex\";\nimport {\n breakpoints,\n type ResponsiveValue,\n type FullResponsiveObject,\n toFullResponsiveObject,\n} from \"../../../utils/breakpoints.stylex\";\n\ntype FontSizeValues = keyof typeof fontSizeStyles;\ntype FontFamilyValues = keyof typeof fontFamilyStyles;\ntype FontWeightValues = keyof typeof fontWeightStyles;\ntype LineHeightValues = keyof typeof lineHeightStyles;\n\nconst fontSizeStyles = stylex.create({\n \"2xl\": {\n fontSize: \"var(--t-font-size-2xl)\",\n },\n \"3xl\": {\n fontSize: \"var(--t-font-size-3xl)\",\n },\n \"4xl\": {\n fontSize: \"var(--t-font-size-4xl)\",\n },\n \"5xl\": {\n fontSize: \"var(--t-font-size-5xl)\",\n },\n lg: {\n fontSize: \"var(--t-font-size-lg)\",\n },\n md: {\n fontSize: \"var(--t-font-size-md)\",\n },\n sm: {\n fontSize: \"var(--t-font-size-sm)\",\n },\n xl: {\n fontSize: \"var(--t-font-size-xl)\",\n },\n xs: {\n fontSize: \"var(--t-font-size-xs)\",\n },\n});\n\nconst fontSizeStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<FontSizeValues>) => ({\n fontSize: {\n default: `var(--t-font-size-${value.base})`,\n [breakpoints.sm]: `var(--t-font-size-${value.sm})`,\n [breakpoints.md]: `var(--t-font-size-${value.md})`,\n [breakpoints.lg]: `var(--t-font-size-${value.lg})`,\n [breakpoints.xl]: `var(--t-font-size-${value.xl})`,\n [breakpoints[\"2xl\"]]: `var(--t-font-size-${value[\"2xl\"]})`,\n },\n }),\n});\n\nconst fontFamilyStyles = stylex.create({\n body: {\n fontFamily: \"var(--t-font-family-body)\",\n },\n heading: {\n fontFamily: \"var(--t-font-family-heading)\",\n },\n mono: {\n fontFamily: \"var(--t-font-family-mono)\",\n },\n});\n\nconst fontFamilyStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<FontFamilyValues>) => ({\n fontFamily: {\n default: `var(--t-font-family-${value.base})`,\n [breakpoints.sm]: `var(--t-font-family-${value.sm})`,\n [breakpoints.md]: `var(--t-font-family-${value.md})`,\n [breakpoints.lg]: `var(--t-font-family-${value.lg})`,\n [breakpoints.xl]: `var(--t-font-family-${value.xl})`,\n [breakpoints[\"2xl\"]]: `var(--t-font-family-${value[\"2xl\"]})`,\n },\n }),\n});\n\nconst fontWeightStyles = stylex.create({\n bold: {\n fontWeight: \"var(--t-font-weight-bold)\",\n },\n medium: {\n fontWeight: \"var(--t-font-weight-medium)\",\n },\n normal: {\n fontWeight: \"var(--t-font-weight-normal)\",\n },\n semibold: {\n fontWeight: \"var(--t-font-weight-semibold)\",\n },\n});\n\nconst fontWeightStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<FontWeightValues>) => ({\n fontWeight: {\n // eslint-disable-next-line @stylexjs/valid-styles\n default: `var(--t-font-weight-${value.base})`,\n [breakpoints.sm]: `var(--t-font-weight-${value.sm})`,\n [breakpoints.md]: `var(--t-font-weight-${value.md})`,\n [breakpoints.lg]: `var(--t-font-weight-${value.lg})`,\n [breakpoints.xl]: `var(--t-font-weight-${value.xl})`,\n [breakpoints[\"2xl\"]]: `var(--t-font-weight-${value[\"2xl\"]})`,\n },\n }),\n});\n\nconst lineHeightStyles = stylex.create({\n normal: {\n lineHeight: \"var(--t-line-height-normal)\",\n },\n relaxed: {\n lineHeight: \"var(--t-line-height-relaxed)\",\n },\n tight: {\n lineHeight: \"var(--t-line-height-tight)\",\n },\n});\n\nconst lineHeightStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<LineHeightValues>) => ({\n lineHeight: {\n default: `var(--t-line-height-${value.base})`,\n [breakpoints.sm]: `var(--t-line-height-${value.sm})`,\n [breakpoints.md]: `var(--t-line-height-${value.md})`,\n [breakpoints.lg]: `var(--t-line-height-${value.lg})`,\n [breakpoints.xl]: `var(--t-line-height-${value.xl})`,\n [breakpoints[\"2xl\"]]: `var(--t-line-height-${value[\"2xl\"]})`,\n },\n }),\n});\n\nexport type FontSize = ResponsiveValue<FontSizeValues>;\nexport type FontFamily = ResponsiveValue<FontFamilyValues>;\nexport type FontWeight = ResponsiveValue<FontWeightValues>;\nexport type LineHeight = ResponsiveValue<LineHeightValues>;\n\nexport type TypographyProps = {\n fontSize?: FontSize;\n fontFamily?: FontFamily;\n fontWeight?: FontWeight;\n lineHeight?: LineHeight;\n};\n\nexport function getTypographyStyles(props: TypographyProps) {\n const { fontSize, fontFamily, fontWeight, lineHeight } = props;\n\n const styles = [];\n\n if (fontSize) {\n styles.push(\n typeof fontSize !== \"object\"\n ? fontSizeStyles[fontSize]\n : fontSizeStylesResponsive.responsive(\n toFullResponsiveObject(fontSize, \"md\")\n )\n );\n }\n\n if (fontFamily) {\n styles.push(\n typeof fontFamily !== \"object\"\n ? fontFamilyStyles[fontFamily]\n : fontFamilyStylesResponsive.responsive(\n toFullResponsiveObject(fontFamily, \"body\")\n )\n );\n }\n\n if (fontWeight) {\n styles.push(\n typeof fontWeight !== \"object\"\n ? fontWeightStyles[fontWeight]\n : fontWeightStylesResponsive.responsive(\n toFullResponsiveObject(fontWeight, \"normal\")\n )\n );\n }\n\n if (lineHeight) {\n styles.push(\n typeof lineHeight !== \"object\"\n ? lineHeightStyles[lineHeight]\n : lineHeightStylesResponsive.responsive(\n toFullResponsiveObject(lineHeight, \"normal\")\n )\n );\n }\n\n return styles;\n}\n","/* eslint-disable @stylexjs/valid-styles */\nimport * as stylex from \"@stylexjs/stylex\";\nimport {\n breakpoints,\n type ResponsiveValue,\n type FullResponsiveObject,\n toFullResponsiveObject,\n} from \"../../../utils/breakpoints.stylex\";\n\ntype ColorValues = keyof typeof colorStyles;\ntype BackgroundColorValues = keyof typeof bgStyles;\ntype BorderColorValues = keyof typeof borderColorStyles;\n\nconst COLOR_VALUES = {\n \"accent-emphasis\": \"var(--t-color-accent-emphasis)\",\n accent: \"var(--t-color-accent-default)\",\n \"error-emphasis\": \"var(--t-color-error-emphasis)\",\n error: \"var(--t-color-error-default)\",\n \"foreground-inverted-muted\": \"var(--t-color-foreground-inverted-muted)\",\n \"foreground-inverted-subtle\": \"var(--t-color-foreground-inverted-subtle)\",\n \"foreground-inverted\": \"var(--t-color-foreground-inverted)\",\n \"foreground-muted\": \"var(--t-color-foreground-muted)\",\n \"foreground-subtle\": \"var(--t-color-foreground-subtle)\",\n foreground: \"var(--t-color-foreground)\",\n \"info-emphasis\": \"var(--t-color-info-emphasis)\",\n info: \"var(--t-color-info-default)\",\n \"primary-emphasis\": \"var(--t-color-primary-emphasis)\",\n primary: \"var(--t-color-primary-default)\",\n \"success-emphasis\": \"var(--t-color-success-emphasis)\",\n success: \"var(--t-color-success-default)\",\n \"warning-emphasis\": \"var(--t-color-warning-emphasis)\",\n warning: \"var(--t-color-warning-default)\",\n} as const;\n\nconst BG_VALUES = {\n \"accent-default\": \"var(--t-color-accent-default)\",\n \"accent-emphasis\": \"var(--t-color-accent-emphasis)\",\n \"accent-subtle\": \"var(--t-color-accent-subtle)\",\n background: \"var(--t-color-background)\",\n \"error-default\": \"var(--t-color-error-default)\",\n \"error-emphasis\": \"var(--t-color-error-emphasis)\",\n \"error-subtle\": \"var(--t-color-error-subtle)\",\n \"info-default\": \"var(--t-color-info-default)\",\n \"info-emphasis\": \"var(--t-color-info-emphasis)\",\n \"info-subtle\": \"var(--t-color-info-subtle)\",\n \"primary-default\": \"var(--t-color-primary-default)\",\n \"primary-emphasis\": \"var(--t-color-primary-emphasis)\",\n \"primary-subtle\": \"var(--t-color-primary-subtle)\",\n \"success-default\": \"var(--t-color-success-default)\",\n \"success-emphasis\": \"var(--t-color-success-emphasis)\",\n \"success-subtle\": \"var(--t-color-success-subtle)\",\n surface: \"var(--t-color-surface)\",\n \"warning-default\": \"var(--t-color-warning-default)\",\n \"warning-emphasis\": \"var(--t-color-warning-emphasis)\",\n \"warning-subtle\": \"var(--t-color-warning-subtle)\",\n} as const;\n\nconst BORDER_COLOR_VALUES = {\n \"accent-emphasis\": \"var(--t-color-accent-emphasis)\",\n accent: \"var(--t-color-accent-default)\",\n \"border-muted\": \"var(--t-color-border-muted)\",\n border: \"var(--t-color-border)\",\n \"error-emphasis\": \"var(--t-color-error-emphasis)\",\n error: \"var(--t-color-error-default)\",\n \"info-emphasis\": \"var(--t-color-info-emphasis)\",\n info: \"var(--t-color-info-default)\",\n \"primary-emphasis\": \"var(--t-color-primary-emphasis)\",\n primary: \"var(--t-color-primary-default)\",\n \"success-emphasis\": \"var(--t-color-success-emphasis)\",\n success: \"var(--t-color-success-default)\",\n \"warning-emphasis\": \"var(--t-color-warning-emphasis)\",\n warning: \"var(--t-color-warning-default)\",\n} as const;\n\nconst colorStyles = stylex.create({\n \"accent-emphasis\": {\n color: COLOR_VALUES[\"accent-emphasis\"],\n },\n accent: {\n color: COLOR_VALUES.accent,\n },\n \"error-emphasis\": {\n color: COLOR_VALUES[\"error-emphasis\"],\n },\n error: {\n color: COLOR_VALUES.error,\n },\n \"foreground-inverted-muted\": {\n color: COLOR_VALUES[\"foreground-inverted-muted\"],\n },\n \"foreground-inverted-subtle\": {\n color: COLOR_VALUES[\"foreground-inverted-subtle\"],\n },\n \"foreground-inverted\": {\n color: COLOR_VALUES[\"foreground-inverted\"],\n },\n \"foreground-muted\": {\n color: COLOR_VALUES[\"foreground-muted\"],\n },\n \"foreground-subtle\": {\n color: COLOR_VALUES[\"foreground-subtle\"],\n },\n foreground: {\n color: COLOR_VALUES.foreground,\n },\n \"info-emphasis\": {\n color: COLOR_VALUES[\"info-emphasis\"],\n },\n info: {\n color: COLOR_VALUES.info,\n },\n \"primary-emphasis\": {\n color: COLOR_VALUES[\"primary-emphasis\"],\n },\n primary: {\n color: COLOR_VALUES.primary,\n },\n \"success-emphasis\": {\n color: COLOR_VALUES[\"success-emphasis\"],\n },\n success: {\n color: COLOR_VALUES.success,\n },\n \"warning-emphasis\": {\n color: COLOR_VALUES[\"warning-emphasis\"],\n },\n warning: {\n color: COLOR_VALUES.warning,\n },\n});\n\nconst colorStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<ColorValues>) => ({\n color: {\n default: COLOR_VALUES[value.base],\n [breakpoints.sm]: COLOR_VALUES[value.sm],\n [breakpoints.md]: COLOR_VALUES[value.md],\n [breakpoints.lg]: COLOR_VALUES[value.lg],\n [breakpoints.xl]: COLOR_VALUES[value.xl],\n [breakpoints[\"2xl\"]]: COLOR_VALUES[value[\"2xl\"]],\n },\n }),\n});\n\nconst bgStyles = stylex.create({\n \"accent-default\": {\n backgroundColor: BG_VALUES[\"accent-default\"],\n },\n \"accent-emphasis\": {\n backgroundColor: BG_VALUES[\"accent-emphasis\"],\n },\n \"accent-subtle\": {\n backgroundColor: BG_VALUES[\"accent-subtle\"],\n },\n background: {\n backgroundColor: BG_VALUES.background,\n },\n \"error-default\": {\n backgroundColor: BG_VALUES[\"error-default\"],\n },\n \"error-emphasis\": {\n backgroundColor: BG_VALUES[\"error-emphasis\"],\n },\n \"error-subtle\": {\n backgroundColor: BG_VALUES[\"error-subtle\"],\n },\n \"info-default\": {\n backgroundColor: BG_VALUES[\"info-default\"],\n },\n \"info-emphasis\": {\n backgroundColor: BG_VALUES[\"info-emphasis\"],\n },\n \"info-subtle\": {\n backgroundColor: BG_VALUES[\"info-subtle\"],\n },\n \"primary-default\": {\n backgroundColor: BG_VALUES[\"primary-default\"],\n },\n \"primary-emphasis\": {\n backgroundColor: BG_VALUES[\"primary-emphasis\"],\n },\n \"primary-subtle\": {\n backgroundColor: BG_VALUES[\"primary-subtle\"],\n },\n \"success-default\": {\n backgroundColor: BG_VALUES[\"success-default\"],\n },\n \"success-emphasis\": {\n backgroundColor: BG_VALUES[\"success-emphasis\"],\n },\n \"success-subtle\": {\n backgroundColor: BG_VALUES[\"success-subtle\"],\n },\n surface: {\n backgroundColor: BG_VALUES.surface,\n },\n \"warning-default\": {\n backgroundColor: BG_VALUES[\"warning-default\"],\n },\n \"warning-emphasis\": {\n backgroundColor: BG_VALUES[\"warning-emphasis\"],\n },\n \"warning-subtle\": {\n backgroundColor: BG_VALUES[\"warning-subtle\"],\n },\n});\n\nconst bgStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<BackgroundColorValues>) => ({\n backgroundColor: {\n default: BG_VALUES[value.base],\n [breakpoints.sm]: BG_VALUES[value.sm],\n [breakpoints.md]: BG_VALUES[value.md],\n [breakpoints.lg]: BG_VALUES[value.lg],\n [breakpoints.xl]: BG_VALUES[value.xl],\n [breakpoints[\"2xl\"]]: BG_VALUES[value[\"2xl\"]],\n },\n }),\n});\n\nconst borderColorStyles = stylex.create({\n \"accent-emphasis\": {\n borderColor: BORDER_COLOR_VALUES[\"accent-emphasis\"],\n },\n accent: {\n borderColor: BORDER_COLOR_VALUES.accent,\n },\n \"border-muted\": {\n borderColor: BORDER_COLOR_VALUES[\"border-muted\"],\n },\n border: {\n borderColor: BORDER_COLOR_VALUES.border,\n },\n \"error-emphasis\": {\n borderColor: BORDER_COLOR_VALUES[\"error-emphasis\"],\n },\n error: {\n borderColor: BORDER_COLOR_VALUES.error,\n },\n \"info-emphasis\": {\n borderColor: BORDER_COLOR_VALUES[\"info-emphasis\"],\n },\n info: {\n borderColor: BORDER_COLOR_VALUES.info,\n },\n \"primary-emphasis\": {\n borderColor: BORDER_COLOR_VALUES[\"primary-emphasis\"],\n },\n primary: {\n borderColor: BORDER_COLOR_VALUES.primary,\n },\n \"success-emphasis\": {\n borderColor: BORDER_COLOR_VALUES[\"success-emphasis\"],\n },\n success: {\n borderColor: BORDER_COLOR_VALUES.success,\n },\n \"warning-emphasis\": {\n borderColor: BORDER_COLOR_VALUES[\"warning-emphasis\"],\n },\n warning: {\n borderColor: BORDER_COLOR_VALUES.warning,\n },\n});\n\nconst borderColorStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<BorderColorValues>) => ({\n borderColor: {\n default: BORDER_COLOR_VALUES[value.base],\n [breakpoints.sm]: BORDER_COLOR_VALUES[value.sm],\n [breakpoints.md]: BORDER_COLOR_VALUES[value.md],\n [breakpoints.lg]: BORDER_COLOR_VALUES[value.lg],\n [breakpoints.xl]: BORDER_COLOR_VALUES[value.xl],\n [breakpoints[\"2xl\"]]: BORDER_COLOR_VALUES[value[\"2xl\"]],\n },\n }),\n});\n\nexport type Color = ResponsiveValue<ColorValues>;\nexport type BackgroundColor = ResponsiveValue<BackgroundColorValues>;\nexport type BorderColor = ResponsiveValue<BorderColorValues>;\n\nexport type ColorProps = {\n color?: Color;\n bg?: BackgroundColor;\n borderColor?: BorderColor;\n};\n\nexport function getColorStyles(props: ColorProps) {\n const { color, bg, borderColor } = props;\n\n const styles = [];\n\n if (color) {\n styles.push(\n typeof color !== \"object\"\n ? colorStyles[color]\n : colorStylesResponsive.responsive(\n toFullResponsiveObject(color, \"foreground\")\n )\n );\n }\n\n if (bg) {\n styles.push(\n typeof bg !== \"object\"\n ? bgStyles[bg]\n : bgStylesResponsive.responsive(\n toFullResponsiveObject(bg, \"background\")\n )\n );\n }\n\n if (borderColor) {\n styles.push(\n typeof borderColor !== \"object\"\n ? borderColorStyles[borderColor]\n : borderColorStylesResponsive.responsive(\n toFullResponsiveObject(borderColor, \"border\")\n )\n );\n }\n\n return styles;\n}\n","import * as stylex from \"@stylexjs/stylex\";\nimport {\n breakpoints,\n type ResponsiveValue,\n type FullResponsiveObject,\n toFullResponsiveObject,\n} from \"../../../utils/breakpoints.stylex\";\n\ntype BorderWidthValues = keyof typeof borderTopWidthStyles;\ntype BorderStyleValues = keyof typeof borderStyleStyles;\n\nconst BORDER_WIDTH_VALUES = {\n medium: \"var(--t-border-width-medium)\",\n none: \"var(--t-border-width-none)\",\n thick: \"var(--t-border-width-thick)\",\n thin: \"var(--t-border-width-thin)\",\n} as const;\n\nconst borderTopWidthStyles = stylex.create({\n medium: {\n borderTopWidth: BORDER_WIDTH_VALUES.medium,\n },\n none: {\n borderTopWidth: BORDER_WIDTH_VALUES.none,\n },\n thick: {\n borderTopWidth: BORDER_WIDTH_VALUES.thick,\n },\n thin: {\n borderTopWidth: BORDER_WIDTH_VALUES.thin,\n },\n});\n\nconst borderTopWidthStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<BorderWidthValues>) => ({\n borderTopWidth: {\n default: BORDER_WIDTH_VALUES[value.base],\n [breakpoints.sm]: BORDER_WIDTH_VALUES[value.sm],\n [breakpoints.md]: BORDER_WIDTH_VALUES[value.md],\n [breakpoints.lg]: BORDER_WIDTH_VALUES[value.lg],\n [breakpoints.xl]: BORDER_WIDTH_VALUES[value.xl],\n [breakpoints[\"2xl\"]]: BORDER_WIDTH_VALUES[value[\"2xl\"]],\n },\n }),\n});\n\nconst borderRightWidthStyles = stylex.create({\n medium: {\n borderRightWidth: BORDER_WIDTH_VALUES.medium,\n },\n none: {\n borderRightWidth: BORDER_WIDTH_VALUES.none,\n },\n thick: {\n borderRightWidth: BORDER_WIDTH_VALUES.thick,\n },\n thin: {\n borderRightWidth: BORDER_WIDTH_VALUES.thin,\n },\n});\n\nconst borderRightWidthStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<BorderWidthValues>) => ({\n borderRightWidth: {\n default: BORDER_WIDTH_VALUES[value.base],\n [breakpoints.sm]: BORDER_WIDTH_VALUES[value.sm],\n [breakpoints.md]: BORDER_WIDTH_VALUES[value.md],\n [breakpoints.lg]: BORDER_WIDTH_VALUES[value.lg],\n [breakpoints.xl]: BORDER_WIDTH_VALUES[value.xl],\n [breakpoints[\"2xl\"]]: BORDER_WIDTH_VALUES[value[\"2xl\"]],\n },\n }),\n});\n\nconst borderBottomWidthStyles = stylex.create({\n medium: {\n borderBottomWidth: BORDER_WIDTH_VALUES.medium,\n },\n none: {\n borderBottomWidth: BORDER_WIDTH_VALUES.none,\n },\n thick: {\n borderBottomWidth: BORDER_WIDTH_VALUES.thick,\n },\n thin: {\n borderBottomWidth: BORDER_WIDTH_VALUES.thin,\n },\n});\n\nconst borderBottomWidthStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<BorderWidthValues>) => ({\n borderBottomWidth: {\n default: BORDER_WIDTH_VALUES[value.base],\n [breakpoints.sm]: BORDER_WIDTH_VALUES[value.sm],\n [breakpoints.md]: BORDER_WIDTH_VALUES[value.md],\n [breakpoints.lg]: BORDER_WIDTH_VALUES[value.lg],\n [breakpoints.xl]: BORDER_WIDTH_VALUES[value.xl],\n [breakpoints[\"2xl\"]]: BORDER_WIDTH_VALUES[value[\"2xl\"]],\n },\n }),\n});\n\nconst borderLeftWidthStyles = stylex.create({\n medium: {\n borderLeftWidth: BORDER_WIDTH_VALUES.medium,\n },\n none: {\n borderLeftWidth: BORDER_WIDTH_VALUES.none,\n },\n thick: {\n borderLeftWidth: BORDER_WIDTH_VALUES.thick,\n },\n thin: {\n borderLeftWidth: BORDER_WIDTH_VALUES.thin,\n },\n});\n\nconst borderLeftWidthStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<BorderWidthValues>) => ({\n borderLeftWidth: {\n default: BORDER_WIDTH_VALUES[value.base],\n [breakpoints.sm]: BORDER_WIDTH_VALUES[value.sm],\n [breakpoints.md]: BORDER_WIDTH_VALUES[value.md],\n [breakpoints.lg]: BORDER_WIDTH_VALUES[value.lg],\n [breakpoints.xl]: BORDER_WIDTH_VALUES[value.xl],\n [breakpoints[\"2xl\"]]: BORDER_WIDTH_VALUES[value[\"2xl\"]],\n },\n }),\n});\n\nconst borderStyleStyles = stylex.create({\n dashed: {\n borderStyle: \"dashed\",\n },\n dotted: {\n borderStyle: \"dotted\",\n },\n none: {\n borderStyle: \"none\",\n },\n solid: {\n borderStyle: \"solid\",\n },\n});\n\nconst borderStyleStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<BorderStyleValues>) => ({\n borderStyle: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n});\n\ntype BorderWidth = ResponsiveValue<BorderWidthValues>;\ntype BorderStyle = ResponsiveValue<BorderStyleValues>;\n\nexport type BorderProps = {\n border?: BorderWidth;\n borderX?: BorderWidth;\n borderY?: BorderWidth;\n borderTop?: BorderWidth;\n borderRight?: BorderWidth;\n borderBottom?: BorderWidth;\n borderLeft?: BorderWidth;\n borderStyle?: BorderStyle;\n};\n\nexport function getBorderStyles(props: BorderProps) {\n const {\n border,\n borderX,\n borderY,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n borderStyle,\n } = props;\n\n const styles = [];\n\n const topWidth = borderTop ?? borderY ?? border;\n const rightWidth = borderRight ?? borderX ?? border;\n const bottomWidth = borderBottom ?? borderY ?? border;\n const leftWidth = borderLeft ?? borderX ?? border;\n\n if (topWidth !== undefined) {\n styles.push(\n typeof topWidth !== \"object\"\n ? borderTopWidthStyles[topWidth]\n : borderTopWidthStylesResponsive.responsive(\n toFullResponsiveObject(topWidth, \"none\")\n )\n );\n }\n\n if (rightWidth !== undefined) {\n styles.push(\n typeof rightWidth !== \"object\"\n ? borderRightWidthStyles[rightWidth]\n : borderRightWidthStylesResponsive.responsive(\n toFullResponsiveObject(rightWidth, \"none\")\n )\n );\n }\n\n if (bottomWidth !== undefined) {\n styles.push(\n typeof bottomWidth !== \"object\"\n ? borderBottomWidthStyles[bottomWidth]\n : borderBottomWidthStylesResponsive.responsive(\n toFullResponsiveObject(bottomWidth, \"none\")\n )\n );\n }\n\n if (leftWidth !== undefined) {\n styles.push(\n typeof leftWidth !== \"object\"\n ? borderLeftWidthStyles[leftWidth]\n : borderLeftWidthStylesResponsive.responsive(\n toFullResponsiveObject(leftWidth, \"none\")\n )\n );\n }\n\n if (borderStyle !== undefined) {\n styles.push(\n typeof borderStyle !== \"object\"\n ? borderStyleStyles[borderStyle]\n : borderStyleStylesResponsive.responsive(\n toFullResponsiveObject(borderStyle, \"solid\")\n )\n );\n } else if (topWidth || rightWidth || bottomWidth || leftWidth) {\n styles.push(borderStyleStyles.solid);\n }\n\n return styles;\n}\n","import * as stylex from \"@stylexjs/stylex\";\nimport {\n breakpoints,\n type ResponsiveValue,\n type FullResponsiveObject,\n toFullResponsiveObject,\n} from \"../../../utils/breakpoints.stylex\";\n\ntype RoundedValues = keyof typeof roundedTopLeftStyles;\n\nconst ROUNDED_VALUES = {\n full: \"var(--t-radius-full)\",\n lg: \"var(--t-radius-lg)\",\n md: \"var(--t-radius-md)\",\n none: \"var(--t-radius-none)\",\n sm: \"var(--t-radius-sm)\",\n} as const;\n\nconst roundedTopLeftStyles = stylex.create({\n full: {\n borderTopLeftRadius: ROUNDED_VALUES.full,\n },\n lg: {\n borderTopLeftRadius: ROUNDED_VALUES.lg,\n },\n md: {\n borderTopLeftRadius: ROUNDED_VALUES.md,\n },\n none: {\n borderTopLeftRadius: ROUNDED_VALUES.none,\n },\n sm: {\n borderTopLeftRadius: ROUNDED_VALUES.sm,\n },\n});\n\nconst roundedTopLeftStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<RoundedValues>) => ({\n borderTopLeftRadius: {\n default: ROUNDED_VALUES[value.base],\n [breakpoints.sm]: ROUNDED_VALUES[value.sm],\n [breakpoints.md]: ROUNDED_VALUES[value.md],\n [breakpoints.lg]: ROUNDED_VALUES[value.lg],\n [breakpoints.xl]: ROUNDED_VALUES[value.xl],\n [breakpoints[\"2xl\"]]: ROUNDED_VALUES[value[\"2xl\"]],\n },\n }),\n});\n\nconst roundedTopRightStyles = stylex.create({\n full: {\n borderTopRightRadius: ROUNDED_VALUES.full,\n },\n lg: {\n borderTopRightRadius: ROUNDED_VALUES.lg,\n },\n md: {\n borderTopRightRadius: ROUNDED_VALUES.md,\n },\n none: {\n borderTopRightRadius: ROUNDED_VALUES.none,\n },\n sm: {\n borderTopRightRadius: ROUNDED_VALUES.sm,\n },\n});\n\nconst roundedTopRightStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<RoundedValues>) => ({\n borderTopRightRadius: {\n default: ROUNDED_VALUES[value.base],\n [breakpoints.sm]: ROUNDED_VALUES[value.sm],\n [breakpoints.md]: ROUNDED_VALUES[value.md],\n [breakpoints.lg]: ROUNDED_VALUES[value.lg],\n [breakpoints.xl]: ROUNDED_VALUES[value.xl],\n [breakpoints[\"2xl\"]]: ROUNDED_VALUES[value[\"2xl\"]],\n },\n }),\n});\n\nconst roundedBottomRightStyles = stylex.create({\n full: {\n borderBottomRightRadius: ROUNDED_VALUES.full,\n },\n lg: {\n borderBottomRightRadius: ROUNDED_VALUES.lg,\n },\n md: {\n borderBottomRightRadius: ROUNDED_VALUES.md,\n },\n none: {\n borderBottomRightRadius: ROUNDED_VALUES.none,\n },\n sm: {\n borderBottomRightRadius: ROUNDED_VALUES.sm,\n },\n});\n\nconst roundedBottomRightStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<RoundedValues>) => ({\n borderBottomRightRadius: {\n default: ROUNDED_VALUES[value.base],\n [breakpoints.sm]: ROUNDED_VALUES[value.sm],\n [breakpoints.md]: ROUNDED_VALUES[value.md],\n [breakpoints.lg]: ROUNDED_VALUES[value.lg],\n [breakpoints.xl]: ROUNDED_VALUES[value.xl],\n [breakpoints[\"2xl\"]]: ROUNDED_VALUES[value[\"2xl\"]],\n },\n }),\n});\n\nconst roundedBottomLeftStyles = stylex.create({\n full: {\n borderBottomLeftRadius: ROUNDED_VALUES.full,\n },\n lg: {\n borderBottomLeftRadius: ROUNDED_VALUES.lg,\n },\n md: {\n borderBottomLeftRadius: ROUNDED_VALUES.md,\n },\n none: {\n borderBottomLeftRadius: ROUNDED_VALUES.none,\n },\n sm: {\n borderBottomLeftRadius: ROUNDED_VALUES.sm,\n },\n});\n\nconst roundedBottomLeftStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<RoundedValues>) => ({\n borderBottomLeftRadius: {\n default: ROUNDED_VALUES[value.base],\n [breakpoints.sm]: ROUNDED_VALUES[value.sm],\n [breakpoints.md]: ROUNDED_VALUES[value.md],\n [breakpoints.lg]: ROUNDED_VALUES[value.lg],\n [breakpoints.xl]: ROUNDED_VALUES[value.xl],\n [breakpoints[\"2xl\"]]: ROUNDED_VALUES[value[\"2xl\"]],\n },\n }),\n});\n\ntype Rounded = ResponsiveValue<RoundedValues>;\n\nexport type RoundnessProps = {\n rounded?: Rounded;\n roundedTop?: Rounded;\n roundedBottom?: Rounded;\n roundedLeft?: Rounded;\n roundedRight?: Rounded;\n roundedTopLeft?: Rounded;\n roundedTopRight?: Rounded;\n roundedBottomLeft?: Rounded;\n roundedBottomRight?: Rounded;\n};\n\nexport function getRoundnessStyles(props: RoundnessProps) {\n const {\n rounded,\n roundedTop,\n roundedBottom,\n roundedLeft,\n roundedRight,\n roundedTopLeft,\n roundedTopRight,\n roundedBottomLeft,\n roundedBottomRight,\n } = props;\n\n const styles = [];\n\n const topLeft = roundedTopLeft ?? roundedTop ?? roundedLeft ?? rounded;\n if (topLeft !== undefined) {\n styles.push(\n typeof topLeft !== \"object\"\n ? roundedTopLeftStyles[topLeft]\n : roundedTopLeftStylesResponsive.responsive(\n toFullResponsiveObject(topLeft, \"none\")\n )\n );\n }\n\n const topRight = roundedTopRight ?? roundedTop ?? roundedRight ?? rounded;\n if (topRight !== undefined) {\n styles.push(\n typeof topRight !== \"object\"\n ? roundedTopRightStyles[topRight]\n : roundedTopRightStylesResponsive.responsive(\n toFullResponsiveObject(topRight, \"none\")\n )\n );\n }\n\n const bottomRight =\n roundedBottomRight ?? roundedBottom ?? roundedRight ?? rounded;\n if (bottomRight !== undefined) {\n styles.push(\n typeof bottomRight !== \"object\"\n ? roundedBottomRightStyles[bottomRight]\n : roundedBottomRightStylesResponsive.responsive(\n toFullResponsiveObject(bottomRight, \"none\")\n )\n );\n }\n\n const bottomLeft =\n roundedBottomLeft ?? roundedBottom ?? roundedLeft ?? rounded;\n if (bottomLeft !== undefined) {\n styles.push(\n typeof bottomLeft !== \"object\"\n ? roundedBottomLeftStyles[bottomLeft]\n : roundedBottomLeftStylesResponsive.responsive(\n toFullResponsiveObject(bottomLeft, \"none\")\n )\n );\n }\n\n return styles;\n}\n","import * as stylex from \"@stylexjs/stylex\";\nimport {\n breakpoints,\n type ResponsiveValue,\n type FullResponsiveObject,\n toFullResponsiveObject,\n} from \"../../../utils/breakpoints.stylex\";\n\ntype ShadowValues = keyof typeof shadowStyles;\n\nconst SHADOW_VALUES = {\n lg: \"var(--t-shadow-lg)\",\n md: \"var(--t-shadow-md)\",\n none: \"var(--t-shadow-none)\",\n sm: \"var(--t-shadow-sm)\",\n} as const;\n\nconst shadowStyles = stylex.create({\n lg: {\n // eslint-disable-next-line @stylexjs/valid-styles\n boxShadow: SHADOW_VALUES.lg,\n },\n md: {\n // eslint-disable-next-line @stylexjs/valid-styles\n boxShadow: SHADOW_VALUES.md,\n },\n none: {\n // eslint-disable-next-line @stylexjs/valid-styles\n boxShadow: SHADOW_VALUES.none,\n },\n sm: {\n // eslint-disable-next-line @stylexjs/valid-styles\n boxShadow: SHADOW_VALUES.sm,\n },\n});\n\nconst shadowStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<ShadowValues>) => ({\n boxShadow: {\n // eslint-disable-next-line @stylexjs/valid-styles\n default: SHADOW_VALUES[value.base],\n [breakpoints.sm]: SHADOW_VALUES[value.sm],\n [breakpoints.md]: SHADOW_VALUES[value.md],\n [breakpoints.lg]: SHADOW_VALUES[value.lg],\n [breakpoints.xl]: SHADOW_VALUES[value.xl],\n [breakpoints[\"2xl\"]]: SHADOW_VALUES[value[\"2xl\"]],\n },\n }),\n});\n\ntype Shadow = ResponsiveValue<ShadowValues>;\n\nexport type ShadowProps = {\n shadow?: Shadow;\n};\n\nexport function getShadowStyles(props: ShadowProps) {\n const { shadow } = props;\n\n if (!shadow) return [];\n\n return [\n typeof shadow !== \"object\"\n ? shadowStyles[shadow]\n : shadowStylesResponsive.responsive(\n toFullResponsiveObject(shadow, \"none\")\n ),\n ];\n}\n","import * as stylex from \"@stylexjs/stylex\";\nimport {\n breakpoints,\n type ResponsiveValue,\n type FullResponsiveObject,\n toFullResponsiveObject,\n} from \"../../../utils/breakpoints.stylex\";\n\ntype CursorValues = keyof typeof cursorStyles;\ntype PointerEventsValues = keyof typeof pointerEventsStyles;\ntype UserSelectValues = keyof typeof userSelectStyles;\n\nconst cursorStyles = stylex.create({\n auto: {\n cursor: \"auto\",\n },\n crosshair: {\n cursor: \"crosshair\",\n },\n default: {\n cursor: \"default\",\n },\n grab: {\n cursor: \"grab\",\n },\n grabbing: {\n cursor: \"grabbing\",\n },\n help: {\n cursor: \"help\",\n },\n move: {\n cursor: \"move\",\n },\n notAllowed: {\n cursor: \"not-allowed\",\n },\n pointer: {\n cursor: \"pointer\",\n },\n text: {\n cursor: \"text\",\n },\n wait: {\n cursor: \"wait\",\n },\n zoomIn: {\n cursor: \"zoom-in\",\n },\n zoomOut: {\n cursor: \"zoom-out\",\n },\n});\n\nconst cursorStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<CursorValues>) => ({\n cursor: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n});\n\nconst pointerEventsStyles = stylex.create({\n all: {\n pointerEvents: \"all\",\n },\n auto: {\n pointerEvents: \"auto\",\n },\n none: {\n pointerEvents: \"none\",\n },\n});\n\nconst pointerEventsStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<PointerEventsValues>) => ({\n pointerEvents: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n});\n\nconst userSelectStyles = stylex.create({\n all: {\n userSelect: \"all\",\n },\n auto: {\n userSelect: \"auto\",\n },\n none: {\n userSelect: \"none\",\n },\n text: {\n userSelect: \"text\",\n },\n});\n\nconst userSelectStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<UserSelectValues>) => ({\n userSelect: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n});\n\nexport type Cursor = ResponsiveValue<CursorValues>;\nexport type PointerEvents = ResponsiveValue<PointerEventsValues>;\nexport type UserSelect = ResponsiveValue<UserSelectValues>;\n\nexport type InteractionProps = {\n cursor?: Cursor;\n pointerEvents?: PointerEvents;\n userSelect?: UserSelect;\n};\n\nexport function getInteractionStyles(props: InteractionProps) {\n const { cursor, pointerEvents, userSelect } = props;\n\n const styles = [];\n\n if (cursor) {\n styles.push(\n typeof cursor !== \"object\"\n ? cursorStyles[cursor]\n : cursorStylesResponsive.responsive(\n toFullResponsiveObject(cursor, \"auto\")\n )\n );\n }\n\n if (pointerEvents) {\n styles.push(\n typeof pointerEvents !== \"object\"\n ? pointerEventsStyles[pointerEvents]\n : pointerEventsStylesResponsive.responsive(\n toFullResponsiveObject(pointerEvents, \"auto\")\n )\n );\n }\n\n if (userSelect) {\n styles.push(\n typeof userSelect !== \"object\"\n ? userSelectStyles[userSelect]\n : userSelectStylesResponsive.responsive(\n toFullResponsiveObject(userSelect, \"auto\")\n )\n );\n }\n\n return styles;\n}\n","import * as stylex from \"@stylexjs/stylex\";\nimport {\n breakpoints,\n type ResponsiveValue,\n type FullResponsiveObject,\n toFullResponsiveObject,\n} from \"../../../utils/breakpoints.stylex\";\n\ntype TextAlignValues = keyof typeof textAlignStyles;\ntype WhiteSpaceValues = keyof typeof whiteSpaceStyles;\n\nconst textAlignStyles = stylex.create({\n center: {\n textAlign: \"center\",\n },\n justify: {\n textAlign: \"justify\",\n },\n left: {\n textAlign: \"left\",\n },\n right: {\n textAlign: \"right\",\n },\n});\n\nconst textAlignStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<TextAlignValues>) => ({\n textAlign: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n});\n\nconst whiteSpaceStyles = stylex.create({\n normal: {\n whiteSpace: \"normal\",\n },\n nowrap: {\n whiteSpace: \"nowrap\",\n },\n pre: {\n whiteSpace: \"pre\",\n },\n preLine: {\n whiteSpace: \"pre-line\",\n },\n preWrap: {\n whiteSpace: \"pre-wrap\",\n },\n});\n\nconst whiteSpaceStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<WhiteSpaceValues>) => ({\n whiteSpace: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n});\n\nexport type TextAlign = ResponsiveValue<TextAlignValues>;\nexport type WhiteSpace = ResponsiveValue<WhiteSpaceValues>;\n\nexport type TextProps = {\n textAlign?: TextAlign;\n whiteSpace?: WhiteSpace;\n};\n\nexport function getTextStyles(props: TextProps) {\n const { textAlign, whiteSpace } = props;\n\n const styles = [];\n\n if (textAlign) {\n styles.push(\n typeof textAlign !== \"object\"\n ? textAlignStyles[textAlign]\n : textAlignStylesResponsive.responsive(\n toFullResponsiveObject(textAlign, \"left\")\n )\n );\n }\n\n if (whiteSpace) {\n styles.push(\n typeof whiteSpace !== \"object\"\n ? whiteSpaceStyles[whiteSpace]\n : whiteSpaceStylesResponsive.responsive(\n toFullResponsiveObject(whiteSpace, \"normal\")\n )\n );\n }\n\n return styles;\n}\n","import * as stylex from \"@stylexjs/stylex\";\nimport {\n breakpoints,\n type ResponsiveValue,\n type FullResponsiveObject,\n toFullResponsiveObject,\n} from \"../../../utils/breakpoints.stylex\";\n\ntype OpacityValues = keyof typeof opacityStyles;\n\nconst OPACITY_VALUES = {\n faint: 0.4,\n full: 1,\n invisible: 0,\n semi: 0.6,\n} as const;\n\nconst opacityStyles = stylex.create({\n faint: {\n opacity: OPACITY_VALUES.faint,\n },\n full: {\n opacity: OPACITY_VALUES.full,\n },\n invisible: {\n opacity: OPACITY_VALUES.invisible,\n },\n semi: {\n opacity: OPACITY_VALUES.semi,\n },\n});\n\nconst opacityStylesResponsive = stylex.create({\n responsive: (value: FullResponsiveObject<OpacityValues>) => ({\n opacity: {\n default: OPACITY_VALUES[value.base],\n [breakpoints.sm]: OPACITY_VALUES[value.sm],\n [breakpoints.md]: OPACITY_VALUES[value.md],\n [breakpoints.lg]: OPACITY_VALUES[value.lg],\n [breakpoints.xl]: OPACITY_VALUES[value.xl],\n [breakpoints[\"2xl\"]]: OPACITY_VALUES[value[\"2xl\"]],\n },\n }),\n});\n\nexport type Opacity = ResponsiveValue<OpacityValues>;\n\nexport type OpacityProps = {\n opacity?: Opacity;\n};\n\nexport function getOpacityStyles(props: OpacityProps) {\n const { opacity } = props;\n\n if (!opacity) {\n return [];\n }\n\n return [\n typeof opacity !== \"object\"\n ? opacityStyles[opacity]\n : opacityStylesResponsive.responsive(\n toFullResponsiveObject(opacity, \"full\")\n ),\n ];\n}\n","import * as stylex from \"@stylexjs/stylex\";\nimport {\n breakpoints,\n type ResponsiveValue,\n type ResponsiveObject,\n toFullResponsiveObject,\n} from \"../../../utils/breakpoints.stylex\";\nimport { type SpacingValue } from \"./types\";\n\nexport type PaddingProps = {\n p?: ResponsiveValue<SpacingValue>;\n pt?: ResponsiveValue<SpacingValue>;\n pr?: ResponsiveValue<SpacingValue>;\n pb?: ResponsiveValue<SpacingValue>;\n pl?: ResponsiveValue<SpacingValue>;\n px?: ResponsiveValue<SpacingValue>;\n py?: ResponsiveValue<SpacingValue>;\n};\n\nconst paddingStyles = stylex.create({\n paddingBottom: (value: string) => ({ paddingBottom: value }),\n paddingBottomResponsive: (value: ResponsiveObject<string>) => ({\n paddingBottom: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n paddingLeft: (value: string) => ({ paddingLeft: value }),\n paddingLeftResponsive: (value: ResponsiveObject<string>) => ({\n paddingLeft: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n paddingRight: (value: string) => ({ paddingRight: value }),\n paddingRightResponsive: (value: ResponsiveObject<string>) => ({\n paddingRight: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n paddingTop: (value: string) => ({ paddingTop: value }),\n paddingTopResponsive: (value: ResponsiveObject<string>) => ({\n paddingTop: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n});\n\nfunction getRawValue(value?: SpacingValue): string | undefined {\n if (value === undefined) return undefined;\n if (typeof value === \"string\") return value;\n if (value === 0) return \"0\";\n return `calc(var(--t-spacing-unit) * ${value})`;\n}\n\nfunction getSpacingProps(\n key: `padding${\"Top\" | \"Right\" | \"Bottom\" | \"Left\"}`,\n value?: ResponsiveValue<SpacingValue>\n) {\n if (typeof value !== \"object\") {\n const rawValue = getRawValue(value);\n return typeof rawValue === \"string\"\n ? paddingStyles[key](rawValue)\n : undefined;\n }\n\n return paddingStyles[`${key}Responsive`](\n toFullResponsiveObject(\n {\n base: getRawValue(value.base),\n sm: getRawValue(value.sm),\n md: getRawValue(value.md),\n lg: getRawValue(value.lg),\n xl: getRawValue(value.xl),\n \"2xl\": getRawValue(value[\"2xl\"]),\n },\n \"0\"\n )\n );\n}\n\n// Helper function to get all spacing styles for a component\n// Respects cascading specificity: specific (pt) > axis (px/py) > all (p)\nexport function getPaddingStyles(props: PaddingProps) {\n // Resolve padding with cascading specificity\n const paddingTop = getSpacingProps(\n \"paddingTop\",\n props.pt ?? props.py ?? props.p\n );\n const paddingRight = getSpacingProps(\n \"paddingRight\",\n props.pr ?? props.px ?? props.p\n );\n const paddingBottom = getSpacingProps(\n \"paddingBottom\",\n props.pb ?? props.py ?? props.p\n );\n const paddingLeft = getSpacingProps(\n \"paddingLeft\",\n props.pl ?? props.px ?? props.p\n );\n\n const styles = [];\n\n // Apply padding styles\n if (paddingTop !== undefined) {\n styles.push(paddingTop);\n }\n if (paddingRight !== undefined) {\n styles.push(paddingRight);\n }\n if (paddingBottom !== undefined) {\n styles.push(paddingBottom);\n }\n if (paddingLeft !== undefined) {\n styles.push(paddingLeft);\n }\n\n return styles;\n}\n","import {\n breakpoints,\n type ResponsiveValue,\n type ResponsiveObject,\n toFullResponsiveObject,\n} from \"../../../utils/breakpoints.stylex\";\nimport * as stylex from \"@stylexjs/stylex\";\nimport { type SpacingValue } from \"./types\";\n\nexport type MarginProps = {\n m?: ResponsiveValue<SpacingValue>;\n mt?: ResponsiveValue<SpacingValue>;\n mr?: ResponsiveValue<SpacingValue>;\n mb?: ResponsiveValue<SpacingValue>;\n ml?: ResponsiveValue<SpacingValue>;\n mx?: ResponsiveValue<SpacingValue>;\n my?: ResponsiveValue<SpacingValue>;\n};\n\nconst marginStyles = stylex.create({\n marginBottom: (value: string) => ({ marginBottom: value }),\n marginBottomResponsive: (value: ResponsiveObject<string>) => ({\n marginBottom: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n marginLeft: (value: string) => ({ marginLeft: value }),\n marginLeftResponsive: (value: ResponsiveObject<string>) => ({\n marginLeft: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n marginRight: (value: string) => ({ marginRight: value }),\n marginRightResponsive: (value: ResponsiveObject<string>) => ({\n marginRight: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n marginTop: (value: string) => ({ marginTop: value }),\n marginTopResponsive: (value: ResponsiveObject<string>) => ({\n marginTop: {\n default: value.base,\n [breakpoints.sm]: value.sm,\n [breakpoints.md]: value.md,\n [breakpoints.lg]: value.lg,\n [breakpoints.xl]: value.xl,\n [breakpoints[\"2xl\"]]: value[\"2xl\"],\n },\n }),\n});\n\nfunction getRawValue(value?: SpacingValue): string | undefined {\n if (value === undefined) return undefined;\n if (typeof value === \"string\") return value;\n if (value === 0) return \"0\";\n return `calc(var(--t-spacing-unit) * ${value})`;\n}\n\nfunction getSpacingProps(\n key: `margin${\"Top\" | \"Right\" | \"Bottom\" | \"Left\"}`,\n value?: ResponsiveValue<SpacingValue>\n) {\n if (typeof value !== \"object\") {\n const rawValue = getRawValue(value);\n return typeof rawValue === \"string\"\n ? marginStyles[key](rawValue)\n : undefined;\n }\n\n return marginStyles[`${key}Responsive`](\n toFullResponsiveObject(\n {\n base: getRawValue(value.base),\n sm: getRawValue(value.sm),\n md: getRawValue(value.md),\n lg: getRawValue(value.lg),\n xl: getRawValue(value.xl),\n \"2xl\": getRawValue(value[\"2xl\"]),\n },\n \"0\"\n )\n );\n}\n\n// Helper function to get all spacing styles for a component\n// Respects cascading specificity: specific (mt) > axis (mx/my) > all (m)\nexport function getMarginStyles(props: MarginProps) {\n // Resolve margin with cascading specificity\n const marginTop = getSpacingProps(\n \"marginTop\",\n props.mt ?? props.my ?? props.m\n );\n const marginRight = getSpacingProps(\n \"marginRight\",\n props.mr ?? props.mx ?? props.m\n );\n const marginBottom = getSpacingProps(\n \"marginBottom\",\n props.mb ?? props.my ?? props.m\n );\n const marginLeft = getSpacingProps(\n \"marginLeft\",\n props.ml ?? props.mx ?? props.m\n );\n\n const styles = [];\n\n // Apply margin styles\n if (marginTop !== undefined) {\n styles.push(marginTop);\n }\n if (marginRight !== undefined) {\n styles.push(marginRight);\n }\n if (marginBottom !== undefined) {\n styles.push(marginBottom);\n }\n if (marginLeft !== undefined) {\n styles.push(marginLeft);\n }\n\n return styles;\n}\n","import { type ElementType, type ReactNode } from \"react\";\nimport * as stylex from \"@stylexjs/stylex\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { clsx } from \"clsx\";\nimport { resetStyles } from \"./styleParts/reset\";\nimport { type DisplayProps, getDisplayStyles } from \"./styleParts/display\";\nimport { type PositionProps, getPositionStyles } from \"./styleParts/position\";\nimport { type OverflowProps, getOverflowStyles } from \"./styleParts/overflow\";\nimport { type ZIndexProps, getZIndexStyles } from \"./styleParts/zIndex\";\nimport { type SizeProps, getSizingStyles } from \"./styleParts/sizing\";\nimport { type FlexboxProps, getFlexboxStyles } from \"./styleParts/flexbox\";\nimport { type GridProps, getGridStyles } from \"./styleParts/grid\";\nimport { type InsetProps, getInsetStyles } from \"./styleParts/inset\";\nimport {\n type TypographyProps,\n getTypographyStyles,\n} from \"./styleParts/typography\";\nimport { type ColorProps, getColorStyles } from \"./styleParts/colors\";\nimport { type BorderProps, getBorderStyles } from \"./styleParts/borders\";\nimport {\n type RoundnessProps,\n getRoundnessStyles,\n} from \"./styleParts/roundness\";\nimport { type ShadowProps, getShadowStyles } from \"./styleParts/shadows\";\nimport {\n type InteractionProps,\n getInteractionStyles,\n} from \"./styleParts/interactions\";\nimport { type TextProps, getTextStyles } from \"./styleParts/text\";\nimport { type OpacityProps, getOpacityStyles } from \"./styleParts/opacity\";\nimport { getPaddingStyles, type PaddingProps } from \"./styleParts/padding\";\nimport { getMarginStyles, type MarginProps } from \"./styleParts/margin\";\n\nexport type BoxOwnProps = MarginProps &\n PaddingProps &\n DisplayProps &\n PositionProps &\n OverflowProps &\n ZIndexProps &\n SizeProps &\n FlexboxProps &\n GridProps &\n InsetProps &\n TypographyProps &\n ColorProps &\n BorderProps &\n RoundnessProps &\n ShadowProps &\n InteractionProps &\n TextProps &\n OpacityProps & {\n className?: string;\n children?: ReactNode;\n };\n\nexport type BoxProps<T extends ElementType = \"div\"> = Polymorphic<\n T,\n BoxOwnProps\n>;\n\n/**\n * Box - The core primitive component\n *\n * A polymorphic component that provides:\n * - Default element: <div>\n * - Can render as any HTML element via the `as` prop\n * - Type-safe props based on the element type\n */\nexport function Box<T extends ElementType = \"div\">({\n as,\n children,\n className,\n style,\n // Spacing props\n p,\n pt,\n pr,\n pb,\n pl,\n px,\n py,\n m,\n mt,\n mr,\n mb,\n ml,\n mx,\n my,\n // Layout props\n display,\n position,\n overflow,\n overflowX,\n overflowY,\n zIndex,\n // Size props\n w,\n h,\n minW,\n maxW,\n minH,\n maxH,\n // Flexbox props\n flexDirection,\n justifyContent,\n alignItems,\n alignSelf,\n flexWrap,\n gap,\n gapRow,\n gapColumn,\n flex,\n flexGrow,\n flexShrink,\n flexBasis,\n // Grid props\n justifySelf,\n gridTemplateColumns,\n gridTemplateRows,\n // Inset props\n inset,\n insetX,\n insetY,\n top,\n right,\n bottom,\n left,\n // Typography props\n fontSize,\n fontFamily,\n fontWeight,\n lineHeight,\n // Color props\n color,\n bg,\n borderColor,\n // Border props\n border,\n borderX,\n borderY,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n borderStyle,\n // Roundness props\n rounded,\n roundedTop,\n roundedBottom,\n roundedLeft,\n roundedRight,\n roundedTopLeft,\n roundedTopRight,\n roundedBottomLeft,\n roundedBottomRight,\n // Shadow props\n shadow,\n // Interaction props\n cursor,\n pointerEvents,\n userSelect,\n // Text props\n textAlign,\n whiteSpace,\n // Opacity props\n opacity,\n ...rest\n}: BoxProps<T>) {\n const Component = as || \"div\";\n\n const {\n className: stylexClassName,\n style: stylexStyle,\n ...stylexRest\n } = stylex.props(\n resetStyles.base,\n resetStyles.reducedMotion,\n getPaddingStyles({\n p,\n pt,\n pr,\n pb,\n pl,\n px,\n py,\n }),\n getMarginStyles({\n m,\n mt,\n mr,\n mb,\n ml,\n mx,\n my,\n }),\n getDisplayStyles(display),\n getPositionStyles(position),\n getOverflowStyles({ overflow, overflowX, overflowY }),\n getZIndexStyles(zIndex),\n getSizingStyles({ w, h, minW, maxW, minH, maxH }),\n getFlexboxStyles({\n flexDirection,\n justifyContent,\n alignItems,\n alignSelf,\n flexWrap,\n gap,\n gapRow,\n gapColumn,\n flex,\n flexGrow,\n flexShrink,\n flexBasis,\n }),\n getGridStyles({\n justifySelf,\n gridTemplateColumns,\n gridTemplateRows,\n }),\n getInsetStyles({\n inset,\n insetX,\n insetY,\n top,\n right,\n bottom,\n left,\n }),\n getTypographyStyles({\n fontSize,\n fontFamily,\n fontWeight,\n lineHeight,\n }),\n getColorStyles({ color, bg, borderColor }),\n getBorderStyles({\n border,\n borderX,\n borderY,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n borderStyle,\n }),\n getRoundnessStyles({\n rounded,\n roundedTop,\n roundedBottom,\n roundedLeft,\n roundedRight,\n roundedTopLeft,\n roundedTopRight,\n roundedBottomLeft,\n roundedBottomRight,\n }),\n getShadowStyles({ shadow }),\n getInteractionStyles({\n cursor,\n pointerEvents,\n userSelect,\n }),\n getTextStyles({ textAlign, whiteSpace }),\n getOpacityStyles({ opacity })\n );\n\n return (\n <Component\n className={clsx(stylexClassName, className)}\n style={{\n ...stylexStyle,\n ...style,\n }}\n {...rest}\n {...stylexRest}\n >\n {children}\n </Component>\n );\n}\n","import { type ElementType } from \"react\";\nimport * as stylex from \"@stylexjs/stylex\";\nimport clsx from \"clsx\";\nimport { Box, type BoxOwnProps } from \"../Box/Box\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\n\n// Import types from Box styleParts\ntype FontSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\" | \"4xl\" | \"5xl\";\ntype FontWeight = \"normal\" | \"medium\" | \"semibold\" | \"bold\";\ntype TextAlign = \"left\" | \"center\" | \"right\" | \"justify\";\ntype Color =\n | \"foreground\"\n | \"foreground-muted\"\n | \"foreground-subtle\"\n | \"accent\"\n | \"accent-emphasis\"\n | \"primary\"\n | \"primary-emphasis\"\n | \"success\"\n | \"success-emphasis\"\n | \"warning\"\n | \"warning-emphasis\"\n | \"error\"\n | \"error-emphasis\";\n\nconst truncateStyles = stylex.create({\n truncate: {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n },\n});\n\nconst italicStyles = stylex.create({\n italic: {\n fontStyle: \"italic\",\n },\n});\n\nexport type TextOwnProps = Omit<\n BoxOwnProps,\n \"fontSize\" | \"fontWeight\" | \"textAlign\" | \"color\"\n> & {\n size?: FontSize;\n weight?: FontWeight;\n align?: TextAlign;\n color?: Color;\n truncate?: boolean;\n italic?: boolean;\n};\n\nexport type TextProps<T extends ElementType = \"span\"> = Polymorphic<\n T,\n TextOwnProps\n>;\n\n/**\n * Text - Semantic text component for body copy, labels, captions, etc.\n *\n * Built on top of Box with text-specific conveniences:\n * - Default element: <span> (inline)\n * - Shorthand props: size, weight, align, color\n * - Utility props: truncate (ellipsis), italic\n * - Can be changed to any element via `as` prop\n */\nexport function Text<T extends ElementType = \"span\">({\n as,\n size,\n weight,\n align,\n color,\n truncate,\n italic,\n className,\n ...rest\n}: TextProps<T>) {\n const { className: stylexClassName } = stylex.props(\n truncate && truncateStyles.truncate,\n italic && italicStyles.italic\n );\n\n return (\n // @ts-expect-error - Polymorphic component prop forwarding\n <Box\n as={as}\n fontSize={size}\n fontWeight={weight}\n textAlign={align}\n color={color}\n className={clsx(stylexClassName, className)}\n {...rest}\n />\n );\n}\n","import { type ElementType } from \"react\";\nimport { Text, type TextOwnProps } from \"../Text/Text\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\n\n// Import types from Box styleParts\ntype FontSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\" | \"4xl\" | \"5xl\";\ntype FontWeight = \"normal\" | \"medium\" | \"semibold\" | \"bold\";\ntype Color =\n | \"foreground\"\n | \"foreground-muted\"\n | \"foreground-subtle\"\n | \"accent\"\n | \"accent-emphasis\"\n | \"primary\"\n | \"primary-emphasis\"\n | \"success\"\n | \"success-emphasis\"\n | \"warning\"\n | \"warning-emphasis\"\n | \"error\"\n | \"error-emphasis\";\n\ntype HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;\n\nconst defaultSizes: Record<HeadingLevel, FontSize> = {\n 1: \"3xl\",\n 2: \"2xl\",\n 3: \"xl\",\n 4: \"lg\",\n 5: \"md\",\n 6: \"sm\",\n};\n\ntype HeadingOwnProps = Omit<TextOwnProps, \"size\" | \"weight\" | \"color\"> & {\n level?: HeadingLevel;\n size?: FontSize;\n weight?: FontWeight;\n color?: Color;\n};\n\nexport type HeadingProps<T extends ElementType = \"h1\"> = Polymorphic<\n T,\n HeadingOwnProps\n>;\n\n/**\n * Heading - Semantic heading component with predefined sizes\n *\n * Built on top of Text with heading-specific defaults:\n * - level prop maps to h1-h6 elements (default: h1)\n * - Each level has a default font size\n * - Default font weight: bold\n * - Size can be overridden via size prop\n * - Can be changed to any element via `as` prop\n */\nexport function Heading<T extends ElementType = \"h1\">({\n as,\n level = 1,\n size,\n weight = \"bold\",\n color,\n children,\n ...rest\n}: HeadingProps<T>) {\n const headingElement = `h${level}` as const;\n const defaultSize = defaultSizes[level];\n const element = as ?? headingElement;\n\n return (\n // @ts-expect-error - Polymorphic component prop forwarding\n <Text\n as={element}\n size={size ?? defaultSize}\n weight={weight}\n color={color}\n {...rest}\n >\n {children}\n </Text>\n );\n}\n","import \"./styles/styles.css\";\n// Must be imported dynamically to split CSS into multiple files\nimport(\"./styles/fonts.css\");\n\nexport { Box } from \"./components/Box/Box\";\nexport { Text } from \"./components/Text\";\nexport { Heading } from \"./components/Heading\";\n"],"names":["styleq","hasRequiredStyleq","requireStyleq","cache","compiledKey","createStyleq","options","disableCache","disableMix","transform","definedProperties","className","inlineStyle","debugString","nextCache","styles","i","possibleStyle","_i","style","classNameChunk","cacheEntry","definedPropertiesChunk","prop","value","compiledKeyValue","weakMap","subStyle","_prop","_value","styleProps","styleq$1","styleqExports","props","dataStyleSrc","result","r","e","t","f","n","o","clsx","resetStyles","toFullResponsiveObject","partial","defaultValue","base","sm","md","lg","xl","_2xl","displayStyles","displayStylesResponsive","getDisplayStyles","display","positionStyles","positionStylesResponsive","getPositionStyles","position","DEFAULT_VALUE","overflowStyles","overflowStylesResponsive","overflowXStyles","overflowXStylesResponsive","overflowYStyles","overflowYStylesResponsive","getOverflowStyles","overflow","overflowX","overflowY","ZINDEX_VALUES","zIndexStyles","zIndexStylesResponsive","getZIndexStyles","zIndex","sizingStyles","val","getRawValue","getSizeProps","key","rawValue","getSizingStyles","w","h","minW","maxW","minH","maxH","width","height","minWidth","maxWidth","minHeight","maxHeight","flexDirectionStyles","flexDirectionStylesResponsive","justifyContentStyles","justifyContentStylesResponsive","alignItemsStyles","alignItemsStylesResponsive","alignSelfStyles","alignSelfStylesResponsive","flexWrapStyles","flexWrapStylesResponsive","dynamicFlexboxStyles","getSpacingValue","getGapValue","gap","gapRow","gapColumn","row","column","rowValue","columnValue","gapValue","gapObj","gapRowObj","gapColumnObj","calculateGapForBreakpoint","gapVal","rowVal","colVal","getFlexValue","flex","flexGrow","flexShrink","flexBasis","grow","shrink","basis","getFlexboxStyles","flexDirection","justifyContent","alignItems","alignSelf","flexWrap","gapStyle","flexStyle","justifySelfStyles","justifySelfStylesResponsive","dynamicGridStyles","getGridStyles","justifySelf","gridTemplateColumns","gridTemplateRows","insetStyles","getInsetProps","getInsetStyles","inset","insetX","insetY","top","right","bottom","left","topValue","rightValue","bottomValue","leftValue","fontSizeStyles","_temp","fontSizeStylesResponsive","fontFamilyStyles","_temp2","fontFamilyStylesResponsive","fontWeightStyles","_temp3","fontWeightStylesResponsive","lineHeightStyles","_temp4","lineHeightStylesResponsive","getTypographyStyles","fontSize","fontFamily","fontWeight","lineHeight","COLOR_VALUES","BG_VALUES","BORDER_COLOR_VALUES","colorStyles","colorStylesResponsive","bgStyles","bgStylesResponsive","borderColorStyles","borderColorStylesResponsive","getColorStyles","color","bg","borderColor","BORDER_WIDTH_VALUES","borderTopWidthStyles","borderTopWidthStylesResponsive","borderRightWidthStyles","borderRightWidthStylesResponsive","borderBottomWidthStyles","borderBottomWidthStylesResponsive","borderLeftWidthStyles","borderLeftWidthStylesResponsive","borderStyleStyles","borderStyleStylesResponsive","getBorderStyles","border","borderX","borderY","borderTop","borderRight","borderBottom","borderLeft","borderStyle","topWidth","rightWidth","bottomWidth","leftWidth","ROUNDED_VALUES","roundedTopLeftStyles","roundedTopLeftStylesResponsive","roundedTopRightStyles","roundedTopRightStylesResponsive","roundedBottomRightStyles","roundedBottomRightStylesResponsive","roundedBottomLeftStyles","roundedBottomLeftStylesResponsive","getRoundnessStyles","rounded","roundedTop","roundedBottom","roundedLeft","roundedRight","roundedTopLeft","roundedTopRight","roundedBottomLeft","roundedBottomRight","topLeft","topRight","bottomRight","bottomLeft","SHADOW_VALUES","shadowStyles","shadowStylesResponsive","getShadowStyles","shadow","cursorStyles","cursorStylesResponsive","pointerEventsStyles","pointerEventsStylesResponsive","userSelectStyles","userSelectStylesResponsive","getInteractionStyles","cursor","pointerEvents","userSelect","textAlignStyles","textAlignStylesResponsive","whiteSpaceStyles","whiteSpaceStylesResponsive","getTextStyles","textAlign","whiteSpace","OPACITY_VALUES","opacityStyles","opacityStylesResponsive","getOpacityStyles","opacity","paddingStyles","getSpacingProps","getPaddingStyles","paddingTop","paddingRight","paddingBottom","paddingLeft","marginStyles","getMarginStyles","marginTop","marginRight","marginBottom","marginLeft","Box","as","children","p","pt","pr","pb","pl","px","py","m","mt","mr","mb","ml","mx","my","rest","Component","stylexClassName","stylexStyle","stylexRest","stylex.props","Text","size","weight","align","truncate","italic","defaultSizes","Heading","level","headingElement","defaultSize","jsx"],"mappings":";;AAAA,IAAIA,IAAS,CAAA,GAETC;AAEJ,SAASC,KAAiB;AACzB,MAAID,EAAmB,QAAOD;AAC9B,EAAAC,IAAoB,GAEpB,OAAO,eAAeD,GAAQ,cAAc;AAAA,IAC1C,OAAO;AAAA,EACV,CAAE,GACDA,EAAO,SAAS;AAChB,MAAIG,IAAQ,oBAAI,QAAO,GACnBC,IAAc;AAClB,WAASC,EAAaC,GAAS;AAC7B,QAAIC,GACAC,GACAC;AACJ,WAAIH,KAAW,SACbC,IAAeD,EAAQ,iBAAiB,IACxCE,IAAaF,EAAQ,eAAe,IACpCG,IAAYH,EAAQ,YAEf,WAAkB;AAOvB,eANII,IAAoB,CAAA,GACpBC,IAAY,IACZC,IAAc,MACdC,IAAc,IACdC,IAAYP,IAAe,OAAOJ,GAClCY,IAAS,IAAI,MAAM,UAAU,MAAM,GAC9BC,IAAI,GAAGA,IAAI,UAAU,QAAQA;AACpC,QAAAD,EAAOC,CAAC,IAAI,UAAUA,CAAC;AAEzB,aAAOD,EAAO,SAAS,KAAG;AACxB,YAAIE,IAAgBF,EAAO,IAAG;AAC9B,YAAI,EAAAE,KAAiB,QAAQA,MAAkB,KAG/C;AAAA,cAAI,MAAM,QAAQA,CAAa,GAAG;AAChC,qBAASC,IAAK,GAAGA,IAAKD,EAAc,QAAQC;AAC1C,cAAAH,EAAO,KAAKE,EAAcC,CAAE,CAAC;AAE/B;AAAA,UACF;AACA,cAAIC,IAAQV,KAAa,OAAOA,EAAUQ,CAAa,IAAIA;AAC3D,cAAIE,EAAM,SAAS,MAAM;AACvB,gBAAIC,IAAiB;AACrB,gBAAIN,KAAa,QAAQA,EAAU,IAAIK,CAAK,GAAG;AAC7C,kBAAIE,IAAaP,EAAU,IAAIK,CAAK;AACpC,cAAIE,KAAc,SAChBD,IAAiBC,EAAW,CAAC,GAC7BR,IAAcQ,EAAW,CAAC,GAC1BX,EAAkB,KAAK,MAAMA,GAAmBW,EAAW,CAAC,CAAC,GAC7DP,IAAYO,EAAW,CAAC;AAAA,YAE5B,OAAO;AACL,kBAAIC,IAAyB,CAAA;AAC7B,uBAASC,KAAQJ,GAAO;AACtB,oBAAIK,IAAQL,EAAMI,CAAI;AACtB,oBAAIA,MAASnB,GAAa;AACxB,sBAAIqB,IAAmBN,EAAMI,CAAI;AACjC,kBAAIE,MAAqB,OACvBZ,IAAcA,IAAcY,IAAmB,OAAOZ,IAAcY;AAEtE;AAAA,gBACF;AACA,gBAAI,OAAOD,KAAU,YAAYA,MAAU,OACpCd,EAAkB,SAASa,CAAI,MAClCb,EAAkB,KAAKa,CAAI,GACvBT,KAAa,QACfQ,EAAuB,KAAKC,CAAI,GAE9B,OAAOC,KAAU,aACnBJ,KAAkBA,IAAiB,MAAMI,IAAQA,MAIrD,QAAQ,MAAM,WAAW,OAAOD,GAAM,UAAU,EAAE,OAAO,OAAOC,CAAK,GAAG,6BAAiC,CAAC;AAAA,cAE9G;AACA,kBAAIV,KAAa,MAAM;AACrB,oBAAIY,IAAU,oBAAI,QAAO;AACzB,gBAAAZ,EAAU,IAAIK,GAAO,CAACC,GAAgBE,GAAwBT,GAAaa,CAAO,CAAC,GACnFZ,IAAYY;AAAA,cACd;AAAA,YACF;AACA,YAAIN,MACFT,IAAYA,IAAYS,IAAiB,MAAMT,IAAYS;AAAA,UAE/D,WACMZ;AACF,YAAII,KAAe,SACjBA,IAAc,CAAA,IAEhBA,IAAc,OAAO,OAAO,CAAA,GAAIO,GAAOP,CAAW;AAAA,eAC7C;AACL,gBAAIe,IAAW;AACf,qBAASC,KAAST,GAAO;AACvB,kBAAIU,IAASV,EAAMS,CAAK;AACxB,cAAIC,MAAW,WACRnB,EAAkB,SAASkB,CAAK,MAC/BC,KAAU,SACRjB,KAAe,SACjBA,IAAc,CAAA,IAEZe,KAAY,SACdA,IAAW,CAAA,IAEbA,EAASC,CAAK,IAAIC,IAEpBnB,EAAkB,KAAKkB,CAAK,GAC5Bd,IAAY;AAAA,YAGlB;AACA,YAAIa,KAAY,SACdf,IAAc,OAAO,OAAOe,GAAUf,CAAW;AAAA,UAErD;AAAA;AAAA,MAEJ;AACA,UAAIkB,IAAa,CAACnB,GAAWC,GAAaC,CAAW;AACrD,aAAOiB;AAAA,IACT;AAAA,EACF;AACA,MAAIC,IAAW/B,EAAO,SAASK,EAAY;AAC3C,SAAA0B,EAAS,UAAU1B,GACZL;AACR;AAEA,IAAIgC,KAA8B,gBAAA9B,GAAa;AA4B/C,SAAS+B,MAASlB,GAAQ;AACxB,QAAM,CAACJ,GAAWQ,GAAOe,CAAY,IAAIF,GAAc,OAAOjB,CAAM,GAC9DoB,IAAS,CAAA;AACf,SAAIxB,KAAa,QAAQA,MAAc,OACrCwB,EAAO,YAAYxB,IAEjBQ,KAAS,QAAQ,OAAO,KAAKA,CAAK,EAAE,SAAS,MAC/CgB,EAAO,QAAQhB,IAEbe,KAAgB,QAAQA,MAAiB,OAC3CC,EAAO,gBAAgB,IAAID,IAEtBC;AACT;AC3KA,SAASC,GAAEC,GAAE;AAAC,MAAIC,GAAEC,GAAEC,IAAE;AAAG,MAAa,OAAOH,KAAjB,YAA8B,OAAOA,KAAjB,SAAmB,CAAAG,KAAGH;AAAA,WAAoB,OAAOA,KAAjB,SAAmB,KAAG,MAAM,QAAQA,CAAC,GAAE;AAAC,QAAII,IAAEJ,EAAE;AAAO,SAAIC,IAAE,GAAEA,IAAEG,GAAEH,IAAI,CAAAD,EAAEC,CAAC,MAAIC,IAAEH,GAAEC,EAAEC,CAAC,CAAC,OAAKE,MAAIA,KAAG,MAAKA,KAAGD;AAAA,EAAE,MAAM,MAAIA,KAAKF,EAAE,CAAAA,EAAEE,CAAC,MAAIC,MAAIA,KAAG,MAAKA,KAAGD;AAAG,SAAOC;AAAC;AAAQ,SAASE,KAAM;AAAC,WAAQL,GAAEC,GAAEC,IAAE,GAAEC,IAAE,IAAGC,IAAE,UAAU,QAAOF,IAAEE,GAAEF,IAAI,EAACF,IAAE,UAAUE,CAAC,OAAKD,IAAEF,GAAEC,CAAC,OAAKG,MAAIA,KAAG,MAAKA,KAAGF;AAAG,SAAOE;AAAC;ACCxW,MAAMG,KAAc;AAAA,EACzB,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,eAAe;AAAA,IACb,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX;ACMO,SAASC,EAA0BC,GAA8BC,GAA0C;AAChH,QAAMC,IAAOF,EAAQ,QAAQC,GACvBE,IAAKH,EAAQ,MAAME,GACnBE,IAAKJ,EAAQ,MAAMG,GACnBE,IAAKL,EAAQ,MAAMI,GACnBE,IAAKN,EAAQ,MAAMK,GACnBE,IAAOP,EAAQ,KAAK,KAAKM;AAC/B,SAAO;AAAA,IACL,MAAAJ;AAAA,IACA,IAAAC;AAAA,IACA,IAAAC;AAAA,IACA,IAAAC;AAAA,IACA,IAAAC;AAAA,IACA,OAAOC;AAAA,EAAA;AAEX;ACxCA,MAAMC,KAAgB;AAAA,EACpB,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,gBAAgB;AAAA,IACd,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,eAAe;AAAA,IACb,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,eAAe;AAAA,IACb,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAA0B;AAAA,EAC9B,YAAY,CAAC9B,MAA+C,CAAC;AAAA,IAC3D,SAASA,EAAM,QAAQ,OAAO,aAAaA,EAAM,SAASA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,aAAaA,EAAM,KAAK;AAAA,IAChS,OAAO;AAAA,EAAA,GACN;AAAA,IACD,cAAcA,EAAM,QAAQ,OAAOA,EAAM,OAAO;AAAA,IAChD,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,KAAK,KAAK,OAAOA,EAAM,KAAK,IAAI;AAAA,EAAA,CACtD;AACH;AAIO,SAAS+B,GAAiBC,GAAmB;AAClD,MAAKA;AACL,WAAO,OAAOA,KAAY,WAAWH,GAAcG,CAAO,IAAIF,GAAwB,WAAWV,EAAuBY,GAAS,OAAO,CAAC;AAC3I;ACtDA,MAAMC,KAAiB;AAAA,EACrB,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAA2B;AAAA,EAC/B,YAAY,CAAClC,MAAgD,CAAC;AAAA,IAC5D,SAASA,EAAM,QAAQ,OAAO,aAAaA,EAAM,SAASA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,YAAYA,EAAM,KAAK;AAAA,IAC9R,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAeA,EAAM,QAAQ,OAAOA,EAAM,OAAO;AAAA,IACjD,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,KAAK,KAAK,OAAOA,EAAM,KAAK,IAAI;AAAA,EAAA,CACtD;AACH;AAKO,SAASmC,GAAkBC,GAAqB;AACrD,SAAKA,IACE,OAAOA,KAAa,WAAWH,GAAeG,CAAQ,IAAIF,GAAyB,WAAWd,EAAuBgB,GAAU,QAAQ,CAAC,IADzH;AAExB;AC1CA,MAAMC,IAAgB,WAChBC,KAAiB;AAAA,EACrB,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAA2B;AAAA,EAC/B,YAAY,CAACvC,MAAgD,CAAC;AAAA,IAC5D,SAASA,EAAM,QAAQ,OAAO,aAAaA,EAAM,SAASA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,YAAYA,EAAM,KAAK;AAAA,IAC5R,OAAO;AAAA,EAAA,GACN;AAAA,IACD,cAAcA,EAAM,QAAQ,OAAOA,EAAM,OAAO;AAAA,IAChD,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,cAAcA,EAAM,KAAK,KAAK,OAAOA,EAAM,KAAK,IAAI;AAAA,EAAA,CACrD;AACH,GACMwC,KAAkB;AAAA,EACtB,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAA4B;AAAA,EAChC,YAAY,CAACzC,MAAgD,CAAC;AAAA,IAC5D,SAASA,EAAM,QAAQ,OAAO,cAAcA,EAAM,SAASA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,YAAYA,EAAM,KAAK;AAAA,IAC/R,OAAO;AAAA,EAAA,GACN;AAAA,IACD,cAAcA,EAAM,QAAQ,OAAOA,EAAM,OAAO;AAAA,IAChD,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,cAAcA,EAAM,KAAK,KAAK,OAAOA,EAAM,KAAK,IAAI;AAAA,EAAA,CACrD;AACH,GACM0C,KAAkB;AAAA,EACtB,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAA4B;AAAA,EAChC,YAAY,CAAC3C,MAAgD,CAAC;AAAA,IAC5D,SAASA,EAAM,QAAQ,OAAO,cAAcA,EAAM,SAASA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,WAAWA,EAAM,KAAK;AAAA,IAC5R,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAeA,EAAM,QAAQ,OAAOA,EAAM,OAAO;AAAA,IACjD,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,cAAcA,EAAM,KAAK,KAAK,OAAOA,EAAM,KAAK,IAAI;AAAA,EAAA,CACrD;AACH;AAMO,SAAS4C,GAAkB;AAAA,EAChC,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AACF,GAAkB;AAChB,QAAMxD,IAAS,CAAA;AACf,SAAIsD,KACFtD,EAAO,KAAK,OAAOsD,KAAa,WAAWP,GAAeO,CAAQ,IAAIN,GAAyB,WAAWnB,EAAuByB,GAAUR,CAAa,CAAC,CAAC,GAExJS,KACFvD,EAAO,KAAK,OAAOuD,KAAc,WAAWN,GAAgBM,CAAS,IAAIL,GAA0B,WAAWrB,EAAuB0B,GAAWT,CAAa,CAAC,CAAC,GAE7JU,KACFxD,EAAO,KAAK,OAAOwD,KAAc,WAAWL,GAAgBK,CAAS,IAAIJ,GAA0B,WAAWvB,EAAuB2B,GAAWV,CAAa,CAAC,CAAC,GAE1J9C;AACT;ACnHA,MAAMyD,IAAgB;AAAA,EACpB,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,SAAS;AACX,GACMC,KAAe;AAAA,EACnB,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAAyB;AAAA,EAC7B,YAAY,CAAClD,MAA8C,CAAC;AAAA,IAC1D,SAASgD,EAAchD,EAAM,IAAI,KAAK,OAAO,aAAagD,EAAchD,EAAM,IAAI,MAAMgD,EAAchD,EAAM,EAAE,KAAK,OAAO,aAAagD,EAAchD,EAAM,EAAE,MAAMgD,EAAchD,EAAM,EAAE,KAAK,OAAO,cAAcgD,EAAchD,EAAM,EAAE,MAAMgD,EAAchD,EAAM,EAAE,KAAK,OAAO,aAAagD,EAAchD,EAAM,EAAE,MAAMgD,EAAchD,EAAM,EAAE,KAAK,OAAO,cAAcgD,EAAchD,EAAM,EAAE,MAAMgD,EAAchD,EAAM,KAAK,CAAC,KAAK,OAAO,aAAagD,EAAchD,EAAM,KAAK,CAAC;AAAA,IACnd,OAAO;AAAA,EAAA,GACN;AAAA,IACD,cAAcgD,EAAchD,EAAM,IAAI,KAAK,OAAOgD,EAAchD,EAAM,IAAI,IAAI;AAAA,IAC9E,cAAcgD,EAAchD,EAAM,EAAE,KAAK,OAAOgD,EAAchD,EAAM,EAAE,IAAI;AAAA,IAC1E,eAAegD,EAAchD,EAAM,EAAE,KAAK,OAAOgD,EAAchD,EAAM,EAAE,IAAI;AAAA,IAC3E,eAAegD,EAAchD,EAAM,EAAE,KAAK,OAAOgD,EAAchD,EAAM,EAAE,IAAI;AAAA,IAC3E,cAAcgD,EAAchD,EAAM,EAAE,KAAK,OAAOgD,EAAchD,EAAM,EAAE,IAAI;AAAA,IAC1E,eAAegD,EAAchD,EAAM,KAAK,CAAC,KAAK,OAAOgD,EAAchD,EAAM,KAAK,CAAC,IAAI;AAAA,EAAA,CACpF;AACH;AAKO,SAASmD,GAAgBC,GAAiB;AAC/C,SAAKA,IACE,OAAOA,KAAW,WAAWH,GAAaG,CAAM,IAAIF,GAAuB,WAAW9B,EAAuBgC,GAAQ,MAAM,CAAC,IAD/G;AAEtB;ACnDA,MAAMC,KAAe;AAAA,EACnB,QAAQ,CAACrD,MAAkB,CAAC;AAAA,IAC1B,QAAQA,KAAS,OAAO,aAAaA;AAAA,IACrC,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,CAAK;AAAA,EAAA,CAClG;AAAA,EACD,kBAAkB,CAACA,MAAoC,CAAC;AAAA,IACtD,SAASA,EAAM,QAAQ,OAAO,aAAaA,EAAM,SAASA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,YAAYA,EAAM,KAAK;AAAA,IAC9R,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,IAAI;AAAA,IACtG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,KAAK,CAAC;AAAA,EAAA,CACzG;AAAA,EACD,WAAW,CAACA,MAAkB,CAAC;AAAA,IAC7B,OAAOA,KAAS,OAAO,aAAaA;AAAA,IACpC,OAAO;AAAA,EAAA,GACN;AAAA,IACD,kBAAkB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,CAAK;AAAA,EAAA,CACrG;AAAA,EACD,qBAAqB,CAACA,MAAoC,CAAC;AAAA,IACzD,QAAQA,EAAM,QAAQ,OAAO,cAAcA,EAAM,SAASA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,aAAaA,EAAM,KAAK;AAAA,IAC/R,OAAO;AAAA,EAAA,GACN;AAAA,IACD,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,IAAI;AAAA,IACvG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,KAAK,CAAC;AAAA,EAAA,CAC1G;AAAA,EACD,UAAU,CAACA,MAAkB,CAAC;AAAA,IAC5B,QAAQA,KAAS,OAAO,YAAYA;AAAA,IACpC,OAAO;AAAA,EAAA,GACN;AAAA,IACD,iBAAiB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,CAAK;AAAA,EAAA,CACpG;AAAA,EACD,oBAAoB,CAACA,MAAoC,CAAC;AAAA,IACxD,SAASA,EAAM,QAAQ,OAAO,aAAaA,EAAM,SAASA,EAAM,MAAM,OAAO,YAAYA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,aAAaA,EAAM,KAAK;AAAA,IAC7R,OAAO;AAAA,EAAA,GACN;AAAA,IACD,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,IAAI;AAAA,IACvG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,KAAK,CAAC;AAAA,EAAA,CAC1G;AAAA,EACD,WAAW,CAACA,MAAkB,CAAC;AAAA,IAC7B,QAAQA,KAAS,OAAO,YAAYA;AAAA,IACpC,OAAO;AAAA,EAAA,GACN;AAAA,IACD,kBAAkB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,CAAK;AAAA,EAAA,CACrG;AAAA,EACD,qBAAqB,CAACA,MAAoC,CAAC;AAAA,IACzD,SAASA,EAAM,QAAQ,OAAO,cAAcA,EAAM,SAASA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,aAAaA,EAAM,KAAK;AAAA,IAChS,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,IAAI;AAAA,IACtG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,KAAK,CAAC;AAAA,EAAA,CAC1G;AAAA,EACD,UAAU,CAACA,MAAkB,CAAC;AAAA,IAC5B,QAAQA,KAAS,OAAO,YAAYA;AAAA,IACpC,OAAO;AAAA,EAAA,GACN;AAAA,IACD,iBAAiB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,CAAK;AAAA,EAAA,CACpG;AAAA,EACD,oBAAoB,CAACA,MAAoC,CAAC;AAAA,IACxD,SAASA,EAAM,QAAQ,OAAO,aAAaA,EAAM,SAASA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,YAAYA,EAAM,KAAK;AAAA,IAC7R,OAAO;AAAA,EAAA,GACN;AAAA,IACD,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,IAAI;AAAA,IACvG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,KAAK,CAAC;AAAA,EAAA,CAC1G;AAAA,EACD,OAAO,CAACA,MAAkB,CAAC;AAAA,IACzB,QAAQA,KAAS,OAAO,YAAYA;AAAA,IACpC,OAAO;AAAA,EAAA,GACN;AAAA,IACD,cAAc,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,CAAK;AAAA,EAAA,CACjG;AAAA,EACD,iBAAiB,CAACA,MAAoC,CAAC;AAAA,IACrD,SAASA,EAAM,QAAQ,OAAO,cAAcA,EAAM,SAASA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,aAAaA,EAAM,KAAK;AAAA,IAClS,OAAO;AAAA,EAAA,GACN;AAAA,IACD,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,IAAI;AAAA,IACvG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,KAAK,CAAC;AAAA,EAAA,CAC1G;AACH;AAGA,SAASuD,EAAYvD,GAA0C;AAC7D,MAAIA,MAAU;AACd,WAAI,OAAOA,KAAU,WAAiBA,IAClCA,MAAU,IAAU,MACjB,gCAAgCA,CAAK;AAC9C;AACA,SAASwD,EAAaC,GAA+EzD,GAAuC;AAC1I,MAAI,OAAOA,KAAU,UAAU;AAC7B,UAAM0D,IAAWH,EAAYvD,CAAK;AAClC,WAAO,OAAO0D,KAAa,WAAWL,GAAaI,CAAG,EAAEC,CAAQ,IAAI;AAAA,EACtE;AACA,SAAOL,GAAa,GAAGI,CAAG,YAAY,EAAErC,EAAuB;AAAA,IAC7D,MAAMmC,EAAYvD,EAAM,IAAI;AAAA,IAC5B,IAAIuD,EAAYvD,EAAM,EAAE;AAAA,IACxB,IAAIuD,EAAYvD,EAAM,EAAE;AAAA,IACxB,IAAIuD,EAAYvD,EAAM,EAAE;AAAA,IACxB,IAAIuD,EAAYvD,EAAM,EAAE;AAAA,IACxB,OAAOuD,EAAYvD,EAAM,KAAK,CAAC;AAAA,EAAA,GAC9B,MAAM,CAAC;AACZ;AAGO,SAAS2D,GAAgBlD,GAAkB;AAChD,QAAM;AAAA,IACJ,GAAAmD;AAAA,IACA,GAAAC;AAAA,IACA,MAAAC;AAAA,IACA,MAAAC;AAAA,IACA,MAAAC;AAAA,IACA,MAAAC;AAAA,EAAA,IACExD,GACEyD,IAAQV,EAAa,SAASI,CAAC,GAC/BO,IAASX,EAAa,UAAUK,CAAC,GACjCO,IAAWZ,EAAa,YAAYM,CAAI,GACxCO,IAAWb,EAAa,YAAYO,CAAI,GACxCO,IAAYd,EAAa,aAAaQ,CAAI,GAC1CO,IAAYf,EAAa,aAAaS,CAAI,GAC1C1E,IAAS,CAAA;AACf,SAAI2E,MAAU,UACZ3E,EAAO,KAAK2E,CAAK,GAEfC,MAAW,UACb5E,EAAO,KAAK4E,CAAM,GAEhBC,MAAa,UACf7E,EAAO,KAAK6E,CAAQ,GAElBC,MAAa,UACf9E,EAAO,KAAK8E,CAAQ,GAElBC,MAAc,UAChB/E,EAAO,KAAK+E,CAAS,GAEnBC,MAAc,UAChBhF,EAAO,KAAKgF,CAAS,GAEhBhF;AACT;ACtKA,MAAMiF,KAAsB;AAAA,EAC1B,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,kBAAkB;AAAA,IAChB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,KAAK;AAAA,IACH,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,eAAe;AAAA,IACb,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAAgC;AAAA,EACpC,YAAY,CAACzE,MAAqD,CAAC;AAAA,IACjE,SAASA,EAAM,QAAQ,OAAO,cAAcA,EAAM,SAASA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,YAAYA,EAAM,KAAK;AAAA,IAC/R,OAAO;AAAA,EAAA,GACN;AAAA,IACD,cAAcA,EAAM,QAAQ,OAAOA,EAAM,OAAO;AAAA,IAChD,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,KAAK,KAAK,OAAOA,EAAM,KAAK,IAAI;AAAA,EAAA,CACtD;AACH,GACM0E,KAAuB;AAAA,EAC3B,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,KAAK;AAAA,IACH,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,gBAAgB;AAAA,IACd,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,iBAAiB;AAAA,IACf,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,gBAAgB;AAAA,IACd,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAAiC;AAAA,EACrC,YAAY,CAAC3E,MAAsD,CAAC;AAAA,IAClE,SAASA,EAAM,QAAQ,OAAO,aAAaA,EAAM,SAASA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,YAAYA,EAAM,KAAK;AAAA,IAC9R,OAAO;AAAA,EAAA,GACN;AAAA,IACD,cAAcA,EAAM,QAAQ,OAAOA,EAAM,OAAO;AAAA,IAChD,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,cAAcA,EAAM,KAAK,KAAK,OAAOA,EAAM,KAAK,IAAI;AAAA,EAAA,CACrD;AACH,GACM4E,KAAmB;AAAA,EACvB,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,KAAK;AAAA,IACH,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAA6B;AAAA,EACjC,YAAY,CAAC7E,MAAkD,CAAC;AAAA,IAC9D,SAASA,EAAM,QAAQ,OAAO,cAAcA,EAAM,SAASA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,aAAaA,EAAM,KAAK;AAAA,IACjS,OAAO;AAAA,EAAA,GACN;AAAA,IACD,cAAcA,EAAM,QAAQ,OAAOA,EAAM,OAAO;AAAA,IAChD,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,cAAcA,EAAM,KAAK,KAAK,OAAOA,EAAM,KAAK,IAAI;AAAA,EAAA,CACrD;AACH,GACM8E,KAAkB;AAAA,EACtB,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,KAAK;AAAA,IACH,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAA4B;AAAA,EAChC,YAAY,CAAC/E,MAAiD,CAAC;AAAA,IAC7D,SAASA,EAAM,QAAQ,OAAO,cAAcA,EAAM,SAASA,EAAM,MAAM,OAAO,YAAYA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,aAAaA,EAAM,KAAK;AAAA,IAC/R,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAeA,EAAM,QAAQ,OAAOA,EAAM,OAAO;AAAA,IACjD,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,cAAcA,EAAM,KAAK,KAAK,OAAOA,EAAM,KAAK,IAAI;AAAA,EAAA,CACrD;AACH,GACMgF,KAAiB;AAAA,EACrB,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,gBAAgB;AAAA,IACd,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAA2B;AAAA,EAC/B,YAAY,CAACjF,MAAgD,CAAC;AAAA,IAC5D,SAASA,EAAM,QAAQ,OAAO,cAAcA,EAAM,SAASA,EAAM,MAAM,OAAO,YAAYA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,aAAaA,EAAM,KAAK;AAAA,IAC/R,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAeA,EAAM,QAAQ,OAAOA,EAAM,OAAO;AAAA,IACjD,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,cAAcA,EAAM,KAAK,KAAK,OAAOA,EAAM,KAAK,IAAI;AAAA,EAAA,CACrD;AACH,GACMkF,IAAuB;AAAA,EAC3B,MAAM,CAAClF,MAAkB,CAAC;AAAA,IACxB,QAAQA,KAAS,OAAO,YAAYA;AAAA,IACpC,OAAO;AAAA,EAAA,GACN;AAAA,IACD,YAAYA,KAAwB;AAAA,EAAA,CACrC;AAAA,EACD,gBAAgB,CAACA,MAAoC,CAAC;AAAA,IACpD,SAASA,EAAM,QAAQ,OAAO,aAAaA,EAAM,SAASA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,aAAaA,EAAM,KAAK;AAAA,IAC9R,OAAO;AAAA,EAAA,GACN;AAAA,IACD,cAAcA,EAAM,QAAQ,OAAOA,EAAM,OAAO;AAAA,IAChD,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,eAAeA,EAAM,KAAK,KAAK,OAAOA,EAAM,KAAK,IAAI;AAAA,EAAA,CACtD;AAAA,EACD,KAAK,CAACA,MAAkB,CAAC;AAAA,IACvB,QAAQA,KAAS,OAAO,aAAaA;AAAA,IACrC,OAAO;AAAA,EAAA,GACN;AAAA,IACD,YAAY,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,CAAK;AAAA,EAAA,CAC/F;AAAA,EACD,eAAe,CAACA,MAAoC,CAAC;AAAA,IACnD,SAASA,EAAM,QAAQ,OAAO,cAAcA,EAAM,SAASA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,YAAYA,EAAM,KAAK;AAAA,IAChS,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,IAAI;AAAA,IACtG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,KAAK,CAAC;AAAA,EAAA,CAC1G;AACH;AAoBA,SAASmF,EAAgBnF,GAA8B;AACrD,SAAIA,MAAU,SAAkB,WAC5B,OAAOA,KAAU,WAAiBA,IAClCA,MAAU,IAAU,MACjB,gCAAgCA,CAAK;AAC9C;AACA,SAASoF,GAAYC,GAAqCC,GAAwCC,GAA2C;AAC3I,MAAIF,MAAQ,UAAaC,MAAW,UAAaC,MAAc;AAC7D;AAGF,MAAI,EADiB,OAAOF,KAAQ,YAAY,OAAOC,KAAW,YAAY,OAAOC,KAAc,WAChF;AACjB,UAAMC,IAAMF,KAAUD,GAChBI,IAASF,KAAaF,GACtBK,IAAWP,EAAgBK,CAAG,GAC9BG,IAAcR,EAAgBM,CAAM,GACpCG,IAAWF,MAAaC,IAAcD,IAAW,GAAGA,CAAQ,IAAIC,CAAW;AACjF,WAAOT,EAAqB,IAAIU,CAAQ;AAAA,EAC1C;AACA,QAAMC,IAAS,OAAOR,KAAQ,WAAWA,IAAM,CAAA,GACzCS,IAAY,OAAOR,KAAW,WAAWA,IAAS,CAAA,GAClDS,IAAe,OAAOR,KAAc,WAAWA,IAAY,CAAA,GAC3DS,IAA4B,CAACC,GAAuBC,GAAuBC,MAAkC;AACjH,UAAMX,IAAMU,KAAUD,GAChBR,IAASU,KAAUF,GACnBP,IAAWP,EAAgBK,CAAG,GAC9BG,IAAcR,EAAgBM,CAAM;AAC1C,WAAOC,MAAaC,IAAcD,IAAW,GAAGA,CAAQ,IAAIC,CAAW;AAAA,EACzE;AACA,SAAOT,EAAqB,cAAc9D,EAAuB;AAAA,IAC/D,MAAM4E,EAA0B,OAAOX,KAAQ,WAAWA,EAAI,OAAOA,GAAK,OAAOC,KAAW,WAAWA,EAAO,OAAOA,GAAQ,OAAOC,KAAc,WAAWA,EAAU,OAAOA,CAAS;AAAA,IACvL,IAAIS,EAA0BH,EAAO,IAAIC,EAAU,IAAIC,EAAa,EAAE;AAAA,IACtE,IAAIC,EAA0BH,EAAO,IAAIC,EAAU,IAAIC,EAAa,EAAE;AAAA,IACtE,IAAIC,EAA0BH,EAAO,IAAIC,EAAU,IAAIC,EAAa,EAAE;AAAA,IACtE,IAAIC,EAA0BH,EAAO,IAAIC,EAAU,IAAIC,EAAa,EAAE;AAAA,IACtE,OAAOC,EAA0BH,EAAO,KAAK,GAAGC,EAAU,KAAK,GAAGC,EAAa,KAAK,CAAC;AAAA,EAAA,GACpF,QAAQ,CAAC;AACd;AACA,SAASK,GAAaC,GAAgCC,GAAmBC,GAAqBC,GAAoB;AAChH,MAAIH,MAAS;AACX,WAAI,OAAOA,KAAS,WACXnB,EAAqB,KAAKmB,CAAI,IAEhCnB,EAAqB,eAAe9D,EAAuBiF,GAAM,UAAU,CAAC;AAErF,MAAIC,MAAa,UAAaC,MAAe,UAAaC,MAAc;AACtE;AAEF,QAAMC,IAAOH,KAAY,GACnBI,IAASH,KAAc,GACvBI,IAAQH,KAAa;AAC3B,SAAOtB,EAAqB,KAAK,GAAGuB,CAAI,IAAIC,CAAM,IAAIC,CAAK,EAAE;AAC/D;AACO,SAASC,GAAiBnG,GAAqB;AACpD,QAAM;AAAA,IACJ,eAAAoG;AAAA,IACA,gBAAAC;AAAA,IACA,YAAAC;AAAA,IACA,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,KAAA5B;AAAA,IACA,QAAAC;AAAA,IACA,WAAAC;AAAA,IACA,MAAAc;AAAA,IACA,UAAAC;AAAA,IACA,YAAAC;AAAA,IACA,WAAAC;AAAA,EAAA,IACE/F,GACElB,IAAS,CAAA;AACf,EAAIsH,KACFtH,EAAO,KAAK,OAAOsH,KAAkB,WAAWrC,GAAoBqC,CAAa,IAAIpC,GAA8B,WAAWrD,EAAuByF,GAAe,KAAK,CAAC,CAAC,GAEzKC,KACFvH,EAAO,KAAK,OAAOuH,KAAmB,WAAWpC,GAAqBoC,CAAc,IAAInC,GAA+B,WAAWvD,EAAuB0F,GAAgB,OAAO,CAAC,CAAC,GAEhLC,KACFxH,EAAO,KAAK,OAAOwH,KAAe,WAAWnC,GAAiBmC,CAAU,IAAIlC,GAA2B,WAAWzD,EAAuB2F,GAAY,SAAS,CAAC,CAAC,GAE9JC,KACFzH,EAAO,KAAK,OAAOyH,KAAc,WAAWlC,GAAgBkC,CAAS,IAAIjC,GAA0B,WAAW3D,EAAuB4F,GAAW,MAAM,CAAC,CAAC,GAEtJC,KACF1H,EAAO,KAAK,OAAO0H,KAAa,WAAWjC,GAAeiC,CAAQ,IAAIhC,GAAyB,WAAW7D,EAAuB6F,GAAU,QAAQ,CAAC,CAAC;AAEvJ,QAAMC,IAAW9B,GAAYC,GAAKC,GAAQC,CAAS;AACnD,EAAI2B,KACF3H,EAAO,KAAK2H,CAAQ;AAEtB,QAAMC,IAAYf,GAAaC,GAAMC,GAAUC,GAAYC,CAAS;AACpE,SAAIW,KACF5H,EAAO,KAAK4H,CAAS,GAEhB5H;AACT;ACpUA,MAAM6H,KAAoB;AAAA,EACxB,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,KAAK;AAAA,IACH,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAA8B;AAAA,EAClC,YAAY,CAACrH,MAAmD,CAAC;AAAA,IAC/D,SAASA,EAAM,QAAQ,OAAO,aAAaA,EAAM,SAASA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,YAAYA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,aAAaA,EAAM,KAAK;AAAA,IAC7R,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAeA,EAAM,QAAQ,OAAOA,EAAM,OAAO;AAAA,IACjD,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,eAAeA,EAAM,KAAK,KAAK,OAAOA,EAAM,KAAK,IAAI;AAAA,EAAA,CACtD;AACH,GACMsH,IAAoB;AAAA,EACxB,qBAAqB,CAACtH,MAAkB,CAAC;AAAA,IACvC,QAAQA,KAAS,OAAO,YAAYA;AAAA,IACpC,OAAO;AAAA,EAAA,GACN;AAAA,IACD,2BAA2BA,KAAwB;AAAA,EAAA,CACpD;AAAA,EACD,+BAA+B,CAACA,MAAoC,CAAC;AAAA,IACnE,SAASA,EAAM,QAAQ,OAAO,aAAaA,EAAM,SAASA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,aAAaA,EAAM,KAAK;AAAA,IAChS,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAeA,EAAM,QAAQ,OAAOA,EAAM,OAAO;AAAA,IACjD,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,eAAeA,EAAM,KAAK,KAAK,OAAOA,EAAM,KAAK,IAAI;AAAA,EAAA,CACtD;AAAA,EACD,kBAAkB,CAACA,MAAkB,CAAC;AAAA,IACpC,QAAQA,KAAS,OAAO,aAAaA;AAAA,IACrC,OAAO;AAAA,EAAA,GACN;AAAA,IACD,wBAAwBA,KAAwB;AAAA,EAAA,CACjD;AAAA,EACD,4BAA4B,CAACA,MAAoC,CAAC;AAAA,IAChE,SAASA,EAAM,QAAQ,OAAO,cAAcA,EAAM,SAASA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,aAAaA,EAAM,KAAK;AAAA,IACjS,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAeA,EAAM,QAAQ,OAAOA,EAAM,OAAO;AAAA,IACjD,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,KAAK,KAAK,OAAOA,EAAM,KAAK,IAAI;AAAA,EAAA,CACtD;AACH;AAOO,SAASuH,GAAc9G,GAAkB;AAC9C,QAAM;AAAA,IACJ,aAAA+G;AAAA,IACA,qBAAAC;AAAA,IACA,kBAAAC;AAAA,EAAA,IACEjH,GACElB,IAAS,CAAA;AACf,SAAIiI,MAAgB,UAClBjI,EAAO,KAAK,OAAOiI,KAAgB,WAAWJ,GAAkBI,CAAW,IAAIH,GAA4B,WAAWjG,EAAuBoG,GAAa,MAAM,CAAC,CAAC,GAEhKC,MAAwB,UAC1BlI,EAAO,KAAK,OAAOkI,KAAwB,WAAWH,EAAkB,oBAAoBG,CAAmB,IAAIH,EAAkB,8BAA8BlG,EAAuBqG,GAAqB,MAAM,CAAC,CAAC,GAErNC,MAAqB,UACvBnI,EAAO,KAAK,OAAOmI,KAAqB,WAAWJ,EAAkB,iBAAiBI,CAAgB,IAAIJ,EAAkB,2BAA2BlG,EAAuBsG,GAAkB,MAAM,CAAC,CAAC,GAEnMnI;AACT;ACrFA,MAAMoI,KAAc;AAAA,EAClB,QAAQ,CAAC3H,MAAkB,CAAC;AAAA,IAC1B,QAAQA,KAAS,OAAO,aAAaA;AAAA,IACrC,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,CAAK;AAAA,EAAA,CAClG;AAAA,EACD,kBAAkB,CAACA,MAAoC,CAAC;AAAA,IACtD,SAASA,EAAM,QAAQ,OAAO,cAAcA,EAAM,SAASA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,aAAaA,EAAM,KAAK;AAAA,IACjS,OAAO;AAAA,EAAA,GACN;AAAA,IACD,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,IAAI;AAAA,IACvG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,KAAK,CAAC;AAAA,EAAA,CACzG;AAAA,EACD,MAAM,CAACA,MAAkB,CAAC;AAAA,IACxB,QAAQA,KAAS,OAAO,YAAYA;AAAA,IACpC,OAAO;AAAA,EAAA,GACN;AAAA,IACD,aAAa,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,CAAK;AAAA,EAAA,CAChG;AAAA,EACD,gBAAgB,CAACA,MAAoC,CAAC;AAAA,IACpD,SAASA,EAAM,QAAQ,OAAO,aAAaA,EAAM,SAASA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,aAAaA,EAAM,KAAK;AAAA,IAC/R,OAAO;AAAA,EAAA,GACN;AAAA,IACD,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,IAAI;AAAA,IACvG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,KAAK,CAAC;AAAA,EAAA,CACzG;AAAA,EACD,OAAO,CAACA,MAAkB,CAAC;AAAA,IACzB,QAAQA,KAAS,OAAO,YAAYA;AAAA,IACpC,OAAO;AAAA,EAAA,GACN;AAAA,IACD,cAAc,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,CAAK;AAAA,EAAA,CACjG;AAAA,EACD,iBAAiB,CAACA,MAAoC,CAAC;AAAA,IACrD,SAASA,EAAM,QAAQ,OAAO,cAAcA,EAAM,SAASA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,aAAaA,EAAM,KAAK;AAAA,IAC9R,OAAO;AAAA,EAAA,GACN;AAAA,IACD,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,IAAI;AAAA,IACvG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,KAAK,CAAC;AAAA,EAAA,CACzG;AAAA,EACD,KAAK,CAACA,MAAkB,CAAC;AAAA,IACvB,QAAQA,KAAS,OAAO,YAAYA;AAAA,IACpC,OAAO;AAAA,EAAA,GACN;AAAA,IACD,YAAY,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,CAAK;AAAA,EAAA,CAC/F;AAAA,EACD,eAAe,CAACA,MAAoC,CAAC;AAAA,IACnD,SAASA,EAAM,QAAQ,OAAO,cAAcA,EAAM,SAASA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,YAAYA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,YAAYA,EAAM,KAAK;AAAA,IAC7R,OAAO;AAAA,EAAA,GACN;AAAA,IACD,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,IAAI;AAAA,IACvG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,KAAK,CAAC;AAAA,EAAA,CAC1G;AACH;AAGA,SAASuD,EAAYvD,GAA0C;AAC7D,MAAIA,MAAU;AACd,WAAI,OAAOA,KAAU,WAAiBA,IAClCA,MAAU,IAAU,MACjB,gCAAgCA,CAAK;AAC9C;AACA,SAAS4H,EAAcnE,GAA0CzD,GAAuC;AACtG,MAAI,OAAOA,KAAU,UAAU;AAC7B,UAAM0D,IAAWH,EAAYvD,CAAK;AAClC,WAAO,OAAO0D,KAAa,WAAWiE,GAAYlE,CAAG,EAAEC,CAAQ,IAAI;AAAA,EACrE;AACA,SAAOiE,GAAY,GAAGlE,CAAG,YAAY,EAAErC,EAAuB;AAAA,IAC5D,MAAMmC,EAAYvD,EAAM,IAAI;AAAA,IAC5B,IAAIuD,EAAYvD,EAAM,EAAE;AAAA,IACxB,IAAIuD,EAAYvD,EAAM,EAAE;AAAA,IACxB,IAAIuD,EAAYvD,EAAM,EAAE;AAAA,IACxB,IAAIuD,EAAYvD,EAAM,EAAE;AAAA,IACxB,OAAOuD,EAAYvD,EAAM,KAAK,CAAC;AAAA,EAAA,GAC9B,GAAG,CAAC;AACT;AAIO,SAAS6H,GAAepH,GAAmB;AAChD,QAAM;AAAA,IACJ,OAAAqH;AAAA,IACA,QAAAC;AAAA,IACA,QAAAC;AAAA,IACA,KAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,MAAAC;AAAA,EAAA,IACE3H,GAGE4H,IAAWT,EAAc,OAAOK,KAAOD,KAAUF,CAAK,GACtDQ,IAAaV,EAAc,SAASM,KAASH,KAAUD,CAAK,GAC5DS,IAAcX,EAAc,UAAUO,KAAUH,KAAUF,CAAK,GAC/DU,IAAYZ,EAAc,QAAQQ,KAAQL,KAAUD,CAAK,GACzDvI,IAAS,CAAA;AACf,SAAI8I,MAAa,UACf9I,EAAO,KAAK8I,CAAQ,GAElBC,MAAe,UACjB/I,EAAO,KAAK+I,CAAU,GAEpBC,MAAgB,UAClBhJ,EAAO,KAAKgJ,CAAW,GAErBC,MAAc,UAChBjJ,EAAO,KAAKiJ,CAAS,GAEhBjJ;AACT;ACnIA,MAAMkJ,KAAiB;AAAA,EACrB,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAAQ;AAAA,EACZ,QAAQ;AAAA,EACR,OAAS;AACX,GACMC,KAA2B;AAAA,EAC/B,YAAY,CAAC3I,MAAgD,CAAC0I,IAAO;AAAA,IACnE,gBAAgB,CAAApF,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAW,qBAAqBtD,EAAM,IAAI,GAAG;AAAA,IAC/H,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAW,qBAAqBtD,EAAM,EAAE,GAAG;AAAA,IAC5H,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAW,qBAAqBtD,EAAM,EAAE,GAAG;AAAA,IAC5H,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAW,qBAAqBtD,EAAM,EAAE,GAAG;AAAA,IAC5H,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAW,qBAAqBtD,EAAM,EAAE,GAAG;AAAA,IAC5H,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAW,qBAAqBtD,EAAM,KAAK,CAAC,GAAG;AAAA,EAAA,CACjI;AACH,GACM4I,KAAmB;AAAA,EACvB,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAAS;AAAA,EACb,QAAQ;AAAA,EACR,OAAS;AACX,GACMC,KAA6B;AAAA,EACjC,YAAY,CAAC9I,MAAkD,CAAC6I,IAAQ;AAAA,IACtE,cAAc,uBAAuB7I,EAAM,IAAI,OAAO,OAAO,uBAAuBA,EAAM,IAAI,MAAM;AAAA,IACpG,eAAe,uBAAuBA,EAAM,EAAE,OAAO,OAAO,uBAAuBA,EAAM,EAAE,MAAM;AAAA,IACjG,eAAe,uBAAuBA,EAAM,EAAE,OAAO,OAAO,uBAAuBA,EAAM,EAAE,MAAM;AAAA,IACjG,cAAc,uBAAuBA,EAAM,EAAE,OAAO,OAAO,uBAAuBA,EAAM,EAAE,MAAM;AAAA,IAChG,cAAc,uBAAuBA,EAAM,EAAE,OAAO,OAAO,uBAAuBA,EAAM,EAAE,MAAM;AAAA,IAChG,cAAc,uBAAuBA,EAAM,KAAK,CAAC,OAAO,OAAO,uBAAuBA,EAAM,KAAK,CAAC,MAAM;AAAA,EAAA,CACzG;AACH,GACM+I,KAAmB;AAAA,EACvB,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAAS;AAAA,EACb,QAAQ;AAAA,EACR,OAAS;AACX,GACMC,KAA6B;AAAA,EACjC,YAAY,CAACjJ,MAAkD,CAACgJ,IAAQ;AAAA,IACtE,cAAc,uBAAuBhJ,EAAM,IAAI,OAAO,OAAO,uBAAuBA,EAAM,IAAI,MAAM;AAAA,IACpG,cAAc,uBAAuBA,EAAM,EAAE,OAAO,OAAO,uBAAuBA,EAAM,EAAE,MAAM;AAAA,IAChG,eAAe,uBAAuBA,EAAM,EAAE,OAAO,OAAO,uBAAuBA,EAAM,EAAE,MAAM;AAAA,IACjG,cAAc,uBAAuBA,EAAM,EAAE,OAAO,OAAO,uBAAuBA,EAAM,EAAE,MAAM;AAAA,IAChG,eAAe,uBAAuBA,EAAM,EAAE,OAAO,OAAO,uBAAuBA,EAAM,EAAE,MAAM;AAAA,IACjG,eAAe,uBAAuBA,EAAM,KAAK,CAAC,OAAO,OAAO,uBAAuBA,EAAM,KAAK,CAAC,MAAM;AAAA,EAAA,CAC1G;AACH,GACMkJ,KAAmB;AAAA,EACvB,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAAS;AAAA,EACb,QAAQ;AAAA,EACR,OAAS;AACX,GACMC,KAA6B;AAAA,EACjC,YAAY,CAACpJ,MAAkD,CAACmJ,IAAQ;AAAA,IACtE,cAAc,uBAAuBnJ,EAAM,IAAI,OAAO,OAAO,uBAAuBA,EAAM,IAAI,MAAM;AAAA,IACpG,eAAe,uBAAuBA,EAAM,EAAE,OAAO,OAAO,uBAAuBA,EAAM,EAAE,MAAM;AAAA,IACjG,eAAe,uBAAuBA,EAAM,EAAE,OAAO,OAAO,uBAAuBA,EAAM,EAAE,MAAM;AAAA,IACjG,eAAe,uBAAuBA,EAAM,EAAE,OAAO,OAAO,uBAAuBA,EAAM,EAAE,MAAM;AAAA,IACjG,eAAe,uBAAuBA,EAAM,EAAE,OAAO,OAAO,uBAAuBA,EAAM,EAAE,MAAM;AAAA,IACjG,eAAe,uBAAuBA,EAAM,KAAK,CAAC,OAAO,OAAO,uBAAuBA,EAAM,KAAK,CAAC,MAAM;AAAA,EAAA,CAC1G;AACH;AAWO,SAASqJ,GAAoB5I,GAAwB;AAC1D,QAAM;AAAA,IACJ,UAAA6I;AAAA,IACA,YAAAC;AAAA,IACA,YAAAC;AAAA,IACA,YAAAC;AAAA,EAAA,IACEhJ,GACElB,IAAS,CAAA;AACf,SAAI+J,KACF/J,EAAO,KAAK,OAAO+J,KAAa,WAAWb,GAAea,CAAQ,IAAIX,GAAyB,WAAWvH,EAAuBkI,GAAU,IAAI,CAAC,CAAC,GAE/IC,KACFhK,EAAO,KAAK,OAAOgK,KAAe,WAAWX,GAAiBW,CAAU,IAAIT,GAA2B,WAAW1H,EAAuBmI,GAAY,MAAM,CAAC,CAAC,GAE3JC,KACFjK,EAAO,KAAK,OAAOiK,KAAe,WAAWT,GAAiBS,CAAU,IAAIP,GAA2B,WAAW7H,EAAuBoI,GAAY,QAAQ,CAAC,CAAC,GAE7JC,KACFlK,EAAO,KAAK,OAAOkK,KAAe,WAAWP,GAAiBO,CAAU,IAAIL,GAA2B,WAAWhI,EAAuBqI,GAAY,QAAQ,CAAC,CAAC,GAE1JlK;AACT;AC3KA,MAAMmK,IAAe;AAAA,EACnB,mBAAmB;AAAA,EACnB,QAAQ;AAAA,EACR,kBAAkB;AAAA,EAClB,OAAO;AAAA,EACP,6BAA6B;AAAA,EAC7B,8BAA8B;AAAA,EAC9B,uBAAuB;AAAA,EACvB,oBAAoB;AAAA,EACpB,qBAAqB;AAAA,EACrB,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,MAAM;AAAA,EACN,oBAAoB;AAAA,EACpB,SAAS;AAAA,EACT,oBAAoB;AAAA,EACpB,SAAS;AAAA,EACT,oBAAoB;AAAA,EACpB,SAAS;AACX,GACMC,IAAY;AAAA,EAChB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,EAClB,SAAS;AAAA,EACT,mBAAmB;AAAA,EACnB,oBAAoB;AAAA,EACpB,kBAAkB;AACpB,GACMC,IAAsB;AAAA,EAC1B,mBAAmB;AAAA,EACnB,QAAQ;AAAA,EACR,gBAAgB;AAAA,EAChB,QAAQ;AAAA,EACR,kBAAkB;AAAA,EAClB,OAAO;AAAA,EACP,iBAAiB;AAAA,EACjB,MAAM;AAAA,EACN,oBAAoB;AAAA,EACpB,SAAS;AAAA,EACT,oBAAoB;AAAA,EACpB,SAAS;AAAA,EACT,oBAAoB;AAAA,EACpB,SAAS;AACX,GACMC,KAAc;AAAA,EAClB,mBAAmB;AAAA,IACjB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,kBAAkB;AAAA,IAChB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,6BAA6B;AAAA,IAC3B,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,8BAA8B;AAAA,IAC5B,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,uBAAuB;AAAA,IACrB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,oBAAoB;AAAA,IAClB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,qBAAqB;AAAA,IACnB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,YAAY;AAAA,IACV,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,iBAAiB;AAAA,IACf,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,oBAAoB;AAAA,IAClB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,oBAAoB;AAAA,IAClB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,oBAAoB;AAAA,IAClB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAAwB;AAAA,EAC5B,YAAY,CAAC9J,MAA6C,CAAC;AAAA,IACzD,SAAS0J,EAAa1J,EAAM,IAAI,KAAK,OAAO,aAAa0J,EAAa1J,EAAM,IAAI,MAAM0J,EAAa1J,EAAM,EAAE,KAAK,OAAO,aAAa0J,EAAa1J,EAAM,EAAE,MAAM0J,EAAa1J,EAAM,EAAE,KAAK,OAAO,cAAc0J,EAAa1J,EAAM,EAAE,MAAM0J,EAAa1J,EAAM,EAAE,KAAK,OAAO,cAAc0J,EAAa1J,EAAM,EAAE,MAAM0J,EAAa1J,EAAM,EAAE,KAAK,OAAO,cAAc0J,EAAa1J,EAAM,EAAE,MAAM0J,EAAa1J,EAAM,KAAK,CAAC,KAAK,OAAO,aAAa0J,EAAa1J,EAAM,KAAK,CAAC;AAAA,IACxc,OAAO;AAAA,EAAA,GACN;AAAA,IACD,cAAc0J,EAAa1J,EAAM,IAAI,KAAK,OAAO0J,EAAa1J,EAAM,IAAI,IAAI;AAAA,IAC5E,cAAc0J,EAAa1J,EAAM,EAAE,KAAK,OAAO0J,EAAa1J,EAAM,EAAE,IAAI;AAAA,IACxE,cAAc0J,EAAa1J,EAAM,EAAE,KAAK,OAAO0J,EAAa1J,EAAM,EAAE,IAAI;AAAA,IACxE,eAAe0J,EAAa1J,EAAM,EAAE,KAAK,OAAO0J,EAAa1J,EAAM,EAAE,IAAI;AAAA,IACzE,YAAY0J,EAAa1J,EAAM,EAAE,KAAK,OAAO0J,EAAa1J,EAAM,EAAE,IAAI;AAAA,IACtE,eAAe0J,EAAa1J,EAAM,KAAK,CAAC,KAAK,OAAO0J,EAAa1J,EAAM,KAAK,CAAC,IAAI;AAAA,EAAA,CAClF;AACH,GACM+J,KAAW;AAAA,EACf,kBAAkB;AAAA,IAChB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,mBAAmB;AAAA,IACjB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,iBAAiB;AAAA,IACf,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,YAAY;AAAA,IACV,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,iBAAiB;AAAA,IACf,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,kBAAkB;AAAA,IAChB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,gBAAgB;AAAA,IACd,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,gBAAgB;AAAA,IACd,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,iBAAiB;AAAA,IACf,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,eAAe;AAAA,IACb,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,mBAAmB;AAAA,IACjB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,oBAAoB;AAAA,IAClB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,kBAAkB;AAAA,IAChB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,mBAAmB;AAAA,IACjB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,oBAAoB;AAAA,IAClB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,kBAAkB;AAAA,IAChB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,mBAAmB;AAAA,IACjB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,oBAAoB;AAAA,IAClB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,kBAAkB;AAAA,IAChB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAAqB;AAAA,EACzB,YAAY,CAAChK,MAAuD,CAAC;AAAA,IACnE,SAAS2J,EAAU3J,EAAM,IAAI,KAAK,OAAO,cAAc2J,EAAU3J,EAAM,IAAI,MAAM2J,EAAU3J,EAAM,EAAE,KAAK,OAAO,cAAc2J,EAAU3J,EAAM,EAAE,MAAM2J,EAAU3J,EAAM,EAAE,KAAK,OAAO,cAAc2J,EAAU3J,EAAM,EAAE,MAAM2J,EAAU3J,EAAM,EAAE,KAAK,OAAO,cAAc2J,EAAU3J,EAAM,EAAE,MAAM2J,EAAU3J,EAAM,EAAE,KAAK,OAAO,YAAY2J,EAAU3J,EAAM,EAAE,MAAM2J,EAAU3J,EAAM,KAAK,CAAC,KAAK,OAAO,YAAY2J,EAAU3J,EAAM,KAAK,CAAC;AAAA,IACna,OAAO;AAAA,EAAA,GACN;AAAA,IACD,cAAc2J,EAAU3J,EAAM,IAAI,KAAK,OAAO2J,EAAU3J,EAAM,IAAI,IAAI;AAAA,IACtE,cAAc2J,EAAU3J,EAAM,EAAE,KAAK,OAAO2J,EAAU3J,EAAM,EAAE,IAAI;AAAA,IAClE,cAAc2J,EAAU3J,EAAM,EAAE,KAAK,OAAO2J,EAAU3J,EAAM,EAAE,IAAI;AAAA,IAClE,cAAc2J,EAAU3J,EAAM,EAAE,KAAK,OAAO2J,EAAU3J,EAAM,EAAE,IAAI;AAAA,IAClE,eAAe2J,EAAU3J,EAAM,EAAE,KAAK,OAAO2J,EAAU3J,EAAM,EAAE,IAAI;AAAA,IACnE,eAAe2J,EAAU3J,EAAM,KAAK,CAAC,KAAK,OAAO2J,EAAU3J,EAAM,KAAK,CAAC,IAAI;AAAA,EAAA,CAC5E;AACH,GACMiK,KAAoB;AAAA,EACxB,mBAAmB;AAAA,IACjB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,gBAAgB;AAAA,IACd,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,kBAAkB;AAAA,IAChB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,iBAAiB;AAAA,IACf,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,oBAAoB;AAAA,IAClB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,oBAAoB;AAAA,IAClB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,oBAAoB;AAAA,IAClB,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAA8B;AAAA,EAClC,YAAY,CAAClK,MAAmD,CAAC;AAAA,IAC/D,SAAS4J,EAAoB5J,EAAM,IAAI,KAAK,OAAO,YAAY4J,EAAoB5J,EAAM,IAAI,MAAM4J,EAAoB5J,EAAM,EAAE,KAAK,OAAO,aAAa4J,EAAoB5J,EAAM,EAAE,MAAM4J,EAAoB5J,EAAM,EAAE,KAAK,OAAO,cAAc4J,EAAoB5J,EAAM,EAAE,MAAM4J,EAAoB5J,EAAM,EAAE,KAAK,OAAO,cAAc4J,EAAoB5J,EAAM,EAAE,MAAM4J,EAAoB5J,EAAM,EAAE,KAAK,OAAO,aAAa4J,EAAoB5J,EAAM,EAAE,MAAM4J,EAAoB5J,EAAM,KAAK,CAAC,KAAK,OAAO,YAAY4J,EAAoB5J,EAAM,KAAK,CAAC;AAAA,IACzhB,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAe4J,EAAoB5J,EAAM,IAAI,KAAK,OAAO4J,EAAoB5J,EAAM,IAAI,IAAI;AAAA,IAC3F,cAAc4J,EAAoB5J,EAAM,EAAE,KAAK,OAAO4J,EAAoB5J,EAAM,EAAE,IAAI;AAAA,IACtF,eAAe4J,EAAoB5J,EAAM,EAAE,KAAK,OAAO4J,EAAoB5J,EAAM,EAAE,IAAI;AAAA,IACvF,eAAe4J,EAAoB5J,EAAM,EAAE,KAAK,OAAO4J,EAAoB5J,EAAM,EAAE,IAAI;AAAA,IACvF,eAAe4J,EAAoB5J,EAAM,EAAE,KAAK,OAAO4J,EAAoB5J,EAAM,EAAE,IAAI;AAAA,IACvF,cAAc4J,EAAoB5J,EAAM,KAAK,CAAC,KAAK,OAAO4J,EAAoB5J,EAAM,KAAK,CAAC,IAAI;AAAA,EAAA,CAC/F;AACH;AASO,SAASmK,GAAe1J,GAAmB;AAChD,QAAM;AAAA,IACJ,OAAA2J;AAAA,IACA,IAAAC;AAAA,IACA,aAAAC;AAAA,EAAA,IACE7J,GACElB,IAAS,CAAA;AACf,SAAI6K,KACF7K,EAAO,KAAK,OAAO6K,KAAU,WAAWP,GAAYO,CAAK,IAAIN,GAAsB,WAAW1I,EAAuBgJ,GAAO,YAAY,CAAC,CAAC,GAExIC,KACF9K,EAAO,KAAK,OAAO8K,KAAO,WAAWN,GAASM,CAAE,IAAIL,GAAmB,WAAW5I,EAAuBiJ,GAAI,YAAY,CAAC,CAAC,GAEzHC,KACF/K,EAAO,KAAK,OAAO+K,KAAgB,WAAWL,GAAkBK,CAAW,IAAIJ,GAA4B,WAAW9I,EAAuBkJ,GAAa,QAAQ,CAAC,CAAC,GAE/J/K;AACT;AClVA,MAAMgL,IAAsB;AAAA,EAC1B,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAM;AACR,GACMC,KAAuB;AAAA,EAC3B,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAAiC;AAAA,EACrC,YAAY,CAACzK,MAAmD,CAAC;AAAA,IAC/D,SAASuK,EAAoBvK,EAAM,IAAI,KAAK,OAAO,aAAauK,EAAoBvK,EAAM,IAAI,MAAMuK,EAAoBvK,EAAM,EAAE,KAAK,OAAO,aAAauK,EAAoBvK,EAAM,EAAE,MAAMuK,EAAoBvK,EAAM,EAAE,KAAK,OAAO,cAAcuK,EAAoBvK,EAAM,EAAE,MAAMuK,EAAoBvK,EAAM,EAAE,KAAK,OAAO,aAAauK,EAAoBvK,EAAM,EAAE,MAAMuK,EAAoBvK,EAAM,EAAE,KAAK,OAAO,cAAcuK,EAAoBvK,EAAM,EAAE,MAAMuK,EAAoBvK,EAAM,KAAK,CAAC,KAAK,OAAO,YAAYuK,EAAoBvK,EAAM,KAAK,CAAC;AAAA,IAC1hB,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWiH,EAAoBvK,EAAM,IAAI,CAAC;AAAA,IAC3H,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWiH,EAAoBvK,EAAM,EAAE,CAAC;AAAA,IAC1H,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWiH,EAAoBvK,EAAM,EAAE,CAAC;AAAA,IAC1H,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWiH,EAAoBvK,EAAM,EAAE,CAAC;AAAA,IACzH,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWiH,EAAoBvK,EAAM,EAAE,CAAC;AAAA,IAC1H,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWiH,EAAoBvK,EAAM,KAAK,CAAC,CAAC;AAAA,EAAA,CAC/H;AACH,GACM0K,KAAyB;AAAA,EAC7B,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAAmC;AAAA,EACvC,YAAY,CAAC3K,MAAmD,CAAC;AAAA,IAC/D,SAASuK,EAAoBvK,EAAM,IAAI,KAAK,OAAO,cAAcuK,EAAoBvK,EAAM,IAAI,MAAMuK,EAAoBvK,EAAM,EAAE,KAAK,OAAO,aAAauK,EAAoBvK,EAAM,EAAE,MAAMuK,EAAoBvK,EAAM,EAAE,KAAK,OAAO,aAAauK,EAAoBvK,EAAM,EAAE,MAAMuK,EAAoBvK,EAAM,EAAE,KAAK,OAAO,aAAauK,EAAoBvK,EAAM,EAAE,MAAMuK,EAAoBvK,EAAM,EAAE,KAAK,OAAO,YAAYuK,EAAoBvK,EAAM,EAAE,MAAMuK,EAAoBvK,EAAM,KAAK,CAAC,KAAK,OAAO,YAAYuK,EAAoBvK,EAAM,KAAK,CAAC;AAAA,IACxhB,OAAO;AAAA,EAAA,GACN;AAAA,IACD,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWiH,EAAoBvK,EAAM,IAAI,CAAC;AAAA,IAC5H,cAAc,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWiH,EAAoBvK,EAAM,EAAE,CAAC;AAAA,IACxH,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWiH,EAAoBvK,EAAM,EAAE,CAAC;AAAA,IAC1H,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWiH,EAAoBvK,EAAM,EAAE,CAAC;AAAA,IAC1H,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWiH,EAAoBvK,EAAM,EAAE,CAAC;AAAA,IAC1H,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWiH,EAAoBvK,EAAM,KAAK,CAAC,CAAC;AAAA,EAAA,CAC9H;AACH,GACM4K,KAA0B;AAAA,EAC9B,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAAoC;AAAA,EACxC,YAAY,CAAC7K,MAAmD,CAAC;AAAA,IAC/D,SAASuK,EAAoBvK,EAAM,IAAI,KAAK,OAAO,cAAcuK,EAAoBvK,EAAM,IAAI,MAAMuK,EAAoBvK,EAAM,EAAE,KAAK,OAAO,cAAcuK,EAAoBvK,EAAM,EAAE,MAAMuK,EAAoBvK,EAAM,EAAE,KAAK,OAAO,aAAauK,EAAoBvK,EAAM,EAAE,MAAMuK,EAAoBvK,EAAM,EAAE,KAAK,OAAO,cAAcuK,EAAoBvK,EAAM,EAAE,MAAMuK,EAAoBvK,EAAM,EAAE,KAAK,OAAO,aAAauK,EAAoBvK,EAAM,EAAE,MAAMuK,EAAoBvK,EAAM,KAAK,CAAC,KAAK,OAAO,aAAauK,EAAoBvK,EAAM,KAAK,CAAC;AAAA,IAC5hB,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWiH,EAAoBvK,EAAM,IAAI,CAAC;AAAA,IAC3H,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWiH,EAAoBvK,EAAM,EAAE,CAAC;AAAA,IACzH,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWiH,EAAoBvK,EAAM,EAAE,CAAC;AAAA,IAC1H,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWiH,EAAoBvK,EAAM,EAAE,CAAC;AAAA,IAC1H,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWiH,EAAoBvK,EAAM,EAAE,CAAC;AAAA,IACzH,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWiH,EAAoBvK,EAAM,KAAK,CAAC,CAAC;AAAA,EAAA,CAC/H;AACH,GACM8K,KAAwB;AAAA,EAC5B,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAAkC;AAAA,EACtC,YAAY,CAAC/K,MAAmD,CAAC;AAAA,IAC/D,SAASuK,EAAoBvK,EAAM,IAAI,KAAK,OAAO,aAAauK,EAAoBvK,EAAM,IAAI,MAAMuK,EAAoBvK,EAAM,EAAE,KAAK,OAAO,cAAcuK,EAAoBvK,EAAM,EAAE,MAAMuK,EAAoBvK,EAAM,EAAE,KAAK,OAAO,cAAcuK,EAAoBvK,EAAM,EAAE,MAAMuK,EAAoBvK,EAAM,EAAE,KAAK,OAAO,cAAcuK,EAAoBvK,EAAM,EAAE,MAAMuK,EAAoBvK,EAAM,EAAE,KAAK,OAAO,YAAYuK,EAAoBvK,EAAM,EAAE,MAAMuK,EAAoBvK,EAAM,KAAK,CAAC,KAAK,OAAO,aAAauK,EAAoBvK,EAAM,KAAK,CAAC;AAAA,IAC3hB,OAAO;AAAA,EAAA,GACN;AAAA,IACD,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWiH,EAAoBvK,EAAM,IAAI,CAAC;AAAA,IAC5H,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWiH,EAAoBvK,EAAM,EAAE,CAAC;AAAA,IACzH,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWiH,EAAoBvK,EAAM,EAAE,CAAC;AAAA,IACzH,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWiH,EAAoBvK,EAAM,EAAE,CAAC;AAAA,IAC1H,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWiH,EAAoBvK,EAAM,EAAE,CAAC;AAAA,IACzH,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWiH,EAAoBvK,EAAM,KAAK,CAAC,CAAC;AAAA,EAAA,CAC/H;AACH,GACMgL,KAAoB;AAAA,EACxB,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAA8B;AAAA,EAClC,YAAY,CAACjL,MAAmD,CAAC;AAAA,IAC/D,SAASA,EAAM,QAAQ,OAAO,cAAcA,EAAM,SAASA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,YAAYA,EAAM,KAAK;AAAA,IAC/R,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAeA,EAAM,QAAQ,OAAOA,EAAM,OAAO;AAAA,IACjD,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,cAAcA,EAAM,KAAK,KAAK,OAAOA,EAAM,KAAK,IAAI;AAAA,EAAA,CACrD;AACH;AAaO,SAASkL,GAAgBzK,GAAoB;AAClD,QAAM;AAAA,IACJ,QAAA0K;AAAA,IACA,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,WAAAC;AAAA,IACA,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,aAAAC;AAAA,EAAA,IACEjL,GACElB,IAAS,CAAA,GACToM,IAAWL,KAAaD,KAAWF,GACnCS,IAAaL,KAAeH,KAAWD,GACvCU,IAAcL,KAAgBH,KAAWF,GACzCW,IAAYL,KAAcL,KAAWD;AAC3C,SAAIQ,MAAa,UACfpM,EAAO,KAAK,OAAOoM,KAAa,WAAWnB,GAAqBmB,CAAQ,IAAIlB,GAA+B,WAAWrJ,EAAuBuK,GAAU,MAAM,CAAC,CAAC,GAE7JC,MAAe,UACjBrM,EAAO,KAAK,OAAOqM,KAAe,WAAWlB,GAAuBkB,CAAU,IAAIjB,GAAiC,WAAWvJ,EAAuBwK,GAAY,MAAM,CAAC,CAAC,GAEvKC,MAAgB,UAClBtM,EAAO,KAAK,OAAOsM,KAAgB,WAAWjB,GAAwBiB,CAAW,IAAIhB,GAAkC,WAAWzJ,EAAuByK,GAAa,MAAM,CAAC,CAAC,GAE5KC,MAAc,UAChBvM,EAAO,KAAK,OAAOuM,KAAc,WAAWhB,GAAsBgB,CAAS,IAAIf,GAAgC,WAAW3J,EAAuB0K,GAAW,MAAM,CAAC,CAAC,GAElKJ,MAAgB,SAClBnM,EAAO,KAAK,OAAOmM,KAAgB,WAAWV,GAAkBU,CAAW,IAAIT,GAA4B,WAAW7J,EAAuBsK,GAAa,OAAO,CAAC,CAAC,KAC1JC,KAAYC,KAAcC,KAAeC,MAClDvM,EAAO,KAAKyL,GAAkB,KAAK,GAE9BzL;AACT;AChNA,MAAMwM,IAAiB;AAAA,EACrB,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,IAAI;AACN,GACMC,KAAuB;AAAA,EAC3B,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAAiC;AAAA,EACrC,YAAY,CAACjM,MAA+C,CAAC;AAAA,IAC3D,SAAS+L,EAAe/L,EAAM,IAAI,KAAK,OAAO,cAAc+L,EAAe/L,EAAM,IAAI,MAAM+L,EAAe/L,EAAM,EAAE,KAAK,OAAO,aAAa+L,EAAe/L,EAAM,EAAE,MAAM+L,EAAe/L,EAAM,EAAE,KAAK,OAAO,cAAc+L,EAAe/L,EAAM,EAAE,MAAM+L,EAAe/L,EAAM,EAAE,KAAK,OAAO,cAAc+L,EAAe/L,EAAM,EAAE,MAAM+L,EAAe/L,EAAM,EAAE,KAAK,OAAO,cAAc+L,EAAe/L,EAAM,EAAE,MAAM+L,EAAe/L,EAAM,KAAK,CAAC,KAAK,OAAO,aAAa+L,EAAe/L,EAAM,KAAK,CAAC;AAAA,IACje,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWyI,EAAe/L,EAAM,IAAI,CAAC;AAAA,IACtH,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWyI,EAAe/L,EAAM,EAAE,CAAC;AAAA,IACrH,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWyI,EAAe/L,EAAM,EAAE,CAAC;AAAA,IACrH,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWyI,EAAe/L,EAAM,EAAE,CAAC;AAAA,IACpH,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWyI,EAAe/L,EAAM,EAAE,CAAC;AAAA,IACpH,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWyI,EAAe/L,EAAM,KAAK,CAAC,CAAC;AAAA,EAAA,CAC1H;AACH,GACMkM,KAAwB;AAAA,EAC5B,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAAkC;AAAA,EACtC,YAAY,CAACnM,MAA+C,CAAC;AAAA,IAC3D,SAAS+L,EAAe/L,EAAM,IAAI,KAAK,OAAO,cAAc+L,EAAe/L,EAAM,IAAI,MAAM+L,EAAe/L,EAAM,EAAE,KAAK,OAAO,cAAc+L,EAAe/L,EAAM,EAAE,MAAM+L,EAAe/L,EAAM,EAAE,KAAK,OAAO,aAAa+L,EAAe/L,EAAM,EAAE,MAAM+L,EAAe/L,EAAM,EAAE,KAAK,OAAO,cAAc+L,EAAe/L,EAAM,EAAE,MAAM+L,EAAe/L,EAAM,EAAE,KAAK,OAAO,cAAc+L,EAAe/L,EAAM,EAAE,MAAM+L,EAAe/L,EAAM,KAAK,CAAC,KAAK,OAAO,aAAa+L,EAAe/L,EAAM,KAAK,CAAC;AAAA,IACje,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWyI,EAAe/L,EAAM,IAAI,CAAC;AAAA,IACtH,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWyI,EAAe/L,EAAM,EAAE,CAAC;AAAA,IACpH,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWyI,EAAe/L,EAAM,EAAE,CAAC;AAAA,IACrH,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWyI,EAAe/L,EAAM,EAAE,CAAC;AAAA,IACrH,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWyI,EAAe/L,EAAM,EAAE,CAAC;AAAA,IACrH,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWyI,EAAe/L,EAAM,KAAK,CAAC,CAAC;AAAA,EAAA,CACzH;AACH,GACMoM,KAA2B;AAAA,EAC/B,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAAqC;AAAA,EACzC,YAAY,CAACrM,MAA+C,CAAC;AAAA,IAC3D,SAAS+L,EAAe/L,EAAM,IAAI,KAAK,OAAO,cAAc+L,EAAe/L,EAAM,IAAI,MAAM+L,EAAe/L,EAAM,EAAE,KAAK,OAAO,aAAa+L,EAAe/L,EAAM,EAAE,MAAM+L,EAAe/L,EAAM,EAAE,KAAK,OAAO,cAAc+L,EAAe/L,EAAM,EAAE,MAAM+L,EAAe/L,EAAM,EAAE,KAAK,OAAO,aAAa+L,EAAe/L,EAAM,EAAE,MAAM+L,EAAe/L,EAAM,EAAE,KAAK,OAAO,cAAc+L,EAAe/L,EAAM,EAAE,MAAM+L,EAAe/L,EAAM,KAAK,CAAC,KAAK,OAAO,aAAa+L,EAAe/L,EAAM,KAAK,CAAC;AAAA,IAChe,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWyI,EAAe/L,EAAM,IAAI,CAAC;AAAA,IACtH,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWyI,EAAe/L,EAAM,EAAE,CAAC;AAAA,IACrH,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWyI,EAAe/L,EAAM,EAAE,CAAC;AAAA,IACpH,cAAc,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWyI,EAAe/L,EAAM,EAAE,CAAC;AAAA,IACnH,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWyI,EAAe/L,EAAM,EAAE,CAAC;AAAA,IACpH,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWyI,EAAe/L,EAAM,KAAK,CAAC,CAAC;AAAA,EAAA,CAC1H;AACH,GACMsM,KAA0B;AAAA,EAC9B,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAAoC;AAAA,EACxC,YAAY,CAACvM,MAA+C,CAAC;AAAA,IAC3D,SAAS+L,EAAe/L,EAAM,IAAI,KAAK,OAAO,aAAa+L,EAAe/L,EAAM,IAAI,MAAM+L,EAAe/L,EAAM,EAAE,KAAK,OAAO,cAAc+L,EAAe/L,EAAM,EAAE,MAAM+L,EAAe/L,EAAM,EAAE,KAAK,OAAO,cAAc+L,EAAe/L,EAAM,EAAE,MAAM+L,EAAe/L,EAAM,EAAE,KAAK,OAAO,aAAa+L,EAAe/L,EAAM,EAAE,MAAM+L,EAAe/L,EAAM,EAAE,KAAK,OAAO,cAAc+L,EAAe/L,EAAM,EAAE,MAAM+L,EAAe/L,EAAM,KAAK,CAAC,KAAK,OAAO,aAAa+L,EAAe/L,EAAM,KAAK,CAAC;AAAA,IAChe,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWyI,EAAe/L,EAAM,IAAI,CAAC;AAAA,IACtH,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWyI,EAAe/L,EAAM,EAAE,CAAC;AAAA,IACpH,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWyI,EAAe/L,EAAM,EAAE,CAAC;AAAA,IACpH,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWyI,EAAe/L,EAAM,EAAE,CAAC;AAAA,IACrH,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWyI,EAAe/L,EAAM,EAAE,CAAC;AAAA,IACpH,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWyI,EAAe/L,EAAM,KAAK,CAAC,CAAC;AAAA,EAAA,CAC1H;AACH;AAaO,SAASwM,GAAmB/L,GAAuB;AACxD,QAAM;AAAA,IACJ,SAAAgM;AAAA,IACA,YAAAC;AAAA,IACA,eAAAC;AAAA,IACA,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,oBAAAC;AAAA,EAAA,IACExM,GACElB,IAAS,CAAA,GACT2N,IAAUJ,KAAkBJ,KAAcE,KAAeH;AAC/D,EAAIS,MAAY,UACd3N,EAAO,KAAK,OAAO2N,KAAY,WAAWlB,GAAqBkB,CAAO,IAAIjB,GAA+B,WAAW7K,EAAuB8L,GAAS,MAAM,CAAC,CAAC;AAE9J,QAAMC,IAAWJ,KAAmBL,KAAcG,KAAgBJ;AAClE,EAAIU,MAAa,UACf5N,EAAO,KAAK,OAAO4N,KAAa,WAAWjB,GAAsBiB,CAAQ,IAAIhB,GAAgC,WAAW/K,EAAuB+L,GAAU,MAAM,CAAC,CAAC;AAEnK,QAAMC,IAAcH,KAAsBN,KAAiBE,KAAgBJ;AAC3E,EAAIW,MAAgB,UAClB7N,EAAO,KAAK,OAAO6N,KAAgB,WAAWhB,GAAyBgB,CAAW,IAAIf,GAAmC,WAAWjL,EAAuBgM,GAAa,MAAM,CAAC,CAAC;AAElL,QAAMC,IAAaL,KAAqBL,KAAiBC,KAAeH;AACxE,SAAIY,MAAe,UACjB9N,EAAO,KAAK,OAAO8N,KAAe,WAAWf,GAAwBe,CAAU,IAAId,GAAkC,WAAWnL,EAAuBiM,GAAY,MAAM,CAAC,CAAC,GAEtK9N;AACT;AC7LA,MAAM+N,IAAgB;AAAA,EACpB,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,IAAI;AACN,GACMC,KAAe;AAAA,EACnB,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,IAAI;AAAA,IACF,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAAyB;AAAA,EAC7B,YAAY,CAACxN,MAA8C,CAAC;AAAA,IAC1D,SAASsN,EAActN,EAAM,IAAI,KAAK,OAAO,aAAasN,EAActN,EAAM,IAAI,MAAMsN,EAActN,EAAM,EAAE,KAAK,OAAO,cAAcsN,EAActN,EAAM,EAAE,MAAMsN,EAActN,EAAM,EAAE,KAAK,OAAO,cAAcsN,EAActN,EAAM,EAAE,MAAMsN,EAActN,EAAM,EAAE,KAAK,OAAO,cAAcsN,EAActN,EAAM,EAAE,MAAMsN,EAActN,EAAM,EAAE,KAAK,OAAO,aAAasN,EAActN,EAAM,EAAE,MAAMsN,EAActN,EAAM,KAAK,CAAC,KAAK,OAAO,YAAYsN,EAActN,EAAM,KAAK,CAAC;AAAA,IACnd,OAAO;AAAA,EAAA,GACN;AAAA,IACD,cAAcsN,EAActN,EAAM,IAAI,KAAK,OAAOsN,EAActN,EAAM,IAAI,IAAI;AAAA,IAC9E,eAAesN,EAActN,EAAM,EAAE,KAAK,OAAOsN,EAActN,EAAM,EAAE,IAAI;AAAA,IAC3E,cAAcsN,EAActN,EAAM,EAAE,KAAK,OAAOsN,EAActN,EAAM,EAAE,IAAI;AAAA,IAC1E,eAAesN,EAActN,EAAM,EAAE,KAAK,OAAOsN,EAActN,EAAM,EAAE,IAAI;AAAA,IAC3E,eAAesN,EAActN,EAAM,EAAE,KAAK,OAAOsN,EAActN,EAAM,EAAE,IAAI;AAAA,IAC3E,eAAesN,EAActN,EAAM,KAAK,CAAC,KAAK,OAAOsN,EAActN,EAAM,KAAK,CAAC,IAAI;AAAA,EAAA,CACpF;AACH;AAKO,SAASyN,GAAgBhN,GAAoB;AAClD,QAAM;AAAA,IACJ,QAAAiN;AAAA,EAAA,IACEjN;AACJ,SAAKiN,IACE,CAAC,OAAOA,KAAW,WAAWH,GAAaG,CAAM,IAAIF,GAAuB,WAAWpM,EAAuBsM,GAAQ,MAAM,CAAC,CAAC,IADjH,CAAA;AAEtB;AC7CA,MAAMC,KAAe;AAAA,EACnB,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,WAAW;AAAA,IACT,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,UAAU;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,YAAY;AAAA,IACV,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAAyB;AAAA,EAC7B,YAAY,CAAC5N,MAA8C,CAAC;AAAA,IAC1D,SAASA,EAAM,QAAQ,OAAO,aAAaA,EAAM,SAASA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,YAAYA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,aAAaA,EAAM,KAAK;AAAA,IAC9R,OAAO;AAAA,EAAA,GACN;AAAA,IACD,cAAcA,EAAM,QAAQ,OAAOA,EAAM,OAAO;AAAA,IAChD,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,aAAaA,EAAM,KAAK,KAAK,OAAOA,EAAM,KAAK,IAAI;AAAA,EAAA,CACpD;AACH,GACM6N,KAAsB;AAAA,EAC1B,KAAK;AAAA,IACH,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAAgC;AAAA,EACpC,YAAY,CAAC9N,MAAqD,CAAC;AAAA,IACjE,SAASA,EAAM,QAAQ,OAAO,aAAaA,EAAM,SAASA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,YAAYA,EAAM,KAAK;AAAA,IAC9R,OAAO;AAAA,EAAA,GACN;AAAA,IACD,cAAcA,EAAM,QAAQ,OAAOA,EAAM,OAAO;AAAA,IAChD,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,cAAcA,EAAM,KAAK,KAAK,OAAOA,EAAM,KAAK,IAAI;AAAA,EAAA,CACrD;AACH,GACM+N,KAAmB;AAAA,EACvB,KAAK;AAAA,IACH,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAA6B;AAAA,EACjC,YAAY,CAAChO,MAAkD,CAAC;AAAA,IAC9D,SAASA,EAAM,QAAQ,OAAO,aAAaA,EAAM,SAASA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,YAAYA,EAAM,KAAK;AAAA,IAChS,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAeA,EAAM,QAAQ,OAAOA,EAAM,OAAO;AAAA,IACjD,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,KAAK,KAAK,OAAOA,EAAM,KAAK,IAAI;AAAA,EAAA,CACtD;AACH;AASO,SAASiO,GAAqBxN,GAAyB;AAC5D,QAAM;AAAA,IACJ,QAAAyN;AAAA,IACA,eAAAC;AAAA,IACA,YAAAC;AAAA,EAAA,IACE3N,GACElB,IAAS,CAAA;AACf,SAAI2O,KACF3O,EAAO,KAAK,OAAO2O,KAAW,WAAWP,GAAaO,CAAM,IAAIN,GAAuB,WAAWxM,EAAuB8M,GAAQ,MAAM,CAAC,CAAC,GAEvIC,KACF5O,EAAO,KAAK,OAAO4O,KAAkB,WAAWN,GAAoBM,CAAa,IAAIL,GAA8B,WAAW1M,EAAuB+M,GAAe,MAAM,CAAC,CAAC,GAE1KC,KACF7O,EAAO,KAAK,OAAO6O,KAAe,WAAWL,GAAiBK,CAAU,IAAIJ,GAA2B,WAAW5M,EAAuBgN,GAAY,MAAM,CAAC,CAAC,GAExJ7O;AACT;ACvJA,MAAM8O,KAAkB;AAAA,EACtB,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAA4B;AAAA,EAChC,YAAY,CAACtO,MAAiD,CAAC;AAAA,IAC7D,SAASA,EAAM,QAAQ,OAAO,cAAcA,EAAM,SAASA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,aAAaA,EAAM,KAAK;AAAA,IAChS,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAeA,EAAM,QAAQ,OAAOA,EAAM,OAAO;AAAA,IACjD,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,cAAcA,EAAM,KAAK,KAAK,OAAOA,EAAM,KAAK,IAAI;AAAA,EAAA,CACrD;AACH,GACMuO,KAAmB;AAAA,EACvB,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,QAAQ;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,KAAK;AAAA,IACH,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,SAAS;AAAA,IACP,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAA6B;AAAA,EACjC,YAAY,CAACxO,MAAkD,CAAC;AAAA,IAC9D,SAASA,EAAM,QAAQ,OAAO,cAAcA,EAAM,SAASA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,aAAaA,EAAM,KAAK;AAAA,IAChS,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAeA,EAAM,QAAQ,OAAOA,EAAM,OAAO;AAAA,IACjD,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,cAAcA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC5C,eAAeA,EAAM,MAAM,OAAOA,EAAM,KAAK;AAAA,IAC7C,cAAcA,EAAM,KAAK,KAAK,OAAOA,EAAM,KAAK,IAAI;AAAA,EAAA,CACrD;AACH;AAOO,SAASyO,GAAchO,GAAkB;AAC9C,QAAM;AAAA,IACJ,WAAAiO;AAAA,IACA,YAAAC;AAAA,EAAA,IACElO,GACElB,IAAS,CAAA;AACf,SAAImP,KACFnP,EAAO,KAAK,OAAOmP,KAAc,WAAWL,GAAgBK,CAAS,IAAIJ,GAA0B,WAAWlN,EAAuBsN,GAAW,MAAM,CAAC,CAAC,GAEtJC,KACFpP,EAAO,KAAK,OAAOoP,KAAe,WAAWJ,GAAiBI,CAAU,IAAIH,GAA2B,WAAWpN,EAAuBuN,GAAY,QAAQ,CAAC,CAAC,GAE1JpP;AACT;ACtFA,MAAMqP,IAAiB;AAAA,EACrB,OAAO;AAAA,EACP,MAAM;AAAA,EACN,WAAW;AAAA,EACX,MAAM;AACR,GACMC,KAAgB;AAAA,EACpB,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,WAAW;AAAA,IACT,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,QAAQ;AAAA,IACR,OAAO;AAAA,EAAA;AAEX,GACMC,KAA0B;AAAA,EAC9B,YAAY,CAAC9O,MAA+C,CAAC;AAAA,IAC3D,SAAS4O,EAAe5O,EAAM,IAAI,KAAK,OAAO,cAAc4O,EAAe5O,EAAM,IAAI,MAAM4O,EAAe5O,EAAM,EAAE,KAAK,OAAO,cAAc4O,EAAe5O,EAAM,EAAE,MAAM4O,EAAe5O,EAAM,EAAE,KAAK,OAAO,aAAa4O,EAAe5O,EAAM,EAAE,MAAM4O,EAAe5O,EAAM,EAAE,KAAK,OAAO,aAAa4O,EAAe5O,EAAM,EAAE,MAAM4O,EAAe5O,EAAM,EAAE,KAAK,OAAO,aAAa4O,EAAe5O,EAAM,EAAE,MAAM4O,EAAe5O,EAAM,KAAK,CAAC,KAAK,OAAO,YAAY4O,EAAe5O,EAAM,KAAK,CAAC;AAAA,IAC9d,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAe4O,EAAe5O,EAAM,IAAI,KAAK,OAAO4O,EAAe5O,EAAM,IAAI,IAAI;AAAA,IACjF,eAAe4O,EAAe5O,EAAM,EAAE,KAAK,OAAO4O,EAAe5O,EAAM,EAAE,IAAI;AAAA,IAC7E,eAAe4O,EAAe5O,EAAM,EAAE,KAAK,OAAO4O,EAAe5O,EAAM,EAAE,IAAI;AAAA,IAC7E,cAAc4O,EAAe5O,EAAM,EAAE,KAAK,OAAO4O,EAAe5O,EAAM,EAAE,IAAI;AAAA,IAC5E,cAAc4O,EAAe5O,EAAM,EAAE,KAAK,OAAO4O,EAAe5O,EAAM,EAAE,IAAI;AAAA,IAC5E,cAAc4O,EAAe5O,EAAM,KAAK,CAAC,KAAK,OAAO4O,EAAe5O,EAAM,KAAK,CAAC,IAAI;AAAA,EAAA,CACrF;AACH;AAKO,SAAS+O,GAAiBtO,GAAqB;AACpD,QAAM;AAAA,IACJ,SAAAuO;AAAA,EAAA,IACEvO;AACJ,SAAKuO,IAGE,CAAC,OAAOA,KAAY,WAAWH,GAAcG,CAAO,IAAIF,GAAwB,WAAW1N,EAAuB4N,GAAS,MAAM,CAAC,CAAC,IAFjI,CAAA;AAGX;ACxCA,MAAMC,KAAgB;AAAA,EACpB,eAAe,CAACjP,MAAkB,CAAC;AAAA,IACjC,QAAQA,KAAS,OAAO,YAAYA;AAAA,IACpC,OAAO;AAAA,EAAA,GACN;AAAA,IACD,sBAAsB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,CAAK;AAAA,EAAA,CACzG;AAAA,EACD,yBAAyB,CAACA,MAAoC,CAAC;AAAA,IAC7D,SAASA,EAAM,QAAQ,OAAO,aAAaA,EAAM,SAASA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,YAAYA,EAAM,KAAK;AAAA,IAC7R,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,IAAI;AAAA,IACtG,cAAc,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACnG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,KAAK,CAAC;AAAA,EAAA,CACzG;AAAA,EACD,aAAa,CAACA,MAAkB,CAAC;AAAA,IAC/B,QAAQA,KAAS,OAAO,aAAaA;AAAA,IACrC,OAAO;AAAA,EAAA,GACN;AAAA,IACD,oBAAoB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,CAAK;AAAA,EAAA,CACvG;AAAA,EACD,uBAAuB,CAACA,MAAoC,CAAC;AAAA,IAC3D,SAASA,EAAM,QAAQ,OAAO,cAAcA,EAAM,SAASA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,YAAYA,EAAM,KAAK;AAAA,IACjS,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,IAAI;AAAA,IACtG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,KAAK,CAAC;AAAA,EAAA,CACzG;AAAA,EACD,cAAc,CAACA,MAAkB,CAAC;AAAA,IAChC,QAAQA,KAAS,OAAO,YAAYA;AAAA,IACpC,OAAO;AAAA,EAAA,GACN;AAAA,IACD,qBAAqB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,CAAK;AAAA,EAAA,CACxG;AAAA,EACD,wBAAwB,CAACA,MAAoC,CAAC;AAAA,IAC5D,SAASA,EAAM,QAAQ,OAAO,aAAaA,EAAM,SAASA,EAAM,MAAM,OAAO,YAAYA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,aAAaA,EAAM,KAAK;AAAA,IAC9R,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,IAAI;AAAA,IACtG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,cAAc,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,KAAK,CAAC;AAAA,EAAA,CACxG;AAAA,EACD,YAAY,CAACA,MAAkB,CAAC;AAAA,IAC9B,QAAQA,KAAS,OAAO,aAAaA;AAAA,IACrC,OAAO;AAAA,EAAA,GACN;AAAA,IACD,mBAAmB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,CAAK;AAAA,EAAA,CACtG;AAAA,EACD,sBAAsB,CAACA,MAAoC,CAAC;AAAA,IAC1D,SAASA,EAAM,QAAQ,OAAO,cAAcA,EAAM,SAASA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,aAAaA,EAAM,KAAK;AAAA,IAChS,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,IAAI;AAAA,IACtG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,KAAK,CAAC;AAAA,EAAA,CACzG;AACH;AACA,SAASuD,EAAYvD,GAA0C;AAC7D,MAAIA,MAAU;AACd,WAAI,OAAOA,KAAU,WAAiBA,IAClCA,MAAU,IAAU,MACjB,gCAAgCA,CAAK;AAC9C;AACA,SAASkP,EAAgBzL,GAAsDzD,GAAuC;AACpH,MAAI,OAAOA,KAAU,UAAU;AAC7B,UAAM0D,IAAWH,EAAYvD,CAAK;AAClC,WAAO,OAAO0D,KAAa,WAAWuL,GAAcxL,CAAG,EAAEC,CAAQ,IAAI;AAAA,EACvE;AACA,SAAOuL,GAAc,GAAGxL,CAAG,YAAY,EAAErC,EAAuB;AAAA,IAC9D,MAAMmC,EAAYvD,EAAM,IAAI;AAAA,IAC5B,IAAIuD,EAAYvD,EAAM,EAAE;AAAA,IACxB,IAAIuD,EAAYvD,EAAM,EAAE;AAAA,IACxB,IAAIuD,EAAYvD,EAAM,EAAE;AAAA,IACxB,IAAIuD,EAAYvD,EAAM,EAAE;AAAA,IACxB,OAAOuD,EAAYvD,EAAM,KAAK,CAAC;AAAA,EAAA,GAC9B,GAAG,CAAC;AACT;AAIO,SAASmP,GAAiB1O,GAAqB;AAEpD,QAAM2O,IAAaF,EAAgB,cAAczO,EAAM,MAAMA,EAAM,MAAMA,EAAM,CAAC,GAC1E4O,IAAeH,EAAgB,gBAAgBzO,EAAM,MAAMA,EAAM,MAAMA,EAAM,CAAC,GAC9E6O,IAAgBJ,EAAgB,iBAAiBzO,EAAM,MAAMA,EAAM,MAAMA,EAAM,CAAC,GAChF8O,IAAcL,EAAgB,eAAezO,EAAM,MAAMA,EAAM,MAAMA,EAAM,CAAC,GAC5ElB,IAAS,CAAA;AAGf,SAAI6P,MAAe,UACjB7P,EAAO,KAAK6P,CAAU,GAEpBC,MAAiB,UACnB9P,EAAO,KAAK8P,CAAY,GAEtBC,MAAkB,UACpB/P,EAAO,KAAK+P,CAAa,GAEvBC,MAAgB,UAClBhQ,EAAO,KAAKgQ,CAAW,GAElBhQ;AACT;ACnHA,MAAMiQ,KAAe;AAAA,EACnB,cAAc,CAACxP,MAAkB,CAAC;AAAA,IAChC,QAAQA,KAAS,OAAO,aAAaA;AAAA,IACrC,OAAO;AAAA,EAAA,GACN;AAAA,IACD,qBAAqB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,CAAK;AAAA,EAAA,CACxG;AAAA,EACD,wBAAwB,CAACA,MAAoC,CAAC;AAAA,IAC5D,SAASA,EAAM,QAAQ,OAAO,aAAaA,EAAM,SAASA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,YAAYA,EAAM,KAAK;AAAA,IAC/R,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,IAAI;AAAA,IACtG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,KAAK,CAAC;AAAA,EAAA,CAC1G;AAAA,EACD,YAAY,CAACA,MAAkB,CAAC;AAAA,IAC9B,QAAQA,KAAS,OAAO,aAAaA;AAAA,IACrC,OAAO;AAAA,EAAA,GACN;AAAA,IACD,mBAAmB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,CAAK;AAAA,EAAA,CACtG;AAAA,EACD,sBAAsB,CAACA,MAAoC,CAAC;AAAA,IAC1D,SAASA,EAAM,QAAQ,OAAO,cAAcA,EAAM,SAASA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,aAAaA,EAAM,KAAK;AAAA,IACjS,OAAO;AAAA,EAAA,GACN;AAAA,IACD,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,IAAI;AAAA,IACvG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,KAAK,CAAC;AAAA,EAAA,CACzG;AAAA,EACD,aAAa,CAACA,MAAkB,CAAC;AAAA,IAC/B,QAAQA,KAAS,OAAO,YAAYA;AAAA,IACpC,OAAO;AAAA,EAAA,GACN;AAAA,IACD,oBAAoB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,CAAK;AAAA,EAAA,CACvG;AAAA,EACD,uBAAuB,CAACA,MAAoC,CAAC;AAAA,IAC3D,SAASA,EAAM,QAAQ,OAAO,cAAcA,EAAM,SAASA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,aAAaA,EAAM,KAAK;AAAA,IAClS,OAAO;AAAA,EAAA,GACN;AAAA,IACD,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,IAAI;AAAA,IACtG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,KAAK,CAAC;AAAA,EAAA,CACzG;AAAA,EACD,WAAW,CAACA,MAAkB,CAAC;AAAA,IAC7B,QAAQA,KAAS,OAAO,aAAaA;AAAA,IACrC,OAAO;AAAA,EAAA,GACN;AAAA,IACD,kBAAkB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,CAAK;AAAA,EAAA,CACrG;AAAA,EACD,qBAAqB,CAACA,MAAoC,CAAC;AAAA,IACzD,SAASA,EAAM,QAAQ,OAAO,cAAcA,EAAM,SAASA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,aAAaA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,MAAM,OAAO,cAAcA,EAAM,OAAOA,EAAM,KAAK,KAAK,OAAO,YAAYA,EAAM,KAAK;AAAA,IAChS,OAAO;AAAA,EAAA,GACN;AAAA,IACD,cAAc,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,IAAI;AAAA,IACrG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,gBAAgB,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACrG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,EAAE;AAAA,IACpG,eAAe,CAAAsD,MAAO,OAAOA,KAAQ,WAAWA,IAAM,OAAOA,KAAoB,QAAWtD,EAAM,KAAK,CAAC;AAAA,EAAA,CACzG;AACH;AACA,SAASuD,EAAYvD,GAA0C;AAC7D,MAAIA,MAAU;AACd,WAAI,OAAOA,KAAU,WAAiBA,IAClCA,MAAU,IAAU,MACjB,gCAAgCA,CAAK;AAC9C;AACA,SAASkP,EAAgBzL,GAAqDzD,GAAuC;AACnH,MAAI,OAAOA,KAAU,UAAU;AAC7B,UAAM0D,IAAWH,EAAYvD,CAAK;AAClC,WAAO,OAAO0D,KAAa,WAAW8L,GAAa/L,CAAG,EAAEC,CAAQ,IAAI;AAAA,EACtE;AACA,SAAO8L,GAAa,GAAG/L,CAAG,YAAY,EAAErC,EAAuB;AAAA,IAC7D,MAAMmC,EAAYvD,EAAM,IAAI;AAAA,IAC5B,IAAIuD,EAAYvD,EAAM,EAAE;AAAA,IACxB,IAAIuD,EAAYvD,EAAM,EAAE;AAAA,IACxB,IAAIuD,EAAYvD,EAAM,EAAE;AAAA,IACxB,IAAIuD,EAAYvD,EAAM,EAAE;AAAA,IACxB,OAAOuD,EAAYvD,EAAM,KAAK,CAAC;AAAA,EAAA,GAC9B,GAAG,CAAC;AACT;AAIO,SAASyP,GAAgBhP,GAAoB;AAElD,QAAMiP,IAAYR,EAAgB,aAAazO,EAAM,MAAMA,EAAM,MAAMA,EAAM,CAAC,GACxEkP,IAAcT,EAAgB,eAAezO,EAAM,MAAMA,EAAM,MAAMA,EAAM,CAAC,GAC5EmP,IAAeV,EAAgB,gBAAgBzO,EAAM,MAAMA,EAAM,MAAMA,EAAM,CAAC,GAC9EoP,IAAaX,EAAgB,cAAczO,EAAM,MAAMA,EAAM,MAAMA,EAAM,CAAC,GAC1ElB,IAAS,CAAA;AAGf,SAAImQ,MAAc,UAChBnQ,EAAO,KAAKmQ,CAAS,GAEnBC,MAAgB,UAClBpQ,EAAO,KAAKoQ,CAAW,GAErBC,MAAiB,UACnBrQ,EAAO,KAAKqQ,CAAY,GAEtBC,MAAe,UACjBtQ,EAAO,KAAKsQ,CAAU,GAEjBtQ;AACT;AC3FO,SAASuQ,GAAmC;AAAA,EACjD,IAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAA7Q;AAAA,EACA,OAAAQ;AAAA;AAAA,EAEA,GAAAsQ;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,GAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA,EACA,IAAAC;AAAA;AAAA,EAEA,SAAA9O;AAAA,EACA,UAAAI;AAAA,EACA,UAAAS;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAK;AAAA;AAAA,EAEA,GAAAQ;AAAA,EACA,GAAAC;AAAA,EACA,MAAAC;AAAA,EACA,MAAAC;AAAA,EACA,MAAAC;AAAA,EACA,MAAAC;AAAA;AAAA,EAEA,eAAA4C;AAAA,EACA,gBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,KAAA5B;AAAA,EACA,QAAAC;AAAA,EACA,WAAAC;AAAA,EACA,MAAAc;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AAAA;AAAA,EAEA,aAAAgB;AAAA,EACA,qBAAAC;AAAA,EACA,kBAAAC;AAAA;AAAA,EAEA,OAAAI;AAAA,EACA,QAAAC;AAAA,EACA,QAAAC;AAAA,EACA,KAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,MAAAC;AAAA;AAAA,EAEA,UAAAkB;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AAAA;AAAA,EAEA,OAAAW;AAAA,EACA,IAAAC;AAAA,EACA,aAAAC;AAAA;AAAA,EAEA,QAAAa;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC;AAAA;AAAA,EAEA,SAAAe;AAAA,EACA,YAAAC;AAAA,EACA,eAAAC;AAAA,EACA,aAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,oBAAAC;AAAA;AAAA,EAEA,QAAAS;AAAA;AAAA,EAEA,QAAAQ;AAAA,EACA,eAAAC;AAAA,EACA,YAAAC;AAAA;AAAA,EAEA,WAAAM;AAAA,EACA,YAAAC;AAAA;AAAA,EAEA,SAAAK;AAAA,EACA,GAAG+B;AACL,GAAgB;AACd,QAAMC,KAAYjB,KAAM,OAClB;AAAA,IACJ,WAAWkB;AAAA,IACX,OAAOC;AAAA,IACP,GAAGC;AAAA,EAAA,IACDC,GAAajQ,GAAY,MAAMA,GAAY,eAAegO,GAAiB;AAAA,IAC7E,GAAAc;AAAA,IACA,IAAAC;AAAA,IACA,IAAAC;AAAA,IACA,IAAAC;AAAA,IACA,IAAAC;AAAA,IACA,IAAAC;AAAA,IACA,IAAAC;AAAA,EAAA,CACD,GAAGd,GAAgB;AAAA,IAClB,GAAAe;AAAA,IACA,IAAAC;AAAA,IACA,IAAAC;AAAA,IACA,IAAAC;AAAA,IACA,IAAAC;AAAA,IACA,IAAAC;AAAA,IACA,IAAAC;AAAA,EAAA,CACD,GAAG/O,GAAiBC,CAAO,GAAGG,GAAkBC,CAAQ,GAAGQ,GAAkB;AAAA,IAC5E,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,WAAAC;AAAA,EAAA,CACD,GAAGI,GAAgBC,CAAM,GAAGO,GAAgB;AAAA,IAC3C,GAAAC;AAAA,IACA,GAAAC;AAAA,IACA,MAAAC;AAAA,IACA,MAAAC;AAAA,IACA,MAAAC;AAAA,IACA,MAAAC;AAAA,EAAA,CACD,GAAG2C,GAAiB;AAAA,IACnB,eAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,YAAAC;AAAA,IACA,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,KAAA5B;AAAA,IACA,QAAAC;AAAA,IACA,WAAAC;AAAA,IACA,MAAAc;AAAA,IACA,UAAAC;AAAA,IACA,YAAAC;AAAA,IACA,WAAAC;AAAA,EAAA,CACD,GAAGe,GAAc;AAAA,IAChB,aAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,kBAAAC;AAAA,EAAA,CACD,GAAGG,GAAe;AAAA,IACjB,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,QAAAC;AAAA,IACA,KAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,MAAAC;AAAA,EAAA,CACD,GAAGiB,GAAoB;AAAA,IACtB,UAAAC;AAAA,IACA,YAAAC;AAAA,IACA,YAAAC;AAAA,IACA,YAAAC;AAAA,EAAA,CACD,GAAGU,GAAe;AAAA,IACjB,OAAAC;AAAA,IACA,IAAAC;AAAA,IACA,aAAAC;AAAA,EAAA,CACD,GAAGY,GAAgB;AAAA,IAClB,QAAAC;AAAA,IACA,SAAAC;AAAA,IACA,SAAAC;AAAA,IACA,WAAAC;AAAA,IACA,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,aAAAC;AAAA,EAAA,CACD,GAAGc,GAAmB;AAAA,IACrB,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,eAAAC;AAAA,IACA,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,oBAAAC;AAAA,EAAA,CACD,GAAGQ,GAAgB;AAAA,IAClB,QAAAC;AAAA,EAAA,CACD,GAAGO,GAAqB;AAAA,IACvB,QAAAC;AAAA,IACA,eAAAC;AAAA,IACA,YAAAC;AAAA,EAAA,CACD,GAAGK,GAAc;AAAA,IAChB,WAAAC;AAAA,IACA,YAAAC;AAAA,EAAA,CACD,GAAGI,GAAiB;AAAA,IACnB,SAAAC;AAAA,EAAA,CACD,CAAC;AACF,2BAAQgC,IAAA,EAAU,WAAW9P,GAAK+P,IAAiB9R,CAAS,GAAG,OAAO;AAAA,IACpE,GAAG+R;AAAA,IACH,GAAGvR;AAAA,EAAA,GACD,GAAGoR,IAAO,GAAGI,IACZ,UAAAnB,EAAA,CACH;AACJ;AClNO,SAASqB,GAAqC;AAAA,EACnD,IAAAtB;AAAA,EACA,MAAAuB;AAAA,EACA,QAAAC;AAAA,EACA,OAAAC;AAAA,EACA,OAAApH;AAAA,EACA,UAAAqH;AAAA,EACA,QAAAC;AAAA,EACA,WAAAvS;AAAA,EACA,GAAG4R;AACL,GAAiB;AACf,QAAM;AAAA,IACJ,WAAWE;AAAA,EAAA,IACT;AAAA,IACF,GAAG,CAAA;AAAA,IACH,GAAG;AAAA,MACD,WAAW;AAAA,IAAA;AAAA,IAEb,GAAG;AAAA,MACD,WAAW;AAAA,IAAA;AAAA,IAEb,GAAG;AAAA,MACD,WAAW;AAAA,IAAA;AAAA,EACb,EACA,CAAC,CAACQ,KAAY,IAAI,CAAC,CAACC,KAAU,CAAC;AACjC;AAAA;AAAA,sBAEG5B,IAAA,EAAI,IAAAC,GAAQ,UAAUuB,GAAM,YAAYC,GAAQ,WAAWC,GAAO,OAAApH,GAAc,WAAWlJ,GAAK+P,GAAiB9R,CAAS,GAAI,GAAG4R,EAAA,CAAM;AAAA;AAE5I;ACnCA,MAAMY,KAA+C;AAAA,EACnD,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL;AAwBO,SAASC,GAAsC;AAAA,EACpD,IAAA7B;AAAA,EACA,OAAA8B,IAAQ;AAAA,EACR,MAAAP;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,OAAAnH;AAAA,EACA,UAAA4F;AAAA,EACA,GAAGe;AACL,GAAoB;AAClB,QAAMe,IAAiB,IAAID,CAAK,IAC1BE,IAAcJ,GAAaE,CAAK;AAGtC;AAAA;AAAA,IAEE,gBAAAG;AAAA,MAACX;AAAA,MAAA;AAAA,QACC,IALYtB,KAAM+B;AAAA,QAMlB,MAAMR,KAAQS;AAAA,QACd,QAAAR;AAAA,QACA,OAAAnH;AAAA,QACC,GAAG2G;AAAA,QAEH,UAAAf;AAAA,MAAA;AAAA,IAAA;AAAA;AAGP;AC9EA,OAAO,qBAAoB;","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"index.js","sources":["../../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../src/components/Box/reset/reset.ts","../src/components/Box/shared/constants.ts","../src/components/Box/shared/spacing.ts","../src/components/Box/margin/margin.ts","../src/components/Box/padding/padding.ts","../src/components/Box/sizing/sizing.ts","../src/components/Box/inset/inset.ts","../src/components/Box/display/display.ts","../src/components/Box/position/position.ts","../src/components/Box/overflow/overflow.ts","../src/components/Box/zIndex/zIndex.ts","../src/components/Box/shadows/shadows.ts","../src/components/Box/opacity/opacity.ts","../src/components/Box/interactions/interactions.ts","../src/components/Box/text/text.ts","../src/components/Box/typography/typography.ts","../src/components/Box/colors/colors.ts","../src/components/Box/borders/borders.ts","../src/components/Box/roundness/roundness.ts","../src/components/Box/flexbox/flexbox.ts","../src/components/Box/grid/grid.ts","../src/components/Box/Box.tsx","../src/components/Text/Text.tsx","../src/components/Heading/Heading.tsx","../src/components/Spinner/Spinner.tsx","../src/components/Button/Button.tsx","../src/components/Stack/Stack.tsx","../src/components/HStack/HStack.tsx","../src/components/VStack/VStack.tsx","../src/components/Flex/Flex.tsx","../src/components/Grid/Grid.tsx","../src/components/Container/Container.tsx","../src/components/Divider/Divider.tsx","../src/components/Spacer/Spacer.tsx","../src/components/Code/Code.tsx","../src/components/Input/Input.tsx","../src/components/Label/Label.tsx","../src/components/Textarea/Textarea.tsx","../src/components/Select/Select.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Radio/Radio.tsx","../src/components/Switch/Switch.tsx","../src/components/FormField/FormField.tsx","../src/components/IconButton/IconButton.tsx","../src/components/Alert/Alert.tsx","../src/components/Badge/Badge.tsx","../src/components/Progress/Progress.tsx","../src/components/Skeleton/Skeleton.tsx","../src/components/Avatar/Avatar.tsx","../src/components/Card/Card.tsx","../src/components/Image/Image.tsx","../src/components/List/List.tsx","../src/components/Link/Link.tsx","../src/components/Tabs/Tabs.tsx","../src/components/Breadcrumb/Breadcrumb.tsx","../src/components/Menu/Menu.tsx","../src/components/Pagination/Pagination.tsx","../src/components/Modal/Modal.tsx","../src/components/Tooltip/Tooltip.tsx","../src/components/Popover/Popover.tsx","../src/components/Accordion/Accordion.tsx","../src/index.tsx"],"sourcesContent":["function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import styles from \"./reset.module.css\";\n\nexport const resetClass = styles.reset;\n","export const RESPONSIVE_KEYS = [\"base\", \"sm\", \"md\", \"lg\", \"xl\", \"2xl\"] as const;\n\nexport const STATE_SUFFIXES = {\n base: \"\",\n hover: \"-h\",\n focus: \"-f\",\n active: \"-a\",\n disabled: \"-d\",\n} as const;\n\nexport const STATE_CLASS_SUFFIXES = {\n base: \"\",\n hover: \":h\",\n focus: \":f\",\n active: \":a\",\n disabled: \":d\",\n} as const;\n","/**\n * Converts a spacing value to a CSS value string.\n * Used by margin, padding, and sizing style helpers.\n *\n * - Numbers are multiplied by the spacing unit (4px)\n * - Strings are passed through as-is (for custom values like \"100%\")\n * - 0 returns \"0\" (no unit needed)\n */\nexport function getRawValue(value?: string | number): string | undefined {\n if (value === undefined) return undefined;\n if (typeof value === \"string\") return value;\n if (value === 0) return \"0\";\n return `calc(var(--t-spacing-unit) * ${value})`;\n}\n","import type { ResponsiveValue } from \"@/utils/breakpoints\";\nimport {\n RESPONSIVE_KEYS,\n STATE_SUFFIXES,\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n getRawValue,\n} from \"../shared\";\nimport styles from \"./margin.module.css\";\nimport clsx from \"clsx\";\n\ntype SpacingValue = string | number;\ntype MarginKey = \"mt\" | \"mr\" | \"mb\" | \"ml\";\ntype MarginShorthandKey = \"m\" | \"mx\" | \"my\";\n\nexport type MarginProps = {\n m?: ResponsiveValue<SpacingValue>;\n mt?: ResponsiveValue<SpacingValue>;\n mr?: ResponsiveValue<SpacingValue>;\n mb?: ResponsiveValue<SpacingValue>;\n ml?: ResponsiveValue<SpacingValue>;\n mx?: ResponsiveValue<SpacingValue>;\n my?: ResponsiveValue<SpacingValue>;\n};\n\nexport type MarginStateProps = {\n _hover?: MarginProps;\n _focus?: MarginProps;\n _active?: MarginProps;\n _disabled?: MarginProps;\n};\n\nfunction getSpacingProps(\n key: MarginKey,\n value: ResponsiveValue<SpacingValue> | undefined,\n state: StateKey = \"base\"\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (value === undefined) return result;\n\n const stateSuffix = STATE_SUFFIXES[state];\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n\n if (typeof value !== \"object\") {\n const rawValue = getRawValue(value);\n if (rawValue !== undefined) {\n const className = stateClassSuffix\n ? styles[`${key}${stateClassSuffix}`]\n : styles[key];\n result.className = className || \"\";\n result.style[`--t-${key}${stateSuffix}`] = rawValue;\n }\n return result;\n }\n\n for (const responsiveKey of RESPONSIVE_KEYS) {\n const rawValue = getRawValue(value[responsiveKey]);\n if (rawValue === undefined) continue;\n\n let className: string | undefined;\n let varName: string;\n\n if (responsiveKey === \"base\") {\n className = stateClassSuffix\n ? styles[`${key}${stateClassSuffix}`]\n : styles[key];\n varName = `--t-${key}${stateSuffix}`;\n } else {\n className = stateClassSuffix\n ? styles[`${key}_${responsiveKey}${stateClassSuffix}`]\n : styles[`${key}_${responsiveKey}`];\n varName = `--t-${key}_${responsiveKey}${stateSuffix}`;\n }\n\n if (className) {\n result.className = clsx(result.className, className);\n }\n result.style[varName] = rawValue;\n }\n\n return result;\n}\n\nfunction resolveMarginValue(\n key: MarginKey,\n props: MarginProps\n): ResponsiveValue<SpacingValue> | undefined {\n const shorthandMap: Record<MarginKey, MarginShorthandKey> = {\n mt: \"my\",\n mb: \"my\",\n mr: \"mx\",\n ml: \"mx\",\n };\n return props[key] ?? props[shorthandMap[key]] ?? props.m;\n}\n\nfunction getMarginStylesForState(\n props: MarginProps | undefined,\n state: StateKey\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (!props) return result;\n\n const marginTop = getSpacingProps(\"mt\", resolveMarginValue(\"mt\", props), state);\n const marginRight = getSpacingProps(\"mr\", resolveMarginValue(\"mr\", props), state);\n const marginBottom = getSpacingProps(\"mb\", resolveMarginValue(\"mb\", props), state);\n const marginLeft = getSpacingProps(\"ml\", resolveMarginValue(\"ml\", props), state);\n\n return {\n className: clsx(\n marginTop.className,\n marginRight.className,\n marginBottom.className,\n marginLeft.className\n ),\n style: {\n ...marginTop.style,\n ...marginRight.style,\n ...marginBottom.style,\n ...marginLeft.style,\n },\n };\n}\n\nexport function getMarginStyles(\n props: MarginProps & MarginStateProps\n): StyleResult {\n const { _hover, _focus, _active, _disabled, ...baseProps } = props;\n\n const baseStyles = getMarginStylesForState(baseProps, \"base\");\n const hoverStyles = getMarginStylesForState(_hover, \"hover\");\n const focusStyles = getMarginStylesForState(_focus, \"focus\");\n const activeStyles = getMarginStylesForState(_active, \"active\");\n const disabledStyles = getMarginStylesForState(_disabled, \"disabled\");\n\n return {\n className: clsx(\n baseStyles.className,\n hoverStyles.className,\n focusStyles.className,\n activeStyles.className,\n disabledStyles.className\n ),\n style: {\n ...baseStyles.style,\n ...hoverStyles.style,\n ...focusStyles.style,\n ...activeStyles.style,\n ...disabledStyles.style,\n },\n };\n}\n","import type { ResponsiveValue } from \"@/utils/breakpoints\";\nimport {\n RESPONSIVE_KEYS,\n STATE_SUFFIXES,\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n getRawValue,\n} from \"../shared\";\nimport styles from \"./padding.module.css\";\nimport clsx from \"clsx\";\n\ntype SpacingValue = string | number;\ntype PaddingKey = \"pt\" | \"pr\" | \"pb\" | \"pl\";\ntype PaddingShorthandKey = \"p\" | \"px\" | \"py\";\n\nexport type PaddingProps = {\n p?: ResponsiveValue<SpacingValue>;\n pt?: ResponsiveValue<SpacingValue>;\n pr?: ResponsiveValue<SpacingValue>;\n pb?: ResponsiveValue<SpacingValue>;\n pl?: ResponsiveValue<SpacingValue>;\n px?: ResponsiveValue<SpacingValue>;\n py?: ResponsiveValue<SpacingValue>;\n};\n\nexport type PaddingStateProps = {\n _hover?: PaddingProps;\n _focus?: PaddingProps;\n _active?: PaddingProps;\n _disabled?: PaddingProps;\n};\n\nfunction getSpacingProps(\n key: PaddingKey,\n value: ResponsiveValue<SpacingValue> | undefined,\n state: StateKey = \"base\"\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (value === undefined) return result;\n\n const stateSuffix = STATE_SUFFIXES[state];\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n\n if (typeof value !== \"object\") {\n const rawValue = getRawValue(value);\n if (rawValue !== undefined) {\n const className = stateClassSuffix\n ? styles[`${key}${stateClassSuffix}`]\n : styles[key];\n result.className = className || \"\";\n result.style[`--t-${key}${stateSuffix}`] = rawValue;\n }\n return result;\n }\n\n for (const responsiveKey of RESPONSIVE_KEYS) {\n const rawValue = getRawValue(value[responsiveKey]);\n if (rawValue === undefined) continue;\n\n let className: string | undefined;\n let varName: string;\n\n if (responsiveKey === \"base\") {\n className = stateClassSuffix\n ? styles[`${key}${stateClassSuffix}`]\n : styles[key];\n varName = `--t-${key}${stateSuffix}`;\n } else {\n className = stateClassSuffix\n ? styles[`${key}_${responsiveKey}${stateClassSuffix}`]\n : styles[`${key}_${responsiveKey}`];\n varName = `--t-${key}_${responsiveKey}${stateSuffix}`;\n }\n\n if (className) {\n result.className = clsx(result.className, className);\n }\n result.style[varName] = rawValue;\n }\n\n return result;\n}\n\nfunction resolvePaddingValue(\n key: PaddingKey,\n props: PaddingProps\n): ResponsiveValue<SpacingValue> | undefined {\n const shorthandMap: Record<PaddingKey, PaddingShorthandKey> = {\n pt: \"py\",\n pb: \"py\",\n pr: \"px\",\n pl: \"px\",\n };\n return props[key] ?? props[shorthandMap[key]] ?? props.p;\n}\n\nfunction getPaddingStylesForState(\n props: PaddingProps | undefined,\n state: StateKey\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (!props) return result;\n\n const paddingTop = getSpacingProps(\"pt\", resolvePaddingValue(\"pt\", props), state);\n const paddingRight = getSpacingProps(\"pr\", resolvePaddingValue(\"pr\", props), state);\n const paddingBottom = getSpacingProps(\"pb\", resolvePaddingValue(\"pb\", props), state);\n const paddingLeft = getSpacingProps(\"pl\", resolvePaddingValue(\"pl\", props), state);\n\n return {\n className: clsx(\n paddingTop.className,\n paddingRight.className,\n paddingBottom.className,\n paddingLeft.className\n ),\n style: {\n ...paddingTop.style,\n ...paddingRight.style,\n ...paddingBottom.style,\n ...paddingLeft.style,\n },\n };\n}\n\nexport function getPaddingStyles(\n props: PaddingProps & PaddingStateProps\n): StyleResult {\n const { _hover, _focus, _active, _disabled, ...baseProps } = props;\n\n const baseStyles = getPaddingStylesForState(baseProps, \"base\");\n const hoverStyles = getPaddingStylesForState(_hover, \"hover\");\n const focusStyles = getPaddingStylesForState(_focus, \"focus\");\n const activeStyles = getPaddingStylesForState(_active, \"active\");\n const disabledStyles = getPaddingStylesForState(_disabled, \"disabled\");\n\n return {\n className: clsx(\n baseStyles.className,\n hoverStyles.className,\n focusStyles.className,\n activeStyles.className,\n disabledStyles.className\n ),\n style: {\n ...baseStyles.style,\n ...hoverStyles.style,\n ...focusStyles.style,\n ...activeStyles.style,\n ...disabledStyles.style,\n },\n };\n}\n","import type { ResponsiveValue } from \"@/utils/breakpoints\";\nimport {\n RESPONSIVE_KEYS,\n STATE_SUFFIXES,\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n getRawValue,\n} from \"../shared\";\nimport styles from \"./sizing.module.css\";\nimport clsx from \"clsx\";\n\ntype SizingValue = string | number;\ntype SizingKey = \"w\" | \"h\" | \"minW\" | \"maxW\" | \"minH\" | \"maxH\";\n\nexport type SizingProps = {\n w?: ResponsiveValue<SizingValue>;\n h?: ResponsiveValue<SizingValue>;\n minW?: ResponsiveValue<SizingValue>;\n maxW?: ResponsiveValue<SizingValue>;\n minH?: ResponsiveValue<SizingValue>;\n maxH?: ResponsiveValue<SizingValue>;\n};\n\nexport type SizingStateProps = {\n _hover?: SizingProps;\n _focus?: SizingProps;\n _active?: SizingProps;\n _disabled?: SizingProps;\n};\n\nfunction getSizingProp(\n key: SizingKey,\n value: ResponsiveValue<SizingValue> | undefined,\n state: StateKey = \"base\"\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (value === undefined) return result;\n\n const stateSuffix = STATE_SUFFIXES[state];\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n\n if (typeof value !== \"object\") {\n const rawValue = getRawValue(value);\n if (rawValue !== undefined) {\n const className = stateClassSuffix\n ? styles[`${key}${stateClassSuffix}`]\n : styles[key];\n result.className = className || \"\";\n result.style[`--t-${key}${stateSuffix}`] = rawValue;\n }\n return result;\n }\n\n for (const responsiveKey of RESPONSIVE_KEYS) {\n const rawValue = getRawValue(value[responsiveKey]);\n if (rawValue === undefined) continue;\n\n let className: string | undefined;\n let varName: string;\n\n if (responsiveKey === \"base\") {\n className = stateClassSuffix\n ? styles[`${key}${stateClassSuffix}`]\n : styles[key];\n varName = `--t-${key}${stateSuffix}`;\n } else {\n className = stateClassSuffix\n ? styles[`${key}_${responsiveKey}${stateClassSuffix}`]\n : styles[`${key}_${responsiveKey}`];\n varName = `--t-${key}_${responsiveKey}${stateSuffix}`;\n }\n\n if (className) {\n result.className = clsx(result.className, className);\n }\n result.style[varName] = rawValue;\n }\n\n return result;\n}\n\nfunction getSizingStylesForState(\n props: SizingProps | undefined,\n state: StateKey\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (!props) return result;\n\n const keys: SizingKey[] = [\"w\", \"h\", \"minW\", \"maxW\", \"minH\", \"maxH\"];\n const results = keys.map((key) => getSizingProp(key, props[key], state));\n\n return {\n className: clsx(...results.map((r) => r.className)),\n style: Object.assign({}, ...results.map((r) => r.style)),\n };\n}\n\nexport function getSizingStyles(\n props: SizingProps & SizingStateProps\n): StyleResult {\n const { _hover, _focus, _active, _disabled, ...baseProps } = props;\n\n const baseStyles = getSizingStylesForState(baseProps, \"base\");\n const hoverStyles = getSizingStylesForState(_hover, \"hover\");\n const focusStyles = getSizingStylesForState(_focus, \"focus\");\n const activeStyles = getSizingStylesForState(_active, \"active\");\n const disabledStyles = getSizingStylesForState(_disabled, \"disabled\");\n\n return {\n className: clsx(\n baseStyles.className,\n hoverStyles.className,\n focusStyles.className,\n activeStyles.className,\n disabledStyles.className\n ),\n style: {\n ...baseStyles.style,\n ...hoverStyles.style,\n ...focusStyles.style,\n ...activeStyles.style,\n ...disabledStyles.style,\n },\n };\n}\n","import type { ResponsiveValue } from \"@/utils/breakpoints\";\nimport {\n RESPONSIVE_KEYS,\n STATE_SUFFIXES,\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n getRawValue,\n} from \"../shared\";\nimport styles from \"./inset.module.css\";\nimport clsx from \"clsx\";\n\ntype InsetValue = string | number;\ntype InsetKey = \"top\" | \"right\" | \"bottom\" | \"left\";\ntype InsetShorthandKey = \"inset\" | \"insetX\" | \"insetY\";\n\nexport type InsetProps = {\n inset?: ResponsiveValue<InsetValue>;\n insetX?: ResponsiveValue<InsetValue>;\n insetY?: ResponsiveValue<InsetValue>;\n top?: ResponsiveValue<InsetValue>;\n right?: ResponsiveValue<InsetValue>;\n bottom?: ResponsiveValue<InsetValue>;\n left?: ResponsiveValue<InsetValue>;\n};\n\nexport type InsetStateProps = {\n _hover?: InsetProps;\n _focus?: InsetProps;\n _active?: InsetProps;\n _disabled?: InsetProps;\n};\n\nfunction getInsetProp(\n key: InsetKey,\n value: ResponsiveValue<InsetValue> | undefined,\n state: StateKey = \"base\"\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (value === undefined) return result;\n\n const stateSuffix = STATE_SUFFIXES[state];\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n\n if (typeof value !== \"object\") {\n const rawValue = getRawValue(value);\n if (rawValue !== undefined) {\n const className = stateClassSuffix\n ? styles[`${key}${stateClassSuffix}`]\n : styles[key];\n result.className = className || \"\";\n result.style[`--t-${key}${stateSuffix}`] = rawValue;\n }\n return result;\n }\n\n for (const responsiveKey of RESPONSIVE_KEYS) {\n const rawValue = getRawValue(value[responsiveKey]);\n if (rawValue === undefined) continue;\n\n let className: string | undefined;\n let varName: string;\n\n if (responsiveKey === \"base\") {\n className = stateClassSuffix\n ? styles[`${key}${stateClassSuffix}`]\n : styles[key];\n varName = `--t-${key}${stateSuffix}`;\n } else {\n className = stateClassSuffix\n ? styles[`${key}_${responsiveKey}${stateClassSuffix}`]\n : styles[`${key}_${responsiveKey}`];\n varName = `--t-${key}_${responsiveKey}${stateSuffix}`;\n }\n\n if (className) {\n result.className = clsx(result.className, className);\n }\n result.style[varName] = rawValue;\n }\n\n return result;\n}\n\nfunction resolveInsetValue(\n key: InsetKey,\n props: InsetProps\n): ResponsiveValue<InsetValue> | undefined {\n const shorthandMap: Record<InsetKey, InsetShorthandKey> = {\n top: \"insetY\",\n bottom: \"insetY\",\n right: \"insetX\",\n left: \"insetX\",\n };\n return props[key] ?? props[shorthandMap[key]] ?? props.inset;\n}\n\nfunction getInsetStylesForState(\n props: InsetProps | undefined,\n state: StateKey\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (!props) return result;\n\n const insetTop = getInsetProp(\"top\", resolveInsetValue(\"top\", props), state);\n const insetRight = getInsetProp(\"right\", resolveInsetValue(\"right\", props), state);\n const insetBottom = getInsetProp(\"bottom\", resolveInsetValue(\"bottom\", props), state);\n const insetLeft = getInsetProp(\"left\", resolveInsetValue(\"left\", props), state);\n\n return {\n className: clsx(\n insetTop.className,\n insetRight.className,\n insetBottom.className,\n insetLeft.className\n ),\n style: {\n ...insetTop.style,\n ...insetRight.style,\n ...insetBottom.style,\n ...insetLeft.style,\n },\n };\n}\n\nexport function getInsetStyles(\n props: InsetProps & InsetStateProps\n): StyleResult {\n const { _hover, _focus, _active, _disabled, ...baseProps } = props;\n\n const baseStyles = getInsetStylesForState(baseProps, \"base\");\n const hoverStyles = getInsetStylesForState(_hover, \"hover\");\n const focusStyles = getInsetStylesForState(_focus, \"focus\");\n const activeStyles = getInsetStylesForState(_active, \"active\");\n const disabledStyles = getInsetStylesForState(_disabled, \"disabled\");\n\n return {\n className: clsx(\n baseStyles.className,\n hoverStyles.className,\n focusStyles.className,\n activeStyles.className,\n disabledStyles.className\n ),\n style: {\n ...baseStyles.style,\n ...hoverStyles.style,\n ...focusStyles.style,\n ...activeStyles.style,\n ...disabledStyles.style,\n },\n };\n}\n","import type { ResponsiveValue } from \"@/utils/breakpoints\";\nimport {\n RESPONSIVE_KEYS,\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./display.module.css\";\nimport clsx from \"clsx\";\n\nexport type DisplayValue =\n | \"block\"\n | \"flex\"\n | \"inline-flex\"\n | \"grid\"\n | \"inline\"\n | \"inline-block\"\n | \"none\"\n | \"contents\";\n\nexport type DisplayProps = {\n display?: ResponsiveValue<DisplayValue>;\n};\n\nexport type DisplayStateProps = {\n _hover?: DisplayProps;\n _focus?: DisplayProps;\n _active?: DisplayProps;\n _disabled?: DisplayProps;\n};\n\nfunction getDisplayClass(\n value: DisplayValue,\n responsiveKey: (typeof RESPONSIVE_KEYS)[number],\n state: StateKey\n): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n\n if (responsiveKey === \"base\") {\n return stateClassSuffix\n ? styles[`${value}${stateClassSuffix}`]\n : styles[value];\n }\n\n return stateClassSuffix\n ? styles[`${value}_${responsiveKey}${stateClassSuffix}`]\n : styles[`${value}_${responsiveKey}`];\n}\n\nfunction getDisplayStylesForValue(\n value: ResponsiveValue<DisplayValue> | undefined,\n state: StateKey\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (value === undefined) return result;\n\n // Simple value (non-responsive)\n if (typeof value === \"string\") {\n const className = getDisplayClass(value, \"base\", state);\n if (className) {\n result.className = className;\n }\n return result;\n }\n\n // Responsive value\n for (const responsiveKey of RESPONSIVE_KEYS) {\n const displayValue = value[responsiveKey];\n if (displayValue === undefined) continue;\n\n const className = getDisplayClass(displayValue, responsiveKey, state);\n if (className) {\n result.className = clsx(result.className, className);\n }\n }\n\n return result;\n}\n\nexport function getDisplayStyles(\n props: DisplayProps & DisplayStateProps\n): StyleResult {\n const { display, _hover, _focus, _active, _disabled } = props;\n\n const baseStyles = getDisplayStylesForValue(display, \"base\");\n const hoverStyles = getDisplayStylesForValue(_hover?.display, \"hover\");\n const focusStyles = getDisplayStylesForValue(_focus?.display, \"focus\");\n const activeStyles = getDisplayStylesForValue(_active?.display, \"active\");\n const disabledStyles = getDisplayStylesForValue(_disabled?.display, \"disabled\");\n\n return {\n className: clsx(\n baseStyles.className,\n hoverStyles.className,\n focusStyles.className,\n activeStyles.className,\n disabledStyles.className\n ),\n style: {},\n };\n}\n","import type { ResponsiveValue } from \"@/utils/breakpoints\";\nimport {\n RESPONSIVE_KEYS,\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./position.module.css\";\nimport clsx from \"clsx\";\n\nexport type PositionValue = \"static\" | \"relative\" | \"absolute\" | \"fixed\" | \"sticky\";\n\nexport type PositionProps = {\n position?: ResponsiveValue<PositionValue>;\n};\n\nexport type PositionStateProps = {\n _hover?: PositionProps;\n _focus?: PositionProps;\n _active?: PositionProps;\n _disabled?: PositionProps;\n};\n\nfunction getPositionClass(\n value: PositionValue,\n responsiveKey: (typeof RESPONSIVE_KEYS)[number],\n state: StateKey\n): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n\n if (responsiveKey === \"base\") {\n return stateClassSuffix\n ? styles[`${value}${stateClassSuffix}`]\n : styles[value];\n }\n\n return stateClassSuffix\n ? styles[`${value}_${responsiveKey}${stateClassSuffix}`]\n : styles[`${value}_${responsiveKey}`];\n}\n\nfunction getPositionStylesForValue(\n value: ResponsiveValue<PositionValue> | undefined,\n state: StateKey\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (value === undefined) return result;\n\n if (typeof value === \"string\") {\n const className = getPositionClass(value, \"base\", state);\n if (className) {\n result.className = className;\n }\n return result;\n }\n\n for (const responsiveKey of RESPONSIVE_KEYS) {\n const positionValue = value[responsiveKey];\n if (positionValue === undefined) continue;\n\n const className = getPositionClass(positionValue, responsiveKey, state);\n if (className) {\n result.className = clsx(result.className, className);\n }\n }\n\n return result;\n}\n\nexport function getPositionStyles(\n props: PositionProps & PositionStateProps\n): StyleResult {\n const { position, _hover, _focus, _active, _disabled } = props;\n\n const baseStyles = getPositionStylesForValue(position, \"base\");\n const hoverStyles = getPositionStylesForValue(_hover?.position, \"hover\");\n const focusStyles = getPositionStylesForValue(_focus?.position, \"focus\");\n const activeStyles = getPositionStylesForValue(_active?.position, \"active\");\n const disabledStyles = getPositionStylesForValue(_disabled?.position, \"disabled\");\n\n return {\n className: clsx(\n baseStyles.className,\n hoverStyles.className,\n focusStyles.className,\n activeStyles.className,\n disabledStyles.className\n ),\n style: {},\n };\n}\n","import type { ResponsiveValue } from \"@/utils/breakpoints\";\nimport {\n RESPONSIVE_KEYS,\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./overflow.module.css\";\nimport clsx from \"clsx\";\n\nexport type OverflowValue = \"auto\" | \"hidden\" | \"scroll\" | \"visible\";\n\nexport type OverflowProps = {\n overflow?: ResponsiveValue<OverflowValue>;\n overflowX?: ResponsiveValue<OverflowValue>;\n overflowY?: ResponsiveValue<OverflowValue>;\n};\n\nexport type OverflowStateProps = {\n _hover?: OverflowProps;\n _focus?: OverflowProps;\n _active?: OverflowProps;\n _disabled?: OverflowProps;\n};\n\ntype OverflowType = \"overflow\" | \"overflowX\" | \"overflowY\";\n\nconst CLASS_SUFFIX_MAP: Record<OverflowType, string> = {\n overflow: \"\",\n overflowX: \"X\",\n overflowY: \"Y\",\n};\n\nfunction getOverflowClass(\n value: OverflowValue,\n type: OverflowType,\n responsiveKey: (typeof RESPONSIVE_KEYS)[number],\n state: StateKey\n): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n const typeSuffix = CLASS_SUFFIX_MAP[type];\n const baseClassName = `${value}${typeSuffix}`;\n\n if (responsiveKey === \"base\") {\n return stateClassSuffix\n ? styles[`${baseClassName}${stateClassSuffix}`]\n : styles[baseClassName];\n }\n\n return stateClassSuffix\n ? styles[`${baseClassName}_${responsiveKey}${stateClassSuffix}`]\n : styles[`${baseClassName}_${responsiveKey}`];\n}\n\nfunction getOverflowStylesForProp(\n value: ResponsiveValue<OverflowValue> | undefined,\n type: OverflowType,\n state: StateKey\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (value === undefined) return result;\n\n if (typeof value === \"string\") {\n const className = getOverflowClass(value, type, \"base\", state);\n if (className) {\n result.className = className;\n }\n return result;\n }\n\n for (const responsiveKey of RESPONSIVE_KEYS) {\n const overflowValue = value[responsiveKey];\n if (overflowValue === undefined) continue;\n\n const className = getOverflowClass(overflowValue, type, responsiveKey, state);\n if (className) {\n result.className = clsx(result.className, className);\n }\n }\n\n return result;\n}\n\nfunction getOverflowStylesForState(\n props: OverflowProps | undefined,\n state: StateKey\n): StyleResult {\n if (!props) return { className: \"\", style: {} };\n\n const overflow = getOverflowStylesForProp(props.overflow, \"overflow\", state);\n const overflowX = getOverflowStylesForProp(props.overflowX, \"overflowX\", state);\n const overflowY = getOverflowStylesForProp(props.overflowY, \"overflowY\", state);\n\n return {\n className: clsx(overflow.className, overflowX.className, overflowY.className),\n style: {},\n };\n}\n\nexport function getOverflowStyles(\n props: OverflowProps & OverflowStateProps\n): StyleResult {\n const { overflow, overflowX, overflowY, _hover, _focus, _active, _disabled } = props;\n\n const baseStyles = getOverflowStylesForState({ overflow, overflowX, overflowY }, \"base\");\n const hoverStyles = getOverflowStylesForState(_hover, \"hover\");\n const focusStyles = getOverflowStylesForState(_focus, \"focus\");\n const activeStyles = getOverflowStylesForState(_active, \"active\");\n const disabledStyles = getOverflowStylesForState(_disabled, \"disabled\");\n\n return {\n className: clsx(\n baseStyles.className,\n hoverStyles.className,\n focusStyles.className,\n activeStyles.className,\n disabledStyles.className\n ),\n style: {},\n };\n}\n","import type { ResponsiveValue } from \"@/utils/breakpoints\";\nimport {\n RESPONSIVE_KEYS,\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./zIndex.module.css\";\nimport clsx from \"clsx\";\n\nexport type ZIndexValue = \"base\" | \"behind\" | \"dropdown\" | \"sticky\" | \"modal\" | \"toast\" | \"tooltip\";\n\nexport type ZIndexProps = {\n zIndex?: ResponsiveValue<ZIndexValue>;\n};\n\nexport type ZIndexStateProps = {\n _hover?: ZIndexProps;\n _focus?: ZIndexProps;\n _active?: ZIndexProps;\n _disabled?: ZIndexProps;\n};\n\nfunction getZIndexClass(\n value: ZIndexValue,\n responsiveKey: (typeof RESPONSIVE_KEYS)[number],\n state: StateKey\n): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n\n if (responsiveKey === \"base\") {\n return stateClassSuffix\n ? styles[`${value}${stateClassSuffix}`]\n : styles[value];\n }\n\n return stateClassSuffix\n ? styles[`${value}_${responsiveKey}${stateClassSuffix}`]\n : styles[`${value}_${responsiveKey}`];\n}\n\nfunction getZIndexStylesForValue(\n value: ResponsiveValue<ZIndexValue> | undefined,\n state: StateKey\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (value === undefined) return result;\n\n if (typeof value === \"string\") {\n const className = getZIndexClass(value, \"base\", state);\n if (className) {\n result.className = className;\n }\n return result;\n }\n\n for (const responsiveKey of RESPONSIVE_KEYS) {\n const zIndexValue = value[responsiveKey];\n if (zIndexValue === undefined) continue;\n\n const className = getZIndexClass(zIndexValue, responsiveKey, state);\n if (className) {\n result.className = clsx(result.className, className);\n }\n }\n\n return result;\n}\n\nexport function getZIndexStyles(\n props: ZIndexProps & ZIndexStateProps\n): StyleResult {\n const { zIndex, _hover, _focus, _active, _disabled } = props;\n\n const baseStyles = getZIndexStylesForValue(zIndex, \"base\");\n const hoverStyles = getZIndexStylesForValue(_hover?.zIndex, \"hover\");\n const focusStyles = getZIndexStylesForValue(_focus?.zIndex, \"focus\");\n const activeStyles = getZIndexStylesForValue(_active?.zIndex, \"active\");\n const disabledStyles = getZIndexStylesForValue(_disabled?.zIndex, \"disabled\");\n\n return {\n className: clsx(\n baseStyles.className,\n hoverStyles.className,\n focusStyles.className,\n activeStyles.className,\n disabledStyles.className\n ),\n style: {},\n };\n}\n","import type { ResponsiveValue } from \"@/utils/breakpoints\";\nimport {\n RESPONSIVE_KEYS,\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./shadows.module.css\";\nimport clsx from \"clsx\";\n\nexport type ShadowValue = \"none\" | \"sm\" | \"md\" | \"lg\";\n\nexport type ShadowProps = {\n shadow?: ResponsiveValue<ShadowValue>;\n};\n\nexport type ShadowStateProps = {\n _hover?: ShadowProps;\n _focus?: ShadowProps;\n _active?: ShadowProps;\n _disabled?: ShadowProps;\n};\n\nfunction getShadowClass(\n value: ShadowValue,\n responsiveKey: (typeof RESPONSIVE_KEYS)[number],\n state: StateKey\n): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n\n if (responsiveKey === \"base\") {\n return stateClassSuffix\n ? styles[`${value}${stateClassSuffix}`]\n : styles[value];\n }\n\n return stateClassSuffix\n ? styles[`${value}_${responsiveKey}${stateClassSuffix}`]\n : styles[`${value}_${responsiveKey}`];\n}\n\nfunction getShadowStylesForValue(\n value: ResponsiveValue<ShadowValue> | undefined,\n state: StateKey\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (value === undefined) return result;\n\n if (typeof value === \"string\") {\n const className = getShadowClass(value, \"base\", state);\n if (className) {\n result.className = className;\n }\n return result;\n }\n\n for (const responsiveKey of RESPONSIVE_KEYS) {\n const shadowValue = value[responsiveKey];\n if (shadowValue === undefined) continue;\n\n const className = getShadowClass(shadowValue, responsiveKey, state);\n if (className) {\n result.className = clsx(result.className, className);\n }\n }\n\n return result;\n}\n\nexport function getShadowStyles(\n props: ShadowProps & ShadowStateProps\n): StyleResult {\n const { shadow, _hover, _focus, _active, _disabled } = props;\n\n const baseStyles = getShadowStylesForValue(shadow, \"base\");\n const hoverStyles = getShadowStylesForValue(_hover?.shadow, \"hover\");\n const focusStyles = getShadowStylesForValue(_focus?.shadow, \"focus\");\n const activeStyles = getShadowStylesForValue(_active?.shadow, \"active\");\n const disabledStyles = getShadowStylesForValue(_disabled?.shadow, \"disabled\");\n\n return {\n className: clsx(\n baseStyles.className,\n hoverStyles.className,\n focusStyles.className,\n activeStyles.className,\n disabledStyles.className\n ),\n style: {},\n };\n}\n","import type { ResponsiveValue } from \"@/utils/breakpoints\";\nimport {\n RESPONSIVE_KEYS,\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./opacity.module.css\";\nimport clsx from \"clsx\";\n\nexport type OpacityValue = \"invisible\" | \"faint\" | \"semi\" | \"full\";\n\nexport type OpacityProps = {\n opacity?: ResponsiveValue<OpacityValue>;\n};\n\nexport type OpacityStateProps = {\n _hover?: OpacityProps;\n _focus?: OpacityProps;\n _active?: OpacityProps;\n _disabled?: OpacityProps;\n};\n\nfunction getOpacityClass(\n value: OpacityValue,\n responsiveKey: (typeof RESPONSIVE_KEYS)[number],\n state: StateKey\n): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n\n if (responsiveKey === \"base\") {\n return stateClassSuffix\n ? styles[`${value}${stateClassSuffix}`]\n : styles[value];\n }\n\n return stateClassSuffix\n ? styles[`${value}_${responsiveKey}${stateClassSuffix}`]\n : styles[`${value}_${responsiveKey}`];\n}\n\nfunction getOpacityStylesForValue(\n value: ResponsiveValue<OpacityValue> | undefined,\n state: StateKey\n): StyleResult {\n const result: StyleResult = { className: \"\", style: {} };\n\n if (value === undefined) return result;\n\n if (typeof value === \"string\") {\n const className = getOpacityClass(value, \"base\", state);\n if (className) {\n result.className = className;\n }\n return result;\n }\n\n for (const responsiveKey of RESPONSIVE_KEYS) {\n const opacityValue = value[responsiveKey];\n if (opacityValue === undefined) continue;\n\n const className = getOpacityClass(opacityValue, responsiveKey, state);\n if (className) {\n result.className = clsx(result.className, className);\n }\n }\n\n return result;\n}\n\nexport function getOpacityStyles(\n props: OpacityProps & OpacityStateProps\n): StyleResult {\n const { opacity, _hover, _focus, _active, _disabled } = props;\n\n const baseStyles = getOpacityStylesForValue(opacity, \"base\");\n const hoverStyles = getOpacityStylesForValue(_hover?.opacity, \"hover\");\n const focusStyles = getOpacityStylesForValue(_focus?.opacity, \"focus\");\n const activeStyles = getOpacityStylesForValue(_active?.opacity, \"active\");\n const disabledStyles = getOpacityStylesForValue(_disabled?.opacity, \"disabled\");\n\n return {\n className: clsx(\n baseStyles.className,\n hoverStyles.className,\n focusStyles.className,\n activeStyles.className,\n disabledStyles.className\n ),\n style: {},\n };\n}\n","import {\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./interactions.module.css\";\nimport clsx from \"clsx\";\n\nexport type CursorValue =\n | \"auto\"\n | \"default\"\n | \"pointer\"\n | \"wait\"\n | \"text\"\n | \"move\"\n | \"not-allowed\"\n | \"grab\"\n | \"grabbing\"\n | \"zoom-in\"\n | \"zoom-out\"\n | \"crosshair\";\n\nexport type PointerEventsValue = \"auto\" | \"none\" | \"all\";\n\nexport type UserSelectValue = \"auto\" | \"none\" | \"text\" | \"all\";\n\nexport type InteractionProps = {\n cursor?: CursorValue;\n pointerEvents?: PointerEventsValue;\n userSelect?: UserSelectValue;\n};\n\nexport type InteractionStateProps = {\n _hover?: InteractionProps;\n};\n\nfunction getCursorClass(value: CursorValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`cursor-${value}${stateClassSuffix}`]\n : styles[`cursor-${value}`];\n}\n\nfunction getPointerEventsClass(value: PointerEventsValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`pointer-${value}${stateClassSuffix}`]\n : styles[`pointer-${value}`];\n}\n\nfunction getUserSelectClass(value: UserSelectValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`select-${value}${stateClassSuffix}`]\n : styles[`select-${value}`];\n}\n\nfunction getInteractionStylesForState(\n props: InteractionProps | undefined,\n state: StateKey\n): StyleResult {\n if (!props) return { className: \"\", style: {} };\n\n const classes: string[] = [];\n\n if (props.cursor) {\n const cls = getCursorClass(props.cursor, state);\n if (cls) classes.push(cls);\n }\n\n if (props.pointerEvents) {\n const cls = getPointerEventsClass(props.pointerEvents, state);\n if (cls) classes.push(cls);\n }\n\n if (props.userSelect) {\n const cls = getUserSelectClass(props.userSelect, state);\n if (cls) classes.push(cls);\n }\n\n return { className: clsx(...classes), style: {} };\n}\n\nexport function getInteractionStyles(\n props: InteractionProps & InteractionStateProps\n): StyleResult {\n const { cursor, pointerEvents, userSelect, _hover } = props;\n\n const baseStyles = getInteractionStylesForState({ cursor, pointerEvents, userSelect }, \"base\");\n const hoverStyles = getInteractionStylesForState(_hover, \"hover\");\n\n return {\n className: clsx(baseStyles.className, hoverStyles.className),\n style: {},\n };\n}\n","import {\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./text.module.css\";\nimport clsx from \"clsx\";\n\nexport type TextAlignValue = \"left\" | \"center\" | \"right\" | \"justify\";\nexport type WhiteSpaceValue = \"normal\" | \"nowrap\" | \"pre\" | \"pre-line\" | \"pre-wrap\";\nexport type TextDecorationValue = \"none\" | \"underline\" | \"line-through\";\n\nexport type TextStyleProps = {\n textAlign?: TextAlignValue;\n whiteSpace?: WhiteSpaceValue;\n textDecoration?: TextDecorationValue;\n};\n\nexport type TextStyleStateProps = {\n _hover?: TextStyleProps;\n};\n\nfunction getTextAlignClass(value: TextAlignValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`text-${value}${stateClassSuffix}`]\n : styles[`text-${value}`];\n}\n\nfunction getWhiteSpaceClass(value: WhiteSpaceValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`whitespace-${value}${stateClassSuffix}`]\n : styles[`whitespace-${value}`];\n}\n\nfunction getTextDecorationClass(value: TextDecorationValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`decoration-${value}${stateClassSuffix}`]\n : styles[`decoration-${value}`];\n}\n\nfunction getTextStylesForState(\n props: TextStyleProps | undefined,\n state: StateKey\n): StyleResult {\n if (!props) return { className: \"\", style: {} };\n\n const classes: string[] = [];\n\n if (props.textAlign) {\n const cls = getTextAlignClass(props.textAlign, state);\n if (cls) classes.push(cls);\n }\n\n if (props.whiteSpace) {\n const cls = getWhiteSpaceClass(props.whiteSpace, state);\n if (cls) classes.push(cls);\n }\n\n if (props.textDecoration) {\n const cls = getTextDecorationClass(props.textDecoration, state);\n if (cls) classes.push(cls);\n }\n\n return { className: clsx(...classes), style: {} };\n}\n\nexport function getTextStyles(\n props: TextStyleProps & TextStyleStateProps\n): StyleResult {\n const { textAlign, whiteSpace, textDecoration, _hover } = props;\n\n const baseStyles = getTextStylesForState({ textAlign, whiteSpace, textDecoration }, \"base\");\n const hoverStyles = getTextStylesForState(_hover, \"hover\");\n\n return {\n className: clsx(baseStyles.className, hoverStyles.className),\n style: {},\n };\n}\n","import styles from \"./typography.module.css\";\nimport clsx from \"clsx\";\n\nexport type FontSizeValue = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\" | \"4xl\" | \"5xl\";\nexport type FontFamilyValue = \"body\" | \"heading\" | \"mono\";\nexport type FontWeightValue = \"normal\" | \"medium\" | \"semibold\" | \"bold\";\nexport type LineHeightValue = \"tight\" | \"normal\" | \"relaxed\";\n\nexport type TypographyProps = {\n fontSize?: FontSizeValue;\n fontFamily?: FontFamilyValue;\n fontWeight?: FontWeightValue;\n lineHeight?: LineHeightValue;\n};\n\ntype StyleResult = {\n className: string;\n};\n\nexport function getTypographyStyles(props: TypographyProps): StyleResult {\n const { fontSize, fontFamily, fontWeight, lineHeight } = props;\n\n const classes: string[] = [];\n\n if (fontSize) {\n const cls = styles[`text-${fontSize}`];\n if (cls) classes.push(cls);\n }\n\n if (fontFamily) {\n const cls = styles[`font-${fontFamily}`];\n if (cls) classes.push(cls);\n }\n\n if (fontWeight) {\n const cls = styles[`weight-${fontWeight}`];\n if (cls) classes.push(cls);\n }\n\n if (lineHeight) {\n const cls = styles[`leading-${lineHeight}`];\n if (cls) classes.push(cls);\n }\n\n return { className: clsx(...classes) };\n}\n","import {\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./colors.module.css\";\nimport clsx from \"clsx\";\n\nexport type ColorValue =\n | \"accent-emphasis\"\n | \"accent\"\n | \"error-emphasis\"\n | \"error\"\n | \"foreground-inverted-muted\"\n | \"foreground-inverted-subtle\"\n | \"foreground-inverted\"\n | \"foreground-muted\"\n | \"foreground-subtle\"\n | \"foreground\"\n | \"info-emphasis\"\n | \"info\"\n | \"primary-emphasis\"\n | \"primary\"\n | \"success-emphasis\"\n | \"success\"\n | \"warning-emphasis\"\n | \"warning\";\n\nexport type BackgroundColorValue =\n | \"accent-default\"\n | \"accent-emphasis\"\n | \"accent-subtle\"\n | \"background\"\n | \"error-default\"\n | \"error-emphasis\"\n | \"error-subtle\"\n | \"foreground\"\n | \"info-default\"\n | \"info-emphasis\"\n | \"info-subtle\"\n | \"primary-default\"\n | \"primary-emphasis\"\n | \"primary-subtle\"\n | \"success-default\"\n | \"success-emphasis\"\n | \"success-subtle\"\n | \"surface\"\n | \"transparent\"\n | \"warning-default\"\n | \"warning-emphasis\"\n | \"warning-subtle\";\n\nexport type BorderColorValue =\n | \"accent-emphasis\"\n | \"accent\"\n | \"border-muted\"\n | \"border\"\n | \"error-emphasis\"\n | \"error\"\n | \"info-emphasis\"\n | \"info\"\n | \"primary-emphasis\"\n | \"primary\"\n | \"success-emphasis\"\n | \"success\"\n | \"warning-emphasis\"\n | \"warning\";\n\nexport type ColorProps = {\n color?: ColorValue;\n bg?: BackgroundColorValue;\n borderColor?: BorderColorValue;\n};\n\nexport type ColorStateProps = {\n _hover?: ColorProps;\n};\n\nfunction getColorClass(value: ColorValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`color-${value}${stateClassSuffix}`]\n : styles[`color-${value}`];\n}\n\nfunction getBgClass(value: BackgroundColorValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`bg-${value}${stateClassSuffix}`]\n : styles[`bg-${value}`];\n}\n\nfunction getBorderColorClass(value: BorderColorValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`border-color-${value}${stateClassSuffix}`]\n : styles[`border-color-${value}`];\n}\n\nfunction getColorStylesForState(\n props: ColorProps | undefined,\n state: StateKey\n): StyleResult {\n if (!props) return { className: \"\", style: {} };\n\n const classes: string[] = [];\n\n if (props.color) {\n const cls = getColorClass(props.color, state);\n if (cls) classes.push(cls);\n }\n\n if (props.bg) {\n const cls = getBgClass(props.bg, state);\n if (cls) classes.push(cls);\n }\n\n if (props.borderColor) {\n const cls = getBorderColorClass(props.borderColor, state);\n if (cls) classes.push(cls);\n }\n\n return { className: clsx(...classes), style: {} };\n}\n\nexport function getColorStyles(\n props: ColorProps & ColorStateProps\n): StyleResult {\n const { color, bg, borderColor, _hover } = props;\n\n const baseStyles = getColorStylesForState({ color, bg, borderColor }, \"base\");\n const hoverStyles = getColorStylesForState(_hover, \"hover\");\n\n return {\n className: clsx(baseStyles.className, hoverStyles.className),\n style: {},\n };\n}\n","import {\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./borders.module.css\";\nimport clsx from \"clsx\";\n\nexport type BorderWidthValue = \"none\" | \"thin\" | \"medium\" | \"thick\";\nexport type BorderStyleValue = \"none\" | \"solid\" | \"dashed\" | \"dotted\";\n\nexport type BorderProps = {\n border?: BorderWidthValue;\n borderX?: BorderWidthValue;\n borderY?: BorderWidthValue;\n borderTop?: BorderWidthValue;\n borderRight?: BorderWidthValue;\n borderBottom?: BorderWidthValue;\n borderLeft?: BorderWidthValue;\n borderStyle?: BorderStyleValue;\n};\n\nexport type BorderStateProps = {\n _hover?: BorderProps;\n};\n\nfunction getBorderTopClass(value: BorderWidthValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`border-top-${value}${stateClassSuffix}`]\n : styles[`border-top-${value}`];\n}\n\nfunction getBorderRightClass(value: BorderWidthValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`border-right-${value}${stateClassSuffix}`]\n : styles[`border-right-${value}`];\n}\n\nfunction getBorderBottomClass(value: BorderWidthValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`border-bottom-${value}${stateClassSuffix}`]\n : styles[`border-bottom-${value}`];\n}\n\nfunction getBorderLeftClass(value: BorderWidthValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`border-left-${value}${stateClassSuffix}`]\n : styles[`border-left-${value}`];\n}\n\nfunction getBorderStyleClass(value: BorderStyleValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`border-style-${value}${stateClassSuffix}`]\n : styles[`border-style-${value}`];\n}\n\nfunction getBorderStylesForState(\n props: BorderProps | undefined,\n state: StateKey\n): StyleResult {\n if (!props) return { className: \"\", style: {} };\n\n const {\n border,\n borderX,\n borderY,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n borderStyle,\n } = props;\n\n const classes: string[] = [];\n\n // Cascading specificity: individual > axis > all\n const topWidth = borderTop ?? borderY ?? border;\n const rightWidth = borderRight ?? borderX ?? border;\n const bottomWidth = borderBottom ?? borderY ?? border;\n const leftWidth = borderLeft ?? borderX ?? border;\n\n if (topWidth) {\n const cls = getBorderTopClass(topWidth, state);\n if (cls) classes.push(cls);\n }\n\n if (rightWidth) {\n const cls = getBorderRightClass(rightWidth, state);\n if (cls) classes.push(cls);\n }\n\n if (bottomWidth) {\n const cls = getBorderBottomClass(bottomWidth, state);\n if (cls) classes.push(cls);\n }\n\n if (leftWidth) {\n const cls = getBorderLeftClass(leftWidth, state);\n if (cls) classes.push(cls);\n }\n\n // Apply borderStyle, default to solid if any width is set\n if (borderStyle) {\n const cls = getBorderStyleClass(borderStyle, state);\n if (cls) classes.push(cls);\n } else if (topWidth || rightWidth || bottomWidth || leftWidth) {\n const cls = getBorderStyleClass(\"solid\", state);\n if (cls) classes.push(cls);\n }\n\n return { className: clsx(...classes), style: {} };\n}\n\nexport function getBorderStyles(\n props: BorderProps & BorderStateProps\n): StyleResult {\n const {\n border,\n borderX,\n borderY,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n borderStyle,\n _hover,\n } = props;\n\n const baseStyles = getBorderStylesForState(\n { border, borderX, borderY, borderTop, borderRight, borderBottom, borderLeft, borderStyle },\n \"base\"\n );\n const hoverStyles = getBorderStylesForState(_hover, \"hover\");\n\n return {\n className: clsx(baseStyles.className, hoverStyles.className),\n style: {},\n };\n}\n","import {\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./roundness.module.css\";\nimport clsx from \"clsx\";\n\nexport type RoundedValue = \"none\" | \"sm\" | \"md\" | \"lg\" | \"full\";\n\nexport type RoundnessProps = {\n rounded?: RoundedValue;\n roundedTop?: RoundedValue;\n roundedBottom?: RoundedValue;\n roundedLeft?: RoundedValue;\n roundedRight?: RoundedValue;\n roundedTopLeft?: RoundedValue;\n roundedTopRight?: RoundedValue;\n roundedBottomLeft?: RoundedValue;\n roundedBottomRight?: RoundedValue;\n};\n\nexport type RoundnessStateProps = {\n _hover?: RoundnessProps;\n};\n\nfunction getRoundedTopLeftClass(value: RoundedValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`rounded-tl-${value}${stateClassSuffix}`]\n : styles[`rounded-tl-${value}`];\n}\n\nfunction getRoundedTopRightClass(value: RoundedValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`rounded-tr-${value}${stateClassSuffix}`]\n : styles[`rounded-tr-${value}`];\n}\n\nfunction getRoundedBottomRightClass(value: RoundedValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`rounded-br-${value}${stateClassSuffix}`]\n : styles[`rounded-br-${value}`];\n}\n\nfunction getRoundedBottomLeftClass(value: RoundedValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`rounded-bl-${value}${stateClassSuffix}`]\n : styles[`rounded-bl-${value}`];\n}\n\nfunction getRoundnessStylesForState(\n props: RoundnessProps | undefined,\n state: StateKey\n): StyleResult {\n if (!props) return { className: \"\", style: {} };\n\n const {\n rounded,\n roundedTop,\n roundedBottom,\n roundedLeft,\n roundedRight,\n roundedTopLeft,\n roundedTopRight,\n roundedBottomLeft,\n roundedBottomRight,\n } = props;\n\n const classes: string[] = [];\n\n // Cascading specificity: individual corner > side > all\n const topLeft = roundedTopLeft ?? roundedTop ?? roundedLeft ?? rounded;\n const topRight = roundedTopRight ?? roundedTop ?? roundedRight ?? rounded;\n const bottomRight = roundedBottomRight ?? roundedBottom ?? roundedRight ?? rounded;\n const bottomLeft = roundedBottomLeft ?? roundedBottom ?? roundedLeft ?? rounded;\n\n if (topLeft) {\n const cls = getRoundedTopLeftClass(topLeft, state);\n if (cls) classes.push(cls);\n }\n\n if (topRight) {\n const cls = getRoundedTopRightClass(topRight, state);\n if (cls) classes.push(cls);\n }\n\n if (bottomRight) {\n const cls = getRoundedBottomRightClass(bottomRight, state);\n if (cls) classes.push(cls);\n }\n\n if (bottomLeft) {\n const cls = getRoundedBottomLeftClass(bottomLeft, state);\n if (cls) classes.push(cls);\n }\n\n return { className: clsx(...classes), style: {} };\n}\n\nexport function getRoundnessStyles(\n props: RoundnessProps & RoundnessStateProps\n): StyleResult {\n const {\n rounded,\n roundedTop,\n roundedBottom,\n roundedLeft,\n roundedRight,\n roundedTopLeft,\n roundedTopRight,\n roundedBottomLeft,\n roundedBottomRight,\n _hover,\n } = props;\n\n const baseStyles = getRoundnessStylesForState(\n {\n rounded,\n roundedTop,\n roundedBottom,\n roundedLeft,\n roundedRight,\n roundedTopLeft,\n roundedTopRight,\n roundedBottomLeft,\n roundedBottomRight,\n },\n \"base\"\n );\n const hoverStyles = getRoundnessStylesForState(_hover, \"hover\");\n\n return {\n className: clsx(baseStyles.className, hoverStyles.className),\n style: {},\n };\n}\n","import {\n STATE_SUFFIXES,\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./flexbox.module.css\";\nimport clsx from \"clsx\";\n\nexport type FlexDirectionValue = \"row\" | \"row-reverse\" | \"column\" | \"column-reverse\";\nexport type JustifyContentValue = \"start\" | \"end\" | \"center\" | \"space-between\" | \"space-around\" | \"space-evenly\";\nexport type AlignItemsValue = \"start\" | \"end\" | \"center\" | \"stretch\" | \"baseline\";\nexport type AlignSelfValue = \"auto\" | \"start\" | \"end\" | \"center\" | \"stretch\" | \"baseline\";\nexport type FlexWrapValue = \"nowrap\" | \"wrap\" | \"wrap-reverse\";\nexport type SpacingValue = number | string;\n\nexport type FlexboxProps = {\n flexDirection?: FlexDirectionValue;\n justifyContent?: JustifyContentValue;\n alignItems?: AlignItemsValue;\n alignSelf?: AlignSelfValue;\n flexWrap?: FlexWrapValue;\n gap?: SpacingValue;\n gapRow?: SpacingValue;\n gapColumn?: SpacingValue;\n flex?: string;\n flexGrow?: number;\n flexShrink?: number;\n flexBasis?: string;\n};\n\nexport type FlexboxStateProps = {\n _hover?: FlexboxProps;\n};\n\nfunction getFlexDirectionClass(value: FlexDirectionValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`flex-${value}${stateClassSuffix}`]\n : styles[`flex-${value}`];\n}\n\nfunction getJustifyContentClass(value: JustifyContentValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`justify-${value}${stateClassSuffix}`]\n : styles[`justify-${value}`];\n}\n\nfunction getAlignItemsClass(value: AlignItemsValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`items-${value}${stateClassSuffix}`]\n : styles[`items-${value}`];\n}\n\nfunction getAlignSelfClass(value: AlignSelfValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`self-${value}${stateClassSuffix}`]\n : styles[`self-${value}`];\n}\n\nfunction getFlexWrapClass(value: FlexWrapValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`flex-${value}${stateClassSuffix}`]\n : styles[`flex-${value}`];\n}\n\nfunction getSpacingValue(value?: SpacingValue): string {\n if (value === undefined) return \"normal\";\n if (typeof value === \"string\") return value;\n if (value === 0) return \"0\";\n return `calc(var(--t-spacing-unit) * ${value})`;\n}\n\nfunction getFlexboxStylesForState(\n props: FlexboxProps | undefined,\n state: StateKey\n): StyleResult {\n if (!props) return { className: \"\", style: {} };\n\n const {\n flexDirection,\n justifyContent,\n alignItems,\n alignSelf,\n flexWrap,\n gap,\n gapRow,\n gapColumn,\n flex,\n flexGrow,\n flexShrink,\n flexBasis,\n } = props;\n\n const classes: string[] = [];\n const style: Record<string, string> = {};\n const stateVarSuffix = STATE_SUFFIXES[state];\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n\n // Enumerated props\n if (flexDirection) {\n const cls = getFlexDirectionClass(flexDirection, state);\n if (cls) classes.push(cls);\n }\n\n if (justifyContent) {\n const cls = getJustifyContentClass(justifyContent, state);\n if (cls) classes.push(cls);\n }\n\n if (alignItems) {\n const cls = getAlignItemsClass(alignItems, state);\n if (cls) classes.push(cls);\n }\n\n if (alignSelf) {\n const cls = getAlignSelfClass(alignSelf, state);\n if (cls) classes.push(cls);\n }\n\n if (flexWrap) {\n const cls = getFlexWrapClass(flexWrap, state);\n if (cls) classes.push(cls);\n }\n\n // Variable-based props: gap\n if (gap !== undefined || gapRow !== undefined || gapColumn !== undefined) {\n const row = gapRow ?? gap;\n const column = gapColumn ?? gap;\n const rowValue = getSpacingValue(row);\n const columnValue = getSpacingValue(column);\n const gapValue = rowValue === columnValue ? rowValue : `${rowValue} ${columnValue}`;\n\n const gapClass = stateClassSuffix ? styles[`gap${stateClassSuffix}`] : styles.gap;\n if (gapClass) classes.push(gapClass);\n style[`--t-gap${stateVarSuffix}`] = gapValue;\n }\n\n // Variable-based props: flex\n if (flex !== undefined) {\n const flexClass = stateClassSuffix ? styles[`flex${stateClassSuffix}`] : styles.flex;\n if (flexClass) classes.push(flexClass);\n style[`--t-flex${stateVarSuffix}`] = flex;\n } else if (flexGrow !== undefined || flexShrink !== undefined || flexBasis !== undefined) {\n const grow = flexGrow ?? 0;\n const shrink = flexShrink ?? 1;\n const basis = flexBasis ?? \"auto\";\n const flexClass = stateClassSuffix ? styles[`flex${stateClassSuffix}`] : styles.flex;\n if (flexClass) classes.push(flexClass);\n style[`--t-flex${stateVarSuffix}`] = `${grow} ${shrink} ${basis}`;\n }\n\n return {\n className: clsx(...classes),\n style,\n };\n}\n\nexport function getFlexboxStyles(\n props: FlexboxProps & FlexboxStateProps\n): StyleResult {\n const {\n flexDirection,\n justifyContent,\n alignItems,\n alignSelf,\n flexWrap,\n gap,\n gapRow,\n gapColumn,\n flex,\n flexGrow,\n flexShrink,\n flexBasis,\n _hover,\n } = props;\n\n const baseStyles = getFlexboxStylesForState(\n {\n flexDirection,\n justifyContent,\n alignItems,\n alignSelf,\n flexWrap,\n gap,\n gapRow,\n gapColumn,\n flex,\n flexGrow,\n flexShrink,\n flexBasis,\n },\n \"base\"\n );\n const hoverStyles = getFlexboxStylesForState(_hover, \"hover\");\n\n return {\n className: clsx(baseStyles.className, hoverStyles.className),\n style: { ...baseStyles.style, ...hoverStyles.style } as Record<string, string>,\n };\n}\n","import {\n STATE_SUFFIXES,\n STATE_CLASS_SUFFIXES,\n type StateKey,\n type StyleResult,\n} from \"../shared\";\nimport styles from \"./grid.module.css\";\nimport clsx from \"clsx\";\n\nexport type JustifySelfValue = \"auto\" | \"start\" | \"end\" | \"center\" | \"stretch\";\n\nexport type GridProps = {\n justifySelf?: JustifySelfValue;\n gridTemplateColumns?: string;\n gridTemplateRows?: string;\n};\n\nexport type GridStateProps = {\n _hover?: GridProps;\n};\n\nfunction getJustifySelfClass(value: JustifySelfValue, state: StateKey): string | undefined {\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n return stateClassSuffix\n ? styles[`justify-self-${value}${stateClassSuffix}`]\n : styles[`justify-self-${value}`];\n}\n\nfunction getGridStylesForState(\n props: GridProps | undefined,\n state: StateKey\n): StyleResult {\n if (!props) return { className: \"\", style: {} };\n\n const { justifySelf, gridTemplateColumns, gridTemplateRows } = props;\n\n const classes: string[] = [];\n const style: Record<string, string> = {};\n const stateVarSuffix = STATE_SUFFIXES[state];\n const stateClassSuffix = STATE_CLASS_SUFFIXES[state];\n\n // Enumerated prop\n if (justifySelf) {\n const cls = getJustifySelfClass(justifySelf, state);\n if (cls) classes.push(cls);\n }\n\n // Variable-based props\n if (gridTemplateColumns !== undefined) {\n const gridColsClass = stateClassSuffix ? styles[`grid-cols${stateClassSuffix}`] : styles[\"grid-cols\"];\n if (gridColsClass) classes.push(gridColsClass);\n style[`--t-grid-cols${stateVarSuffix}`] = gridTemplateColumns;\n }\n\n if (gridTemplateRows !== undefined) {\n const gridRowsClass = stateClassSuffix ? styles[`grid-rows${stateClassSuffix}`] : styles[\"grid-rows\"];\n if (gridRowsClass) classes.push(gridRowsClass);\n style[`--t-grid-rows${stateVarSuffix}`] = gridTemplateRows;\n }\n\n return {\n className: clsx(...classes),\n style,\n };\n}\n\nexport function getGridStyles(\n props: GridProps & GridStateProps\n): StyleResult {\n const { justifySelf, gridTemplateColumns, gridTemplateRows, _hover } = props;\n\n const baseStyles = getGridStylesForState(\n { justifySelf, gridTemplateColumns, gridTemplateRows },\n \"base\"\n );\n const hoverStyles = getGridStylesForState(_hover, \"hover\");\n\n return {\n className: clsx(baseStyles.className, hoverStyles.className),\n style: { ...baseStyles.style, ...hoverStyles.style } as Record<string, string>,\n };\n}\n","import { type ElementType, type ReactNode, type CSSProperties } from \"react\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { clsx } from \"clsx\";\nimport { resetClass } from \"./reset/reset\";\nimport { getMarginStyles, type MarginProps } from \"./margin/margin\";\nimport { getPaddingStyles, type PaddingProps } from \"./padding/padding\";\nimport { getSizingStyles, type SizingProps } from \"./sizing/sizing\";\nimport { getInsetStyles, type InsetProps } from \"./inset/inset\";\nimport { getDisplayStyles, type DisplayProps } from \"./display/display\";\nimport { getPositionStyles, type PositionProps } from \"./position/position\";\nimport { getOverflowStyles, type OverflowProps } from \"./overflow/overflow\";\nimport { getZIndexStyles, type ZIndexProps } from \"./zIndex/zIndex\";\nimport { getShadowStyles, type ShadowProps } from \"./shadows/shadows\";\nimport { getOpacityStyles, type OpacityProps } from \"./opacity/opacity\";\nimport {\n getInteractionStyles,\n type InteractionProps,\n} from \"./interactions/interactions\";\nimport { getTextStyles, type TextStyleProps } from \"./text/text\";\nimport {\n getTypographyStyles,\n type TypographyProps,\n} from \"./typography/typography\";\nimport { getColorStyles, type ColorProps } from \"./colors/colors\";\nimport { getBorderStyles, type BorderProps } from \"./borders/borders\";\nimport { getRoundnessStyles, type RoundnessProps } from \"./roundness/roundness\";\nimport { getFlexboxStyles, type FlexboxProps } from \"./flexbox/flexbox\";\nimport { getGridStyles, type GridProps } from \"./grid/grid\";\n\n// Combined state props for all style parts\ntype StateStyleProps = MarginProps &\n PaddingProps &\n SizingProps &\n InsetProps &\n DisplayProps &\n PositionProps &\n OverflowProps &\n ZIndexProps &\n ShadowProps &\n OpacityProps &\n InteractionProps &\n TextStyleProps &\n TypographyProps &\n ColorProps &\n BorderProps &\n RoundnessProps &\n FlexboxProps &\n GridProps;\n\ntype StateProps = {\n _hover?: StateStyleProps;\n _focus?: StateStyleProps;\n _active?: StateStyleProps;\n _disabled?: StateStyleProps;\n};\n\nexport type BoxOwnProps = MarginProps &\n PaddingProps &\n SizingProps &\n InsetProps &\n DisplayProps &\n PositionProps &\n OverflowProps &\n ZIndexProps &\n ShadowProps &\n OpacityProps &\n InteractionProps &\n TextStyleProps &\n TypographyProps &\n ColorProps &\n BorderProps &\n RoundnessProps &\n FlexboxProps &\n GridProps &\n StateProps & {\n className?: string;\n children?: ReactNode;\n };\n\nexport type BoxProps<T extends ElementType = \"div\"> = Polymorphic<\n T,\n BoxOwnProps\n>;\n\n// Helper to combine multiple style results\ntype StyleResult = {\n className?: string;\n style?: CSSProperties;\n};\n\nfunction combineStyles(...results: StyleResult[]): StyleResult {\n return {\n className: clsx(...results.map((r) => r.className)),\n style: Object.assign({}, ...results.map((r) => r.style)),\n };\n}\n\nexport function Box<T extends ElementType = \"div\">({\n as,\n children,\n className,\n style,\n // Margin props\n m,\n mt,\n mr,\n mb,\n ml,\n mx,\n my,\n // Padding props\n p,\n pt,\n pr,\n pb,\n pl,\n px,\n py,\n // Sizing props\n w,\n h,\n minW,\n maxW,\n minH,\n maxH,\n // Inset props\n inset,\n insetX,\n insetY,\n top,\n right,\n bottom,\n left,\n // Display props\n display,\n // Position props\n position,\n // Overflow props\n overflow,\n overflowX,\n overflowY,\n // ZIndex props\n zIndex,\n // Shadow props\n shadow,\n // Opacity props\n opacity,\n // Interaction props\n cursor,\n pointerEvents,\n userSelect,\n // Text style props\n textAlign,\n whiteSpace,\n textDecoration,\n // Typography props\n fontSize,\n fontFamily,\n fontWeight,\n lineHeight,\n // Color props\n color,\n bg,\n borderColor,\n // Border props\n border,\n borderX,\n borderY,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n borderStyle,\n // Roundness props\n rounded,\n roundedTop,\n roundedBottom,\n roundedLeft,\n roundedRight,\n roundedTopLeft,\n roundedTopRight,\n roundedBottomLeft,\n roundedBottomRight,\n // Flexbox props\n flexDirection,\n justifyContent,\n alignItems,\n alignSelf,\n flexWrap,\n gap,\n gapRow,\n gapColumn,\n flex,\n flexGrow,\n flexShrink,\n flexBasis,\n // Grid props\n justifySelf,\n gridTemplateColumns,\n gridTemplateRows,\n // State props\n _hover,\n _focus,\n _active,\n _disabled,\n ...rest\n}: BoxProps<T>) {\n const Component = as || \"div\";\n\n const stateProps = { _hover, _focus, _active, _disabled };\n\n const styles = combineStyles(\n getMarginStyles({ m, mt, mr, mb, ml, mx, my, ...stateProps }),\n getPaddingStyles({ p, pt, pr, pb, pl, px, py, ...stateProps }),\n getSizingStyles({ w, h, minW, maxW, minH, maxH, ...stateProps }),\n getInsetStyles({ inset, insetX, insetY, top, right, bottom, left, ...stateProps }),\n getDisplayStyles({ display, ...stateProps }),\n getPositionStyles({ position, ...stateProps }),\n getOverflowStyles({ overflow, overflowX, overflowY, ...stateProps }),\n getZIndexStyles({ zIndex, ...stateProps }),\n getShadowStyles({ shadow, ...stateProps }),\n getOpacityStyles({ opacity, ...stateProps }),\n getInteractionStyles({ cursor, pointerEvents, userSelect, ...stateProps }),\n getTextStyles({ textAlign, whiteSpace, textDecoration, ...stateProps }),\n getTypographyStyles({ fontSize, fontFamily, fontWeight, lineHeight }),\n getColorStyles({ color, bg, borderColor, ...stateProps }),\n getBorderStyles({\n border,\n borderX,\n borderY,\n borderTop,\n borderRight,\n borderBottom,\n borderLeft,\n borderStyle,\n ...stateProps,\n }),\n getRoundnessStyles({\n rounded,\n roundedTop,\n roundedBottom,\n roundedLeft,\n roundedRight,\n roundedTopLeft,\n roundedTopRight,\n roundedBottomLeft,\n roundedBottomRight,\n ...stateProps,\n }),\n getFlexboxStyles({\n flexDirection,\n justifyContent,\n alignItems,\n alignSelf,\n flexWrap,\n gap,\n gapRow,\n gapColumn,\n flex,\n flexGrow,\n flexShrink,\n flexBasis,\n ...stateProps,\n }),\n getGridStyles({\n justifySelf,\n gridTemplateColumns,\n gridTemplateRows,\n ...stateProps,\n })\n );\n\n return (\n <Component\n className={clsx(resetClass, styles.className, className)}\n style={{\n ...styles.style,\n ...style,\n }}\n {...rest}\n >\n {children}\n </Component>\n );\n}\n","import { type ElementType } from \"react\";\nimport clsx from \"clsx\";\nimport { Box, type BoxOwnProps } from \"../Box/Box\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport styles from \"./text.module.css\";\n\n// Import types from Box styleParts\ntype FontSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\" | \"4xl\" | \"5xl\";\ntype FontWeight = \"normal\" | \"medium\" | \"semibold\" | \"bold\";\ntype TextAlign = \"left\" | \"center\" | \"right\" | \"justify\";\ntype Color =\n | \"foreground\"\n | \"foreground-muted\"\n | \"foreground-subtle\"\n | \"foreground-inverted\"\n | \"foreground-inverted-muted\"\n | \"foreground-inverted-subtle\"\n | \"accent\"\n | \"accent-emphasis\"\n | \"primary\"\n | \"primary-emphasis\"\n | \"success\"\n | \"success-emphasis\"\n | \"warning\"\n | \"warning-emphasis\"\n | \"error\"\n | \"error-emphasis\"\n | \"info\"\n | \"info-emphasis\";\n\nexport type TextOwnProps = Omit<\n BoxOwnProps,\n \"fontSize\" | \"fontWeight\" | \"textAlign\" | \"color\"\n> & {\n size?: FontSize;\n weight?: FontWeight;\n align?: TextAlign;\n color?: Color;\n truncate?: boolean;\n italic?: boolean;\n};\n\nexport type TextProps<T extends ElementType = \"span\"> = Polymorphic<\n T,\n TextOwnProps\n>;\n\n/**\n * Text - Semantic text component for body copy, labels, captions, etc.\n *\n * Built on top of Box with text-specific conveniences:\n * - Default element: <span> (inline)\n * - Shorthand props: size, weight, align, color\n * - Utility props: truncate (ellipsis), italic\n * - Can be changed to any element via `as` prop\n */\nexport function Text<T extends ElementType = \"span\">({\n as,\n size,\n weight,\n align,\n color,\n truncate,\n italic,\n className,\n ...rest\n}: TextProps<T>) {\n return (\n // @ts-expect-error - Polymorphic component prop forwarding\n <Box\n as={as}\n fontSize={size}\n fontWeight={weight}\n textAlign={align}\n color={color}\n className={clsx(\n truncate && styles.truncate,\n italic && styles.italic,\n className\n )}\n {...rest}\n />\n );\n}\n","import { type ElementType } from \"react\";\nimport { Text, type TextOwnProps } from \"../Text/Text\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\n\n// Import types from Box styleParts\ntype FontSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\" | \"4xl\" | \"5xl\";\ntype FontWeight = \"normal\" | \"medium\" | \"semibold\" | \"bold\";\ntype Color =\n | \"foreground\"\n | \"foreground-muted\"\n | \"foreground-subtle\"\n | \"accent\"\n | \"accent-emphasis\"\n | \"primary\"\n | \"primary-emphasis\"\n | \"success\"\n | \"success-emphasis\"\n | \"warning\"\n | \"warning-emphasis\"\n | \"error\"\n | \"error-emphasis\";\n\ntype HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;\n\nconst defaultSizes: Record<HeadingLevel, FontSize> = {\n 1: \"3xl\",\n 2: \"2xl\",\n 3: \"xl\",\n 4: \"lg\",\n 5: \"md\",\n 6: \"sm\",\n};\n\ntype HeadingOwnProps = Omit<TextOwnProps, \"size\" | \"weight\" | \"color\"> & {\n level?: HeadingLevel;\n size?: FontSize;\n weight?: FontWeight;\n color?: Color;\n};\n\nexport type HeadingProps<T extends ElementType = \"h1\"> = Polymorphic<\n T,\n HeadingOwnProps\n>;\n\n/**\n * Heading - Semantic heading component with predefined sizes\n *\n * Built on top of Text with heading-specific defaults:\n * - level prop maps to h1-h6 elements (default: h1)\n * - Each level has a default font size\n * - Default font weight: bold\n * - Size can be overridden via size prop\n * - Can be changed to any element via `as` prop\n */\nexport function Heading<T extends ElementType = \"h1\">({\n as,\n level = 1,\n size,\n weight = \"bold\",\n color,\n children,\n ...rest\n}: HeadingProps<T>) {\n const headingElement = `h${level}` as const;\n const defaultSize = defaultSizes[level];\n const element = as ?? headingElement;\n\n return (\n // @ts-expect-error - Polymorphic component prop forwarding\n <Text\n as={element}\n size={size ?? defaultSize}\n weight={weight}\n color={color}\n {...rest}\n >\n {children}\n </Text>\n );\n}\n","import { type ElementType } from \"react\";\nimport clsx from \"clsx\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\nimport styles from \"./spinner.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type SpinnerSize = \"sm\" | \"md\" | \"lg\";\n\nexport type SpinnerOwnProps = Omit<BoxOwnProps, \"as\"> & {\n size?: SpinnerSize;\n};\n\nexport type SpinnerProps<T extends ElementType = \"span\"> = Polymorphic<\n T,\n SpinnerOwnProps\n>;\n\n// ============================================================================\n// Size configurations\n// ============================================================================\n\nconst sizeConfig = {\n sm: { w: \"1em\", h: \"1em\", borderWidth: \"2px\" },\n md: { w: \"1.5em\", h: \"1.5em\", borderWidth: \"2px\" },\n lg: { w: \"2em\", h: \"2em\", borderWidth: \"3px\" },\n} as const;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Spinner - Loading indicator component\n *\n * A simple spinning indicator that inherits color from its parent.\n * Uses CSS animation for smooth performance.\n */\nexport function Spinner<T extends ElementType = \"span\">({\n as,\n size = \"md\",\n className,\n style,\n ...rest\n}: SpinnerProps<T>) {\n const Component = as || \"span\";\n const sizeProps = sizeConfig[size];\n\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box\n as={Component}\n display=\"inline-block\"\n w={sizeProps.w}\n h={sizeProps.h}\n style={{ borderWidth: sizeProps.borderWidth, ...style }}\n className={clsx(styles.spinner, className)}\n role=\"status\"\n aria-label=\"Loading\"\n {...rest}\n />\n );\n}\n","import { type ElementType, type ReactNode } from \"react\";\nimport clsx from \"clsx\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\nimport { Spinner } from \"@/components/Spinner/Spinner\";\nimport styles from \"./button.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type ButtonVariant = \"solid\" | \"outline\" | \"ghost\";\nexport type ButtonSize = \"sm\" | \"md\" | \"lg\";\nexport type ButtonColorScheme =\n | \"primary\"\n | \"accent\"\n | \"success\"\n | \"warning\"\n | \"error\"\n | \"info\";\n\nexport type ButtonOwnProps = Omit<BoxOwnProps, \"as\"> & {\n variant?: ButtonVariant;\n size?: ButtonSize;\n colorScheme?: ButtonColorScheme;\n disabled?: boolean;\n loading?: boolean;\n fullWidth?: boolean;\n leftIcon?: ReactNode;\n rightIcon?: ReactNode;\n};\n\nexport type ButtonProps<T extends ElementType = \"button\"> = Polymorphic<\n T,\n ButtonOwnProps\n>;\n\n// ============================================================================\n// Size configurations using Box props\n// ============================================================================\n\nconst sizeConfig = {\n sm: { py: 1, px: 3, fontSize: \"sm\", rounded: \"sm\" },\n md: { py: 2, px: 4, fontSize: \"md\", rounded: \"md\" },\n lg: { py: 3, px: 6, fontSize: \"lg\", rounded: \"md\" },\n} as const;\n\n// ============================================================================\n// Color configurations\n// ============================================================================\n\ntype ColorConfig = {\n bg: string;\n color: string;\n borderColor: string | undefined;\n hoverBg: string;\n};\n\nfunction getColorConfig(\n variant: ButtonVariant,\n colorScheme: ButtonColorScheme\n): ColorConfig {\n switch (variant) {\n case \"solid\":\n return {\n bg: `${colorScheme}-default`,\n color: \"foreground-inverted\",\n borderColor: undefined,\n hoverBg: `var(--t-color-${colorScheme}-emphasis)`,\n };\n case \"outline\":\n return {\n bg: \"transparent\",\n color: colorScheme,\n borderColor: colorScheme,\n hoverBg: `var(--t-color-${colorScheme}-subtle)`,\n };\n case \"ghost\":\n return {\n bg: \"transparent\",\n color: colorScheme,\n borderColor: undefined,\n hoverBg: `var(--t-color-${colorScheme}-subtle)`,\n };\n }\n}\n\n// ============================================================================\n// Variant border configurations\n// ============================================================================\n\nconst variantBorderConfig = {\n solid: \"none\",\n outline: \"thin\",\n ghost: \"none\",\n} as const;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Button - Interactive button component\n *\n * A polymorphic button component that provides:\n * - Default element: <button>\n * - Variants: solid (default), outline, ghost\n * - Sizes: sm, md (default), lg\n * - Loading state with spinner\n * - Icon support (left and right)\n * - Full width option\n */\nexport function Button<T extends ElementType = \"button\">({\n as,\n variant = \"solid\",\n size = \"md\",\n colorScheme = \"primary\",\n disabled = false,\n loading = false,\n fullWidth = false,\n leftIcon,\n rightIcon,\n children,\n className,\n style,\n // Allow overriding default colors\n bg,\n color,\n borderColor,\n ...rest\n}: ButtonProps<T>) {\n const Component = as || \"button\";\n const isDisabled = disabled || loading;\n\n // Get config for variant, size, and color\n const colorConfig = getColorConfig(variant, colorScheme);\n const sizeProps = sizeConfig[size];\n\n // Determine what to show for left icon slot\n const leftContent = loading ? (\n <Spinner size=\"sm\" aria-hidden=\"true\" />\n ) : leftIcon ? (\n <Box\n as=\"span\"\n display=\"inline-flex\"\n alignItems=\"center\"\n flexShrink={0}\n aria-hidden=\"true\"\n >\n {leftIcon}\n </Box>\n ) : null;\n\n // Right icon (never replaced by spinner)\n const rightContent = rightIcon ? (\n <Box\n as=\"span\"\n display=\"inline-flex\"\n alignItems=\"center\"\n flexShrink={0}\n aria-hidden=\"true\"\n >\n {rightIcon}\n </Box>\n ) : null;\n\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box\n as={Component}\n // Layout\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n gap={2}\n // Size props\n py={sizeProps.py}\n px={sizeProps.px}\n fontSize={sizeProps.fontSize}\n rounded={sizeProps.rounded}\n fontWeight=\"medium\"\n // Color props (allow user overrides)\n bg={bg ?? colorConfig.bg}\n color={color ?? colorConfig.color}\n border={variantBorderConfig[variant]}\n borderColor={borderColor ?? colorConfig.borderColor}\n // Width\n w={fullWidth ? \"100%\" : undefined}\n // Interaction states\n cursor={isDisabled ? \"not-allowed\" : \"pointer\"}\n pointerEvents={isDisabled ? \"none\" : undefined}\n opacity={isDisabled ? \"faint\" : undefined}\n // Text decoration for links\n textDecoration=\"none\"\n // CSS module styles (transitions + hover)\n className={clsx(styles.button, styles[variant], className)}\n // Set hover color via CSS variable\n style={{ \"--button-hover-bg\": colorConfig.hoverBg, ...style }}\n // Accessibility\n disabled={isDisabled}\n aria-disabled={isDisabled}\n aria-busy={loading}\n {...rest}\n >\n {leftContent}\n {children}\n {rightContent}\n </Box>\n );\n}\n","import { type ElementType } from \"react\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\nimport type {\n FlexDirectionValue,\n JustifyContentValue,\n AlignItemsValue,\n SpacingValue,\n} from \"@/components/Box/flexbox/flexbox\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type StackOwnProps = Omit<\n BoxOwnProps,\n \"display\" | \"flexDirection\" | \"justifyContent\" | \"alignItems\" | \"flexWrap\" | \"gap\"\n> & {\n /** Stack direction: row, column, row-reverse, column-reverse */\n direction?: FlexDirectionValue;\n /** Gap between children (0-32 spacing multiplier) */\n gap?: SpacingValue;\n /** Align items along the cross axis */\n align?: AlignItemsValue;\n /** Justify content along the main axis */\n justify?: JustifyContentValue;\n /** Enable flex wrapping */\n wrap?: boolean;\n};\n\nexport type StackProps<T extends ElementType = \"div\"> = Polymorphic<\n T,\n StackOwnProps\n>;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Stack - Flex-based layout component\n *\n * A polymorphic flex container that provides:\n * - Default element: <div>\n * - Direction: column (default), row, row-reverse, column-reverse\n * - Gap: spacing multiplier (0-32)\n * - Align: cross-axis alignment\n * - Justify: main-axis alignment\n * - Wrap: enable flex wrapping\n */\nexport function Stack<T extends ElementType = \"div\">({\n as,\n direction = \"column\",\n gap,\n align,\n justify,\n wrap,\n children,\n ...rest\n}: StackProps<T>) {\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box\n as={as || \"div\"}\n display=\"flex\"\n flexDirection={direction}\n gap={gap}\n alignItems={align}\n justifyContent={justify}\n flexWrap={wrap ? \"wrap\" : undefined}\n {...rest}\n >\n {children}\n </Box>\n );\n}\n","import { type ElementType } from \"react\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Stack, type StackOwnProps } from \"@/components/Stack/Stack\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type HStackOwnProps = Omit<StackOwnProps, \"direction\">;\n\nexport type HStackProps<T extends ElementType = \"div\"> = Polymorphic<\n T,\n HStackOwnProps\n>;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * HStack - Horizontal stack component\n *\n * A convenience wrapper around Stack with direction=\"row\".\n * - Default element: <div>\n * - Direction: row (fixed)\n * - Gap: spacing multiplier (0-32)\n * - Align: cross-axis alignment\n * - Justify: main-axis alignment\n * - Wrap: enable flex wrapping\n */\nexport function HStack<T extends ElementType = \"div\">({\n as,\n children,\n ...rest\n}: HStackProps<T>) {\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Stack as={as || \"div\"} direction=\"row\" {...rest}>\n {children}\n </Stack>\n );\n}\n","import { type ElementType } from \"react\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Stack, type StackOwnProps } from \"@/components/Stack/Stack\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type VStackOwnProps = Omit<StackOwnProps, \"direction\">;\n\nexport type VStackProps<T extends ElementType = \"div\"> = Polymorphic<\n T,\n VStackOwnProps\n>;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * VStack - Vertical stack component\n *\n * A convenience wrapper around Stack with direction=\"column\".\n * - Default element: <div>\n * - Direction: column (fixed)\n * - Gap: spacing multiplier (0-32)\n * - Align: cross-axis alignment\n * - Justify: main-axis alignment\n * - Wrap: enable flex wrapping\n */\nexport function VStack<T extends ElementType = \"div\">({\n as,\n children,\n ...rest\n}: VStackProps<T>) {\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Stack as={as || \"div\"} direction=\"column\" {...rest}>\n {children}\n </Stack>\n );\n}\n","import { type ElementType } from \"react\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\nimport type {\n FlexDirectionValue,\n JustifyContentValue,\n AlignItemsValue,\n AlignSelfValue,\n FlexWrapValue,\n SpacingValue,\n} from \"@/components/Box/flexbox/flexbox\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type FlexOwnProps = Omit<\n BoxOwnProps,\n | \"display\"\n | \"flexDirection\"\n | \"justifyContent\"\n | \"alignItems\"\n | \"alignSelf\"\n | \"flexWrap\"\n | \"gap\"\n | \"gapRow\"\n | \"gapColumn\"\n | \"flexBasis\"\n | \"flexGrow\"\n | \"flexShrink\"\n> & {\n /** Flex direction: row (default), column, row-reverse, column-reverse */\n direction?: FlexDirectionValue;\n /** Flex wrapping: nowrap (default), wrap, wrap-reverse */\n wrap?: FlexWrapValue;\n /** Justify content along the main axis */\n justify?: JustifyContentValue;\n /** Align items along the cross axis */\n align?: AlignItemsValue;\n /** Align content when there are multiple lines */\n alignContent?: JustifyContentValue;\n /** Gap between children (0-32 spacing multiplier or string) */\n gap?: SpacingValue;\n /** Row gap between children (0-32 spacing multiplier or string) */\n gapRow?: SpacingValue;\n /** Column gap between children (0-32 spacing multiplier or string) */\n gapColumn?: SpacingValue;\n /** Flex basis of the container */\n basis?: string;\n /** Flex grow of the container */\n grow?: number;\n /** Flex shrink of the container */\n shrink?: number;\n /** Align self within parent flex container */\n alignSelf?: AlignSelfValue;\n};\n\nexport type FlexProps<T extends ElementType = \"div\"> = Polymorphic<\n T,\n FlexOwnProps\n>;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Flex - Explicit flexbox layout component\n *\n * A polymorphic flex container with shorthand props:\n * - Default element: <div>\n * - Always renders with display=\"flex\"\n * - direction -> flexDirection (default: row)\n * - wrap -> flexWrap\n * - justify -> justifyContent\n * - align -> alignItems\n * - gap, gapRow, gapColumn\n * - basis, grow, shrink -> flexBasis, flexGrow, flexShrink\n */\nexport function Flex<T extends ElementType = \"div\">({\n as,\n direction,\n wrap,\n justify,\n align,\n alignContent,\n gap,\n gapRow,\n gapColumn,\n basis,\n grow,\n shrink,\n alignSelf,\n children,\n ...rest\n}: FlexProps<T>) {\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box\n as={as || \"div\"}\n display=\"flex\"\n flexDirection={direction}\n flexWrap={wrap}\n justifyContent={justify}\n alignItems={align}\n gap={gap}\n gapRow={gapRow}\n gapColumn={gapColumn}\n flexBasis={basis}\n flexGrow={grow}\n flexShrink={shrink}\n alignSelf={alignSelf}\n {...rest}\n >\n {children}\n </Box>\n );\n}\n","import { type ElementType } from \"react\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\nimport type {\n JustifyContentValue,\n AlignItemsValue,\n SpacingValue,\n} from \"@/components/Box/flexbox/flexbox\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type GridOwnProps = Omit<\n BoxOwnProps,\n | \"display\"\n | \"gridTemplateColumns\"\n | \"gridTemplateRows\"\n | \"gap\"\n | \"gapRow\"\n | \"gapColumn\"\n | \"justifyContent\"\n | \"alignItems\"\n> & {\n /** Grid template columns (CSS value) */\n columns?: string;\n /** Grid template rows (CSS value) */\n rows?: string;\n /** Gap between grid items (0-32 spacing multiplier or string) */\n gap?: SpacingValue;\n /** Row gap between grid items (0-32 spacing multiplier or string) */\n gapRow?: SpacingValue;\n /** Column gap between grid items (0-32 spacing multiplier or string) */\n gapColumn?: SpacingValue;\n /** Justify items along the inline (row) axis */\n justify?: JustifyContentValue;\n /** Align items along the block (column) axis */\n align?: AlignItemsValue;\n /** Justify content (distribute rows) */\n justifyContent?: JustifyContentValue;\n /** Align content (distribute columns) */\n alignContent?: JustifyContentValue;\n};\n\nexport type GridProps<T extends ElementType = \"div\"> = Polymorphic<\n T,\n GridOwnProps\n>;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Grid - Explicit CSS Grid layout component\n *\n * A polymorphic grid container with shorthand props:\n * - Default element: <div>\n * - Always renders with display=\"grid\"\n * - columns -> gridTemplateColumns\n * - rows -> gridTemplateRows\n * - gap, gapRow, gapColumn\n * - justify -> justifyItems (alignment within cells)\n * - align -> alignItems (alignment within cells)\n * - justifyContent, alignContent (distribution of grid tracks)\n */\nexport function Grid<T extends ElementType = \"div\">({\n as,\n columns,\n rows,\n gap,\n gapRow,\n gapColumn,\n justify,\n align,\n justifyContent,\n alignContent,\n children,\n ...rest\n}: GridProps<T>) {\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box\n as={as || \"div\"}\n display=\"grid\"\n gridTemplateColumns={columns}\n gridTemplateRows={rows}\n gap={gap}\n gapRow={gapRow}\n gapColumn={gapColumn}\n justifyContent={justify ?? justifyContent}\n alignItems={align ?? alignContent}\n {...rest}\n >\n {children}\n </Box>\n );\n}\n","import { type ElementType } from \"react\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/** Container size preset */\nexport type ContainerSize = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"full\";\n\nexport type ContainerOwnProps = Omit<BoxOwnProps, \"maxW\" | \"mx\"> & {\n /** Max-width preset: sm=640px, md=768px, lg=1024px, xl=1280px, 2xl=1536px, full=100% (default: lg) */\n size?: ContainerSize;\n /** Center children using flexbox (default: false) */\n centerContent?: boolean;\n /** Horizontal padding (default: 4 = 16px) */\n px?: BoxOwnProps[\"px\"];\n};\n\nexport type ContainerProps<T extends ElementType = \"div\"> = Polymorphic<\n T,\n ContainerOwnProps\n>;\n\n// ============================================================================\n// Config\n// ============================================================================\n\nconst SIZE_MAP: Record<ContainerSize, string> = {\n sm: \"640px\",\n md: \"768px\",\n lg: \"1024px\",\n xl: \"1280px\",\n \"2xl\": \"1536px\",\n full: \"100%\",\n};\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Container - Max-width centered content wrapper\n *\n * A polymorphic container for constraining content width:\n * - Default element: <div>\n * - Size presets: sm (640px), md (768px), lg (1024px), xl (1280px), 2xl (1536px), full (100%)\n * - Default: lg (1024px max-width)\n * - Centered horizontally with mx=\"auto\"\n * - Optional centerContent to center children vertically with flex\n */\nexport function Container<T extends ElementType = \"div\">({\n as,\n size = \"lg\",\n centerContent = false,\n px = 4,\n children,\n ...rest\n}: ContainerProps<T>) {\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box\n as={as || \"div\"}\n w=\"100%\"\n maxW={SIZE_MAP[size]}\n mx=\"auto\"\n px={px}\n {...(centerContent && {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n })}\n {...rest}\n >\n {children}\n </Box>\n );\n}\n","import { type ElementType } from \"react\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/** Divider color using semantic border color tokens */\nexport type DividerColor =\n | \"border\"\n | \"border-muted\"\n | \"primary\"\n | \"accent\"\n | \"success\"\n | \"warning\"\n | \"error\"\n | \"info\";\n\nexport type DividerOwnProps = Omit<BoxOwnProps, \"w\" | \"h\" | \"bg\" | \"color\"> & {\n /** Divider orientation (default: \"horizontal\") */\n orientation?: \"horizontal\" | \"vertical\";\n /** Divider color token (default: \"border-muted\") */\n color?: DividerColor;\n /** Divider thickness in pixels 1-4 (default: 1) */\n thickness?: 1 | 2 | 3 | 4;\n};\n\nexport type DividerProps<T extends ElementType = \"hr\"> = Polymorphic<\n T,\n DividerOwnProps\n>;\n\n// ============================================================================\n// Config\n// ============================================================================\n\nconst COLOR_MAP: Record<DividerColor, string> = {\n border: \"var(--t-color-border)\",\n \"border-muted\": \"var(--t-color-border-muted)\",\n primary: \"var(--t-color-primary-default)\",\n accent: \"var(--t-color-accent-default)\",\n success: \"var(--t-color-success-default)\",\n warning: \"var(--t-color-warning-default)\",\n error: \"var(--t-color-error-default)\",\n info: \"var(--t-color-info-default)\",\n};\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Divider - Visual separator between content sections\n *\n * A polymorphic divider component that provides:\n * - Default element: <hr> for horizontal, <div> for vertical\n * - Orientations: horizontal (default), vertical\n * - Customizable color and thickness\n * - Proper accessibility attributes (role=\"separator\", aria-orientation)\n */\nexport function Divider<T extends ElementType = \"hr\">({\n as,\n orientation = \"horizontal\",\n color = \"border-muted\",\n thickness = 1,\n style,\n ...rest\n}: DividerProps<T>) {\n const isHorizontal = orientation === \"horizontal\";\n const defaultElement = isHorizontal ? \"hr\" : \"div\";\n\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box\n as={as || defaultElement}\n role=\"separator\"\n aria-orientation={orientation}\n w={isHorizontal ? \"100%\" : undefined}\n h={isHorizontal ? undefined : \"100%\"}\n style={{\n backgroundColor: COLOR_MAP[color],\n ...(isHorizontal\n ? { height: `${thickness}px` }\n : { width: `${thickness}px` }),\n border: \"none\",\n ...style,\n }}\n {...rest}\n />\n );\n}\n","import { type ElementType } from \"react\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type SpacerOwnProps = Omit<BoxOwnProps, \"flex\">;\n\nexport type SpacerProps<T extends ElementType = \"div\"> = Polymorphic<\n T,\n SpacerOwnProps\n>;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Spacer - Flexible space filler for flex layouts\n *\n * A polymorphic spacer component that fills available flex space:\n * - Default element: <div>\n * - Always has flex: 1 to fill available space\n * - Use to push items apart in flex containers (e.g., logo left, nav right)\n */\nexport function Spacer<T extends ElementType = \"div\">({\n as,\n ...rest\n}: SpacerProps<T>) {\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box as={as || \"div\"} flex={1} {...rest} />\n );\n}\n","import { type ElementType } from \"react\";\nimport { Box, type BoxOwnProps } from \"../Box/Box\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\n\ntype FontSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"3xl\" | \"4xl\" | \"5xl\";\ntype Color =\n | \"foreground\"\n | \"foreground-muted\"\n | \"foreground-subtle\"\n | \"foreground-inverted\"\n | \"foreground-inverted-muted\"\n | \"foreground-inverted-subtle\"\n | \"accent\"\n | \"accent-emphasis\"\n | \"primary\"\n | \"primary-emphasis\"\n | \"success\"\n | \"success-emphasis\"\n | \"warning\"\n | \"warning-emphasis\"\n | \"error\"\n | \"error-emphasis\"\n | \"info\"\n | \"info-emphasis\";\n\nexport type CodeVariant = \"plain\" | \"subtle\";\n\nexport type CodeOwnProps = Omit<\n BoxOwnProps,\n \"fontSize\" | \"fontFamily\" | \"color\" | \"bg\" | \"rounded\" | \"px\"\n> & {\n /** Font size */\n size?: FontSize;\n /** Text color */\n color?: Color;\n /** Visual variant: plain (no background) or subtle (surface background) */\n variant?: CodeVariant;\n};\n\nexport type CodeProps<T extends ElementType = \"code\"> = Polymorphic<\n T,\n CodeOwnProps\n>;\n\n/**\n * Code - Inline code styling component\n *\n * Built on top of Box with code-specific conveniences:\n * - Default element: <code>\n * - Always uses monospace font family\n * - Variants: plain (no background) or subtle (surface background with rounded corners)\n * - Can be changed to any element via `as` prop\n */\nexport function Code<T extends ElementType = \"code\">({\n as,\n size,\n color,\n variant = \"plain\",\n ...rest\n}: CodeProps<T>) {\n const isSubtle = variant === \"subtle\";\n\n return (\n // @ts-expect-error - Polymorphic component prop forwarding\n <Box\n as={as || \"code\"}\n fontSize={size}\n fontFamily=\"mono\"\n color={color}\n bg={isSubtle ? \"surface\" : undefined}\n rounded={isSubtle ? \"sm\" : undefined}\n px={isSubtle ? 1 : undefined}\n {...rest}\n />\n );\n}\n","import { type ElementType } from \"react\";\nimport clsx from \"clsx\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\nimport styles from \"./input.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type InputSize = \"sm\" | \"md\" | \"lg\";\nexport type InputVariant = \"outline\" | \"filled\";\n\nexport type InputOwnProps = Omit<\n BoxOwnProps,\n \"as\" | \"h\" | \"fontSize\" | \"rounded\" | \"border\" | \"borderColor\" | \"bg\"\n> & {\n /** Input size affecting height and font size */\n size?: InputSize;\n /** Visual variant: outline (border) or filled (surface background) */\n variant?: InputVariant;\n /** Whether the input is disabled */\n disabled?: boolean;\n /** Whether the input is in an invalid state */\n isInvalid?: boolean;\n};\n\nexport type InputProps<T extends ElementType = \"input\"> = Polymorphic<\n T,\n InputOwnProps\n>;\n\n// ============================================================================\n// Size configurations\n// ============================================================================\n\nconst sizeConfig = {\n sm: { h: 8, px: 2, fontSize: \"sm\", rounded: \"sm\" },\n md: { h: 10, px: 3, fontSize: \"md\", rounded: \"md\" },\n lg: { h: 12, px: 4, fontSize: \"lg\", rounded: \"md\" },\n} as const;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Input - Text input field component\n *\n * A polymorphic input component that provides:\n * - Default element: <input>\n * - Sizes: sm, md (default), lg\n * - Variants: outline (default), filled\n * - Disabled and invalid states\n * - Focus ring styling\n */\nexport function Input<T extends ElementType = \"input\">({\n as,\n size = \"md\",\n variant = \"outline\",\n disabled = false,\n isInvalid = false,\n className,\n ...rest\n}: InputProps<T>) {\n const Component = as || \"input\";\n const sizeProps = sizeConfig[size];\n\n // Variant-specific styling\n const variantStyles =\n variant === \"outline\"\n ? {\n bg: \"transparent\" as const,\n border: \"thin\" as const,\n borderColor: \"border\" as const,\n }\n : {\n bg: \"surface\" as const,\n border: \"thin\" as const,\n borderColor: \"border-muted\" as const,\n };\n\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box\n as={Component}\n // Size props\n h={sizeProps.h}\n px={sizeProps.px}\n fontSize={sizeProps.fontSize}\n rounded={sizeProps.rounded}\n // Variant props\n bg={variantStyles.bg}\n border={variantStyles.border}\n borderColor={variantStyles.borderColor}\n // Full width by default\n w=\"100%\"\n // Colors\n color=\"foreground\"\n // CSS module for states\n className={clsx(styles.input, isInvalid && styles.invalid, className)}\n // Native disabled\n disabled={disabled}\n aria-invalid={isInvalid || undefined}\n {...rest}\n />\n );\n}\n","import { type ElementType } from \"react\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\ntype FontSize = \"xs\" | \"sm\" | \"md\" | \"lg\";\ntype FontWeight = \"normal\" | \"medium\" | \"semibold\" | \"bold\";\n\nexport type LabelOwnProps = Omit<\n BoxOwnProps,\n \"as\" | \"fontSize\" | \"fontWeight\"\n> & {\n /** Label text size */\n size?: FontSize;\n /** Label font weight */\n weight?: FontWeight;\n /** Show required asterisk */\n required?: boolean;\n};\n\nexport type LabelProps<T extends ElementType = \"label\"> = Polymorphic<\n T,\n LabelOwnProps\n>;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Label - Form label component\n *\n * A polymorphic label component that provides:\n * - Default element: <label>\n * - Size and weight props for typography\n * - Required indicator (red asterisk)\n * - Passes through htmlFor for accessibility\n */\nexport function Label<T extends ElementType = \"label\">({\n as,\n size = \"sm\",\n weight = \"medium\",\n required = false,\n children,\n ...rest\n}: LabelProps<T>) {\n const Component = as || \"label\";\n\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box\n as={Component}\n fontSize={size}\n fontWeight={weight}\n color=\"foreground\"\n display=\"inline-block\"\n mb={1}\n {...rest}\n >\n {children}\n {required && (\n <Box as=\"span\" color=\"error\" ml={1} aria-hidden=\"true\">\n *\n </Box>\n )}\n </Box>\n );\n}\n","import { type ElementType } from \"react\";\nimport clsx from \"clsx\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\nimport styles from \"./textarea.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type TextareaSize = \"sm\" | \"md\" | \"lg\";\nexport type TextareaVariant = \"outline\" | \"filled\";\nexport type TextareaResize = \"none\" | \"vertical\" | \"horizontal\" | \"both\";\n\nexport type TextareaOwnProps = Omit<\n BoxOwnProps,\n \"as\" | \"fontSize\" | \"rounded\" | \"border\" | \"borderColor\" | \"bg\"\n> & {\n /** Textarea size affecting font size and padding */\n size?: TextareaSize;\n /** Visual variant: outline (border) or filled (surface background) */\n variant?: TextareaVariant;\n /** Whether the textarea is disabled */\n disabled?: boolean;\n /** Whether the textarea is in an invalid state */\n isInvalid?: boolean;\n /** Number of visible text rows */\n rows?: number;\n /** Resize behavior */\n resize?: TextareaResize;\n};\n\nexport type TextareaProps<T extends ElementType = \"textarea\"> = Polymorphic<\n T,\n TextareaOwnProps\n>;\n\n// ============================================================================\n// Size configurations\n// ============================================================================\n\nconst sizeConfig = {\n sm: { p: 2, fontSize: \"sm\", rounded: \"sm\" },\n md: { p: 3, fontSize: \"md\", rounded: \"md\" },\n lg: { p: 4, fontSize: \"lg\", rounded: \"md\" },\n} as const;\n\n// ============================================================================\n// Resize class map\n// ============================================================================\n\nconst resizeClassMap: Record<TextareaResize, string> = {\n none: styles.resizeNone,\n vertical: styles.resizeVertical,\n horizontal: styles.resizeHorizontal,\n both: styles.resizeBoth,\n};\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Textarea - Multiline text input component\n *\n * A polymorphic textarea component that provides:\n * - Default element: <textarea>\n * - Sizes: sm, md (default), lg\n * - Variants: outline (default), filled\n * - Disabled and invalid states\n * - Configurable rows and resize behavior\n */\nexport function Textarea<T extends ElementType = \"textarea\">({\n as,\n size = \"md\",\n variant = \"outline\",\n disabled = false,\n isInvalid = false,\n rows = 3,\n resize = \"vertical\",\n className,\n ...rest\n}: TextareaProps<T>) {\n const Component = as || \"textarea\";\n const sizeProps = sizeConfig[size];\n\n // Variant-specific styling\n const variantStyles =\n variant === \"outline\"\n ? {\n bg: \"transparent\" as const,\n border: \"thin\" as const,\n borderColor: \"border\" as const,\n }\n : {\n bg: \"surface\" as const,\n border: \"thin\" as const,\n borderColor: \"border-muted\" as const,\n };\n\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box\n as={Component}\n // Size props\n p={sizeProps.p}\n fontSize={sizeProps.fontSize}\n rounded={sizeProps.rounded}\n // Variant props\n bg={variantStyles.bg}\n border={variantStyles.border}\n borderColor={variantStyles.borderColor}\n // Full width by default\n w=\"100%\"\n // Colors\n color=\"foreground\"\n // Native props\n rows={rows}\n // CSS module for states and resize\n className={clsx(\n styles.textarea,\n isInvalid && styles.invalid,\n resizeClassMap[resize],\n className\n )}\n // Native disabled\n disabled={disabled}\n aria-invalid={isInvalid || undefined}\n {...rest}\n />\n );\n}\n","import { type ElementType } from \"react\";\nimport clsx from \"clsx\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\nimport styles from \"./select.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type SelectSize = \"sm\" | \"md\" | \"lg\";\nexport type SelectVariant = \"outline\" | \"filled\";\n\nexport type SelectOwnProps = Omit<\n BoxOwnProps,\n \"as\" | \"h\" | \"fontSize\" | \"rounded\" | \"border\" | \"borderColor\" | \"bg\"\n> & {\n /** Select size affecting height and font size */\n size?: SelectSize;\n /** Visual variant: outline (border) or filled (surface background) */\n variant?: SelectVariant;\n /** Whether the select is disabled */\n disabled?: boolean;\n /** Whether the select is in an invalid state */\n isInvalid?: boolean;\n};\n\nexport type SelectProps<T extends ElementType = \"select\"> = Polymorphic<\n T,\n SelectOwnProps\n>;\n\n// ============================================================================\n// Size configurations\n// ============================================================================\n\nconst sizeConfig = {\n sm: { h: 8, px: 2, fontSize: \"sm\", rounded: \"sm\" },\n md: { h: 10, px: 3, fontSize: \"md\", rounded: \"md\" },\n lg: { h: 12, px: 4, fontSize: \"lg\", rounded: \"md\" },\n} as const;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Select - Dropdown select component\n *\n * A polymorphic select component that provides:\n * - Default element: <select>\n * - Sizes: sm, md (default), lg\n * - Variants: outline (default), filled\n * - Disabled and invalid states\n * - Custom dropdown arrow\n * - Focus ring styling\n */\nexport function Select<T extends ElementType = \"select\">({\n as,\n size = \"md\",\n variant = \"outline\",\n disabled = false,\n isInvalid = false,\n className,\n ...rest\n}: SelectProps<T>) {\n const Component = as || \"select\";\n const sizeProps = sizeConfig[size];\n\n // Variant-specific styling\n const variantStyles =\n variant === \"outline\"\n ? {\n bg: \"transparent\" as const,\n border: \"thin\" as const,\n borderColor: \"border\" as const,\n }\n : {\n bg: \"surface\" as const,\n border: \"thin\" as const,\n borderColor: \"border-muted\" as const,\n };\n\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box\n as={Component}\n // Size props\n h={sizeProps.h}\n px={sizeProps.px}\n fontSize={sizeProps.fontSize}\n rounded={sizeProps.rounded}\n // Variant props\n bg={variantStyles.bg}\n border={variantStyles.border}\n borderColor={variantStyles.borderColor}\n // Full width by default\n w=\"100%\"\n // Colors\n color=\"foreground\"\n // CSS module for states and custom arrow\n className={clsx(styles.select, isInvalid && styles.invalid, className)}\n // Native disabled\n disabled={disabled}\n aria-invalid={isInvalid || undefined}\n {...rest}\n />\n );\n}\n","import { type InputHTMLAttributes, forwardRef } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./checkbox.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type CheckboxSize = \"sm\" | \"md\" | \"lg\";\n\nexport type CheckboxProps = Omit<\n InputHTMLAttributes<HTMLInputElement>,\n \"size\" | \"type\"\n> & {\n /** Checkbox size affecting box dimensions */\n size?: CheckboxSize;\n /** Whether the checkbox is disabled */\n disabled?: boolean;\n /** Whether the checkbox is in an invalid state */\n isInvalid?: boolean;\n /** Controlled checked state */\n isChecked?: boolean;\n /** Optional label text displayed to the right */\n label?: string;\n};\n\n// ============================================================================\n// Size configurations\n// ============================================================================\n\nconst sizeConfig = {\n sm: { box: 16, fontSize: \"sm\" },\n md: { box: 20, fontSize: \"md\" },\n lg: { box: 24, fontSize: \"lg\" },\n} as const;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Checkbox - Toggle checkbox component\n *\n * A styled checkbox component that provides:\n * - Sizes: sm, md (default), lg\n * - Custom styled box with checkmark\n * - Optional inline label\n * - Disabled and invalid states\n * - Focus ring styling\n */\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n function Checkbox(\n {\n size = \"md\",\n disabled = false,\n isInvalid = false,\n isChecked,\n label,\n className,\n style,\n ...rest\n },\n ref\n ) {\n const sizeProps = sizeConfig[size];\n\n return (\n <Box\n as=\"label\"\n display=\"inline-flex\"\n alignItems=\"center\"\n gap={2}\n cursor={disabled ? \"not-allowed\" : \"pointer\"}\n opacity={disabled ? \"faint\" : undefined}\n className={clsx(styles.wrapper, className)}\n style={style}\n >\n {/* Hidden native checkbox */}\n <input\n type=\"checkbox\"\n ref={ref}\n checked={isChecked}\n disabled={disabled}\n aria-invalid={isInvalid || undefined}\n className={styles.input}\n {...rest}\n />\n\n {/* Custom visual checkbox */}\n <Box\n as=\"span\"\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n rounded=\"sm\"\n border=\"thin\"\n borderColor={isInvalid ? \"error\" : \"border\"}\n flexShrink={0}\n className={clsx(styles.box, isInvalid && styles.invalid)}\n style={{\n width: sizeProps.box,\n height: sizeProps.box,\n }}\n />\n\n {/* Optional label */}\n {label && (\n <Box as=\"span\" fontSize={sizeProps.fontSize} color=\"foreground\">\n {label}\n </Box>\n )}\n </Box>\n );\n }\n);\n","import { type InputHTMLAttributes, forwardRef } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./radio.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type RadioSize = \"sm\" | \"md\" | \"lg\";\n\nexport type RadioProps = Omit<\n InputHTMLAttributes<HTMLInputElement>,\n \"size\" | \"type\"\n> & {\n /** Radio size affecting circle dimensions */\n size?: RadioSize;\n /** Whether the radio is disabled */\n disabled?: boolean;\n /** Controlled checked state */\n isChecked?: boolean;\n /** Optional label text displayed to the right */\n label?: string;\n};\n\n// ============================================================================\n// Size configurations\n// ============================================================================\n\nconst sizeConfig = {\n sm: { circle: 16, fontSize: \"sm\" },\n md: { circle: 20, fontSize: \"md\" },\n lg: { circle: 24, fontSize: \"lg\" },\n} as const;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Radio - Radio button component\n *\n * A styled radio component that provides:\n * - Sizes: sm, md (default), lg\n * - Custom styled circle with inner dot\n * - Optional inline label\n * - Disabled state\n * - Focus ring styling\n * - Use name prop to group radios together\n */\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(function Radio(\n {\n size = \"md\",\n disabled = false,\n isChecked,\n label,\n className,\n style,\n ...rest\n },\n ref\n) {\n const sizeProps = sizeConfig[size];\n\n return (\n <Box\n as=\"label\"\n display=\"inline-flex\"\n alignItems=\"center\"\n gap={2}\n cursor={disabled ? \"not-allowed\" : \"pointer\"}\n opacity={disabled ? \"faint\" : undefined}\n className={clsx(styles.wrapper, className)}\n style={style}\n >\n {/* Hidden native radio */}\n <input\n type=\"radio\"\n ref={ref}\n checked={isChecked}\n disabled={disabled}\n className={styles.input}\n {...rest}\n />\n\n {/* Custom visual radio circle */}\n <Box\n as=\"span\"\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n rounded=\"full\"\n border=\"thin\"\n borderColor=\"border\"\n flexShrink={0}\n className={styles.circle}\n style={{\n width: sizeProps.circle,\n height: sizeProps.circle,\n }}\n />\n\n {/* Optional label */}\n {label && (\n <Box as=\"span\" fontSize={sizeProps.fontSize} color=\"foreground\">\n {label}\n </Box>\n )}\n </Box>\n );\n});\n","import { type InputHTMLAttributes, forwardRef } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./switch.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type SwitchSize = \"sm\" | \"md\" | \"lg\";\n\nexport type SwitchProps = Omit<\n InputHTMLAttributes<HTMLInputElement>,\n \"size\" | \"type\"\n> & {\n /** Switch size affecting track and thumb dimensions */\n size?: SwitchSize;\n /** Whether the switch is disabled */\n disabled?: boolean;\n /** Controlled checked state */\n isChecked?: boolean;\n /** Optional label text displayed to the right */\n label?: string;\n};\n\n// ============================================================================\n// Size configurations\n// ============================================================================\n\nconst sizeConfig = {\n sm: { trackWidth: 32, trackHeight: 18, thumb: 14, fontSize: \"sm\" },\n md: { trackWidth: 40, trackHeight: 22, thumb: 18, fontSize: \"md\" },\n lg: { trackWidth: 48, trackHeight: 26, thumb: 22, fontSize: \"lg\" },\n} as const;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Switch - Toggle switch component\n *\n * A styled switch component that provides:\n * - Sizes: sm, md (default), lg\n * - Sliding thumb animation\n * - Optional inline label\n * - Disabled state\n * - Focus ring styling\n */\nexport const Switch = forwardRef<HTMLInputElement, SwitchProps>(function Switch(\n {\n size = \"md\",\n disabled = false,\n isChecked,\n label,\n className,\n style,\n ...rest\n },\n ref\n) {\n const sizeProps = sizeConfig[size];\n\n return (\n <Box\n as=\"label\"\n display=\"inline-flex\"\n alignItems=\"center\"\n gap={2}\n cursor={disabled ? \"not-allowed\" : \"pointer\"}\n opacity={disabled ? \"faint\" : undefined}\n className={clsx(styles.wrapper, className)}\n style={style}\n >\n {/* Hidden native checkbox with switch role */}\n <input\n type=\"checkbox\"\n role=\"switch\"\n ref={ref}\n checked={isChecked}\n disabled={disabled}\n className={styles.input}\n {...rest}\n />\n\n {/* Custom track */}\n <Box\n as=\"span\"\n display=\"inline-flex\"\n alignItems=\"center\"\n rounded=\"full\"\n flexShrink={0}\n className={styles.track}\n style={\n {\n width: sizeProps.trackWidth,\n height: sizeProps.trackHeight,\n \"--switch-thumb-size\": `${sizeProps.thumb}px`,\n \"--switch-track-width\": `${sizeProps.trackWidth}px`,\n } as React.CSSProperties\n }\n >\n {/* Thumb */}\n <Box\n as=\"span\"\n rounded=\"full\"\n bg=\"background\"\n className={styles.thumb}\n style={{\n width: sizeProps.thumb,\n height: sizeProps.thumb,\n }}\n />\n </Box>\n\n {/* Optional label */}\n {label && (\n <Box as=\"span\" fontSize={sizeProps.fontSize} color=\"foreground\">\n {label}\n </Box>\n )}\n </Box>\n );\n});\n","import { type ReactNode, useId, cloneElement, isValidElement, Children } from \"react\";\nimport { Box } from \"@/components/Box/Box\";\nimport { Label } from \"@/components/Label/Label\";\nimport { VStack } from \"@/components/VStack/VStack\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type FormFieldProps = {\n /** Label text displayed above the control */\n label: string;\n /** Helper text displayed below the control (hidden when isInvalid) */\n helperText?: string;\n /** Error message displayed when isInvalid (replaces helperText) */\n errorMessage?: string;\n /** Whether the field is required (shows asterisk) */\n isRequired?: boolean;\n /** Whether the field is in an invalid state */\n isInvalid?: boolean;\n /** Whether the field is disabled */\n disabled?: boolean;\n /** Custom ID for the field (auto-generated if not provided) */\n id?: string;\n /** The form control to render */\n children: ReactNode;\n};\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * FormField - Form field wrapper component\n *\n * A composition component that provides:\n * - Label with required indicator\n * - Helper text for descriptions\n * - Error message for validation\n * - State propagation to child controls (isInvalid, disabled)\n * - Accessible aria-describedby linking\n */\nexport function FormField({\n label,\n helperText,\n errorMessage,\n isRequired = false,\n isInvalid = false,\n disabled = false,\n id: providedId,\n children,\n}: FormFieldProps) {\n // Generate ID for accessibility linking\n const generatedId = useId();\n const fieldId = providedId || generatedId;\n const helperId = `${fieldId}-helper`;\n\n // Determine which message to show\n const showError = isInvalid && errorMessage;\n const message = showError ? errorMessage : helperText;\n const hasMessage = Boolean(message);\n\n // Clone child to pass props and aria attributes\n const enhancedChild = Children.map(children, (child) => {\n if (!isValidElement(child)) {\n return child;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return cloneElement(child as React.ReactElement<any>, {\n id: fieldId,\n isInvalid,\n disabled,\n \"aria-describedby\": hasMessage ? helperId : undefined,\n \"aria-invalid\": isInvalid || undefined,\n });\n });\n\n return (\n <VStack gap={1} align=\"stretch\">\n {/* Label */}\n <Label htmlFor={fieldId} required={isRequired}>\n {label}\n </Label>\n\n {/* Form control */}\n {enhancedChild}\n\n {/* Helper text or error message */}\n {hasMessage && (\n <Box\n as=\"span\"\n id={helperId}\n fontSize=\"sm\"\n color={showError ? \"error\" : \"foreground-muted\"}\n >\n {message}\n </Box>\n )}\n </VStack>\n );\n}\n","import { forwardRef, type CSSProperties, type ReactNode } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport { Spinner } from \"@/components/Spinner/Spinner\";\nimport styles from \"./iconbutton.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type IconButtonVariant = \"solid\" | \"outline\" | \"ghost\";\nexport type IconButtonSize = \"sm\" | \"md\" | \"lg\";\nexport type IconButtonColorScheme =\n | \"primary\"\n | \"accent\"\n | \"success\"\n | \"warning\"\n | \"error\"\n | \"info\";\n\nexport type IconButtonProps = {\n /** The icon to display */\n icon: ReactNode;\n /** Accessible label (required for screen readers) */\n \"aria-label\": string;\n /** Visual variant */\n variant?: IconButtonVariant;\n /** Size of the button */\n size?: IconButtonSize;\n /** Color scheme */\n colorScheme?: IconButtonColorScheme;\n /** Whether the button is disabled */\n disabled?: boolean;\n /** Whether to show loading spinner */\n loading?: boolean;\n /** Additional class name */\n className?: string;\n /** Click handler */\n onClick?: () => void;\n};\n\n// ============================================================================\n// Size configurations\n// ============================================================================\n\nconst sizeConfig = {\n sm: { dimension: \"28px\", iconSize: \"14px\", fontSize: \"sm\" },\n md: { dimension: \"36px\", iconSize: \"18px\", fontSize: \"md\" },\n lg: { dimension: \"44px\", iconSize: \"22px\", fontSize: \"lg\" },\n} as const;\n\n// ============================================================================\n// Color configurations\n// ============================================================================\n\ntype ColorConfig = {\n bg: string;\n color: string;\n borderColor: string | undefined;\n hoverBg: string;\n};\n\nfunction getColorConfig(\n variant: IconButtonVariant,\n colorScheme: IconButtonColorScheme\n): ColorConfig {\n switch (variant) {\n case \"solid\":\n return {\n bg: `${colorScheme}-default`,\n color: \"foreground-inverted\",\n borderColor: undefined,\n hoverBg: `var(--t-color-${colorScheme}-emphasis)`,\n };\n case \"outline\":\n return {\n bg: \"transparent\",\n color: colorScheme,\n borderColor: colorScheme,\n hoverBg: `var(--t-color-${colorScheme}-subtle)`,\n };\n case \"ghost\":\n return {\n bg: \"transparent\",\n color: colorScheme,\n borderColor: undefined,\n hoverBg: `var(--t-color-${colorScheme}-subtle)`,\n };\n }\n}\n\n// ============================================================================\n// Variant border configurations\n// ============================================================================\n\nconst variantBorderConfig = {\n solid: \"none\",\n outline: \"thin\",\n ghost: \"none\",\n} as const;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * IconButton - Icon-only button component\n *\n * A compact button for icons that provides:\n * - Square sizing for icon-only use\n * - All Button variants (solid, outline, ghost)\n * - All color schemes\n * - Loading state with spinner\n * - Required aria-label for accessibility\n */\nexport const IconButton = forwardRef<HTMLButtonElement, IconButtonProps>(\n function IconButton(\n {\n icon,\n \"aria-label\": ariaLabel,\n variant = \"solid\",\n size = \"md\",\n colorScheme = \"primary\",\n disabled = false,\n loading = false,\n className,\n onClick,\n ...rest\n },\n ref\n ) {\n const isDisabled = disabled || loading;\n const colorConfig = getColorConfig(variant, colorScheme);\n const sizeProps = sizeConfig[size];\n\n return (\n <Box\n as=\"button\"\n ref={ref}\n // Layout\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n // Size (square)\n w={sizeProps.dimension}\n h={sizeProps.dimension}\n fontSize={sizeProps.fontSize}\n rounded=\"md\"\n // Colors (type assertions for computed values)\n bg={colorConfig.bg as any}\n color={colorConfig.color as any}\n border={variantBorderConfig[variant]}\n borderColor={colorConfig.borderColor as any}\n // Interaction states\n cursor={isDisabled ? \"not-allowed\" : \"pointer\"}\n pointerEvents={isDisabled ? \"none\" : undefined}\n opacity={isDisabled ? \"faint\" : undefined}\n // CSS module styles\n className={clsx(styles.iconButton, styles[variant], className)}\n // Hover color via CSS variable\n style={{ \"--iconbutton-hover-bg\": colorConfig.hoverBg } as CSSProperties}\n // Accessibility\n aria-label={ariaLabel}\n disabled={isDisabled}\n aria-disabled={isDisabled}\n aria-busy={loading}\n onClick={onClick}\n {...rest}\n >\n {loading ? (\n <Spinner size=\"sm\" aria-hidden=\"true\" />\n ) : (\n <Box as=\"span\" display=\"inline-flex\" alignItems=\"center\" aria-hidden=\"true\">\n {icon}\n </Box>\n )}\n </Box>\n );\n }\n);\n","import { type ReactNode } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport { HStack } from \"@/components/HStack/HStack\";\nimport { VStack } from \"@/components/VStack/VStack\";\nimport styles from \"./alert.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type AlertStatus = \"success\" | \"warning\" | \"error\" | \"info\";\n\nexport type AlertProps = {\n /** Status determines colors and default icon */\n status?: AlertStatus;\n /** Optional title displayed above description */\n title?: ReactNode;\n /** Description content */\n children?: ReactNode;\n /** Custom icon (overrides default per-status icon) */\n icon?: ReactNode;\n /** Callback when close button is clicked (omit to hide close button) */\n onClose?: () => void;\n /** Additional class name */\n className?: string;\n};\n\n// ============================================================================\n// Default icons per status (simple SVG)\n// ============================================================================\n\nconst defaultIcons: Record<AlertStatus, ReactNode> = {\n success: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fillRule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\"\n clipRule=\"evenodd\"\n />\n </svg>\n ),\n warning: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fillRule=\"evenodd\"\n d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n ),\n error: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fillRule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\"\n clipRule=\"evenodd\"\n />\n </svg>\n ),\n info: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"currentColor\">\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\"\n clipRule=\"evenodd\"\n />\n </svg>\n ),\n};\n\n// ============================================================================\n// Close button icon\n// ============================================================================\n\nconst CloseIcon = (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"currentColor\">\n <path\n fillRule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L8 6.586l2.293-2.293a1 1 0 111.414 1.414L9.414 8l2.293 2.293a1 1 0 01-1.414 1.414L8 9.414l-2.293 2.293a1 1 0 01-1.414-1.414L6.586 8 4.293 5.707a1 1 0 010-1.414z\"\n clipRule=\"evenodd\"\n />\n </svg>\n);\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Alert - Status notification banner\n *\n * A contextual feedback component that provides:\n * - Four status variants: success, warning, error, info\n * - Optional title and description\n * - Default icons per status (customizable)\n * - Optional close button\n * - Accessible with role=\"alert\"\n */\nexport function Alert({\n status = \"info\",\n title,\n children,\n icon,\n onClose,\n className,\n}: AlertProps) {\n const displayIcon = icon ?? defaultIcons[status];\n\n return (\n <Box\n role=\"alert\"\n p={4}\n rounded=\"md\"\n bg={`${status}-subtle` as any}\n className={clsx(styles.alert, styles[status], className)}\n >\n <HStack gap={3} align=\"start\">\n {/* Icon */}\n <Box\n as=\"span\"\n display=\"inline-flex\"\n alignItems=\"center\"\n flexShrink={0}\n color={status as any}\n aria-hidden=\"true\"\n >\n {displayIcon}\n </Box>\n\n {/* Content */}\n <VStack gap={1} flexGrow={1}>\n {title && (\n <Box as=\"span\" fontWeight=\"semibold\" color=\"foreground\">\n {title}\n </Box>\n )}\n {children && (\n <Box as=\"span\" color=\"foreground-muted\" fontSize=\"sm\">\n {children}\n </Box>\n )}\n </VStack>\n\n {/* Close button */}\n {onClose && (\n <Box\n as=\"button\"\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n p={1}\n rounded=\"sm\"\n bg=\"transparent\"\n color=\"foreground-muted\"\n cursor=\"pointer\"\n className={styles.closeButton}\n onClick={onClose}\n aria-label=\"Dismiss\"\n >\n {CloseIcon}\n </Box>\n )}\n </HStack>\n </Box>\n );\n}\n","import { type ReactNode } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./badge.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type BadgeColorScheme =\n | \"primary\"\n | \"accent\"\n | \"success\"\n | \"warning\"\n | \"error\"\n | \"info\"\n | \"gray\";\n\nexport type BadgeVariant = \"solid\" | \"subtle\";\nexport type BadgeSize = \"sm\" | \"md\";\n\nexport type BadgeProps = {\n /** Color scheme */\n colorScheme?: BadgeColorScheme;\n /** Visual variant */\n variant?: BadgeVariant;\n /** Size */\n size?: BadgeSize;\n /** Badge content */\n children?: ReactNode;\n /** Additional class name */\n className?: string;\n};\n\n// ============================================================================\n// Size configurations\n// ============================================================================\n\nconst sizeConfig = {\n sm: { fontSize: \"xs\", px: 1.5, py: 0.5 },\n md: { fontSize: \"sm\", px: 2, py: 0.5 },\n} as const;\n\n// ============================================================================\n// Color configurations\n// ============================================================================\n\ntype ColorConfig = {\n bg: string;\n color: string;\n};\n\nfunction getColorConfig(\n variant: BadgeVariant,\n colorScheme: BadgeColorScheme\n): ColorConfig {\n // Handle \"gray\" colorScheme specially since it uses different token names\n if (colorScheme === \"gray\") {\n if (variant === \"solid\") {\n return {\n bg: \"foreground\",\n color: \"foreground-inverted\",\n };\n }\n return {\n bg: \"surface\",\n color: \"foreground-muted\",\n };\n }\n\n if (variant === \"solid\") {\n return {\n bg: `${colorScheme}-default`,\n color: \"foreground-inverted\",\n };\n }\n\n return {\n bg: `${colorScheme}-subtle`,\n color: colorScheme,\n };\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Badge - Small status indicator\n *\n * A compact label component for displaying:\n * - Counts and numbers\n * - Status indicators\n * - Categories and tags\n *\n * Features:\n * - 7 color schemes: primary, accent, success, warning, error, info, gray\n * - 2 variants: solid (bold) and subtle (muted)\n * - 2 sizes: sm and md\n * - Pill shape (fully rounded)\n */\nexport function Badge({\n colorScheme = \"gray\",\n variant = \"subtle\",\n size = \"md\",\n children,\n className,\n}: BadgeProps) {\n const colorConfig = getColorConfig(variant, colorScheme);\n const sizeProps = sizeConfig[size];\n\n return (\n <Box\n as=\"span\"\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n px={sizeProps.px}\n py={sizeProps.py}\n fontSize={sizeProps.fontSize}\n fontWeight=\"medium\"\n lineHeight=\"tight\"\n rounded=\"full\"\n bg={colorConfig.bg as any}\n color={colorConfig.color as any}\n className={clsx(styles.badge, className)}\n >\n {children}\n </Box>\n );\n}\n","import { type CSSProperties } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./progress.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type ProgressColorScheme =\n | \"primary\"\n | \"accent\"\n | \"success\"\n | \"warning\"\n | \"error\"\n | \"info\";\n\nexport type ProgressSize = \"sm\" | \"md\" | \"lg\";\n\nexport type ProgressProps = {\n /** Progress value (0-100) */\n value?: number;\n /** Maximum value (default 100) */\n max?: number;\n /** Color scheme */\n colorScheme?: ProgressColorScheme;\n /** Size */\n size?: ProgressSize;\n /** Indeterminate mode (loading without known progress) */\n isIndeterminate?: boolean;\n /** Additional class name */\n className?: string;\n};\n\n// ============================================================================\n// Size configurations\n// ============================================================================\n\nconst sizeConfig = {\n sm: \"4px\",\n md: \"8px\",\n lg: \"12px\",\n} as const;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Progress - Progress bar indicator\n *\n * A visual indicator of completion progress:\n * - Value-based: shows percentage complete\n * - Indeterminate: animated loading state\n *\n * Features:\n * - 6 color schemes\n * - 3 sizes (sm, md, lg)\n * - Accessible with role=\"progressbar\" and ARIA attributes\n */\nexport function Progress({\n value = 0,\n max = 100,\n colorScheme = \"primary\",\n size = \"md\",\n isIndeterminate = false,\n className,\n}: ProgressProps) {\n const percentage = Math.min(100, Math.max(0, (value / max) * 100));\n const height = sizeConfig[size];\n\n return (\n <Box\n role=\"progressbar\"\n aria-valuenow={isIndeterminate ? undefined : value}\n aria-valuemin={0}\n aria-valuemax={max}\n position=\"relative\"\n overflow=\"hidden\"\n rounded=\"full\"\n bg=\"surface\"\n className={clsx(styles.track, className)}\n style={{ \"--progress-height\": height } as CSSProperties}\n >\n <Box\n position=\"absolute\"\n inset={0}\n rounded=\"full\"\n bg={`${colorScheme}-default` as any}\n className={clsx(\n styles.fill,\n isIndeterminate && styles.indeterminate\n )}\n style={\n isIndeterminate\n ? undefined\n : ({ \"--progress-width\": `${percentage}%` } as CSSProperties)\n }\n />\n </Box>\n );\n}\n","import { type ReactNode, type CSSProperties } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport type { RoundedValue } from \"@/components/Box/roundness/roundness\";\nimport styles from \"./skeleton.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type SkeletonProps = {\n /** Width (CSS value) */\n w?: string;\n /** Height (CSS value) */\n h?: string;\n /** Border radius */\n rounded?: RoundedValue;\n /** When true, shows children instead of skeleton */\n isLoaded?: boolean;\n /** Content to show when loaded */\n children?: ReactNode;\n /** Additional class name */\n className?: string;\n};\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Skeleton - Loading placeholder\n *\n * A shimmer animation placeholder for content:\n * - Shows animated skeleton when loading\n * - Reveals children when isLoaded is true\n *\n * Features:\n * - Configurable width and height\n * - Rounded corners\n * - Shimmer animation\n */\nexport function Skeleton({\n w,\n h,\n rounded = \"md\",\n isLoaded = false,\n children,\n className,\n}: SkeletonProps) {\n if (isLoaded) {\n return <>{children}</>;\n }\n\n return (\n <Box\n display=\"inline-block\"\n position=\"relative\"\n overflow=\"hidden\"\n rounded={rounded}\n bg=\"surface\"\n className={clsx(styles.skeleton, className)}\n style={\n {\n \"--skeleton-width\": w,\n \"--skeleton-height\": h,\n } as CSSProperties\n }\n aria-hidden=\"true\"\n />\n );\n}\n","import { useState } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./avatar.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type AvatarSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\n\nexport type AvatarProps = {\n /** Image source URL */\n src?: string;\n /** Name for generating initials fallback */\n name?: string;\n /** Size variant */\n size?: AvatarSize;\n /** Border radius */\n rounded?: \"full\" | \"md\";\n /** Alt text for image */\n alt?: string;\n /** Additional class name */\n className?: string;\n};\n\n// ============================================================================\n// Size configurations\n// ============================================================================\n\nconst sizeConfig = {\n sm: { dimension: \"32px\", fontSize: \"xs\" },\n md: { dimension: \"40px\", fontSize: \"sm\" },\n lg: { dimension: \"48px\", fontSize: \"md\" },\n xl: { dimension: \"64px\", fontSize: \"lg\" },\n} as const;\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\nfunction getInitials(name: string): string {\n const words = name.trim().split(/\\s+/);\n if (words.length === 0) return \"\";\n if (words.length === 1) return words[0].charAt(0).toUpperCase();\n return (words[0].charAt(0) + words[words.length - 1].charAt(0)).toUpperCase();\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Avatar - User/entity display\n *\n * A circular or rounded avatar component:\n * - Shows image when src is provided\n * - Falls back to initials from name\n * - Falls back to generic placeholder if neither\n *\n * Features:\n * - 4 sizes: sm (32px), md (40px), lg (48px), xl (64px)\n * - 2 rounded variants: full (circle), md (rounded corners)\n * - Graceful image loading with error fallback\n */\nexport function Avatar({\n src,\n name,\n size = \"md\",\n rounded = \"full\",\n alt,\n className,\n}: AvatarProps) {\n const [hasError, setHasError] = useState(false);\n const sizeProps = sizeConfig[size];\n const showImage = src && !hasError;\n const initials = name ? getInitials(name) : \"\";\n\n return (\n <Box\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n flexShrink={0}\n overflow=\"hidden\"\n rounded={rounded}\n bg=\"primary-subtle\"\n color=\"primary\"\n fontWeight=\"medium\"\n fontSize={sizeProps.fontSize}\n className={clsx(styles.avatar, className)}\n style={{\n width: sizeProps.dimension,\n height: sizeProps.dimension,\n }}\n >\n {showImage ? (\n <img\n src={src}\n alt={alt || name || \"Avatar\"}\n className={styles.image}\n onError={() => setHasError(true)}\n />\n ) : initials ? (\n <span>{initials}</span>\n ) : (\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n className={styles.placeholder}\n >\n <path d=\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\" />\n </svg>\n )}\n </Box>\n );\n}\n","import { type ReactNode } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport type { ShadowValue } from \"@/components/Box/shadows/shadows\";\nimport styles from \"./card.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type CardProps = {\n /** Shadow level */\n shadow?: ShadowValue;\n /** Additional class name */\n className?: string;\n /** Card content */\n children?: ReactNode;\n};\n\nexport type CardHeaderProps = {\n /** Additional class name */\n className?: string;\n /** Header content */\n children?: ReactNode;\n};\n\nexport type CardBodyProps = {\n /** Additional class name */\n className?: string;\n /** Body content */\n children?: ReactNode;\n};\n\nexport type CardFooterProps = {\n /** Additional class name */\n className?: string;\n /** Footer content */\n children?: ReactNode;\n};\n\n// ============================================================================\n// Components\n// ============================================================================\n\n/**\n * Card - Content container\n *\n * A flexible content container with:\n * - Surface background with border\n * - Optional shadow elevation\n * - Composable Header/Body/Footer sections\n */\nexport function Card({\n shadow = \"sm\",\n className,\n children,\n}: CardProps) {\n return (\n <Box\n bg=\"surface\"\n border=\"thin\"\n borderColor=\"border\"\n rounded=\"md\"\n overflow=\"hidden\"\n shadow={shadow}\n className={clsx(styles.card, className)}\n >\n {children}\n </Box>\n );\n}\n\n/**\n * CardHeader - Optional header section\n *\n * Use inside Card for header content with bottom border.\n */\nexport function CardHeader({ className, children }: CardHeaderProps) {\n return (\n <Box\n px={4}\n py={3}\n borderBottom=\"thin\"\n borderColor=\"border\"\n className={clsx(styles.cardHeader, className)}\n >\n {children}\n </Box>\n );\n}\n\n/**\n * CardBody - Main content section\n *\n * Use inside Card for main content with padding.\n */\nexport function CardBody({ className, children }: CardBodyProps) {\n return (\n <Box p={4} className={clsx(styles.cardBody, className)}>\n {children}\n </Box>\n );\n}\n\n/**\n * CardFooter - Optional footer section\n *\n * Use inside Card for footer content with top border.\n */\nexport function CardFooter({ className, children }: CardFooterProps) {\n return (\n <Box\n px={4}\n py={3}\n borderTop=\"thin\"\n borderColor=\"border\"\n className={clsx(styles.cardFooter, className)}\n >\n {children}\n </Box>\n );\n}\n","import { useState, type CSSProperties } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport { Skeleton } from \"@/components/Skeleton/Skeleton\";\nimport type { RoundedValue } from \"@/components/Box/roundness/roundness\";\nimport styles from \"./image.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type ImageObjectFit = \"cover\" | \"contain\" | \"fill\" | \"none\";\n\nexport type ImageProps = {\n /** Image source URL */\n src: string;\n /** Alt text (required for accessibility) */\n alt: string;\n /** Width (CSS value) */\n w?: string;\n /** Height (CSS value) */\n h?: string;\n /** Object fit behavior */\n objectFit?: ImageObjectFit;\n /** Fallback source if main image fails */\n fallbackSrc?: string;\n /** Border radius */\n rounded?: RoundedValue;\n /** Additional class name */\n className?: string;\n};\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Image - Enhanced img element\n *\n * An image component with:\n * - Loading state with Skeleton placeholder\n * - Error fallback support\n * - Object-fit options\n * - Rounded corner variants\n */\nexport function Image({\n src,\n alt,\n w,\n h,\n objectFit = \"cover\",\n fallbackSrc,\n rounded = \"none\",\n className,\n}: ImageProps) {\n const [isLoading, setIsLoading] = useState(true);\n const [hasError, setHasError] = useState(false);\n const [currentSrc, setCurrentSrc] = useState(src);\n\n const handleLoad = () => {\n setIsLoading(false);\n };\n\n const handleError = () => {\n if (fallbackSrc && currentSrc !== fallbackSrc) {\n setCurrentSrc(fallbackSrc);\n setIsLoading(true);\n } else {\n setIsLoading(false);\n setHasError(true);\n }\n };\n\n const style: CSSProperties = {\n width: w,\n height: h,\n };\n\n if (hasError) {\n return (\n <Box\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n bg=\"surface\"\n color=\"foreground-muted\"\n rounded={rounded}\n className={clsx(styles.placeholder, className)}\n style={style}\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n className={styles.placeholderIcon}\n >\n <path d=\"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z\" />\n </svg>\n </Box>\n );\n }\n\n return (\n <Box\n position=\"relative\"\n display=\"inline-block\"\n overflow=\"hidden\"\n rounded={rounded}\n className={clsx(styles.container, className)}\n style={style}\n >\n {isLoading && (\n <Skeleton\n w=\"100%\"\n h=\"100%\"\n rounded={rounded}\n className={styles.skeleton}\n />\n )}\n <img\n src={currentSrc}\n alt={alt}\n onLoad={handleLoad}\n onError={handleError}\n className={clsx(\n styles.image,\n styles[objectFit],\n isLoading && styles.hidden\n )}\n />\n </Box>\n );\n}\n","import { type ReactNode } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./list.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type ListStyleType = \"none\" | \"disc\" | \"decimal\";\n\nexport type ListProps = {\n /** List element type */\n as?: \"ul\" | \"ol\";\n /** List style type */\n styleType?: ListStyleType;\n /** Spacing between items (gap multiplier) */\n spacing?: number;\n /** Additional class name */\n className?: string;\n /** List items */\n children?: ReactNode;\n};\n\nexport type ListItemProps = {\n /** Additional class name */\n className?: string;\n /** Item content */\n children?: ReactNode;\n};\n\nexport type ListIconProps = {\n /** Additional class name */\n className?: string;\n /** Icon content */\n children?: ReactNode;\n};\n\n// ============================================================================\n// Components\n// ============================================================================\n\n/**\n * List - Semantic list container\n *\n * A list component supporting:\n * - Unordered (ul) or ordered (ol) lists\n * - Various list style types\n * - Configurable spacing between items\n */\nexport function List({\n as = \"ul\",\n styleType,\n spacing = 0,\n className,\n children,\n}: ListProps) {\n const defaultStyleType = as === \"ol\" ? \"decimal\" : \"none\";\n const actualStyleType = styleType ?? defaultStyleType;\n\n return (\n <Box\n as={as}\n display=\"flex\"\n flexDirection=\"column\"\n gap={spacing}\n className={clsx(styles.list, styles[actualStyleType], className)}\n >\n {children}\n </Box>\n );\n}\n\n/**\n * ListItem - Individual list item\n *\n * Use inside List for semantic list items.\n */\nexport function ListItem({ className, children }: ListItemProps) {\n return (\n <Box as=\"li\" display=\"flex\" alignItems=\"center\" className={clsx(styles.listItem, className)}>\n {children}\n </Box>\n );\n}\n\n/**\n * ListIcon - Icon prefix for list items\n *\n * Use inside ListItem to add an icon before content.\n */\nexport function ListIcon({ className, children }: ListIconProps) {\n return (\n <Box\n as=\"span\"\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n flexShrink={0}\n mr={2}\n color=\"primary\"\n className={clsx(styles.listIcon, className)}\n >\n {children}\n </Box>\n );\n}\n","import { type ElementType, type ReactNode } from \"react\";\nimport clsx from \"clsx\";\nimport { type Polymorphic } from \"@/types/Polymorphic\";\nimport { Box, type BoxOwnProps } from \"@/components/Box/Box\";\nimport styles from \"./link.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type LinkVariant = \"default\" | \"underline\" | \"subtle\";\n\nexport type LinkOwnProps = Omit<BoxOwnProps, \"as\"> & {\n /** Visual variant */\n variant?: LinkVariant;\n /** External link (opens in new tab) */\n external?: boolean;\n /** Link content */\n children?: ReactNode;\n};\n\nexport type LinkProps<T extends ElementType = \"a\"> = Polymorphic<T, LinkOwnProps>;\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Link - Styled anchor element\n *\n * A polymorphic link component that provides:\n * - Default element: <a>\n * - Variants: default (underline on hover), underline (always), subtle (inherits color)\n * - External link support with target=\"_blank\"\n * - Router support via as prop\n */\nexport function Link<T extends ElementType = \"a\">({\n as,\n variant = \"default\",\n external = false,\n children,\n className,\n ...rest\n}: LinkProps<T>) {\n const Component = as || \"a\";\n\n const externalProps = external\n ? {\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n }\n : {};\n\n return (\n // @ts-expect-error - Polymorphic component type forwarding\n <Box\n as={Component}\n color={variant === \"subtle\" ? undefined : \"primary\"}\n cursor=\"pointer\"\n className={clsx(styles.link, styles[variant], className)}\n {...externalProps}\n {...rest}\n >\n {children}\n </Box>\n );\n}\n","import { type ReactNode, createContext, useContext, useState } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./tabs.module.css\";\n\n// ============================================================================\n// Context\n// ============================================================================\n\ntype TabsContextValue = {\n activeIndex: number;\n setActiveIndex: (index: number) => void;\n};\n\nconst TabsContext = createContext<TabsContextValue | null>(null);\n\nfunction useTabsContext() {\n const context = useContext(TabsContext);\n if (!context) throw new Error(\"Tab components must be used within Tabs\");\n return context;\n}\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type TabsVariant = \"line\" | \"enclosed\";\n\nexport type TabsProps = {\n /** Default active tab index */\n defaultIndex?: number;\n /** Controlled active index */\n index?: number;\n /** Callback when tab changes */\n onChange?: (index: number) => void;\n /** Visual variant */\n variant?: TabsVariant;\n /** Additional class name */\n className?: string;\n /** Tab components */\n children?: ReactNode;\n};\n\nexport type TabListProps = {\n /** Additional class name */\n className?: string;\n /** Tab buttons */\n children?: ReactNode;\n};\n\nexport type TabProps = {\n /** Tab index (set automatically or manually) */\n index?: number;\n /** Disabled state */\n disabled?: boolean;\n /** Additional class name */\n className?: string;\n /** Tab label */\n children?: ReactNode;\n};\n\nexport type TabPanelProps = {\n /** Panel index (set automatically or manually) */\n index?: number;\n /** Additional class name */\n className?: string;\n /** Panel content */\n children?: ReactNode;\n};\n\n// ============================================================================\n// Components\n// ============================================================================\n\n/**\n * Tabs - Tab container with state management\n *\n * Provides context for Tab and TabPanel components.\n * Supports controlled (index prop) and uncontrolled (defaultIndex) modes.\n */\nexport function Tabs({\n defaultIndex = 0,\n index,\n onChange,\n variant = \"line\",\n className,\n children,\n}: TabsProps) {\n const [internalIndex, setInternalIndex] = useState(defaultIndex);\n const activeIndex = index ?? internalIndex;\n\n const setActiveIndex = (newIndex: number) => {\n if (index === undefined) setInternalIndex(newIndex);\n onChange?.(newIndex);\n };\n\n return (\n <TabsContext.Provider value={{ activeIndex, setActiveIndex }}>\n <Box className={clsx(styles.tabs, styles[variant], className)}>\n {children}\n </Box>\n </TabsContext.Provider>\n );\n}\n\n/**\n * TabList - Horizontal container for Tab buttons\n */\nexport function TabList({ className, children }: TabListProps) {\n return (\n <Box\n as=\"div\"\n role=\"tablist\"\n display=\"flex\"\n gap={0}\n borderBottom=\"thin\"\n borderColor=\"border\"\n className={clsx(styles.tabList, className)}\n >\n {children}\n </Box>\n );\n}\n\n/**\n * Tab - Individual tab button\n */\nexport function Tab({\n index = 0,\n disabled = false,\n className,\n children,\n}: TabProps) {\n const { activeIndex, setActiveIndex } = useTabsContext();\n const isActive = activeIndex === index;\n\n return (\n <Box\n as=\"button\"\n type=\"button\"\n role=\"tab\"\n aria-selected={isActive}\n aria-disabled={disabled}\n disabled={disabled}\n onClick={() => !disabled && setActiveIndex(index)}\n py={2}\n px={4}\n fontSize=\"sm\"\n fontWeight={isActive ? \"medium\" : \"normal\"}\n color={isActive ? \"primary\" : \"foreground-muted\"}\n bg=\"transparent\"\n border=\"none\"\n cursor={disabled ? \"not-allowed\" : \"pointer\"}\n opacity={disabled ? \"faint\" : undefined}\n className={clsx(styles.tab, isActive && styles.active, className)}\n >\n {children}\n </Box>\n );\n}\n\n/**\n * TabPanel - Content panel for a tab\n *\n * Only renders when its index matches the active tab.\n */\nexport function TabPanel({ index = 0, className, children }: TabPanelProps) {\n const { activeIndex } = useTabsContext();\n\n if (activeIndex !== index) return null;\n\n return (\n <Box role=\"tabpanel\" p={4} className={clsx(styles.tabPanel, className)}>\n {children}\n </Box>\n );\n}\n","import {\n type ReactNode,\n Children,\n isValidElement,\n cloneElement,\n} from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./breadcrumb.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type BreadcrumbProps = {\n /** Separator between items */\n separator?: ReactNode;\n /** Additional class name */\n className?: string;\n /** Breadcrumb items */\n children?: ReactNode;\n};\n\nexport type BreadcrumbItemProps = {\n /** Link href (if not current page) */\n href?: string;\n /** Is current page (last item) - set automatically */\n isCurrentPage?: boolean;\n /** Additional class name */\n className?: string;\n /** Item content */\n children?: ReactNode;\n};\n\n// ============================================================================\n// Components\n// ============================================================================\n\n/**\n * Breadcrumb - Navigation trail container\n *\n * Renders BreadcrumbItem children with separators between them.\n * Automatically marks the last item as current page.\n */\nexport function Breadcrumb({\n separator = \"/\",\n className,\n children,\n}: BreadcrumbProps) {\n const items = Children.toArray(children);\n const lastIndex = items.length - 1;\n\n return (\n <Box\n as=\"nav\"\n aria-label=\"Breadcrumb\"\n className={clsx(styles.breadcrumb, className)}\n >\n <Box as=\"ol\" display=\"flex\" alignItems=\"center\" gap={2} m={0} p={0}>\n {items.map((child, index) => {\n const isLast = index === lastIndex;\n\n return (\n <Box as=\"li\" key={index} display=\"flex\" alignItems=\"center\" gap={2}>\n {isValidElement(child)\n ? cloneElement(\n child as React.ReactElement<BreadcrumbItemProps>,\n {\n isCurrentPage: isLast,\n }\n )\n : child}\n {!isLast && (\n <Box\n as=\"span\"\n color=\"foreground-muted\"\n aria-hidden=\"true\"\n className={styles.separator}\n >\n {separator}\n </Box>\n )}\n </Box>\n );\n })}\n </Box>\n </Box>\n );\n}\n\n/**\n * BreadcrumbItem - Individual breadcrumb link or text\n *\n * Renders as a link if href is provided, otherwise as text.\n * The last item is automatically marked as current page.\n */\nexport function BreadcrumbItem({\n href,\n isCurrentPage = false,\n className,\n children,\n}: BreadcrumbItemProps) {\n if (isCurrentPage || !href) {\n return (\n <Box\n as=\"span\"\n color={isCurrentPage ? \"foreground\" : \"foreground-muted\"}\n fontSize=\"sm\"\n aria-current={isCurrentPage ? \"page\" : undefined}\n className={clsx(styles.item, styles.current, className)}\n >\n {children}\n </Box>\n );\n }\n\n return (\n <Box\n as=\"a\"\n href={href}\n color=\"foreground-muted\"\n fontSize=\"sm\"\n className={clsx(styles.item, styles.link, className)}\n >\n {children}\n </Box>\n );\n}\n","import {\n type ReactNode,\n createContext,\n useContext,\n useState,\n useRef,\n useEffect,\n} from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport { Button, type ButtonProps } from \"@/components/Button\";\nimport styles from \"./menu.module.css\";\n\n// ============================================================================\n// Context\n// ============================================================================\n\ntype MenuContextValue = {\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n buttonRef: React.RefObject<HTMLButtonElement | null>;\n};\n\nconst MenuContext = createContext<MenuContextValue | null>(null);\n\nfunction useMenuContext() {\n const context = useContext(MenuContext);\n if (!context) throw new Error(\"Menu components must be used within Menu\");\n return context;\n}\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type MenuProps = {\n /** Controlled open state */\n isOpen?: boolean;\n /** Callback when menu opens */\n onOpen?: () => void;\n /** Callback when menu closes */\n onClose?: () => void;\n /** Additional class name */\n className?: string;\n /** Menu components */\n children?: ReactNode;\n};\n\nexport type MenuButtonProps = Omit<ButtonProps<\"button\">, \"as\"> & {\n /** Button content */\n children?: ReactNode;\n};\n\nexport type MenuListProps = {\n /** Additional class name */\n className?: string;\n /** Menu items */\n children?: ReactNode;\n};\n\nexport type MenuItemProps = {\n /** Click handler */\n onClick?: () => void;\n /** Disabled state */\n disabled?: boolean;\n /** Additional class name */\n className?: string;\n /** Item content */\n children?: ReactNode;\n};\n\n// ============================================================================\n// Components\n// ============================================================================\n\n/**\n * Menu - Dropdown menu container\n *\n * Provides context for MenuButton, MenuList, and MenuItem.\n * Handles open/close state and click-outside behavior.\n * Supports controlled mode via isOpen/onOpen/onClose.\n */\nexport function Menu({\n isOpen: controlledIsOpen,\n onOpen,\n onClose,\n className,\n children,\n}: MenuProps) {\n const [internalIsOpen, setInternalIsOpen] = useState(false);\n const isControlled = controlledIsOpen !== undefined;\n const isOpen = isControlled ? controlledIsOpen : internalIsOpen;\n\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n\n const setOpen = (open: boolean) => {\n if (!isControlled) {\n setInternalIsOpen(open);\n }\n if (open) {\n onOpen?.();\n } else {\n onClose?.();\n }\n };\n\n // Close on outside click\n useEffect(() => {\n if (!isOpen) return;\n\n const handleClick = (e: MouseEvent) => {\n if (buttonRef.current?.contains(e.target as Node)) return;\n setOpen(false);\n };\n\n document.addEventListener(\"click\", handleClick);\n return () => document.removeEventListener(\"click\", handleClick);\n }, [isOpen]);\n\n // Close on Escape\n useEffect(() => {\n if (!isOpen) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") setOpen(false);\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\n }, [isOpen]);\n\n return (\n <MenuContext.Provider value={{ isOpen, setIsOpen: setOpen, buttonRef }}>\n <Box\n position=\"relative\"\n display=\"inline-block\"\n className={clsx(styles.menu, className)}\n >\n {children}\n </Box>\n </MenuContext.Provider>\n );\n}\n\n/**\n * MenuButton - Trigger button for the menu\n *\n * Renders as a Button component with dropdown indicators.\n */\nexport function MenuButton({ children, className, ...rest }: MenuButtonProps) {\n const { isOpen, setIsOpen, buttonRef } = useMenuContext();\n\n return (\n <Button\n ref={buttonRef}\n aria-haspopup=\"menu\"\n aria-expanded={isOpen}\n onClick={() => setIsOpen(!isOpen)}\n className={className}\n {...rest}\n >\n {children}\n </Button>\n );\n}\n\n/**\n * MenuList - Dropdown container for menu items\n *\n * Only renders when menu is open.\n */\nexport function MenuList({ className, children }: MenuListProps) {\n const { isOpen } = useMenuContext();\n\n if (!isOpen) return null;\n\n return (\n <Box\n role=\"menu\"\n position=\"absolute\"\n top=\"100%\"\n left={0}\n mt={1}\n py={1}\n minW=\"160px\"\n bg=\"surface\"\n border=\"thin\"\n borderColor=\"border\"\n rounded=\"md\"\n shadow=\"md\"\n zIndex=\"dropdown\"\n className={clsx(styles.menuList, className)}\n >\n {children}\n </Box>\n );\n}\n\n/**\n * MenuItem - Individual menu item\n *\n * Closes the menu when clicked (unless disabled).\n */\nexport function MenuItem({\n onClick,\n disabled = false,\n className,\n children,\n}: MenuItemProps) {\n const { setIsOpen } = useMenuContext();\n\n const handleClick = () => {\n if (disabled) return;\n onClick?.();\n setIsOpen(false);\n };\n\n return (\n <Box\n as=\"button\"\n type=\"button\"\n role=\"menuitem\"\n onClick={handleClick}\n disabled={disabled}\n display=\"flex\"\n alignItems=\"center\"\n w=\"100%\"\n py={2}\n px={3}\n fontSize=\"sm\"\n color={disabled ? \"foreground-muted\" : \"foreground\"}\n bg=\"transparent\"\n border=\"none\"\n cursor={disabled ? \"not-allowed\" : \"pointer\"}\n textAlign=\"left\"\n className={clsx(styles.menuItem, disabled && styles.disabled, className)}\n >\n {children}\n </Box>\n );\n}\n","import clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport { Button } from \"@/components/Button\";\nimport { HStack } from \"@/components/HStack\";\nimport styles from \"./pagination.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type PaginationProps = {\n /** Current page (1-indexed) */\n page: number;\n /** Total number of pages */\n totalPages: number;\n /** Callback when page changes */\n onPageChange: (page: number) => void;\n /** Number of sibling pages to show */\n siblings?: number;\n /** Show first/last page buttons */\n showEdges?: boolean;\n /** Additional class name */\n className?: string;\n};\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\nfunction range(start: number, end: number): number[] {\n return Array.from({ length: end - start + 1 }, (_, i) => start + i);\n}\n\nfunction getPaginationRange(\n page: number,\n totalPages: number,\n siblings: number\n): (number | \"ellipsis\")[] {\n const totalNumbers = siblings * 2 + 3; // siblings on each side + current + 2 edges\n\n if (totalPages <= totalNumbers + 2) {\n return range(1, totalPages);\n }\n\n const leftSiblingIndex = Math.max(page - siblings, 1);\n const rightSiblingIndex = Math.min(page + siblings, totalPages);\n\n const showLeftEllipsis = leftSiblingIndex > 2;\n const showRightEllipsis = rightSiblingIndex < totalPages - 1;\n\n if (!showLeftEllipsis && showRightEllipsis) {\n const leftRange = range(1, 3 + siblings * 2);\n return [...leftRange, \"ellipsis\", totalPages];\n }\n\n if (showLeftEllipsis && !showRightEllipsis) {\n const rightRange = range(totalPages - (2 + siblings * 2), totalPages);\n return [1, \"ellipsis\", ...rightRange];\n }\n\n const middleRange = range(leftSiblingIndex, rightSiblingIndex);\n return [1, \"ellipsis\", ...middleRange, \"ellipsis\", totalPages];\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Pagination - Page navigation component\n *\n * A pagination component that provides:\n * - Current page indicator\n * - Previous/next buttons\n * - Optional first/last page buttons\n * - Ellipsis for large page ranges\n * - Sibling page configuration\n */\nexport function Pagination({\n page,\n totalPages,\n onPageChange,\n siblings = 1,\n showEdges = true,\n className,\n}: PaginationProps) {\n const pages = getPaginationRange(page, totalPages, siblings);\n\n const canGoPrev = page > 1;\n const canGoNext = page < totalPages;\n\n return (\n <Box\n as=\"nav\"\n aria-label=\"Pagination\"\n className={clsx(styles.pagination, className)}\n >\n <HStack gap={1}>\n {showEdges && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n disabled={!canGoPrev}\n onClick={() => onPageChange(1)}\n aria-label=\"First page\"\n >\n ««\n </Button>\n )}\n\n <Button\n variant=\"ghost\"\n size=\"sm\"\n disabled={!canGoPrev}\n onClick={() => onPageChange(page - 1)}\n aria-label=\"Previous page\"\n >\n «\n </Button>\n\n {pages.map((p, index) =>\n p === \"ellipsis\" ? (\n <Box\n key={`ellipsis-${index}`}\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n px={2}\n color=\"foreground-muted\"\n fontSize=\"sm\"\n >\n …\n </Box>\n ) : (\n <Button\n key={p}\n variant={p === page ? \"solid\" : \"ghost\"}\n size=\"sm\"\n onClick={() => onPageChange(p)}\n aria-label={`Page ${p}`}\n aria-current={p === page ? \"page\" : undefined}\n >\n {p}\n </Button>\n )\n )}\n\n <Button\n variant=\"ghost\"\n size=\"sm\"\n disabled={!canGoNext}\n onClick={() => onPageChange(page + 1)}\n aria-label=\"Next page\"\n >\n »\n </Button>\n\n {showEdges && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n disabled={!canGoNext}\n onClick={() => onPageChange(totalPages)}\n aria-label=\"Last page\"\n >\n »»\n </Button>\n )}\n </HStack>\n </Box>\n );\n}\n","import { type ReactNode, useEffect, useRef, useCallback } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./modal.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type ModalSize = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nexport type ModalProps = {\n /** Whether modal is open */\n isOpen: boolean;\n /** Callback when modal should close */\n onClose: () => void;\n /** Modal size */\n size?: ModalSize;\n /** Close on backdrop click */\n closeOnOverlayClick?: boolean;\n /** Close on Escape key */\n closeOnEsc?: boolean;\n /** Additional class name */\n className?: string;\n /** Modal content */\n children?: ReactNode;\n};\n\nexport type ModalHeaderProps = {\n /** Additional class name */\n className?: string;\n /** Header content */\n children?: ReactNode;\n};\n\nexport type ModalBodyProps = {\n /** Additional class name */\n className?: string;\n /** Body content */\n children?: ReactNode;\n};\n\nexport type ModalFooterProps = {\n /** Additional class name */\n className?: string;\n /** Footer content */\n children?: ReactNode;\n};\n\n// ============================================================================\n// Size configuration\n// ============================================================================\n\nconst sizeConfig = {\n sm: \"400px\",\n md: \"500px\",\n lg: \"700px\",\n xl: \"900px\",\n full: \"100%\",\n} as const;\n\n// ============================================================================\n// Components\n// ============================================================================\n\n/**\n * Modal - Dialog overlay component\n *\n * A modal dialog that:\n * - Renders via portal to document.body\n * - Traps focus when open\n * - Prevents body scroll when open\n * - Closes on backdrop click and Escape key\n * - Returns focus after closing\n */\nexport function Modal({\n isOpen,\n onClose,\n size = \"md\",\n closeOnOverlayClick = true,\n closeOnEsc = true,\n className,\n children,\n}: ModalProps) {\n const modalRef = useRef<HTMLDivElement>(null);\n const previousFocusRef = useRef<HTMLElement | null>(null);\n\n // Store previous focus and focus modal when open\n useEffect(() => {\n if (isOpen) {\n previousFocusRef.current = document.activeElement as HTMLElement;\n modalRef.current?.focus();\n } else if (previousFocusRef.current) {\n previousFocusRef.current.focus();\n }\n }, [isOpen]);\n\n // Handle Escape key\n useEffect(() => {\n if (!isOpen || !closeOnEsc) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") onClose();\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\n }, [isOpen, closeOnEsc, onClose]);\n\n // Prevent body scroll when modal is open\n useEffect(() => {\n if (isOpen) {\n document.body.style.overflow = \"hidden\";\n } else {\n document.body.style.overflow = \"\";\n }\n return () => {\n document.body.style.overflow = \"\";\n };\n }, [isOpen]);\n\n const handleOverlayClick = useCallback(\n (e: React.MouseEvent) => {\n if (closeOnOverlayClick && e.target === e.currentTarget) {\n onClose();\n }\n },\n [closeOnOverlayClick, onClose]\n );\n\n if (!isOpen) return null;\n\n return createPortal(\n <Box\n className={clsx(styles.overlay, className)}\n onClick={handleOverlayClick}\n role=\"dialog\"\n aria-modal=\"true\"\n >\n <Box\n ref={modalRef}\n tabIndex={-1}\n bg=\"surface\"\n rounded={size === \"full\" ? \"none\" : \"lg\"}\n shadow=\"lg\"\n maxH={size === \"full\" ? \"100vh\" : \"90vh\"}\n overflow=\"auto\"\n className={styles.modal}\n style={{\n width: sizeConfig[size],\n maxWidth: size === \"full\" ? \"100%\" : \"calc(100% - 2rem)\",\n }}\n >\n {children}\n </Box>\n </Box>,\n document.body\n );\n}\n\n/**\n * ModalHeader - Header section for modal\n */\nexport function ModalHeader({ className, children }: ModalHeaderProps) {\n return (\n <Box\n px={6}\n py={4}\n borderBottom=\"thin\"\n borderColor=\"border\"\n className={clsx(styles.header, className)}\n >\n {children}\n </Box>\n );\n}\n\n/**\n * ModalBody - Body section for modal\n */\nexport function ModalBody({ className, children }: ModalBodyProps) {\n return (\n <Box px={6} py={4} className={clsx(styles.body, className)}>\n {children}\n </Box>\n );\n}\n\n/**\n * ModalFooter - Footer section for modal\n */\nexport function ModalFooter({ className, children }: ModalFooterProps) {\n return (\n <Box\n px={6}\n py={4}\n borderTop=\"thin\"\n borderColor=\"border\"\n display=\"flex\"\n justifyContent=\"end\"\n gap={2}\n className={clsx(styles.footer, className)}\n >\n {children}\n </Box>\n );\n}\n","import { type ReactNode, useState, useRef, useEffect } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./tooltip.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type TooltipPlacement = \"top\" | \"bottom\" | \"left\" | \"right\";\n\nexport type TooltipProps = {\n /** Tooltip content */\n label: ReactNode;\n /** Placement of tooltip */\n placement?: TooltipPlacement;\n /** Delay before showing (ms) */\n openDelay?: number;\n /** Delay before hiding (ms) */\n closeDelay?: number;\n /** Whether tooltip is disabled */\n disabled?: boolean;\n /** Controlled open state */\n isOpen?: boolean;\n /** Callback when tooltip opens */\n onOpen?: () => void;\n /** Callback when tooltip closes */\n onClose?: () => void;\n /** Additional class name */\n className?: string;\n /** Trigger element */\n children: ReactNode;\n};\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Tooltip - Hover-triggered information overlay\n *\n * A tooltip component that:\n * - Shows on hover and focus\n * - Positions relative to trigger element\n * - Supports configurable delays\n * - Supports controlled mode via isOpen/onOpen/onClose\n * - Renders via portal\n */\nexport function Tooltip({\n label,\n placement = \"top\",\n openDelay = 0,\n closeDelay = 0,\n disabled = false,\n isOpen: controlledIsOpen,\n onOpen,\n onClose,\n className,\n children,\n}: TooltipProps) {\n const [internalIsOpen, setInternalIsOpen] = useState(false);\n const isControlled = controlledIsOpen !== undefined;\n const isOpen = isControlled ? controlledIsOpen : internalIsOpen;\n\n const [position, setPosition] = useState({ top: 0, left: 0 });\n const triggerRef = useRef<HTMLElement>(null);\n const tooltipRef = useRef<HTMLDivElement>(null);\n const openTimeoutRef = useRef<number | null>(null);\n const closeTimeoutRef = useRef<number | null>(null);\n\n const updatePosition = () => {\n if (!triggerRef.current || !tooltipRef.current) return;\n\n const triggerRect = triggerRef.current.getBoundingClientRect();\n const tooltipRect = tooltipRef.current.getBoundingClientRect();\n const gap = 8;\n\n let top = 0;\n let left = 0;\n\n switch (placement) {\n case \"top\":\n top = triggerRect.top - tooltipRect.height - gap;\n left = triggerRect.left + (triggerRect.width - tooltipRect.width) / 2;\n break;\n case \"bottom\":\n top = triggerRect.bottom + gap;\n left = triggerRect.left + (triggerRect.width - tooltipRect.width) / 2;\n break;\n case \"left\":\n top = triggerRect.top + (triggerRect.height - tooltipRect.height) / 2;\n left = triggerRect.left - tooltipRect.width - gap;\n break;\n case \"right\":\n top = triggerRect.top + (triggerRect.height - tooltipRect.height) / 2;\n left = triggerRect.right + gap;\n break;\n }\n\n setPosition({ top: top + window.scrollY, left: left + window.scrollX });\n };\n\n useEffect(() => {\n if (isOpen) updatePosition();\n }, [isOpen, placement]);\n\n const setOpen = (open: boolean) => {\n if (!isControlled) {\n setInternalIsOpen(open);\n }\n if (open) {\n onOpen?.();\n } else {\n onClose?.();\n }\n };\n\n const handleOpen = () => {\n if (disabled) return;\n if (closeTimeoutRef.current) clearTimeout(closeTimeoutRef.current);\n\n if (openDelay > 0) {\n openTimeoutRef.current = window.setTimeout(() => setOpen(true), openDelay);\n } else {\n setOpen(true);\n }\n };\n\n const handleClose = () => {\n if (openTimeoutRef.current) clearTimeout(openTimeoutRef.current);\n\n if (closeDelay > 0) {\n closeTimeoutRef.current = window.setTimeout(\n () => setOpen(false),\n closeDelay\n );\n } else {\n setOpen(false);\n }\n };\n\n useEffect(() => {\n return () => {\n if (openTimeoutRef.current) clearTimeout(openTimeoutRef.current);\n if (closeTimeoutRef.current) clearTimeout(closeTimeoutRef.current);\n };\n }, []);\n\n return (\n <>\n <Box\n as=\"span\"\n ref={triggerRef}\n display=\"inline-block\"\n onMouseEnter={handleOpen}\n onMouseLeave={handleClose}\n onFocus={handleOpen}\n onBlur={handleClose}\n >\n {children}\n </Box>\n {isOpen &&\n createPortal(\n <Box\n ref={tooltipRef}\n position=\"absolute\"\n px={2}\n py={1}\n bg=\"foreground\"\n color=\"foreground-inverted\"\n fontSize=\"sm\"\n rounded=\"sm\"\n shadow=\"md\"\n zIndex=\"tooltip\"\n className={clsx(styles.tooltip, styles[placement], className)}\n style={{ top: position.top, left: position.left }}\n role=\"tooltip\"\n >\n {label}\n </Box>,\n document.body\n )}\n </>\n );\n}\n","import { type ReactNode, useState, useRef, useEffect } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./popover.module.css\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type PopoverPlacement = \"top\" | \"bottom\" | \"left\" | \"right\";\n\nexport type PopoverProps = {\n /** Popover content */\n content: ReactNode;\n /** Placement of popover */\n placement?: PopoverPlacement;\n /** Close on outside click */\n closeOnBlur?: boolean;\n /** Controlled open state */\n isOpen?: boolean;\n /** Callback when popover opens */\n onOpen?: () => void;\n /** Callback when popover closes */\n onClose?: () => void;\n /** Additional class name */\n className?: string;\n /** Trigger element */\n children: ReactNode;\n};\n\nexport type PopoverHeaderProps = {\n /** Additional class name */\n className?: string;\n /** Header content */\n children?: ReactNode;\n};\n\nexport type PopoverBodyProps = {\n /** Additional class name */\n className?: string;\n /** Body content */\n children?: ReactNode;\n};\n\n// ============================================================================\n// Components\n// ============================================================================\n\n/**\n * Popover - Click-triggered overlay with positioning\n *\n * A popover component that:\n * - Toggles on click\n * - Positions relative to trigger\n * - Closes on outside click and Escape\n * - Supports controlled mode via isOpen/onOpen/onClose\n * - Renders via portal\n */\nexport function Popover({\n content,\n placement = \"bottom\",\n closeOnBlur = true,\n isOpen: controlledIsOpen,\n onOpen,\n onClose,\n className,\n children,\n}: PopoverProps) {\n const [internalIsOpen, setInternalIsOpen] = useState(false);\n const isControlled = controlledIsOpen !== undefined;\n const isOpen = isControlled ? controlledIsOpen : internalIsOpen;\n\n const [position, setPosition] = useState({ top: 0, left: 0 });\n const triggerRef = useRef<HTMLElement>(null);\n const popoverRef = useRef<HTMLDivElement>(null);\n\n const setOpen = (open: boolean) => {\n if (!isControlled) {\n setInternalIsOpen(open);\n }\n if (open) {\n onOpen?.();\n } else {\n onClose?.();\n }\n };\n\n const updatePosition = () => {\n if (!triggerRef.current || !popoverRef.current) return;\n\n const triggerRect = triggerRef.current.getBoundingClientRect();\n const popoverRect = popoverRef.current.getBoundingClientRect();\n const gap = 8;\n\n let top = 0;\n let left = 0;\n\n switch (placement) {\n case \"top\":\n top = triggerRect.top - popoverRect.height - gap;\n left = triggerRect.left + (triggerRect.width - popoverRect.width) / 2;\n break;\n case \"bottom\":\n top = triggerRect.bottom + gap;\n left = triggerRect.left + (triggerRect.width - popoverRect.width) / 2;\n break;\n case \"left\":\n top = triggerRect.top + (triggerRect.height - popoverRect.height) / 2;\n left = triggerRect.left - popoverRect.width - gap;\n break;\n case \"right\":\n top = triggerRect.top + (triggerRect.height - popoverRect.height) / 2;\n left = triggerRect.right + gap;\n break;\n }\n\n setPosition({ top: top + window.scrollY, left: left + window.scrollX });\n };\n\n useEffect(() => {\n if (isOpen) updatePosition();\n }, [isOpen, placement]);\n\n // Close on outside click\n useEffect(() => {\n if (!isOpen || !closeOnBlur) return;\n\n const handleClick = (e: MouseEvent) => {\n if (\n triggerRef.current?.contains(e.target as Node) ||\n popoverRef.current?.contains(e.target as Node)\n )\n return;\n setOpen(false);\n };\n\n document.addEventListener(\"click\", handleClick);\n return () => document.removeEventListener(\"click\", handleClick);\n }, [isOpen, closeOnBlur]);\n\n // Close on Escape\n useEffect(() => {\n if (!isOpen) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") setOpen(false);\n };\n\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\n }, [isOpen]);\n\n const handleTriggerClick = () => {\n setOpen(!isOpen);\n };\n\n return (\n <>\n <Box\n as=\"span\"\n ref={triggerRef}\n display=\"inline-block\"\n onClick={handleTriggerClick}\n aria-expanded={isOpen}\n aria-haspopup=\"dialog\"\n cursor=\"pointer\"\n >\n {children}\n </Box>\n {isOpen &&\n createPortal(\n <Box\n ref={popoverRef}\n position=\"absolute\"\n bg=\"surface\"\n border=\"thin\"\n borderColor=\"border\"\n rounded=\"md\"\n shadow=\"lg\"\n zIndex=\"dropdown\"\n minW=\"200px\"\n className={clsx(styles.popover, className)}\n style={{ top: position.top, left: position.left }}\n role=\"dialog\"\n >\n {content}\n </Box>,\n document.body\n )}\n </>\n );\n}\n\n/**\n * PopoverHeader - Header section for popover\n */\nexport function PopoverHeader({ className, children }: PopoverHeaderProps) {\n return (\n <Box\n px={4}\n py={3}\n borderBottom=\"thin\"\n borderColor=\"border\"\n fontWeight=\"medium\"\n className={clsx(styles.header, className)}\n >\n {children}\n </Box>\n );\n}\n\n/**\n * PopoverBody - Body section for popover\n */\nexport function PopoverBody({ className, children }: PopoverBodyProps) {\n return (\n <Box px={4} py={3} className={clsx(styles.body, className)}>\n {children}\n </Box>\n );\n}\n","import { type ReactNode, createContext, useContext, useState } from \"react\";\nimport clsx from \"clsx\";\nimport { Box } from \"@/components/Box/Box\";\nimport styles from \"./accordion.module.css\";\n\n// ============================================================================\n// Context\n// ============================================================================\n\ntype AccordionContextValue = {\n expandedIndex: number | number[] | null;\n toggleIndex: (index: number) => void;\n allowMultiple: boolean;\n};\n\nconst AccordionContext = createContext<AccordionContextValue | null>(null);\n\nfunction useAccordionContext() {\n const context = useContext(AccordionContext);\n if (!context)\n throw new Error(\"AccordionItem must be used within Accordion\");\n return context;\n}\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type AccordionProps = {\n /** Default expanded index(es) */\n defaultIndex?: number | number[];\n /** Allow multiple items expanded */\n allowMultiple?: boolean;\n /** Additional class name */\n className?: string;\n /** Accordion items */\n children?: ReactNode;\n};\n\nexport type AccordionItemProps = {\n /** Item index (set manually) */\n index: number;\n /** Item title */\n title: ReactNode;\n /** Whether disabled */\n disabled?: boolean;\n /** Additional class name */\n className?: string;\n /** Item content */\n children?: ReactNode;\n};\n\n// ============================================================================\n// Components\n// ============================================================================\n\n/**\n * Accordion - Collapsible sections container\n *\n * An accordion component that:\n * - Supports single or multiple expanded items\n * - Uses context for state management\n * - Animated expand/collapse\n */\nexport function Accordion({\n defaultIndex,\n allowMultiple = false,\n className,\n children,\n}: AccordionProps) {\n const [expandedIndex, setExpandedIndex] = useState<\n number | number[] | null\n >(defaultIndex ?? (allowMultiple ? [] : null));\n\n const toggleIndex = (index: number) => {\n if (allowMultiple) {\n const current = (expandedIndex as number[]) || [];\n const newExpanded = current.includes(index)\n ? current.filter((i) => i !== index)\n : [...current, index];\n setExpandedIndex(newExpanded);\n } else {\n setExpandedIndex(expandedIndex === index ? null : index);\n }\n };\n\n return (\n <AccordionContext.Provider\n value={{ expandedIndex, toggleIndex, allowMultiple }}\n >\n <Box\n border=\"thin\"\n borderColor=\"border\"\n rounded=\"md\"\n overflow=\"hidden\"\n className={clsx(styles.accordion, className)}\n >\n {children}\n </Box>\n </AccordionContext.Provider>\n );\n}\n\n/**\n * AccordionItem - Individual collapsible section\n */\nexport function AccordionItem({\n index,\n title,\n disabled = false,\n className,\n children,\n}: AccordionItemProps) {\n const { expandedIndex, toggleIndex, allowMultiple } = useAccordionContext();\n\n const isExpanded = allowMultiple\n ? ((expandedIndex as number[]) || []).includes(index)\n : expandedIndex === index;\n\n return (\n <Box\n className={clsx(\n styles.item,\n isExpanded && styles.expanded,\n disabled && styles.disabled,\n className\n )}\n >\n <Box\n as=\"button\"\n type=\"button\"\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n w=\"100%\"\n p={4}\n bg=\"transparent\"\n border=\"none\"\n borderBottom={isExpanded ? \"thin\" : \"none\"}\n borderColor=\"border\"\n cursor={disabled ? \"not-allowed\" : \"pointer\"}\n opacity={disabled ? \"faint\" : undefined}\n onClick={() => !disabled && toggleIndex(index)}\n aria-expanded={isExpanded}\n aria-disabled={disabled}\n className={styles.button}\n >\n <Box fontWeight=\"medium\">{title}</Box>\n <Box\n as=\"span\"\n className={clsx(styles.icon, isExpanded && styles.rotated)}\n >\n ▾\n </Box>\n </Box>\n {isExpanded && (\n <Box p={4} className={styles.content}>\n {children}\n </Box>\n )}\n </Box>\n );\n}\n","import \"./styles/styles.css\";\n// Must be imported dynamically to split CSS into multiple files\nimport(\"./styles/fonts.css\");\n\n// Type utilities\nexport type { Polymorphic } from \"./types/Polymorphic\";\nexport type {\n ResponsiveValue,\n ResponsiveObject,\n FullResponsiveObject,\n} from \"./utils/breakpoints\";\n\nexport { Box, type BoxOwnProps, type BoxProps } from \"./components/Box/Box\";\nexport { Text } from \"./components/Text\";\nexport { Heading } from \"./components/Heading\";\nexport {\n Button,\n type ButtonColorScheme,\n type ButtonVariant,\n type ButtonSize,\n type ButtonProps,\n} from \"./components/Button\";\nexport { Spinner } from \"./components/Spinner\";\nexport { Stack, type StackProps, type StackOwnProps } from \"./components/Stack\";\nexport { HStack, type HStackProps, type HStackOwnProps } from \"./components/HStack\";\nexport { VStack, type VStackProps, type VStackOwnProps } from \"./components/VStack\";\nexport { Flex, type FlexProps, type FlexOwnProps } from \"./components/Flex\";\nexport { Grid, type GridProps, type GridOwnProps } from \"./components/Grid\";\nexport {\n Container,\n type ContainerSize,\n type ContainerProps,\n type ContainerOwnProps,\n} from \"./components/Container\";\nexport {\n Divider,\n type DividerColor,\n type DividerProps,\n type DividerOwnProps,\n} from \"./components/Divider\";\nexport { Spacer, type SpacerProps, type SpacerOwnProps } from \"./components/Spacer\";\nexport {\n Code,\n type CodeVariant,\n type CodeProps,\n type CodeOwnProps,\n} from \"./components/Code\";\nexport {\n Input,\n type InputSize,\n type InputVariant,\n type InputProps,\n type InputOwnProps,\n} from \"./components/Input\";\nexport { Label, type LabelProps, type LabelOwnProps } from \"./components/Label\";\nexport {\n Textarea,\n type TextareaSize,\n type TextareaVariant,\n type TextareaResize,\n type TextareaProps,\n type TextareaOwnProps,\n} from \"./components/Textarea\";\nexport {\n Select,\n type SelectSize,\n type SelectVariant,\n type SelectProps,\n} from \"./components/Select\";\nexport {\n Checkbox,\n type CheckboxSize,\n type CheckboxProps,\n} from \"./components/Checkbox\";\nexport { Radio, type RadioSize, type RadioProps } from \"./components/Radio\";\nexport { Switch, type SwitchSize, type SwitchProps } from \"./components/Switch\";\nexport { FormField, type FormFieldProps } from \"./components/FormField\";\nexport {\n IconButton,\n type IconButtonVariant,\n type IconButtonSize,\n type IconButtonColorScheme,\n type IconButtonProps,\n} from \"./components/IconButton\";\nexport { Alert, type AlertStatus, type AlertProps } from \"./components/Alert\";\nexport {\n Badge,\n type BadgeColorScheme,\n type BadgeVariant,\n type BadgeSize,\n type BadgeProps,\n} from \"./components/Badge\";\nexport {\n Progress,\n type ProgressColorScheme,\n type ProgressSize,\n type ProgressProps,\n} from \"./components/Progress\";\nexport { Skeleton, type SkeletonProps } from \"./components/Skeleton\";\nexport { Avatar, type AvatarSize, type AvatarProps } from \"./components/Avatar\";\nexport {\n Card,\n CardHeader,\n CardBody,\n CardFooter,\n type CardProps,\n type CardHeaderProps,\n type CardBodyProps,\n type CardFooterProps,\n} from \"./components/Card\";\nexport { Image, type ImageObjectFit, type ImageProps } from \"./components/Image\";\nexport {\n List,\n ListItem,\n ListIcon,\n type ListStyleType,\n type ListProps,\n type ListItemProps,\n type ListIconProps,\n} from \"./components/List\";\nexport {\n Link,\n type LinkVariant,\n type LinkProps,\n type LinkOwnProps,\n} from \"./components/Link\";\nexport {\n Tabs,\n TabList,\n Tab,\n TabPanel,\n type TabsVariant,\n type TabsProps,\n type TabListProps,\n type TabProps,\n type TabPanelProps,\n} from \"./components/Tabs\";\nexport {\n Breadcrumb,\n BreadcrumbItem,\n type BreadcrumbProps,\n type BreadcrumbItemProps,\n} from \"./components/Breadcrumb\";\nexport {\n Menu,\n MenuButton,\n MenuList,\n MenuItem,\n type MenuProps,\n type MenuButtonProps,\n type MenuListProps,\n type MenuItemProps,\n} from \"./components/Menu\";\nexport { Pagination, type PaginationProps } from \"./components/Pagination\";\nexport {\n Modal,\n ModalHeader,\n ModalBody,\n ModalFooter,\n type ModalSize,\n type ModalProps,\n type ModalHeaderProps,\n type ModalBodyProps,\n type ModalFooterProps,\n} from \"./components/Modal\";\nexport {\n Tooltip,\n type TooltipPlacement,\n type TooltipProps,\n} from \"./components/Tooltip\";\nexport {\n Popover,\n PopoverHeader,\n PopoverBody,\n type PopoverPlacement,\n type PopoverProps,\n type PopoverHeaderProps,\n type PopoverBodyProps,\n} from \"./components/Popover\";\nexport {\n Accordion,\n AccordionItem,\n type AccordionProps,\n type AccordionItemProps,\n} from \"./components/Accordion\";\n"],"names":["r","e","t","f","n","o","clsx","resetClass","styles","RESPONSIVE_KEYS","STATE_SUFFIXES","STATE_CLASS_SUFFIXES","getRawValue","value","getSpacingProps","key","state","result","stateSuffix","stateClassSuffix","rawValue","className","responsiveKey","varName","resolveMarginValue","props","shorthandMap","getMarginStylesForState","marginTop","marginRight","marginBottom","marginLeft","getMarginStyles","_hover","_focus","_active","_disabled","baseProps","baseStyles","hoverStyles","focusStyles","activeStyles","disabledStyles","resolvePaddingValue","getPaddingStylesForState","paddingTop","paddingRight","paddingBottom","paddingLeft","getPaddingStyles","getSizingProp","getSizingStylesForState","results","getSizingStyles","getInsetProp","resolveInsetValue","getInsetStylesForState","insetTop","insetRight","insetBottom","insetLeft","getInsetStyles","getDisplayClass","getDisplayStylesForValue","displayValue","getDisplayStyles","display","getPositionClass","getPositionStylesForValue","positionValue","getPositionStyles","position","CLASS_SUFFIX_MAP","getOverflowClass","type","typeSuffix","baseClassName","getOverflowStylesForProp","overflowValue","getOverflowStylesForState","overflow","overflowX","overflowY","getOverflowStyles","getZIndexClass","getZIndexStylesForValue","zIndexValue","getZIndexStyles","zIndex","getShadowClass","getShadowStylesForValue","shadowValue","getShadowStyles","shadow","getOpacityClass","getOpacityStylesForValue","opacityValue","getOpacityStyles","opacity","getCursorClass","getPointerEventsClass","getUserSelectClass","getInteractionStylesForState","classes","cls","getInteractionStyles","cursor","pointerEvents","userSelect","getTextAlignClass","getWhiteSpaceClass","getTextDecorationClass","getTextStylesForState","getTextStyles","textAlign","whiteSpace","textDecoration","getTypographyStyles","fontSize","fontFamily","fontWeight","lineHeight","getColorClass","getBgClass","getBorderColorClass","getColorStylesForState","getColorStyles","color","bg","borderColor","getBorderTopClass","getBorderRightClass","getBorderBottomClass","getBorderLeftClass","getBorderStyleClass","getBorderStylesForState","border","borderX","borderY","borderTop","borderRight","borderBottom","borderLeft","borderStyle","topWidth","rightWidth","bottomWidth","leftWidth","getBorderStyles","getRoundedTopLeftClass","getRoundedTopRightClass","getRoundedBottomRightClass","getRoundedBottomLeftClass","getRoundnessStylesForState","rounded","roundedTop","roundedBottom","roundedLeft","roundedRight","roundedTopLeft","roundedTopRight","roundedBottomLeft","roundedBottomRight","topLeft","topRight","bottomRight","bottomLeft","getRoundnessStyles","getFlexDirectionClass","getJustifyContentClass","getAlignItemsClass","getAlignSelfClass","getFlexWrapClass","getSpacingValue","getFlexboxStylesForState","flexDirection","justifyContent","alignItems","alignSelf","flexWrap","gap","gapRow","gapColumn","flex","flexGrow","flexShrink","flexBasis","style","stateVarSuffix","row","column","rowValue","columnValue","gapValue","gapClass","flexClass","grow","shrink","basis","getFlexboxStyles","getJustifySelfClass","getGridStylesForState","justifySelf","gridTemplateColumns","gridTemplateRows","gridColsClass","gridRowsClass","getGridStyles","combineStyles","Box","as","children","m","mt","mr","mb","ml","mx","my","p","pt","pr","pb","pl","px","py","w","h","minW","maxW","minH","maxH","inset","insetX","insetY","top","right","bottom","left","rest","Component","stateProps","jsx","Text","size","weight","align","truncate","italic","defaultSizes","Heading","level","headingElement","defaultSize","sizeConfig","Spinner","sizeProps","getColorConfig","variant","colorScheme","variantBorderConfig","Button","disabled","loading","fullWidth","leftIcon","rightIcon","isDisabled","colorConfig","leftContent","rightContent","jsxs","Stack","direction","justify","wrap","HStack","VStack","Flex","alignContent","Grid","columns","rows","SIZE_MAP","Container","centerContent","COLOR_MAP","Divider","orientation","thickness","isHorizontal","Spacer","Code","isSubtle","Input","isInvalid","variantStyles","Label","required","resizeClassMap","Textarea","resize","Select","Checkbox","forwardRef","isChecked","label","ref","Radio","Switch","FormField","helperText","errorMessage","isRequired","providedId","generatedId","useId","fieldId","helperId","showError","message","hasMessage","enhancedChild","Children","child","isValidElement","cloneElement","IconButton","icon","ariaLabel","onClick","defaultIcons","CloseIcon","Alert","status","title","onClose","displayIcon","Badge","Progress","max","isIndeterminate","percentage","height","Skeleton","isLoaded","getInitials","name","words","Avatar","src","alt","hasError","setHasError","useState","showImage","initials","Card","CardHeader","CardBody","CardFooter","Image","objectFit","fallbackSrc","isLoading","setIsLoading","currentSrc","setCurrentSrc","handleLoad","handleError","List","styleType","spacing","actualStyleType","ListItem","ListIcon","Link","external","externalProps","TabsContext","createContext","useTabsContext","context","useContext","Tabs","defaultIndex","index","onChange","internalIndex","setInternalIndex","activeIndex","setActiveIndex","newIndex","TabList","Tab","isActive","TabPanel","Breadcrumb","separator","items","lastIndex","isLast","BreadcrumbItem","href","isCurrentPage","MenuContext","useMenuContext","Menu","controlledIsOpen","onOpen","internalIsOpen","setInternalIsOpen","isControlled","isOpen","buttonRef","useRef","setOpen","open","useEffect","handleClick","handleKeyDown","MenuButton","setIsOpen","MenuList","MenuItem","range","start","end","_","i","getPaginationRange","page","totalPages","siblings","totalNumbers","leftSiblingIndex","rightSiblingIndex","showLeftEllipsis","showRightEllipsis","Pagination","onPageChange","showEdges","pages","canGoPrev","canGoNext","Modal","closeOnOverlayClick","closeOnEsc","modalRef","previousFocusRef","handleOverlayClick","useCallback","createPortal","ModalHeader","ModalBody","ModalFooter","Tooltip","placement","openDelay","closeDelay","setPosition","triggerRef","tooltipRef","openTimeoutRef","closeTimeoutRef","updatePosition","triggerRect","tooltipRect","handleOpen","handleClose","Fragment","Popover","content","closeOnBlur","popoverRef","popoverRect","PopoverHeader","PopoverBody","AccordionContext","useAccordionContext","Accordion","allowMultiple","expandedIndex","setExpandedIndex","toggleIndex","current","newExpanded","AccordionItem","isExpanded"],"mappings":"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","x_google_ignoreList":[0]}