tenara-ui-components 0.3.4 → 0.3.5

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 (181) hide show
  1. package/dist/components/atoms/BackgroundMedia/BackgroundMedia.d.ts +19 -0
  2. package/dist/components/atoms/BackgroundMedia/BackgroundMedia.d.ts.map +1 -0
  3. package/dist/components/atoms/BackgroundMedia/index.d.ts +3 -0
  4. package/dist/components/atoms/BackgroundMedia/index.d.ts.map +1 -0
  5. package/dist/components/atoms/Breadcrumb/Breadcrumb.d.ts +14 -0
  6. package/dist/components/atoms/Breadcrumb/Breadcrumb.d.ts.map +1 -0
  7. package/dist/components/atoms/Breadcrumb/index.d.ts +3 -0
  8. package/dist/components/atoms/Breadcrumb/index.d.ts.map +1 -0
  9. package/dist/components/atoms/BulletList/BulletList.d.ts +22 -0
  10. package/dist/components/atoms/BulletList/BulletList.d.ts.map +1 -0
  11. package/dist/components/atoms/BulletList/index.d.ts +3 -0
  12. package/dist/components/atoms/BulletList/index.d.ts.map +1 -0
  13. package/dist/components/atoms/Button/Button.d.ts +36 -0
  14. package/dist/components/atoms/Button/Button.d.ts.map +1 -0
  15. package/dist/components/atoms/Button/buttonIcons.d.ts +24 -0
  16. package/dist/components/atoms/Button/buttonIcons.d.ts.map +1 -0
  17. package/dist/components/atoms/Button/index.d.ts +3 -0
  18. package/dist/components/atoms/Button/index.d.ts.map +1 -0
  19. package/dist/components/atoms/ButtonLink/ButtonLink.d.ts +34 -0
  20. package/dist/components/atoms/ButtonLink/ButtonLink.d.ts.map +1 -0
  21. package/dist/components/atoms/ButtonLink/index.d.ts +3 -0
  22. package/dist/components/atoms/ButtonLink/index.d.ts.map +1 -0
  23. package/dist/components/atoms/Checkbox/Checkbox.d.ts +24 -0
  24. package/dist/components/atoms/Checkbox/Checkbox.d.ts.map +1 -0
  25. package/dist/components/atoms/Checkbox/index.d.ts +3 -0
  26. package/dist/components/atoms/Checkbox/index.d.ts.map +1 -0
  27. package/dist/components/atoms/ColorTable/ColorTable.d.ts +12 -0
  28. package/dist/components/atoms/ColorTable/ColorTable.d.ts.map +1 -0
  29. package/dist/components/atoms/ColorTable/index.d.ts +3 -0
  30. package/dist/components/atoms/ColorTable/index.d.ts.map +1 -0
  31. package/dist/components/atoms/Container/Container.d.ts +15 -0
  32. package/dist/components/atoms/Container/Container.d.ts.map +1 -0
  33. package/dist/components/atoms/Container/index.d.ts +3 -0
  34. package/dist/components/atoms/Container/index.d.ts.map +1 -0
  35. package/dist/components/atoms/Divider/Divider.d.ts +20 -0
  36. package/dist/components/atoms/Divider/Divider.d.ts.map +1 -0
  37. package/dist/components/atoms/Divider/index.d.ts +3 -0
  38. package/dist/components/atoms/Divider/index.d.ts.map +1 -0
  39. package/dist/components/atoms/Dropdown/Dropdown.d.ts +32 -0
  40. package/dist/components/atoms/Dropdown/Dropdown.d.ts.map +1 -0
  41. package/dist/components/atoms/Dropdown/index.d.ts +3 -0
  42. package/dist/components/atoms/Dropdown/index.d.ts.map +1 -0
  43. package/dist/components/atoms/Grid/Grid.d.ts +113 -0
  44. package/dist/components/atoms/Grid/Grid.d.ts.map +1 -0
  45. package/dist/components/atoms/Grid/index.d.ts +3 -0
  46. package/dist/components/atoms/Grid/index.d.ts.map +1 -0
  47. package/dist/components/atoms/Heading/Heading.d.ts +37 -0
  48. package/dist/components/atoms/Heading/Heading.d.ts.map +1 -0
  49. package/dist/components/atoms/Heading/index.d.ts +3 -0
  50. package/dist/components/atoms/Heading/index.d.ts.map +1 -0
  51. package/dist/components/atoms/Icon/Icon.d.ts +42 -0
  52. package/dist/components/atoms/Icon/Icon.d.ts.map +1 -0
  53. package/dist/components/atoms/Icon/index.d.ts +3 -0
  54. package/dist/components/atoms/Icon/index.d.ts.map +1 -0
  55. package/dist/components/atoms/Media/Media.d.ts +63 -0
  56. package/dist/components/atoms/Media/Media.d.ts.map +1 -0
  57. package/dist/components/atoms/Media/index.d.ts +3 -0
  58. package/dist/components/atoms/Media/index.d.ts.map +1 -0
  59. package/dist/components/atoms/Paragraph/Paragraph.d.ts +41 -0
  60. package/dist/components/atoms/Paragraph/Paragraph.d.ts.map +1 -0
  61. package/dist/components/atoms/Paragraph/index.d.ts +3 -0
  62. package/dist/components/atoms/Paragraph/index.d.ts.map +1 -0
  63. package/dist/components/atoms/PlayButton/PlayButton.d.ts +26 -0
  64. package/dist/components/atoms/PlayButton/PlayButton.d.ts.map +1 -0
  65. package/dist/components/atoms/PlayButton/index.d.ts +3 -0
  66. package/dist/components/atoms/PlayButton/index.d.ts.map +1 -0
  67. package/dist/components/atoms/RichText/RichText.d.ts +21 -0
  68. package/dist/components/atoms/RichText/RichText.d.ts.map +1 -0
  69. package/dist/components/atoms/RichText/index.d.ts +3 -0
  70. package/dist/components/atoms/RichText/index.d.ts.map +1 -0
  71. package/dist/components/atoms/TextInput/TextInput.d.ts +44 -0
  72. package/dist/components/atoms/TextInput/TextInput.d.ts.map +1 -0
  73. package/dist/components/atoms/TextInput/index.d.ts +3 -0
  74. package/dist/components/atoms/TextInput/index.d.ts.map +1 -0
  75. package/dist/components/atoms/TextLink/TextLink.d.ts +19 -0
  76. package/dist/components/atoms/TextLink/TextLink.d.ts.map +1 -0
  77. package/dist/components/atoms/TextLink/index.d.ts +3 -0
  78. package/dist/components/atoms/TextLink/index.d.ts.map +1 -0
  79. package/dist/components/index.d.ts +59 -0
  80. package/dist/components/index.d.ts.map +1 -0
  81. package/dist/components/molecules/CTA/CTA.d.ts +34 -0
  82. package/dist/components/molecules/CTA/CTA.d.ts.map +1 -0
  83. package/dist/components/molecules/CTA/index.d.ts +3 -0
  84. package/dist/components/molecules/CTA/index.d.ts.map +1 -0
  85. package/dist/components/molecules/Card/Card.d.ts +23 -0
  86. package/dist/components/molecules/Card/Card.d.ts.map +1 -0
  87. package/dist/components/molecules/Card/index.d.ts +3 -0
  88. package/dist/components/molecules/Card/index.d.ts.map +1 -0
  89. package/dist/components/molecules/Header/Header.d.ts +13 -0
  90. package/dist/components/molecules/Header/Header.d.ts.map +1 -0
  91. package/dist/components/molecules/Header/index.d.ts +3 -0
  92. package/dist/components/molecules/Header/index.d.ts.map +1 -0
  93. package/dist/components/molecules/Modal/Modal.d.ts +26 -0
  94. package/dist/components/molecules/Modal/Modal.d.ts.map +1 -0
  95. package/dist/components/molecules/Modal/index.d.ts +3 -0
  96. package/dist/components/molecules/Modal/index.d.ts.map +1 -0
  97. package/dist/components/molecules/VideoPlayer/VideoPlayer.d.ts +29 -0
  98. package/dist/components/molecules/VideoPlayer/VideoPlayer.d.ts.map +1 -0
  99. package/dist/components/molecules/VideoPlayer/index.d.ts +3 -0
  100. package/dist/components/molecules/VideoPlayer/index.d.ts.map +1 -0
  101. package/dist/components/molecules/primax/Banner/Banner.d.ts +44 -0
  102. package/dist/components/molecules/primax/Banner/Banner.d.ts.map +1 -0
  103. package/dist/components/molecules/primax/Banner/index.d.ts +3 -0
  104. package/dist/components/molecules/primax/Banner/index.d.ts.map +1 -0
  105. package/dist/components/molecules/primax/CTA/CTA.d.ts +28 -0
  106. package/dist/components/molecules/primax/CTA/CTA.d.ts.map +1 -0
  107. package/dist/components/molecules/primax/CTA/index.d.ts +3 -0
  108. package/dist/components/molecules/primax/CTA/index.d.ts.map +1 -0
  109. package/dist/components/molecules/primax/Card/Card.d.ts +46 -0
  110. package/dist/components/molecules/primax/Card/Card.d.ts.map +1 -0
  111. package/dist/components/molecules/primax/Card/index.d.ts +3 -0
  112. package/dist/components/molecules/primax/Card/index.d.ts.map +1 -0
  113. package/dist/components/molecules/primax/DropdownSelect/DropdownSelect.d.ts +50 -0
  114. package/dist/components/molecules/primax/DropdownSelect/DropdownSelect.d.ts.map +1 -0
  115. package/dist/components/molecules/primax/DropdownSelect/index.d.ts +3 -0
  116. package/dist/components/molecules/primax/DropdownSelect/index.d.ts.map +1 -0
  117. package/dist/components/molecules/primax/HalfColumn/HalfColumn.d.ts +60 -0
  118. package/dist/components/molecules/primax/HalfColumn/HalfColumn.d.ts.map +1 -0
  119. package/dist/components/molecules/primax/HalfColumn/index.d.ts +3 -0
  120. package/dist/components/molecules/primax/HalfColumn/index.d.ts.map +1 -0
  121. package/dist/components/molecules/primax/MediaBlock/MediaBlock.d.ts +45 -0
  122. package/dist/components/molecules/primax/MediaBlock/MediaBlock.d.ts.map +1 -0
  123. package/dist/components/molecules/primax/MediaBlock/assets.d.ts +11 -0
  124. package/dist/components/molecules/primax/MediaBlock/assets.d.ts.map +1 -0
  125. package/dist/components/molecules/primax/MediaBlock/index.d.ts +3 -0
  126. package/dist/components/molecules/primax/MediaBlock/index.d.ts.map +1 -0
  127. package/dist/components/molecules/primax/PlayIcon/PlayIcon.d.ts +11 -0
  128. package/dist/components/molecules/primax/PlayIcon/PlayIcon.d.ts.map +1 -0
  129. package/dist/components/molecules/primax/PlayIcon/index.d.ts +2 -0
  130. package/dist/components/molecules/primax/PlayIcon/index.d.ts.map +1 -0
  131. package/dist/components/molecules/primax/Subscribe/Subscribe.d.ts +58 -0
  132. package/dist/components/molecules/primax/Subscribe/Subscribe.d.ts.map +1 -0
  133. package/dist/components/molecules/primax/Subscribe/index.d.ts +3 -0
  134. package/dist/components/molecules/primax/Subscribe/index.d.ts.map +1 -0
  135. package/dist/components/molecules/primax/TwoColumn/TwoColumn.d.ts +37 -0
  136. package/dist/components/molecules/primax/TwoColumn/TwoColumn.d.ts.map +1 -0
  137. package/dist/components/molecules/primax/TwoColumn/index.d.ts +3 -0
  138. package/dist/components/molecules/primax/TwoColumn/index.d.ts.map +1 -0
  139. package/dist/components/molecules/primax/VideoSection/VideoSection.d.ts +31 -0
  140. package/dist/components/molecules/primax/VideoSection/VideoSection.d.ts.map +1 -0
  141. package/dist/components/molecules/primax/VideoSection/index.d.ts +3 -0
  142. package/dist/components/molecules/primax/VideoSection/index.d.ts.map +1 -0
  143. package/dist/components/pages/Page.d.ts +4 -0
  144. package/dist/components/pages/Page.d.ts.map +1 -0
  145. package/dist/components/pages/index.d.ts +2 -0
  146. package/dist/components/pages/index.d.ts.map +1 -0
  147. package/dist/index.esm.js +1 -1
  148. package/dist/index.esm.js.map +1 -1
  149. package/dist/index.js +1 -1
  150. package/dist/index.js.map +1 -1
  151. package/dist/themes/core/client-provider.d.ts +8 -0
  152. package/dist/themes/core/client-provider.d.ts.map +1 -0
  153. package/dist/themes/core/color-system.d.ts +72 -0
  154. package/dist/themes/core/color-system.d.ts.map +1 -0
  155. package/dist/themes/core/context.d.ts +26 -0
  156. package/dist/themes/core/context.d.ts.map +1 -0
  157. package/dist/themes/core/types.d.ts +188 -0
  158. package/dist/themes/core/types.d.ts.map +1 -0
  159. package/dist/themes/hooks/useColorTokens.d.ts +26 -0
  160. package/dist/themes/hooks/useColorTokens.d.ts.map +1 -0
  161. package/dist/themes/index.d.ts +16 -0
  162. package/dist/themes/index.d.ts.map +1 -0
  163. package/dist/themes/presets/advisors-plus.d.ts +7 -0
  164. package/dist/themes/presets/advisors-plus.d.ts.map +1 -0
  165. package/dist/themes/presets/color-systems/advisors-plus-colors.d.ts +7 -0
  166. package/dist/themes/presets/color-systems/advisors-plus-colors.d.ts.map +1 -0
  167. package/dist/themes/presets/color-systems/default-colors.d.ts +7 -0
  168. package/dist/themes/presets/color-systems/default-colors.d.ts.map +1 -0
  169. package/dist/themes/presets/color-systems/primax-colors.d.ts +7 -0
  170. package/dist/themes/presets/color-systems/primax-colors.d.ts.map +1 -0
  171. package/dist/themes/presets/default.d.ts +7 -0
  172. package/dist/themes/presets/default.d.ts.map +1 -0
  173. package/dist/themes/presets/primax.d.ts +7 -0
  174. package/dist/themes/presets/primax.d.ts.map +1 -0
  175. package/dist/themes/utils/generator.d.ts +20 -0
  176. package/dist/themes/utils/generator.d.ts.map +1 -0
  177. package/dist/themes/utils/helpers.d.ts +14 -0
  178. package/dist/themes/utils/helpers.d.ts.map +1 -0
  179. package/dist/themes/utils/index.d.ts +6 -0
  180. package/dist/themes/utils/index.d.ts.map +1 -0
  181. package/package.json +4 -4
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/tslib/tslib.es6.js","../src/components/atoms/Button/buttonIcons.tsx","../src/themes/presets/color-systems/default-colors.ts","../src/themes/presets/default.ts","../src/themes/utils/helpers.ts","../src/themes/utils/generator.ts","../src/themes/core/context.tsx","../src/themes/core/client-provider.tsx","../src/components/atoms/Button/Button.tsx","../src/components/atoms/ButtonLink/ButtonLink.tsx","../src/components/atoms/BackgroundMedia/BackgroundMedia.tsx","../src/components/atoms/Media/Media.tsx","../src/components/atoms/Breadcrumb/Breadcrumb.tsx","../src/components/atoms/Divider/Divider.tsx","../src/components/atoms/Container/Container.tsx","../src/components/atoms/Heading/Heading.tsx","../src/components/atoms/Grid/Grid.tsx","../src/components/atoms/Paragraph/Paragraph.tsx","../src/components/atoms/BulletList/BulletList.tsx","../src/components/molecules/Header/Header.tsx","../src/components/molecules/VideoPlayer/VideoPlayer.tsx","../src/components/molecules/primax/MediaBlock/MediaBlock.tsx","../src/assets/sparkle-overlay.svg","../src/assets/spark-small-sparks.svg","../src/assets/spark-icon-large.svg","../src/assets/spark-icon-small.svg","../src/components/molecules/primax/Banner/Banner.tsx","../src/components/molecules/primax/TwoColumn/TwoColumn.tsx","../src/components/atoms/TextInput/TextInput.tsx","../src/components/atoms/Dropdown/Dropdown.tsx","../src/components/atoms/Checkbox/Checkbox.tsx","../src/components/molecules/primax/DropdownSelect/DropdownSelect.tsx","../src/components/molecules/primax/Subscribe/Subscribe.tsx","../src/themes/presets/color-systems/advisors-plus-colors.ts","../src/themes/presets/advisors-plus.ts","../src/themes/presets/color-systems/primax-colors.ts","../src/themes/presets/primax.ts","../src/themes/hooks/useColorTokens.ts","../src/components/molecules/primax/CTA/CTA.tsx","../src/components/molecules/CTA/CTA.tsx","../src/components/molecules/Card/Card.tsx","../src/components/molecules/primax/HalfColumn/HalfColumn.tsx","../src/components/atoms/Icon/Icon.tsx","../src/components/molecules/Modal/Modal.tsx","../src/components/pages/Page.tsx","../src/components/atoms/PlayButton/PlayButton.tsx","../src/components/molecules/primax/PlayIcon/PlayIcon.tsx","../src/components/molecules/primax/Card/Card.tsx","../src/components/atoms/RichText/RichText.tsx","../src/components/atoms/TextLink/TextLink.tsx","../src/components/molecules/primax/VideoSection/VideoSection.tsx"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22224%22%20height%3D%22224%22%20viewBox%3D%220%200%20224%20224%22%20fill%3D%22none%22%3E%20%20%3Cpath%20d%3D%22M0.87146%208.04027C-2.23028%203.39342%203.61165%20-2.23422%208.22653%200.913946C50.1288%2029.4986%2074.7621%2038.9595%20108.417%2041.2004C144.268%2040.259%20168.419%2032.9657%20207.023%209.04353C211.607%206.20271%20217.138%2011.584%20214.28%2016.1584L207.095%2027.6592L197.353%2044.936C197.233%2045.1482%20197.129%2045.369%20197.042%2045.5965L188.666%2067.367C188.58%2067.5906%20188.51%2067.8202%20188.457%2068.0539L183.062%2091.7796C182.998%2092.0584%20182.959%2092.3422%20182.944%2092.6278L181.818%20114.177C181.804%20114.457%20181.813%20114.738%20181.845%20115.016L184.062%20134.065L189.35%20155.826C189.424%20156.13%20189.526%20156.426%20189.656%20156.711L199.198%20177.743L210.718%20197.93L222.95%20215.579C226.11%20220.138%20220.604%20225.686%20216.023%20222.558L198.236%20210.415L178.309%20198.637L156.966%20189.313C156.722%20189.207%20156.47%20189.12%20156.212%20189.053L134.642%20183.498L115.598%20181.28C115.32%20181.248%20115.039%20181.239%20114.759%20181.253L93.2054%20182.38C92.9265%20182.394%2092.6493%20182.432%2092.3767%20182.493L72.3782%20186.96L52.1128%20193.684C51.8508%20193.771%2051.5964%20193.88%2051.3523%20194.009L30.0474%20205.263L15.9227%20214.159C11.3991%20217.008%206.16338%20211.724%209.05253%20207.225L18.0312%20193.244L26.1703%20177.942L33.03%20160.852L40.0008%20133.277C40.0836%20132.95%2040.133%20132.615%2040.1483%20132.277L41.2088%20108.832C41.2216%20108.549%2041.2104%20108.266%2041.1752%20107.985L37.2945%2076.9864C37.2429%2076.574%2037.14%2076.1696%2036.9884%2075.7827L26.8364%2049.8781C26.7491%2049.6552%2026.6458%2049.4389%2026.5275%2049.2308L15.9527%2030.6342L0.87146%208.04027Z%22%20fill%3D%22url%28%23pattern0_1168_343%29%22%2F%3E%20%20%3Cdefs%3E%20%20%20%20%3Cpattern%20id%3D%22pattern0_1168_343%22%20patternUnits%3D%22userSpaceOnUse%22%20patternTransform%3D%22matrix%284.28304%20-4.28413%204.71404%204.71523%20-101.391%20103.538%29%22%20preserveAspectRatio%3D%22none%22%20viewBox%3D%2215.3594%2022.6016%20201.93%20222.25%22%20width%3D%221%22%20height%3D%221%22%3E%20%20%20%20%20%20%3Cg%20id%3D%22pattern0_1168_343_inner%22%3E%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M74.2117%2026.5152C75.2622%2021.2484%2083.3188%2021.3292%2084.6373%2026.5354C88.6999%2042.5762%2093.807%2052.1527%20102.548%2062.1325C113.95%2072.9426%20123.867%2078.746%20141.357%2083.488C145.376%2084.5776%20145.43%2090.6299%20141.372%2091.5657L132.206%2094.119C131.971%2094.1844%20131.742%2094.2668%20131.519%2094.3656L121.43%2098.844C121.211%2098.9411%20120.999%2099.0539%20120.796%2099.1814L111.064%20105.302C110.822%20105.454%20110.594%20105.626%20110.381%20105.818L102.861%20112.586C102.653%20112.773%20102.461%20112.978%20102.287%20113.198L96.5987%20120.379L91.0265%20129.522C90.8636%20129.79%2090.7262%20130.072%2090.616%20130.365L86.7273%20140.707L83.7306%20151.667C82.8621%20156.457%2075.9966%20156.45%2075.0931%20151.667L72.2727%20140.707L68.1884%20130.297C68.091%20130.049%2067.974%20129.809%2067.8384%20129.579L62.4013%20120.379L56.7134%20113.198C56.5394%20112.978%2056.3471%20112.773%2056.1388%20112.586L48.6112%20105.811C48.4037%20105.624%2048.1808%20105.455%2047.945%20105.306L39.6619%20100.051L30.5137%2095.4636C30.267%2095.3399%2030.0105%2095.2369%2029.7468%2095.1555L18.6851%2091.7424C14.2515%2090.7358%2014.2426%2084.401%2018.6851%2083.4343L26.7938%2080.9596L35.0787%2077.4242L46.8055%2070.4367C47.0955%2070.2638%2047.3673%2070.0621%2047.6167%2069.8345L55.7411%2062.4194C55.9503%2062.2285%2056.1428%2062.0202%2056.3167%2061.7967L65.3661%2050.1658C65.6214%2049.8377%2065.8348%2049.479%2066.0013%2049.0981L71.2473%2037.0973C71.3432%2036.8778%2071.4232%2036.6518%2071.4868%2036.4208L74.2117%2026.5152Z%22%20fill%3D%22%2300FFD2%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%3C%2Fpattern%3E%3C%2Fdefs%3E%20%20%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20width%3D%22297%22%20height%3D%22189%22%20viewBox%3D%220%200%20297%20189%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M295.475%2068.9159C285.993%2068.9486%20276.028%2072.1653%20268.051%2076.5607C246.136%2088.6283%20239.243%20111.77%20239.074%20133.63C239.058%20135.458%20235.936%20135.455%20235.923%20133.63C235.752%20111.77%20228.861%2088.631%20206.947%2076.5607C198.969%2072.1681%20189.001%2068.9486%20179.522%2068.9159C177.49%2068.9077%20177.495%2066.0865%20179.522%2066.0784C189.004%2066.0483%20198.969%2062.8289%20206.947%2058.4335C228.861%2046.3659%20235.752%2023.2266%20235.923%201.36691C235.915%200.450181%20236.71%200%20237.499%200C238.29%200%20239.085%200.452909%20239.077%201.36691C239.243%2023.2266%20246.139%2046.3659%20268.053%2058.4362C276.031%2062.8289%20285.999%2066.0483%20295.478%2066.0811C297.51%2066.0893%20297.505%2068.9104%20295.478%2068.9186L295.475%2068.9159Z%22%20fill%3D%22%2300FFD2%22%20fill-opacity%3D%220.1%22%2F%3E%3Cpath%20d%3D%22M66.1416%20151.797C60.8029%20151.816%2055.1924%20153.626%2050.7008%20156.101C38.3624%20162.894%2034.4814%20175.923%2034.3863%20188.229C34.3774%20189.258%2032.6196%20189.256%2032.6122%20188.229C32.5156%20175.923%2028.6361%20162.896%2016.2977%20156.101C11.8061%20153.628%206.19407%20151.816%200.856955%20151.797C-0.287137%20151.792%20-0.284166%20150.204%200.856955%20150.2C6.19556%20150.183%2011.8061%20148.37%2016.2977%20145.896C28.6361%20139.102%2032.5156%20126.076%2032.6122%20113.77C32.6078%20113.253%2033.055%20113%2033.4993%20113C33.945%20113%2034.3922%20113.255%2034.3878%20113.77C34.4814%20126.076%2038.3639%20139.102%2050.7022%20145.897C55.1939%20148.37%2060.8059%20150.183%2066.143%20150.201C67.2871%20150.206%2067.2842%20151.794%2066.143%20151.799L66.1416%20151.797Z%22%20fill%3D%22%2300FFD2%22%20fill-opacity%3D%220.1%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20width%3D%22218%22%20height%3D%22239%22%20viewBox%3D%220%200%20218%20239%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M215.208%20122.007C197.838%20122.065%20179.583%20127.759%20164.968%20135.541C124.822%20156.905%20112.194%20197.875%20111.885%20236.575C111.856%20239.811%20106.136%20239.806%20106.112%20236.575C105.798%20197.875%2093.1749%20156.91%2053.0289%20135.541C38.4141%20127.764%2020.154%20122.065%202.78832%20122.007C-0.934274%20121.992%20-0.924605%20116.998%202.78832%20116.983C20.1588%20116.93%2038.4141%20111.23%2053.0289%20103.449C93.1749%2082.0848%20105.798%2041.1197%20106.112%202.41994C106.098%200.796987%20107.553%200%20108.998%200C110.449%200%20111.904%200.801817%20111.889%202.41994C112.194%2041.1197%20124.827%2082.0848%20164.973%20103.454C179.587%20111.23%20197.848%20116.93%20215.213%20116.988C218.936%20117.002%20218.926%20121.997%20215.213%20122.011L215.208%20122.007Z%22%20fill%3D%22%2300FFD2%22%20fill-opacity%3D%220.1%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20width%3D%22123%22%20height%3D%22135%22%20viewBox%3D%220%200%20123%20135%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M121.373%2068.9159C111.577%2068.9486%20101.281%2072.1653%2093.0387%2076.5607C70.3971%2088.6283%2063.2753%20111.77%2063.1008%20133.63C63.0844%20135.458%2059.8589%20135.455%2059.8452%20133.63C59.668%20111.77%2052.5489%2088.631%2029.9073%2076.5607C21.6648%2072.1681%2011.3665%2068.9486%201.57256%2068.9159C-0.526913%2068.9077%20-0.521459%2066.0865%201.57256%2066.0784C11.3692%2066.0483%2021.6648%2062.8289%2029.9073%2058.4335C52.5489%2046.3659%2059.668%2023.2266%2059.8452%201.36691C59.837%200.450181%2060.6577%200%2061.473%200C62.291%200%2063.1117%200.452909%2063.1035%201.36691C63.2753%2023.2266%2070.3998%2046.3659%2093.0414%2058.4362C101.284%2062.8289%20111.582%2066.0483%20121.376%2066.0811C123.476%2066.0893%20123.47%2068.9104%20121.376%2068.9186L121.373%2068.9159Z%22%20fill%3D%22%2300FFD2%22%20fill-opacity%3D%220.1%22%2F%3E%3C%2Fsvg%3E\"",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["__rest","s","e","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","SuppressedError","defaultButtonIcons","video","regular","_jsx","FontAwesomeIcon","icon","faCirclePlayRegular","hover","faCirclePlaySolid","subscribe","faEnvelopeRegular","faEnvelopeSolid","cta","faAnglesRight","twitter","faXTwitter","linkedin","faLinkedin","facebook","faSquareFacebook","defaultColorSystem","primitives","semantic","primary","primaryHover","primaryActive","primaryText","secondary","secondaryHover","secondaryActive","secondaryText","accent","accentHover","accentActive","accentText","tertiary","tertiaryHover","tertiaryActive","tertiaryText","textPrimary","textSecondary","textAccent","textTertiary","textInverse","textDisabled","textLink","textLinkHover","bgPrimary","bgSecondary","bgTertiary","bgInverse","bgOverlay","borderDefault","borderSubtle","borderStrong","borderFocus","stateSuccess","stateSuccessHover","stateSuccessBg","stateWarning","stateWarningHover","stateWarningBg","stateError","stateErrorHover","stateErrorBg","stateInfo","stateInfoHover","stateInfoBg","interactivePrimary","interactivePrimaryHover","interactivePrimaryActive","interactiveSecondary","interactiveSecondaryHover","interactiveSecondaryActive","interactiveDisabled","defaultTheme","name","fontImportUrl","colors","colorPalettes","bg","text","spacing","xs","sm","md","lg","xl","xxl","borderRadius","shadows","breakpoints","typography","fontFamily","fontFamilyHeading","fontFamilyMono","fontSizeXs","fontSizeSm","fontSizeMd","fontSizeLg","fontSizeXl","fontSize2xl","fontWeightLight","fontWeightRegular","fontWeightSemibold","fontWeightBold","fontWeightBlack","lineHeightTight","lineHeightSnug","lineHeightNormal","lineHeightRelaxed","lineHeightLoose","letterSpacingTighter","letterSpacingTight","letterSpacingNormal","letterSpacingWide","letterSpacingWider","letterSpacingWidest","variants","display","fontSize","fontWeight","lineHeight","letterSpacing","mobile","tablet","bodyDefault","bodyLarge","bodySmall","lead","caption","textTransform","overline","pageTitle","sectionTitle","title","subtitle","body","textlink","textDecoration","bodyBold","bodyBoldLarge","components","card","background","border","shadow","padding","header","borderBottom","height","titleFontWeight","titleFontSize","titleLineHeight","descriptionLineHeight","descriptionFontWeight","descriptionFontSize","descriptionMargin","componentTokens","button","borderWidth","focusOutline","focusOutlineOffset","disabledOpacity","hoverAnimation","general","bgHover","bgActive","textHover","borderHover","secondaryDarkMode","maxWidth","borderActive","imageWrapperBorderRadius","imageAspectRatio","grid","gapXs","gapSm","gapMd","gapLg","gapXl","gapXxl","titleColor","titleMargin","welcomeColor","welcomeFontSize","welcomeMargin","buttonSpacing","contentBg","contentMaxWidth","contentBorderRadius","contentPadding","titleFontFamily","descriptionColor","descriptionFontFamily","size","fillPrimary","strokePrimary","strokeWidthPrimary","fillSecondary","strokeSecondary","strokeWidthSecondary","fillAccent","strokeAccent","strokeWidthAccent","fillSuccess","strokeSuccess","strokeWidthSuccess","fillWarning","strokeWarning","strokeWidthWarning","fillError","strokeError","strokeWidthError","sizes","heading","margin","color","h1FontSize","h1FontWeight","h1LineHeight","h1LetterSpacing","h2FontSize","h2FontWeight","h2LineHeight","h2LetterSpacing","h3FontSize","h3FontWeight","h3LineHeight","h3LetterSpacing","h4FontSize","h4FontWeight","h4LineHeight","h5FontSize","h5FontWeight","h5LineHeight","h6FontSize","h6FontWeight","h6LineHeight","displayFontSize","displayFontWeight","displayLineHeight","displayLetterSpacing","bodyDefaultFontSize","bodyDefaultFontWeight","bodyDefaultLineHeight","bodyDefaultLetterSpacing","bodyDefaultFontFamily","leadFontSize","leadFontWeight","leadLineHeight","leadLetterSpacing","captionFontSize","captionFontWeight","captionLineHeight","captionLetterSpacing","captionTextTransform","overlineFontSize","overlineFontWeight","overlineLineHeight","overlineLetterSpacing","overlineTextTransform","pageTitleFontSize","pageTitleFontWeight","pageTitleLineHeight","pageTitleLetterSpacing","pageTitleTextTransform","pageTitleColor","sectionTitleFontSize","sectionTitleFontWeight","sectionTitleLineHeight","sectionTitleLetterSpacing","titleLetterSpacing","subtitleFontSize","subtitleFontWeight","subtitleLineHeight","bodyFontSize","bodyFontWeight","bodyLineHeight","textlinkFontSize","textlinkFontWeight","textlinkLineHeight","textlinkFontFamily","textlinkTextDecoration","textlinkTextTransform","bodyBoldFontSize","bodyBoldFontWeight","bodyBoldLineHeight","bodyBoldFontFamily","bodyLargeFontSize","bodyLargeFontWeight","bodyLargeLineHeight","bodyLargeFontFamily","bodyBoldLargeFontSize","bodyBoldLargeFontWeight","bodyBoldLargeLineHeight","bodyBoldLargeFontFamily","bodySmallFontSize","bodySmallFontWeight","bodySmallLineHeight","bodySmallFontFamily","dark","colorHover","colorFocus","textDecorationFocus","textDecorationStyleFocus","colorActive","richText","headingMarginBottom","paragraphFontSize","paragraphFontWeight","paragraphLineHeight","paragraphMarginBottom","paragraphColor","listMargin","listPaddingLeft","listItemFontSize","listItemLineHeight","listItemMarginBottom","listItemColor","ulListStyleType","olListStyleType","strongFontWeight","codeFontSize","codeBg","codePadding","preFontSize","preBg","prePadding","blockquoteMargin","blockquotePadding","blockquoteBorderLeft","blockquoteColor","hrBorder","hrMargin","media","objectFit","objectPosition","aspectRatio","videoPlayer","thumbnailBg","placeholderBg","playIconSize","playIconBg","playIconBorder","playIconColor","paragraph","modal","overlayBg","contentBorder","width","toKebabCase","str","test","toLowerCase","replace","objectToCSSVars","obj","prefix","entries","filter","value","undefined","map","key","cssKey","startsWith","generateThemeCSS","theme","selector","css","colorSystem","sections","push","legacyVars","oldVar","newKey","Boolean","join","generateColorSystemCSS","typographyCSS","typographyBase","forEach","variantName","variantStyles","desktopStyles","prop","propKey","variantKey","generateTypographyCSS","vars","darkSections","sizeSections","breakpointKeys","darkSelector","componentName","componentProps","componentPrefix","camelToKebab","propValue","includes","cssVarName","sizeName","sizeProps","sizeSelector","variantProps","variantKebab","match","baseProp","state","breakpoint","breakpointProps","values","sizeSection","hasDarkContent","hasSizeContent","keys","result","generateComponentTokensCSS","ThemeContext","createContext","useTheme","context","useContext","Error","ThemeProvider","children","initialTheme","initialThemeName","useEffect","themeName","style","document","getElementById","createElement","id","fontImport","Array","isArray","url","textContent","head","contains","appendChild","applyThemeCSS","documentElement","setAttribute","currentTheme","Provider","Button","_a","buttonType","palette","label","hoverIcon","className","disabled","darkMode","animated","onClick","props","buttonClass","iconConfig","customIcon","customHoverIcon","faSparkle","faSparkles","getButtonIcon","paletteStyle","assign","backgroundColor","borderColor","_jsxs","type","ButtonLink","href","target","rel","BackgroundMedia","videoUrl","imageUrl","gradient","bgColor","baseClasses","autoPlay","muted","loop","playsInline","src","backgroundStyle","backgroundImage","WISTIA_SCRIPT_ID","Media","alt","autoplay","controls","loading","srcSet","providers","onLoad","onError","onReady","videoRef","useRef","wistiaDivRef","isClient","setIsClient","useState","isWistiaReady","setIsWistiaReady","resolvedType","detectMediaType","resolvedMuted","wistiaId","extractWistiaId","isWistia","script","async","window","_wq","current","play","catch","baseClass","classes","cssVars","wistiaOptions","ref","visibility","providerResult","options","provider","embedUrl","buildEmbedUrl","providerName","resolveCustomProvider","allow","allowFullScreen","onLoadedData","Breadcrumb","items","separator","item","index","isLast","Divider","backgroundPattern","shapeDivider","shapeColor","verticalAlign","overflow","dividerClasses","Container","fluid","as","Tag","Heading","level","variant","weight","finalStyle","headingClasses","Grid","columns","gap","rowGap","columnGap","minColumnWidth","maxColumnWidth","alignItems","justifyItems","justifyContent","columnAlign","fullWidth","gridClass","resolvedJustifyContent","gridStyles","toString","gridTemplateColumns","gapMap","GridItem","colSpan","rowSpan","colStart","rowStart","itemStyles","gridColumn","gridRow","gridColumnStart","gridRowStart","Paragraph","dangerouslySetInnerHTML","commonProps","defaultIcon","viewBox","fill","xmlns","cx","cy","r","BulletList","role","itemIcon","_b","Header","user","onLogin","onLogout","onCreateAccount","fillRule","d","_Fragment","WISTIA_PLAYER_SCRIPT","wistiaScriptLoaded","wistiaScriptLoading","wistiaLoadCallbacks","WISTIA_PLAYER_SCRIPT_ID","MediaBlock","thumbnail","playIcon","accentBorder","overlay","sparkle","accentColor","sparkSrc","sparkScale","mirror","popover","sparkSmallSrc","isPlaying","setIsPlaying","videoHandleRef","videoContainerRef","isPopover","videoSrc","hasVideo","isVideoSource","isImage","loadWistiaPlayerScript","mediaId","moduleId","loadWistiaMediaModule","handleVideoReady","useCallback","handle","handlePlay","videoEl","querySelector","sparkPath","x","y","clipPath","React","aspect","BANNER_CONFIG","hero","level2","level3","gated","mapVerticalAlignment","alignment","top","center","bottom","renderColumnMedia","mediaBlockProps","verticalAlignMap","TwoColumn","left","right","rows","variation","_children","rest","resolvedRows","row","rowVariation","rowAlign","isReversed","order","TextInput","placeholder","onChange","onBlur","validation","error","useId","errorId","isRequired","required","htmlFor","minLength","maxLength","Dropdown","isOpen","controlledOpen","onToggle","displayValue","listboxId","containerRef","internalOpen","setInternalOpen","handleToggle","next","handleClickOutside","addEventListener","removeEventListener","handleKeyDown","onKeyDown","faChevronUp","faChevronDown","Checkbox","checked","faSquareCheck","faSquare","DropdownSelect","controlledValue","internalValue","setInternalValue","selectedValues","handleToggleOption","optionValue","v","handleDropdownClose","option","EMAIL_RE","validateField","field","dropdownValidation","custom","errorMessage","selections","split","minSelections","maxSelections","trim","email","pattern","advisorsPlusColorSystem","borderWhite","advisorsPlusTheme","primaxColorSystem","textBreadcrumbSeparator","textBreadcrumbLast","textBreadcrumbHover","textBreadcrumb","containerStrokeColor","bodyTextColor","darkBackgroundColor","interactivePrimaryHoverForeground","primaxTheme","sectionDivider","componentTitle","playButton","shadowOpacity","shadowOpacityHover","shadowOpacityActive","breadcrumb","fontWeightHover","linkColor","linkHoverColor","linkActiveFontWeight","lastItemColor","lastItemFontWeight","separatorColor","focusColor","textColor","halfColumn","primaxCta","headingMaxWidth","formWidth","banner","contentGapY","mediaBlockImagePadding","mediaBlockImageOffset","divider","sparkPatternUrl","mediaBlock","borderRadiusMirror","videoBorderRadius","videoBorderRadiusMirror","videoAccentColor","accentThickness","accentGap","accentSideRow","accentSideSpan","accentBottomCol","accentBottomSpan","playIconWidth","playIconHeight","playIconPaddingLeft","playIconImageWidth","playIconImageHeight","sparkRow","sparkRowSpan","sparkCol","sparkColSpan","sparkWidth","sparkHeight","sparkRotate","sparkColMirror","sparkTranslateMirrorX","croppedSparkWidth","croppedSparkHeight","croppedSparkMaskRotate","croppedSparkMaskOffsetY","croppedSparkMaskOffsetX","croppedSparkSvgScale","croppedSparkStrokeColor","croppedSparkStrokeWidth","croppedSparkIconLgWidth","croppedSparkIconLgTop","croppedSparkIconLgRight","croppedSparkIconSmWidth","croppedSparkIconSmTop","croppedSparkIconSmLeft","croppedSparkSmallSparksWidth","croppedSparkSmallSparksTop","croppedSparkSmallSparksRight","videoHeight","maxHeight","faWidth","hoverOutAnimation","bgFocus","textFocus","bgDisabled","borderDisabled","textActive","link","danger","sectionDividerFontSize","sectionDividerFontWeight","sectionDividerLineHeight","sectionDividerColor","subtitleColor","componentTitleFontSize","componentTitleFontWeight","componentTitleLineHeight","componentTitleColor","bodyColor","bodyBoldColor","bodySmallColor","twoColumn","leftColSparkIconSmallLeft","leftColSparkIconLargeRight","rightColSparkIconSmallLeft","rightColSparkIconLargeRight","videoSection","contentGap","textGap","primaxCard","focusBorder","shadowFocus","shadowActive","iconPadding","iconContentGap","iconSize","iconActionLinkPadding","imageHeight","imageContentPadding","imageContentGap","imageActionLinkPadding","profileImageAspect","profileContentPadding","profileContentGap","profileDescriptionMaxWidth","profileActionLinkPadding","bulletList","itemGap","itemAlign","iconColor","iconContent","iconFontFamily","iconFontWeight","bodyMaxWidth","borderRadiusMobile","contentPaddingMobile","dragIndicatorBg","dragHandleBorderRadius","dragHandleBorderBottom","dragHandleMarginBottom","checkbox","borderColorHover","checkedColor","checkedColorHover","labelColor","dropdown","labelFontFamily","labelFontSize","labelFontWeight","labelLineHeight","labelGap","placeholderColor","borderColorFocus","chevronSize","chevronColor","panelBg","panelBorderColor","panelMaxHeight","panelPadding","errorFontSize","errorFontWeight","errorColor","errorTextAlign","dropdownSelect","optionPadding","optionBgHover","textInput","formGap","fieldsGap","disclaimerFontFamily","disclaimerFontSize","disclaimerFontWeight","disclaimerLineHeight","disclaimerColor","disclaimerLinkColor","useColorTokens","getCSSVar","varName","getComputedStyle","getPropertyValue","cssVar","align","headingLevel","config","bannerType","hasBackgroundVideo","backgroundVideo","BannerClass","contentStyle","textAlign","gridAlignItems","contentAlignSelf","contentVerticalAlign","mediaAlignSelf","mediaVerticalAlign","gridGap","alignSelf","breadcrumbs","dividerProps","ctaClass","description","buttonText","externalLink","ctaClasses","imageAlt","hoverEffect","ariaLabel","testId","event","preventDefault","handleLinkClick","wrapperStyle","cardStyle","imageWrapperStyle","bodyStyle","cardClasses","cardContent","tabIndex","mediaPosition","content","buildMedia","position","rowVariant","shouldMirror","wrapMedia","mediaNode","pos","svg","stroke","strokeWidth","decorative","customStyles","onClose","closeOnOverlayClick","closeOnEscape","forceBottomSheet","dialogRef","contentRef","previousFocusRef","dragY","setDragY","isDragging","setIsDragging","isClosing","setIsClosing","touchStartRef","handleClose","dismissSheet","timer","setTimeout","clearTimeout","dialog","open","activeElement","showModal","close","focus","handleCancel","handleTouchStart","touch","touches","clientY","time","Date","now","handleTouchMove","deltaY","handleTouchEnd","elapsed","VELOCITY_THRESHOLD","transform","transition","onTouchStart","onTouchMove","onTouchEnd","setUser","titleAs","metadata","buttonVariant","resolvedTitleAs","richTextClasses","__html","fields","submitLabel","disclaimer","onSubmit","onValidate","formRef","setValues","fromEntries","f","dropdownValues","setDropdownValues","errors","setErrors","touched","setTouched","handleChange","prev","handleDropdownChange","selected","handleBlur","err","handleSubmit","fieldErrors","hasErrors","noValidate","_c","_d","requestSubmit","ariaDescribedBy","linkUrl","isExternal","playbackMode","mediaProps","Promise","resolve","cb","onload","then","mediaScriptSrc","mediaScript","renderPlayIcon","points","transparentPng","node","player","thumbnailEl","insertBefore","firstChild","bulletPoints","bulletIcon","contentBlock","existingStyle","remove","tokenName"],"mappings":"6VA0CO,SAASA,EAAOC,EAAGC,GACtB,IAAIC,EAAI,CAAA,EACR,IAAK,IAAIC,KAAKH,EAAOI,OAAOC,UAAUC,eAAeC,KAAKP,EAAGG,IAAMF,EAAEO,QAAQL,GAAK,IAC9ED,EAAEC,GAAKH,EAAEG,IACb,GAAS,MAALH,GAAqD,mBAAjCI,OAAOK,sBACtB,KAAIC,EAAI,EAAb,IAAgBP,EAAIC,OAAOK,sBAAsBT,GAAIU,EAAIP,EAAEQ,OAAQD,IAC3DT,EAAEO,QAAQL,EAAEO,IAAM,GAAKN,OAAOC,UAAUO,qBAAqBL,KAAKP,EAAGG,EAAEO,MACvER,EAAEC,EAAEO,IAAMV,EAAEG,EAAEO,IAF4B,CAItD,OAAOR,CACX,CAoRkD,mBAApBW,iBAAiCA,gBC3SxD,MAAMC,EAAoE,CAC/EC,MAAO,CACLC,QAASC,EAAAA,IAACC,EAAAA,iBAAgBC,KAAMC,EAAAA,eAChCC,MAAOJ,EAAAA,IAACC,EAAAA,iBAAgBC,KAAMG,EAAAA,gBAEhCC,UAAW,CACTP,QAASC,EAAAA,IAACC,EAAAA,iBAAgBC,KAAMK,EAAAA,aAChCH,MAAOJ,EAAAA,IAACC,EAAAA,iBAAgBC,KAAMM,EAAAA,cAEhCC,IAAK,CACHV,QAASC,EAAAA,IAACC,EAAAA,iBAAgBC,KAAMQ,EAAAA,iBAElCC,QAAS,CACPZ,QAASC,EAAAA,IAACC,EAAAA,iBAAgBC,KAAMU,EAAAA,cAElCC,SAAU,CACRd,QAASC,EAAAA,IAACC,EAAAA,iBAAgBC,KAAMY,EAAAA,cAElCC,SAAU,CACRhB,QAASC,EAAAA,IAACC,EAAAA,iBAAgBC,KAAMc,EAAAA,qBCzC7B,MAAMC,EAAkC,CAI7CC,WAAY,CAEV,gBAAiB,UACjB,iBAAkB,UAClB,iBAAkB,UAClB,iBAAkB,UAClB,iBAAkB,UAClB,iBAAkB,UAClB,iBAAkB,UAClB,iBAAkB,UAClB,iBAAkB,UAClB,iBAAkB,UAGlB,kBAAmB,UACnB,mBAAoB,UACpB,mBAAoB,UACpB,mBAAoB,UACpB,mBAAoB,UACpB,mBAAoB,UACpB,mBAAoB,UACpB,mBAAoB,UACpB,mBAAoB,UACpB,mBAAoB,UAGpB,kBAAmB,UACnB,mBAAoB,UACpB,mBAAoB,UACpB,mBAAoB,UACpB,mBAAoB,UACpB,mBAAoB,UACpB,mBAAoB,UACpB,mBAAoB,UACpB,mBAAoB,UACpB,mBAAoB,UACpB,mBAAoB,UAGpB,mBAAoB,UACpB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UAGrB,mBAAoB,UACpB,oBAAqB,UACrB,oBAAqB,UACrB,iBAAkB,UAClB,kBAAmB,UACnB,kBAAmB,UACnB,mBAAoB,UACpB,oBAAqB,UACrB,oBAAqB,UAGrB,cAAe,UACf,cAAe,WAMjBC,SAAU,CAER,uDAAwD,0BACxD,qDAAsD,0BACtD,sDAAuD,0BACvD,yDAA0D,0BAC1D,uDAAwD,2BACxD,wDAAyD,2BACzD,sDAAuD,2BACvD,sDAAuD,0BACvD,oDAAqD,0BACrD,qDAAsD,0BACtD,uDAAwD,2BACxD,uDAAwD,qBAGxD,kDAAmD,0BACnD,oDAAqD,0BACrD,sDAAuD,0BACvD,qDAAsD,2BACtD,oDAAqD,qBACrD,oDAAqD,2BACrD,mDAAoD,0BACpD,iDAAkD,wBAClD,+CAAgD,wBAGhD,kDAAmD,2BACnD,mDAAoD,2BACpD,kDAAmD,2BACnD,+CAAgD,wBAGhD,uDAAwD,0BACxD,oDAAqD,2BACrD,kDAAmD,2BACnD,uDAAwD,0BACxD,oDAAqD,2BACrD,kDAAmD,2BACnD,qDAAsD,wBACtD,kDAAmD,yBACnD,gDAAiD,yBACjD,oDAAqD,uBACrD,iDAAkD,wBAClD,+CAAgD,wBAGhD,2DAA4D,wBAC5D,yDAA0D,wBAC1D,0DAA2D,wBAC3D,4DAA6D,2BAG7DC,QAAS,8DACTC,aAAc,4DACdC,cAAe,6DACfC,YAAa,2DACbC,UAAW,wBACXC,eAAgB,wBAChBC,gBAAiB,wBACjBC,cAAe,2DACfC,OAAQ,6DACRC,YAAa,2DACbC,aAAc,4DACdC,WAAY,0BACZC,SAAU,2BACVC,cAAe,2BACfC,eAAgB,2BAChBC,aAAc,0BACdC,YAAa,2DACbC,cAAe,6DACfC,WAAY,0DACZC,aAAc,4DACdC,YAAa,2DACbC,aAAc,2DACdC,SAAU,wDACVC,cAAe,sDACfC,UAAW,8DACXC,YAAa,gEACbC,WAAY,+DACZC,UAAW,8DACXC,UAAW,8DACXC,cAAe,0DACfC,aAAc,yDACdC,aAAc,yDACdC,YAAa,sDACbC,aAAc,2DACdC,kBAAmB,yDACnBC,eAAgB,8DAChBC,aAAc,2DACdC,kBAAmB,yDACnBC,eAAgB,8DAChBC,WAAY,yDACZC,gBAAiB,uDACjBC,aAAc,4DACdC,UAAW,wDACXC,eAAgB,sDAChBC,YAAa,2DACbC,mBAAoB,kEACpBC,wBAAyB,gEACzBC,yBAA0B,iEAC1BC,qBAAsB,2BACtBC,0BAA2B,2BAC3BC,2BAA4B,2BAC5BC,oBAAqB,mEAOrB,gDAAiD,wBACjD,8CAA+C,wBAC/C,+CAAgD,wBAChD,6CAA8C,2DAC9C,2CAA4C,2DAC5C,4CAA6C,wBAC7C,0CAA2C,wBAE3C,4CAA6C,6DAC7C,0CAA2C,2DAC3C,2CAA4C,4DAC5C,yCAA0C,0BAC1C,uCAAwC,0BACxC,wCAAyC,wBACzC,sCAAuC,wBAEvC,kDAAmD,cACnD,gDAAiD,8DACjD,iDAAkD,6DAClD,+CAAgD,8DAChD,6CAA8C,2DAC9C,8CAA+C,8DAC/C,4CAA6C,8DAE7C,gDAAiD,cACjD,8CAA+C,gEAC/C,+CAAgD,+DAChD,6CAA8C,2DAC9C,2CAA4C,2DAC5C,4CAA6C,0DAC7C,0CAA2C,yDAE3C,8CAA+C,cAC/C,4CAA6C,gEAC7C,6CAA8C,+DAC9C,2CAA4C,2DAC5C,yCAA0C,2DAC1C,0CAA2C,cAC3C,wCAAyC,cAGzC,gDAAiD,cACjD,8CAA+C,UAC/C,+CAAgD,UAChD,6CAA8C,UAC9C,2CAA4C,UAC5C,4CAA6C,UAC7C,4CAA6C,UAC7C,0CAA2C,UAC3C,2CAA4C,UAE5C,iDAAkD,cAClD,+CAAgD,UAChD,gDAAiD,UACjD,8CAA+C,UAC/C,4CAA6C,UAC7C,6CAA8C,UAC9C,6CAA8C,UAC9C,2CAA4C,UAC5C,4CAA6C,UAE7C,iDAAkD,cAClD,+CAAgD,UAChD,gDAAiD,UACjD,8CAA+C,UAC/C,4CAA6C,UAC7C,6CAA8C,UAC9C,6CAA8C,UAC9C,2CAA4C,UAC5C,4CAA6C,YC5PpCC,EAA4B,CACvCC,KAAM,UACNC,cAAe,sCAGfC,OAAQ,CACNzD,WAAYD,EAAmBC,WAC/BC,SAAUF,EAAmBE,UAG/ByD,cAAe,CACb,CAAEH,KAAM,UAAWI,GAAI,UAAWC,KAAM,eACxC,CAAEL,KAAM,YAAaI,GAAI,YAAaC,KAAM,iBAC5C,CAAEL,KAAM,SAAUI,GAAI,SAAUC,KAAM,cACtC,CAAEL,KAAM,WAAYI,GAAI,WAAYC,KAAM,iBAG5CC,QAAS,CACPC,GAAI,MACJC,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,OACJC,IAAK,QAGPC,aAAc,CACZL,GAAI,MACJC,GAAI,MACJC,GAAI,OACJC,GAAI,QAGNG,QAAS,CACPN,GAAI,+BACJC,GAAI,gCACJC,GAAI,gCACJC,GAAI,mCAGNI,YAAa,CACXR,GAAI,QACJC,GAAI,QACJC,GAAI,QACJC,GAAI,QACJC,GAAI,SACJC,IAAK,UAGPI,WAAY,CAEVC,WAAY,wBACZC,kBAAmB,wBACnBC,eAAgB,+DAGhBC,WAAY,OACZC,WAAY,OACZC,WAAY,OACZC,WAAY,OACZC,WAAY,OACZC,YAAa,OAGbC,gBAAiB,MACjBC,kBAAmB,MACnBC,mBAAoB,MACpBC,eAAgB,MAChBC,gBAAiB,MAGjBC,gBAAiB,OACjBC,eAAgB,QAChBC,iBAAkB,MAClBC,kBAAmB,QACnBC,gBAAiB,OAGjBC,qBAAsB,UACtBC,mBAAoB,WACpBC,oBAAqB,IACrBC,kBAAmB,UACnBC,mBAAoB,SACpBC,oBAAqB,QAGrBC,SAAU,CAERC,QAAS,CACPC,SAAU,OACVC,WAAY,MACZC,WAAY,MACZC,cAAe,UACfC,OAAQ,CACNJ,SAAU,SACVE,WAAY,OAEdG,OAAQ,CACNL,SAAU,SAKdM,YAAa,CACXN,SAAU,OACVC,WAAY,MACZC,WAAY,MACZC,cAAe,IACfC,OAAQ,CACNJ,SAAU,WACVE,WAAY,QAGhBK,UAAW,CACTP,SAAU,WACVC,WAAY,MACZC,WAAY,MACZC,cAAe,IACfC,OAAQ,CACNJ,SAAU,SAGdQ,UAAW,CACTR,SAAU,WACVC,WAAY,MACZC,WAAY,MACZC,cAAe,IACfC,OAAQ,CACNJ,SAAU,YAKdS,KAAM,CACJT,SAAU,UACVC,WAAY,MACZC,WAAY,MACZC,cAAe,UACfC,OAAQ,CACNJ,SAAU,aAGdU,QAAS,CACPV,SAAU,UACVC,WAAY,MACZC,WAAY,MACZC,cAAe,SACfQ,cAAe,aAEjBC,SAAU,CACRZ,SAAU,UACVC,WAAY,MACZC,WAAY,MACZC,cAAe,QACfQ,cAAe,aAIjBE,UAAW,CACTb,SAAU,SACVC,WAAY,MACZC,WAAY,MACZC,cAAe,IACfQ,cAAe,YACfP,OAAQ,CACNJ,SAAU,OACVE,WAAY,OAEdG,OAAQ,CACNL,SAAU,WAGdc,aAAc,CACZd,SAAU,WACVC,WAAY,MACZC,WAAY,MACZC,cAAe,UACfC,OAAQ,CACNJ,SAAU,WAEZK,OAAQ,CACNL,SAAU,YAGde,MAAO,CACLf,SAAU,SACVC,WAAY,MACZC,WAAY,MACZC,cAAe,IACfC,OAAQ,CACNJ,SAAU,WACVE,WAAY,OAEdG,OAAQ,CACNL,SAAU,aAGdgB,SAAU,CACRhB,SAAU,SACVC,WAAY,MACZC,WAAY,MACZE,OAAQ,CACNJ,SAAU,WAGdiB,KAAM,CACJjB,SAAU,WACVC,WAAY,MACZC,WAAY,OAEdgB,SAAU,CACRlB,SAAU,WACVC,WAAY,MACZC,WAAY,MACZS,cAAe,YACfQ,eAAgB,aAElBC,SAAU,CACRpB,SAAU,WACVC,WAAY,MACZC,WAAY,OAEdmB,cAAe,CACbrB,SAAU,WACVC,WAAY,MACZC,WAAY,SAKlBoB,WAAY,CACVC,KAAM,CACJC,WAAY,mDACZC,OAAQ,oEACRxD,aAAc,MACdyD,OAAQ,+BACRC,QAAS,QAEXC,OAAQ,CACNJ,WAAY,mDACZK,aAAc,oEACdC,OAAQ,OACRH,QAAS,UAEXvI,IAAK,CACHoI,WAAY,iBACZvD,aAAc,YACd0D,QAAS,OACTI,gBAAiB,MACjBC,cAAe,OACfC,gBAAiB,OACjBC,sBAAuB,OACvBC,sBAAuB,MACvBC,oBAAqB,OACrBC,kBAAmB,qBAKvBC,gBAAiB,CACfC,OAAQ,CAENtE,aAAc,OACduE,YAAa,MACbb,QAAS,iBACT3B,SAAU,OACVC,WAAY,MACZC,WAAY,OACZ7B,WAAY,wDAGZoE,aAAc,gEACdC,mBAAoB,MAGpBC,gBAAiB,MAGjBjB,OAAQ,qCAGRkB,eAAgB,OAGhB9C,SAAU,CACR+C,QAAS,CACPrF,GAAI,uDACJsF,QAAS,qDACTC,SAAU,sDACVtF,KAAM,oDACNuF,UAAW,kDACXvB,OAAQ,mDACRwB,YAAa,kDAEf7J,IAAK,CACHoE,GAAI,mDACJsF,QAAS,iDACTC,SAAU,kDACVtF,KAAM,gDACNuF,UAAW,8CACXvB,OAAQ,+CACRwB,YAAa,8CAEf9I,UAAW,CACTqD,GAAI,yDACJsF,QAAS,uDACTC,SAAU,wDACVtF,KAAM,sDACNuF,UAAW,oDACXvB,OAAQ,qDACRwB,YAAa,oDAEf3J,QAAS,CACPkE,GAAI,uDACJsF,QAAS,qDACTC,SAAU,sDACVtF,KAAM,oDACNuF,UAAW,kDACXvB,OAAQ,mDACRwB,YAAa,kDAEfzJ,SAAU,CACRgE,GAAI,wDACJsF,QAAS,sDACTC,SAAU,uDACVtF,KAAM,qDACNuF,UAAW,mDACXvB,OAAQ,oDACRwB,YAAa,mDAEfvJ,SAAU,CACR8D,GAAI,wDACJsF,QAAS,sDACTC,SAAU,uDACVtF,KAAM,qDACNuF,UAAW,mDACXvB,OAAQ,oDACRwB,YAAa,mDAEfC,kBAAmB,CACjB1F,GAAI,cACJC,KAAM,2DACNgE,OAAQ,2DACRqB,QAAS,kEACTG,YAAa,gEACbF,SAAU,oEAKhBxB,KAAM,CAEJ/D,GAAI,gEACJiE,OAAQ,oEACRxD,aAAc,sCACdyD,OAAQ,+BACRC,QAAS,gCACTwB,SAAU,QAGVV,aAAc,gEACdC,mBAAoB,MAGpBU,aAAc,4EAGdC,yBACE,0FACFC,iBAAkB,MAGlBzF,GAAI,CACFyF,iBAAkB,SAItBC,KAAM,CAEJC,MAAO,gCACPC,MAAO,gCACPC,MAAO,gCACPC,MAAO,gCACPC,MAAO,gCACPC,OAAQ,kCAGVjC,OAAQ,CAENpE,GAAI,gEACJiE,OAAQ,mEACRK,OAAQ,OACRH,QAAS,8DAGTmC,WAAY,2DACZ9B,cAAe,2DACfD,gBAAiB,4DACjBgC,YAAa,gDAGbC,aAAc,6DACdC,gBAAiB,mEACjBC,cAAe,sCAGfC,cAAe,uCAGjB/K,IAAK,CAEH0I,OAAQ,QAGRsC,UAAW,8DACXC,gBAAiB,QACjBC,oBAAqB,gBACrBC,eAAgB,kGAGhBT,WAAY,2DACZ9B,cAAe,OACfC,gBAAiB,OACjBF,gBAAiB,MACjBgC,YAAa,WACbS,gBAAiB,+FAGjBC,iBAAkB,2DAClBrC,oBAAqB,OACrBF,sBAAuB,OACvBC,sBAAuB,MACvBE,kBAAmB,mBACnBqC,sBAAuB,4CAGvB7G,GAAI,CACFiE,OAAQ,QACRE,cAAe,SACfC,gBAAiB,MACjBG,oBAAqB,WACrBF,sBAAuB,QAI3BrJ,KAAM,CAEJ8L,KAAM,OAGNC,YAAa,wBACbC,cAAe,wBACfC,mBAAoB,IAEpBC,cAAe,wBACfC,gBAAiB,wBACjBC,qBAAsB,IAEtBC,WAAY,0BACZC,aAAc,0BACdC,kBAAmB,IAEnBC,YAAa,yBACbC,cAAe,yBACfC,mBAAoB,IAEpBC,YAAa,0BACbC,cAAe,0BACfC,mBAAoB,IAEpBC,UAAW,uBACXC,YAAa,uBACbC,iBAAkB,IAGlBC,MAAO,CACLnI,GAAI,CACFgH,KAAM,QAER/G,GAAI,CACF+G,KAAM,QAER9G,GAAI,CACF8G,KAAM,QAER7G,GAAI,CACF6G,KAAM,QAER5G,GAAI,CACF4G,KAAM,UAKZoB,QAAS,CAEPC,OAAQ,IACRrE,QAAS,IACTsE,MAAO,2DACP5H,WAAY,+FAGZ6H,WAAY,sDACZC,aAAc,sDACdC,aAAc,4DACdC,gBAAiB,mEAGjBC,WAAY,mDACZC,aAAc,sDACdC,aAAc,4DACdC,gBAAiB,mEAGjBC,WAAY,sDACZC,aAAc,sDACdC,aAAc,4DACdC,gBAAiB,6DAGjBC,WAAY,qDACZC,aAAc,0DACdC,aAAc,4DAGdC,WAAY,sDACZC,aAAc,0DACdC,aAAc,4DAGdC,WAAY,mDACZC,aAAc,0DACdC,aAAc,4DAGdC,gBAAiB,gEACjBC,kBAAmB,iEACnBC,kBAAmB,iEACnBC,qBAAsB,wEAGtBC,oBAAqB,qEACrBC,sBAAuB,sEACvBC,sBAAuB,sEACvBC,yBAA0B,uEAC1BC,sBAAuB,4CAGvBC,aAAc,gEACdC,eAAgB,8DAChBC,eAAgB,8DAChBC,kBAAmB,qEAGnBC,gBAAiB,mEACjBC,kBAAmB,iEACnBC,kBAAmB,iEACnBC,qBAAsB,uEACtBC,qBAAsB,0EAGtBC,iBAAkB,oEAClBC,mBAAoB,kEACpBC,mBAAoB,kEACpBC,sBAAuB,uEACvBC,sBAAuB,2EAGvBC,kBAAmB,mEACnBC,oBAAqB,oEACrBC,oBAAqB,oEACrBC,uBAAwB,2EACxBC,uBAAwB,6EACxBC,eAAgB,0DAGhBC,qBAAsB,0EACtBC,uBAAwB,uEACxBC,uBAAwB,uEACxBC,0BAA2B,8EAG3BvH,cAAe,gEACfD,gBAAiB,+DACjBE,gBAAiB,+DACjBuH,mBAAoB,sEAGpBC,iBAAkB,mEAClBC,mBAAoB,kEACpBC,mBAAoB,kEAGpBC,aAAc,iEACdC,eAAgB,8DAChBC,eAAgB,8DAGhBC,iBAAkB,qEAClBC,mBAAoB,kEACpBC,mBAAoB,kEACpBC,mBAAoB,4CACpBC,uBAAwB,4EACxBC,sBAAuB,2EAGvBC,iBAAkB,sEAClBC,mBAAoB,mEACpBC,mBAAoB,mEACpBC,mBAAoB,4CAGpBC,kBAAmB,uEACnBC,oBAAqB,oEACrBC,oBAAqB,oEACrBC,oBAAqB,4CAGrBC,sBAAuB,4EACvBC,wBAAyB,yEACzBC,wBAAyB,yEACzBC,wBAAyB,4CAGzBC,kBAAmB,uEACnBC,oBAAqB,oEACrBC,oBAAqB,oEACrBC,oBAAqB,4CAGrBhL,OAAQ,CACN8F,WAAY,0DACZE,aAAc,4DACdE,WAAY,6DACZE,aAAc,2DACdE,WAAY,4DACZI,WAAY,6DACZG,WAAY,8DACZG,WAAY,8DACZG,gBAAiB,iEACjBE,kBAAmB,gEACnBE,oBAAqB,wEACrBE,sBAAuB,qEACvBG,aAAc,gEACdc,kBAAmB,kEACnBE,oBAAqB,mEACrBI,qBAAsB,wEACtBpH,cAAe,iEACfC,gBAAiB,8DACjBwH,iBAAkB,mEAIpBpJ,OAAQ,CACN6F,WAAY,6DACZE,aAAc,2DACdE,WAAY,8DACZI,WAAY,8DACZa,gBAAiB,+DACjBuB,kBAAmB,oEACnBM,qBAAsB,wEACtBpH,cAAe,kEAIjBqJ,KAAM,CACJpF,MAAO,uBAIX5K,SAAU,CACR4K,MAAO,wDACPjG,SAAU,qEACVC,WAAY,kEACZkB,eAAgB,4EAEhBmK,WAAY,sDAEZC,WAAY,wDACZC,oBAAqB,YACrBC,yBAA0B,QAC1BhJ,aAAc,gEACdC,mBAAoB,MAEpBgJ,YAAa,sDAEbL,KAAM,CACJpF,MAAO,2DACPqF,WAAY,0DACZC,WAAY,2DACZG,YAAa,4DAIjBC,SAAU,CAER1F,MAAO,2DACP5H,WAAY,4CACZ6B,WAAY,wDAGZ0L,oBAAqB,sCAGrBC,kBAAmB,qEACnBC,oBAAqB,sEACrBC,oBAAqB,sEACrBC,sBAAuB,sCACvBC,eAAgB,2DAGhBC,WAAY,wCACZC,gBAAiB,sCACjBC,iBAAkB,qEAClBC,mBAAoB,sEACpBC,qBAAsB,qCACtBC,cAAe,2DACfC,gBAAiB,OACjBC,gBAAiB,UAGjBC,iBAAkB,sDAGlBC,aAAc,UACdC,OAAQ,+DACRC,YAAa,mBAEbC,YAAa,WACbC,MAAO,+DACPC,WAAY,sCAGZC,iBAAkB,wCAClBC,kBAAmB,yEACnBC,qBAAsB,oEACtBC,gBAAiB,6DAGjBC,SAAU,oEACVC,SAAU,wCAGVlN,OAAQ,CACNyL,kBAAmB,wEACnBE,oBAAqB,qEACrBK,iBAAkB,yEAIpBf,KAAM,CACJpF,MAAO,2DACPgG,eAAgB,2DAChBM,cAAe,2DACfa,gBAAiB,6DAIrBG,MAAO,CACL/P,GAAI,cACJS,aAAc,IACduP,UAAW,QACXC,eAAgB,SAChBC,YAAa,OAEbrC,KAAM,CACJ7N,GAAI,gEAIRmQ,YAAa,CACX1P,aAAc,IACd2P,YAAa,gEACbC,cAAe,UACfC,aAAc,OACdC,WAAY,qBACZC,eAAgB,2BAChBC,cAAe,OACfxL,aAAc,gEAEd4I,KAAM,CACJuC,YAAa,8DACbG,WAAY,uBAIhBG,UAAW,CAETlO,SAAU,qEACVC,WAAY,sEACZC,WAAY,sEACZ+F,MAAO,2DACP5H,WAAY,4CACZ8B,cAAe,uEAGfuM,iBAAkB,sDAGlBtM,OAAQ,CACNJ,SAAU,wEACVE,WAAY,sEAGdG,OAAQ,CACNL,SAAU,qEACVE,WAAY,uEAIdmL,KAAM,CACJpF,MAAO,6DAIXkI,MAAO,CAELC,UAAW,qBAGXhK,UAAW,gEACXiK,cAAe,oEACf9J,eAAgB,gCAChBtG,aAAc,sCACdyD,OAAQ,+BACRyB,SAAU,UACVmL,MAAO,OAGP7L,aAAc,gEACdC,mBAAoB,MAGpBoD,MAAO,CACLlI,GAAI,CACFuF,SAAU,QACVoB,eAAgB,iCAElB1G,GAAI,CACFsF,SAAU,UACVoB,eAAgB,iCAElBzG,GAAI,CACFqF,SAAU,QACVoB,eAAgB,mCAKpBnE,OAAQ,CACNmE,eAAgB,gCAChBpB,SAAU,qBAIZkI,KAAM,CACJjH,UAAW,8DACXiK,cAAe,uECp1BjB,SAAUE,EAAYC,GAE1B,MAD2B,2BACJC,KAAKD,GACnBA,EAAIE,cAENF,EACJG,QAAQ,kBAAmB,SAC3BA,QAAQ,eAAgB,SACxBD,aACL,CCRA,SAASE,EAAgBC,EAAyCC,GAChE,OAAOhX,OAAOiX,QAAQF,GACnBG,OAAO,EAAC,CAAGC,UAAqBC,IAAVD,GACtBE,IAAI,EAAEC,EAAKH,MAEV,MAAMI,EAASD,EAAIE,WAAW,SAAWF,EAAIE,WAAW,UAAYF,EAAMb,EAAYa,GACtF,MAAO,OAAON,IAASO,MAAWJ,MAExC,UAyGgBM,EAAiBC,EAAoBC,EAAmB,SACtE,IAAIC,EAAM,GAOVA,GA1GF,SAAgCC,EAA0BF,EAAmB,SAC3E,MAAMG,EAAqB,GAG3BA,EAASC,QAAQjB,EAAgBe,EAAY9V,WAAiD,KAG9F+V,EAASC,QAAQjB,EAAgBe,EAAY7V,SAA+C,KAG5F,MAUMgW,EAAahY,OAAOiX,QAVoB,CAC5C,eAAgB,cAChB,iBAAkB,gBAClB,eAAgB,cAChB,cAAe,aACf,iBAAkB,gBAClB,gBAAiB,eACjB,gBAAiB,iBAIhBI,IAAI,EAAEY,EAAQC,MACb,MAAMf,EAAQU,EAAY7V,SAASkW,GACnC,OAAOf,EAAQ,OAAOc,MAAWd,KAAW,KAE7CD,OAAOiB,SAIV,OAFAL,EAASC,QAAQC,GAEV,GAAGL,QAAeG,EAASM,KAAK,UACzC,CA4ESC,CAJa,CAClBtW,WAAY2V,EAAMlS,OAAOzD,WACzBC,SAAU0V,EAAMlS,OAAOxD,UAEkB2V,GAC3CC,GAAO,OAGP,MAAMU,EAzER,SAA+BhS,EAA6BqR,EAAmB,SAC7E,MAAMG,EAAqB,IAGrB9P,SAAEA,GAAgC1B,EAAnBiS,EAAc5Y,EAAK2G,EAAlC,CAAA,aAkDN,OA/CAtG,OAAOiX,QAAQsB,GAAgBC,QAAQ,EAAElB,EAAKH,MAC5C,QAAcC,IAAVD,EAAqB,CACvB,MAAMI,EAASd,EAAYa,GAC3BQ,EAASC,KAAK,8BAA8BR,MAAWJ,KACzD,IAIEnP,GACFhI,OAAOiX,QAAQjP,GAAUwQ,QAAQ,EAAEC,EAAaC,MAC9C,GAAIA,EAAe,CACjB,MAAMpQ,OAAEA,EAAMC,OAAEA,GAA6BmQ,EAAlBC,EAAahZ,EAAK+Y,EAAvC,CAAA,SAAA,WAGN1Y,OAAOiX,QAAQ0B,GAAeH,QAAQ,EAAEI,EAAMzB,MAC5C,QAAcC,IAAVD,EAAqB,CACvB,MAAM0B,EAAUpC,EAAYmC,GACtBE,EAAarC,EAAYgC,GAC/BX,EAASC,KAAK,8BAA8Be,aAAsBD,MAAY1B,KAChF,IAIE7O,GACFtI,OAAOiX,QAAQ3O,GAAQkQ,QAAQ,EAAEI,EAAMzB,MACrC,QAAcC,IAAVD,EAAqB,CACvB,MAAM0B,EAAUpC,EAAYmC,GACtBE,EAAarC,EAAYgC,GAC/BX,EAASC,KAAK,8BAA8Be,YAAqBD,MAAY1B,KAC/E,IAKA5O,GACFvI,OAAOiX,QAAQ1O,GAAQiQ,QAAQ,EAAEI,EAAMzB,MACrC,QAAcC,IAAVD,EAAqB,CACvB,MAAM0B,EAAUpC,EAAYmC,GACtBE,EAAarC,EAAYgC,GAC/BX,EAASC,KAAK,8BAA8Be,YAAqBD,MAAY1B,KAC/E,GAGN,IAIGW,EAASvX,OAAS,EAAI,GAAGoX,QAAeG,EAASM,KAAK,WAAa,EAC5E,CAkBwBW,CAAsBrB,EAAMpR,WAAYqR,GAC1DW,IACFV,GAAOU,EACPV,GAAO,QAIT,MAAME,EAAqC,CAAA,EAG3CA,EAAkB,QAAIhB,EAAgBY,EAAM9R,QAA8C,wBAG1FkS,EAAS,iBAAmBhB,EAC1BY,EAAMvR,aACN,8BAIF2R,EAAkB,QAAIhB,EAAgBY,EAAMtR,QAA8C,uBAG1F0R,EAAsB,YAAIhB,EAAgBY,EAAMrR,YAAkD,eAGlGyR,EAAS,kBAAoBhB,EAC3BY,EAAMlO,WAAWC,KACjB,+BAEFqO,EAAS,oBAAsBhB,EAC7BY,EAAMlO,WAAWM,OACjB,iCAEFgO,EAAS,iBAAmBhB,EAC1BY,EAAMlO,WAAWlI,IACjB,8BAgBF,OARAsW,GAAO,GAAGD,MAJQ3X,OAAOiX,QAAQa,GAC9BT,IAAI,EAAE/R,EAAM0T,KAAU,UAAU1T,SAAY0T,EAAKZ,KAAK,SACtDA,KAAK,SAKJV,EAAMlN,kBACRoN,GAAO,OACPA,GAoBJ,SAAoCpN,EAAkCmN,EAAmB,SACvF,MAAMG,EAAqB,GACrBmB,EAAyB,GACzBC,EAA6C,CAAA,EAG7CC,EAAiB,CAAC,UAAW,SAAU,SAAU,KAAM,KAAM,KAAM,MAEzErB,EAASC,KAAK,GAAGJ,OACjBG,EAASC,KAAK,mCAGd,MAAMqB,EAA4B,UAAbzB,EAAuB,0BAA4B,GAAGA,4BAC3EsB,EAAalB,KAAK,GAAGqB,OACrBH,EAAalB,KAAK,+BAGlB/X,OAAOiX,QAAQzM,GAAiBgO,QAAQ,EAAEa,EAAeC,MACvD,GAAIA,GAA4C,iBAAnBA,EAA6B,CACxD,MAAMC,EAAkBC,EAAaH,GACrCvB,EAASC,KAAK,UAAUsB,kBAKxBrZ,OAAOiX,QAAQqC,GAAgBd,QAAQ,EAAEK,EAASY,MAEhD,IAAIN,EAAeO,SAASb,IAAwB,aAAZA,GAAsC,SAAZA,GAAkC,UAAZA,QAGtEzB,IAAdqC,GAAgD,iBAAdA,EAAwB,CAC5D,MAAME,EAAaH,EAAaX,GAChCf,EAASC,KAAK,OAAOwB,KAAmBI,MAAeF,KACzD,IAIEH,EAAe/F,MAAuC,iBAAxB+F,EAAe/F,OAE/C0F,EAAalB,KAAK,UAAUsB,8BAC5BrZ,OAAOiX,QAAQqC,EAAe/F,MAAMiF,QAAQ,EAAEK,EAASY,MACrD,QAAkBrC,IAAdqC,GAAgD,iBAAdA,EAAwB,CAC5D,MAAME,EAAaH,EAAaX,GAChCI,EAAalB,KAAK,OAAOwB,KAAmBI,MAAeF,KAC7D,KAKAH,EAAetL,OAAyC,iBAAzBsL,EAAetL,OAChDhO,OAAOiX,QAAQqC,EAAetL,OAAOwK,QAAQ,EAAEoB,EAAUC,MACvD,GAAIA,GAAkC,iBAAdA,EAAwB,CAE9C,IAAKX,EAAaU,GAAW,CAC3B,MAAME,EACS,UAAbnC,EAAuB,eAAeiC,MAAe,GAAGjC,iBAAwBiC,MAClFV,EAAaU,GAAY,CAAC,GAAGE,MAAkB,cAAcF,OAC/D,CAEAV,EAAaU,GAAU7B,KAAK,UAAUsB,iBAA6BO,QACnE5Z,OAAOiX,QAAQ4C,GAAWrB,QAAQ,EAAEK,EAASY,MAC3C,QAAkBrC,IAAdqC,GAAgD,iBAAdA,EAAwB,CAC5D,MAAME,EAAaH,EAAaX,GAChCK,EAAaU,GAAU7B,KAAK,OAAOwB,KAAmBI,MAAeF,KACvE,GAEJ,IAKAH,EAAetR,UAA+C,iBAA5BsR,EAAetR,UACnDhI,OAAOiX,QAAQqC,EAAetR,UAAUwQ,QAAQ,EAAEC,EAAasB,MAC7D,GAAIA,GAAwC,iBAAjBA,EAA2B,CACpD,MAAMC,EAAeR,EAAaf,GAGlCzY,OAAOiX,QAAQ8C,GAAcvB,QAAQ,EAAEK,EAASY,MAE9C,IAAIN,EAAeO,SAASb,IAAwB,SAAZA,QAEtBzB,IAAdqC,GAAgD,iBAAdA,EAAwB,CAG5D,MAAMQ,EAAQpB,EAAQoB,MAAM,4BAC5B,GAAIA,EAAO,CACT,MAAMC,EAAWD,EAAM,GACjBE,EAAQF,EAAM,GAAKA,EAAM,GAAGrD,cAAgB,KAG5C+C,EAAaQ,EACf,KAAKZ,KAAmBW,KAAYF,KAAgBG,IACpD,KAAKZ,KAAmBW,KAAYF,IAExClC,EAASC,KAAK,KAAK4B,MAAeF,KACpC,CACF,IAIEM,EAAaxG,MAAqC,iBAAtBwG,EAAaxG,MAE3CvT,OAAOiX,QAAQ8C,EAAaxG,MAAMiF,QAAQ,EAAEK,EAASY,MACnD,QAAkBrC,IAAdqC,GAAgD,iBAAdA,EAAwB,CAC5D,MAAMQ,EAAQpB,EAAQoB,MAAM,4BAC5B,GAAIA,EAAO,CACT,MAAMC,EAAWD,EAAM,GACjBE,EAAQF,EAAM,GAAKA,EAAM,GAAGrD,cAAgB,KAE5C+C,EAAaQ,EACf,KAAKZ,KAAmBW,KAAYF,KAAgBG,IACpD,KAAKZ,KAAmBW,KAAYF,IAExCf,EAAalB,KAAK,KAAK4B,MAAeF,KACxC,CACF,IAKJN,EAAeX,QAAS4B,IACtB,MAAMC,EAAmBN,EAAqBK,GAC1CC,GAA8C,iBAApBA,GAC5Bra,OAAOiX,QAAQoD,GAAiB7B,QAAQ,EAAEK,EAASY,MACjD,QAAkBrC,IAAdqC,EAAyB,CAC3B,MAAMQ,EAAQpB,EAAQoB,MAAM,4BAC5B,GAAIA,EAAO,CACT,MAAMC,EAAWD,EAAM,GACjBE,EAAQF,EAAM,GAAKA,EAAM,GAAGrD,cAAgB,KAE5C+C,EAAaQ,EACf,KAAKZ,KAAmBW,KAAYF,KAAgBG,KAASC,IAC7D,KAAKb,KAAmBW,KAAYF,KAAgBI,IAExDtC,EAASC,KAAK,KAAK4B,MAAeF,KACpC,CACF,KAIR,IAKJN,EAAeX,QAAS4B,IACtB,MAAMC,EAAkBf,EAAec,GACnCC,GAA8C,iBAApBA,GAC5Bra,OAAOiX,QAAQoD,GAAiB7B,QAAQ,EAAEK,EAASY,MACjD,QAAkBrC,IAAdqC,EAAyB,CAC3B,MAAME,EAAaH,EAAaX,GAChCf,EAASC,KAAK,OAAOwB,KAAmBI,KAAcS,MAAeX,KACvE,KAIR,IAGF3B,EAASC,KAAK,KACdkB,EAAalB,KAAK,KAGlB/X,OAAOsa,OAAOpB,GAAcV,QAAS+B,IACnCA,EAAYxC,KAAK,OAInB,MAAMyC,EAAiBvB,EAAa1Y,OAAS,EACvCka,EAAiBza,OAAO0a,KAAKxB,GAAc3Y,OAAS,EAE1D,IAAIoa,EAAS7C,EAASM,KAAK,MAEvBoC,IACFG,GAAU,OAAS1B,EAAab,KAAK,OAGnCqC,GACFza,OAAOsa,OAAOpB,GAAcV,QAAS+B,IACnCI,GAAU,OAASJ,EAAYnC,KAAK,QAIxC,OAAOuC,CACT,CA5MWC,CAA2BlD,EAAMlN,gBAAiBmN,IAGpDC,CACT,CAKA,SAAS4B,EAAa9C,GACpB,OAAOA,EAAIG,QAAQ,qBAAsB,SAASD,aACpD,CC5JA,MAAMiE,EAAeC,EAAAA,mBAA6C1D,YAkClD2D,IACd,MAAMC,EAAUC,EAAAA,WAAWJ,GAC3B,IAAKG,EACH,MAAM,IAAIE,MAAM,gDAElB,OAAOF,CACT,CCzEO,MAAMG,ED6CP,UAAwBC,SAC5BA,EAAQC,aACRA,EAAehW,EAAYiW,iBAC3BA,EAAmB,YAGnBC,EAAAA,UAAU,MA/CZ,SAAuB7D,EAAoB8D,GACzC,MAAMC,EAAQC,SAASC,eAAe,SAASH,MAAgBE,SAASE,cAAc,SACtFH,EAAMI,GAAK,SAASL,IAEpB,MAAM7D,EAAW,gBAAgB6D,MAGjC,IAAIM,EAAa,GACbpE,EAAMnS,gBAERuW,GADaC,MAAMC,QAAQtE,EAAMnS,eAAiBmS,EAAMnS,cAAgB,CAACmS,EAAMnS,gBAC7D8R,IAAK4E,GAAQ,gBAAgBA,QAAU7D,KAAK,WAGhE,MAAMR,EAAM,SACRkE,UACArE,EAAiBC,EAAOC,SAG5B8D,EAAMS,YAActE,EACf8D,SAASS,KAAKC,SAASX,IAC1BC,SAASS,KAAKE,YAAYZ,EAE9B,CA0BIa,CAAcjB,EAAcC,GAC5BI,SAASa,gBAAgBC,aAAa,aAAclB,IACnD,CAACD,EAAcC,IAElB,MAAMnE,EAA2B,CAC/BsF,aAAcpB,EACdG,UAAWF,GAGb,OAAOza,EAAAA,IAACga,EAAa6B,SAAQ,CAACvF,MAAOA,EAAKiE,SAAGA,GAC/C,EE5BauB,EAAUC,IAAA,IAAAC,WACrBA,EAAa,UAASC,QACtBA,EAAOC,MACPA,EAAKhc,KACLA,EAAIic,UACJA,EAASC,UACTA,EAAS7B,SACTA,EAAQK,MACRA,EAAKyB,SACLA,GAAW,EAAKC,SAChBA,GAAW,EAAKtQ,KAChBA,EAAO,KAAIuQ,SACXA,EAAQC,QACRA,GAAOT,EACJU,EAAK3d,EAAAid,EAda,sIAgBrB,MAAMH,aAAEA,GAAiB1B,IACnBwC,EAAc,kBAAkB9G,EAAYoG,MAAeI,GAAa,KACxEO,EPFF,SACJX,EACAY,EACAC,EACAlC,GAGA,OAAIiC,EACK,CACL7c,QAAS6c,EACTxc,MAAOyc,GAKO,WAAdlC,GAEe,YAAfqB,GACe,cAAfA,GACe,SAAfA,GACe,WAAfA,GACe,gBAAfA,GACe,kBAAfA,EAUGnc,EAAmBmc,IAAe,KAR9B,CACLjc,QAASC,EAAAA,IAACC,EAAAA,iBAAgBC,KAAM4c,EAAAA,YAChC1c,MAAOJ,EAAAA,IAACC,EAAAA,iBAAgBC,KAAM6c,EAAAA,aAOtC,CO/BqBC,CAAchB,EAAY9b,EAAMic,EAAWP,eAAAA,EAAcnX,MAEtEwY,EAAehB,EAClB9c,OAAA+d,OAAA,CACGC,gBAAiB,SAASlB,KAC1B3O,MAAO,SAAS2O,UAChBmB,YAAa,SAASnB,MACnBrB,GAELA,EAEJ,OACEyC,EAAAA,KAAA,SAAAle,OAAA+d,OAAA,CACEI,KAAK,SACLlB,UAAWM,EAAW,iBACNJ,EAAW,YAAS/F,EAAS,YAClCvK,EAAI,qBACauK,IAAbgG,EAA0BA,EAAW,OAAS,aAAWhG,EACxEqE,MAAOqC,EACPT,QAASA,EACTH,SAAUA,GACNI,EAAK,CAAAlC,SAAA,CAERA,GAAY2B,EACZS,IACEA,EAAWvc,MACVid,6BACErd,EAAAA,IAAA,OAAA,CAAMoc,UAAU,qBAAoB7B,SAAEoC,EAAW5c,UACjDC,EAAAA,IAAA,OAAA,CAAMoc,UAAU,mBAAkB7B,SAAEoC,EAAWvc,WAGjDJ,EAAAA,IAAA,OAAA,CAAMoc,UAAU,OAAM7B,SAAEoC,EAAW5c,gBC1DhCwd,EAAcxB,IAAA,IAAAC,WACzBA,EAAa,UAASE,MACtBA,EAAKhc,KACLA,EAAIsd,KACJA,EAAIC,OACJA,EAAS,QAAOrB,UAChBA,EAAS7B,SACTA,EAAQK,MACRA,EAAKyB,SACLA,GAAW,EAAKrQ,KAChBA,EAAO,KAAIsQ,SACXA,GAAW,GAAKP,EACbU,EAAK3d,EAAAid,EAZiB,2GAczB,MAAMW,EAAc,kBAAkBV,KAAcI,GAAa,KAC3DsB,EAAiB,WAAXD,EAAsB,2BAAwBlH,EAE1D,OAAI8F,EAEAgB,EAAAA,KAAA,OAAAle,OAAA+d,OAAA,CACEd,UAAWM,EAAW,YACX1Q,EAAI,iBACCsQ,QAAY/F,EAC5BqE,MAAOA,EAAK,gBACE,QACV6B,aAEHlC,GAAY2B,EAAK,IAAGhc,GAAQF,EAAAA,IAAA,OAAA,CAAMoc,UAAU,OAAM7B,SAAEra,QAMzDmd,EAAAA,wBACEG,KAAMA,EACNC,OAAQA,EACRC,IAAKA,EACLtB,UAAWM,EAAW,YACX1Q,mBACKsQ,QAAY/F,EAC5BqE,MAAOA,GACH6B,EAAK,CAAAlC,SAAA,CAERA,GAAY2B,EAAK,IAAGhc,GAAQF,EAAAA,IAAA,OAAA,CAAMoc,UAAU,gBAAQlc,SC1D9Cyd,EAAkD,EAC7DC,WACAC,WACAC,WACAC,UACA3B,YACAxB,YAEA,MAAMoD,EAAc,CAAC,mBAAoB5B,GAAW/F,OAAOiB,SAASC,KAAK,KAEzE,GAAIqG,EACF,OACEP,EAAAA,KAAA,QAAA,CAAOjB,UAAW,GAAG4B,4BAAuCC,UAAQ,EAACC,OAAK,EAACC,MAAI,EAACC,aAAW,EAACxD,MAAOA,EAAKL,SAAA,CACtGva,EAAAA,IAAA,SAAA,CAAQqe,IAAKT,EAAUN,KAAK,cAAc,0CAMhD,MAAMgB,EAAenf,OAAA+d,OAAA,CACnBqB,gBAAiBT,EAAW,GAAGA,UAAiBD,KAAcA,EAAW,OAAOA,UAActH,EAC9F4G,gBAAiBY,GACdnD,GAGL,OAAO5a,EAAAA,IAAA,MAAA,CAAKoc,UAAW4B,EAAapD,MAAO0D,KCzCvCE,EAAmB,yBAyGlB,MAAMC,EAA8B,EACzCJ,MACAf,OACAoB,MAAM,GACN7J,YAAY,QACZC,iBACAC,cACA4J,YAAW,EACXC,YAAW,EACXT,QAAO,EACPD,QACAW,UAAU,OACVC,SACA3R,QACA4R,YAAY,GACZzC,YAAW,EACXF,YACAxB,QACAoE,SACAC,UACAC,cAEA,MAAMC,EAAWC,EAAAA,OAAyB,MACpCC,EAAeD,EAAAA,OAA8B,OAC5CE,EAAUC,GAAeC,EAAAA,UAAS,IAClCC,EAAeC,GAAoBF,EAAAA,UAAS,GAE7CG,EAAerC,QAAAA,EAlCvB,SAAyBe,GAEvB,MADkB,sDACJvI,KAAKuI,GAAa,QACzB,OACT,CA8B+BuB,CAAgBvB,GACvCwB,EAAgB3B,QAAAA,EAASS,EACzBmB,EAA4B,UAAjBH,EAlInB,SAAyBvE,SACvB,MAAMhC,EAAQgC,EAAIhC,MAAM,sCAAwCgC,EAAIhC,MAAM,kCAC1E,OAAiB,QAAV2C,EAAA3C,aAAK,EAALA,EAAQ,UAAE,IAAA2C,EAAAA,EAAI,IACvB,CA+H8CgE,CAAgB1B,GAAO,KAC7D2B,EAA4B,UAAjBL,IA5HV,qBAAqB7J,KADTsF,EA6HsCiD,IA5HhB,UAAUvI,KAAKsF,OA4HW0E,EA7HrE,IAAqB1E,EAgInBV,EAAAA,UAAU,KACR6E,GAAY,IACX,IAGH7E,EAAAA,UAAU,KACR,GAAK4E,GAAaU,GAAaF,EAA/B,CAGA,IAAKjF,SAASC,eAAe0D,GAAmB,CAC9C,MAAMyB,EAASpF,SAASE,cAAc,UACtCkF,EAAOjF,GAAKwD,EACZyB,EAAO5B,IArJa,kDAsJpB4B,EAAOC,OAAQ,EACfrF,SAASvS,KAAKkT,YAAYyE,EAC5B,CAGCE,OAAeC,IAAOD,OAAeC,KAAO,GAC5CD,OAAeC,IAAIlJ,KAAK,CACvB8D,GAAI8E,EACJZ,QAAUpf,IACR4f,GAAiB,GACjBR,SAAAA,EAAUpf,GACVkf,SAAAA,MAlBqC,GAqBxC,CAACM,EAAUU,EAAUF,EAAUd,EAAQE,IAG1CxE,EAAAA,UAAU,KACa,UAAjBiF,IAA6BK,GAAYrB,GAAYQ,EAASkB,SAChElB,EAASkB,QAAQC,OAAOC,MAAM,SAI/B,CAACZ,EAAcK,EAAUrB,EAAUN,IAEtC,MAAMmC,EAAY,QACZC,EAAU,CAACD,EAAW,GAAGA,MAAcb,IAAgBvD,GAAW/F,OAAOiB,SAASC,KAAK,KAEvFmJ,EAAOvhB,OAAA+d,OAAA/d,OAAA+d,OAAA/d,OAAA+d,OAAA/d,OAAA+d,OAAA,CAAA,EACPrI,GAAc,CAAE,qBAAsBA,IACtCC,GAAmB,CAAE,0BAA2BA,IAChDC,GAAgB,CAAE,uBAAwBA,IAC3C6F,GAGL,GAAqB,UAAjB+E,EACF,OACE3f,EAAAA,WAAKoc,UAAWqE,EAAS7F,MAAO8F,EAAO,iBAAkBpE,QAAY/F,EAASgE,SAC5Eva,EAAAA,IAAA,MAAA,CACEoc,UAAW,GAAGoE,WACdnC,IAAKA,EACLK,IAAKA,EACLG,QAASA,EACTC,OAAQA,EACR3R,MAAOA,EACP6R,OAAQA,EACRC,QAASA,MAMjB,GAAIe,GAAYF,EAAU,CAExB,MAAMa,EAAgB,CACpB,eACA,gBAAgBb,KACflB,GAAY,+BACZA,GAAY,iBACZA,GAAY,2BACZA,GAAY,yBACZA,GAAY,0BACZA,GAAY,uBACZA,GAAY,wBACbD,GAAY,gBACZkB,GAAiB,aACjB1B,GAAQ,yBAEP9H,OAAOiB,SACPC,KAAK,KAER,OACEvX,EAAAA,IAAA,MAAA,CACEoc,UAAW,GAAGqE,KAAWD,qBACzB5F,MAAO8F,EAAO,iBACEpE,QAAY/F,EAASgE,SAEpC+E,GACCtf,EAAAA,IAAA,MAAA,CACE4gB,IAAKvB,EACLjD,UAAW,GAAGuE,KAAiBH,YAC/B5F,MAAO,CACLjF,MAAO,OACPxM,OAAQ,OACR0X,WAAYpB,EAAgB,UAAY,aAMpD,CAEA,MAAMqB,EAjNR,SACE1F,EACA2D,EACAgC,GAEA,IAAK,MAAMC,KAAYjC,EACrB,GAAIiC,EAAS5H,MAAMgC,GACjB,MAAO,CACLkC,KAAM,QACN2D,SAAUD,EAASE,cAAc9F,EAAK2F,GACtCI,aAAcH,EAASvc,MAI7B,MAAO,CAAE6Y,KAAM,SACjB,CAkMyB8D,CAAsB/C,EAAKU,EAAW,CAC3DJ,WACAC,WACAV,MAAO2B,EACP1B,SAGF,MAA4B,UAAxB2C,EAAexD,KAEftd,EAAAA,IAAA,MAAA,CACEoc,UAAW,GAAGqE,KAAWD,eAAuBM,EAAeK,eAC/DvG,MAAO8F,EAAO,iBACEpE,QAAY/F,EAASgE,SAErCva,MAAA,SAAA,CACEoc,UAAW,GAAGoE,YACdnC,IAAKyC,EAAeG,SACpB7Y,MAAOsW,GAAO,QACd2C,MAAM,4DACNC,iBAAe,EACfzC,QAASA,EACTG,OAAQA,EACRC,QAASA,MAOfjf,EAAAA,IAAA,MAAA,CAAKoc,UAAWqE,EAAS7F,MAAO8F,EAAO,iBAAkBpE,QAAY/F,WACnEvW,EAAAA,IAAA,QAAA,CACE4gB,IAAKzB,EACL/C,UAAW,GAAGoE,WACdnC,IAAKA,EACLJ,SAAUU,EACVC,SAAUA,EACVT,KAAMA,EACND,MAAO2B,EACPzB,aAAW,EACXmD,aAAcvC,EACdC,QAASA,OC/QJuC,EAAwC,EAAGC,QAAOC,YAAY,IAAKpF,YAAW,EAAOF,YAAY,MAE1Gpc,MAAA,MAAA,CAAKoc,UAAW,cAAcA,IAAW,aAAa,aAAY,iBAAiBE,QAAY/F,EAASgE,SACtGva,EAAAA,IAAA,KAAA,CAAIoc,UAAU,mBAAkB7B,SAC7BkH,EAAMjL,IAAI,CAACmL,EAAMC,KAChB,MAAMC,EAASD,IAAUH,EAAM/hB,OAAS,EAExC,OACE2d,OAAA,KAAA,CAAgBjB,UAAU,mBAAkB7B,SAAA,CACzCoH,EAAKnE,OAASqE,EACb7hB,EAAAA,IAAA,IAAA,CAAGwd,KAAMmE,EAAKnE,KAAMpB,UAAU,mBAAkB7B,SAC7CoH,EAAKzF,QAGRlc,EAAAA,IAAA,OAAA,CAAMoc,UAAU,mBAAkB,eAAeyF,EAAS,YAAStL,EAASgE,SACzEoH,EAAKzF,SAGR2F,GACA7hB,MAAA,OAAA,CAAMoc,UAAU,wBAAuB,cAAa,OAAM7B,SACvDmH,MAZEE,SCFRE,EAAkC,EAC7CvH,WACA4C,kBACAoB,kBACAwD,oBAAoB,OACpBC,eAAe,OACfC,aAAa,UACb7F,YAAY,GACZpT,UACAG,SACA+Y,gBAAgB,MAChB5F,YAAW,EACX6F,eAEA,MAAMC,EAAiB,CACrB,UACA,oBAAoBJ,IACE,SAAtBD,GAAgC,oBAAoBA,IACpD3F,GAEC/F,OAAOiB,SACPC,KAAK,KAEFqD,EAAKzb,OAAA+d,OAAA/d,OAAA+d,OAAA/d,OAAA+d,OAAA/d,OAAA+d,OAAA/d,OAAA+d,OAAA/d,OAAA+d,OAAA/d,OAAA+d,OAAA,CAAA,EACLC,GAAoB,CAAE,eAAgBA,IACtCoB,GACD,CACC,qBAAsB,OAAOA,OAE7BvV,GAAY,CAAE,oBAAqBA,IACnCG,GAAW,CAAE,mBAAoBA,IACjC+Y,GAAkB,CAAE,2BAA4BA,IAChDD,GAAe,CAAE,wBAAyBA,IAC1CE,GAAa,CAAE,qBAAsBA,IAG3C,OACE9E,EAAAA,KAAA,MAAA,CAAKjB,UAAWgG,EAAgBxH,MAAOA,EAAK,iBAAkB0B,QAAY/F,EAAS,YAAY,OAAMgE,SAAA,CAEnGva,MAAA,MAAA,CAAKoc,UAAU,gBAEfpc,EAAAA,IAAA,MAAA,CAAKoc,UAAU,mBAAkB7B,SAAEA,QC/C5B8H,EAAsC,EACjD9H,WACA+H,SAAQ,EACRlG,YAAY,GACZmG,GAAIC,EAAM,MACV5H,YAEA,MAAM6F,EAAU,CAAC6B,EAAQ,kBAAoB,YAAalG,GAAW/F,OAAOiB,SAASC,KAAK,KAE1F,OACEvX,EAAAA,IAACwiB,EAAG,CAACpG,UAAWqE,EAAS7F,MAAOA,EAAKL,SAClCA,KCmBMkI,EAAkC,EAC7CC,QAAQ,KACRC,UACAC,SACA5W,OACAsB,QACA2O,UACAK,YAAW,EACX/B,WACA6B,YACAxB,YAEA,MAAM4H,EAAME,EAGZ,IAAIG,EAAajI,EAEbqB,EACF4G,iCACKjI,GAAK,CACRuC,gBAAiB,SAASlB,KAC1B3O,MAAO,SAAS2O,UAChBjT,SAAS4R,aAAK,EAALA,EAAO5R,UAAW,cAC3B1D,cAAcsV,eAAAA,EAAOtV,eAAgB,QAE9BgI,IACTuV,EAAU1jB,OAAA+d,OAAA/d,OAAA+d,OAAA,CAAA,EACLtC,GAAK,CACRtN,MAAO,SAASsI,EAAYtI,SAK5BsV,IACFC,EAAU1jB,OAAA+d,OAAA/d,OAAA+d,OAAA,CAAA,EACL2F,GAAU,CACbvb,WAAY,4CAA4Csb,QAIxD5W,IACF6W,iCACKA,GAAU,CACbxb,SAAU,0CAAmD,QAAT2E,EAAiB,MAAQA,QAIjF,MAAM8W,EAAiB,CAAC,UAAW,YAAYJ,IAASC,GAAW,oBAAoBA,IAAWvG,GAC/F/F,OAAOiB,SACPC,KAAK,KAER,OACEvX,EAAAA,IAACwiB,EAAG,CAACpG,UAAW0G,EAAgBlI,MAAOiI,EAAU,iBAAkBvG,EAAW,YAAS/F,EAASgE,SAC7FA,KCzCMwI,EAAO,EAClBC,UAAU,GACVC,MACAC,SACAC,YACAC,iBACAC,iBACAC,aACAC,eACAC,iBACAC,cACArH,YAAY,GACZxB,QAAQ,CAAA,EACRL,WACAmJ,aAAY,MAEZ,MAAMC,EAAY,QAAQD,EAAY,mBAAqB,MAAMtH,IAG3DwH,EAAyBH,EACX,SAAhBA,EACE,QACgB,UAAhBA,EACE,MACA,SACJD,EAGEK,EAAU1kB,OAAA+d,OAAA/d,OAAA+d,OAAA,CAAA,EACXtC,GAAK,CACR0I,aACAC,eACAC,eAAgBI,IA2ElB,GAvEuB,iBAAZZ,GAETa,EAAW,kBAAoBb,EAAQc,WAIlCV,IAECJ,GAAW,IACba,EAAW,qBAAuB,KAIhCb,GAAW,IACba,EAAW,qBAAuB,KAIpCA,EAAW,qBAAuBb,EAAQc,aAEhB,iBAAZd,EAEhBa,EAAWE,oBAAsBf,EACxBA,SAEUzM,IAAfyM,EAAQ/d,KACgB,iBAAf+d,EAAQ/d,GACjB4e,EAAW,8BAAgCb,EAAQ/d,GAEnD4e,EAAW,qBAAuBb,EAAQ/d,GAAG6e,iBAG9BvN,IAAfyM,EAAQ9d,KACgB,iBAAf8d,EAAQ9d,GACjB2e,EAAW,8BAAgCb,EAAQ9d,GAEnD2e,EAAW,qBAAuBb,EAAQ9d,GAAG4e,iBAG9BvN,IAAfyM,EAAQ7d,KACgB,iBAAf6d,EAAQ7d,GACjB0e,EAAW,8BAAgCb,EAAQ7d,GAEnD0e,EAAW,qBAAuBb,EAAQ7d,GAAG2e,iBAG9BvN,IAAfyM,EAAQ5d,GACgB,iBAAf4d,EAAQ5d,GACjBye,EAAW,8BAAgCb,EAAQ5d,GAEnDye,EAAW,qBAAuBb,EAAQ5d,GAAG0e,gBAEvBvN,IAAfyM,EAAQ7d,KAES,iBAAf6d,EAAQ7d,GACjB0e,EAAW,8BAAgCb,EAAQ7d,GAEnD0e,EAAW,qBAAuBb,EAAQ7d,GAAG2e,aAM/CV,IACFS,EAAW,2BAA6BT,GAEtCC,IACFQ,EAAW,2BAA6BR,GAItCJ,EACF,GAAmB,iBAARA,EAAkB,CAE3B,MAAMe,EAAiC,CACrChf,GAAI,qBACJC,GAAI,qBACJC,GAAI,qBACJC,GAAI,qBACJC,GAAI,qBACJC,IAAK,uBAEPwe,EAAWZ,IAAMe,EAAOf,IAAQA,CAClC,MACMA,EAAIhe,KAAI4e,EAAW,iBAAmBZ,EAAIhe,IAC1Cge,EAAI/d,KAAI2e,EAAW,iBAAmBZ,EAAI/d,IAC1C+d,EAAI9d,KAAI0e,EAAW,iBAAmBZ,EAAI9d,IAC9C0e,EAAW,iBAAmBZ,EAAI7d,IAAM6d,EAAI9d,IAAM8d,EAAI/d,IAAM+d,EAAIhe,IAAM,YAIxE4e,EAAW,iBAAmB,+BAC9BA,EAAW,iBAAmB,iCAC9BA,EAAW,iBAAmB,wBAC9BA,EAAW,iBAAmB,wBAyBhC,OAtBIX,IACoB,iBAAXA,EACTW,EAAWX,OAASA,GAEhBA,EAAOje,KAAI4e,EAAW,qBAAuBX,EAAOje,IACpDie,EAAOhe,KAAI2e,EAAW,qBAAuBX,EAAOhe,IACpDge,EAAO/d,KAAI0e,EAAW,qBAAuBX,EAAO/d,IACxD0e,EAAW,qBAAuBX,EAAO9d,IAAM8d,EAAO/d,IAAM+d,EAAOhe,IAAMge,EAAOje,IAAM,SAItFke,IACuB,iBAAdA,EACTU,EAAWV,UAAYA,GAEnBA,EAAUle,KAAI4e,EAAW,wBAA0BV,EAAUle,IAC7Dke,EAAUje,KAAI2e,EAAW,wBAA0BV,EAAUje,IAC7Die,EAAUhe,KAAI0e,EAAW,wBAA0BV,EAAUhe,IACjE0e,EAAW,wBAA0BV,EAAU/d,IAAM+d,EAAUhe,IAAMge,EAAUje,IAAMie,EAAUle,IAAM,SAKvGjF,EAAAA,IAAA,MAAA,CAAKoc,UAAWuH,EAAW/I,MAAOiJ,EAAiCtJ,SAChEA,KAKM0J,EAAW,EACtBC,UACAC,UACAC,WACAC,WACApB,MACAC,SACAC,YACA/G,YAAY,GACZxB,QAAQ,CAAA,EACRL,eAEA,MAAM+J,EAAUnlB,OAAA+d,OAAA,CAAA,EAAqDtC,GAgFrE,MA7EuB,iBAAZsJ,EACTI,EAAWC,WAAa,QAAQL,IACX,SAAZA,EACTI,EAAWC,WAAa,OACfL,IACLA,EAAQjf,KAAIqf,EAAW,sBAAuC,SAAfJ,EAAQjf,GAAgB,OAASif,EAAQjf,GAAG6e,YAC3FI,EAAQhf,KAAIof,EAAW,sBAAuC,SAAfJ,EAAQhf,GAAgB,OAASgf,EAAQhf,GAAG4e,YAC3FI,EAAQ/e,KAAImf,EAAW,sBAAuC,SAAfJ,EAAQ/e,GAAgB,OAAS+e,EAAQ/e,GAAG2e,YAC3FI,EAAQ9e,KAAIkf,EAAW,sBAAuC,SAAfJ,EAAQ9e,GAAgB,OAAS8e,EAAQ9e,GAAG0e,aAI1E,iBAAZK,EACTG,EAAWE,QAAU,QAAQL,IACR,SAAZA,EACTG,EAAWE,QAAU,OACZL,IACLA,EAAQlf,KAAIqf,EAAW,sBAAuC,SAAfH,EAAQlf,GAAgB,OAASkf,EAAQlf,GAAG6e,YAC3FK,EAAQjf,KAAIof,EAAW,sBAAuC,SAAfH,EAAQjf,GAAgB,OAASif,EAAQjf,GAAG4e,YAC3FK,EAAQhf,KAAImf,EAAW,sBAAuC,SAAfH,EAAQhf,GAAgB,OAASgf,EAAQhf,GAAG2e,YAC3FK,EAAQ/e,KAAIkf,EAAW,sBAAuC,SAAfH,EAAQ/e,GAAgB,OAAS+e,EAAQ/e,GAAG0e,aAIzE,iBAAbM,EACTE,EAAWG,gBAAkBL,EACpBA,IACLA,EAASnf,KAAIqf,EAAW,uBAAyBF,EAASnf,GAAG6e,YAC7DM,EAASlf,KAAIof,EAAW,uBAAyBF,EAASlf,GAAG4e,YAC7DM,EAASjf,KAAImf,EAAW,uBAAyBF,EAASjf,GAAG2e,YAC7DM,EAAShf,KAAIkf,EAAW,uBAAyBF,EAAShf,GAAG0e,aAI3C,iBAAbO,EACTC,EAAWI,aAAeL,EACjBA,IACLA,EAASpf,KAAIqf,EAAW,uBAAyBD,EAASpf,GAAG6e,YAC7DO,EAASnf,KAAIof,EAAW,uBAAyBD,EAASnf,GAAG4e,YAC7DO,EAASlf,KAAImf,EAAW,uBAAyBD,EAASlf,GAAG2e,YAC7DO,EAASjf,KAAIkf,EAAW,uBAAyBD,EAASjf,GAAG0e,aAI/Db,IACiB,iBAARA,EACTqB,EAAWrB,IAAMA,GAEbA,EAAIhe,KAAIqf,EAAW,sBAAwBrB,EAAIhe,IAC/Cge,EAAI/d,KAAIof,EAAW,sBAAwBrB,EAAI/d,IAC/C+d,EAAI9d,KAAImf,EAAW,sBAAwBrB,EAAI9d,IAC/C8d,EAAI7d,KAAIkf,EAAW,sBAAwBrB,EAAI7d,MAInD8d,IACoB,iBAAXA,EACToB,EAAWpB,OAASA,GAEhBA,EAAOje,KAAIqf,EAAW,0BAA4BpB,EAAOje,IACzDie,EAAOhe,KAAIof,EAAW,0BAA4BpB,EAAOhe,IACzDge,EAAO/d,KAAImf,EAAW,0BAA4BpB,EAAO/d,IACzD+d,EAAO9d,KAAIkf,EAAW,0BAA4BpB,EAAO9d,MAI7D+d,IACuB,iBAAdA,EACTmB,EAAWnB,UAAYA,GAEnBA,EAAUle,KAAIqf,EAAW,6BAA+BnB,EAAUle,IAClEke,EAAUje,KAAIof,EAAW,6BAA+BnB,EAAUje,IAClEie,EAAUhe,KAAImf,EAAW,6BAA+BnB,EAAUhe,IAClEge,EAAU/d,KAAIkf,EAAW,6BAA+BnB,EAAU/d,MAKxEpF,MAAA,MAAA,CAAKoc,UAAW,aAAaA,IAAaxB,MAAO0J,EAAiC/J,SAC/EA,KC7QMoK,EAAsC,EACjDpK,WACAgI,KAAK,IACLK,SACA5W,OACAsB,QACA2O,UACAK,YAAW,EACXF,YACAxB,QACAgK,8BAEA,MAAMpC,EAAMD,EAGZ,IAAIM,EAAajI,EAEbqB,EACF4G,iCACKjI,GAAK,CACRuC,gBAAiB,SAASlB,KAC1B3O,MAAO,SAAS2O,UAChBjT,SAAS4R,aAAK,EAALA,EAAO5R,UAAW,cAC3B1D,cAAcsV,eAAAA,EAAOtV,eAAgB,QAE9BgI,IACTuV,EAAU1jB,OAAA+d,OAAA/d,OAAA+d,OAAA,CAAA,EACLtC,GAAK,CACRtN,MAAO,SAASsI,EAAYtI,SAOhC,MAEMuX,EAAc,CAClBzI,UAHuB,CAAC,YAAaA,GAAW/F,OAAOiB,SAASC,KAAK,KAIrEqD,MAAOiI,EACP,iBAAkBvG,EAAW,YAAS/F,EACtC,YAAavK,QAAQuK,EACrB,cAAeqM,QAAUrM,GAG3B,OAAIqO,EACK5kB,EAAAA,IAACwiB,EAAGrjB,OAAA+d,OAAA,GAAK2H,GAAaD,wBAAyBA,KAGjD5kB,EAAAA,IAACwiB,EAAGrjB,OAAA+d,OAAA,GAAK2H,EAAW,CAAAtK,SAAGA,MChE1BuK,EACJ9kB,EAAAA,WACE2V,MAAM,MACNxM,OAAO,MACP4b,QAAQ,YACRC,KAAK,eACLC,MAAM,6BAA4B,cACtB,gBAEZjlB,MAAA,SAAA,CAAQklB,GAAG,IAAIC,GAAG,IAAIC,EAAE,QAIfC,EAAwC,EAAG5D,QAAOvhB,OAAMoc,YAAW,EAAOF,YAAWxB,YAChG,MAAM6F,EAAU,CAAC,cAAerE,GAAW/F,OAAOiB,SAASC,KAAK,KAEhE,OACEvX,EAAAA,IAAA,KAAA,CAAIoc,UAAWqE,EAAS7F,MAAOA,EAAO0K,KAAK,wBAAuBhJ,EAAW,YAAS/F,EAASgE,SAC5FkH,EAAMjL,IAAI,CAACmL,EAAMC,aAChB,MAAM2D,EAA4B,QAAjBC,EAAS,QAATzJ,EAAA4F,EAAKzhB,YAAI,IAAA6b,EAAAA,EAAI7b,SAAI,IAAAslB,EAAAA,EAAIV,EACtC,OACEzH,EAAAA,KAAA,KAAA,CAAgBjB,UAAU,oBAAmB7B,SAAA,CAC3Cva,EAAAA,IAAA,OAAA,CAAMoc,UAAU,oBAAmB,cAAa,OAAM7B,SACnDgL,IAEHvlB,EAAAA,IAAA,OAAA,CAAMoc,UAAU,oBAAmB7B,SAAEoH,EAAK7c,SAJnC8c,QCnCN6D,EAAS,EAAGC,OAAMC,UAASC,WAAUC,qBAChD7lB,EAAAA,IAAA,SAAA,CAAAua,SACE8C,EAAAA,KAAA,MAAA,CAAKjB,UAAU,mBAAkB7B,SAAA,CAC/B8C,EAAAA,KAAA,MAAA,CAAA9C,SAAA,CACEva,EAAAA,IAAA,MAAA,CAAK2V,MAAM,KAAKxM,OAAO,KAAK4b,QAAQ,YAAYE,MAAM,6BAA4B1K,SAChF8C,YAAG2H,KAAK,OAAOc,SAAS,UAASvL,SAAA,CAC/Bva,EAAAA,IAAA,OAAA,CAAM+lB,EAAE,oFAAoFf,KAAK,SACjGhlB,EAAAA,IAAA,OAAA,CAAM+lB,EAAE,mEAAmEf,KAAK,YAChFhlB,EAAAA,IAAA,OAAA,CAAM+lB,EAAE,iEAAiEf,KAAK,iBAGlFhlB,EAAAA,IAAA,KAAA,CAAAua,SAAA,YAEFva,EAAAA,IAAA,MAAA,CAAAua,SACGmL,EACCrI,EAAAA,KAAA2I,EAAAA,SAAA,CAAAzL,SAAA,CACE8C,EAAAA,KAAA,OAAA,CAAMjB,UAAU,gCACLpc,EAAAA,IAAA,IAAA,CAAAua,SAAImL,EAAKjhB,OAAS,OAE7BzE,EAAAA,IAAC8b,EAAM,CAACE,WAAW,YAAYQ,QAASoJ,EAAU1J,MAAM,eAG1DmB,EAAAA,2BACErd,EAAAA,IAAC8b,EAAM,CAACE,WAAW,YAAYQ,QAASmJ,EAASzJ,MAAM,WACvDlc,EAAAA,IAAC8b,EAAM,CAACE,WAAW,MAAMQ,QAASqJ,EAAiB3J,MAAM,sBCnC/D+J,EAAuB,oCAE7B,IAAIC,GAAqB,EACrBC,GAAsB,EAC1B,MAAMC,EAAsC,GCoD5C,MAAMC,EAA0B,uBA2BzB,MAAMC,EAAwC,EACnD3D,UAAU,UACVtE,MACAkI,YACA7H,MAAM,GACN8H,WACAzR,cAAc,GACd0R,gBAAe,EACfC,WAAU,EACVC,WAAU,EACV/H,YAAW,EACXgI,cACAC,WCnGa,i7HDoGbC,aACAC,UAAS,EACTjH,WACAkH,WAAU,EACVC,gBExGa,k2DFyGb7K,gBAEA,MAAO8K,EAAWC,GAAgB3H,EAAAA,UAAS,GACrC4H,EAAiBhI,EAAAA,OAAY,MAC7BiI,EAAoBjI,EAAAA,OAAuB,MAG3CkI,IAAcxH,GAAYkH,EAG1BO,EAAWlJ,IADOyB,IAAakH,EAAU,kCAAkClH,SAAavJ,GAExFiR,EAAWF,KAAgBC,GA9DnC,SAAuBlJ,GAGrB,MAFkB,gCAEDvI,KAAKuI,IADC,4BACsBvI,KAAKuI,EACpD,CA0D+CoJ,CAAcF,GACrDG,GAAWF,KAAcjB,EAEzB/F,EAAY,cACZC,EAAU,CACdD,EACY,YAAZmC,GAAyB,GAAGnC,MAAcmC,IAC1C8D,GAAgB,GAAGjG,YACnBuG,GAAU,GAAGvG,YACbgH,GAAY,GAAGhH,WACfpE,GAEC/F,OAAOiB,SACPC,KAAK,KAGRmD,EAAAA,UAAU,KACH4M,GAAcxH,IArEvB,WACE,GAAwB,oBAAbjF,SAA0B,OACrC,GAAIA,SAASC,eAAeuL,GAA0B,OACtD,MAAMpG,EAASpF,SAASE,cAAc,UACtCkF,EAAOjF,GAAKqL,EACZpG,EAAO5B,IARwB,oCAS/B4B,EAAOC,OAAQ,EACfrF,SAASS,KAAKE,YAAYyE,EAC5B,CA8DI0H,GA3DJ,SAA+BC,GAC7B,GAAwB,oBAAb/M,SAA0B,OACrC,MAAMgN,EAAW,iBAAiBD,IAClC,GAAI/M,SAASC,eAAe+M,GAAW,OACvC,MAAM5H,EAASpF,SAASE,cAAc,UACtCkF,EAAOjF,GAAK6M,EACZ5H,EAAO5B,IAAM,iCAAiCuJ,OAC9C3H,EAAOC,OAAQ,EACfD,EAAO3C,KAAO,SACdzC,SAASS,KAAKE,YAAYyE,EAC5B,CAkDI6H,CAAsBhI,KACrB,CAACwH,EAAWxH,IAGf,MAAMiI,EAAmBC,cAAaC,IACpCb,EAAe/G,QAAU4H,GACxB,IAGGC,EAAaF,EAAAA,YAAY,aAC7B,IAAKR,GAAYF,EAAW,OAI5B,GAHAH,GAAa,GAGa,UAAtBC,EAAe/G,mBAAOtE,OAAA,EAAAA,EAAEuE,KAE1B,YADA8G,EAAe/G,QAAQC,OAKzB,MAAM6H,EAAmC,QAAzB3C,EAAA6B,EAAkBhH,eAAO,IAAAmF,OAAA,EAAAA,EAAE4C,cAAc,SACrDD,GACFA,EAAQ7H,OAAOC,MAAM,SAEtB,CAACiH,EAAUF,IAgBd,GAAgB,iBAAZ3E,EAA4B,CAE9B,MAAM0F,EACJ,koBAEF,OACEroB,EAAAA,IAAA,SAAA,CAAQoc,UAAWqE,EAAS6E,KAAK,qBAAoB5G,GAAO,gBAAenE,SACzE8C,EAAAA,KAAA,MAAA,CAAKjB,UAAW,GAAGoE,mBAA0BjG,SAAA,CAE3C8C,EAAAA,YACEjB,UAAW,GAAGoE,eACduE,QAAQ,cACRC,KAAK,OACLC,MAAM,2CACM,OAAM1K,SAAA,CAElBva,EAAAA,qBACEA,EAAAA,IAAA,WAAA,CAAUgb,GAAG,sBACXhb,MAAA,OAAA,CAAM+lB,EAAGsC,QAKbroB,EAAAA,qBAAesoB,EAAE,IAAIC,EAAE,IAAI5S,MAAM,MAAMxM,OAAO,MAAMqf,SAAS,mBAAkBjO,SAC5EgM,GACCvmB,EAAAA,WACEqe,IAAKkI,EACL7H,IAAKA,EACL9D,MAAO,CACLjF,MAAO,OACPxM,OAAQ,OACR0L,UAAW,QACXzN,QAAS,aAOjBpH,EAAAA,IAAA,OAAA,CAAMoc,UAAW,GAAGoE,sBAA+BuF,EAAGsC,EAAWrD,KAAK,YAIxEhlB,EAAAA,IAAA,MAAA,CACEoc,UAAW,GAAGoE,iBAAyBA,uBACvCnC,IG5NG,ohCH6NHK,IAAI,GAAE,cACM,SAEd1e,EAAAA,IAAA,MAAA,CACEoc,UAAW,GAAGoE,iBAAyBA,uBACvCnC,IIlOG,+gCJmOHK,IAAI,GAAE,cACM,SAId1e,EAAAA,IAAA,MAAA,CAAKoc,UAAW,GAAGoE,wBAAiCnC,IAAK4I,EAAevI,IAAI,GAAE,cAAa,aAInG,CAEA,OACE1e,EAAAA,cACEoc,UAAWqE,EACX6E,KAAK,QAAO,aACA5G,GAAO,gBACnB9D,MAAOgM,EAAe,CAAE,6BAA8BA,QAAwCrQ,WAE9F8G,EAAAA,KAAA,MAAA,CAAKjB,UAAW,GAAGoE,oBAEhBmG,GACC3mB,EAAAA,IAAA,MAAA,CACEoc,UAAW,GAAGoE,WAAkB,cACpB,OACZ5F,MAAOkM,EAAc,CAAE,4BAA6BA,EAAa,SAA+BvQ,EAASgE,SAEzGva,EAAAA,WAAKqe,IAAKwI,EAAUnI,IAAI,OAK5B1e,EAAAA,IAAA,MAAA,CAAKoc,UAAW,GAAGoE,WAAoBI,IAAKyG,EAAiB9M,SAC1DmN,GAAWnB,EACVvmB,EAAAA,IAACye,EAAK,CAACJ,IAAKkI,EAAWjJ,KAAK,QAAQoB,IAAKA,EAAK7J,UAAU,QAAQE,YAAaA,IAC3EuS,EACFjK,EAAAA,KAAA2I,EAAAA,SAAA,CAAAzL,SAAA,CAEE8C,EAAAA,KAAA,MAAA,CAAKjB,UAAW,GAAGoE,uBAA8B,cAAc,iBAC5D+F,GAAavmB,EAAAA,IAACye,EAAK,CAACJ,IAAKkI,EAAWjJ,KAAK,QAAQoB,IAAI,GAAG7J,UAAU,QAAQE,YAAaA,IACvF2R,GAAW1mB,EAAAA,IAAA,MAAA,CAAKoc,UAAW,GAAGoE,eAC9BgG,GAAYxmB,EAAAA,IAAA,MAAA,CAAKoc,UAAW,GAAGoE,eAAsBjG,SAAGiM,OAI3DxmB,EAAAA,IAAA,MAAA,CAAKoc,UAAW,GAAGoE,oBAA2BjG,SAC3CkO,EAAM1N,cAAc,gBAAiB,CACpC,WAAY+E,EACZ,iBAAkB,OAClB4I,OAAQ,qBACR9N,MAAO,CAAEjF,MAAO,OAAQxM,OAAQ,eAIpCoe,EACFlK,EAAAA,2BAEErd,EAAAA,IAACye,GACCJ,IAAKkJ,EACLjK,KAAK,QACLoB,IAAKA,EACLE,SAAUA,EACV7J,YAAaA,EACbmK,QAAS6I,EACT3L,UAAW,GAAGoE,oBAId0G,IApIkB1K,EAoIkB0L,EAnIhD7K,EAAAA,KAAA,SAAA,CAAQjB,UAAW,GAAGoE,aAAsBhE,QAASA,EAAO,aAAc,eAAekC,IAAOpB,KAAK,SAAQ/C,SAAA,CAC1GgM,GAAavmB,EAAAA,IAACye,EAAK,CAACJ,IAAKkI,EAAWjJ,KAAK,QAAQoB,IAAI,GAAG7J,UAAU,QAAQE,YAAaA,IACvF2R,GAAW1mB,EAAAA,IAAA,MAAA,CAAKoc,UAAW,GAAGoE,aAAoB,cAAc,SAChEgG,GACCxmB,EAAAA,IAAA,MAAA,CAAKoc,UAAW,GAAGoE,eAAsB,cAAc,OAAMjG,SAC1DiM,WAgIG,OAILC,GAAgBzmB,EAAAA,WAAKoc,UAAW,GAAGoE,iBAAwB,cAAc,SACzEiG,GAAgBzmB,EAAAA,IAAA,MAAA,CAAKoc,UAAW,GAAGoE,mBAA0B,cAAc,cA3InD,IAAChE,GK1G5BmM,EAAkF,CACtFC,KAAM,CAAE5F,QAAS,EAAG1G,UAAU,GAC9BuM,OAAQ,CAAE7F,QAAS,EAAG1G,UAAU,GAChCwM,OAAQ,CAAE9F,QAAS,EAAG1G,UAAU,GAChCyM,MAAO,CAAE/F,QAAS,EAAG1G,UAAU,IAc3B0M,EAAwBC,IAC5B,IAAKA,EAAW,OAOhB,MAL2E,CACzEC,IAAK,QACLC,OAAQ,SACRC,OAAQ,OAESH,IAIrB,SAASI,EAAkBzU,EAAyB0H,GAElD,MAAM3G,MAAEA,EAAKxM,OAAEA,GAA+ByL,EAApB0U,EAAexqB,EAAK8V,EAAxC,CAAA,QAAA,WACN,OAAO5U,EAAAA,IAACsmB,EAAUnnB,OAAA+d,OAAA,CAAA,EAAKoM,GACzB,CAEO,MCzDDC,EAA+D,CACnEL,IAAK,QACLC,OAAQ,SACRC,OAAQ,OAGGI,EAAuCzN,IAAA,IAAA0N,KAClDA,EAAIC,MACJA,EAAKC,KACLA,EAAIC,UACJA,EAAY,aAAY1H,cACxBA,EAAgB,MAAKe,IACrBA,EAAG7G,UACHA,EAASe,gBAETA,EAAeoB,gBACfA,EAAewD,kBACfA,EAAiBC,aACjBA,EAAYC,WACZA,EAAUjZ,QACVA,EAAOG,OACPA,EAAMgZ,SACNA,EAAQ7F,SACRA,GAAW,EACX/B,SAAUsP,GAAS9N,EAChB+N,EAAIhrB,EAAAid,EAnB2C,CAAA,OAAA,QAAA,OAAA,YAAA,gBAAA,MAAA,YAAA,kBAAA,kBAAA,oBAAA,eAAA,aAAA,UAAA,SAAA,WAAA,WAAA,aAqBlD,MAAMyE,EAAY,oBACZC,EAAU,CAACD,EAAWpE,GAAW/F,OAAOiB,SAASC,KAAK,KAGtDwS,EAA+BJ,QAAAA,EAAQ,CAAC,CAAEF,OAAMC,QAAOE,YAAW1H,kBAExE,OACEliB,EAAAA,IAAC8hB,EAAO3iB,OAAA+d,OAAA,CACNC,gBAAiBA,EACjBoB,gBAAiBA,EACjBwD,kBAAmBA,EACnBC,aAAcA,EACdC,WAAYA,EACZjZ,QAASA,EACTG,OAAQA,EACRgZ,SAAUA,EACV7F,SAAUA,EACVF,UAAWqE,GACPqJ,EAAI,CAAAvP,SAEPwP,EAAavT,IAAI,CAACwT,EAAKpI,aACtB,MAAMqI,EAA4B,QAAblO,EAAAiO,EAAIJ,qBAAS7N,EAAAA,EAAI6N,EAChCM,EAA4B,QAAjB1E,EAAAwE,EAAI9H,yBAAasD,EAAAA,EAAItD,EAChCiI,EAA8B,gBAAjBF,EAEnB,OACE5M,EAAAA,KAAC0F,EAAI,CAEHC,QAAS,CAAE/d,GAAI,EAAGC,GAAI,EAAGC,GAAI,GAC7Bke,eAAe,QACfG,eAAe,SACfF,WAAYiG,EAAiBW,GAC7B9N,UAAW,GAAGoE,UACdyC,IAAKA,EAAG1I,SAAA,CAERva,EAAAA,IAACikB,EAAQ,CACP7H,UAAW,GAAGoE,UAAkBA,eAChC5F,MAAOuP,EAAa,CAAEC,MAAO,QAAM7T,EAASgE,SAE3CyP,EAAIP,OAEPzpB,EAAAA,IAACikB,EAAQ,CACP7H,UAAW,GAAGoE,UAAkBA,gBAChC5F,MAAOuP,EAAa,CAAEC,MAAO,QAAM7T,EAASgE,SAE3CyP,EAAIN,UAlBF9H,SC3CJyI,EAAsC,EACjDnO,QACAzX,OACA6Y,OAAO,OACPgN,cACAhU,QACAiU,WACAC,SACAC,aACAC,QACArO,YAAW,EACXC,YAAW,EACXF,gBAEA,MAAMpB,EAAK2P,EAAAA,QACLC,EAAU,GAAG5P,UACb6P,EAAaJ,aAAU,EAAVA,EAAYK,SAEzBrK,EAAU,CAAC,aAAciK,GAAS,oBAAqBrO,GAAY,uBAAwBD,GAC9F/F,OAAOiB,SACPC,KAAK,KAER,OACE8F,OAAA,MAAA,CAAKjB,UAAWqE,EAAO,iBAAkBnE,QAAY/F,YACnD8G,EAAAA,KAAA,QAAA,CAAO0N,QAAS/P,EAAIoB,UAAU,oBAAmB7B,SAAA,CAC9C2B,EACA2O,GACC7qB,EAAAA,YAAMoc,UAAU,uBAAsB,cAAa,OAAM7B,SAAA,SAK7Dva,EAAAA,aACEgb,GAAIA,EACJvW,KAAMA,EACN6Y,KAAMA,EACNlB,UAAU,oBACVkO,YAAaA,EACbhU,MAAOA,EACPiU,SAAWvrB,GAAMurB,eAAAA,EAAWvrB,EAAEye,OAAOnH,OACrCkU,OAAQA,EACRnO,SAAUA,EACVyO,SAAUD,EACVG,UAAWP,aAAU,EAAVA,EAAYO,UACvBC,UAAWR,aAAU,EAAVA,EAAYQ,UAAS,eAClBP,EAAQ,YAASnU,EAAS,mBACtBmU,EAAQE,OAAUrU,IAErCmU,GACC1qB,EAAAA,IAAC2kB,EAAS,CAAC3J,GAAI4P,EAASxO,UAAU,oBAAoBkJ,KAAK,iBACxDoF,QC9DEQ,EAAoC,EAC/ChP,QACAzX,OACA6lB,cAAc,oBACda,OAAQC,EACRC,WACAC,eACAZ,QACArO,YAAW,EACXC,YAAW,EACXF,YACA7B,eAEA,MAAMS,EAAK2P,EAAAA,QACLC,EAAU,GAAG5P,UACbuQ,EAAY,GAAGvQ,YACfwQ,EAAepM,EAAAA,OAAuB,OAGrCqM,EAAcC,GAAmBlM,EAAAA,UAAS,GAC3C2L,OAA4B5U,IAAnB6U,EAA+BA,EAAiBK,EAEzDE,EAAe3D,EAAAA,YAAY,KAC/B,GAAI3L,EAAU,OACd,MAAMuP,GAAQT,EACdO,EAAgBE,GAChBP,SAAAA,EAAWO,IACV,CAACvP,EAAU8O,EAAQE,IAGtB3Q,EAAAA,UAAU,KACR,MAAMmR,EAAsB7sB,IACtBwsB,EAAanL,UAAYmL,EAAanL,QAAQ9E,SAASvc,EAAEye,UAC3DiO,GAAgB,GAChBL,SAAAA,GAAW,KAMf,OAHIF,GACFtQ,SAASiR,iBAAiB,YAAaD,GAElC,IAAMhR,SAASkR,oBAAoB,YAAaF,IACtD,CAACV,EAAQE,IAGZ,MAAMW,EAAgBhE,cACnBhpB,IACe,WAAVA,EAAEyX,KAAoB0U,IACxBO,GAAgB,GAChBL,SAAAA,GAAW,KAGf,CAACF,EAAQE,IAGL5K,EAAU,CACd,WACA0K,GAAU,iBACVT,GAAS,kBACTrO,GAAY,qBACZD,GAEC/F,OAAOiB,SACPC,KAAK,KAER,OACE8F,EAAAA,KAAA,MAAA,CAAKuD,IAAK4K,EAAcpP,UAAWqE,EAAO,iBAAkBnE,QAAY/F,EAAW0V,UAAWD,YAC5FhsB,EAAAA,IAAA,QAAA,CAAO+qB,QAAS/P,EAAIoB,UAAU,kBAAiB7B,SAC5C2B,IAGHmB,EAAAA,KAAA,MAAA,CAAKjB,UAAU,oBAAmB7B,SAAA,CAChC8C,EAAAA,KAAA,SAAA,CACErC,GAAIA,EACJsC,KAAK,SACLlB,UAAU,oBACVI,QAASmP,EACTtP,SAAUA,kBACI,UAAS,gBACR8O,EAAM,gBACNI,iBACDb,EAAQ,YAASnU,EAAS,mBACtBmU,EAAQE,OAAUrU,cACzB9R,EAAI8V,SAAA,CAEfva,EAAAA,YAAMoc,UAAW,oBAAoBkP,EAAgD,GAAjC,gCAAqC/Q,SACtF+Q,GAAgBhB,IAEnBtqB,EAAAA,IAAA,OAAA,CAAMoc,UAAU,oBAAmB,cAAa,gBAC9Cpc,EAAAA,IAACC,EAAAA,iBAAgBC,KAAMirB,EAASe,EAAAA,YAAcC,EAAAA,qBAIjDhB,GACCnrB,EAAAA,WAAKgb,GAAIuQ,EAAWnP,UAAU,kBAAkBkJ,KAAK,UAAS,aAAapJ,WACxE3B,OAKNmQ,GACC1qB,EAAAA,IAAA,IAAA,CAAGgb,GAAI4P,EAASxO,UAAU,kBAAkBkJ,KAAK,QAAO/K,SACrDmQ,QC5GE0B,EAAoC,EAC/ClQ,QACAzX,OACA4nB,WAAU,EACV9B,WACAlO,YAAW,EACXC,YAAW,EACXF,gBAEA,MAAMpB,EAAK2P,EAAAA,QAELlK,EAAU,CAAC,WAAY4L,GAAW,oBAAqBhQ,GAAY,qBAAsBD,GAC5F/F,OAAOiB,SACPC,KAAK,KAER,OACE8F,EAAAA,cAAOjB,UAAWqE,EAAO,iBAAkBnE,QAAY/F,EAAWwU,QAAS/P,YACzEhb,EAAAA,IAAA,QAAA,CACEgb,GAAIA,EACJsC,KAAK,WACL7Y,KAAMA,EACN4nB,QAASA,EACT9B,SAAWvrB,GAAMurB,aAAQ,EAARA,EAAWvrB,EAAEye,OAAO4O,SACrChQ,SAAUA,EACVD,UAAU,kBAAiB,eACbiQ,IAEhBrsB,EAAAA,YAAMoc,UAAU,iBAAgB,cAAa,OAAM7B,SACjDva,EAAAA,IAACC,EAAAA,gBAAe,CAACC,KAAMmsB,EAAUC,EAAAA,cAAgBC,EAAAA,aAEnDvsB,EAAAA,IAAA,OAAA,CAAMoc,UAAU,2BAAmBF,QCH5BsQ,EAAgD,EAC3DtQ,QACAzX,OACA6lB,cAAc,oBACdvJ,UACAzK,MAAOmW,EACPlC,WACAC,SACAC,aACAC,QACArO,YAAW,EACXC,YAAW,EACXF,gBAEA,MAAOsQ,EAAeC,GAAoBnN,EAAAA,SAAmB,IACvDoN,OAAqCrW,IAApBkW,EAAgCA,EAAkBC,EAEnEG,EAAqB7E,EAAAA,YACzB,CAAC8E,EAAqBT,KACpB,MAAMT,EAAOS,EAAU,IAAIO,EAAgBE,GAAeF,EAAevW,OAAQ0W,GAAMA,IAAMD,GAE7FH,EAAiBf,GACjBrB,SAAAA,EAAWqB,IAEb,CAACgB,EAAgBrC,IAGbyC,EAAsBhF,cACzBmD,IACMA,GACHX,SAAAA,KAGJ,CAACA,IAMG/J,EAAU,CAAC,kBAAmBrE,GAAW/F,OAAOiB,SAASC,KAAK,KAEpE,OACEvX,EAAAA,IAAA,MAAA,CAAKoc,UAAWqE,EAAO,iBAAkBnE,QAAY/F,WACnDvW,MAACkrB,EAAQ,CACPhP,MAAOA,EACPzX,KAAMA,EACN6lB,YAAaA,EACbgB,aAVe,GAWfD,SAAU2B,EACVtC,MAAOA,EACPrO,SAAUA,EACVC,SAAUA,EAAQ/B,SAElBva,EAAAA,IAAA,MAAA,CAAKoc,UAAU,2BAA2BkJ,KAAK,QAAO,aAAapJ,EAAK3B,SACrEwG,EAAQvK,IAAKyW,GACZjtB,EAAAA,WAEEoc,UAAU,0BACVkJ,KAAK,SAAQ,gBACEsH,EAAe/T,SAASoU,EAAO3W,OAAMiE,SAEpDva,EAAAA,IAACosB,EAAQ,CACPlQ,MAAO+Q,EAAO/Q,MACdzX,KAAM,GAAGA,KAAQwoB,EAAO3W,QACxB+V,QAASO,EAAe/T,SAASoU,EAAO3W,OACxCiU,SAAW8B,GAAYQ,EAAmBI,EAAO3W,MAAO+V,GACxDhQ,SAAUA,EACVC,SAAUA,KAXP2Q,EAAO3W,eC5CpB4W,EAAW,6BAEjB,SAASC,EAAc7W,EAAe8W,GAEpC,GAAmB,oBAAfA,EAAM9P,KAA4B,CACpC,MAAMyP,EAAIK,EAAMC,mBAChB,IAAKN,EAAG,OACR,MAAMO,EAASP,EAAEQ,aACXC,EAAalX,EAAQA,EAAMmX,MAAM,KAAO,GAE9C,OAAIV,EAAEjC,UAAkC,IAAtB0C,EAAW9tB,OACpB4tB,QAAAA,EAAU,qCAEfP,EAAEW,eAAiBF,EAAW9tB,OAASqtB,EAAEW,cACpCJ,QAAAA,EAAU,0BAA0BP,EAAEW,2BAE3CX,EAAEY,eAAiBH,EAAW9tB,OAASqtB,EAAEY,cACpCL,QAAAA,EAAU,8BAA8BP,EAAEY,gCAEnD,CACF,CAGA,MAAMZ,EAAIK,EAAM3C,WAChB,IAAKsC,EAAG,OACR,MAAMO,EAASP,EAAEQ,aAEjB,OAAIR,EAAEjC,WAAaxU,EAAMsX,OAChBN,QAAAA,EAAU,0BAEfP,EAAEc,OAASvX,EAAMsX,SAAWV,EAASpX,KAAKQ,EAAMsX,QAC3CN,QAAAA,EAAU,sCAEfP,EAAE/B,WAAa1U,EAAMsX,OAAOluB,OAASqtB,EAAE/B,UAClCsC,QAAAA,EAAU,oBAAoBP,EAAE/B,wBAErC+B,EAAE9B,WAAa3U,EAAMsX,OAAOluB,OAASqtB,EAAE9B,UAClCqC,QAAAA,EAAU,wBAAwBP,EAAE9B,wBAEzC8B,EAAEe,UAAYf,EAAEe,QAAQhY,KAAKQ,EAAMsX,QAC9BN,QAAAA,EAAU,GAAGF,EAAMlR,2BAD5B,CAIF,CAEO,MCxGM6R,EAAuC,CAIlD7sB,WAAY,CAEV,mBAAoB,UACpB,oBAAqB,UACrB,uBAAwB,UACxB,yBAA0B,UAC1B,wBAAyB,UACzB,mBAAoB,UAGpB,qBAAsB,UACtB,sBAAuB,UACvB,sBAAuB,UACvB,sBAAuB,UACvB,sBAAuB,UACvB,sBAAuB,UACvB,sBAAuB,UACvB,sBAAuB,UACvB,sBAAuB,UACvB,sBAAuB,UACvB,sBAAuB,UAGvB,yBAA0B,UAC1B,0BAA2B,UAC3B,0BAA2B,UAC3B,0BAA2B,UAC3B,0BAA2B,UAC3B,0BAA2B,UAC3B,0BAA2B,UAC3B,0BAA2B,UAC3B,0BAA2B,UAC3B,0BAA2B,UAC3B,0BAA2B,UAG3B,sBAAuB,UACvB,uBAAwB,UACxB,uBAAwB,UACxB,uBAAwB,UACxB,uBAAwB,UACxB,uBAAwB,UACxB,uBAAwB,UACxB,uBAAwB,UACxB,uBAAwB,UACxB,uBAAwB,UACxB,uBAAwB,UAGxB,mBAAoB,UACpB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UAGrB,mBAAoB,UACpB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UAGrB,mBAAoB,UACpB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UAGrB,iBAAkB,UAClB,kBAAmB,UACnB,kBAAmB,UACnB,kBAAmB,UACnB,kBAAmB,UACnB,kBAAmB,UACnB,kBAAmB,UACnB,kBAAmB,UACnB,kBAAmB,UACnB,kBAAmB,UACnB,kBAAmB,UAGnB,gBAAiB,UACjB,iBAAkB,UAClB,iBAAkB,UAClB,iBAAkB,UAClB,iBAAkB,UAClB,iBAAkB,UAClB,iBAAkB,UAClB,iBAAkB,UAClB,iBAAkB,UAClB,iBAAkB,UAClB,iBAAkB,UAGlB,cAAe,UACf,cAAe,UACf,oBAAqB,eAMvBC,SAAU,CAER,uDAAwD,0BACxD,qDAAsD,8BACtD,sDAAuD,8BACvD,yDAA0D,gCAC1D,uDAAwD,2BACxD,wDAAyD,2BACzD,sDAAuD,2BACvD,sDAAuD,6BACvD,oDAAqD,6BACrD,qDAAsD,6BACtD,uDAAwD,8BACxD,uDAAwD,qBAGxD,kDAAmD,0BACnD,oDAAqD,0BACrD,sDAAuD,+BACvD,qDAAsD,2BACtD,oDAAqD,qBACrD,oDAAqD,2BACrD,mDAAoD,6BACpD,iDAAkD,0BAClD,+CAAgD,0BAGhD,kDAAmD,2BACnD,mDAAoD,2BACpD,kDAAmD,2BACnD,+CAAgD,0BAChD,iDAAkD,qBAGlD,uDAAwD,0BACxD,oDAAqD,2BACrD,kDAAmD,2BACnD,uDAAwD,0BACxD,oDAAqD,2BACrD,kDAAmD,2BACnD,qDAAsD,wBACtD,kDAAmD,yBACnD,gDAAiD,yBACjD,oDAAqD,uBACrD,iDAAkD,wBAClD,+CAAgD,wBAGhD,2DAA4D,2BAC5D,yDAA0D,6BAC1D,0DAA2D,6BAC3D,4DAA6D,2BAG7DC,QAAS,8DACTC,aAAc,4DACdC,cAAe,6DACfC,YAAa,2DACbC,UAAW,iCACXC,eAAgB,iCAChBC,gBAAiB,iCACjBC,cAAe,2DACfC,OAAQ,6DACRC,YAAa,2DACbC,aAAc,4DACdC,WAAY,2DACZC,SAAU,2BACVC,cAAe,2BACfC,eAAgB,2BAChBC,aAAc,2DACdC,YAAa,2DACbC,cAAe,6DACfE,aAAc,4DACdC,YAAa,2DACbC,aAAc,2DACdC,SAAU,wDACVC,cAAe,sDACfC,UAAW,8DACXC,YAAa,gEACbC,WAAY,+DACZC,UAAW,8DACXC,UAAW,8DACXC,cAAe,0DACfC,aAAc,yDACdC,aAAc,yDACdC,YAAa,sDACb4qB,YAAa,wDACb3qB,aAAc,2DACdC,kBAAmB,yDACnBC,eAAgB,8DAChBC,aAAc,2DACdC,kBAAmB,yDACnBC,eAAgB,8DAChBC,WAAY,yDACZC,gBAAiB,uDACjBC,aAAc,4DACdC,UAAW,wDACXC,eAAgB,sDAChBC,YAAa,2DACbC,mBAAoB,kEACpBC,wBAAyB,gEACzBC,yBAA0B,iEAC1BC,qBAAsB,2BACtBC,0BAA2B,2BAC3BC,2BAA4B,2BAC5BC,oBAAqB,mEAOrB,gDAAiD,iCACjD,8CAA+C,iCAC/C,+CAAgD,iCAChD,6CAA8C,2DAC9C,2CAA4C,2DAC5C,4CAA6C,iCAC7C,0CAA2C,iCAE3C,4CAA6C,6DAC7C,0CAA2C,2DAC3C,2CAA4C,4DAC5C,yCAA0C,2DAC1C,uCAAwC,2DACxC,wCAAyC,wDACzC,sCAAuC,iCAEvC,kDAAmD,cACnD,gDAAiD,8DACjD,iDAAkD,6DAClD,+CAAgD,8DAChD,6CAA8C,2DAC9C,8CAA+C,8DAC/C,4CAA6C,8DAE7C,gDAAiD,cACjD,8CAA+C,gEAC/C,+CAAgD,+DAChD,6CAA8C,2DAC9C,2CAA4C,2DAC5C,4CAA6C,0DAC7C,0CAA2C,yDAE3C,8CAA+C,cAC/C,4CAA6C,gEAC7C,6CAA8C,+DAC9C,2CAA4C,2DAC5C,yCAA0C,2DAC1C,0CAA2C,cAC3C,wCAAyC,cAGzC,gDAAiD,cACjD,8CAA+C,0BAC/C,+CAAgD,0BAChD,6CAA8C,0BAC9C,2CAA4C,qBAC5C,4CAA6C,qBAC7C,4CAA6C,0BAC7C,0CAA2C,0BAC3C,2CAA4C,0BAE5C,iDAAkD,cAClD,+CAAgD,0BAChD,gDAAiD,0BACjD,8CAA+C,0BAC/C,4CAA6C,qBAC7C,6CAA8C,qBAC9C,6CAA8C,0BAC9C,2CAA4C,0BAC5C,4CAA6C,0BAE7C,iDAAkD,cAClD,+CAAgD,0BAChD,gDAAiD,0BACjD,8CAA+C,0BAC/C,4CAA6C,qBAC7C,6CAA8C,qBAC9C,6CAA8C,0BAC9C,2CAA4C,0BAC5C,4CAA6C,4BCjTpC0pB,EAAiB9uB,OAAA+d,OAAA/d,OAAA+d,OAAA,GACzB1Y,GAAY,CACfC,KAAM,gBACNC,cAAe,CACb,mFACA,gHAIFC,OAAQ,CACNzD,WAAY6sB,EAAwB7sB,WACpCC,SAAU4sB,EAAwB5sB,UAGpCyD,cAAe,CACb,CAAEH,KAAM,UAAWI,GAAI,UAAWC,KAAM,eACxC,CAAEL,KAAM,YAAaI,GAAI,YAAaC,KAAM,iBAC5C,CAAEL,KAAM,SAAUI,GAAI,SAAUC,KAAM,cACtC,CAAEL,KAAM,WAAYI,GAAI,WAAYC,KAAM,iBAG5CW,WAAUtG,OAAA+d,OAAA/d,OAAA+d,OAAA,CAAA,EACL1Y,EAAaiB,YAAU,CAC1BC,WAAY,qEACZC,kBAAmB,qCAGrBgD,WAAUxJ,OAAA+d,OAAA/d,OAAA+d,OAAA,CAAA,EACL1Y,EAAamE,YAAU,CAC1BlI,IAAGtB,OAAA+d,OAAA,CAAA,EACE1Y,EAAamE,WAAWlI,OAK/BkJ,gBAAexK,OAAA+d,OAAA/d,OAAA+d,OAAA,GACV1Y,EAAamF,iBAAe,CAG/B4L,UAAW,CAETpI,MAAO,CACLhI,GAAI,CACFkC,SAAU,OACVE,WAAY,OAEdrC,GAAI,CACFmC,SAAU,OACVE,WAAY,OAEdtC,GAAI,CACFoC,SAAU,OACVE,WAAY,aCtDT2mB,EAAiC,CAI5ChtB,WAAY,CAEV,mBAAoB,UACpB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UAGrB,qBAAsB,UACtB,sBAAuB,UACvB,sBAAuB,UACvB,sBAAuB,UACvB,sBAAuB,UACvB,sBAAuB,UACvB,sBAAuB,UACvB,sBAAuB,UACvB,sBAAuB,UACvB,sBAAuB,UACvB,sBAAuB,UAGvB,kBAAmB,UACnB,mBAAoB,UACpB,mBAAoB,UACpB,mBAAoB,UACpB,mBAAoB,UACpB,mBAAoB,UACpB,mBAAoB,UACpB,mBAAoB,UACpB,mBAAoB,UACpB,mBAAoB,UACpB,mBAAoB,UAGpB,mBAAoB,UACpB,mBAAoB,UACpB,mBAAoB,UACpB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,qBAAsB,UAGtB,mBAAoB,UACpB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UAGrB,mBAAoB,UACpB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UACrB,oBAAqB,UAGrB,iBAAkB,UAClB,kBAAmB,UACnB,kBAAmB,UACnB,kBAAmB,UACnB,kBAAmB,UACnB,kBAAmB,UACnB,kBAAmB,UACnB,kBAAmB,UACnB,kBAAmB,UACnB,kBAAmB,UACnB,kBAAmB,UAGnB,gBAAiB,UACjB,iBAAkB,UAClB,iBAAkB,UAClB,iBAAkB,UAClB,iBAAkB,UAClB,iBAAkB,UAClB,iBAAkB,UAClB,iBAAkB,UAClB,iBAAkB,UAClB,iBAAkB,UAClB,iBAAkB,UAGlB,cAAe,UACf,cAAe,UACf,oBAAqB,eAMvBC,SAAU,CAMR,uBAAwB,0BACxB,wBAAyB,0BACzB,uBAAwB,2BACxB,uBAAwB,0BACxB,uBAAwB,2BACxB,wBAAyB,2BACzB,sBAAuB,0BAGvB,qBAAsB,2BACtB,uBAAwB,2BACxB,sBAAuB,2BACvB,qBAAsB,2BACtB,sBAAuB,2BACvB,sBAAuB,0BACvB,qBAAsB,2BACtB,uBAAwB,0BAGxB,0BAA2B,2BAC3B,wBAAyB,2BACzB,yBAA0B,2BAC1B,0BAA2B,2BAG3B,uBAAwB,2BACxB,sBAAuB,2BACvB,sBAAuB,2BACvB,0BAA2B,2BAC3B,qBAAsB,2BAGtB,+BAAgC,2BAChC,kCAAmC,0BACnC,6BAA8B,6BAC9B,+BAAgC,2BAChC,8BAA+B,2BAC/B,gCAAiC,2BAEjC,iCAAkC,2BAClC,oCAAqC,2BACrC,+BAAgC,2BAEhC,8BAA+B,yBAC/B,iCAAkC,yBAClC,4BAA6B,yBAE7B,gCAAiC,2BACjC,8BAA+B,2BAC/B,2BAA4B,2BAG5B,oCAAqC,0BACrC,oCAAqC,0BACrC,gCAAiC,2BACjC,8BAA+B,2BAE/B,kCAAmC,wBACnC,kCAAmC,wBACnC,8BAA+B,yBAC/B,4BAA6B,yBAE7B,oCAAqC,0BACrC,oCAAqC,0BACrC,gCAAiC,2BACjC,8BAA+B,2BAE/B,iCAAkC,uBAClC,iCAAkC,uBAClC,6BAA8B,wBAC9B,2BAA4B,wBAG5B,sBAAuB,2BACvB,oBAAqB,2BACrB,qBAAsB,2BAOtB,4BAA6B,2BAC7B,6BAA8B,2BAC9B,4BAA6B,2BAC7B,4BAA6B,2BAC7B,4BAA6B,2BAC7B,6BAA8B,0BAC9B,2BAA4B,0BAG5B,0BAA2B,0BAC3B,4BAA6B,2BAC7B,2BAA4B,2BAC5B,0BAA2B,2BAC3B,2BAA4B,2BAC5B,2BAA4B,2BAC5B,0BAA2B,2BAC3B,4BAA6B,4BAG7B,+BAAgC,2BAChC,6BAA8B,2BAC9B,8BAA+B,2BAC/B,+BAAgC,2BAGhC,4BAA6B,0BAC7B,2BAA4B,2BAC5B,2BAA4B,2BAC5B,+BAAgC,2BAChC,0BAA2B,6BAG3B,oCAAqC,2BACrC,uCAAwC,0BACxC,kCAAmC,6BACnC,oCAAqC,6BACrC,mCAAoC,2BACpC,qCAAsC,2BAEtC,sCAAuC,6BACvC,yCAA0C,0BAC1C,oCAAqC,0BAErC,mCAAoC,yBACpC,sCAAuC,yBACvC,iCAAkC,yBAClC,wCAAyC,yBAEzC,qCAAsC,2BACtC,mCAAoC,6BACpC,gCAAiC,0BAGjC,yCAA0C,2BAC1C,yCAA0C,2BAC1C,qCAAsC,2BACtC,mCAAoC,2BAEpC,uCAAwC,yBACxC,uCAAwC,yBACxC,mCAAoC,yBACpC,iCAAkC,yBAElC,yCAA0C,2BAC1C,yCAA0C,2BAC1C,qCAAsC,2BACtC,mCAAoC,2BAEpC,sCAAuC,wBACvC,sCAAuC,wBACvC,kCAAmC,wBACnC,gCAAiC,wBAGjC,2BAA4B,2BAC5B,yBAA0B,0BAC1B,0BAA2B,0BAO3B,uDAAwD,8BACxD,qDAAsD,2BACtD,sDAAuD,2BACvD,yDAA0D,+BAC1D,uDAAwD,8BACxD,wDAAyD,8BACzD,sDAAuD,8BACvD,sDAAuD,0BACvD,oDAAqD,0BACrD,qDAAsD,0BACtD,wDAAyD,6BACzD,sDAAuD,6BACvD,uDAAwD,6BACxD,uDAAwD,+BACxD,uDAAwD,6BAGxD,kDAAmD,4BACnD,oDAAqD,4BACrD,sDAAuD,8BACvD,qDAAsD,6BACtD,oDAAqD,6BACrD,oDAAqD,6BACrD,mDAAoD,0BACpD,qDAAsD,6BACtD,iDAAkD,iCAClD,+CAAgD,+BAGhD,kDAAmD,6BACnD,mDAAoD,8BACpD,kDAAmD,6BACnD,+CAAgD,iCAGhD,uDAAwD,2CACxD,oDAAqD,qCACrD,kDAAmD,2BACnD,uDAAwD,2CACxD,oDAAqD,qCACrD,kDAAmD,2BACnD,qDAAsD,yCACtD,kDAAmD,mCACnD,gDAAiD,yBACjD,oDAAqD,wCACrD,iDAAkD,kCAClD,+CAAgD,wBAGhD,2DAA4D,sCAC5D,yDAA0D,2BAC1D,0DAA2D,qCAC3D,4DAA6D,uCAG7DgtB,wBAAyB,2BACzBC,mBAAoB,2BACpBC,oBAAqB,2BACrBC,eAAgB,2BAChBC,qBAAsB,2BACtBC,cAAe,2BACfrR,gBAAiB,0BACjBsR,oBAAqB,2BACrBrtB,QAAS,sCACTC,aAAc,2BACdC,cAAe,qCACfC,YAAa,yCACbC,UAAW,wCACXC,eAAgB,2BAChBC,gBAAiB,2BACjBC,cAAe,6BACfC,OAAQ,0BACRC,YAAa,0BACbC,aAAc,0BACdC,WAAY,6BACZC,SAAU,6BACVC,cAAe,6BACfC,eAAgB,6BAChBC,aAAc,4BACdC,YAAa,4BACbC,cAAe,8BACfE,aAAc,6BACdC,YAAa,4BACbC,aAAc,6BACdC,SAAU,iCACVC,cAAe,+BACfC,UAAW,8BACXC,YAAa,+BACbC,WAAY,8BACZC,UAAW,+BACXC,UAAW,6BACXC,cAAe,8BACfC,aAAc,6BACdC,aAAc,6BACdC,YAAa,iCACbC,aAAc,qCACdC,kBAAmB,2BACnBC,eAAgB,2CAChBC,aAAc,qCACdC,kBAAmB,2BACnBC,eAAgB,2CAChBC,WAAY,mCACZC,gBAAiB,yBACjBC,aAAc,yCACdC,UAAW,kCACXC,eAAgB,wBAChBC,YAAa,wCACbC,mBAAoB,sCACpBC,wBAAyB,oCACzBwqB,kCAAmC,4BACnCvqB,yBAA0B,qCAC1BC,qBAAsB,2BACtBC,0BAA2B,2BAC3BC,2BAA4B,2BAC5BC,oBAAqB,yCCrZlB,MAAMoqB,GAAWxvB,OAAA+d,OAAA/d,OAAA+d,OAAA,CAAA,EACnB1Y,IACHC,KAAM,SACNC,cAAe,CAAC,oFAEhBC,OAAQ,CACNzD,WAAYgtB,EAAkBhtB,WAC9BC,SAAU+sB,EAAkB/sB,UAG9ByD,cAAe,CACb,CAAEH,KAAM,UAAWI,GAAI,UAAWC,KAAM,eACxC,CAAEL,KAAM,YAAaI,GAAI,YAAaC,KAAM,iBAC5C,CAAEL,KAAM,SAAUI,GAAI,SAAUC,KAAM,cACtC,CAAEL,KAAM,WAAYI,GAAI,WAAYC,KAAM,iBAG5CW,WAAUtG,OAAA+d,OAAA/d,OAAA+d,OAAA,CAAA,EACL1Y,EAAaiB,YAAU,CAC1BC,WAAY,qEACZC,kBAAmB,qEAEnBwB,SAAU,CACRiB,MAAO,CACLf,SAAU,SACVC,WAAY,MACZC,WAAY,MACZE,OAAQ,CACNJ,SAAU,YAGdunB,eAAgB,CACdvnB,SAAU,SACVC,WAAY,MACZC,WAAY,MACZE,OAAQ,CACNJ,SAAU,YAGdgB,SAAU,CACRhB,SAAU,UACVC,WAAY,MACZC,WAAY,MACZE,OAAQ,CACNJ,SAAU,aAGdwnB,eAAgB,CACdxnB,SAAU,SACVC,WAAY,MACZC,WAAY,MACZE,OAAQ,CACNJ,SAAU,YAGdiB,KAAM,CACJjB,SAAU,WACVC,WAAY,MACZC,WAAY,OAEdkB,SAAU,CACRpB,SAAU,WACVC,WAAY,MACZC,WAAY,OAEdM,UAAW,CACTR,SAAU,WACVC,WAAY,MACZC,WAAY,UAKlBoB,WAAUxJ,OAAA+d,OAAA/d,OAAA+d,OAAA,GACL1Y,EAAamE,YAAU,CAC1BlI,IAAGtB,OAAA+d,OAAA,GACE1Y,EAAamE,WAAWlI,OAI/BkJ,gBAAiB,CACfmlB,WAAY,CAEVxhB,MAAO,0BAEPyhB,cAAe,MACfC,mBAAoB,IACpBC,oBAAqB,MAGrBtc,WAAY,0BACZC,WAAY,0BACZG,YAAa,UAGbL,KAAM,CACJpF,MAAO,0BACPqF,WAAY,0BACZC,WAAY,0BACZG,YAAa,YAIjBmc,WAAY,CAEVjM,IAAK,wCACL5b,SAAU,uEACV3B,WAAY,4CACZ4B,WAAY,oCACZ6nB,gBAAiB,2CAEjBC,UAAW,yBACXC,eAAgB,+BAChBC,qBAAsB,sCACtBC,cAAe,yBACfC,mBAAoB,2CAGpBC,eAAgB,mCAGhBC,WAAY,wDAGZhd,KAAM,CACJ6c,cAAe,0BACfH,UAAW,2DACXC,eAAgB,+BAEhBM,UAAW,6BACXF,eAAgB,4BAGpBG,WAAY,CACV3M,IAAK,WAGP4M,UAAW,CACT5M,IAAK,UACLja,QAAS,IACT8mB,gBAAiB,WACjBC,UAAW,YACX5qB,GAAI,CACF4qB,UAAW,QAEbroB,OAAQ,CACNub,IAAK,WACLja,QAAS,KAEXvB,OAAQ,CACNwb,IAAK,WACLja,QAAS,MAIbgnB,OAAQ,CACNC,YAAa,YACb7qB,GAAI,CACF8qB,uBAAwB,aACxBC,sBAAuB,YAEzBjrB,GAAI,CACFirB,sBAAuB,cAEzBlrB,GAAI,CACFkrB,sBAAuB,eAG3BC,QAAS,CACPC,gBAAiB,8+6iBACjBlrB,GAAI,CACFgE,OAAQ,QAEVjE,GAAI,CACFiE,OAAQ,OACRH,QAAS,QAEX/D,GAAI,CACFkE,OAAQ,OACRH,QAAS,SAIbsnB,WAAY,CAEV3a,MAAO,WACPxM,OAAQ,WAGR7D,aAAc,aACdirB,mBAAoB,gBAGpBC,kBAAmB,gBACnBC,wBAAyB,gBACzBC,iBAAkB,6BAGlB5mB,aAAc,0CAGd2L,UAAW,qBAGXmR,YAAa,sCACb+J,gBAAiB,WACjBC,UAAW,IAEXC,cAAe,IACfC,eAAgB,IAEhBC,gBAAiB,IACjBC,iBAAkB,IAElB5b,WAAY,cACZ6b,cAAe,WACfC,eAAgB,OAChBC,oBAAqB,SACrBC,mBAAoB,WACpBC,oBAAqB,QAGrBC,SAAU,IACVC,aAAc,IACdC,SAAU,IACVC,aAAc,IACdC,WAAY,MACZC,YAAa,MACbC,YAAa,OACbC,eAAgB,IAChBC,sBAAuB,OAGvBC,kBAAmB,aACnBC,mBAAoB,aACpBC,uBAAwB,SACxBC,wBAAyB,MACzBC,wBAAyB,OACzBC,qBAAsB,MACtBC,wBAAyB,6BACzBC,wBAAyB,MACzBC,wBAAyB,YACzBC,sBAAuB,KACvBC,wBAAyB,KACzBC,wBAAyB,YACzBC,sBAAuB,QACvBC,uBAAwB,MACxBC,6BAA8B,aAC9BC,2BAA4B,MAC5BC,6BAA8B,MAC9BtrB,OAAQ,CACNurB,YAAa,QACb7pB,OAAQ,QACRqB,SAAU,UACVyoB,UAAW,OACXtC,gBAAiB,SACjBM,cAAe,YACfC,eAAgB,YAChBE,mBAAoB,WACpBC,oBAAqB,WACrByB,2BAA4B,MAC5BC,6BAA8B,OAGhCrrB,OAAQ,CACNsrB,YAAa,QACb7pB,OAAQ,WACRqB,SAAU,OACVyoB,UAAW,OACXtC,gBAAiB,cAIrBzwB,KAAM,CAEJ8L,KAAM,SAGNC,YAAa,2BACbC,cAAe,2BACfC,mBAAoB,IAEpBC,cAAe,6BACfC,gBAAiB,6BACjBC,qBAAsB,IAEtBC,WAAY,0BACZC,aAAc,0BACdC,kBAAmB,IAEnBC,YAAa,2BACbC,cAAe,2BACfC,mBAAoB,IAEpBC,YAAa,2BACbC,cAAe,2BACfC,mBAAoB,IAEpBC,UAAW,yBACXC,YAAa,yBACbC,iBAAkB,IAGlBC,MAAO,CACLnI,GAAI,CACFgH,KAAM,WAER/G,GAAI,CACF+G,KAAM,QAER9G,GAAI,CACF8G,KAAM,UAER7G,GAAI,CACF6G,KAAM,QAER5G,GAAI,CACF4G,KAAM,cAKZpC,OAAQ,CACNC,YAAa,MACbb,QAAS,cACT3B,SAAU,OACVC,WAAY,MACZC,WAAY,WACZ7B,WAAY,wDACZqD,OAAQ,OAGRka,IAAK,YAGLiQ,QAAS,WAGTppB,aAAc,0CACdC,mBAAoB,WAKpBE,eAAgB,0CAChBkpB,kBAAmB,4CAGnBhmB,MAAO,CACLlI,GAAI,CACF+D,QAAS,eACT3B,SAAU,WACVE,WAAY,WACZ2rB,QAAS,WAEXhuB,GAAI,CACF8D,QAAS,cACT3B,SAAU,OACVE,WAAY,WACZ2rB,QAAS,aAEX/tB,GAAI,CACF6D,QAAS,mBACT3B,SAAU,WACVE,WAAY,SACZ2rB,QAAS,aAIb/rB,SAAU,CACR+C,QAAS,CACPrF,GAAI,2BACJC,KAAM,0BACNgE,OAAQ,2BACRqB,QAAS,6BACTE,UAAW,2BACXC,YAAa,2BACbF,SAAU,2BACVgpB,QAAS,2BACTC,UAAW,0BACXjwB,YAAa,2BAEbkwB,WAAY,2BACZ7wB,aAAc,2BACd8wB,eAAgB,2BAEhB7gB,KAAM,CACJ7N,GAAI,2BACJC,KAAM,0BACNgE,OAAQ,2BACRqB,QAAS,6BACTE,UAAW,2BACXC,YAAa,2BACbF,SAAU,2BACVgpB,QAAS,2BACTC,UAAW,0BACXjwB,YAAa,6BAGjB5B,UAAW,CACTqD,GAAI,cACJiE,OAAQ,2BACRhE,KAAM,2BAEN0uB,WAAY,2BACZppB,SAAU,cAEVD,QAAS,cACTE,UAAW,2BACXC,YAAa,2BAEb8oB,QAAS,2BACTC,UAAW,0BACXjwB,YAAa,2BAEbkwB,WAAY,cACZ7wB,aAAc,2BACd8wB,eAAgB,2BAEhB7gB,KAAM,CACJ7N,GAAI,cACJC,KAAM,0BACNgE,OAAQ,0BAERqB,QAAS,cACTE,UAAW,6BACXC,YAAa,6BAEbG,aAAc,2BACd+oB,WAAY,2BACZppB,SAAU,cAEVgpB,QAAS,2BACTC,UAAW,0BACXjwB,YAAa,6BAGjBqwB,KAAM,CAEJ5uB,GAAI,cACJC,KAAM,2BACNgE,OAAQ,cACRzB,SAAU,WACVC,WAAY,MACZ0B,QAAS,iBACTc,aAAc,OACdC,mBAAoB,IAEpBI,QAAS,cACTE,UAAW,2BACXC,YAAa,cAEbF,SAAU,cACVopB,WAAY,2BACZ/oB,aAAc,cAEd2oB,QAAS,cACTC,UAAW,2BACXjwB,YAAa,cAEbkwB,WAAY,cACZ7wB,aAAc,2BACd8wB,eAAgB,cAEhBpmB,MAAO,CACLlI,GAAI,CACFoC,SAAU,YAEZnC,GAAI,CACFmC,SAAU,QAEZlC,GAAI,CACFkC,SAAU,aAKdqL,KAAM,CACJ7N,GAAI,cACJC,KAAM,0BACNgE,OAAQ,cAERqB,QAAS,cACTE,UAAW,6BACXC,YAAa,cAEbF,SAAU,cACVopB,WAAY,6BACZ/oB,aAAc,cAEd2oB,QAAS,cACTC,UAAW,0BACXjwB,YAAa,gBAGjBswB,OAAQ,CAEN7uB,GAAI,qCACJC,KAAM,0BACNgE,OAAQ,qCACRgB,aAAc,oDACdC,mBAAoB,WAEpBI,QAAS,mCACTE,UAAW,0BACXC,YAAa,yBAEbF,SAAU,yBACVopB,WAAY,0BACZ/oB,aAAc,yBAEd2oB,QAAS,qCACTC,UAAW,0BACXjwB,YAAa,qCAEbkwB,WAAY,2BACZ7wB,aAAc,2BACd8wB,eAAgB,2BAGhB7gB,KAAM,CACJ7N,GAAI,0CACJC,KAAM,0BACNgE,OAAQ,0CACRgB,aAAc,yDAEdK,QAAS,wCACTE,UAAW,0BACXC,YAAa,+CAEbF,SAAU,yBACVopB,WAAY,0BACZ/oB,aAAc,yBAEd2oB,QAAS,0CACTC,UAAW,0BACXjwB,YAAa,8CAKrBV,SAAU,CACR4K,MAAO,2BACPjG,SAAU,WACVC,WAAY,MACZkB,eAAgB,OAEhBuK,YAAa,2BACbJ,WAAY,2BACZC,WAAY,2BAEZC,oBAAqB,YACrBC,yBAA0B,QAC1BhJ,aAAc,0CACdC,mBAAoB,WAEpB2I,KAAM,CACJpF,MAAO,0BACPqF,WAAY,6BACZC,WAAY,0BACZG,YAAa,+BAGjB3F,QAAS,CACPC,OAAQ,IACRrE,QAAS,IACTsE,MAAO,4BACP5H,WAAY,qEAEZ6H,WAAY,sDACZC,aAAc,sDACdC,aAAc,4DACdC,gBAAiB,SAEjBC,WAAY,mDACZC,aAAc,sDACdC,aAAc,4DACdC,gBAAiB,SAEjBC,WAAY,sDACZC,aAAc,sDACdC,aAAc,4DACdC,gBAAiB,SAEjBC,WAAY,qDACZC,aAAc,0DACdC,aAAc,4DAEdC,WAAY,sDACZC,aAAc,0DACdC,aAAc,4DAEdC,WAAY,mDACZC,aAAc,0DACdC,aAAc,4DAEdtF,cAAe,SACfD,gBAAiB,MACjBE,gBAAiB,MACjB6B,WAAY,4BAEZwoB,uBAAwB,SACxBC,yBAA0B,MAC1BC,yBAA0B,MAC1BC,oBAAqB,4BAErBhjB,iBAAkB,UAClBC,mBAAoB,MACpBC,mBAAoB,MACpB+iB,cAAe,4BAEfC,uBAAwB,SACxBC,yBAA0B,MAC1BC,yBAA0B,MAC1BC,oBAAqB,4BAErBljB,aAAc,WACdC,eAAgB,MAChBC,eAAgB,MAChBijB,UAAW,8BAEX1iB,iBAAkB,WAClBC,mBAAoB,MACpBC,mBAAoB,MACpByiB,cAAe,8BAEf/hB,kBAAmB,WACnBC,oBAAqB,MACrBC,oBAAqB,MACrB8hB,eAAgB,8BAGhB5hB,KAAM,CACJpF,MAAO,2BAGT7F,OAAQ,CACN4B,cAAe,UACfsqB,uBAAwB,UACxB7iB,iBAAkB,WAClBkjB,uBAAwB,YAG5BprB,KAAM,CACJ/D,GAAI,OACJiE,OAAQ,qCACRxD,aAAc,IACdyD,OAAQ,+BACRC,QAAS,gCACTwB,SAAU,QACVrB,OAAQ,aAERW,aAAc,qEACdC,mBAAoB,WAEpBU,aAAc,iFAEdC,yBACE,gGACFC,iBAAkB,MAGlBzF,GAAI,CACFyF,iBAAkB,SAItBC,KAAM,CAEJC,MAAO,YACPC,MAAO,WACPC,MAAO,UACPC,MAAO,SACPC,MAAO,OAGPgY,IAAK,UAGLvb,OAAQ,CACNub,IAAK,OAELnY,MAAO,YACPC,MAAO,OACPC,MAAO,OACPC,MAAO,QAETxD,OAAQ,CACNwb,IAAK,OAELnY,MAAO,YACPC,MAAO,OACPC,MAAO,SACPC,MAAO,SAIXhC,OAAQ,CAENpE,GAAI,gEACJiE,OAAQ,mEACRK,OAAQ,OACRH,QAAS,8DAGTmC,WAAY,2DACZ9B,cAAe,8DACfD,gBAAiB,4DACjBgC,YAAa,8DAEbC,aAAc,6DACdC,gBAAiB,uEACjBC,cAAe,0CAEfC,cAAe,2CAGjB/K,IAAK,CACH0I,OAAQ,WAERsC,UAAW,8DACXC,gBAAiB,aACjBC,oBAAqB,cACrBC,eAAgB,gGAEhBT,WAAY,2DACZ9B,cAAe,YACfC,gBAAiB,YACjBF,gBAAiB,MACjBgC,YAAa,WACbS,gBAAiB,+FAEjBC,iBAAkB,2DAClBrC,oBAAqB,SACrBF,sBAAuB,OACvBC,sBAAuB,MACvBE,kBAAmB,iBACnBqC,sBAAuB,4CAEvB7G,GAAI,CACFiE,OAAQ,YACRE,cAAe,SACfC,gBAAiB,MACjBG,oBAAqB,WACrBF,sBAAuB,QAI3ByJ,SAAU,CAER1F,MAAO,4BACP5H,WAAY,qEACZ6B,WAAY,MAGZ0L,oBAAqB,sCAGrBC,kBAAmB,WACnBC,oBAAqB,MACrBC,oBAAqB,MACrBC,sBAAuB,sCACvBC,eAAgB,8BAGhBC,WAAY,wCACZC,gBAAiB,0CACjBC,iBAAkB,WAClBC,mBAAoB,MACpBC,qBAAsB,wCACtBC,cAAe,8BACfC,gBAAiB,OACjBC,gBAAiB,UAGjBC,iBAAkB,MAGlBC,aAAc,UACdC,OAAQ,2BACRC,YAAa,mBAEbC,YAAa,WACbC,MAAO,2BACPC,WAAY,sCAGZC,iBAAkB,wCAClBC,kBAAmB,4EACnBC,qBAAsB,yCACtBC,gBAAiB,8BAGjBC,SAAU,qCACVC,SAAU,0CAGVlN,OAAQ,CACNyL,kBAAmB,OACnBE,oBAAqB,MACrBK,iBAAkB,QAIpBf,KAAM,CACJpF,MAAO,0BACPgG,eAAgB,0BAChBM,cAAe,0BACfa,gBAAiB,0BACjBR,OAAQ,2BACRG,MAAO,2BACPM,SAAU,uCAIda,UAAW,CAETlO,SAAU,WACVC,WAAY,MACZC,WAAY,MACZ+F,MAAO,8BACP5H,WAAY,qEACZ8B,cAAe,SAGfuM,iBAAkB,MAGlBtM,OAAQ,CACNJ,SAAU,OACVE,WAAY,OAGdG,OAAQ,CACNL,SAAU,WACVE,WAAY,OAIdmL,KAAM,CACJpF,MAAO,4BAIXinB,UAAW,CACTtR,IAAK,UACLC,OAAQ,WACRsR,0BAA2B,KAC3BC,2BAA4B,MAC5BC,2BAA4B,KAC5BC,4BAA6B,MAC7BjtB,OAAQ,CACNub,IAAK,YAEPxb,OAAQ,CACNwb,IAAK,SAIT2R,aAAc,CACZ5rB,QAAS,iBACTia,IAAK,UACLK,WAAY,SACZ1X,eAAgB,WAChBipB,WAAY,WACZC,QAAS,WAETptB,OAAQ,CACNsB,QAAS,iBACTia,IAAK,YAEPxb,OAAQ,CACNuB,QAAS,oBAIb+rB,WAAY,CAEV9qB,eAAgB,mCAChBkpB,kBAAmB,qCAGnBtuB,GAAI,OACJiE,OAAQ,qCACRksB,YAAa,qCACblrB,aAAc,qCACdC,mBAAoB,IACpBkrB,YAAa,OACbC,aAAc,OACdJ,QAAS,WACTtqB,SAAU,QAGVnB,cAAe,qCACfD,gBAAiB,uCACjBE,gBAAiB,uCACjB6B,WAAY,uBAGZgqB,YAAa,UACbC,eAAgB,WAChBC,SAAU,WACVC,sBAAuB,YAGvBC,YAAa,YACbC,oBAAqB,WACrBC,gBAAiB,WACjBC,uBAAwB,aAGxBC,mBAAoB,QACpBC,sBAAuB,WACvBC,kBAAmB,WACnBC,2BAA4B,UAC5BC,yBAA0B,aAG1BrjB,KAAM,CACJ7N,GAAI,2BACJiE,OAAQ,uCAIZktB,WAAY,CAEV/S,IAAK,WACLgT,QAAS,YACTC,UAAW,SAGXb,SAAU,WACVc,UAAW,0BAEXC,YAAa,WACbC,eAAgB,uBAChBC,eAAgB,MAGhBjvB,SAAU,uCACVC,WAAY,oCACZC,WAAY,oCACZ+F,MAAO,sDACP5H,WAAY,wCACZ8B,cAAe,0CAGfC,OAAQ,CACNJ,SAAU,2CAIZqL,KAAM,CACJpF,MAAO,0BACP6oB,UAAW,4BAIf3gB,MAAO,CAELC,UAAW,qBAGX8gB,aAAc,QAGd9qB,UAAW,0BACXiK,cAAe,qCACf9J,eAAgB,UAChBtG,aAAc,IACdyD,OAAQ,+BACRyB,SAAU,YACVmL,MAAO,OAGP7L,aAAc,0CACdC,mBAAoB,WAGpBysB,mBAAoB,oBACpBC,qBAAsB,SACtBC,gBAAiB,2BAGjBvpB,MAAO,CACLlI,GAAI,CACFuF,SAAU,YACVoB,eAAgB,WAElB1G,GAAI,CACFsF,SAAU,YACVoB,eAAgB,WAElBzG,GAAI,CACFqF,SAAU,YACVoB,eAAgB,YAKpBnE,OAAQ,CACNmE,eAAgB,SAChBpB,SAAU,OACVlF,aAAc,oBACdqxB,uBAAwB,IACxBC,uBAAwB,OACxBC,uBAAwB,KAE1BnkB,KAAM,CACJjH,UAAW,2BACXiK,cAAe,qCACfghB,gBAAiB,6BAGrBI,SAAU,CAERzB,SAAU,SACVjY,YAAa,2BACb2Z,iBAAkB,2BAClBC,aAAc,2BACdC,kBAAmB,2BAGnBvxB,WAAY,wDACZ2B,SAAU,WACVC,WAAY,MACZC,WAAY,QACZ2vB,WAAY,2BACZjU,IAAK,WAGLnZ,aAAc,0CACdC,mBAAoB,WAGpB2I,KAAM,CACJ0K,YAAa,0BACb2Z,iBAAkB,6BAClBC,aAAc,6BACdE,WAAY,4BAIhBC,SAAU,CAERC,gBAAiB,wDACjBC,cAAe,WACfC,gBAAiB,MACjBC,gBAAiB,QACjBL,WAAY,2BACZM,SAAU,SAGV9xB,WAAY,wDACZ2B,SAAU,WACVC,WAAY,MACZC,WAAY,QACZ+F,MAAO,2BACPzI,GAAI,0BACJgF,YAAa,MACbuT,YAAa,2BACb9X,aAAc,IACd0D,QAAS,OACTyuB,iBAAkB,2BAClBC,iBAAkB,2BAGlBC,YAAa,OACbC,aAAc,2BAGdC,QAAS,0BACTC,iBAAkB,2BAClBC,eAAgB,QAChBC,aAAc,WAGdC,cAAe,WACfC,gBAAiB,MACjBC,WAAY,yBACZC,eAAgB,QAGhB1lB,KAAM,CACJwkB,WAAY,0BACZ5pB,MAAO,2BACPzI,GAAI,0BACJuY,YAAa,2BACbqa,iBAAkB,2BAClBG,aAAc,2BACdC,QAAS,0BACTC,iBAAkB,2BAClBK,WAAY,2BAIhBE,eAAgB,CACdC,cAAe,cACfC,cAAe,cAEf7lB,KAAM,CACJ6lB,cAAe,6BAInBC,UAAW,CAETpB,gBAAiB,wDACjBC,cAAe,WACfC,gBAAiB,MACjBC,gBAAiB,QACjBL,WAAY,2BACZM,SAAU,SAGV9xB,WAAY,wDACZ2B,SAAU,WACVC,WAAY,MACZC,WAAY,QACZ+F,MAAO,2BACPzI,GAAI,0BACJgF,YAAa,MACbuT,YAAa,2BACb9X,aAAc,IACd0D,QAAS,OACTyuB,iBAAkB,2BAClBC,iBAAkB,2BAGlBQ,gBAAiB,MACjBC,WAAY,yBACZC,eAAgB,QAGhB1lB,KAAM,CACJwkB,WAAY,0BACZ5pB,MAAO,2BACPzI,GAAI,0BACJuY,YAAa,2BACbqa,iBAAkB,2BAElBU,WAAY,2BAIhB73B,UAAW,CAET2iB,IAAK,OACLja,QAAS,UACTyvB,QAAS,WACTC,UAAW,UAGXC,qBAAsB,wDACtBC,mBAAoB,OACpBC,qBAAsB,MACtBC,qBAAsB,MAGtBpxB,OAAQ,CACNsB,QAAS,eACT0vB,UAAW,WAEbjxB,OAAQ,CACNuB,QAAS,YACT0vB,UAAW,QAIbhmB,KAAM,CACJqmB,gBAAiB,0BACjBC,oBAAqB,2CC1oCbC,KACd,MAAMrd,aAAEA,GAAiB1B,IAGnBgf,EAAaC,GACK,oBAAXhZ,OAA+B,GACnCiZ,iBAAiBve,SAASa,iBAAiB2d,iBAAiBF,GAASvL,OAIxE1sB,EAAqC,CAAA,EACrCC,EAAmC,CAAA,EAczC,OAXAhC,OAAO0a,KAAK+B,EAAajX,OAAOzD,YAAYyW,QAASlB,IACnD,MAAM6iB,EAAS,WAAW7iB,EAAIT,QAAQ,WAAY,OAAOD,gBACzD7U,EAAWuV,GAAOyiB,EAAUI,IAAW1d,EAAajX,OAAOzD,WAAWuV,KAIxEtX,OAAO0a,KAAK+B,EAAajX,OAAOxD,UAAUwW,QAASlB,IACjD,MAAM6iB,EAAS,KAAK7iB,EAAIT,QAAQ,WAAY,OAAOD,gBACnD5U,EAASsV,GAAOyiB,EAAUI,KAGrB,CAAEp4B,aAAYC,WACvB,oJX+CuB4a,IAAA,IAAAxB,SACrBA,EAAQgf,MACRA,EAAQ,OAAMrX,cACdA,EAAgB,SAAQsX,aACxBA,EAAe,MAAIzd,EAChBU,EAAK3d,EAAAid,EALa,qDAOrB,MAAM0d,EAAS9Q,EAAclM,EAAMid,YAC7BC,EAA0C,SAArBld,EAAMid,cAA2Bjd,EAAMmd,gBAE5DC,EAAc,CAClB,SACA,WAAWjkB,EAAY6G,EAAMid,cAC7BC,GAAsB,uBACtBld,EAAML,WAEL/F,OAAOiB,SACPC,KAAK,KAEFuiB,EAAoC,CACxCC,UAAWR,EACXjW,YAjDwB2F,EAiDOsQ,EAhDe,CAC9C9P,KAAM,aACNN,OAAQ,SACRO,MAAO,YAEWT,KANK,IAACA,EAoD1B,MAAM+Q,EAAiBhR,EAAqB9G,GACtC+X,EAAmBjR,EAAqBvM,EAAMyd,sBAC9CC,EAAiBnR,EAAqBvM,EAAM2d,oBAElD,OACE/c,OAAA2I,EAAAA,SAAA,CAAAzL,SAAA,CACE8C,EAAAA,KAACyE,EAAO3iB,OAAA+d,OAAA,CAACd,UAAWyd,EAAa3X,cAAeA,GAAmBzF,EAAK,CAAAlC,SAAA,CACrEA,GAGCva,EAAAA,IAAAgmB,EAAAA,SAAA,CAAAzL,SACE8C,EAAAA,KAAC0F,EAAI,CACHC,QAAS,CACP/d,GAAI,EACJC,GAAI,EACJC,GAAIs0B,EAAOzW,QAAU,EAAI,WAAayW,EAAOzW,SAE/CK,eAAgBoW,EAAOzW,QAAU,EAAI,aAAUzM,EAC/CiN,eAAe,SACfP,KAAKxG,eAAAA,EAAO4d,UAAW,KACvB/W,WAAY0W,EAAczf,SAAA,CAG1Bva,EAAAA,IAACikB,EAAQ,CAAC7H,UAAU,UAAUxB,MAAOqf,EAAmB,CAAEK,UAAWL,QAAqB1jB,EAASgE,SACjG8C,EAAAA,KAAC0F,EAAI,CAACC,QAAS,EAAGC,IAA2B,UAAtBxG,eAAAA,EAAOoY,YAAwB,IAAMpY,aAAK,EAALA,EAAOoY,WAAUta,SAAA,EAC1EkC,eAAAA,EAAO8d,cACNv6B,EAAAA,IAACwhB,GAAWC,MAAOhF,EAAM8d,YAAa7Y,UAAU,IAAIpF,SAAUG,eAAAA,EAAOH,YAEtEG,aAAK,EAALA,EAAOrP,UACNpN,EAAAA,IAACikB,EAAQ,CAACrJ,MAAOkf,EAAYvf,SAC3Bva,EAAAA,IAACyiB,GAAQC,MAAO8W,GAAgB,KAAM7W,QAAQ,QAAQrG,SAAUmd,EAAOnd,SAAQ/B,SAC5EkC,EAAMrP,aAIZqP,aAAK,EAALA,EAAO7S,SACN5J,EAAAA,IAACikB,EAAQ,CAACrJ,MAAOkf,EAAYvf,SAC1B,SAAUkC,EAAM7S,OACf5J,EAAAA,IAACud,EAAUpe,OAAA+d,OAAA,CACTZ,SAAUmd,EAAOnd,UACbG,EAAM7S,SAGZ5J,MAAC8b,EAAM3c,OAAA+d,OAAA,CACLZ,SAAUmd,EAAOnd,UACbG,EAAM7S,gBASrB6vB,EAAOzW,QAAU,IAAKvG,eAAAA,EAAO7H,QAC5B5U,MAACikB,EAAQ,CACP7H,UAAU,QACV8H,QAAS,OACTtJ,MAAOuf,EAAiB,CAAEG,UAAWH,QAAmB5jB,EAASgE,SAEhE8O,EAAkB5M,EAAM7H,MAAO6kB,EAAOnd,iBAOhDqd,GACC35B,EAAAA,IAAA,MAAA,CAAKoc,UAAU,mBAAkB7B,SAC/Bva,EAAAA,IAACye,EAAK,CAACJ,IAAK5B,EAAMmd,gBAAkBtc,KAAK,QAAQqB,UAAQ,EAACR,MAAI,EAACD,OAAK,EAACU,UAAU,EAAO/J,UAAU,gBAMhF,UAArB4H,EAAMid,aACLjd,aAAK,EAALA,EAAO7H,QACP,MACE,MAAMmH,EAAwCU,EAAM7H,OAA9Ce,MAAEA,EAAKxM,OAAEA,KAAWmgB,EAAexqB,EAAAid,EAAnC,CAAA,QAAA,WACN,OACE/b,EAAAA,IAAA,MAAA,CAAKoc,UAAU,oCACbpc,EAAAA,IAACsmB,EAAUnnB,OAAA+d,OAAA,CAAA,EAAKoM,GAAiB5C,SAAS,MAG/C,EAPD,yBYpK4C3K,QAAA4G,QAClDA,EAAU,QAAOsG,UACjBA,EAAY,OAAM7b,QAClBA,EAAOosB,aACPA,EAAe,KAAI5vB,OACnBA,EAAM2Q,SACNA,EAAQ+H,MACRA,GAAQ,EAAKlG,UACbA,EAASe,gBACTA,EAAkB,2BAA0B4E,kBAC5CA,EAAoB,SAAQC,aAC5BA,EAAe,MAAK1F,SACpBA,GAAW,GAAIP,EACZye,EAAY17B,EAAAid,EAbmC,0JAelD,MAAM0e,EAAW,CAAC,aAAc,eAAe9X,IAAW,eAAesG,IAAa7M,GACnF/F,OAAOiB,SACPC,KAAK,KAER,OACEvX,EAAAA,IAAC8hB,EAAO3iB,OAAA+d,OAAA,CACNd,UAAWqe,EACXtd,gBAAiBA,EACjB4E,kBAAmBA,EACnBC,aAAcA,EACd1F,SAAUA,GACNke,EAAY,CAAAjgB,SAEhB8C,EAAAA,KAACgF,GAAUC,MAAOA,EAAOlG,UAAU,8BAA6B7B,SAAA,CAC9Dva,EAAAA,IAACyiB,EAAO,CAACC,MAAO8W,EAAc7W,QAAQ,QAAQrG,SAAUA,EAAUF,UAAU,sBAAqB7B,SAC9FnN,IAGU,UAAZuV,GAAuB/Y,GACtB5J,MAAC8b,EAAM3c,OAAA+d,OAAA,CACLlB,WAAYpS,EAAOoS,YAAc,UACjChQ,KAAMpC,EAAOoC,MAAQ,KACrBsQ,SAAUA,GACN1S,EAAM,CAAA2Q,SAET3Q,EAAO2Q,UAAY3Q,EAAOsS,SAIlB,UAAZyG,GAAuBpI,GAAYva,EAAAA,IAAA,MAAA,CAAKoc,UAAU,mBAAkB7B,SAAEA,uGClCxC,EACrCqD,WACAC,WACAC,WACAC,UACA3V,QACAoxB,eAAe,KACfkB,cACAC,aACAlH,OACAmH,eACAnd,SAAS,QACTrB,YACAxB,YAEA,MAAMigB,EAAa,CAAC,MAAOze,GAAW/F,OAAOiB,SAASC,KAAK,KAE3D,OACE8F,EAAAA,KAAA,MAAA,CAAKjB,UAAWye,EAAYjgB,MAAOA,EAAKL,SAAA,CACtCva,EAAAA,IAAC2d,GAAgBC,SAAUA,EAAUC,SAAUA,EAAUC,SAAUA,EAAUC,QAASA,IACtFV,EAAAA,YAAKjB,UAAU,eAAc7B,SAAA,CAC3Bva,EAAAA,IAACyiB,EAAO,CAACC,MAAO8W,EAAcpd,UAAU,aAAY7B,SACjDnS,IAEFsyB,GAAe16B,EAAAA,IAAA,IAAA,CAAGoc,UAAU,mBAAkB7B,SAAEmgB,IAChDjH,EACCzzB,EAAAA,IAACud,GACCvB,WAAW,MACXE,MAAOye,EACPnd,KAAMiW,EACNhW,OAAQmd,EAAend,EAAS,QAChCvd,KAAMF,EAAAA,IAACC,EAAAA,gBAAe,CAACC,KAAMQ,oBAG/BV,EAAAA,IAAC8b,EAAM,CACLE,WAAW,MACXE,MAAOye,EACPne,QAAS,OACTtc,KAAMF,MAACC,EAAAA,iBAAgBC,KAAMQ,EAAAA,sCCtDA,EACvC6Z,WACA/P,WAAW,GACXxB,UAAU,OACVwT,UACAgB,OACAC,SAAS,QACTI,WACAid,WAAW,GACX1e,YAAY,GACZxB,QACA7F,cAAc,MACdzP,eAAe,GACfy1B,eAAc,EACd,aAAcC,EACd,cAAeC,MAEf,MAAMjP,EAAiBkP,IACF,UAAdA,EAAMzkB,KAAiC,MAAdykB,EAAMzkB,MAAgB+F,IAClD0e,EAAMC,iBACN3e,EAAQ0e,KAINE,EAAmBF,IACnB1e,GACFA,EAAQ0e,IAING,EAAYl8B,OAAA+d,OAAA,CAChB1S,YACGoQ,GAGC0gB,EAAiC,CACrCh2B,gBAGIi2B,EAAyC,CAC7CxmB,cACAzP,aAAc,GAAGA,KAAgBA,SAG7Bk2B,EAAiC,CACrCxyB,WAGIyyB,EAAc,CAAC,OAAQV,GAAe,qBAAsB3e,GAAW/F,OAAOiB,SAASC,KAAK,KAE5FmkB,EACJre,EAAAA,KAAA,MAAA,CAAKjB,UAAWqf,EAAa7gB,MAAO0gB,EAAS,cAAeL,EAAM1gB,SAAA,CAC/DsD,GACC7d,EAAAA,IAAA,MAAA,CAAKoc,UAAU,sBAAsBxB,MAAO2gB,EAAiBhhB,SAC3Dva,MAAA,MAAA,CAAKoc,UAAU,wBAAuB7B,SACpCva,EAAAA,IAAA,MAAA,CAAKqe,IAAKR,EAAUa,IAAKoc,EAAU1e,UAAU,cAAcyC,QAAQ,aAIzE7e,MAAA,MAAA,CAAKoc,UAAU,aAAaxB,MAAO4gB,EAASjhB,SACzCA,OAKP,OAAIiD,EAEAxd,EAAAA,IAAA,MAAA,CAAKoc,UAAU,eAAexB,MAAOygB,EAAY9gB,SAC/Cva,EAAAA,IAAA,IAAA,CACEwd,KAAMA,EACNC,OAAQA,EACRC,IAAgB,WAAXD,EAAsB,2BAAwBlH,EACnDiG,QAAS4e,EACThf,UAAU,aACVxB,MAAO,CAAEtV,gBAAc,aACX01B,EAASzgB,SAEpBmhB,MAMLlf,EAEAxc,EAAAA,IAAA,MAAA,CAAKoc,UAAU,eAAexB,MAAOygB,WACnChe,EAAAA,KAAA,MAAA,CACEjB,UAAWqf,EACX7gB,MAAO0gB,EACP9e,QAASA,EACTyP,UAAWD,EACX1G,KAAK,SACLqW,SAAU,EAAC,aACCX,gBACCC,EAAM1gB,SAAA,CAElBsD,GACC7d,EAAAA,WAAKoc,UAAU,sBAAsBxB,MAAO2gB,EAAiBhhB,SAC3Dva,EAAAA,WAAKoc,UAAU,wBAAuB7B,SACpCva,EAAAA,IAAA,MAAA,CAAKqe,IAAKR,EAAUa,IAAKoc,EAAU1e,UAAU,cAAcyC,QAAQ,aAIzE7e,EAAAA,IAAA,MAAA,CAAKoc,UAAU,aAAaxB,MAAO4gB,EAASjhB,SACzCA,SAQTva,EAAAA,IAAA,MAAA,CAAKoc,UAAU,eAAexB,MAAOygB,EAAY9gB,SAC9CmhB,+JCrE+C3f,IAAA,IAAA4G,QACpDA,EAAU,QAAO4D,UACjBA,EAAS7H,IACTA,EAAM,GAAEoB,SACRA,EAAQ0G,SACRA,EAAQE,QACRA,GAAU,EAAID,aACdA,GAAe,EAAIE,QACnBA,GAAU,EAAII,OACdA,EAAM6U,cACNA,EAAgB,QAAOC,QACvBA,EAAOlS,KACPA,EAAI1G,IACJA,EAAG7G,UACHA,EAASe,gBAETA,EAAeoB,gBACfA,EAAewD,kBACfA,EAAiBC,aACjBA,EAAYC,WACZA,EAAUjZ,QACVA,EAAOG,OACPA,EAAMgZ,SACNA,EAAQ7F,SACRA,GAAW,KACRwN,EAAIhrB,EAAAid,EAzB6C,CAAA,UAAA,YAAA,MAAA,WAAA,WAAA,UAAA,eAAA,UAAA,SAAA,gBAAA,UAAA,OAAA,MAAA,YAAA,kBAAA,kBAAA,oBAAA,eAAA,aAAA,UAAA,SAAA,WAAA,aA2BpD,MAAM+f,EAAa,CAACC,EAAmCC,KACrD,MACMC,EAAelV,QAAAA,EAAuB,UAAbgV,EAE/B,OAHUC,QAAAA,EAAcrZ,GAItB,IAAK,UACH,OAAO3iB,EAAAA,IAACsmB,EAAU,CAAC3D,QAAQ,eAAe4D,UAAWA,EAAW7H,IAAKA,IACvE,IAAK,QACH,OACE1e,EAAAA,IAACsmB,EAAU,CACTxG,SAAUA,EACV0G,SAAUA,EACVD,UAAWA,EACX7H,IAAKA,EACL+H,aAAcA,EACdC,QAASA,EACTC,QAASA,EACTI,OAAQkV,IAId,QACE,OACEj8B,EAAAA,IAACsmB,EAAU,CACTC,UAAWA,EACX7H,IAAKA,EACL+H,aAAcA,EACdE,QAASA,EACTI,OAAQkV,MAOZC,EAAaC,GAA+Bn8B,MAAA,MAAA,CAAKoc,UAAU,4BAA2B7B,SAAE4hB,IAGxFpS,EAA+BJ,EACjCA,EAAKnT,IAAKwT,UACR,MAAMoS,EAAuB,QAAjBrgB,EAAAiO,EAAI4R,yBAAa7f,EAAAA,EAAI6f,EAC3BhnB,EAAQsnB,EAAUJ,EAAWM,EAAKpS,EAAIrH,UAC5C,MAAO,CACL8G,KAAc,SAAR2S,EAAiBxnB,EAAQoV,EAAI6R,QACnCnS,MAAe,UAAR0S,EAAkBxnB,EAAQoV,EAAI6R,QACrC3Z,cAAe8H,EAAI9H,iBAGvB,MACE,MAAMtN,EAAQsnB,EAAUJ,EAAWF,IACnC,MAAO,CACL,CACEnS,KAAwB,SAAlBmS,EAA2BhnB,EAAQinB,EACzCnS,MAAyB,UAAlBkS,EAA4BhnB,EAAQinB,EAC3C3Z,cAAe,UAGpB,EATD,GAYEzB,EAAU,CADE,qBACUrE,GAAW/F,OAAOiB,SAASC,KAAK,KAE5D,OACEvX,EAAAA,IAACwpB,EAASrqB,OAAA+d,OAAA,CACRyM,KAAMI,EACN9G,IAAKA,EACL9F,gBAAiBA,EACjBoB,gBAAiBA,EACjBwD,kBAAmBA,EACnBC,aAAcA,EACdC,WAAYA,EACZjZ,QAASA,EACTG,OAAQA,EACRgZ,SAAUA,EACV7F,SAAUA,EACVF,UAAWqE,GACPqJ,qDChIgC/N,IAAA,IAAAsgB,IACxCA,EAAGrwB,KACHA,EAAO,KAAIsB,MACXA,EAAQ,UAAS0X,KACjBA,EAAO,GAAEsX,OACTA,EAAS,GAAEC,YACXA,EAAc,IAAGngB,UACjBA,EAAY,GAAE4e,UACdA,EAASwB,WACTA,GAAa,GAAKzgB,EACfU,EAAK3d,EAAAid,EAVgC,2FAYxC,MAAM0E,EAAU,CACd,iBACA,mBAAmBzU,IACT,YAAVsB,EAAsB,mBAAmBA,IAAU,GACnD8O,GAEC/F,OAAOiB,SACPC,KAAK,KAGFklB,EAAgD,CAAA,EAKtD,OAJIzX,IAAMyX,EAAa,eAAiBzX,GACpCsX,IAAQG,EAAa,iBAAmBH,QACxB/lB,IAAhBgmB,IAA2BE,EAAa,uBAAyBF,GAGnEv8B,EAAAA,IAAA,OAAAb,OAAA+d,OAAA,CACEd,UAAWqE,EAAO,YACPzU,EACX4O,MAAOzb,OAAO0a,KAAK4iB,GAAc/8B,OAAS,EAAI+8B,OAAelmB,EAC7D+O,KAAMkX,EAAa,eAAiB,MAAK,aAC7BA,OAAajmB,EAAYykB,EAAS,cACjCwB,EAAa,YAASjmB,GAC/BkG,EAAK,CAAAlC,SAER8hB,yDChDoC,EACzClR,SACAuR,UACAniB,WACA6B,YAAY,GACZE,YAAW,EACXtQ,OAAO,KACPgvB,YACA2B,uBAAsB,EACtBC,iBAAgB,EAChBC,oBAAmB,MAEnB,MAAMC,EAAY1d,EAAAA,OAA0B,MACtC2d,EAAa3d,EAAAA,OAAuB,MACpC4d,EAAmB5d,EAAAA,OAA2B,OAG7C6d,EAAOC,GAAY1d,EAAAA,SAAS,IAC5B2d,EAAYC,GAAiB5d,EAAAA,UAAS,IACtC6d,EAAWC,GAAgB9d,EAAAA,UAAS,GACrC+d,EAAgBne,EAAAA,OAA2C,MAE3Doe,EAAcxV,EAAAA,YAAY,KAC9B0U,KACC,CAACA,IAGEe,EAAezV,EAAAA,YAAY,KAC/BsV,GAAa,GAEb,MAAMI,EAAQC,WAAW,KACvBL,GAAa,GACbJ,EAAS,GACTM,KACC,KACH,MAAO,IAAMI,aAAaF,IACzB,CAACF,IAGJ9iB,EAAAA,UAAU,WACR,MAAMmjB,EAASf,EAAUzc,QACpBwd,IAED1S,IAAW0S,EAAOC,MACpBd,EAAiB3c,QAAUxF,SAASkjB,cACpCF,EAAOG,YACPV,GAAa,GACbJ,EAAS,KACC/R,GAAU0S,EAAOC,OAC3BD,EAAOI,QACiB,QAAxBliB,EAAAihB,EAAiB3c,mBAAOtE,GAAAA,EAAEmiB,WAE3B,CAAC/S,IAGJzQ,EAAAA,UAAU,KACR,MAAMmjB,EAASf,EAAUzc,QACzB,IAAKwd,EAAQ,OAEb,MAAMM,EAAgBn/B,IACf49B,EAILY,IAHEx+B,EAAEm8B,kBAON,OADA0C,EAAO/R,iBAAiB,SAAUqS,GAC3B,IAAMN,EAAO9R,oBAAoB,SAAUoS,IACjD,CAACvB,EAAeY,IAGnB,MAAMY,EAAmBpW,cAAahpB,IACpC,MAAMq/B,EAAQr/B,EAAEs/B,QAAQ,GACxBf,EAAcld,QAAU,CAAEkI,EAAG8V,EAAME,QAASC,KAAMC,KAAKC,OACvDtB,GAAc,IACb,IAEGuB,EAAkB3W,cAAahpB,IACnC,IAAKu+B,EAAcld,QAAS,OAC5B,MACMue,EADQ5/B,EAAEs/B,QAAQ,GACHC,QAAUhB,EAAcld,QAAQkI,EAEjDqW,EAAS,GACX1B,EAAS0B,IAEV,IAEGC,EAAiB7W,EAAAA,YAAY,KACjC,IAAKuV,EAAcld,QAAS,OAE5B,MAAMye,GAAWL,KAAKC,MAAQnB,EAAcld,QAAQme,MAAQ,IAIxDvB,EAnGkB,KAgGLA,EAAQ6B,EAGmBC,IAC1CtB,IAGAP,EAAS,GAGXE,GAAc,GACdG,EAAcld,QAAU,MACvB,CAAC4c,EAAOQ,IAQX,IAAKtS,EAAQ,OAAO,KAEpB,MAAM2O,EACJmD,EAAQ,EACJ,CACE+B,UAAW,cAAc/B,OACzBgC,WAAY9B,EAAa,YAAS5mB,GAEpC,CAAA,EAEN,OACEvW,EAAAA,IAAA,SAAA,CACE4gB,IAAKkc,EACL1gB,UAAW,SAASihB,EAAY,iBAAmB,MAAMjhB,IAAW,iBACpDE,QAAY/F,cACjBvK,EAAI,oBACI6wB,QAAoBtmB,eAC3BykB,EACZxe,QAxBwBxd,IACtB29B,GAAuB39B,EAAEye,SAAWqf,EAAUzc,SAChDmd,cAwBAngB,EAAAA,KAAA,MAAA,CAAKuD,IAAKmc,EAAY3gB,UAAU,iBAAiBxB,MAAOkf,EAAYvf,SAAA,CAElEva,EAAAA,WACEoc,UAAU,qBACV8iB,aAAcd,EACde,YAAaR,EACbS,WAAYP,EAAc,cACd,OAAMtkB,SAElBva,EAAAA,IAAA,MAAA,CAAKoc,UAAU,4BAEjBpc,aAAKoc,UAAU,cAAa7B,SAAEA,uBCtKR,KAC5B,MAAOmL,EAAM2Z,GAAW5W,EAAMjJ,WAE9B,OACEnC,EAAAA,KAAA,UAAA,CAAA9C,SAAA,CACEva,EAAAA,IAACylB,EAAM,CACLC,KAAMA,EACNC,QAAS,IAAM0Z,EAAQ,CAAE56B,KAAM,aAC/BmhB,SAAU,IAAMyZ,OAAQ9oB,GACxBsP,gBAAiB,IAAMwZ,EAAQ,CAAE56B,KAAM,eAGzC4Y,EAAAA,KAAA,UAAA,CAASjB,UAAU,iBAAgB7B,SAAA,CACjCva,EAAAA,IAAA,KAAA,CAAAua,SAAA,uBACA8C,EAAAA,KAAA,IAAA,CAAA9C,SAAA,CAAA,mCACmC,IACjCva,EAAAA,IAAA,IAAA,CAAGwd,KAAK,8BAA8BC,OAAO,SAASC,IAAI,sBAAqBnD,SAC7Eva,EAAAA,IAAA,SAAA,CAAAua,SAAA,uBACG,sHCAsC,EAAGra,OAAMoc,YAAW,EAAOtQ,OAAMoQ,YAAWxB,YAC/F,MAAM6F,EAAU,CAAC,cAAerE,GAAW/F,OAAOiB,SAASC,KAAK,KAEhE,OACEvX,EAAAA,YACEoc,UAAWqE,EACX7F,MAAOA,EAAK,iBACI0B,QAAY/F,EAAS,YAC1BvK,QAAQuK,EAAS,cAChB,OAAMgE,SAEjBra,sBC3B2Duc,GAChEY,EAAAA,0BAAK4H,MAAM,6BAA6BF,QAAQ,cAAa,cAAa,QAAWtI,EAAK,CAAAlC,SAAA,CAExFva,EAAAA,SAAGoc,UAAU,sBAAqB7B,SAChCva,EAAAA,IAAA,OAAA,CAAM+lB,EAAE,oCAGV/lB,EAAAA,YACEoc,UAAU,qBACV2J,EAAE,wIC8BuC,EAC7CpD,UAAU,OACVziB,OACA2d,WACAid,WAAW,GACX1yB,QACAk3B,UACA5E,cACA6E,WACAxF,YACAnwB,SACA41B,gBAAgB,UAChBhiB,OACAC,SAAS,QACTnB,YAAW,EACXC,WACAH,YACA7B,WACA,aAAcygB,MAEd,MAIMyE,EAAkBH,QAAAA,EAAwB,UAAZ3c,EAAsB,IAAM,KAE1D8Y,EAAc,CAAC,cAAe,gBAAgB9Y,IAAW,sBANjDoX,QAAAA,EAA0B,UAAZpX,EAAsB,OAAS,WAMmCvG,GAC3F/F,OAAOiB,SACPC,KAAK,KAER,OACE8F,EAAAA,KAAA,IAAA,CACEG,KAAMA,EACNC,OAAQA,EACRC,IAAgB,WAAXD,EAAsB,2BAAwBlH,EACnD6F,UAAWqf,EAAW,iBACNnf,QAAY/F,EAAS,qBACTA,IAAbgG,EAA0BA,EAAW,OAAS,aAAWhG,EAAS,aACrEykB,GAAa5yB,EAAKmS,SAAA,EAEhB,UAAZoI,GAAmC,YAAZA,IAA0B9E,GACjD7d,MAAA,MAAA,CAAKoc,UAAU,6BAA4B7B,SACzCva,EAAAA,IAAA,MAAA,CAAKqe,IAAKR,EAAUa,IAAKoc,EAAU1e,UAAU,qBAAqByC,QAAQ,WAI9ExB,EAAAA,KAAA,MAAA,CAAKjB,UAAU,iCACA,SAAZuG,GAAsBziB,GACrBF,MAAA,MAAA,CAAKoc,UAAU,oBAAmB,cAAa,OAAM7B,SAClDra,IAIJq/B,GAAYv/B,EAAAA,IAAA,MAAA,CAAKoc,UAAU,wBAAuB7B,SAAEglB,IAErDliB,OAAA,MAAA,CAAKjB,UAAU,oBAAmB7B,SAAA,CACX,MAApBklB,GAA+C,SAApBA,EAC1Bz/B,EAAAA,IAAC2kB,EAAS,CAACpC,GAAIkd,EAAiB7c,OAAO,OAAOxG,UAAU,qBAAqBE,SAAUA,EAAQ/B,SAC5FnS,IAGHpI,EAAAA,IAACyiB,EAAO,CACNC,MAAO+c,EACP9c,QAAQ,iBACRvG,UAAU,qBACVE,SAAUA,EAAQ/B,SAEjBnS,IAIJsyB,GACC16B,MAAC2kB,EAAS,CAACvI,UAAU,2BAA2BE,SAAUA,EAAQ/B,SAC/DmgB,OAKN9wB,GAA4B,SAAlB41B,GACTx/B,MAAA,MAAA,CAAKoc,UAAU,gDAA+C,cAAa,OAAM7B,SAC/Eva,EAAAA,IAAC8b,EAAM3c,OAAA+d,OAAA,GAAKtT,GAAQoS,WAAW,OAAOM,SAAUA,OAInD/B,KAGF3Q,GAA4B,SAAlB41B,GACTx/B,EAAAA,IAAA,MAAA,CAAKoc,UAAU,kDAAiD,cAAa,OAAM7B,SACjFva,EAAAA,IAAC8b,EAAM3c,OAAA+d,OAAA,CAAA,EAAKtT,EAAM,CAAEoS,WAAW,UAAUM,SAAUA,4BCrHZ,EAAGuf,UAASvf,YAAW,EAAOF,YAAWxB,QAAOpQ,eAC/F,MAAMk1B,EAAkB,CAAC,YAAatjB,GAAW/F,OAAOiB,SAASC,KAAK,KAEhEsL,EAAarY,EAAUrL,OAAA+d,OAAA/d,OAAA+d,OAAA,CAAA,EAAMtC,GAAK,CAAEpQ,aAAaoQ,EAEvD,OACE5a,EAAAA,IAAA,MAAA,CACEoc,UAAWsjB,EACX9kB,MAAOiI,EAAU,iBACDvG,EAAW,YAAS/F,EACpCqO,wBAAyB,CAAE+a,OAAQ9D,wBhBgFU,EACjDzuB,UACAosB,eAAe,KACfoG,SACA5c,UAAU,CAAE/d,GAAI,EAAGC,GAAI,EAAGC,GAAI,GAC9B8d,MACAC,SACAC,YACA0c,cAAc,SACdhhB,WAAU,EACVihB,aACAC,WACAC,aACA/gB,UACA3C,YAAW,EACXF,gBAEA,MAAM6jB,EAAU7gB,EAAAA,OAAwB,OAEjC3F,EAAQymB,GAAa1gB,EAAAA,SAAiC,IAC3DrgB,OAAOghC,YAAYP,EAAOppB,IAAK4pB,GAAM,CAACA,EAAE37B,KAAM,QAEzC47B,EAAgBC,GAAqB9gB,EAAAA,SAAmC,IAC7ErgB,OAAOghC,YAAYP,EAAOvpB,OAAQ+pB,GAAiB,oBAAXA,EAAE9iB,MAA4B9G,IAAK4pB,GAAM,CAACA,EAAE37B,KAAM,QAErF87B,EAAQC,GAAahhB,EAAAA,SAAiC,CAAA,IACtDihB,EAASC,GAAclhB,EAAAA,SAAkC,CAAA,GAE1DmhB,EAAe3Y,EAAAA,YAAY,CAACvjB,EAAc6R,KAC9C4pB,EAAWU,GAASzhC,OAAA+d,OAAA/d,OAAA+d,OAAA,GAAM0jB,GAAI,CAAEn8B,CAACA,GAAO6R,KAExCkqB,EAAWI,IACT,IAAKA,EAAKn8B,GAAO,OAAOm8B,EACxB,MAAMhV,EAAIzsB,OAAA+d,OAAA,CAAA,EAAQ0jB,GAElB,cADOhV,EAAKnnB,GACLmnB,KAER,IAEGiV,EAAuB7Y,EAAAA,YAAY,CAACvjB,EAAcq8B,KACtDR,EAAmBM,GAASzhC,OAAA+d,OAAA/d,OAAA+d,OAAA,GAAM0jB,GAAI,CAAEn8B,CAACA,GAAOq8B,KAEhDZ,EAAWU,GAASzhC,OAAA+d,OAAA/d,OAAA+d,OAAA,CAAA,EAAM0jB,GAAI,CAAEn8B,CAACA,GAAOq8B,EAASvpB,KAAK,QAEtDipB,EAAWI,IACT,IAAKA,EAAKn8B,GAAO,OAAOm8B,EACxB,MAAMhV,EAAIzsB,OAAA+d,OAAA,CAAA,EAAQ0jB,GAElB,cADOhV,EAAKnnB,GACLmnB,KAER,IAEGmV,EAAa/Y,cAChBoF,UACCsT,EAAYE,kCAAeA,GAAI,CAAE,CAACxT,EAAM3oB,OAAO,KAC/C,MAAMu8B,EAAM7T,EAAgC,QAAlBpR,EAAAtC,EAAO2T,EAAM3oB,aAAK,IAAAsX,EAAAA,EAAI,GAAIqR,GAChD4T,GACFR,EAAWI,kCAAeA,GAAI,CAAE,CAACxT,EAAM3oB,MAAOu8B,MAGlD,CAACvnB,IAGGwnB,EAAejZ,cACnB9H,MAAOlhB,IACLA,EAAEm8B,iBAGF,MAAM+F,EAAsC,CAAA,EAO5C,GANAtB,EAAOjoB,QAASyV,UACd,MAAM4T,EAAM7T,EAAgC,QAAlBpR,EAAAtC,EAAO2T,EAAM3oB,aAAK,IAAAsX,EAAAA,EAAI,GAAIqR,GAChD4T,IAAKE,EAAY9T,EAAM3oB,MAAQu8B,KAIjChB,EAAY,CACd,MAAM1S,QAAe0S,EAAWvmB,GAC5B6T,GAAQnuB,OAAO+d,OAAOgkB,EAAa5T,EACzC,CAEA,GAAInuB,OAAO0a,KAAKqnB,GAAaxhC,OAAS,EAIpC,OAHA8gC,EAAUU,GACVR,EAAWvhC,OAAOghC,YAAYP,EAAOppB,IAAK4pB,GAAM,CAACA,EAAE37B,MAAM,WACzDwa,SAAAA,EAAUiiB,IAIZnB,SAAAA,EAAWtmB,IAEb,CAACmmB,EAAQnmB,EAAQsmB,EAAUC,EAAY/gB,IAGnCkiB,EAAYhiC,OAAO0a,KAAK0mB,GAAQ7gC,OAAS,EAEzC+gB,EAAU,CAAC,YAAarE,GAAW/F,OAAOiB,SAASC,KAAK,KAE9D,OACE8F,OAAA,UAAA,CAASjB,UAAWqE,mBAAyBnE,QAAY/F,EAAS,aAAcnJ,EAAOmN,SAAA,CACrFva,EAAAA,IAACyiB,EAAO,CAACC,MAAO8W,EAAc7W,QAAQ,iBAAiBrG,SAAUA,EAAUF,UAAU,8BAClFhP,IAGHiQ,EAAAA,KAAA,OAAA,CAAMuD,IAAKqf,EAAS7jB,UAAU,kBAAkB2jB,SAAUkB,EAAcG,YAAU,EAAA7mB,SAAA,CAChFva,MAAC+iB,GAAKC,QAASA,EAASC,IAAKA,EAAK7G,UAAU,oBAAoB8G,OAAQA,EAAQC,UAAWA,EAAS5I,SACjGqlB,EAAOppB,IAAK4W,gBAAU,OACrBptB,EAAAA,IAACikB,EAAQ,CAAkBC,QAASkJ,EAAMlJ,QAAO3J,SAC/B,oBAAf6S,EAAM9P,KACLtd,EAAAA,IAACwsB,EAAc,CACb/nB,KAAM2oB,EAAM3oB,KACZyX,MAAOkR,EAAMlR,MACboO,YAAa8C,EAAM9C,YACnBvJ,QAAsB,QAAbhF,EAAAqR,EAAMrM,eAAO,IAAAhF,EAAAA,EAAI,GAC1BzF,MAAiC,QAA1BkP,EAAA6a,EAAejT,EAAM3oB,aAAK,IAAA+gB,EAAAA,EAAI,GACrC+E,SAAWuW,GAAaD,EAAqBzT,EAAM3oB,KAAMq8B,GACzDtW,OAAQ,IAAMuW,EAAW3T,GACzB3C,WAAY2C,EAAMC,mBAClB3C,MAAO+V,EAAQrT,EAAM3oB,MAAQ87B,EAAOnT,EAAM3oB,WAAQ8R,EAClD+F,SAAUA,IAGZtc,EAAAA,IAACqqB,EAAS,CACR5lB,KAAM2oB,EAAM3oB,KACZyX,MAAOkR,EAAMlR,MACboB,KAAgB,QAAV+jB,EAAAjU,EAAM9P,YAAI,IAAA+jB,EAAAA,EAAI,OACpB/W,YAAa8C,EAAM9C,YACnBhU,MAAyB,QAAlBgrB,EAAA7nB,EAAO2T,EAAM3oB,aAAK,IAAA68B,EAAAA,EAAI,GAC7B/W,SAAWwC,GAAM4T,EAAavT,EAAM3oB,KAAMsoB,GAC1CvC,OAAQ,IAAMuW,EAAW3T,GACzB3C,WAAY2C,EAAM3C,WAClBC,MAAO+V,EAAQrT,EAAM3oB,MAAQ87B,EAAOnT,EAAM3oB,WAAQ8R,EAClD+F,SAAUA,KAzBD8Q,EAAM3oB,UAgCzBzE,EAAAA,IAAC8b,EAAM,CACLE,WAAW,UACXhQ,KAAK,KACLsQ,SAAUA,EACVD,SAAUwC,GAAWsiB,EACrB/kB,UAAU,oBACVI,QAAS,WAAM,eAAAT,EAAAkkB,EAAQ5f,8BAASkhB,0BAE/B1iB,EAAU,aAAeghB,IAG3BC,GACC9/B,EAAAA,IAAC2kB,EAAS,CACRvI,UAAU,wBACVE,SAAUA,EACVsI,wBAAyB,CAAE+a,OAAQG,iDiBpPE,EAC/C5jB,QACAsB,OACAod,eACAnd,SAAS,QACTjB,UACAJ,YAAY,GACZlc,OACA0a,QACAyB,YAAW,EACXC,YAAW,EACX,aAAc0e,EACd,mBAAoBwG,EACpB,cAAevG,MAEf,MAAMwG,EAAU7G,GAAgBpd,EAC1BkkB,IAAe9G,GAA2B,WAAXnd,EAkBrC,OAAKgkB,GAAWplB,EAEZgB,OAAA,OAAA,CACEjB,UAAW,iCAAiCA,IAAW,iBACvCE,QAAY/F,EAC5BqE,MAAOA,EAAK,cACCqgB,EAAM,aACPD,GAAa9e,EAAK,mBACZslB,EAAejnB,SAAA,CAEhC2B,EAAK,IAAGhc,KAMbmd,EAAAA,KAAA,IAAA,CACEG,KAAMikB,EACNhkB,OAAQA,EACRC,IAAKgkB,EAAa,2BAAwBnrB,EAC1CiG,QApCiB0e,IACf7e,EACF6e,EAAMC,iBAGJ3e,GACFA,EAAQ0e,IA+BRjP,UA3BmBiP,KACjB7e,GAA2B,UAAd6e,EAAMzkB,KAAiC,MAAdykB,EAAMzkB,KAC9CykB,EAAMC,kBA0BN/e,UAAW,aAAaA,IAAW,iBACnBE,QAAY/F,EAC5BqE,MAAOA,EAAK,aACAogB,EAAS,mBACHwG,EAAe,cACpBvG,EAAM1gB,SAAA,CAElB2B,EAAK,IAAGhc,sE7BHwC,EACrDme,MACAkI,YACA7H,MAAM,GACN8H,WACAmb,eAAe,SACf5sB,cAAc,OACd6sB,aACAtlB,YAAW,EACXF,YACAxB,YAEA,MAAOsM,EAAWC,GAAgB3H,EAAAA,UAAS,GACrCM,EA1CC,qBAAqBhK,KADTsF,EA2CUiD,IA1CY,UAAUvI,KAAKsF,GAT1D,SAAyBA,SACvB,MAAMhC,EACJgC,EAAIhC,MAAM,4CACVgC,EAAIhC,MAAM,mCACVgC,EAAIhC,MAAM,uCACZ,OAAiB,QAAV2C,EAAA3C,aAAK,EAALA,EAAQ,UAAE,IAAA2C,EAAAA,EAAI,IACvB,CA6CsCgE,CAAgB1B,GAAO,KA3C7D,IAAqBjD,EA6CnB,MAAMoF,EAAY,eACZC,EAAU,CAACD,EAAW0G,GAAa,GAAG1G,aAAsBpE,GAAW/F,OAAOiB,SAASC,KAAK,KAElGmD,EAAAA,UAAU,KACa,YAAjBinB,GAA+B7hB,IAvFjCoG,EAA2B2b,QAAQC,UAEhC,IAAID,QAASC,IAGlB,GAFA1b,EAAoBlP,KAAK4qB,GAErB3b,EAAqB,OAKzB,GAJAA,GAAsB,EAGLtL,SAASuN,cAAc,eAAenC,OAKrD,OAHAC,GAAqB,EACrBE,EAAoBzO,QAASoqB,GAAOA,UACpC3b,EAAoB1mB,OAAS,GAI/B,MAAMugB,EAASpF,SAASE,cAAc,UACtCkF,EAAO5B,IAAM4H,EACbhG,EAAOC,OAAQ,EACfD,EAAO+hB,OAAS,KACd9b,GAAqB,EACrBE,EAAoBzO,QAASoqB,GAAOA,KACpC3b,EAAoB1mB,OAAS,GAE/Bmb,SAASS,KAAKE,YAAYyE,MAgELgiB,KAAK,KACxB,MAAMC,EAAiB,iCAAiCpiB,OACxD,IAAKjF,SAASuN,cAAc,eAAe8Z,OAAqB,CAC9D,MAAMC,EAActnB,SAASE,cAAc,UAC3ConB,EAAY9jB,IAAM6jB,EAClBC,EAAYjiB,OAAQ,EACpBiiB,EAAY7kB,KAAO,SACnBzC,SAASS,KAAKE,YAAY2mB,EAC5B,KAED,CAACR,EAAc7hB,IAElB,MAAMoI,EAAaF,EAAAA,YAAY,KACR,WAAjB2Z,GACFxa,GAAa,IAEd,CAACwa,IAEES,EAAiB,IACjB5b,EACKxmB,EAAAA,IAAA,MAAA,CAAKoc,UAAW,GAAGoE,eAAsBjG,SAAGiM,IAInDxmB,EAAAA,IAAA,MAAA,CAAKoc,UAAW,GAAGoE,eAAsBjG,SACvC8C,EAAAA,KAAA,MAAA,CAAK0H,QAAQ,YAAYC,KAAK,OAAOC,MAAM,6BAA4B,cAAa,OAAM1K,SAAA,CACxFva,EAAAA,IAAA,SAAA,CACEklB,GAAG,KACHC,GAAG,KACHC,EAAE,KACFJ,KAAK,uDACLsX,OAAO,iEACPC,YAAY,MAEdv8B,EAAAA,IAAA,UAAA,CAASqiC,OAAO,oBAAoBrd,KAAK,mDAM3CtE,EAAOvhB,OAAA+d,OAAA,CAAA,EACRtC,GAGL,GAAqB,YAAjB+mB,GAA8B7hB,EAAU,CAC1C,MAAMwiB,EACJ,qHAEF,OACEtiC,EAAAA,IAAA,MAAA,CACEoc,UAAWqE,EACX7F,MAAO8F,mBACSpE,QAAY/F,EAC5BqK,IAAM2hB,IACJ,IAAKA,EAAM,OAEX,GADiBA,EAAKna,cAAc,iBACtB,OAEd,MAAMoa,EAAS3nB,SAASE,cAAc,iBACtCynB,EAAO7mB,aAAa,WAAYmE,GAChC0iB,EAAO7mB,aAAa,iBAAkB,IACtC6mB,EAAO7mB,aAAa,kBAAmB,QACvC6mB,EAAO7mB,aAAa,SAAU2mB,GAC9BE,EAAO5nB,MAAMxT,QAAU,QACvBo7B,EAAO5nB,MAAMjF,MAAQ,OACjBZ,IAAaytB,EAAO5nB,MAAM7F,YAAcA,GAE5C,MAAM0tB,EAAcF,EAAKna,cAAc,IAAI5H,wBACvCiiB,GACFD,EAAOhnB,YAAYinB,GAGrBF,EAAKG,aAAaF,EAAQD,EAAKI,aAChCpoB,SAED8C,EAAAA,YAAKjB,UAAW,GAAGoE,uBAAgC5F,MAAO,CAAE7F,yBACzDwR,GAAavmB,EAAAA,IAACye,EAAK,CAACJ,IAAKkI,EAAWjJ,KAAK,QAAQoB,IAAKA,EAAK7J,UAAU,QAAQE,YAAaA,IAC1FqtB,QAIT,CAEA,OAAIlb,EAEAlnB,EAAAA,IAAA,MAAA,CAAKoc,UAAWqE,EAAS7F,MAAO8F,EAAO,iBAAkBpE,QAAY/F,EAASgE,SAC5Eva,EAAAA,IAACye,EAAKtf,OAAA+d,OAAA,CAACmB,IAAKA,EAAKf,KAAK,QAAQoB,IAAKA,EAAKC,UAAQ,EAACC,UAAQ,EAAC7J,YAAaA,GAAiB6sB,MAM5F5hC,EAAAA,IAAA,MAAA,CAAKoc,UAAWqE,EAAS7F,MAAO8F,EAAO,iBAAkBpE,QAAY/F,EAASgE,SAC5E8C,EAAAA,eACEjB,UAAW,GAAGoE,uBACdhE,QAAS0L,EAAU,aACP,eAAexJ,IAC3BpB,KAAK,SACL1C,MAAO,CAAE7F,eAAawF,SAAA,CAErBgM,EACCvmB,MAACye,EAAK,CAACJ,IAAKkI,EAAWjJ,KAAK,QAAQoB,IAAKA,EAAK7J,UAAU,QAAQE,YAAaA,IAE7E/U,EAAAA,IAAA,MAAA,CAAKoc,UAAW,GAAGoE,mBAEpB4hB,+B8B5KgD,EACvDxY,YAAY,cACZxc,UACAosB,eAAe,KACfkB,cACAkI,eACAC,aACAj5B,SACAgL,QACA0H,YAAW,EACXF,gBAEA,MAAMoE,EAAY,uBACZC,EAAU,CAACD,EAAW,GAAGA,MAAcoJ,IAAaxN,GAAW/F,OAAOiB,SAASC,KAAK,KAEpFurB,EACJzlB,OAAA,MAAA,CAAKjB,UAAW,GAAGoE,aAAoBjG,SAAA,CACrC8C,EAAAA,KAAA,MAAA,CAAKjB,UAAW,GAAGoE,kBAAyBjG,SAAA,CAC1Cva,MAACyiB,EAAO,CAACC,MAAO8W,EAAc7W,QAAQ,iBAAiBrG,SAAUA,EAAUF,UAAW,GAAGoE,aAAoBjG,SAC1GnN,IAGFstB,GACC16B,MAAC2kB,EAAS,CAACvI,UAAW,GAAGoE,iBAA0BlE,SAAUA,EAAQ/B,SAClEmgB,IAIJkI,GAAgBA,EAAaljC,OAAS,GACrCM,EAAAA,IAACqlB,EAAU,CAAC5D,MAAOmhB,EAAc1iC,KAAM2iC,EAAYvmB,SAAUA,OAIhE1S,GACC5J,EAAAA,IAAC8b,iBAAOE,WAAYpS,EAAOoS,YAAc,UAAWhQ,KAAMpC,EAAOoC,MAAQ,KAAMsQ,SAAUA,GAAc1S,EAAM,CAAA2Q,SAC1G3Q,EAAO2Q,UAAY3Q,EAAOsS,YAM7BoU,EACJtwB,EAAAA,IAAA,MAAA,CAAKoc,UAAW,GAAGoE,WAAkBjG,SACnCva,EAAAA,IAACsmB,EAAUnnB,OAAA+d,OAAA,CAAA,EAAKtI,MAIpB,OACE5U,EAAAA,IAAA,UAAA,CAASoc,UAAWqE,EAAO,iBAAkBnE,QAAY/F,WACvDvW,EAAAA,IAAA,MAAA,CAAKoc,UAAW,GAAGoE,WAAkBjG,SACpB,gBAAdqP,EACCvM,EAAAA,2BACGiT,EACAwS,KAGHzlB,EAAAA,KAAA2I,EAAAA,SAAA,CAAAzL,SAAA,CACGuoB,EACAxS,2F7CiTP,SAAqBzZ,EAAoB8D,GAC7C,MACM5D,EAAMH,EAAiBC,EADZ8D,EAAY,gBAAgBA,MAAgB,SAIvDooB,EAAgBloB,SAASC,eAAe,SAASjE,EAAMpS,QACzDs+B,GACFA,EAAcC,SAIhB,MAAMpoB,EAAQC,SAASE,cAAc,SACrCH,EAAMI,GAAK,SAASnE,EAAMpS,OAC1BmW,EAAMS,YAActE,EACpB8D,SAASS,KAAKE,YAAYZ,EAC5B,2LAKM,SAA4BD,GAChCE,SAASa,gBAAgBC,aAAa,aAAchB,EACtD,wBgC7WM,SAAwB+H,EAAkCugB,GAE9D,OADehK,KACDvW,GAAOugB,IAAc,EACrC,gDAMM,SAAsBvgB,EAAkCugB,GAC5D,MAAMvsB,EAASusB,EAAUjtB,QAAQ,WAAY,OAAOD,cACpD,MAAc,eAAV2M,EACK,eAAehM,KAGjB,SAASA,IAClB","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.js","sources":["../src/components/atoms/Button/buttonIcons.tsx","../src/themes/presets/color-systems/default-colors.ts","../src/themes/presets/default.ts","../src/themes/utils/helpers.ts","../src/themes/utils/generator.ts","../src/themes/core/context.tsx","../src/themes/core/client-provider.tsx","../src/components/atoms/Button/Button.tsx","../src/components/atoms/ButtonLink/ButtonLink.tsx","../src/components/atoms/BackgroundMedia/BackgroundMedia.tsx","../src/components/atoms/Media/Media.tsx","../src/components/atoms/Breadcrumb/Breadcrumb.tsx","../src/components/atoms/Divider/Divider.tsx","../src/components/atoms/Container/Container.tsx","../src/components/atoms/Heading/Heading.tsx","../src/components/atoms/Grid/Grid.tsx","../src/components/atoms/Paragraph/Paragraph.tsx","../src/components/atoms/BulletList/BulletList.tsx","../src/components/molecules/Header/Header.tsx","../src/components/molecules/VideoPlayer/VideoPlayer.tsx","../src/components/molecules/primax/MediaBlock/MediaBlock.tsx","../src/assets/sparkle-overlay.svg","../src/assets/spark-small-sparks.svg","../src/assets/spark-icon-large.svg","../src/assets/spark-icon-small.svg","../src/components/molecules/primax/Banner/Banner.tsx","../src/components/molecules/primax/TwoColumn/TwoColumn.tsx","../src/components/atoms/TextInput/TextInput.tsx","../src/components/atoms/Dropdown/Dropdown.tsx","../src/components/atoms/Checkbox/Checkbox.tsx","../src/components/molecules/primax/DropdownSelect/DropdownSelect.tsx","../src/components/molecules/primax/Subscribe/Subscribe.tsx","../src/themes/presets/color-systems/advisors-plus-colors.ts","../src/themes/presets/advisors-plus.ts","../src/themes/presets/color-systems/primax-colors.ts","../src/themes/presets/primax.ts","../src/themes/hooks/useColorTokens.ts","../src/components/molecules/primax/CTA/CTA.tsx","../src/components/molecules/CTA/CTA.tsx","../src/components/molecules/Card/Card.tsx","../src/components/molecules/primax/HalfColumn/HalfColumn.tsx","../src/components/atoms/Icon/Icon.tsx","../src/components/molecules/Modal/Modal.tsx","../src/components/pages/Page.tsx","../src/components/atoms/PlayButton/PlayButton.tsx","../src/components/molecules/primax/PlayIcon/PlayIcon.tsx","../src/components/molecules/primax/Card/Card.tsx","../src/components/atoms/RichText/RichText.tsx","../src/components/atoms/TextLink/TextLink.tsx","../src/components/molecules/primax/VideoSection/VideoSection.tsx"],"sourcesContent":["/**\n * Button icon configuration\n * Maps button types to their default icons with hover states\n */\n\nimport React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faAnglesRight,\n faCirclePlay as faCirclePlaySolid,\n faEnvelope as faEnvelopeSolid,\n} from '@fortawesome/free-solid-svg-icons';\n\nimport { faSparkle, faSparkles } from '@fortawesome/pro-solid-svg-icons';\nimport {\n faCirclePlay as faCirclePlayRegular,\n faEnvelope as faEnvelopeRegular,\n} from '@fortawesome/free-regular-svg-icons';\nimport { faXTwitter, faLinkedin, faSquareFacebook } from '@fortawesome/free-brands-svg-icons';\nimport { ButtonType } from './Button';\n\ninterface ButtonIconConfig {\n regular: React.ReactNode;\n hover?: React.ReactNode;\n}\n\n/**\n * Default icon configuration for each button type\n */\nexport const defaultButtonIcons: Partial<Record<ButtonType, ButtonIconConfig>> = {\n video: {\n regular: <FontAwesomeIcon icon={faCirclePlayRegular} />,\n hover: <FontAwesomeIcon icon={faCirclePlaySolid} />,\n },\n subscribe: {\n regular: <FontAwesomeIcon icon={faEnvelopeRegular} />,\n hover: <FontAwesomeIcon icon={faEnvelopeSolid} />,\n },\n cta: {\n regular: <FontAwesomeIcon icon={faAnglesRight} />,\n },\n twitter: {\n regular: <FontAwesomeIcon icon={faXTwitter} />,\n },\n linkedin: {\n regular: <FontAwesomeIcon icon={faLinkedin} />,\n },\n facebook: {\n regular: <FontAwesomeIcon icon={faSquareFacebook} />,\n },\n};\n\n/**\n * Get icon configuration for a button type\n * @param buttonType - The button variant type\n * @param customIcon - Custom icon override\n * @param customHoverIcon - Custom hover icon override\n * @param themeName - Current theme name for theme-specific icons\n */\nexport function getButtonIcon(\n buttonType: ButtonType,\n customIcon?: React.ReactNode,\n customHoverIcon?: React.ReactNode,\n themeName?: string\n): ButtonIconConfig | null {\n // Custom icons take precedence\n if (customIcon) {\n return {\n regular: customIcon,\n hover: customHoverIcon,\n };\n }\n\n // Theme-specific icons for Primax\n if (themeName === 'primax') {\n if (\n buttonType === 'general' ||\n buttonType === 'secondary' ||\n buttonType === 'link' ||\n buttonType === 'danger' ||\n buttonType === 'generalDark' ||\n buttonType === 'secondaryDark'\n ) {\n return {\n regular: <FontAwesomeIcon icon={faSparkle} />,\n hover: <FontAwesomeIcon icon={faSparkles} />,\n };\n }\n }\n\n // Return default icon for button type\n return defaultButtonIcons[buttonType] || null;\n}\n","/**\n * Default color system implementation\n * Demonstrates the three-tier color abstraction with new naming convention\n */\n\nimport { ColorSystem } from '../../core/color-system';\n\nexport const defaultColorSystem: ColorSystem = {\n // ============================================================================\n // TIER 1: BASE COLORS\n // ============================================================================\n primitives: {\n // Blue scale (Cobalt brand color)\n 'color-blue-50': '#eff6ff',\n 'color-blue-100': '#dbeafe',\n 'color-blue-200': '#bfdbfe',\n 'color-blue-300': '#93c5fd',\n 'color-blue-400': '#60a5fa',\n 'color-blue-500': '#2e6bf0', // Primary brand blue\n 'color-blue-600': '#1e40af',\n 'color-blue-700': '#1e3a8a',\n 'color-blue-800': '#1e3a8a',\n 'color-blue-900': '#1e293b',\n\n // Yellow/Gold scale (Accent color)\n 'color-yellow-50': '#fefce8',\n 'color-yellow-100': '#fef9c3',\n 'color-yellow-200': '#fef08a',\n 'color-yellow-300': '#fde047',\n 'color-yellow-400': '#efe63f', // Primary gold\n 'color-yellow-500': '#eab308',\n 'color-yellow-600': '#ca8a04',\n 'color-yellow-700': '#a16207',\n 'color-yellow-800': '#854d0e',\n 'color-yellow-900': '#713f12',\n\n // Purple scale\n 'color-purple-50': '#faf5ff',\n 'color-purple-100': '#f3e8ff',\n 'color-purple-200': '#e9d5ff',\n 'color-purple-300': '#d8b4fe',\n 'color-purple-400': '#c084fc',\n 'color-purple-500': '#a855f7',\n 'color-purple-600': '#9333ea',\n 'color-purple-700': '#7e22ce',\n 'color-purple-800': '#3d2589', // Dark purple for CTA backgrounds\n 'color-purple-900': '#581c87',\n 'color-purple-950': '#091757',\n\n // Neutral/Gray scale\n 'color-neutral-50': '#f9fafb',\n 'color-neutral-100': '#f3f4f6',\n 'color-neutral-200': '#e5e7eb',\n 'color-neutral-300': '#d1d5db',\n 'color-neutral-400': '#9ca3af',\n 'color-neutral-500': '#6b7280',\n 'color-neutral-600': '#4b5563',\n 'color-neutral-700': '#374151',\n 'color-neutral-800': '#1f2937',\n 'color-neutral-900': '#111827',\n\n // Semantic colors\n 'color-success-50': '#f0fdf4',\n 'color-success-500': '#10b981',\n 'color-success-700': '#047857',\n 'color-alert-50': '#fef2f2',\n 'color-alert-500': '#ef4444',\n 'color-alert-700': '#b91c1c',\n 'color-warning-50': '#fefce8',\n 'color-warning-400': '#efe63f',\n 'color-warning-500': '#eab308',\n\n // Base\n 'color-white': '#ffffff',\n 'color-black': '#000000',\n },\n\n // ============================================================================\n // TIER 2: SEMANTIC COLOR TOKENS\n // ============================================================================\n semantic: {\n // Background colors\n 'tier1-theme-color-background-default-primary-default': 'var(--color-purple-800)',\n 'tier1-theme-color-background-default-primary-hover': 'var(--color-purple-950)',\n 'tier1-theme-color-background-default-primary-active': 'var(--color-purple-800)',\n 'tier1-theme-color-background-default-secondary-default': 'var(--color-neutral-50)',\n 'tier1-theme-color-background-default-secondary-hover': 'var(--color-neutral-100)',\n 'tier1-theme-color-background-default-tertiary-default': 'var(--color-neutral-100)',\n 'tier1-theme-color-background-default-tertiary-hover': 'var(--color-neutral-200)',\n 'tier1-theme-color-background-accent-primary-default': 'var(--color-yellow-400)',\n 'tier1-theme-color-background-accent-primary-hover': 'var(--color-yellow-500)',\n 'tier1-theme-color-background-accent-primary-active': 'var(--color-yellow-600)',\n 'tier1-theme-color-background-default-inverse-default': 'var(--color-neutral-900)',\n 'tier1-theme-color-background-utility-overlay-default': 'rgba(0, 0, 0, 0.5)',\n\n // Content (text) colors\n 'tier1-theme-color-content-title-primary-default': 'var(--color-purple-950)',\n 'tier1-theme-color-content-default-primary-default': 'var(--color-purple-950)',\n 'tier1-theme-color-content-default-secondary-default': 'var(--color-purple-800)',\n 'tier1-theme-color-content-default-tertiary-default': 'var(--color-neutral-500)',\n 'tier1-theme-color-content-default-inverse-default': 'var(--color-white)',\n 'tier1-theme-color-content-disabled-subtle-default': 'var(--color-neutral-400)',\n 'tier1-theme-color-content-accent-primary-default': 'var(--color-yellow-400)',\n 'tier1-theme-color-content-default-link-default': 'var(--color-blue-500)',\n 'tier1-theme-color-content-default-link-hover': 'var(--color-blue-600)',\n\n // Border colors\n 'tier1-theme-color-border-default-subtle-default': 'var(--color-neutral-100)',\n 'tier1-theme-color-border-default-default-default': 'var(--color-neutral-200)',\n 'tier1-theme-color-border-default-strong-default': 'var(--color-neutral-300)',\n 'tier1-theme-color-border-focus-primary-focus': 'var(--color-blue-500)',\n\n // State colors\n 'tier1-theme-color-background-utility-success-default': 'var(--color-success-50)',\n 'tier1-theme-color-content-utility-success-default': 'var(--color-success-500)',\n 'tier1-theme-color-content-utility-success-hover': 'var(--color-success-700)',\n 'tier1-theme-color-background-utility-warning-default': 'var(--color-warning-50)',\n 'tier1-theme-color-content-utility-warning-default': 'var(--color-warning-500)',\n 'tier1-theme-color-content-utility-warning-hover': 'var(--color-warning-400)',\n 'tier1-theme-color-background-utility-error-default': 'var(--color-alert-50)',\n 'tier1-theme-color-content-utility-error-default': 'var(--color-alert-500)',\n 'tier1-theme-color-content-utility-error-hover': 'var(--color-alert-700)',\n 'tier1-theme-color-background-utility-info-default': 'var(--color-blue-50)',\n 'tier1-theme-color-content-utility-info-default': 'var(--color-blue-500)',\n 'tier1-theme-color-content-utility-info-hover': 'var(--color-blue-600)',\n\n // Interactive colors\n 'tier1-theme-color-background-default-interactive-default': 'var(--color-blue-500)',\n 'tier1-theme-color-background-default-interactive-hover': 'var(--color-blue-600)',\n 'tier1-theme-color-background-default-interactive-active': 'var(--color-blue-700)',\n 'tier1-theme-color-background-default-interactive-disabled': 'var(--color-neutral-300)',\n\n // Legacy semantic tokens for backward compatibility\n primary: 'var(--tier1-theme-color-background-default-primary-default)',\n primaryHover: 'var(--tier1-theme-color-background-default-primary-hover)',\n primaryActive: 'var(--tier1-theme-color-background-default-primary-active)',\n primaryText: 'var(--tier1-theme-color-content-default-inverse-default)',\n secondary: 'var(--color-blue-500)',\n secondaryHover: 'var(--color-blue-600)',\n secondaryActive: 'var(--color-blue-700)',\n secondaryText: 'var(--tier1-theme-color-content-default-inverse-default)',\n accent: 'var(--tier1-theme-color-background-accent-primary-default)',\n accentHover: 'var(--tier1-theme-color-background-accent-primary-hover)',\n accentActive: 'var(--tier1-theme-color-background-accent-primary-active)',\n accentText: 'var(--color-purple-950)',\n tertiary: 'var(--color-neutral-200)',\n tertiaryHover: 'var(--color-neutral-300)',\n tertiaryActive: 'var(--color-neutral-400)',\n tertiaryText: 'var(--color-purple-950)',\n textPrimary: 'var(--tier1-theme-color-content-default-primary-default)',\n textSecondary: 'var(--tier1-theme-color-content-default-secondary-default)',\n textAccent: 'var(--tier1-theme-color-content-accent-primary-default)',\n textTertiary: 'var(--tier1-theme-color-content-default-tertiary-default)',\n textInverse: 'var(--tier1-theme-color-content-default-inverse-default)',\n textDisabled: 'var(--tier1-theme-color-content-disabled-subtle-default)',\n textLink: 'var(--tier1-theme-color-content-default-link-default)',\n textLinkHover: 'var(--tier1-theme-color-content-default-link-hover)',\n bgPrimary: 'var(--tier1-theme-color-background-default-primary-default)',\n bgSecondary: 'var(--tier1-theme-color-background-default-secondary-default)',\n bgTertiary: 'var(--tier1-theme-color-background-default-tertiary-default)',\n bgInverse: 'var(--tier1-theme-color-background-default-inverse-default)',\n bgOverlay: 'var(--tier1-theme-color-background-utility-overlay-default)',\n borderDefault: 'var(--tier1-theme-color-border-default-default-default)',\n borderSubtle: 'var(--tier1-theme-color-border-default-subtle-default)',\n borderStrong: 'var(--tier1-theme-color-border-default-strong-default)',\n borderFocus: 'var(--tier1-theme-color-border-focus-primary-focus)',\n stateSuccess: 'var(--tier1-theme-color-content-utility-success-default)',\n stateSuccessHover: 'var(--tier1-theme-color-content-utility-success-hover)',\n stateSuccessBg: 'var(--tier1-theme-color-background-utility-success-default)',\n stateWarning: 'var(--tier1-theme-color-content-utility-warning-default)',\n stateWarningHover: 'var(--tier1-theme-color-content-utility-warning-hover)',\n stateWarningBg: 'var(--tier1-theme-color-background-utility-warning-default)',\n stateError: 'var(--tier1-theme-color-content-utility-error-default)',\n stateErrorHover: 'var(--tier1-theme-color-content-utility-error-hover)',\n stateErrorBg: 'var(--tier1-theme-color-background-utility-error-default)',\n stateInfo: 'var(--tier1-theme-color-content-utility-info-default)',\n stateInfoHover: 'var(--tier1-theme-color-content-utility-info-hover)',\n stateInfoBg: 'var(--tier1-theme-color-background-utility-info-default)',\n interactivePrimary: 'var(--tier1-theme-color-background-default-interactive-default)',\n interactivePrimaryHover: 'var(--tier1-theme-color-background-default-interactive-hover)',\n interactivePrimaryActive: 'var(--tier1-theme-color-background-default-interactive-active)',\n interactiveSecondary: 'var(--color-neutral-200)',\n interactiveSecondaryHover: 'var(--color-neutral-300)',\n interactiveSecondaryActive: 'var(--color-neutral-400)',\n interactiveDisabled: 'var(--tier1-theme-color-background-default-interactive-disabled)',\n\n // ============================================================================\n // TIER 3: COMPONENT COLOR TOKENS\n // ============================================================================\n\n // Button component tokens\n 'tier3-theme-button-general-background-default': 'var(--color-blue-500)',\n 'tier3-theme-button-general-background-hover': 'var(--color-blue-600)',\n 'tier3-theme-button-general-background-active': 'var(--color-blue-700)',\n 'tier3-theme-button-general-content-default': 'var(--tier1-theme-color-content-default-inverse-default)',\n 'tier3-theme-button-general-content-hover': 'var(--tier1-theme-color-content-default-inverse-default)',\n 'tier3-theme-button-general-border-default': 'var(--color-blue-500)',\n 'tier3-theme-button-general-border-hover': 'var(--color-blue-600)',\n\n 'tier3-theme-button-cta-background-default': 'var(--tier1-theme-color-background-accent-primary-default)',\n 'tier3-theme-button-cta-background-hover': 'var(--tier1-theme-color-background-accent-primary-hover)',\n 'tier3-theme-button-cta-background-active': 'var(--tier1-theme-color-background-accent-primary-active)',\n 'tier3-theme-button-cta-content-default': 'var(--color-purple-950)',\n 'tier3-theme-button-cta-content-hover': 'var(--color-purple-950)',\n 'tier3-theme-button-cta-border-default': 'var(--color-blue-500)',\n 'tier3-theme-button-cta-border-hover': 'var(--color-blue-600)',\n\n 'tier3-theme-button-secondary-background-default': 'transparent',\n 'tier3-theme-button-secondary-background-hover': 'var(--tier1-theme-color-background-default-primary-default)',\n 'tier3-theme-button-secondary-background-active': 'var(--tier1-theme-color-background-default-primary-active)',\n 'tier3-theme-button-secondary-content-default': 'var(--tier1-theme-color-background-default-primary-default)',\n 'tier3-theme-button-secondary-content-hover': 'var(--tier1-theme-color-content-default-inverse-default)',\n 'tier3-theme-button-secondary-border-default': 'var(--tier1-theme-color-background-default-primary-default)',\n 'tier3-theme-button-secondary-border-hover': 'var(--tier1-theme-color-background-default-primary-default)',\n\n 'tier3-theme-button-outline-background-default': 'transparent',\n 'tier3-theme-button-outline-background-hover': 'var(--tier1-theme-color-background-default-secondary-default)',\n 'tier3-theme-button-outline-background-active': 'var(--tier1-theme-color-background-default-tertiary-default)',\n 'tier3-theme-button-outline-content-default': 'var(--tier1-theme-color-content-default-primary-default)',\n 'tier3-theme-button-outline-content-hover': 'var(--tier1-theme-color-content-default-primary-default)',\n 'tier3-theme-button-outline-border-default': 'var(--tier1-theme-color-border-default-default-default)',\n 'tier3-theme-button-outline-border-hover': 'var(--tier1-theme-color-border-default-strong-default)',\n\n 'tier3-theme-button-ghost-background-default': 'transparent',\n 'tier3-theme-button-ghost-background-hover': 'var(--tier1-theme-color-background-default-secondary-default)',\n 'tier3-theme-button-ghost-background-active': 'var(--tier1-theme-color-background-default-tertiary-default)',\n 'tier3-theme-button-ghost-content-default': 'var(--tier1-theme-color-content-default-primary-default)',\n 'tier3-theme-button-ghost-content-hover': 'var(--tier1-theme-color-content-default-primary-default)',\n 'tier3-theme-button-ghost-border-default': 'transparent',\n 'tier3-theme-button-ghost-border-hover': 'transparent',\n\n // Social media button tokens\n 'tier3-theme-button-twitter-background-default': 'transparent',\n 'tier3-theme-button-twitter-background-hover': '#5f8df0',\n 'tier3-theme-button-twitter-background-active': '#004cb1',\n 'tier3-theme-button-twitter-content-default': '#2e6bf0',\n 'tier3-theme-button-twitter-content-hover': '#ffffff',\n 'tier3-theme-button-twitter-content-active': '#ffffff',\n 'tier3-theme-button-twitter-border-default': '#2e6bf0',\n 'tier3-theme-button-twitter-border-hover': '#5f8df0',\n 'tier3-theme-button-twitter-border-active': '#004cb1',\n\n 'tier3-theme-button-linkedin-background-default': 'transparent',\n 'tier3-theme-button-linkedin-background-hover': '#5f8df0',\n 'tier3-theme-button-linkedin-background-active': '#004cb1',\n 'tier3-theme-button-linkedin-content-default': '#2e6bf0',\n 'tier3-theme-button-linkedin-content-hover': '#ffffff',\n 'tier3-theme-button-linkedin-content-active': '#ffffff',\n 'tier3-theme-button-linkedin-border-default': '#2e6bf0',\n 'tier3-theme-button-linkedin-border-hover': '#5f8df0',\n 'tier3-theme-button-linkedin-border-active': '#004cb1',\n\n 'tier3-theme-button-facebook-background-default': 'transparent',\n 'tier3-theme-button-facebook-background-hover': '#5f8df0',\n 'tier3-theme-button-facebook-background-active': '#004cb1',\n 'tier3-theme-button-facebook-content-default': '#2e6bf0',\n 'tier3-theme-button-facebook-content-hover': '#ffffff',\n 'tier3-theme-button-facebook-content-active': '#ffffff',\n 'tier3-theme-button-facebook-border-default': '#2e6bf0',\n 'tier3-theme-button-facebook-border-hover': '#5f8df0',\n 'tier3-theme-button-facebook-border-active': '#004cb1',\n },\n};\n","/**\n * Default theme configuration\n * Base theme with multi-level color system and standard design tokens\n */\n\nimport { ThemeConfig } from '../core/types';\nimport { defaultColorSystem } from './color-systems/default-colors';\n\nexport const defaultTheme: ThemeConfig = {\n name: 'default',\n fontImportUrl: 'https://use.typekit.net/nmh6hoc.css',\n\n // Three-tier color system (integrated)\n colors: {\n primitives: defaultColorSystem.primitives,\n semantic: defaultColorSystem.semantic,\n },\n\n colorPalettes: [\n { name: 'Primary', bg: 'primary', text: 'primaryText' },\n { name: 'Secondary', bg: 'secondary', text: 'secondaryText' },\n { name: 'Accent', bg: 'accent', text: 'accentText' },\n { name: 'Tertiary', bg: 'tertiary', text: 'tertiaryText' },\n ],\n\n spacing: {\n xs: '4px',\n sm: '8px',\n md: '16px',\n lg: '24px',\n xl: '30px',\n xxl: '60px',\n },\n\n borderRadius: {\n sm: '4px',\n md: '8px',\n lg: '16px',\n xl: '24px',\n },\n\n shadows: {\n sm: '0 2px 4px rgba(0, 0, 0, 0.1)',\n md: '0 4px 8px rgba(0, 0, 0, 0.15)',\n lg: '0 8px 16px rgba(0, 0, 0, 0.2)',\n xl: '0 16px 32px rgba(0, 0, 0, 0.25)',\n },\n\n breakpoints: {\n xs: '320px',\n sm: '576px',\n md: '768px',\n lg: '992px',\n xl: '1200px',\n xxl: '1400px',\n },\n\n typography: {\n // Tier 1: Base typography foundation tokens\n fontFamily: \"'azo-sans-web', serif\",\n fontFamilyHeading: \"'azo-sans-web', serif\",\n fontFamilyMono: \"'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace\",\n\n // Base font sizes\n fontSizeXs: '21px', // heading xs\n fontSizeSm: '28px', // heading sm\n fontSizeMd: '37px', // heading md\n fontSizeLg: '50px', // heading lg\n fontSizeXl: '67px', // heading xl\n fontSize2xl: '72px', // heading 2xl\n\n // Base font weights\n fontWeightLight: '100',\n fontWeightRegular: '400',\n fontWeightSemibold: '600',\n fontWeightBold: '700',\n fontWeightBlack: '900',\n\n // Base line heights\n lineHeightTight: '1.25',\n lineHeightSnug: '1.375',\n lineHeightNormal: '1.5',\n lineHeightRelaxed: '1.625',\n lineHeightLoose: '1.75',\n\n // Base letter spacing\n letterSpacingTighter: '-0.05em',\n letterSpacingTight: '-0.025em',\n letterSpacingNormal: '0',\n letterSpacingWide: '0.025em',\n letterSpacingWider: '0.05em',\n letterSpacingWidest: '0.1em',\n\n // Tier 2: Semantic typography variants with responsive breakpoints\n variants: {\n // Display typography (largest headings)\n display: {\n fontSize: '4rem',\n fontWeight: '900',\n lineHeight: '1.1',\n letterSpacing: '-0.03em',\n mobile: {\n fontSize: '2.5rem',\n lineHeight: '1.2',\n },\n tablet: {\n fontSize: '3rem',\n },\n },\n\n // Body text variants\n bodyDefault: {\n fontSize: '1rem',\n fontWeight: '400',\n lineHeight: '1.5',\n letterSpacing: '0',\n mobile: {\n fontSize: '0.875rem',\n lineHeight: '1.6',\n },\n },\n bodyLarge: {\n fontSize: '1.125rem',\n fontWeight: '400',\n lineHeight: '1.6',\n letterSpacing: '0',\n mobile: {\n fontSize: '1rem',\n },\n },\n bodySmall: {\n fontSize: '0.875rem',\n fontWeight: '400',\n lineHeight: '1.5',\n letterSpacing: '0',\n mobile: {\n fontSize: '0.75rem',\n },\n },\n\n // Specialized text variants\n lead: {\n fontSize: '1.25rem',\n fontWeight: '400',\n lineHeight: '1.6',\n letterSpacing: '-0.01em',\n mobile: {\n fontSize: '1.125rem',\n },\n },\n caption: {\n fontSize: '0.75rem',\n fontWeight: '400',\n lineHeight: '1.4',\n letterSpacing: '0.03em',\n textTransform: 'uppercase',\n },\n overline: {\n fontSize: '0.75rem',\n fontWeight: '600',\n lineHeight: '1.4',\n letterSpacing: '0.1em',\n textTransform: 'uppercase',\n },\n\n // Legacy variants (maintained for backward compatibility)\n pageTitle: {\n fontSize: '1.5rem',\n fontWeight: '400',\n lineHeight: '1.1',\n letterSpacing: '0',\n textTransform: 'uppercase',\n mobile: {\n fontSize: '2rem',\n lineHeight: '1.2',\n },\n tablet: {\n fontSize: '2.5rem',\n },\n },\n sectionTitle: {\n fontSize: '2.625rem',\n fontWeight: '700',\n lineHeight: '1.2',\n letterSpacing: '-0.02em',\n mobile: {\n fontSize: '2.25rem',\n },\n tablet: {\n fontSize: '2.25rem',\n },\n },\n title: {\n fontSize: '3.5rem',\n fontWeight: '900',\n lineHeight: '1.1',\n letterSpacing: '0',\n mobile: {\n fontSize: '2.875rem',\n lineHeight: '1.2',\n },\n tablet: {\n fontSize: '2.875rem',\n },\n },\n subtitle: {\n fontSize: '1.5rem',\n fontWeight: '400',\n lineHeight: '1.4',\n mobile: {\n fontSize: '1.5rem',\n },\n },\n body: {\n fontSize: '1.125rem',\n fontWeight: '400',\n lineHeight: '1.5',\n },\n textlink: {\n fontSize: '1.125rem',\n fontWeight: '600',\n lineHeight: '1.5',\n textTransform: 'uppercase',\n textDecoration: 'underline',\n },\n bodyBold: {\n fontSize: '1.125rem',\n fontWeight: '700',\n lineHeight: '1.6',\n },\n bodyBoldLarge: {\n fontSize: '1.313rem',\n fontWeight: '700',\n lineHeight: '1.6',\n },\n },\n },\n\n components: {\n card: {\n background: 'var(--tier1-theme-color-surface-primary-default)',\n border: '1px solid var(--tier1-theme-color-border-default-default-default)',\n borderRadius: '8px',\n shadow: '0 2px 4px rgba(0, 0, 0, 0.1)',\n padding: '24px',\n },\n header: {\n background: 'var(--tier1-theme-color-surface-primary-default)',\n borderBottom: '1px solid var(--tier1-theme-color-border-default-default-default)',\n height: '64px',\n padding: '0 24px',\n },\n cta: {\n background: 'var(--primary)',\n borderRadius: '0 0 200px',\n padding: '32px',\n titleFontWeight: '900',\n titleFontSize: '55px',\n titleLineHeight: '65px',\n descriptionLineHeight: '32px',\n descriptionFontWeight: '100',\n descriptionFontSize: '24px',\n descriptionMargin: '0px 0px 30px 0px',\n },\n },\n\n // Component-scoped token abstraction layer\n componentTokens: {\n button: {\n // Shared button properties (apply to all variants)\n borderRadius: '20px',\n borderWidth: '1px',\n padding: '14px 25px 13px',\n fontSize: '16px',\n fontWeight: '600',\n lineHeight: '22px',\n fontFamily: 'var(--tier1-theme-typography-font-family, sans-serif)',\n\n // Focus state (shared)\n focusOutline: '1px solid var(--tier1-theme-color-border-focus-primary-focus)',\n focusOutlineOffset: '1pt',\n\n // Disabled state (shared)\n disabledOpacity: '0.6',\n\n // Shadow (shared)\n shadow: 'var(--tier1-theme-shadow-sm, none)',\n\n // Animation tokens - Default theme has no hover animation\n hoverAnimation: 'none',\n\n // Variant-specific styles\n variants: {\n general: {\n bg: 'var(--tier3-theme-button-general-background-default)',\n bgHover: 'var(--tier3-theme-button-general-background-hover)',\n bgActive: 'var(--tier3-theme-button-general-background-active)',\n text: 'var(--tier3-theme-button-general-content-default)',\n textHover: 'var(--tier3-theme-button-general-content-hover)',\n border: 'var(--tier3-theme-button-general-border-default)',\n borderHover: 'var(--tier3-theme-button-general-border-hover)',\n },\n cta: {\n bg: 'var(--tier3-theme-button-cta-background-default)',\n bgHover: 'var(--tier3-theme-button-cta-background-hover)',\n bgActive: 'var(--tier3-theme-button-cta-background-active)',\n text: 'var(--tier3-theme-button-cta-content-default)',\n textHover: 'var(--tier3-theme-button-cta-content-hover)',\n border: 'var(--tier3-theme-button-cta-border-default)',\n borderHover: 'var(--tier3-theme-button-cta-border-hover)',\n },\n secondary: {\n bg: 'var(--tier3-theme-button-secondary-background-default)',\n bgHover: 'var(--tier3-theme-button-secondary-background-hover)',\n bgActive: 'var(--tier3-theme-button-secondary-background-active)',\n text: 'var(--tier3-theme-button-secondary-content-default)',\n textHover: 'var(--tier3-theme-button-secondary-content-hover)',\n border: 'var(--tier3-theme-button-secondary-border-default)',\n borderHover: 'var(--tier3-theme-button-secondary-border-hover)',\n },\n twitter: {\n bg: 'var(--tier3-theme-button-twitter-background-default)',\n bgHover: 'var(--tier3-theme-button-twitter-background-hover)',\n bgActive: 'var(--tier3-theme-button-twitter-background-active)',\n text: 'var(--tier3-theme-button-twitter-content-default)',\n textHover: 'var(--tier3-theme-button-twitter-content-hover)',\n border: 'var(--tier3-theme-button-twitter-border-default)',\n borderHover: 'var(--tier3-theme-button-twitter-border-hover)',\n },\n linkedin: {\n bg: 'var(--tier3-theme-button-linkedin-background-default)',\n bgHover: 'var(--tier3-theme-button-linkedin-background-hover)',\n bgActive: 'var(--tier3-theme-button-linkedin-background-active)',\n text: 'var(--tier3-theme-button-linkedin-content-default)',\n textHover: 'var(--tier3-theme-button-linkedin-content-hover)',\n border: 'var(--tier3-theme-button-linkedin-border-default)',\n borderHover: 'var(--tier3-theme-button-linkedin-border-hover)',\n },\n facebook: {\n bg: 'var(--tier3-theme-button-facebook-background-default)',\n bgHover: 'var(--tier3-theme-button-facebook-background-hover)',\n bgActive: 'var(--tier3-theme-button-facebook-background-active)',\n text: 'var(--tier3-theme-button-facebook-content-default)',\n textHover: 'var(--tier3-theme-button-facebook-content-hover)',\n border: 'var(--tier3-theme-button-facebook-border-default)',\n borderHover: 'var(--tier3-theme-button-facebook-border-hover)',\n },\n secondaryDarkMode: {\n bg: 'transparent',\n text: 'var(--tier1-theme-color-content-default-inverse-default)',\n border: 'var(--tier1-theme-color-content-default-inverse-default)',\n bgHover: 'var(--tier1-theme-color-background-default-interactive-default)',\n borderHover: 'var(--tier1-theme-color-background-default-interactive-hover)',\n bgActive: 'var(--tier1-theme-color-background-default-interactive-active)',\n },\n },\n },\n\n card: {\n // Base properties\n bg: 'var(--tier1-theme-color-background-default-secondary-default)',\n border: '1px solid var(--tier1-theme-color-border-default-default-default)',\n borderRadius: 'var(--tier1-theme-border-radius-lg)',\n shadow: 'var(--tier1-theme-shadow-md)',\n padding: 'var(--tier1-theme-spacing-xl)',\n maxWidth: '340px',\n\n // Focus state\n focusOutline: '2px solid var(--tier1-theme-color-border-focus-primary-focus)',\n focusOutlineOffset: '2px',\n\n // Active state\n borderActive: '2px solid var(--tier1-theme-color-background-default-interactive-default)',\n\n // Image wrapper\n imageWrapperBorderRadius:\n 'var(--tier1-theme-border-radius-lg, 20px) var(--tier1-theme-border-radius-lg, 20px) 0 0',\n imageAspectRatio: '3/2',\n\n // Responsive overrides\n md: {\n imageAspectRatio: '16/9',\n },\n },\n\n grid: {\n // Gap size mappings - reference theme spacing tokens\n gapXs: 'var(--tier1-theme-spacing-xs)',\n gapSm: 'var(--tier1-theme-spacing-sm)',\n gapMd: 'var(--tier1-theme-spacing-md)',\n gapLg: 'var(--tier1-theme-spacing-lg)',\n gapXl: 'var(--tier1-theme-spacing-xl)',\n gapXxl: 'var(--tier1-theme-spacing-xxl)',\n },\n\n header: {\n // Base properties\n bg: 'var(--tier1-theme-color-background-default-secondary-default)',\n border: '1px solid var(--tier1-theme-color-border-default-subtle-default)',\n height: '64px',\n padding: 'var(--tier1-theme-spacing-md) var(--tier1-theme-spacing-lg)',\n\n // Title\n titleColor: 'var(--tier1-theme-color-content-default-primary-default)',\n titleFontSize: 'var(--tier1-theme-typography-h5-desktop-font-size, 20px)',\n titleFontWeight: 'var(--tier1-theme-typography-h1-desktop-font-weight, 700)',\n titleMargin: '6px 0 6px var(--tier1-theme-spacing-sm, 10px)',\n\n // Welcome text\n welcomeColor: 'var(--tier1-theme-color-content-default-secondary-default)',\n welcomeFontSize: 'var(--tier1-theme-typography-body-small-desktop-font-size, 14px)',\n welcomeMargin: 'var(--tier1-theme-spacing-sm, 10px)',\n\n // Button spacing\n buttonSpacing: 'var(--tier1-theme-spacing-sm, 10px)',\n },\n\n cta: {\n // Container\n height: '500px',\n\n // Content box\n contentBg: 'var(--tier1-theme-color-background-default-primary-default)',\n contentMaxWidth: '765px',\n contentBorderRadius: '0px 0px 200px',\n contentPadding: 'var(--tier1-theme-spacing-xxl) var(--tier1-theme-spacing-xl) 0px var(--tier1-theme-spacing-xxl)',\n\n // Title\n titleColor: 'var(--tier1-theme-color-content-default-inverse-default)',\n titleFontSize: '55px',\n titleLineHeight: '65px',\n titleFontWeight: '900',\n titleMargin: '0 0 1rem',\n titleFontFamily: 'var(--tier1-theme-typography-font-family-heading, var(--tier1-theme-typography-font-family))',\n\n // Description\n descriptionColor: 'var(--tier1-theme-color-content-default-inverse-default)',\n descriptionFontSize: '24px',\n descriptionLineHeight: '32px',\n descriptionFontWeight: '100',\n descriptionMargin: '0px 0px 30px 0px',\n descriptionFontFamily: 'var(--tier1-theme-typography-font-family)',\n\n // Responsive overrides\n md: {\n height: '450px',\n titleFontSize: '2.5rem',\n titleLineHeight: '1.2',\n descriptionFontSize: '1.125rem',\n descriptionLineHeight: '1.6',\n },\n },\n\n icon: {\n // Base size\n size: '24px',\n\n // Color variants - separate fill, stroke, and stroke-width\n fillPrimary: 'var(--color-blue-600)',\n strokePrimary: 'var(--color-blue-600)',\n strokeWidthPrimary: '1',\n\n fillSecondary: 'var(--color-gray-600)',\n strokeSecondary: 'var(--color-gray-600)',\n strokeWidthSecondary: '0',\n\n fillAccent: 'var(--color-purple-600)',\n strokeAccent: 'var(--color-purple-600)',\n strokeWidthAccent: '0',\n\n fillSuccess: 'var(--color-green-600)',\n strokeSuccess: 'var(--color-green-600)',\n strokeWidthSuccess: '0',\n\n fillWarning: 'var(--color-yellow-600)',\n strokeWarning: 'var(--color-yellow-600)',\n strokeWidthWarning: '0',\n\n fillError: 'var(--color-red-600)',\n strokeError: 'var(--color-red-600)',\n strokeWidthError: '0',\n\n // Size variants\n sizes: {\n xs: {\n size: '12px',\n },\n sm: {\n size: '16px',\n },\n md: {\n size: '24px',\n },\n lg: {\n size: '32px',\n },\n xl: {\n size: '48px',\n },\n },\n },\n\n heading: {\n // Base properties\n margin: '0',\n padding: '0',\n color: 'var(--tier1-theme-color-content-default-primary-default)',\n fontFamily: 'var(--tier1-theme-typography-font-family-heading, var(--tier1-theme-typography-font-family))',\n\n // H1 variant\n h1FontSize: 'var(--tier1-theme-typography-font-size-2xl, 2.5rem)',\n h1FontWeight: 'var(--tier1-theme-typography-font-weight-bold, 700)',\n h1LineHeight: 'var(--tier1-theme-typography-h1-desktop-line-height, 1.2)',\n h1LetterSpacing: 'var(--tier1-theme-typography-h1-desktop-letter-spacing, -0.02em)',\n\n // H2 variant\n h2FontSize: 'var(--tier1-theme-typography-font-size-xl, 2rem)',\n h2FontWeight: 'var(--tier1-theme-typography-font-weight-bold, 700)',\n h2LineHeight: 'var(--tier1-theme-typography-h2-desktop-line-height, 1.3)',\n h2LetterSpacing: 'var(--tier1-theme-typography-h2-desktop-letter-spacing, -0.01em)',\n\n // H3 variant\n h3FontSize: 'var(--tier1-theme-typography-font-size-lg, 1.75rem)',\n h3FontWeight: 'var(--tier1-theme-typography-font-weight-bold, 700)',\n h3LineHeight: 'var(--tier1-theme-typography-h3-desktop-line-height, 1.4)',\n h3LetterSpacing: 'var(--tier1-theme-typography-h3-desktop-letter-spacing, 0)',\n\n // H4 variant\n h4FontSize: 'var(--tier1-theme-typography-font-size-md, 1.5rem)',\n h4FontWeight: 'var(--tier1-theme-typography-font-weight-semibold, 700)',\n h4LineHeight: 'var(--tier1-theme-typography-h4-desktop-line-height, 1.4)',\n\n // H5 variant\n h5FontSize: 'var(--tier1-theme-typography-font-size-sm, 1.25rem)',\n h5FontWeight: 'var(--tier1-theme-typography-font-weight-semibold, 700)',\n h5LineHeight: 'var(--tier1-theme-typography-h5-desktop-line-height, 1.5)',\n\n // H6 variant\n h6FontSize: 'var(--tier1-theme-typography-font-size-xs, 1rem)',\n h6FontWeight: 'var(--tier1-theme-typography-font-weight-semibold, 700)',\n h6LineHeight: 'var(--tier1-theme-typography-h6-desktop-line-height, 1.5)',\n\n // Display variant\n displayFontSize: 'var(--tier1-theme-typography-display-desktop-font-size, 4rem)',\n displayFontWeight: 'var(--tier1-theme-typography-display-desktop-font-weight, 900)',\n displayLineHeight: 'var(--tier1-theme-typography-display-desktop-line-height, 1.1)',\n displayLetterSpacing: 'var(--tier1-theme-typography-display-desktop-letter-spacing, -0.03em)',\n\n // Body Default variant\n bodyDefaultFontSize: 'var(--tier1-theme-typography-body-default-desktop-font-size, 1rem)',\n bodyDefaultFontWeight: 'var(--tier1-theme-typography-body-default-desktop-font-weight, 400)',\n bodyDefaultLineHeight: 'var(--tier1-theme-typography-body-default-desktop-line-height, 1.5)',\n bodyDefaultLetterSpacing: 'var(--tier1-theme-typography-body-default-desktop-letter-spacing, 0)',\n bodyDefaultFontFamily: 'var(--tier1-theme-typography-font-family)',\n\n // Lead variant\n leadFontSize: 'var(--tier1-theme-typography-lead-desktop-font-size, 1.25rem)',\n leadFontWeight: 'var(--tier1-theme-typography-lead-desktop-font-weight, 400)',\n leadLineHeight: 'var(--tier1-theme-typography-lead-desktop-line-height, 1.6)',\n leadLetterSpacing: 'var(--tier1-theme-typography-lead-desktop-letter-spacing, -0.01em)',\n\n // Caption variant\n captionFontSize: 'var(--tier1-theme-typography-caption-desktop-font-size, 0.75rem)',\n captionFontWeight: 'var(--tier1-theme-typography-caption-desktop-font-weight, 400)',\n captionLineHeight: 'var(--tier1-theme-typography-caption-desktop-line-height, 1.4)',\n captionLetterSpacing: 'var(--tier1-theme-typography-caption-desktop-letter-spacing, 0.03em)',\n captionTextTransform: 'var(--tier1-theme-typography-caption-desktop-text-transform, uppercase)',\n\n // Overline variant\n overlineFontSize: 'var(--tier1-theme-typography-overline-desktop-font-size, 0.75rem)',\n overlineFontWeight: 'var(--tier1-theme-typography-overline-desktop-font-weight, 600)',\n overlineLineHeight: 'var(--tier1-theme-typography-overline-desktop-line-height, 1.4)',\n overlineLetterSpacing: 'var(--tier1-theme-typography-overline-desktop-letter-spacing, 0.1em)',\n overlineTextTransform: 'var(--tier1-theme-typography-overline-desktop-text-transform, uppercase)',\n\n // Legacy Page Title variant\n pageTitleFontSize: 'var(--tier1-theme-typography-page-title-desktop-font-size, 3rem)',\n pageTitleFontWeight: 'var(--tier1-theme-typography-page-title-desktop-font-weight, 900)',\n pageTitleLineHeight: 'var(--tier1-theme-typography-page-title-desktop-line-height, 1.1)',\n pageTitleLetterSpacing: 'var(--tier1-theme-typography-page-title-desktop-letter-spacing, -0.03em)',\n pageTitleTextTransform: 'var(--tier1-theme-typography-page-title-desktop-text-transform, uppercase)',\n pageTitleColor: 'var(--tier1-theme-color-content-accent-primary-default)',\n\n // Legacy Section Title variant\n sectionTitleFontSize: 'var(--tier1-theme-typography-section-title-desktop-font-size, 2.625rem)',\n sectionTitleFontWeight: 'var(--tier1-theme-typography-section-title-desktop-font-weight, 700)',\n sectionTitleLineHeight: 'var(--tier1-theme-typography-section-title-desktop-line-height, 1.2)',\n sectionTitleLetterSpacing: 'var(--tier1-theme-typography-section-title-desktop-letter-spacing, -0.02em)',\n\n // Legacy Title variant\n titleFontSize: 'var(--tier1-theme-typography-title-desktop-font-size, 3.5rem)',\n titleFontWeight: 'var(--tier1-theme-typography-title-desktop-font-weight, 900)',\n titleLineHeight: 'var(--tier1-theme-typography-title-desktop-line-height, 1.1)',\n titleLetterSpacing: 'var(--tier1-theme-typography-title-desktop-letter-spacing, -0.03em)',\n\n // Legacy Subtitle variant\n subtitleFontSize: 'var(--tier1-theme-typography-subtitle-desktop-font-size, 1.5rem)',\n subtitleFontWeight: 'var(--tier1-theme-typography-subtitle-desktop-font-weight, 400)',\n subtitleLineHeight: 'var(--tier1-theme-typography-subtitle-desktop-line-height, 1.4)',\n\n // Legacy Body variant\n bodyFontSize: 'var(--tier1-theme-typography-body-desktop-font-size, 1.125rem)',\n bodyFontWeight: 'var(--tier1-theme-typography-body-desktop-font-weight, 400)',\n bodyLineHeight: 'var(--tier1-theme-typography-body-desktop-line-height, 1.5)',\n\n // Legacy Text Link variant\n textlinkFontSize: 'var(--tier1-theme-typography-textlink-desktop-font-size, 1.125rem)',\n textlinkFontWeight: 'var(--tier1-theme-typography-textlink-desktop-font-weight, 600)',\n textlinkLineHeight: 'var(--tier1-theme-typography-textlink-desktop-line-height, 1.5)',\n textlinkFontFamily: 'var(--tier1-theme-typography-font-family)',\n textlinkTextDecoration: 'var(--tier1-theme-typography-textlink-desktop-text-decoration, underline)',\n textlinkTextTransform: 'var(--tier1-theme-typography-textlink-desktop-text-transform, uppercase)',\n\n // Legacy Body Bold variant\n bodyBoldFontSize: 'var(--tier1-theme-typography-body-bold-desktop-font-size, 1.125rem)',\n bodyBoldFontWeight: 'var(--tier1-theme-typography-body-bold-desktop-font-weight, 700)',\n bodyBoldLineHeight: 'var(--tier1-theme-typography-body-bold-desktop-line-height, 1.6)',\n bodyBoldFontFamily: 'var(--tier1-theme-typography-font-family)',\n\n // Legacy Body Large variant\n bodyLargeFontSize: 'var(--tier1-theme-typography-body-large-desktop-font-size, 1.125rem)',\n bodyLargeFontWeight: 'var(--tier1-theme-typography-body-large-desktop-font-weight, 400)',\n bodyLargeLineHeight: 'var(--tier1-theme-typography-body-large-desktop-line-height, 1.6)',\n bodyLargeFontFamily: 'var(--tier1-theme-typography-font-family)',\n\n // Legacy Body Bold Large variant\n bodyBoldLargeFontSize: 'var(--tier1-theme-typography-body-bold-large-desktop-font-size, 1.313rem)',\n bodyBoldLargeFontWeight: 'var(--tier1-theme-typography-body-bold-large-desktop-font-weight, 700)',\n bodyBoldLargeLineHeight: 'var(--tier1-theme-typography-body-bold-large-desktop-line-height, 1.6)',\n bodyBoldLargeFontFamily: 'var(--tier1-theme-typography-font-family)',\n\n // Legacy Body Small variant\n bodySmallFontSize: 'var(--tier1-theme-typography-body-small-desktop-font-size, 0.875rem)',\n bodySmallFontWeight: 'var(--tier1-theme-typography-body-small-desktop-font-weight, 400)',\n bodySmallLineHeight: 'var(--tier1-theme-typography-body-small-desktop-line-height, 1.5)',\n bodySmallFontFamily: 'var(--tier1-theme-typography-font-family)',\n\n // Responsive overrides (mobile)\n mobile: {\n h1FontSize: 'var(--tier1-theme-typography-h1-mobile-font-size, 2rem)',\n h1LineHeight: 'var(--tier1-theme-typography-h1-mobile-line-height, 1.25)',\n h2FontSize: 'var(--tier1-theme-typography-h2-mobile-font-size, 1.75rem)',\n h2LineHeight: 'var(--tier1-theme-typography-h2-mobile-line-height, 1.3)',\n h3FontSize: 'var(--tier1-theme-typography-h3-mobile-font-size, 1.5rem)',\n h4FontSize: 'var(--tier1-theme-typography-h4-mobile-font-size, 1.25rem)',\n h5FontSize: 'var(--tier1-theme-typography-h5-mobile-font-size, 1.125rem)',\n h6FontSize: 'var(--tier1-theme-typography-h6-mobile-font-size, 0.875rem)',\n displayFontSize: 'var(--tier1-theme-typography-display-mobile-font-size, 2.5rem)',\n displayLineHeight: 'var(--tier1-theme-typography-display-mobile-line-height, 1.2)',\n bodyDefaultFontSize: 'var(--tier1-theme-typography-body-default-mobile-font-size, 0.875rem)',\n bodyDefaultLineHeight: 'var(--tier1-theme-typography-body-default-mobile-line-height, 1.6)',\n leadFontSize: 'var(--tier1-theme-typography-lead-mobile-font-size, 1.125rem)',\n pageTitleFontSize: 'var(--tier1-theme-typography-page-title-mobile-font-size, 2rem)',\n pageTitleLineHeight: 'var(--tier1-theme-typography-page-title-mobile-line-height, 1.2)',\n sectionTitleFontSize: 'var(--tier1-theme-typography-section-title-mobile-font-size, 2.25rem)',\n titleFontSize: 'var(--tier1-theme-typography-title-mobile-font-size, 2.875rem)',\n titleLineHeight: 'var(--tier1-theme-typography-title-mobile-line-height, 1.2)',\n subtitleFontSize: 'var(--tier1-theme-typography-subtitle-mobile-font-size, 1.5rem)',\n },\n\n // Responsive overrides (tablet)\n tablet: {\n h1FontSize: 'var(--tier1-theme-typography-h1-tablet-font-size, 2.25rem)',\n h1LineHeight: 'var(--tier1-theme-typography-h1-tablet-line-height, 1.2)',\n h2FontSize: 'var(--tier1-theme-typography-h2-tablet-font-size, 1.875rem)',\n h3FontSize: 'var(--tier1-theme-typography-h3-tablet-font-size, 1.625rem)',\n displayFontSize: 'var(--tier1-theme-typography-display-tablet-font-size, 3rem)',\n pageTitleFontSize: 'var(--tier1-theme-typography-page-title-tablet-font-size, 2.5rem)',\n sectionTitleFontSize: 'var(--tier1-theme-typography-section-title-tablet-font-size, 2.25rem)',\n titleFontSize: 'var(--tier1-theme-typography-title-tablet-font-size, 2.875rem)',\n },\n\n // Dark mode override\n dark: {\n color: 'var(--color-white)',\n },\n },\n\n textLink: {\n color: 'var(--tier1-theme-color-content-default-link-default)',\n fontSize: 'var(--tier1-theme-typography-textlink-desktop-font-size, 1.125rem)',\n fontWeight: 'var(--tier1-theme-typography-textlink-desktop-font-weight, 600)',\n textDecoration: 'var(--tier1-theme-typography-textlink-desktop-text-decoration, underline)',\n\n colorHover: 'var(--tier1-theme-color-content-default-link-hover)',\n\n colorFocus: 'var(--tier1-theme-color-content-default-link-default)',\n textDecorationFocus: 'underline',\n textDecorationStyleFocus: 'solid',\n focusOutline: '2px solid var(--tier1-theme-color-border-focus-primary-focus)',\n focusOutlineOffset: '2px',\n\n colorActive: 'var(--tier1-theme-color-content-default-link-hover)',\n\n dark: {\n color: 'var(--tier1-theme-color-content-default-inverse-default)',\n colorHover: 'var(--tier1-theme-color-content-accent-primary-default)',\n colorFocus: 'var(--tier1-theme-color-content-default-inverse-default)',\n colorActive: 'var(--tier1-theme-color-content-accent-primary-default)',\n },\n },\n\n richText: {\n // Base container\n color: 'var(--tier1-theme-color-content-default-primary-default)',\n fontFamily: 'var(--tier1-theme-typography-font-family)',\n lineHeight: 'var(--tier1-theme-typography-line-height-normal, 1.5)',\n\n // Heading spacing\n headingMarginBottom: 'var(--tier1-theme-spacing-md, 16px)',\n\n // Paragraph styles\n paragraphFontSize: 'var(--tier1-theme-typography-body-default-desktop-font-size, 1rem)',\n paragraphFontWeight: 'var(--tier1-theme-typography-body-default-desktop-font-weight, 400)',\n paragraphLineHeight: 'var(--tier1-theme-typography-body-default-desktop-line-height, 1.5)',\n paragraphMarginBottom: 'var(--tier1-theme-spacing-md, 16px)',\n paragraphColor: 'var(--tier1-theme-color-content-default-primary-default)',\n\n // List styles\n listMargin: 'var(--tier1-theme-spacing-md, 16px) 0',\n listPaddingLeft: 'var(--tier1-theme-spacing-xl, 30px)',\n listItemFontSize: 'var(--tier1-theme-typography-body-default-desktop-font-size, 1rem)',\n listItemLineHeight: 'var(--tier1-theme-typography-body-default-desktop-line-height, 1.5)',\n listItemMarginBottom: 'var(--tier1-theme-spacing-sm, 8px)',\n listItemColor: 'var(--tier1-theme-color-content-default-primary-default)',\n ulListStyleType: 'disc',\n olListStyleType: 'decimal',\n\n // Strong/bold\n strongFontWeight: 'var(--tier1-theme-typography-font-weight-bold, 700)',\n\n // Code styles\n codeFontSize: '0.875em',\n codeBg: 'var(--tier1-theme-color-background-default-tertiary-default)',\n codePadding: '0.125rem 0.25rem',\n\n preFontSize: '0.875rem',\n preBg: 'var(--tier1-theme-color-background-default-tertiary-default)',\n prePadding: 'var(--tier1-theme-spacing-md, 16px)',\n\n // Blockquote styles\n blockquoteMargin: 'var(--tier1-theme-spacing-md, 16px) 0',\n blockquotePadding: 'var(--tier1-theme-spacing-sm, 8px) var(--tier1-theme-spacing-md, 16px)',\n blockquoteBorderLeft: '4px solid var(--tier1-theme-color-border-default-default-default)',\n blockquoteColor: 'var(--tier1-theme-color-content-default-secondary-default)',\n\n // Horizontal rule\n hrBorder: '1px solid var(--tier1-theme-color-border-default-default-default)',\n hrMargin: 'var(--tier1-theme-spacing-lg, 24px) 0',\n\n // Responsive overrides\n mobile: {\n paragraphFontSize: 'var(--tier1-theme-typography-body-default-mobile-font-size, 0.875rem)',\n paragraphLineHeight: 'var(--tier1-theme-typography-body-default-mobile-line-height, 1.6)',\n listItemFontSize: 'var(--tier1-theme-typography-body-default-mobile-font-size, 0.875rem)',\n },\n\n // Dark mode overrides\n dark: {\n color: 'var(--tier1-theme-color-content-default-inverse-default)',\n paragraphColor: 'var(--tier1-theme-color-content-default-inverse-default)',\n listItemColor: 'var(--tier1-theme-color-content-default-inverse-default)',\n blockquoteColor: 'var(--tier1-theme-color-content-default-inverse-default)',\n },\n },\n\n media: {\n bg: 'transparent',\n borderRadius: '0',\n objectFit: 'cover',\n objectPosition: 'center',\n aspectRatio: 'auto',\n\n dark: {\n bg: 'var(--tier1-theme-color-background-default-inverse-default)',\n },\n },\n\n videoPlayer: {\n borderRadius: '0',\n thumbnailBg: 'var(--tier1-theme-color-background-default-secondary-default)',\n placeholderBg: '#1a1a2e',\n playIconSize: '64px',\n playIconBg: 'rgba(0, 0, 0, 0.6)',\n playIconBorder: 'rgba(255, 255, 255, 0.8)',\n playIconColor: '#fff',\n focusOutline: '2px solid var(--tier1-theme-color-border-focus-primary-focus)',\n\n dark: {\n thumbnailBg: 'var(--tier1-theme-color-background-default-inverse-default)',\n playIconBg: 'rgba(0, 0, 0, 0.7)',\n },\n },\n\n paragraph: {\n // Base properties\n fontSize: 'var(--tier1-theme-typography-body-default-desktop-font-size, 1rem)',\n fontWeight: 'var(--tier1-theme-typography-body-default-desktop-font-weight, 400)',\n lineHeight: 'var(--tier1-theme-typography-body-default-desktop-line-height, 1.5)',\n color: 'var(--tier1-theme-color-content-default-primary-default)',\n fontFamily: 'var(--tier1-theme-typography-font-family)',\n letterSpacing: 'var(--tier1-theme-typography-body-default-desktop-letter-spacing, 0)',\n\n // Strong/bold\n strongFontWeight: 'var(--tier1-theme-typography-font-weight-bold, 700)',\n\n // Responsive overrides\n mobile: {\n fontSize: 'var(--tier1-theme-typography-body-default-mobile-font-size, 0.875rem)',\n lineHeight: 'var(--tier1-theme-typography-body-default-mobile-line-height, 1.6)',\n },\n\n tablet: {\n fontSize: 'var(--tier1-theme-typography-body-default-desktop-font-size, 1rem)',\n lineHeight: 'var(--tier1-theme-typography-body-default-desktop-line-height, 1.5)',\n },\n\n // Dark mode overrides\n dark: {\n color: 'var(--tier1-theme-color-content-default-inverse-default)',\n },\n },\n\n modal: {\n // Overlay\n overlayBg: 'rgba(0, 0, 0, 0.5)',\n\n // Content area\n contentBg: 'var(--tier1-theme-color-background-default-secondary-default)',\n contentBorder: '1px solid var(--tier1-theme-color-border-default-default-default)',\n contentPadding: 'var(--tier1-theme-spacing-xl)',\n borderRadius: 'var(--tier1-theme-border-radius-lg)',\n shadow: 'var(--tier1-theme-shadow-lg)',\n maxWidth: '37.5rem',\n width: '100%',\n\n // Focus\n focusOutline: '2px solid var(--tier1-theme-color-border-focus-primary-focus)',\n focusOutlineOffset: '2px',\n\n // Size variants\n sizes: {\n sm: {\n maxWidth: '25rem',\n contentPadding: 'var(--tier1-theme-spacing-lg)',\n },\n md: {\n maxWidth: '37.5rem',\n contentPadding: 'var(--tier1-theme-spacing-xl)',\n },\n lg: {\n maxWidth: '50rem',\n contentPadding: 'var(--tier1-theme-spacing-xxl)',\n },\n },\n\n // Responsive\n mobile: {\n contentPadding: 'var(--tier1-theme-spacing-lg)',\n maxWidth: 'calc(100% - 2rem)',\n },\n\n // Dark mode\n dark: {\n contentBg: 'var(--tier1-theme-color-background-default-primary-default)',\n contentBorder: '1px solid var(--tier1-theme-color-border-default-subtle-default)',\n },\n },\n },\n};\n","/**\n * Theme utility helper functions\n */\n\n/**\n * Converts camelCase to kebab-case:\n * - textPrimary -> text-primary\n * - blue500 -> blue-500\n * - brandPrimary -> brand-primary\n * - h1 -> h1\n * - h2 -> h2\n * - bodyLarge -> body-large\n */\nexport function toKebabCase(str: string): string {\n const typographyVariants = /^(h|b|p|span|div)(\\d+)$/i;\n if (typographyVariants.test(str)) {\n return str.toLowerCase();\n }\n return str\n .replace(/([a-z])([A-Z])/g, '$1-$2') // camelCase\n .replace(/([a-z])(\\d)/g, '$1-$2')\n .toLowerCase();\n}\n","/**\n * Theme CSS generation utilities\n * Converts theme configurations to CSS custom properties and applies them\n * Updated to support three-tier naming convention\n */\n\nimport { ThemeConfig, ThemeTypography, TypographyVariant, ComponentTokens } from '../core/types';\nimport { ColorSystem } from '../core/color-system';\nimport { toKebabCase } from './helpers';\n\n/**\n * Converts an object to CSS custom properties with a prefix\n * Handles camelCase to kebab-case conversion including numbers\n */\nfunction objectToCSSVars(obj: Record<string, string | undefined>, prefix: string): string[] {\n return Object.entries(obj)\n .filter(([, value]) => value !== undefined)\n .map(([key, value]) => {\n // For new tier naming convention, don't convert keys that already have proper format\n const cssKey = key.startsWith('tier') || key.startsWith('color-') ? key : toKebabCase(key);\n return ` --${prefix}${cssKey}: ${value};`;\n });\n}\n\n/**\n * Generates CSS custom properties for the three-tier color system\n * Creates CSS variables that reference each other\n * Also generates legacy variable names for backward compatibility\n */\nfunction generateColorSystemCSS(colorSystem: ColorSystem, selector: string = ':root'): string {\n const sections: string[] = [];\n\n // Tier 1: Base colors (primitives)\n sections.push(...objectToCSSVars(colorSystem.primitives as unknown as Record<string, string>, ''));\n\n // Tier 2 & 3: Semantic and component tokens\n sections.push(...objectToCSSVars(colorSystem.semantic as unknown as Record<string, string>, ''));\n\n // Legacy compatibility: Generate old-style variable names for ColorTable\n const legacyMapping: Record<string, string> = {\n 'text-primary': 'textPrimary',\n 'text-secondary': 'textSecondary',\n 'bg-secondary': 'bgSecondary',\n 'bg-tertiary': 'bgTertiary',\n 'border-default': 'borderDefault',\n 'border-subtle': 'borderSubtle',\n 'border-strong': 'borderStrong',\n };\n\n const legacyVars = Object.entries(legacyMapping)\n .map(([oldVar, newKey]) => {\n const value = colorSystem.semantic[newKey as keyof typeof colorSystem.semantic];\n return value ? ` --${oldVar}: ${value};` : '';\n })\n .filter(Boolean);\n\n sections.push(...legacyVars);\n\n return `${selector} {\\n${sections.join('\\n')}\\n}`;\n}\n\n/**\n * Generates typography CSS variables using the new tier naming convention\n * Tier 1: Foundation tokens (base font properties)\n * Tier 2: Semantic tokens (typography variants with responsive breakpoints)\n */\nfunction generateTypographyCSS(typography: ThemeTypography, selector: string = ':root'): string {\n const sections: string[] = [];\n\n // Tier 1: Base typography foundation tokens\n const { variants, ...typographyBase } = typography;\n\n // Add base typography variables with tier1-theme prefix\n Object.entries(typographyBase).forEach(([key, value]) => {\n if (value !== undefined) {\n const cssKey = toKebabCase(key);\n sections.push(` --tier1-theme-typography-${cssKey}: ${value};`);\n }\n });\n\n // Tier 2: Typography variants (semantic tokens with responsive breakpoints)\n if (variants) {\n Object.entries(variants).forEach(([variantName, variantStyles]: [string, TypographyVariant]) => {\n if (variantStyles) {\n const { mobile, tablet, ...desktopStyles } = variantStyles;\n\n // Desktop styles (default) - Tier 2 semantic tokens\n Object.entries(desktopStyles).forEach(([prop, value]) => {\n if (value !== undefined) {\n const propKey = toKebabCase(prop);\n const variantKey = toKebabCase(variantName);\n sections.push(` --tier1-theme-typography-${variantKey}-desktop-${propKey}: ${value};`);\n }\n });\n\n // Mobile styles - responsive variants\n if (mobile) {\n Object.entries(mobile).forEach(([prop, value]) => {\n if (value !== undefined) {\n const propKey = toKebabCase(prop);\n const variantKey = toKebabCase(variantName);\n sections.push(` --tier1-theme-typography-${variantKey}-mobile-${propKey}: ${value};`);\n }\n });\n }\n\n // Tablet styles - responsive variants\n if (tablet) {\n Object.entries(tablet).forEach(([prop, value]) => {\n if (value !== undefined) {\n const propKey = toKebabCase(prop);\n const variantKey = toKebabCase(variantName);\n sections.push(` --tier1-theme-typography-${variantKey}-tablet-${propKey}: ${value};`);\n }\n });\n }\n }\n });\n }\n\n return sections.length > 0 ? `${selector} {\\n${sections.join('\\n')}\\n}` : '';\n}\n\n/**\n * Generates CSS custom properties from theme configuration\n * Uses the integrated three-tier system\n */\nexport function generateThemeCSS(theme: ThemeConfig, selector: string = ':root'): string {\n let css = '';\n\n // Generate three-tier color system CSS\n const colorSystem = {\n primitives: theme.colors.primitives,\n semantic: theme.colors.semantic,\n };\n css += generateColorSystemCSS(colorSystem, selector);\n css += '\\n\\n';\n\n // Generate typography CSS with new naming convention\n const typographyCSS = generateTypographyCSS(theme.typography, selector);\n if (typographyCSS) {\n css += typographyCSS;\n css += '\\n\\n';\n }\n\n // Non-color theme properties (spacing, shadows, etc.)\n const sections: Record<string, string[]> = {};\n\n // Spacing (Tier 1)\n sections['Spacing'] = objectToCSSVars(theme.spacing as unknown as Record<string, string>, 'tier1-theme-spacing-');\n\n // Border Radius (Tier 1)\n sections['Border Radius'] = objectToCSSVars(\n theme.borderRadius as unknown as Record<string, string>,\n 'tier1-theme-border-radius-'\n );\n\n // Shadows (Tier 1)\n sections['Shadows'] = objectToCSSVars(theme.shadows as unknown as Record<string, string>, 'tier1-theme-shadow-');\n\n // Breakpoints (no tier prefix)\n sections['Breakpoints'] = objectToCSSVars(theme.breakpoints as unknown as Record<string, string>, 'breakpoint-');\n\n // Components (Tier 1)\n sections['Card Component'] = objectToCSSVars(\n theme.components.card as unknown as Record<string, string>,\n 'tier1-theme-component-card-'\n );\n sections['Header Component'] = objectToCSSVars(\n theme.components.header as unknown as Record<string, string>,\n 'tier1-theme-component-header-'\n );\n sections['CTA Component'] = objectToCSSVars(\n theme.components.cta as unknown as Record<string, string>,\n 'tier1-theme-component-cta-'\n );\n\n // Build final CSS\n const cssOutput = Object.entries(sections)\n .map(([name, vars]) => `\\n /* ${name} */\\n${vars.join('\\n')}`)\n .join('');\n\n css += `${selector} {${cssOutput}\\n}`;\n\n // NEW: Automatically generate component-scoped tokens with breakpoint support\n if (theme.componentTokens) {\n css += '\\n\\n';\n css += generateComponentTokensCSS(theme.componentTokens, selector);\n }\n\n return css;\n}\n\n/**\n * Helper function to convert camelCase to kebab-case\n */\nfunction camelToKebab(str: string): string {\n return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\n/**\n * Generates component-scoped CSS variables with breakpoint, variant, dark mode, and size support\n * Automatically handles any component without needing generator code changes\n * Supports nested variants pattern: { borderRadius: \"0px\", variants: { general: {...}, secondary: {...} } }\n * Supports dark mode overrides: { bg: \"white\", dark: { bg: \"black\" } }\n * Supports size variants: { sizes: { sm: { padding: \"8px\" }, md: { padding: \"12px\" } } }\n */\nfunction generateComponentTokensCSS(componentTokens: ComponentTokens, selector: string = ':root'): string {\n const sections: string[] = [];\n const darkSections: string[] = [];\n const sizeSections: { [size: string]: string[] } = {};\n\n // Reserved breakpoint keys\n const breakpointKeys = ['desktop', 'tablet', 'mobile', 'sm', 'md', 'lg', 'xl'];\n\n sections.push(`${selector} {`);\n sections.push(' /* Component-Scoped Tokens */');\n\n // Dark mode selector targets elements with data-dark-mode attribute\n const darkSelector = selector === ':root' ? '[data-dark-mode=\"true\"]' : `${selector} [data-dark-mode=\"true\"]`;\n darkSections.push(`${darkSelector} {`);\n darkSections.push(' /* Dark Mode Overrides */');\n\n // Generic loop - works for any component automatically\n Object.entries(componentTokens).forEach(([componentName, componentProps]) => {\n if (componentProps && typeof componentProps === 'object') {\n const componentPrefix = camelToKebab(componentName);\n sections.push(`\\n /* ${componentName} component */`);\n\n let hasDarkOverrides = false;\n\n // Process base tokens (non-breakpoint, non-variant, non-dark, non-sizes properties)\n Object.entries(componentProps).forEach(([propKey, propValue]) => {\n // Skip breakpoint objects, variants object, dark object, and sizes object\n if (breakpointKeys.includes(propKey) || propKey === 'variants' || propKey === 'dark' || propKey === 'sizes')\n return;\n\n if (propValue !== undefined && typeof propValue === 'string') {\n const cssVarName = camelToKebab(propKey);\n sections.push(` --${componentPrefix}-${cssVarName}: ${propValue};`);\n }\n });\n\n // Process component-level dark mode overrides\n if (componentProps.dark && typeof componentProps.dark === 'object') {\n hasDarkOverrides = true;\n darkSections.push(`\\n /* ${componentName} component - dark mode */`);\n Object.entries(componentProps.dark).forEach(([propKey, propValue]) => {\n if (propValue !== undefined && typeof propValue === 'string') {\n const cssVarName = camelToKebab(propKey);\n darkSections.push(` --${componentPrefix}-${cssVarName}: ${propValue};`);\n }\n });\n }\n\n // Process size variants\n if (componentProps.sizes && typeof componentProps.sizes === 'object') {\n Object.entries(componentProps.sizes).forEach(([sizeName, sizeProps]) => {\n if (sizeProps && typeof sizeProps === 'object') {\n // Initialize size section if not exists\n if (!sizeSections[sizeName]) {\n const sizeSelector =\n selector === ':root' ? `[data-size=\"${sizeName}\"]` : `${selector} [data-size=\"${sizeName}\"]`;\n sizeSections[sizeName] = [`${sizeSelector} {`, ` /* Size: ${sizeName} */`];\n }\n\n sizeSections[sizeName].push(`\\n /* ${componentName} component - ${sizeName} */`);\n Object.entries(sizeProps).forEach(([propKey, propValue]) => {\n if (propValue !== undefined && typeof propValue === 'string') {\n const cssVarName = camelToKebab(propKey);\n sizeSections[sizeName].push(` --${componentPrefix}-${cssVarName}: ${propValue};`);\n }\n });\n }\n });\n }\n\n // Process variants (nested variant-specific tokens)\n if (componentProps.variants && typeof componentProps.variants === 'object') {\n Object.entries(componentProps.variants).forEach(([variantName, variantProps]) => {\n if (variantProps && typeof variantProps === 'object') {\n const variantKebab = camelToKebab(variantName); // Convert variant name to kebab-case\n\n // Process variant base tokens\n Object.entries(variantProps).forEach(([propKey, propValue]) => {\n // Skip breakpoint objects and dark object within variants\n if (breakpointKeys.includes(propKey) || propKey === 'dark') return;\n\n if (propValue !== undefined && typeof propValue === 'string') {\n // Extract base property and state from camelCase\n // e.g., bgHover -> bg + Hover, textActive -> text + Active\n const match = propKey.match(/^([a-z]+)([A-Z][a-z]+)?$/);\n if (match) {\n const baseProp = match[1]; // 'bg', 'text', 'border'\n const state = match[2] ? match[2].toLowerCase() : null; // 'hover', 'active', null\n\n // Pattern: --button-bg-general or --button-bg-general-hover\n const cssVarName = state\n ? `--${componentPrefix}-${baseProp}-${variantKebab}-${state}`\n : `--${componentPrefix}-${baseProp}-${variantKebab}`;\n\n sections.push(` ${cssVarName}: ${propValue};`);\n }\n }\n });\n\n // Process variant dark mode overrides\n if (variantProps.dark && typeof variantProps.dark === 'object') {\n hasDarkOverrides = true;\n Object.entries(variantProps.dark).forEach(([propKey, propValue]) => {\n if (propValue !== undefined && typeof propValue === 'string') {\n const match = propKey.match(/^([a-z]+)([A-Z][a-z]+)?$/);\n if (match) {\n const baseProp = match[1];\n const state = match[2] ? match[2].toLowerCase() : null;\n\n const cssVarName = state\n ? `--${componentPrefix}-${baseProp}-${variantKebab}-${state}`\n : `--${componentPrefix}-${baseProp}-${variantKebab}`;\n\n darkSections.push(` ${cssVarName}: ${propValue};`);\n }\n }\n });\n }\n\n // Process variant breakpoint-scoped tokens\n breakpointKeys.forEach((breakpoint) => {\n const breakpointProps = (variantProps as any)[breakpoint];\n if (breakpointProps && typeof breakpointProps === 'object') {\n Object.entries(breakpointProps).forEach(([propKey, propValue]) => {\n if (propValue !== undefined) {\n const match = propKey.match(/^([a-z]+)([A-Z][a-z]+)?$/);\n if (match) {\n const baseProp = match[1];\n const state = match[2] ? match[2].toLowerCase() : null;\n\n const cssVarName = state\n ? `--${componentPrefix}-${baseProp}-${variantKebab}-${state}-${breakpoint}`\n : `--${componentPrefix}-${baseProp}-${variantKebab}-${breakpoint}`;\n\n sections.push(` ${cssVarName}: ${propValue};`);\n }\n }\n });\n }\n });\n }\n });\n }\n\n // Process component-level breakpoint-scoped tokens\n breakpointKeys.forEach((breakpoint) => {\n const breakpointProps = componentProps[breakpoint];\n if (breakpointProps && typeof breakpointProps === 'object') {\n Object.entries(breakpointProps).forEach(([propKey, propValue]) => {\n if (propValue !== undefined) {\n const cssVarName = camelToKebab(propKey);\n sections.push(` --${componentPrefix}-${cssVarName}-${breakpoint}: ${propValue};`);\n }\n });\n }\n });\n }\n });\n\n sections.push('}');\n darkSections.push('}');\n\n // Close all size sections\n Object.values(sizeSections).forEach((sizeSection) => {\n sizeSection.push('}');\n });\n\n // Only include dark mode section if there are actual overrides\n const hasDarkContent = darkSections.length > 3; // More than just opening, comment, and closing\n const hasSizeContent = Object.keys(sizeSections).length > 0;\n\n let result = sections.join('\\n');\n\n if (hasDarkContent) {\n result += '\\n\\n' + darkSections.join('\\n');\n }\n\n if (hasSizeContent) {\n Object.values(sizeSections).forEach((sizeSection) => {\n result += '\\n\\n' + sizeSection.join('\\n');\n });\n }\n\n return result;\n}\n\n/**\n * Applies theme to document by injecting CSS\n */\nexport function applyTheme(theme: ThemeConfig, themeName?: string): void {\n const selector = themeName ? `[data-theme=\"${themeName}\"]` : ':root';\n const css = generateThemeCSS(theme, selector);\n\n // Remove existing theme style if it exists\n const existingStyle = document.getElementById(`theme-${theme.name}`);\n if (existingStyle) {\n existingStyle.remove();\n }\n\n // Create and inject new theme style\n const style = document.createElement('style');\n style.id = `theme-${theme.name}`;\n style.textContent = css;\n document.head.appendChild(style);\n}\n\n/**\n * Sets theme attribute on document element\n */\nexport function setThemeAttribute(themeName: string): void {\n document.documentElement.setAttribute('data-theme', themeName);\n}\n","/**\n * React context for theme management\n * Optimized for single-theme tenant sites\n */\n\nimport React, { createContext, useContext, useEffect, ReactNode } from 'react';\nimport { ThemeConfig, ThemeVariant } from './types';\nimport { defaultTheme } from '../presets/default';\nimport { generateThemeCSS } from '../utils/generator';\n\n/**\n * Converts theme config to CSS custom properties and injects them\n */\nfunction applyThemeCSS(theme: ThemeConfig, themeName: string): void {\n const style = document.getElementById(`theme-${themeName}`) || document.createElement('style');\n style.id = `theme-${themeName}`;\n\n const selector = `[data-theme=\"${themeName}\"]`;\n\n // Handle both single URL and array of URLs\n let fontImport = '';\n if (theme.fontImportUrl) {\n const urls = Array.isArray(theme.fontImportUrl) ? theme.fontImportUrl : [theme.fontImportUrl];\n fontImport = urls.map((url) => `@import url('${url}');`).join('\\n ');\n }\n\n const css = `\n ${fontImport}\n ${generateThemeCSS(theme, selector)}\n `;\n\n style.textContent = css;\n if (!document.head.contains(style)) {\n document.head.appendChild(style);\n }\n}\n\ninterface ThemeContextValue {\n currentTheme: ThemeConfig;\n themeName: ThemeVariant;\n}\n\nconst ThemeContext = createContext<ThemeContextValue | undefined>(undefined);\n\ninterface ThemeProviderProps {\n children: ReactNode;\n initialTheme?: ThemeConfig;\n initialThemeName?: ThemeVariant;\n}\n\n/**\n * Theme provider optimized for single-theme tenant sites\n * Sets theme once on mount - no runtime switching needed\n */\nexport function ThemeProvider({\n children,\n initialTheme = defaultTheme,\n initialThemeName = 'default',\n}: ThemeProviderProps) {\n // Apply theme CSS and set data attribute on mount\n useEffect(() => {\n applyThemeCSS(initialTheme, initialThemeName);\n document.documentElement.setAttribute('data-theme', initialThemeName);\n }, [initialTheme, initialThemeName]);\n\n const value: ThemeContextValue = {\n currentTheme: initialTheme,\n themeName: initialThemeName,\n };\n\n return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;\n}\n\n/**\n * Hook to access current theme (read-only for tenant sites)\n */\nexport function useTheme(): ThemeContextValue {\n const context = useContext(ThemeContext);\n if (!context) {\n throw new Error('useTheme must be used within a ThemeProvider');\n }\n return context;\n}\n","/**\n * Client-side theme provider wrapper\n * This component can be used in any React application\n */\n\nimport { ThemeProvider as BaseThemeProvider } from './context';\nexport { useTheme } from './context';\n\n// Re-export the theme provider\nexport const ThemeProvider = BaseThemeProvider;\n","import React from 'react';\nimport './Button.scss';\nimport { getButtonIcon } from './buttonIcons';\nimport { ButtonVariantType } from '@/themes/core/types';\nimport { useTheme } from '@/themes/core/client-provider';\nimport { toKebabCase } from '@/themes/utils/helpers';\n\n// Re-export for convenience\nexport type ButtonType = ButtonVariantType;\n\nexport type ColorPalette = 'primary' | 'secondary' | 'accent' | 'tertiary';\n\nexport interface ButtonProps {\n /** Button variant type */\n buttonType?: ButtonType;\n /** Color palette to apply */\n palette?: ColorPalette;\n /** Button label text */\n label?: string;\n /** Icon element */\n icon?: React.ReactNode;\n /** Icon to show on hover (optional) */\n hoverIcon?: React.ReactNode;\n /** Allow passing classname to component */\n className?: string;\n /** Custom styles */\n style?: React.CSSProperties;\n /** Child elements */\n children?: React.ReactNode;\n /** Disabled state */\n disabled?: boolean;\n /** Dark mode - applies dark mode styling for use on dark backgrounds */\n darkMode?: boolean;\n /** Size variant - controls button dimensions and spacing */\n size?: 'sm' | 'md' | 'lg';\n /** Enable/disable hover animation - overrides theme default */\n animated?: boolean;\n /** Click handler */\n onClick?: () => void;\n}\n\n/** Primary UI component for user interaction */\n\nexport const Button = ({\n buttonType = 'general',\n palette,\n label,\n icon,\n hoverIcon,\n className,\n children,\n style,\n disabled = false,\n darkMode = false,\n size = 'md',\n animated,\n onClick,\n ...props\n}: ButtonProps) => {\n const { currentTheme } = useTheme();\n const buttonClass = `button button--${toKebabCase(buttonType)} ${className || ''}`;\n const iconConfig = getButtonIcon(buttonType, icon, hoverIcon, currentTheme?.name);\n\n const paletteStyle = palette\n ? {\n backgroundColor: `var(--${palette})`,\n color: `var(--${palette}-text)`,\n borderColor: `var(--${palette})`,\n ...style,\n }\n : style;\n\n return (\n <button\n type=\"button\"\n className={buttonClass}\n data-dark-mode={darkMode ? 'true' : undefined}\n data-size={size}\n data-animated={animated !== undefined ? (animated ? 'true' : 'false') : undefined}\n style={paletteStyle}\n onClick={onClick}\n disabled={disabled}\n {...props}\n >\n {children || label}\n {iconConfig &&\n (iconConfig.hover ? (\n <>\n <span className=\"icon icon--regular\">{iconConfig.regular}</span>\n <span className=\"icon icon--hover\">{iconConfig.hover}</span>\n </>\n ) : (\n <span className=\"icon\">{iconConfig.regular}</span>\n ))}\n </button>\n );\n};\n","import React from 'react';\nimport { ButtonType } from '../Button/Button';\nimport '../Button/Button.scss';\n\nexport interface ButtonLinkProps {\n /** Button variant type */\n buttonType?: ButtonType;\n /** Button label text */\n label?: string;\n /** Icon element */\n icon?: React.ReactNode;\n /** Link URL */\n href: string;\n /** Link target */\n target?: '_blank' | '_self';\n /** Allow passing classname to component */\n className?: string;\n /** Custom styles */\n style?: React.CSSProperties;\n /** Child elements */\n children?: React.ReactNode;\n /** Disabled state */\n disabled?: boolean;\n /** Size variant */\n size?: 'sm' | 'md' | 'lg';\n /** Dark mode styling */\n darkMode?: boolean;\n /** ARIA label */\n 'aria-label'?: string;\n /** Test ID */\n 'data-testid'?: string;\n}\n\n/** Button-styled link component for navigation */\nexport const ButtonLink = ({\n buttonType = 'general',\n label,\n icon,\n href,\n target = '_self',\n className,\n children,\n style,\n disabled = false,\n size = 'md',\n darkMode = false,\n ...props\n}: ButtonLinkProps) => {\n const buttonClass = `button button--${buttonType} ${className || ''}`;\n const rel = target === '_blank' ? 'noopener noreferrer' : undefined;\n\n if (disabled) {\n return (\n <span\n className={buttonClass}\n data-size={size}\n data-dark-mode={darkMode || undefined}\n style={style}\n aria-disabled=\"true\"\n {...props}\n >\n {children || label} {icon && <span className=\"icon\">{icon}</span>}\n </span>\n );\n }\n\n return (\n <a\n href={href}\n target={target}\n rel={rel}\n className={buttonClass}\n data-size={size}\n data-dark-mode={darkMode || undefined}\n style={style}\n {...props}\n >\n {children || label} {icon && <span className=\"icon\">{icon}</span>}\n </a>\n );\n};\n","import React from 'react';\nimport './BackgroundMedia.scss';\n\nexport interface BackgroundMediaProps {\n /** Video URL for video background */\n videoUrl?: string;\n /** Image URL for image background */\n imageUrl?: string;\n /** CSS gradient overlay */\n gradient?: string;\n /** Background color */\n bgColor?: string;\n /** Custom CSS class */\n className?: string;\n /** Inline styles */\n style?: React.CSSProperties;\n}\n\n/** Background media component supporting image or video */\nexport const BackgroundMedia: React.FC<BackgroundMediaProps> = ({\n videoUrl,\n imageUrl,\n gradient,\n bgColor,\n className,\n style,\n}) => {\n const baseClasses = ['background-media', className].filter(Boolean).join(' ');\n\n if (videoUrl) {\n return (\n <video className={`${baseClasses} background-media--video`} autoPlay muted loop playsInline style={style}>\n <source src={videoUrl} type=\"video/mp4\" />\n Your browser does not support video.\n </video>\n );\n }\n\n const backgroundStyle: React.CSSProperties = {\n backgroundImage: gradient ? `${gradient}, url(${imageUrl})` : imageUrl ? `url(${imageUrl})` : undefined,\n backgroundColor: bgColor,\n ...style,\n };\n\n return <div className={baseClasses} style={backgroundStyle} />;\n};\n","import React, { useRef, useEffect, useState } from 'react';\nimport './Media.scss';\n\nconst WISTIA_SCRIPT_ID = 'wistia-external-script';\nconst WISTIA_SCRIPT_SRC = 'https://fast.wistia.com/assets/external/E-v1.js';\n\n/** Extract Wistia video ID from various URL formats */\nfunction extractWistiaId(url: string): string | null {\n const match = url.match(/(?:medias|iframe)\\/([a-zA-Z0-9]+)/) || url.match(/wi\\.st\\/medias\\/([a-zA-Z0-9]+)/);\n return match?.[1] ?? null;\n}\n\n/** Check if a URL is a Wistia video */\nfunction isWistiaUrl(url: string): boolean {\n return /wistia\\.(com|net)/i.test(url) || /wi\\.st/i.test(url);\n}\n\nexport interface VideoProviderConfig {\n /** Unique provider key */\n name: string;\n /** Test if a URL belongs to this provider */\n match: (url: string) => boolean;\n /** Build the embed URL for the iframe */\n buildEmbedUrl: (url: string, options?: VideoProviderOptions) => string;\n}\n\nexport interface VideoProviderOptions {\n autoplay?: boolean;\n controls?: boolean;\n muted?: boolean;\n loop?: boolean;\n}\n\n/**\n * Resolve a URL to a custom provider and build the embed URL.\n * Wistia is handled natively (async embed), so only custom providers are checked here.\n */\nfunction resolveCustomProvider(\n url: string,\n providers: VideoProviderConfig[],\n options: VideoProviderOptions\n): { type: 'embed'; embedUrl: string; providerName: string } | { type: 'native' } {\n for (const provider of providers) {\n if (provider.match(url)) {\n return {\n type: 'embed',\n embedUrl: provider.buildEmbedUrl(url, options),\n providerName: provider.name,\n };\n }\n }\n return { type: 'native' };\n}\n\nexport type MediaType = 'image' | 'video';\nexport type ObjectFit = 'cover' | 'contain' | 'fill' | 'none' | 'scale-down';\n\nexport interface MediaProps {\n /** Media source URL (image path, video file, or embed URL like Wistia) */\n src: string;\n /** Force media type. Auto-detected if omitted. */\n type?: MediaType;\n /** Alt text for images, title for video iframes */\n alt?: string;\n /** How the media fills its container */\n objectFit?: ObjectFit;\n /** Object position (e.g. \"center top\") */\n objectPosition?: string;\n /** Aspect ratio (e.g. \"16/9\", \"4/3\", \"1/1\"). If omitted, media fills container height. */\n aspectRatio?: string;\n /** Autoplay video (muted by default for browser compliance) */\n autoplay?: boolean;\n /** Show video controls */\n controls?: boolean;\n /** Loop video playback */\n loop?: boolean;\n /** Mute video. Defaults to true when autoplay is enabled. */\n muted?: boolean;\n /** Lazy load media */\n loading?: 'lazy' | 'eager';\n /** Image srcSet for responsive images */\n srcSet?: string;\n /** Image sizes attribute */\n sizes?: string;\n /** Additional video providers (YouTube, Vimeo, etc.) */\n providers?: VideoProviderConfig[];\n /** Dark mode styling */\n darkMode?: boolean;\n /** Additional CSS class */\n className?: string;\n /** Inline styles */\n style?: React.CSSProperties;\n /** Callback when media loads / Wistia is ready */\n onLoad?: () => void;\n /** Callback on load error */\n onError?: () => void;\n /** Callback when Wistia video is ready — receives the Wistia video handle for programmatic control */\n onReady?: (videoHandle: any) => void;\n}\n\n/** Detect media type from URL if not explicitly provided */\nfunction detectMediaType(src: string): MediaType {\n const imageExts = /\\.(jpg|jpeg|png|gif|webp|avif|svg|bmp|ico)(\\?.*)?$/i;\n if (imageExts.test(src)) return 'image';\n return 'video';\n}\n\n/** Atom component for rendering images or videos (native, Wistia async embed, or custom providers) */\nexport const Media: React.FC<MediaProps> = ({\n src,\n type,\n alt = '',\n objectFit = 'cover',\n objectPosition,\n aspectRatio,\n autoplay = false,\n controls = true,\n loop = false,\n muted,\n loading = 'lazy',\n srcSet,\n sizes,\n providers = [],\n darkMode = false,\n className,\n style,\n onLoad,\n onError,\n onReady,\n}) => {\n const videoRef = useRef<HTMLVideoElement>(null);\n const wistiaDivRef = useRef<HTMLDivElement | null>(null);\n const [isClient, setIsClient] = useState(false);\n const [isWistiaReady, setIsWistiaReady] = useState(false);\n\n const resolvedType = type ?? detectMediaType(src);\n const resolvedMuted = muted ?? autoplay;\n const wistiaId = resolvedType === 'video' ? extractWistiaId(src) : null;\n const isWistia = resolvedType === 'video' && isWistiaUrl(src) && !!wistiaId;\n\n // SSR guard\n useEffect(() => {\n setIsClient(true);\n }, []);\n\n // Wistia: load script and register onReady\n useEffect(() => {\n if (!isClient || !isWistia || !wistiaId) return;\n\n // Inject Wistia E-v1 script once\n if (!document.getElementById(WISTIA_SCRIPT_ID)) {\n const script = document.createElement('script');\n script.id = WISTIA_SCRIPT_ID;\n script.src = WISTIA_SCRIPT_SRC;\n script.async = true;\n document.body.appendChild(script);\n }\n\n // Register with Wistia queue\n (window as any)._wq = (window as any)._wq || [];\n (window as any)._wq.push({\n id: wistiaId,\n onReady: (video: any) => {\n setIsWistiaReady(true);\n onReady?.(video);\n onLoad?.();\n },\n });\n }, [isClient, isWistia, wistiaId, onLoad, onReady]);\n\n // Autoplay native videos after mount\n useEffect(() => {\n if (resolvedType === 'video' && !isWistia && autoplay && videoRef.current) {\n videoRef.current.play().catch(() => {\n // Autoplay blocked by browser — silent fail\n });\n }\n }, [resolvedType, isWistia, autoplay, src]);\n\n const baseClass = 'media';\n const classes = [baseClass, `${baseClass}--${resolvedType}`, className].filter(Boolean).join(' ');\n\n const cssVars: React.CSSProperties = {\n ...(objectFit && ({ '--media-object-fit': objectFit } as React.CSSProperties)),\n ...(objectPosition && ({ '--media-object-position': objectPosition } as React.CSSProperties)),\n ...(aspectRatio && ({ '--media-aspect-ratio': aspectRatio } as React.CSSProperties)),\n ...style,\n };\n\n if (resolvedType === 'image') {\n return (\n <div className={classes} style={cssVars} data-dark-mode={darkMode || undefined}>\n <img\n className={`${baseClass}__image`}\n src={src}\n alt={alt}\n loading={loading}\n srcSet={srcSet}\n sizes={sizes}\n onLoad={onLoad}\n onError={onError}\n />\n </div>\n );\n }\n\n if (isWistia && wistiaId) {\n // Build Wistia embed options via class names\n const wistiaOptions = [\n `wistia_embed`,\n `wistia_async_${wistiaId}`,\n !controls && 'controlsVisibleOnLoad=false',\n !controls && 'playbar=false',\n !controls && 'playPauseNotifier=false',\n !controls && 'settingsControl=false',\n !controls && 'fullscreenButton=false',\n !controls && 'volumeControl=false',\n !controls && 'smallPlayButton=false',\n autoplay && 'autoPlay=true',\n resolvedMuted && 'muted=true',\n loop && 'endVideoBehavior=loop',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div\n className={`${classes} ${baseClass}--provider-wistia`}\n style={cssVars}\n data-dark-mode={darkMode || undefined}\n >\n {isClient && (\n <div\n ref={wistiaDivRef}\n className={`${wistiaOptions} ${baseClass}__wistia`}\n style={{\n width: '100%',\n height: '100%',\n visibility: isWistiaReady ? 'visible' : 'hidden',\n }}\n />\n )}\n </div>\n );\n }\n\n const providerResult = resolveCustomProvider(src, providers, {\n autoplay,\n controls,\n muted: resolvedMuted,\n loop,\n });\n\n if (providerResult.type === 'embed') {\n return (\n <div\n className={`${classes} ${baseClass}--provider-${providerResult.providerName}`}\n style={cssVars}\n data-dark-mode={darkMode || undefined}\n >\n <iframe\n className={`${baseClass}__iframe`}\n src={providerResult.embedUrl}\n title={alt || 'Video'}\n allow=\"autoplay; fullscreen; encrypted-media; picture-in-picture\"\n allowFullScreen\n loading={loading}\n onLoad={onLoad}\n onError={onError}\n />\n </div>\n );\n }\n\n return (\n <div className={classes} style={cssVars} data-dark-mode={darkMode || undefined}>\n <video\n ref={videoRef}\n className={`${baseClass}__video`}\n src={src}\n autoPlay={autoplay}\n controls={controls}\n loop={loop}\n muted={resolvedMuted}\n playsInline\n onLoadedData={onLoad}\n onError={onError}\n />\n </div>\n );\n};\n","import React from 'react';\nimport './Breadcrumb.scss';\n\nexport interface BreadcrumbItem {\n label: string;\n href?: string;\n}\n\nexport interface BreadcrumbProps {\n items: BreadcrumbItem[];\n separator?: string;\n darkMode?: boolean;\n className?: string;\n}\n\nexport const Breadcrumb: React.FC<BreadcrumbProps> = ({ items, separator = '/', darkMode = false, className = '' }) => {\n return (\n <nav className={`breadcrumb ${className}`} aria-label=\"Breadcrumb\" data-dark-mode={darkMode || undefined}>\n <ol className=\"breadcrumb__list\">\n {items.map((item, index) => {\n const isLast = index === items.length - 1;\n\n return (\n <li key={index} className=\"breadcrumb__item\">\n {item.href && !isLast ? (\n <a href={item.href} className=\"breadcrumb__link\">\n {item.label}\n </a>\n ) : (\n <span className=\"breadcrumb__text\" aria-current={isLast ? 'page' : undefined}>\n {item.label}\n </span>\n )}\n {!isLast && (\n <span className=\"breadcrumb__separator\" aria-hidden=\"true\">\n {separator}\n </span>\n )}\n </li>\n );\n })}\n </ol>\n </nav>\n );\n};\n","import React from 'react';\nimport './Divider.scss';\n\nexport type ShapeDivider = 'top' | 'bottom' | 'both' | 'none';\n\nexport interface DividerProps {\n children?: React.ReactNode;\n backgroundColor?: string;\n backgroundImage?: string;\n backgroundPattern?: 'dots' | 'grid' | 'sparks' | 'none';\n shapeDivider?: ShapeDivider;\n shapeColor?: string;\n className?: string;\n padding?: string;\n height?: string;\n verticalAlign?: 'top' | 'center' | 'bottom';\n darkMode?: boolean;\n /** Control overflow behavior — defaults to 'hidden' */\n overflow?: 'hidden' | 'visible';\n}\n\nexport const Divider: React.FC<DividerProps> = ({\n children,\n backgroundColor,\n backgroundImage,\n backgroundPattern = 'none',\n shapeDivider = 'none',\n shapeColor = '#ffffff',\n className = '',\n padding,\n height,\n verticalAlign = 'top',\n darkMode = false,\n overflow,\n}) => {\n const dividerClasses = [\n 'divider',\n `divider--divider-${shapeDivider}`,\n backgroundPattern !== 'none' && `divider--pattern-${backgroundPattern}`,\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const style: React.CSSProperties = {\n ...(backgroundColor && ({ '--divider-bg': backgroundColor } as React.CSSProperties)),\n ...(backgroundImage &&\n ({\n '--divider-bg-image': `url(${backgroundImage})`,\n } as React.CSSProperties)),\n ...(padding && ({ '--divider-padding': padding } as React.CSSProperties)),\n ...(height && ({ '--divider-height': height } as React.CSSProperties)),\n ...(verticalAlign && ({ '--divider-vertical-align': verticalAlign } as React.CSSProperties)),\n ...(shapeColor && ({ '--divider-shape-color': shapeColor } as React.CSSProperties)),\n ...(overflow && ({ '--divider-overflow': overflow } as React.CSSProperties)),\n };\n\n return (\n <div className={dividerClasses} style={style} data-dark-mode={darkMode || undefined} data-test=\"test\">\n {/* Background layer — receives clip-path from shape dividers */}\n <div className=\"divider__bg\" />\n {/* Content layer — unclipped so decorative elements (sparkles) aren't cut off */}\n <div className=\"divider__content\">{children}</div>\n </div>\n );\n};\n","import React from 'react';\nimport './Container.scss';\n\nexport interface ContainerProps {\n children?: React.ReactNode;\n /** Full-width container with no max-width constraint */\n fluid?: boolean;\n /** Additional CSS class name */\n className?: string;\n /** HTML element to render — defaults to div */\n as?: React.ElementType;\n /** Inline styles */\n style?: React.CSSProperties;\n}\n\nexport const Container: React.FC<ContainerProps> = ({\n children,\n fluid = false,\n className = '',\n as: Tag = 'div',\n style,\n}) => {\n const classes = [fluid ? 'container-fluid' : 'container', className].filter(Boolean).join(' ');\n\n return (\n <Tag className={classes} style={style}>\n {children}\n </Tag>\n );\n};\n","import React from 'react';\nimport type { SemanticColorTokens } from '@/themes/core/color-system';\nimport { toKebabCase } from '@/themes/utils/helpers';\nimport './Heading.scss';\n\nexport type HeadingLevel = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\nexport type ColorPalette = 'primary' | 'secondary' | 'accent' | 'tertiary';\nexport type HeadingWeight = 'light' | 'regular' | 'semibold' | 'bold' | 'black';\nexport type HeadingSize = '2xl' | 'xl' | 'lg' | 'md' | 'sm' | 'xs';\n\n// Variant type is now flexible - accepts any string\n// The actual available variants are defined in the theme\nexport type HeadingVariant = string;\n\n// Color type derives from SemanticColorTokens keys\n// Automatically converts camelCase to kebab-case for CSS variables\nexport type HeadingColor = keyof SemanticColorTokens;\n\nexport interface HeadingProps {\n /** Heading level (semantic HTML tag) */\n level?: HeadingLevel;\n /** Visual style variant (independent of semantic level) - defined by theme */\n variant?: HeadingVariant;\n /** Font weight (maps to --tier1-theme-typography-font-weight-*) */\n weight?: HeadingWeight;\n /** Font size (maps to --tier1-theme-typography-font-size-*) */\n size?: HeadingSize;\n /** Color from theme semantic tokens */\n color?: HeadingColor;\n /** Color palette to apply (background + text) */\n palette?: ColorPalette;\n /** Dark mode - applies dark mode styling for use on dark backgrounds */\n darkMode?: boolean;\n /** Heading text */\n children: React.ReactNode;\n /** Custom CSS class */\n className?: string;\n /** Inline styles */\n style?: React.CSSProperties;\n}\n\n/**\n * Heading component with configurable level and visual variants\n * Supports responsive typography through CSS custom properties\n */\nexport const Heading: React.FC<HeadingProps> = ({\n level = 'h2',\n variant,\n weight,\n size,\n color,\n palette,\n darkMode = false,\n children,\n className,\n style,\n}) => {\n const Tag = level;\n\n // Apply palette, color, weight, and size\n let finalStyle = style;\n\n if (palette) {\n finalStyle = {\n ...style,\n backgroundColor: `var(--${palette})`,\n color: `var(--${palette}-text)`,\n padding: style?.padding || '0.5rem 1rem',\n borderRadius: style?.borderRadius || '4px',\n };\n } else if (color) {\n finalStyle = {\n ...style,\n color: `var(--${toKebabCase(color as string)})`,\n };\n }\n\n // Apply weight and size using theme typography tokens\n if (weight) {\n finalStyle = {\n ...finalStyle,\n fontWeight: `var(--tier1-theme-typography-font-weight-${weight})`,\n };\n }\n\n if (size) {\n finalStyle = {\n ...finalStyle,\n fontSize: `var(--tier1-theme-typography-font-size-${size === '2xl' ? '2xl' : size})`,\n };\n }\n\n const headingClasses = ['heading', `heading--${level}`, variant && `heading--variant-${variant}`, className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <Tag className={headingClasses} style={finalStyle} data-dark-mode={darkMode ? 'true' : undefined}>\n {children}\n </Tag>\n );\n};\n","import React from 'react';\nimport './Grid.scss';\n\nexport interface GridProps {\n /** Number of columns (default: 12). Use a string for custom grid-template-columns (e.g. \"1fr auto\") */\n columns?:\n | number\n | string\n | { sm?: number | string; md?: number | string; lg?: number | string; xl?: number | string };\n /** Gap between grid items */\n gap?: string | { xs?: string; sm?: string; md?: string; lg?: string; xl?: string };\n /** Row gap (if different from column gap) */\n rowGap?: string | { sm?: string; md?: string; lg?: string; xl?: string };\n /** Column gap (if different from row gap) */\n columnGap?: string | { sm?: string; md?: string; lg?: string; xl?: string };\n /** Minimum column width (auto-fit behavior) */\n minColumnWidth?: string;\n /** Maximum column width */\n maxColumnWidth?: string;\n /** Align items vertically */\n alignItems?: 'start' | 'center' | 'end' | 'stretch';\n /** Justify items horizontally (aligns content inside each grid cell) */\n justifyItems?: 'start' | 'center' | 'end' | 'stretch';\n /** Justify content (aligns the entire grid within the container) */\n justifyContent?: 'start' | 'center' | 'end' | 'space-between' | 'space-around' | 'space-evenly';\n /** Column alignment (left, center, right) - controls entire grid position */\n columnAlign?: 'left' | 'center' | 'right';\n /** Custom className */\n className?: string;\n /** Custom styles */\n style?: React.CSSProperties;\n /** Children elements */\n children: React.ReactNode;\n /** Full width grid */\n fullWidth?: boolean;\n}\n\nexport interface GridItemProps {\n /** Column span - use \"auto\" to fit content width */\n colSpan?:\n | number\n | 'auto'\n | { sm?: number | 'auto'; md?: number | 'auto'; lg?: number | 'auto'; xl?: number | 'auto' };\n /** Row span - use \"auto\" to fit content height */\n rowSpan?:\n | number\n | 'auto'\n | { sm?: number | 'auto'; md?: number | 'auto'; lg?: number | 'auto'; xl?: number | 'auto' };\n /** Column start position */\n colStart?: number | { sm?: number; md?: number; lg?: number; xl?: number };\n /** Row start position */\n rowStart?: number | { sm?: number; md?: number; lg?: number; xl?: number };\n /** Gap between grid items */\n gap?: string | { sm?: string; md?: string; lg?: string; xl?: string };\n /** Row gap (if different from column gap) */\n rowGap?: string | { sm?: string; md?: string; lg?: string; xl?: string };\n /** Column gap (if different from row gap) */\n columnGap?: string | { sm?: string; md?: string; lg?: string; xl?: string };\n /** Custom className */\n className?: string;\n /** Custom styles */\n style?: React.CSSProperties;\n /** Children elements */\n children: React.ReactNode;\n}\n\nexport const Grid = ({\n columns = 12,\n gap,\n rowGap,\n columnGap,\n minColumnWidth,\n maxColumnWidth,\n alignItems,\n justifyItems,\n justifyContent,\n columnAlign,\n className = '',\n style = {},\n children,\n fullWidth = false,\n}: GridProps) => {\n const gridClass = `grid ${fullWidth ? 'grid--full-width' : ''} ${className}`;\n\n // Map columnAlign to justifyContent (aligns entire grid)\n const resolvedJustifyContent = columnAlign\n ? columnAlign === 'left'\n ? 'start'\n : columnAlign === 'right'\n ? 'end'\n : 'center'\n : justifyContent;\n\n // Build inline styles for responsive behavior\n const gridStyles: Record<string, string | number | undefined> = {\n ...style,\n alignItems,\n justifyItems,\n justifyContent: resolvedJustifyContent,\n };\n\n // Handle columns with automatic responsive defaults\n if (typeof columns === 'number') {\n // Set the base column count\n gridStyles['--grid-columns'] = columns.toString();\n\n // Auto-generate responsive breakpoints only when not using minColumnWidth\n // (minColumnWidth creates its own responsive behavior via auto-fit)\n if (!minColumnWidth) {\n // Mobile: 1 column for 3+ columns, preserve original for 1-2 columns\n if (columns >= 3) {\n gridStyles['--grid-columns-sm'] = '1';\n }\n\n // Tablet: 2 columns for 3+ columns, preserve original for 1-2 columns\n if (columns >= 3) {\n gridStyles['--grid-columns-md'] = '2';\n }\n\n // Desktop: use the specified column count\n gridStyles['--grid-columns-lg'] = columns.toString();\n }\n } else if (typeof columns === 'string') {\n // Custom grid-template-columns string (e.g., \"1fr auto\")\n gridStyles.gridTemplateColumns = columns;\n } else if (columns) {\n // Manual responsive control - user provides breakpoint values\n if (columns.sm !== undefined) {\n if (typeof columns.sm === 'string') {\n gridStyles['--grid-template-columns-sm'] = columns.sm;\n } else {\n gridStyles['--grid-columns-sm'] = columns.sm.toString();\n }\n }\n if (columns.md !== undefined) {\n if (typeof columns.md === 'string') {\n gridStyles['--grid-template-columns-md'] = columns.md;\n } else {\n gridStyles['--grid-columns-md'] = columns.md.toString();\n }\n }\n if (columns.lg !== undefined) {\n if (typeof columns.lg === 'string') {\n gridStyles['--grid-template-columns-lg'] = columns.lg;\n } else {\n gridStyles['--grid-columns-lg'] = columns.lg.toString();\n }\n }\n if (columns.xl !== undefined) {\n if (typeof columns.xl === 'string') {\n gridStyles['--grid-template-columns-xl'] = columns.xl;\n } else {\n gridStyles['--grid-columns-xl'] = columns.xl.toString();\n }\n } else if (columns.lg !== undefined) {\n // xl inherits from lg when not explicitly set\n if (typeof columns.lg === 'string') {\n gridStyles['--grid-template-columns-xl'] = columns.lg;\n } else {\n gridStyles['--grid-columns-xl'] = columns.lg.toString();\n }\n }\n }\n\n // Handle min/max column width for auto-fit\n if (minColumnWidth) {\n gridStyles['--grid-min-column-width'] = minColumnWidth;\n }\n if (maxColumnWidth) {\n gridStyles['--grid-max-column-width'] = maxColumnWidth;\n }\n\n // Handle gaps - use theme tokens as fallback\n if (gap) {\n if (typeof gap === 'string') {\n // Map t-shirt sizes to grid component tokens\n const gapMap: Record<string, string> = {\n xs: 'var(--grid-gap-xs)',\n sm: 'var(--grid-gap-sm)',\n md: 'var(--grid-gap-md)',\n lg: 'var(--grid-gap-lg)',\n xl: 'var(--grid-gap-xl)',\n xxl: 'var(--grid-gap-xxl)',\n };\n gridStyles.gap = gapMap[gap] || gap;\n } else {\n if (gap.sm) gridStyles['--grid-gap-sm'] = gap.sm;\n if (gap.md) gridStyles['--grid-gap-md'] = gap.md;\n if (gap.lg) gridStyles['--grid-gap-lg'] = gap.lg;\n gridStyles['--grid-gap-xl'] = gap.xl || gap.lg || gap.md || gap.sm || '2rem';\n }\n } else {\n // Use theme tokens when no gap prop is provided\n gridStyles['--grid-gap-sm'] = 'var(--grid-gap-mobile, 1rem)';\n gridStyles['--grid-gap-md'] = 'var(--grid-gap-tablet, 1.5rem)';\n gridStyles['--grid-gap-lg'] = 'var(--grid-gap, 2rem)';\n gridStyles['--grid-gap-xl'] = 'var(--grid-gap, 2rem)';\n }\n\n if (rowGap) {\n if (typeof rowGap === 'string') {\n gridStyles.rowGap = rowGap;\n } else {\n if (rowGap.sm) gridStyles['--grid-row-gap-sm'] = rowGap.sm;\n if (rowGap.md) gridStyles['--grid-row-gap-md'] = rowGap.md;\n if (rowGap.lg) gridStyles['--grid-row-gap-lg'] = rowGap.lg;\n gridStyles['--grid-row-gap-xl'] = rowGap.xl || rowGap.lg || rowGap.md || rowGap.sm || '2rem';\n }\n }\n\n if (columnGap) {\n if (typeof columnGap === 'string') {\n gridStyles.columnGap = columnGap;\n } else {\n if (columnGap.sm) gridStyles['--grid-column-gap-sm'] = columnGap.sm;\n if (columnGap.md) gridStyles['--grid-column-gap-md'] = columnGap.md;\n if (columnGap.lg) gridStyles['--grid-column-gap-lg'] = columnGap.lg;\n gridStyles['--grid-column-gap-xl'] = columnGap.xl || columnGap.lg || columnGap.md || columnGap.sm || '2rem';\n }\n }\n\n return (\n <div className={gridClass} style={gridStyles as React.CSSProperties}>\n {children}\n </div>\n );\n};\n\nexport const GridItem = ({\n colSpan,\n rowSpan,\n colStart,\n rowStart,\n gap,\n rowGap,\n columnGap,\n className = '',\n style = {},\n children,\n}: GridItemProps) => {\n const itemStyles: Record<string, string | number | undefined> = { ...style };\n\n // Handle column span\n if (typeof colSpan === 'number') {\n itemStyles.gridColumn = `span ${colSpan}`;\n } else if (colSpan === 'auto') {\n itemStyles.gridColumn = 'auto';\n } else if (colSpan) {\n if (colSpan.sm) itemStyles['--grid-col-span-sm'] = colSpan.sm === 'auto' ? 'auto' : colSpan.sm.toString();\n if (colSpan.md) itemStyles['--grid-col-span-md'] = colSpan.md === 'auto' ? 'auto' : colSpan.md.toString();\n if (colSpan.lg) itemStyles['--grid-col-span-lg'] = colSpan.lg === 'auto' ? 'auto' : colSpan.lg.toString();\n if (colSpan.xl) itemStyles['--grid-col-span-xl'] = colSpan.xl === 'auto' ? 'auto' : colSpan.xl.toString();\n }\n\n // Handle row span\n if (typeof rowSpan === 'number') {\n itemStyles.gridRow = `span ${rowSpan}`;\n } else if (rowSpan === 'auto') {\n itemStyles.gridRow = 'auto';\n } else if (rowSpan) {\n if (rowSpan.sm) itemStyles['--grid-row-span-sm'] = rowSpan.sm === 'auto' ? 'auto' : rowSpan.sm.toString();\n if (rowSpan.md) itemStyles['--grid-row-span-md'] = rowSpan.md === 'auto' ? 'auto' : rowSpan.md.toString();\n if (rowSpan.lg) itemStyles['--grid-row-span-lg'] = rowSpan.lg === 'auto' ? 'auto' : rowSpan.lg.toString();\n if (rowSpan.xl) itemStyles['--grid-row-span-xl'] = rowSpan.xl === 'auto' ? 'auto' : rowSpan.xl.toString();\n }\n\n // Handle column start\n if (typeof colStart === 'number') {\n itemStyles.gridColumnStart = colStart;\n } else if (colStart) {\n if (colStart.sm) itemStyles['--grid-col-start-sm'] = colStart.sm.toString();\n if (colStart.md) itemStyles['--grid-col-start-md'] = colStart.md.toString();\n if (colStart.lg) itemStyles['--grid-col-start-lg'] = colStart.lg.toString();\n if (colStart.xl) itemStyles['--grid-col-start-xl'] = colStart.xl.toString();\n }\n\n // Handle row start\n if (typeof rowStart === 'number') {\n itemStyles.gridRowStart = rowStart;\n } else if (rowStart) {\n if (rowStart.sm) itemStyles['--grid-row-start-sm'] = rowStart.sm.toString();\n if (rowStart.md) itemStyles['--grid-row-start-md'] = rowStart.md.toString();\n if (rowStart.lg) itemStyles['--grid-row-start-lg'] = rowStart.lg.toString();\n if (rowStart.xl) itemStyles['--grid-row-start-xl'] = rowStart.xl.toString();\n }\n\n // Handle gaps\n if (gap) {\n if (typeof gap === 'string') {\n itemStyles.gap = gap;\n } else {\n if (gap.sm) itemStyles['--grid-item-gap-sm'] = gap.sm;\n if (gap.md) itemStyles['--grid-item-gap-md'] = gap.md;\n if (gap.lg) itemStyles['--grid-item-gap-lg'] = gap.lg;\n if (gap.xl) itemStyles['--grid-item-gap-xl'] = gap.xl;\n }\n }\n\n if (rowGap) {\n if (typeof rowGap === 'string') {\n itemStyles.rowGap = rowGap;\n } else {\n if (rowGap.sm) itemStyles['--grid-item-row-gap-sm'] = rowGap.sm;\n if (rowGap.md) itemStyles['--grid-item-row-gap-md'] = rowGap.md;\n if (rowGap.lg) itemStyles['--grid-item-row-gap-lg'] = rowGap.lg;\n if (rowGap.xl) itemStyles['--grid-item-row-gap-xl'] = rowGap.xl;\n }\n }\n\n if (columnGap) {\n if (typeof columnGap === 'string') {\n itemStyles.columnGap = columnGap;\n } else {\n if (columnGap.sm) itemStyles['--grid-item-column-gap-sm'] = columnGap.sm;\n if (columnGap.md) itemStyles['--grid-item-column-gap-md'] = columnGap.md;\n if (columnGap.lg) itemStyles['--grid-item-column-gap-lg'] = columnGap.lg;\n if (columnGap.xl) itemStyles['--grid-item-column-gap-xl'] = columnGap.xl;\n }\n }\n\n return (\n <div className={`grid-item ${className}`} style={itemStyles as React.CSSProperties}>\n {children}\n </div>\n );\n};\n","import React from 'react';\nimport type { SemanticColorTokens } from '@/themes/core/color-system';\nimport { toKebabCase } from '@/themes/utils/helpers';\nimport './Paragraph.scss';\n\nexport type ParagraphElement = 'p' | 'span' | 'div';\nexport type ColorPalette = 'primary' | 'secondary' | 'accent' | 'tertiary';\nexport type ParagraphWeight = 'light' | 'regular' | 'semibold' | 'bold' | 'black';\nexport type ParagraphSize = '2xl' | 'xl' | 'lg' | 'md' | 'sm' | 'xs';\n\n// Color type derives from SemanticColorTokens keys\nexport type ParagraphColor = keyof SemanticColorTokens;\n\nexport interface ParagraphProps {\n /** Paragraph content - supports text and HTML tags (bold, em, strong, etc) */\n children?: React.ReactNode;\n /** HTML element to render (default: 'p') */\n as?: ParagraphElement;\n /** Font weight (maps to --tier1-theme-typography-font-weight-*) */\n weight?: ParagraphWeight;\n /** Font size (maps to --tier1-theme-typography-font-size-*) */\n size?: ParagraphSize;\n /** Color from theme semantic tokens */\n color?: ParagraphColor;\n /** Color palette to apply (background + text) */\n palette?: ColorPalette;\n /** Dark mode - applies dark mode styling for use on dark backgrounds */\n darkMode?: boolean;\n /** Custom CSS class */\n className?: string;\n /** Inline styles */\n style?: React.CSSProperties;\n /** Render HTML string (use with caution - sanitize external content) */\n dangerouslySetInnerHTML?: { __html: string };\n\n id?: string;\n role?: string;\n}\n\n/**\n * Paragraph component for body text\n * Supports text and HTML tags (bold, em, strong, etc)\n * Integrates with RichText component through shared tokens\n */\nexport const Paragraph: React.FC<ParagraphProps> = ({\n children,\n as = 'p',\n weight,\n size,\n color,\n palette,\n darkMode = false,\n className,\n style,\n dangerouslySetInnerHTML,\n}) => {\n const Tag = as;\n\n // Apply palette and color styling only\n let finalStyle = style;\n\n if (palette) {\n finalStyle = {\n ...style,\n backgroundColor: `var(--${palette})`,\n color: `var(--${palette}-text)`,\n padding: style?.padding || '0.5rem 1rem',\n borderRadius: style?.borderRadius || '4px',\n };\n } else if (color) {\n finalStyle = {\n ...style,\n color: `var(--${toKebabCase(color as string)})`,\n };\n }\n\n // Note: weight and size are handled via data attributes and CSS variables\n // Don't apply inline styles for these - let the component-scoped tokens handle it\n\n const paragraphClasses = ['paragraph', className].filter(Boolean).join(' ');\n\n const commonProps = {\n className: paragraphClasses,\n style: finalStyle,\n 'data-dark-mode': darkMode ? 'true' : undefined,\n 'data-size': size || undefined,\n 'data-weight': weight || undefined,\n };\n\n if (dangerouslySetInnerHTML) {\n return <Tag {...commonProps} dangerouslySetInnerHTML={dangerouslySetInnerHTML} />;\n }\n\n return <Tag {...commonProps}>{children}</Tag>;\n};\n","import React from 'react';\nimport './BulletList.scss';\n\nexport interface BulletItem {\n /** Bullet point text content */\n text: React.ReactNode;\n /** Custom icon override for this specific item */\n icon?: React.ReactNode;\n}\n\nexport interface BulletListProps {\n /** Array of bullet items */\n items: BulletItem[];\n /** Custom icon for all bullet points (overridden by per-item icon) */\n icon?: React.ReactNode;\n /** Dark mode styling */\n darkMode?: boolean;\n /** Additional CSS class */\n className?: string;\n /** Inline styles */\n style?: React.CSSProperties;\n}\n\n/**\n * BulletList atom for rendering styled bullet point lists.\n * Uses component-scoped tokens (--bullet-list-*) for theming.\n * RichText inherits these same tokens for `ul > li` rendering.\n */\n\nconst defaultIcon = (\n <svg\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <circle cx=\"8\" cy=\"8\" r=\"4\" />\n </svg>\n);\n\nexport const BulletList: React.FC<BulletListProps> = ({ items, icon, darkMode = false, className, style }) => {\n const classes = ['bullet-list', className].filter(Boolean).join(' ');\n\n return (\n <ul className={classes} style={style} role=\"list\" data-dark-mode={darkMode ? 'true' : undefined}>\n {items.map((item, index) => {\n const itemIcon = item.icon ?? icon ?? defaultIcon;\n return (\n <li key={index} className=\"bullet-list__item\">\n <span className=\"bullet-list__icon\" aria-hidden=\"true\">\n {itemIcon}\n </span>\n <span className=\"bullet-list__text\">{item.text}</span>\n </li>\n );\n })}\n </ul>\n );\n};\n","import React from 'react';\nimport { Button } from '../../atoms/Button/Button';\nimport './Header.scss';\n\ntype User = {\n name: string;\n};\n\nexport interface HeaderProps {\n user?: User;\n onLogin?: () => void;\n onLogout?: () => void;\n onCreateAccount?: () => void;\n}\n\nexport const Header = ({ user, onLogin, onLogout, onCreateAccount }: HeaderProps) => (\n <header>\n <div className=\"storybook-header\">\n <div>\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" xmlns=\"http://www.w3.org/2000/svg\">\n <g fill=\"none\" fillRule=\"evenodd\">\n <path d=\"M10 0h12a10 10 0 0110 10v12a10 10 0 01-10 10H10A10 10 0 010 22V10A10 10 0 0110 0z\" fill=\"#FFF\" />\n <path d=\"M5.3 10.6l10.4 6v11.1l-10.4-6v-11zm11.4-6.2l9.7 5.5-9.7 5.6V4.4z\" fill=\"#555AB9\" />\n <path d=\"M27.2 10.6v11.2l-10.5 6V16.5l10.5-6zM15.7 4.4v11L6 10l9.7-5.5z\" fill=\"#91BAF8\" />\n </g>\n </svg>\n <h1>Acme</h1>\n </div>\n <div>\n {user ? (\n <>\n <span className=\"welcome\">\n Welcome, <b>{user.name}</b>!\n </span>\n <Button buttonType=\"secondary\" onClick={onLogout} label=\"Log out\" />\n </>\n ) : (\n <>\n <Button buttonType=\"secondary\" onClick={onLogin} label=\"Log in\" />\n <Button buttonType=\"cta\" onClick={onCreateAccount} label=\"Sign up\" />\n </>\n )}\n </div>\n </div>\n </header>\n);\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { Media, MediaProps } from '@/components/atoms/Media';\nimport './VideoPlayer.scss';\n\nconst WISTIA_PLAYER_SCRIPT = 'https://fast.wistia.com/player.js';\n\nlet wistiaScriptLoaded = false;\nlet wistiaScriptLoading = false;\nconst wistiaLoadCallbacks: (() => void)[] = [];\n\nfunction ensureWistiaScript(): Promise<void> {\n if (wistiaScriptLoaded) return Promise.resolve();\n\n return new Promise((resolve) => {\n wistiaLoadCallbacks.push(resolve);\n\n if (wistiaScriptLoading) return;\n wistiaScriptLoading = true;\n\n // Check if script already exists in DOM\n const existing = document.querySelector(`script[src=\"${WISTIA_PLAYER_SCRIPT}\"]`);\n if (existing) {\n wistiaScriptLoaded = true;\n wistiaLoadCallbacks.forEach((cb) => cb());\n wistiaLoadCallbacks.length = 0;\n return;\n }\n\n const script = document.createElement('script');\n script.src = WISTIA_PLAYER_SCRIPT;\n script.async = true;\n script.onload = () => {\n wistiaScriptLoaded = true;\n wistiaLoadCallbacks.forEach((cb) => cb());\n wistiaLoadCallbacks.length = 0;\n };\n document.head.appendChild(script);\n });\n}\n\n/** Extract Wistia video ID from various URL formats */\nfunction extractWistiaId(url: string): string | null {\n const match =\n url.match(/(?:medias|iframe|embed)\\/([a-zA-Z0-9]+)/) ||\n url.match(/wi\\.st\\/medias\\/([a-zA-Z0-9]+)/) ||\n url.match(/wistia\\.com\\/medias\\/([a-zA-Z0-9]+)/);\n return match?.[1] ?? null;\n}\n\nfunction isWistiaUrl(url: string): boolean {\n return /wistia\\.(com|net)/i.test(url) || /wi\\.st/i.test(url);\n}\n\nexport type VideoPlaybackMode = 'inline' | 'popover';\n\nexport interface VideoPlayerProps {\n /** Video source URL (native video file, Wistia, or any provider supported by Media) */\n src: string;\n /** Thumbnail image URL. If omitted, shows the video directly. */\n thumbnail?: string;\n /** Alt text for thumbnail image and video title */\n alt?: string;\n /** Custom play button element/icon. Receives default styling wrapper. */\n playIcon?: React.ReactNode;\n /** Playback mode: 'inline' plays in-place, 'popover' opens Wistia lightbox */\n playbackMode?: VideoPlaybackMode;\n /** Aspect ratio for the player container (e.g. \"16/9\") */\n aspectRatio?: string;\n /** Additional Media props passed to the video when playing inline */\n mediaProps?: Partial<MediaProps>;\n /** Dark mode styling */\n darkMode?: boolean;\n /** Additional CSS class */\n className?: string;\n /** Inline styles */\n style?: React.CSSProperties;\n}\n\n/** Molecule that composes Media atom with thumbnail, play button, and playback modes */\nexport const VideoPlayer: React.FC<VideoPlayerProps> = ({\n src,\n thumbnail,\n alt = '',\n playIcon,\n playbackMode = 'inline',\n aspectRatio = '16/9',\n mediaProps,\n darkMode = false,\n className,\n style,\n}) => {\n const [isPlaying, setIsPlaying] = useState(false);\n const wistiaId = isWistiaUrl(src) ? extractWistiaId(src) : null;\n\n const baseClass = 'video-player';\n const classes = [baseClass, isPlaying && `${baseClass}--playing`, className].filter(Boolean).join(' ');\n\n useEffect(() => {\n if (playbackMode !== 'popover' || !wistiaId) return;\n\n ensureWistiaScript().then(() => {\n const mediaScriptSrc = `https://fast.wistia.com/embed/${wistiaId}.js`;\n if (!document.querySelector(`script[src=\"${mediaScriptSrc}\"]`)) {\n const mediaScript = document.createElement('script');\n mediaScript.src = mediaScriptSrc;\n mediaScript.async = true;\n mediaScript.type = 'module';\n document.head.appendChild(mediaScript);\n }\n });\n }, [playbackMode, wistiaId]);\n\n const handlePlay = useCallback(() => {\n if (playbackMode === 'inline') {\n setIsPlaying(true);\n }\n }, [playbackMode]);\n\n const renderPlayIcon = () => {\n if (playIcon) {\n return <div className={`${baseClass}__play-icon`}>{playIcon}</div>;\n }\n\n return (\n <div className={`${baseClass}__play-icon`}>\n <svg viewBox=\"0 0 64 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <circle\n cx=\"32\"\n cy=\"32\"\n r=\"31\"\n fill=\"var(--video-player-play-icon-bg, rgba(0, 0, 0, 0.6))\"\n stroke=\"var(--video-player-play-icon-border, rgba(255, 255, 255, 0.8))\"\n strokeWidth=\"2\"\n />\n <polygon points=\"26,20 26,44 46,32\" fill=\"var(--video-player-play-icon-color, #fff)\" />\n </svg>\n </div>\n );\n };\n\n const cssVars: React.CSSProperties = {\n ...style,\n };\n\n if (playbackMode === 'popover' && wistiaId) {\n const transparentPng =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';\n\n return (\n <div\n className={classes}\n style={cssVars}\n data-dark-mode={darkMode || undefined}\n ref={(node) => {\n if (!node) return;\n const existing = node.querySelector('wistia-player');\n if (existing) return;\n\n const player = document.createElement('wistia-player');\n player.setAttribute('media-id', wistiaId);\n player.setAttribute('wistia-popover', '');\n player.setAttribute('popover-content', 'html');\n player.setAttribute('poster', transparentPng);\n player.style.display = 'block';\n player.style.width = '100%';\n if (aspectRatio) player.style.aspectRatio = aspectRatio;\n\n const thumbnailEl = node.querySelector(`.${baseClass}__thumbnail-wrapper`);\n if (thumbnailEl) {\n player.appendChild(thumbnailEl);\n }\n\n node.insertBefore(player, node.firstChild);\n }}\n >\n <div className={`${baseClass}__thumbnail-wrapper`} style={{ aspectRatio }}>\n {thumbnail && <Media src={thumbnail} type=\"image\" alt={alt} objectFit=\"cover\" aspectRatio={aspectRatio} />}\n {renderPlayIcon()}\n </div>\n </div>\n );\n }\n\n if (isPlaying) {\n return (\n <div className={classes} style={cssVars} data-dark-mode={darkMode || undefined}>\n <Media src={src} type=\"video\" alt={alt} autoplay controls aspectRatio={aspectRatio} {...mediaProps} />\n </div>\n );\n }\n\n return (\n <div className={classes} style={cssVars} data-dark-mode={darkMode || undefined}>\n <button\n className={`${baseClass}__thumbnail-wrapper`}\n onClick={handlePlay}\n aria-label={`Play video: ${alt}`}\n type=\"button\"\n style={{ aspectRatio }}\n >\n {thumbnail ? (\n <Media src={thumbnail} type=\"image\" alt={alt} objectFit=\"cover\" aspectRatio={aspectRatio} />\n ) : (\n <div className={`${baseClass}__placeholder`} />\n )}\n {renderPlayIcon()}\n </button>\n </div>\n );\n};\n","import React, { useState, useCallback, useRef, useEffect } from 'react';\nimport { Media } from '@/components/atoms/Media';\nimport { SPARKLE_OVERLAY_PATH, SPARK_SMALL_SPARKS_PATH, SPARK_ICON_LARGE_PATH, SPARK_ICON_SMALL_PATH } from './assets';\nimport './MediaBlock.scss';\n\nexport type MediaBlockVariant = 'default' | 'croppedSpark';\n\nexport interface MediaBlockProps {\n /** Display variant — \"default\" for the standard grid layout, \"croppedSpark\" for sparkle-masked image with decorative sparks */\n variant?: MediaBlockVariant;\n /** Video source URL (mp4, webm, Wistia embed URL, etc.). Not used for static images. */\n src?: string;\n /** Image URL — used as the display image for image-only blocks, or as the video thumbnail when src/wistiaId is set */\n thumbnail?: string;\n /** Alt text for accessibility */\n alt?: string;\n /** Custom play button element (e.g. primax play button PNG) */\n playIcon?: React.ReactNode;\n /** Aspect ratio for the media (e.g. \"16/9\") */\n aspectRatio?: string;\n /** Show the L-shaped mint accent border */\n accentBorder?: boolean;\n /** Show the dark overlay on thumbnail */\n overlay?: boolean;\n /** Show the decorative sparkle overlay */\n sparkle?: boolean;\n /** Source URL for the sparkle overlay image (SVG or PNG) */\n sparkSrc?: string;\n /** Scale the sparkle size from 1 (10%) to 10 (100%) */\n sparkScale?: number;\n /** Mirror decorative elements (L-shape on left, sparkle on right) */\n mirror?: boolean;\n /** Toggle video controls prop */\n controls?: boolean;\n /** Override the L-shaped accent border color (e.g. \"#00FFD2\" or \"var(--color-secondary-200)\") */\n accentColor?: string;\n /** Wistia media ID. Used for inline embed by default, or popover lightbox when popover=true */\n wistiaId?: string;\n /** When true and wistiaId is set, opens the video in a Wistia popover lightbox instead of inline */\n popover?: boolean;\n /** Source URL for the sparkle mask image (used by croppedSpark variant) */\n sparkMaskSrc?: string;\n /** Source URL for the small decorative sparks SVG (used by croppedSpark variant on tablet/mobile) */\n sparkSmallSrc?: string;\n /** Additional CSS class */\n className?: string;\n}\n\n/** Detect if a source URL is a video */\nfunction isVideoSource(src: string): boolean {\n const videoExts = /\\.(mp4|webm|ogg|mov)(\\?.*)?$/i;\n const videoProviders = /wistia\\.(com|net)|wi\\.st/i;\n return videoExts.test(src) || videoProviders.test(src);\n}\n\nconst WISTIA_PLAYER_SCRIPT_ID = 'wistia-player-script';\nconst WISTIA_PLAYER_SCRIPT_SRC = 'https://fast.wistia.com/player.js';\n\n/** Load the Wistia player.js script (new Web Component API) */\nfunction loadWistiaPlayerScript(): void {\n if (typeof document === 'undefined') return;\n if (document.getElementById(WISTIA_PLAYER_SCRIPT_ID)) return;\n const script = document.createElement('script');\n script.id = WISTIA_PLAYER_SCRIPT_ID;\n script.src = WISTIA_PLAYER_SCRIPT_SRC;\n script.async = true;\n document.head.appendChild(script);\n}\n\n/** Load the Wistia media-specific module script */\nfunction loadWistiaMediaModule(mediaId: string): void {\n if (typeof document === 'undefined') return;\n const moduleId = `wistia-module-${mediaId}`;\n if (document.getElementById(moduleId)) return;\n const script = document.createElement('script');\n script.id = moduleId;\n script.src = `https://fast.wistia.com/embed/${mediaId}.js`;\n script.async = true;\n script.type = 'module';\n document.head.appendChild(script);\n}\n\nexport const MediaBlock: React.FC<MediaBlockProps> = ({\n variant = 'default',\n src,\n thumbnail,\n alt = '',\n playIcon,\n aspectRatio = '',\n accentBorder = false,\n overlay = false,\n sparkle = false,\n controls = true,\n accentColor,\n sparkSrc = SPARKLE_OVERLAY_PATH,\n sparkScale,\n mirror = false,\n wistiaId,\n popover = false,\n sparkSmallSrc = SPARK_SMALL_SPARKS_PATH,\n className,\n}) => {\n const [isPlaying, setIsPlaying] = useState(false);\n const videoHandleRef = useRef<any>(null);\n const videoContainerRef = useRef<HTMLDivElement>(null);\n\n // Determine display mode\n const isPopover = !!wistiaId && popover;\n // Wistia inline: wistiaId without popover — build embed URL for the Media atom\n const wistiaInlineSrc = wistiaId && !popover ? `https://fast.wistia.com/medias/${wistiaId}` : undefined;\n const videoSrc = src || wistiaInlineSrc;\n const hasVideo = isPopover || (!!videoSrc && isVideoSource(videoSrc));\n const isImage = !hasVideo && !!thumbnail;\n\n const baseClass = 'media-block';\n const classes = [\n baseClass,\n variant !== 'default' && `${baseClass}--${variant}`,\n accentBorder && `${baseClass}--accent`,\n mirror && `${baseClass}--mirror`,\n hasVideo && `${baseClass}--video`,\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n // Load Wistia popover scripts (only needed for popover mode)\n useEffect(() => {\n if (!isPopover || !wistiaId) return;\n loadWistiaPlayerScript();\n loadWistiaMediaModule(wistiaId);\n }, [isPopover, wistiaId]);\n\n // Store the Wistia video handle when Media reports ready\n const handleVideoReady = useCallback((handle: any) => {\n videoHandleRef.current = handle;\n }, []);\n\n // On play click: show video and trigger playback (non-popover mode)\n const handlePlay = useCallback(() => {\n if (!hasVideo || isPopover) return;\n setIsPlaying(true);\n\n // Wistia handle\n if (videoHandleRef.current?.play) {\n videoHandleRef.current.play();\n return;\n }\n\n // Native <video> element — find it in the container\n const videoEl = videoContainerRef.current?.querySelector('video');\n if (videoEl) {\n videoEl.play().catch(() => {});\n }\n }, [hasVideo, isPopover]);\n\n // Render the thumbnail with play button (used for inline video mode)\n const renderThumbnailOverlay = (onClick: () => void) => (\n <button className={`${baseClass}__trigger`} onClick={onClick} aria-label={`Play video: ${alt}`} type=\"button\">\n {thumbnail && <Media src={thumbnail} type=\"image\" alt=\"\" objectFit=\"cover\" aspectRatio={aspectRatio} />}\n {overlay && <div className={`${baseClass}__overlay`} aria-hidden=\"true\" />}\n {playIcon && (\n <div className={`${baseClass}__play-icon`} aria-hidden=\"true\">\n {playIcon}\n </div>\n )}\n </button>\n );\n\n // ── croppedSpark variant: sparkle-masked image with decorative spark icons ──\n if (variant === 'croppedSpark') {\n // Spark mask SVG path (from spark-mask.svg, viewBox 0 0 218 239)\n const sparkPath =\n 'M215.208 122.007C197.838 122.065 179.583 127.759 164.968 135.541C124.822 156.905 112.194 197.875 111.885 236.575C111.856 239.811 106.136 239.806 106.112 236.575C105.798 197.875 93.1749 156.91 53.0289 135.541C38.4141 127.764 20.154 122.065 2.78832 122.007C-0.934274 121.992 -0.924605 116.998 2.78832 116.983C20.1588 116.93 38.4141 111.23 53.0289 103.449C93.1749 82.0848 105.798 41.1197 106.112 2.41994C106.098 0.796987 107.553 0 108.998 0C110.449 0 111.904 0.801817 111.889 2.41994C112.194 41.1197 124.827 82.0848 164.973 103.454C179.587 111.23 197.848 116.93 215.213 116.988C218.936 117.002 218.926 121.997 215.213 122.011L215.208 122.007Z';\n\n return (\n <figure className={classes} role=\"group\" aria-label={alt || 'Media content'}>\n <div className={`${baseClass}__cropped-spark`}>\n {/* Inline SVG sparkle shape — clip image + stroke border */}\n <svg\n className={`${baseClass}__spark-svg`}\n viewBox=\"0 0 218 239\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <defs>\n <clipPath id=\"spark-clip\">\n <path d={sparkPath} />\n </clipPath>\n </defs>\n\n {/* Image clipped to sparkle shape */}\n <foreignObject x=\"0\" y=\"0\" width=\"218\" height=\"239\" clipPath=\"url(#spark-clip)\">\n {thumbnail && (\n <img\n src={thumbnail}\n alt={alt}\n style={{\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n display: 'block',\n }}\n />\n )}\n </foreignObject>\n\n {/* Solid stroke on the sparkle shape */}\n <path className={`${baseClass}__spark-svg-stroke`} d={sparkPath} fill=\"none\" />\n </svg>\n\n {/* Decorative spark icons (large + small) */}\n <img\n className={`${baseClass}__spark-icon ${baseClass}__spark-icon--large`}\n src={SPARK_ICON_LARGE_PATH}\n alt=\"\"\n aria-hidden=\"true\"\n />\n <img\n className={`${baseClass}__spark-icon ${baseClass}__spark-icon--small`}\n src={SPARK_ICON_SMALL_PATH}\n alt=\"\"\n aria-hidden=\"true\"\n />\n\n {/* Small sparks — visible on tablet/mobile as fallback decoration */}\n <img className={`${baseClass}__spark-small-sparks`} src={sparkSmallSrc} alt=\"\" aria-hidden=\"true\" />\n </div>\n </figure>\n );\n }\n\n return (\n <figure\n className={classes}\n role=\"group\"\n aria-label={alt || 'Media content'}\n style={accentColor ? ({ '--media-block-accent-color': accentColor } as React.CSSProperties) : undefined}\n >\n <div className={`${baseClass}__grid`}>\n {/* Decorative sparkle overlay */}\n {sparkle && (\n <div\n className={`${baseClass}__spark`}\n aria-hidden=\"true\"\n style={sparkScale ? ({ '--media-block-spark-scale': sparkScale / 10 } as React.CSSProperties) : undefined}\n >\n <img src={sparkSrc} alt=\"\" />\n </div>\n )}\n\n {/* Media container */}\n <div className={`${baseClass}__inner`} ref={videoContainerRef}>\n {isImage && thumbnail ? (\n <Media src={thumbnail} type=\"image\" alt={alt} objectFit=\"cover\" aspectRatio={aspectRatio} />\n ) : isPopover ? (\n <>\n {/* Visual thumbnail layer (non-interactive, purely decorative) */}\n <div className={`${baseClass}__popover-thumbnail`} aria-hidden=\"true\">\n {thumbnail && <Media src={thumbnail} type=\"image\" alt=\"\" objectFit=\"cover\" aspectRatio={aspectRatio} />}\n {overlay && <div className={`${baseClass}__overlay`} />}\n {playIcon && <div className={`${baseClass}__play-icon`}>{playIcon}</div>}\n </div>\n\n {/* Transparent Wistia popover player on top — receives the actual click */}\n <div className={`${baseClass}__wistia-popover`}>\n {React.createElement('wistia-player', {\n 'media-id': wistiaId,\n 'wistia-popover': 'true',\n aspect: '1.7777777777777777',\n style: { width: '100%', height: '100%' },\n })}\n </div>\n </>\n ) : videoSrc ? (\n <>\n {/* Video preloads behind the thumbnail */}\n <Media\n src={videoSrc}\n type=\"video\"\n alt={alt}\n controls={controls}\n aspectRatio={aspectRatio}\n onReady={handleVideoReady}\n className={`${baseClass}__video-layer`}\n />\n\n {/* Thumbnail overlay — hides once playing */}\n {!isPlaying && renderThumbnailOverlay(handlePlay)}\n </>\n ) : null}\n </div>\n\n {/* L-shaped accent */}\n {accentBorder && <div className={`${baseClass}__accent-side`} aria-hidden=\"true\" />}\n {accentBorder && <div className={`${baseClass}__accent-bottom`} aria-hidden=\"true\" />}\n </div>\n </figure>\n );\n};\n","export default \"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20width%3D%22224%22%20height%3D%22224%22%20viewBox%3D%220%200%20224%20224%22%20fill%3D%22none%22%3E%20%20%3Cpath%20d%3D%22M0.87146%208.04027C-2.23028%203.39342%203.61165%20-2.23422%208.22653%200.913946C50.1288%2029.4986%2074.7621%2038.9595%20108.417%2041.2004C144.268%2040.259%20168.419%2032.9657%20207.023%209.04353C211.607%206.20271%20217.138%2011.584%20214.28%2016.1584L207.095%2027.6592L197.353%2044.936C197.233%2045.1482%20197.129%2045.369%20197.042%2045.5965L188.666%2067.367C188.58%2067.5906%20188.51%2067.8202%20188.457%2068.0539L183.062%2091.7796C182.998%2092.0584%20182.959%2092.3422%20182.944%2092.6278L181.818%20114.177C181.804%20114.457%20181.813%20114.738%20181.845%20115.016L184.062%20134.065L189.35%20155.826C189.424%20156.13%20189.526%20156.426%20189.656%20156.711L199.198%20177.743L210.718%20197.93L222.95%20215.579C226.11%20220.138%20220.604%20225.686%20216.023%20222.558L198.236%20210.415L178.309%20198.637L156.966%20189.313C156.722%20189.207%20156.47%20189.12%20156.212%20189.053L134.642%20183.498L115.598%20181.28C115.32%20181.248%20115.039%20181.239%20114.759%20181.253L93.2054%20182.38C92.9265%20182.394%2092.6493%20182.432%2092.3767%20182.493L72.3782%20186.96L52.1128%20193.684C51.8508%20193.771%2051.5964%20193.88%2051.3523%20194.009L30.0474%20205.263L15.9227%20214.159C11.3991%20217.008%206.16338%20211.724%209.05253%20207.225L18.0312%20193.244L26.1703%20177.942L33.03%20160.852L40.0008%20133.277C40.0836%20132.95%2040.133%20132.615%2040.1483%20132.277L41.2088%20108.832C41.2216%20108.549%2041.2104%20108.266%2041.1752%20107.985L37.2945%2076.9864C37.2429%2076.574%2037.14%2076.1696%2036.9884%2075.7827L26.8364%2049.8781C26.7491%2049.6552%2026.6458%2049.4389%2026.5275%2049.2308L15.9527%2030.6342L0.87146%208.04027Z%22%20fill%3D%22url%28%23pattern0_1168_343%29%22%2F%3E%20%20%3Cdefs%3E%20%20%20%20%3Cpattern%20id%3D%22pattern0_1168_343%22%20patternUnits%3D%22userSpaceOnUse%22%20patternTransform%3D%22matrix%284.28304%20-4.28413%204.71404%204.71523%20-101.391%20103.538%29%22%20preserveAspectRatio%3D%22none%22%20viewBox%3D%2215.3594%2022.6016%20201.93%20222.25%22%20width%3D%221%22%20height%3D%221%22%3E%20%20%20%20%20%20%3Cg%20id%3D%22pattern0_1168_343_inner%22%3E%20%20%20%20%20%20%20%20%3Cpath%20d%3D%22M74.2117%2026.5152C75.2622%2021.2484%2083.3188%2021.3292%2084.6373%2026.5354C88.6999%2042.5762%2093.807%2052.1527%20102.548%2062.1325C113.95%2072.9426%20123.867%2078.746%20141.357%2083.488C145.376%2084.5776%20145.43%2090.6299%20141.372%2091.5657L132.206%2094.119C131.971%2094.1844%20131.742%2094.2668%20131.519%2094.3656L121.43%2098.844C121.211%2098.9411%20120.999%2099.0539%20120.796%2099.1814L111.064%20105.302C110.822%20105.454%20110.594%20105.626%20110.381%20105.818L102.861%20112.586C102.653%20112.773%20102.461%20112.978%20102.287%20113.198L96.5987%20120.379L91.0265%20129.522C90.8636%20129.79%2090.7262%20130.072%2090.616%20130.365L86.7273%20140.707L83.7306%20151.667C82.8621%20156.457%2075.9966%20156.45%2075.0931%20151.667L72.2727%20140.707L68.1884%20130.297C68.091%20130.049%2067.974%20129.809%2067.8384%20129.579L62.4013%20120.379L56.7134%20113.198C56.5394%20112.978%2056.3471%20112.773%2056.1388%20112.586L48.6112%20105.811C48.4037%20105.624%2048.1808%20105.455%2047.945%20105.306L39.6619%20100.051L30.5137%2095.4636C30.267%2095.3399%2030.0105%2095.2369%2029.7468%2095.1555L18.6851%2091.7424C14.2515%2090.7358%2014.2426%2084.401%2018.6851%2083.4343L26.7938%2080.9596L35.0787%2077.4242L46.8055%2070.4367C47.0955%2070.2638%2047.3673%2070.0621%2047.6167%2069.8345L55.7411%2062.4194C55.9503%2062.2285%2056.1428%2062.0202%2056.3167%2061.7967L65.3661%2050.1658C65.6214%2049.8377%2065.8348%2049.479%2066.0013%2049.0981L71.2473%2037.0973C71.3432%2036.8778%2071.4232%2036.6518%2071.4868%2036.4208L74.2117%2026.5152Z%22%20fill%3D%22%2300FFD2%22%2F%3E%20%20%20%20%20%20%3C%2Fg%3E%20%20%20%20%3C%2Fpattern%3E%3C%2Fdefs%3E%20%20%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20width%3D%22297%22%20height%3D%22189%22%20viewBox%3D%220%200%20297%20189%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M295.475%2068.9159C285.993%2068.9486%20276.028%2072.1653%20268.051%2076.5607C246.136%2088.6283%20239.243%20111.77%20239.074%20133.63C239.058%20135.458%20235.936%20135.455%20235.923%20133.63C235.752%20111.77%20228.861%2088.631%20206.947%2076.5607C198.969%2072.1681%20189.001%2068.9486%20179.522%2068.9159C177.49%2068.9077%20177.495%2066.0865%20179.522%2066.0784C189.004%2066.0483%20198.969%2062.8289%20206.947%2058.4335C228.861%2046.3659%20235.752%2023.2266%20235.923%201.36691C235.915%200.450181%20236.71%200%20237.499%200C238.29%200%20239.085%200.452909%20239.077%201.36691C239.243%2023.2266%20246.139%2046.3659%20268.053%2058.4362C276.031%2062.8289%20285.999%2066.0483%20295.478%2066.0811C297.51%2066.0893%20297.505%2068.9104%20295.478%2068.9186L295.475%2068.9159Z%22%20fill%3D%22%2300FFD2%22%20fill-opacity%3D%220.1%22%2F%3E%3Cpath%20d%3D%22M66.1416%20151.797C60.8029%20151.816%2055.1924%20153.626%2050.7008%20156.101C38.3624%20162.894%2034.4814%20175.923%2034.3863%20188.229C34.3774%20189.258%2032.6196%20189.256%2032.6122%20188.229C32.5156%20175.923%2028.6361%20162.896%2016.2977%20156.101C11.8061%20153.628%206.19407%20151.816%200.856955%20151.797C-0.287137%20151.792%20-0.284166%20150.204%200.856955%20150.2C6.19556%20150.183%2011.8061%20148.37%2016.2977%20145.896C28.6361%20139.102%2032.5156%20126.076%2032.6122%20113.77C32.6078%20113.253%2033.055%20113%2033.4993%20113C33.945%20113%2034.3922%20113.255%2034.3878%20113.77C34.4814%20126.076%2038.3639%20139.102%2050.7022%20145.897C55.1939%20148.37%2060.8059%20150.183%2066.143%20150.201C67.2871%20150.206%2067.2842%20151.794%2066.143%20151.799L66.1416%20151.797Z%22%20fill%3D%22%2300FFD2%22%20fill-opacity%3D%220.1%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20width%3D%22218%22%20height%3D%22239%22%20viewBox%3D%220%200%20218%20239%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M215.208%20122.007C197.838%20122.065%20179.583%20127.759%20164.968%20135.541C124.822%20156.905%20112.194%20197.875%20111.885%20236.575C111.856%20239.811%20106.136%20239.806%20106.112%20236.575C105.798%20197.875%2093.1749%20156.91%2053.0289%20135.541C38.4141%20127.764%2020.154%20122.065%202.78832%20122.007C-0.934274%20121.992%20-0.924605%20116.998%202.78832%20116.983C20.1588%20116.93%2038.4141%20111.23%2053.0289%20103.449C93.1749%2082.0848%20105.798%2041.1197%20106.112%202.41994C106.098%200.796987%20107.553%200%20108.998%200C110.449%200%20111.904%200.801817%20111.889%202.41994C112.194%2041.1197%20124.827%2082.0848%20164.973%20103.454C179.587%20111.23%20197.848%20116.93%20215.213%20116.988C218.936%20117.002%20218.926%20121.997%20215.213%20122.011L215.208%20122.007Z%22%20fill%3D%22%2300FFD2%22%20fill-opacity%3D%220.1%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20width%3D%22123%22%20height%3D%22135%22%20viewBox%3D%220%200%20123%20135%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M121.373%2068.9159C111.577%2068.9486%20101.281%2072.1653%2093.0387%2076.5607C70.3971%2088.6283%2063.2753%20111.77%2063.1008%20133.63C63.0844%20135.458%2059.8589%20135.455%2059.8452%20133.63C59.668%20111.77%2052.5489%2088.631%2029.9073%2076.5607C21.6648%2072.1681%2011.3665%2068.9486%201.57256%2068.9159C-0.526913%2068.9077%20-0.521459%2066.0865%201.57256%2066.0784C11.3692%2066.0483%2021.6648%2062.8289%2029.9073%2058.4335C52.5489%2046.3659%2059.668%2023.2266%2059.8452%201.36691C59.837%200.450181%2060.6577%200%2061.473%200C62.291%200%2063.1117%200.452909%2063.1035%201.36691C63.2753%2023.2266%2070.3998%2046.3659%2093.0414%2058.4362C101.284%2062.8289%20111.582%2066.0483%20121.376%2066.0811C123.476%2066.0893%20123.47%2068.9104%20121.376%2068.9186L121.373%2068.9159Z%22%20fill%3D%22%2300FFD2%22%20fill-opacity%3D%220.1%22%2F%3E%3C%2Fsvg%3E\"","import React from 'react';\nimport { Breadcrumb } from '@/components/atoms/Breadcrumb';\nimport { Button, ButtonProps } from '@/components/atoms/Button';\nimport { ButtonLink, ButtonLinkProps } from '@/components/atoms/ButtonLink';\nimport { Divider, DividerProps } from '@/components/atoms/Divider';\nimport { Grid, GridItem, GridProps } from '@/components/atoms/Grid';\nimport { Heading, HeadingLevel } from '@/components/atoms/Heading';\nimport { Media } from '@/components/atoms/Media';\nimport { MediaBlock, MediaBlockProps } from '@/components/molecules/primax/MediaBlock';\nimport { toKebabCase } from '@/themes/utils';\nimport './Banner.scss';\n\ntype CTABannerVariant = 'hero' | 'level2' | 'level3' | 'gated';\ntype Alignment = 'left' | 'center' | 'right';\ntype VerticalAlignment = 'top' | 'center' | 'bottom';\n\n/** Banner-specific media props — extends MediaBlockProps with layout constraints */\nexport interface BannerMediaProps extends MediaBlockProps {\n /** Width constraint for column media */\n width?: number | string;\n /** Height constraint for column media */\n height?: number | string;\n}\n\nexport interface BannerI extends DividerProps {\n bannerType: CTABannerVariant;\n gridGap?: GridProps['gap'];\n contentGap?: GridProps['gap'];\n\n // Content\n heading: string;\n headingLevel?: HeadingLevel;\n breadcrumbs?: BreadcrumbItem[];\n /** Button or link — pass `href` to render an <a>, omit it to render a <button> */\n button?: ButtonProps | ButtonLinkProps;\n\n /** Media for column display (level2, gated) or hero background */\n media?: BannerMediaProps;\n /** Background video URL for hero variant (autoplays, muted, no controls) */\n backgroundVideo?: string;\n\n // Overrides\n backgroundImage?: string;\n className?: string;\n align?: Alignment;\n verticalAlign?: VerticalAlignment;\n contentVerticalAlign?: VerticalAlignment;\n mediaVerticalAlign?: VerticalAlignment;\n}\n\nexport interface BreadcrumbItem {\n label: string;\n href?: string;\n}\n\n// Banner variant configuration - centralized for scalability\nconst BANNER_CONFIG: Record<CTABannerVariant, { columns: number; darkMode: boolean }> = {\n hero: { columns: 1, darkMode: true },\n level2: { columns: 2, darkMode: false },\n level3: { columns: 1, darkMode: true },\n gated: { columns: 2, darkMode: true },\n};\n\n// Helper function to map alignment to CSS flexbox values\nconst mapAlignmentToFlex = (alignment: Alignment): string => {\n const alignmentMap: Record<Alignment, string> = {\n left: 'flex-start',\n center: 'center',\n right: 'flex-end',\n };\n return alignmentMap[alignment];\n};\n\n// Helper function to map vertical alignment to CSS values\nconst mapVerticalAlignment = (alignment?: VerticalAlignment): 'start' | 'center' | 'end' | undefined => {\n if (!alignment) return undefined;\n\n const verticalMap: Record<VerticalAlignment, 'start' | 'center' | 'end'> = {\n top: 'start',\n center: 'center',\n bottom: 'end',\n };\n return verticalMap[alignment];\n};\n\n/** Render the appropriate media element for column display */\nfunction renderColumnMedia(media: BannerMediaProps, darkMode: boolean) {\n // Destructure Banner-specific layout props; pass the rest straight to MediaBlock\n const { width, height, ...mediaBlockProps } = media;\n return <MediaBlock {...mediaBlockProps} />;\n}\n\nexport const Banner = ({\n children,\n align = 'left',\n verticalAlign = 'center',\n headingLevel = 'h1',\n ...props\n}: BannerI) => {\n const config = BANNER_CONFIG[props.bannerType];\n const hasBackgroundVideo = props.bannerType === 'hero' && !!props.backgroundVideo;\n\n const BannerClass = [\n 'banner',\n `banner--${toKebabCase(props.bannerType)}`,\n hasBackgroundVideo && 'banner--has-bg-video',\n props.className,\n ]\n .filter(Boolean)\n .join(' ');\n\n const contentStyle: React.CSSProperties = {\n textAlign: align,\n alignItems: mapAlignmentToFlex(align),\n };\n\n const gridAlignItems = mapVerticalAlignment(verticalAlign);\n const contentAlignSelf = mapVerticalAlignment(props.contentVerticalAlign);\n const mediaAlignSelf = mapVerticalAlignment(props.mediaVerticalAlign);\n\n return (\n <>\n <Divider className={BannerClass} verticalAlign={verticalAlign} {...props}>\n {children ? (\n children\n ) : (\n <>\n <Grid\n columns={{\n sm: 1,\n md: 1,\n lg: config.columns > 1 ? '1fr auto' : config.columns,\n }}\n maxColumnWidth={config.columns > 1 ? '630px' : undefined}\n justifyContent=\"center\"\n gap={props?.gridGap || 'sm'}\n alignItems={gridAlignItems}\n >\n {/* Column 1: Content */}\n <GridItem className=\"content\" style={contentAlignSelf ? { alignSelf: contentAlignSelf } : undefined}>\n <Grid columns={1} gap={props?.contentGap === 'none' ? '0' : props?.contentGap}>\n {props?.breadcrumbs && (\n <Breadcrumb items={props.breadcrumbs} separator=\"/\" darkMode={props?.darkMode} />\n )}\n {props?.heading && (\n <GridItem style={contentStyle}>\n <Heading level={headingLevel || 'h5'} variant=\"title\" darkMode={config.darkMode}>\n {props.heading}\n </Heading>\n </GridItem>\n )}\n {props?.button && (\n <GridItem style={contentStyle}>\n {'href' in props.button ? (\n <ButtonLink darkMode={config.darkMode} {...(props.button as ButtonLinkProps)} />\n ) : (\n <Button darkMode={config.darkMode} {...(props.button as ButtonProps)} />\n )}\n </GridItem>\n )}\n </Grid>\n </GridItem>\n\n {/* Column 2: Media (only if multi-column layout) */}\n {config.columns > 1 && props?.media && (\n <GridItem\n className=\"media\"\n colSpan={'auto'}\n style={mediaAlignSelf ? { alignSelf: mediaAlignSelf } : undefined}\n >\n {renderColumnMedia(props.media, config.darkMode)}\n </GridItem>\n )}\n </Grid>\n </>\n )}\n {/* Hero background video — absolutely positioned behind content */}\n {hasBackgroundVideo && (\n <div className=\"banner__bg-video\">\n <Media src={props.backgroundVideo!} type=\"video\" autoplay loop muted controls={false} objectFit=\"cover\" />\n </div>\n )}\n </Divider>\n\n {/* Background media for gated variant on mobile/tablet */}\n {props.bannerType === 'gated' &&\n props?.media &&\n (() => {\n const { width, height, ...mediaBlockProps } = props.media;\n return (\n <div className=\"banner__background-image\">\n <MediaBlock {...mediaBlockProps} overlay={false} />\n </div>\n );\n })()}\n </>\n );\n};\n","import React from 'react';\nimport { Divider, DividerProps } from '@/components/atoms/Divider';\nimport { Grid, GridItem } from '@/components/atoms/Grid';\nimport './TwoColumn.scss';\n\nexport type TwoColumnVariation = 'left-first' | 'right-first';\n\nexport interface TwoColumnRow {\n /** Content for the left column */\n left: React.ReactNode;\n /** Content for the right column */\n right: React.ReactNode;\n /** Column order on desktop — stacks vertically on mobile */\n variation?: TwoColumnVariation;\n /** Vertical alignment of columns */\n verticalAlign?: 'top' | 'center' | 'bottom';\n}\n\nexport interface TwoColumnProps extends DividerProps {\n /** Content for the left column (single-row shorthand) */\n left?: React.ReactNode;\n /** Content for the right column (single-row shorthand) */\n right?: React.ReactNode;\n /** Column order on desktop — stacks vertically on mobile (single-row shorthand) */\n variation?: TwoColumnVariation;\n /** Vertical alignment of columns (single-row shorthand, also default for rows) */\n verticalAlign?: 'top' | 'center' | 'bottom';\n /** Multiple rows of two-column content */\n rows?: TwoColumnRow[];\n /** Gap between columns — responsive object or single value */\n gap?: string | { xs?: string; sm?: string; md?: string; lg?: string };\n /** Additional class name */\n className?: string;\n}\n\nconst verticalAlignMap: Record<string, 'start' | 'center' | 'end'> = {\n top: 'start',\n center: 'center',\n bottom: 'end',\n};\n\nexport const TwoColumn: React.FC<TwoColumnProps> = ({\n left,\n right,\n rows,\n variation = 'left-first',\n verticalAlign = 'top',\n gap,\n className,\n // Divider props\n backgroundColor,\n backgroundImage,\n backgroundPattern,\n shapeDivider,\n shapeColor,\n padding,\n height,\n overflow,\n darkMode = false,\n children: _children,\n ...rest\n}) => {\n const baseClass = 'primax-two-column';\n const classes = [baseClass, className].filter(Boolean).join(' ');\n\n // Build the list of rows: use `rows` prop if provided, otherwise fall back to single left/right\n const resolvedRows: TwoColumnRow[] = rows ?? [{ left, right, variation, verticalAlign }];\n\n return (\n <Divider\n backgroundColor={backgroundColor}\n backgroundImage={backgroundImage}\n backgroundPattern={backgroundPattern}\n shapeDivider={shapeDivider}\n shapeColor={shapeColor}\n padding={padding}\n height={height}\n overflow={overflow}\n darkMode={darkMode}\n className={classes}\n {...rest}\n >\n {resolvedRows.map((row, index) => {\n const rowVariation = row.variation ?? variation;\n const rowAlign = row.verticalAlign ?? verticalAlign;\n const isReversed = rowVariation === 'right-first';\n\n return (\n <Grid\n key={index}\n columns={{ sm: 1, md: 1, lg: 2 }}\n maxColumnWidth=\"630px\"\n justifyContent=\"center\"\n alignItems={verticalAlignMap[rowAlign]}\n className={`${baseClass}__grid`}\n gap={gap}\n >\n <GridItem\n className={`${baseClass}__col ${baseClass}__col--left`}\n style={isReversed ? { order: 2 } : undefined}\n >\n {row.left}\n </GridItem>\n <GridItem\n className={`${baseClass}__col ${baseClass}__col--right`}\n style={isReversed ? { order: 1 } : undefined}\n >\n {row.right}\n </GridItem>\n </Grid>\n );\n })}\n </Divider>\n );\n};\n","import React, { useId } from 'react';\nimport './TextInput.scss';\nimport { Paragraph } from '../Paragraph';\n\nexport interface TextInputValidation {\n /** Mark field as required */\n required?: boolean;\n /** Minimum character length */\n minLength?: number;\n /** Maximum character length */\n maxLength?: number;\n /** Regex pattern to validate against */\n pattern?: RegExp;\n /** Validate as email format */\n email?: boolean;\n /** Custom error message — overrides the default for any failed rule */\n errorMessage?: string;\n}\n\nexport interface TextInputProps {\n /** Field label */\n label: string;\n /** Input name attribute */\n name: string;\n /** Input type */\n type?: 'text' | 'email' | 'tel' | 'url' | 'password';\n /** Placeholder / hint text */\n placeholder?: string;\n /** Current value (controlled) */\n value?: string;\n /** Change handler */\n onChange?: (value: string) => void;\n /** Blur handler */\n onBlur?: () => void;\n /** Validation rules */\n validation?: TextInputValidation;\n /** Error message to display */\n error?: string;\n /** Disabled state */\n disabled?: boolean;\n /** Dark mode */\n darkMode?: boolean;\n /** Additional class */\n className?: string;\n}\n\nexport const TextInput: React.FC<TextInputProps> = ({\n label,\n name,\n type = 'text',\n placeholder,\n value,\n onChange,\n onBlur,\n validation,\n error,\n disabled = false,\n darkMode = false,\n className,\n}) => {\n const id = useId();\n const errorId = `${id}-error`;\n const isRequired = validation?.required;\n\n const classes = ['text-input', error && 'text-input--error', disabled && 'text-input--disabled', className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={classes} data-dark-mode={darkMode || undefined}>\n <label htmlFor={id} className=\"text-input__label\">\n {label}\n {isRequired && (\n <span className=\"text-input__required\" aria-hidden=\"true\">\n *\n </span>\n )}\n </label>\n <input\n id={id}\n name={name}\n type={type}\n className=\"text-input__field\"\n placeholder={placeholder}\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n onBlur={onBlur}\n disabled={disabled}\n required={isRequired}\n minLength={validation?.minLength}\n maxLength={validation?.maxLength}\n aria-invalid={error ? 'true' : undefined}\n aria-describedby={error ? errorId : undefined}\n />\n {error && (\n <Paragraph id={errorId} className=\"text-input__error\" role=\"alert\">\n {error}\n </Paragraph>\n )}\n </div>\n );\n};\n","import React, { useId, useRef, useState, useCallback, useEffect } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faChevronDown, faChevronUp } from '@fortawesome/free-solid-svg-icons';\nimport './Dropdown.scss';\n\nexport interface DropdownProps {\n /** Field label */\n label: string;\n /** Input name attribute */\n name: string;\n /** Placeholder text shown when nothing is selected */\n placeholder?: string;\n /** Whether the dropdown is open */\n isOpen?: boolean;\n /** Called when the dropdown open state changes */\n onToggle?: (isOpen: boolean) => void;\n /** Display value shown in the trigger (e.g. selected items summary) */\n displayValue?: string;\n /** Error message to display */\n error?: string;\n /** Disabled state */\n disabled?: boolean;\n /** Dark mode */\n darkMode?: boolean;\n /** Additional class */\n className?: string;\n /** Dropdown panel content (e.g. checkbox list) */\n children?: React.ReactNode;\n}\n\n/**\n * Dropdown atom component providing a trigger button with label,\n * chevron icon, and a collapsible panel for custom content.\n */\nexport const Dropdown: React.FC<DropdownProps> = ({\n label,\n name,\n placeholder = 'Select from below',\n isOpen: controlledOpen,\n onToggle,\n displayValue,\n error,\n disabled = false,\n darkMode = false,\n className,\n children,\n}) => {\n const id = useId();\n const errorId = `${id}-error`;\n const listboxId = `${id}-listbox`;\n const containerRef = useRef<HTMLDivElement>(null);\n\n // Support both controlled and uncontrolled open state\n const [internalOpen, setInternalOpen] = useState(false);\n const isOpen = controlledOpen !== undefined ? controlledOpen : internalOpen;\n\n const handleToggle = useCallback(() => {\n if (disabled) return;\n const next = !isOpen;\n setInternalOpen(next);\n onToggle?.(next);\n }, [disabled, isOpen, onToggle]);\n\n // Close on outside click\n useEffect(() => {\n const handleClickOutside = (e: MouseEvent) => {\n if (containerRef.current && !containerRef.current.contains(e.target as Node)) {\n setInternalOpen(false);\n onToggle?.(false);\n }\n };\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside);\n }\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, [isOpen, onToggle]);\n\n // Close on Escape\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === 'Escape' && isOpen) {\n setInternalOpen(false);\n onToggle?.(false);\n }\n },\n [isOpen, onToggle]\n );\n\n const classes = [\n 'dropdown',\n isOpen && 'dropdown--open',\n error && 'dropdown--error',\n disabled && 'dropdown--disabled',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div ref={containerRef} className={classes} data-dark-mode={darkMode || undefined} onKeyDown={handleKeyDown}>\n <label htmlFor={id} className=\"dropdown__label\">\n {label}\n </label>\n\n <div className=\"dropdown__wrapper\">\n <button\n id={id}\n type=\"button\"\n className=\"dropdown__trigger\"\n onClick={handleToggle}\n disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-controls={listboxId}\n aria-invalid={error ? 'true' : undefined}\n aria-describedby={error ? errorId : undefined}\n data-name={name}\n >\n <span className={`dropdown__value ${!displayValue ? 'dropdown__value--placeholder' : ''}`}>\n {displayValue || placeholder}\n </span>\n <span className=\"dropdown__chevron\" aria-hidden=\"true\">\n <FontAwesomeIcon icon={isOpen ? faChevronUp : faChevronDown} />\n </span>\n </button>\n\n {isOpen && (\n <div id={listboxId} className=\"dropdown__panel\" role=\"listbox\" aria-label={label}>\n {children}\n </div>\n )}\n </div>\n\n {error && (\n <p id={errorId} className=\"dropdown__error\" role=\"alert\">\n {error}\n </p>\n )}\n </div>\n );\n};\n","import React, { useId } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faSquareCheck } from '@fortawesome/pro-solid-svg-icons';\nimport { faSquare } from '@fortawesome/pro-regular-svg-icons';\nimport './Checkbox.scss';\n\nexport interface CheckboxProps {\n /** Checkbox label text */\n label: string;\n /** Input name attribute */\n name: string;\n /** Whether the checkbox is checked */\n checked?: boolean;\n /** Change handler */\n onChange?: (checked: boolean) => void;\n /** Disabled state */\n disabled?: boolean;\n /** Dark mode */\n darkMode?: boolean;\n /** Additional class */\n className?: string;\n}\n\n/**\n * Checkbox atom component using FontAwesome icons for visual states.\n * Supports default, hover, active (checked), and focused states.\n */\nexport const Checkbox: React.FC<CheckboxProps> = ({\n label,\n name,\n checked = false,\n onChange,\n disabled = false,\n darkMode = false,\n className,\n}) => {\n const id = useId();\n\n const classes = ['checkbox', checked && 'checkbox--checked', disabled && 'checkbox--disabled', className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <label className={classes} data-dark-mode={darkMode || undefined} htmlFor={id}>\n <input\n id={id}\n type=\"checkbox\"\n name={name}\n checked={checked}\n onChange={(e) => onChange?.(e.target.checked)}\n disabled={disabled}\n className=\"checkbox__input\"\n aria-checked={checked}\n />\n <span className=\"checkbox__icon\" aria-hidden=\"true\">\n <FontAwesomeIcon icon={checked ? faSquareCheck : faSquare} />\n </span>\n <span className=\"checkbox__label\">{label}</span>\n </label>\n );\n};\n","import React, { useState, useCallback } from 'react';\nimport { Dropdown } from '@/components/atoms/Dropdown';\nimport { Checkbox } from '@/components/atoms/Checkbox';\nimport './DropdownSelect.scss';\n\nexport interface DropdownSelectOption {\n /** Unique value for the option */\n value: string;\n /** Display label for the option */\n label: string;\n}\n\nexport interface DropdownSelectValidation {\n /** Mark field as required (at least one selection) */\n required?: boolean;\n /** Minimum number of selections */\n minSelections?: number;\n /** Maximum number of selections */\n maxSelections?: number;\n /** Custom error message */\n errorMessage?: string;\n}\n\nexport interface DropdownSelectProps {\n /** Field label */\n label: string;\n /** Input name attribute */\n name: string;\n /** Placeholder text when nothing is selected */\n placeholder?: string;\n /** Available options */\n options: DropdownSelectOption[];\n /** Currently selected values (controlled) */\n value?: string[];\n /** Change handler with selected values */\n onChange?: (values: string[]) => void;\n /** Blur handler (when dropdown closes) */\n onBlur?: () => void;\n /** Validation rules */\n validation?: DropdownSelectValidation;\n /** Error message to display */\n error?: string;\n /** Disabled state */\n disabled?: boolean;\n /** Dark mode */\n darkMode?: boolean;\n /** Additional class */\n className?: string;\n}\n\n/**\n * DropdownSelect molecule combining a Dropdown trigger with a\n * checkbox list panel. Supports multi-select with validation.\n */\nexport const DropdownSelect: React.FC<DropdownSelectProps> = ({\n label,\n name,\n placeholder = 'Select from below',\n options,\n value: controlledValue,\n onChange,\n onBlur,\n validation,\n error,\n disabled = false,\n darkMode = false,\n className,\n}) => {\n const [internalValue, setInternalValue] = useState<string[]>([]);\n const selectedValues = controlledValue !== undefined ? controlledValue : internalValue;\n\n const handleToggleOption = useCallback(\n (optionValue: string, checked: boolean) => {\n const next = checked ? [...selectedValues, optionValue] : selectedValues.filter((v) => v !== optionValue);\n\n setInternalValue(next);\n onChange?.(next);\n },\n [selectedValues, onChange]\n );\n\n const handleDropdownClose = useCallback(\n (isOpen: boolean) => {\n if (!isOpen) {\n onBlur?.();\n }\n },\n [onBlur]\n );\n\n // No display value — always show placeholder regardless of selection\n const displayValue = '';\n\n const classes = ['dropdown-select', className].filter(Boolean).join(' ');\n\n return (\n <div className={classes} data-dark-mode={darkMode || undefined}>\n <Dropdown\n label={label}\n name={name}\n placeholder={placeholder}\n displayValue={displayValue}\n onToggle={handleDropdownClose}\n error={error}\n disabled={disabled}\n darkMode={darkMode}\n >\n <div className=\"dropdown-select__options\" role=\"group\" aria-label={label}>\n {options.map((option) => (\n <div\n key={option.value}\n className=\"dropdown-select__option\"\n role=\"option\"\n aria-selected={selectedValues.includes(option.value)}\n >\n <Checkbox\n label={option.label}\n name={`${name}-${option.value}`}\n checked={selectedValues.includes(option.value)}\n onChange={(checked) => handleToggleOption(option.value, checked)}\n disabled={disabled}\n darkMode={darkMode}\n />\n </div>\n ))}\n </div>\n </Dropdown>\n </div>\n );\n};\n","import React, { useState, useCallback, useRef } from 'react';\nimport { Button } from '@/components/atoms/Button';\nimport { Grid, GridItem, GridProps, GridItemProps } from '@/components/atoms/Grid';\nimport { Heading, HeadingLevel } from '@/components/atoms/Heading';\nimport { TextInput, TextInputValidation } from '@/components/atoms/TextInput';\nimport {\n DropdownSelect,\n DropdownSelectOption,\n DropdownSelectValidation,\n} from '@/components/molecules/primax/DropdownSelect';\nimport './Subscribe.scss';\nimport { Paragraph } from '@/components/atoms/Paragraph';\nimport { Container } from '@/components/atoms/Container';\n\nexport interface SubscribeField {\n /** Unique field name (used as form data key) */\n name: string;\n /** Field label */\n label: string;\n /** Input type — includes 'dropdown-select' for multi-select dropdown */\n type?: 'text' | 'email' | 'tel' | 'url' | 'dropdown-select';\n /** Placeholder text */\n placeholder?: string;\n /** Column span — number or responsive object { sm, md, lg } */\n colSpan?: GridItemProps['colSpan'];\n /** Validation rules (for text inputs) */\n validation?: TextInputValidation;\n /** Options for dropdown-select type */\n options?: DropdownSelectOption[];\n /** Validation rules for dropdown-select type */\n dropdownValidation?: DropdownSelectValidation;\n}\n\nexport interface SubscribeProps {\n /** Section heading */\n heading: string;\n /** Heading semantic level */\n headingLevel?: HeadingLevel;\n /** Form field configuration */\n fields: SubscribeField[];\n /** Grid columns — number, string, or responsive object { sm, md, lg } */\n columns?: GridProps['columns'];\n /** Grid gap — string or responsive object { sm, md, lg } */\n gap?: GridProps['gap'];\n /** Grid row gap — string or responsive object { sm, md, lg } */\n rowGap?: GridProps['rowGap'];\n /** Grid column gap — string or responsive object { sm, md, lg } */\n columnGap?: GridProps['columnGap'];\n /** Submit button label */\n submitLabel?: string;\n /** Loading state — disables button and shows spinner */\n loading?: boolean;\n /** Disclaimer text (supports HTML for links) */\n disclaimer?: string;\n /** Called with collected form data on valid submission */\n onSubmit?: (data: Record<string, string>) => void;\n /** Async or cross-field validation escape hatch. Return error map or null. */\n onValidate?: (data: Record<string, string>) => Record<string, string> | null | Promise<Record<string, string> | null>;\n /** Called when validation fails with the error map */\n onError?: (errors: Record<string, string>) => void;\n /** Dark mode */\n darkMode?: boolean;\n /** Additional class */\n className?: string;\n}\n\n/** Email regex — simple but covers common cases */\nconst EMAIL_RE = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\nfunction validateField(value: string, field: SubscribeField): string | undefined {\n // Handle dropdown-select validation\n if (field.type === 'dropdown-select') {\n const v = field.dropdownValidation;\n if (!v) return undefined;\n const custom = v.errorMessage;\n const selections = value ? value.split(',') : [];\n\n if (v.required && selections.length === 0) {\n return custom ?? 'Please select at least one option.';\n }\n if (v.minSelections && selections.length < v.minSelections) {\n return custom ?? `Please select at least ${v.minSelections} option(s).`;\n }\n if (v.maxSelections && selections.length > v.maxSelections) {\n return custom ?? `Please select no more than ${v.maxSelections} option(s).`;\n }\n return undefined;\n }\n\n // Handle text input validation\n const v = field.validation;\n if (!v) return undefined;\n const custom = v.errorMessage;\n\n if (v.required && !value.trim()) {\n return custom ?? `This field is required.`;\n }\n if (v.email && value.trim() && !EMAIL_RE.test(value.trim())) {\n return custom ?? 'Please enter a valid email address.';\n }\n if (v.minLength && value.trim().length < v.minLength) {\n return custom ?? `Must be at least ${v.minLength} characters.`;\n }\n if (v.maxLength && value.trim().length > v.maxLength) {\n return custom ?? `Must be no more than ${v.maxLength} characters.`;\n }\n if (v.pattern && !v.pattern.test(value.trim())) {\n return custom ?? `${field.label} is not valid.`;\n }\n return undefined;\n}\n\nexport const Subscribe: React.FC<SubscribeProps> = ({\n heading,\n headingLevel = 'h2',\n fields,\n columns = { sm: 1, md: 2, lg: 3 },\n gap,\n rowGap,\n columnGap,\n submitLabel = 'Submit',\n loading = false,\n disclaimer,\n onSubmit,\n onValidate,\n onError,\n darkMode = false,\n className,\n}) => {\n const formRef = useRef<HTMLFormElement>(null);\n\n const [values, setValues] = useState<Record<string, string>>(() =>\n Object.fromEntries(fields.map((f) => [f.name, '']))\n );\n const [dropdownValues, setDropdownValues] = useState<Record<string, string[]>>(() =>\n Object.fromEntries(fields.filter((f) => f.type === 'dropdown-select').map((f) => [f.name, []]))\n );\n const [errors, setErrors] = useState<Record<string, string>>({});\n const [touched, setTouched] = useState<Record<string, boolean>>({});\n\n const handleChange = useCallback((name: string, value: string) => {\n setValues((prev) => ({ ...prev, [name]: value }));\n // Clear error on change\n setErrors((prev) => {\n if (!prev[name]) return prev;\n const next = { ...prev };\n delete next[name];\n return next;\n });\n }, []);\n\n const handleDropdownChange = useCallback((name: string, selected: string[]) => {\n setDropdownValues((prev) => ({ ...prev, [name]: selected }));\n // Store as comma-separated in values for form submission\n setValues((prev) => ({ ...prev, [name]: selected.join(',') }));\n // Clear error on change\n setErrors((prev) => {\n if (!prev[name]) return prev;\n const next = { ...prev };\n delete next[name];\n return next;\n });\n }, []);\n\n const handleBlur = useCallback(\n (field: SubscribeField) => {\n setTouched((prev) => ({ ...prev, [field.name]: true }));\n const err = validateField(values[field.name] ?? '', field);\n if (err) {\n setErrors((prev) => ({ ...prev, [field.name]: err }));\n }\n },\n [values]\n );\n\n const handleSubmit = useCallback(\n async (e: React.FormEvent) => {\n e.preventDefault();\n\n // Run built-in validation\n const fieldErrors: Record<string, string> = {};\n fields.forEach((field) => {\n const err = validateField(values[field.name] ?? '', field);\n if (err) fieldErrors[field.name] = err;\n });\n\n // Run custom validation if provided\n if (onValidate) {\n const custom = await onValidate(values);\n if (custom) Object.assign(fieldErrors, custom);\n }\n\n if (Object.keys(fieldErrors).length > 0) {\n setErrors(fieldErrors);\n setTouched(Object.fromEntries(fields.map((f) => [f.name, true])));\n onError?.(fieldErrors);\n return;\n }\n\n onSubmit?.(values);\n },\n [fields, values, onSubmit, onValidate, onError]\n );\n\n const hasErrors = Object.keys(errors).length > 0;\n\n const classes = [className].filter(Boolean).join(' ');\n\n return (\n <section className={classes} data-dark-mode={darkMode || undefined} aria-label={heading}>\n <Container className='subscribe' >\n <Heading level={headingLevel} variant=\"sectionDivider\" darkMode={darkMode} className=\"subscribe__heading\">\n {heading}\n </Heading>\n\n <form ref={formRef} className=\"subscribe__form\" onSubmit={handleSubmit} noValidate>\n <Grid columns={columns} gap={gap} className=\"subscribe__fields\" rowGap={rowGap} columnGap={columnGap}>\n {fields.map((field) => (\n <GridItem key={field.name} colSpan={field.colSpan}>\n {field.type === 'dropdown-select' ? (\n <DropdownSelect\n name={field.name}\n label={field.label}\n placeholder={field.placeholder}\n options={field.options ?? []}\n value={dropdownValues[field.name] ?? []}\n onChange={(selected) => handleDropdownChange(field.name, selected)}\n onBlur={() => handleBlur(field)}\n validation={field.dropdownValidation}\n error={touched[field.name] ? errors[field.name] : undefined}\n darkMode={darkMode}\n />\n ) : (\n <TextInput\n name={field.name}\n label={field.label}\n type={field.type ?? 'text'}\n placeholder={field.placeholder}\n value={values[field.name] ?? ''}\n onChange={(v) => handleChange(field.name, v)}\n onBlur={() => handleBlur(field)}\n validation={field.validation}\n error={touched[field.name] ? errors[field.name] : undefined}\n darkMode={darkMode}\n />\n )}\n </GridItem>\n ))}\n </Grid>\n\n <Button\n buttonType=\"general\"\n size=\"md\"\n darkMode={darkMode}\n disabled={loading || hasErrors}\n className=\"subscribe__submit\"\n onClick={() => formRef.current?.requestSubmit()}\n >\n {loading ? 'Submitting' : submitLabel}\n </Button>\n\n {disclaimer && (\n <Paragraph\n className=\"subscribe__disclaimer\"\n darkMode={darkMode}\n dangerouslySetInnerHTML={{ __html: disclaimer }}\n />\n )}\n </form>\n </Container>\n </section>\n );\n};\n","/**\n * Advisors Plus color system\n * Carnation (primary), Medium Purple (secondary), and Royal Blue (tertiary) color scheme\n */\n\nimport { ColorSystem } from '../../core/color-system';\n\nexport const advisorsPlusColorSystem: ColorSystem = {\n // ============================================================================\n // TIER 1: BASE COLORS\n // ============================================================================\n primitives: {\n // Brand Primary Colors (from Figma brand palette)\n 'color-brand-navy': '#091757',\n 'color-brand-coral': '#F6525F',\n 'color-brand-midnight': '#0B103A',\n 'color-brand-light-gray': '#E9EBF2',\n 'color-brand-dark-gray': '#4A4E57',\n 'color-brand-blue': '#2E6BF0',\n\n // Carnation - Primary\n 'color-carnation-50': '#F9F9F9',\n 'color-carnation-100': '#F1F1F1',\n 'color-carnation-200': '#EDDCDE',\n 'color-carnation-300': '#F6B4BB',\n 'color-carnation-400': '#FB7886',\n 'color-carnation-500': '#F6525F',\n 'color-carnation-600': '#E23837',\n 'color-carnation-700': '#C03225',\n 'color-carnation-800': '#9C3025',\n 'color-carnation-900': '#7E3028',\n 'color-carnation-950': '#481E18',\n\n // Medium Purple - Secondary\n 'color-medium-purple-50': '#E0E0E0',\n 'color-medium-purple-100': '#D6D6D8',\n 'color-medium-purple-200': '#C7C5DD',\n 'color-medium-purple-300': '#ADA8E6',\n 'color-medium-purple-400': '#8978F0',\n 'color-medium-purple-500': '#6F4DF3',\n 'color-medium-purple-600': '#5C27E8',\n 'color-medium-purple-700': '#4B18C7',\n 'color-medium-purple-800': '#3E1A9B',\n 'color-medium-purple-900': '#301875',\n 'color-medium-purple-950': '#1A054E',\n\n // Royalblue - Tertiary\n 'color-royal-blue-50': '#EDEDED',\n 'color-royal-blue-100': '#DEE3EA',\n 'color-royal-blue-200': '#BFD0EB',\n 'color-royal-blue-300': '#92B5EE',\n 'color-royal-blue-400': '#5B8DF1',\n 'color-royal-blue-500': '#2D6BF0',\n 'color-royal-blue-600': '#014CE5',\n 'color-royal-blue-700': '#0040C6',\n 'color-royal-blue-800': '#09369C',\n 'color-royal-blue-900': '#173276',\n 'color-royal-blue-950': '#111D3F',\n\n // Neutral\n 'color-neutral-50': '#FAFAFA',\n 'color-neutral-100': '#F5F5F5',\n 'color-neutral-200': '#E5E5E5',\n 'color-neutral-300': '#D4D4D4',\n 'color-neutral-400': '#A1A1A1',\n 'color-neutral-500': '#737373',\n 'color-neutral-600': '#525252',\n 'color-neutral-700': '#404040',\n 'color-neutral-800': '#262626',\n 'color-neutral-900': '#171717',\n 'color-neutral-950': '#0A0A0A',\n\n // Success - Green\n 'color-success-50': '#F0FDF4',\n 'color-success-100': '#DCFCE7',\n 'color-success-200': '#B9F8CF',\n 'color-success-300': '#7BF1A8',\n 'color-success-400': '#05DF72',\n 'color-success-500': '#00C950',\n 'color-success-600': '#00A63E',\n 'color-success-700': '#008236',\n 'color-success-800': '#016630',\n 'color-success-900': '#0D542B',\n 'color-success-950': '#032E15',\n\n // Warning - Amber\n 'color-warning-50': '#FFFBEB',\n 'color-warning-100': '#FEF3C6',\n 'color-warning-200': '#FEE685',\n 'color-warning-300': '#FFD230',\n 'color-warning-400': '#FFBA00',\n 'color-warning-500': '#FD9A00',\n 'color-warning-600': '#E17100',\n 'color-warning-700': '#BB4D00',\n 'color-warning-800': '#973C00',\n 'color-warning-900': '#7B3306',\n 'color-warning-950': '#461901',\n\n // Alert - Pink\n 'color-alert-50': '#FDF2F8',\n 'color-alert-100': '#FCE7F3',\n 'color-alert-200': '#FCCEE8',\n 'color-alert-300': '#FDA5D5',\n 'color-alert-400': '#FB64B6',\n 'color-alert-500': '#F6339A',\n 'color-alert-600': '#E60076',\n 'color-alert-700': '#C6005C',\n 'color-alert-800': '#A3004C',\n 'color-alert-900': '#861043',\n 'color-alert-950': '#510424',\n\n // Info - Sky\n 'color-info-50': '#F0F9FF',\n 'color-info-100': '#DFF2FE',\n 'color-info-200': '#B8E6FE',\n 'color-info-300': '#74D4FF',\n 'color-info-400': '#00BCFF',\n 'color-info-500': '#00A6F4',\n 'color-info-600': '#0084D1',\n 'color-info-700': '#0069A8',\n 'color-info-800': '#00598A',\n 'color-info-900': '#024A70',\n 'color-info-950': '#052F4A',\n\n // Base\n 'color-white': '#FFFFFF',\n 'color-black': '#000000',\n 'color-transparent': 'transparent',\n },\n\n // ============================================================================\n // TIER 2: SEMANTIC COLOR TOKENS\n // ============================================================================\n semantic: {\n // Background colors\n 'tier1-theme-color-background-default-primary-default': 'var(--color-brand-navy)',\n 'tier1-theme-color-background-default-primary-hover': 'var(--color-brand-midnight)',\n 'tier1-theme-color-background-default-primary-active': 'var(--color-brand-midnight)',\n 'tier1-theme-color-background-default-secondary-default': 'var(--color-brand-light-gray)',\n 'tier1-theme-color-background-default-secondary-hover': 'var(--color-neutral-200)',\n 'tier1-theme-color-background-default-tertiary-default': 'var(--color-neutral-100)',\n 'tier1-theme-color-background-default-tertiary-hover': 'var(--color-neutral-200)',\n 'tier1-theme-color-background-accent-primary-default': 'var(--color-carnation-500)',\n 'tier1-theme-color-background-accent-primary-hover': 'var(--color-carnation-700)',\n 'tier1-theme-color-background-accent-primary-active': 'var(--color-carnation-700)',\n 'tier1-theme-color-background-default-inverse-default': 'var(--color-brand-midnight)',\n 'tier1-theme-color-background-utility-overlay-default': 'rgba(0, 0, 0, 0.5)',\n\n // Content (text) colors\n 'tier1-theme-color-content-title-primary-default': 'var(--color-brand-navy)',\n 'tier1-theme-color-content-default-primary-default': 'var(--color-brand-navy)',\n 'tier1-theme-color-content-default-secondary-default': 'var(--color-brand-dark-gray)',\n 'tier1-theme-color-content-default-tertiary-default': 'var(--color-neutral-600)',\n 'tier1-theme-color-content-default-inverse-default': 'var(--color-white)',\n 'tier1-theme-color-content-disabled-subtle-default': 'var(--color-neutral-400)',\n 'tier1-theme-color-content-accent-primary-default': 'var(--color-carnation-500)',\n 'tier1-theme-color-content-default-link-default': 'var(--color-brand-blue)',\n 'tier1-theme-color-content-default-link-hover': 'var(--color-brand-navy)',\n\n // Border colors\n 'tier1-theme-color-border-default-subtle-default': 'var(--color-neutral-100)',\n 'tier1-theme-color-border-default-default-default': 'var(--color-neutral-200)',\n 'tier1-theme-color-border-default-strong-default': 'var(--color-neutral-300)',\n 'tier1-theme-color-border-focus-primary-focus': 'var(--color-brand-blue)',\n 'tier1-theme-color-border-default-white-default': 'var(--color-white)',\n\n // State colors\n 'tier1-theme-color-background-utility-success-default': 'var(--color-success-50)',\n 'tier1-theme-color-content-utility-success-default': 'var(--color-success-500)',\n 'tier1-theme-color-content-utility-success-hover': 'var(--color-success-600)',\n 'tier1-theme-color-background-utility-warning-default': 'var(--color-warning-50)',\n 'tier1-theme-color-content-utility-warning-default': 'var(--color-warning-500)',\n 'tier1-theme-color-content-utility-warning-hover': 'var(--color-warning-600)',\n 'tier1-theme-color-background-utility-error-default': 'var(--color-alert-50)',\n 'tier1-theme-color-content-utility-error-default': 'var(--color-alert-500)',\n 'tier1-theme-color-content-utility-error-hover': 'var(--color-alert-600)',\n 'tier1-theme-color-background-utility-info-default': 'var(--color-info-50)',\n 'tier1-theme-color-content-utility-info-default': 'var(--color-info-500)',\n 'tier1-theme-color-content-utility-info-hover': 'var(--color-info-600)',\n\n // Interactive colors\n 'tier1-theme-color-background-default-interactive-default': 'var(--color-brand-coral)',\n 'tier1-theme-color-background-default-interactive-hover': 'var(--color-carnation-600)',\n 'tier1-theme-color-background-default-interactive-active': 'var(--color-carnation-700)',\n 'tier1-theme-color-background-default-interactive-disabled': 'var(--color-neutral-300)',\n\n // Legacy semantic tokens for backward compatibility\n primary: 'var(--tier1-theme-color-background-default-primary-default)',\n primaryHover: 'var(--tier1-theme-color-background-default-primary-hover)',\n primaryActive: 'var(--tier1-theme-color-background-default-primary-active)',\n primaryText: 'var(--tier1-theme-color-content-default-inverse-default)',\n secondary: 'var(--color-medium-purple-400)',\n secondaryHover: 'var(--color-medium-purple-600)',\n secondaryActive: 'var(--color-medium-purple-600)',\n secondaryText: 'var(--tier1-theme-color-content-default-inverse-default)',\n accent: 'var(--tier1-theme-color-background-accent-primary-default)',\n accentHover: 'var(--tier1-theme-color-background-accent-primary-hover)',\n accentActive: 'var(--tier1-theme-color-background-accent-primary-active)',\n accentText: 'var(--tier1-theme-color-content-default-inverse-default)',\n tertiary: 'var(--color-neutral-200)',\n tertiaryHover: 'var(--color-neutral-300)',\n tertiaryActive: 'var(--color-neutral-400)',\n tertiaryText: 'var(--tier1-theme-color-content-default-primary-default)',\n textPrimary: 'var(--tier1-theme-color-content-default-primary-default)',\n textSecondary: 'var(--tier1-theme-color-content-default-secondary-default)',\n textTertiary: 'var(--tier1-theme-color-content-default-tertiary-default)',\n textInverse: 'var(--tier1-theme-color-content-default-inverse-default)',\n textDisabled: 'var(--tier1-theme-color-content-disabled-subtle-default)',\n textLink: 'var(--tier1-theme-color-content-default-link-default)',\n textLinkHover: 'var(--tier1-theme-color-content-default-link-hover)',\n bgPrimary: 'var(--tier1-theme-color-background-default-primary-default)',\n bgSecondary: 'var(--tier1-theme-color-background-default-secondary-default)',\n bgTertiary: 'var(--tier1-theme-color-background-default-tertiary-default)',\n bgInverse: 'var(--tier1-theme-color-background-default-inverse-default)',\n bgOverlay: 'var(--tier1-theme-color-background-utility-overlay-default)',\n borderDefault: 'var(--tier1-theme-color-border-default-default-default)',\n borderSubtle: 'var(--tier1-theme-color-border-default-subtle-default)',\n borderStrong: 'var(--tier1-theme-color-border-default-strong-default)',\n borderFocus: 'var(--tier1-theme-color-border-focus-primary-focus)',\n borderWhite: 'var(--tier1-theme-color-border-default-white-default)',\n stateSuccess: 'var(--tier1-theme-color-content-utility-success-default)',\n stateSuccessHover: 'var(--tier1-theme-color-content-utility-success-hover)',\n stateSuccessBg: 'var(--tier1-theme-color-background-utility-success-default)',\n stateWarning: 'var(--tier1-theme-color-content-utility-warning-default)',\n stateWarningHover: 'var(--tier1-theme-color-content-utility-warning-hover)',\n stateWarningBg: 'var(--tier1-theme-color-background-utility-warning-default)',\n stateError: 'var(--tier1-theme-color-content-utility-error-default)',\n stateErrorHover: 'var(--tier1-theme-color-content-utility-error-hover)',\n stateErrorBg: 'var(--tier1-theme-color-background-utility-error-default)',\n stateInfo: 'var(--tier1-theme-color-content-utility-info-default)',\n stateInfoHover: 'var(--tier1-theme-color-content-utility-info-hover)',\n stateInfoBg: 'var(--tier1-theme-color-background-utility-info-default)',\n interactivePrimary: 'var(--tier1-theme-color-background-default-interactive-default)',\n interactivePrimaryHover: 'var(--tier1-theme-color-background-default-interactive-hover)',\n interactivePrimaryActive: 'var(--tier1-theme-color-background-default-interactive-active)',\n interactiveSecondary: 'var(--color-neutral-200)',\n interactiveSecondaryHover: 'var(--color-neutral-300)',\n interactiveSecondaryActive: 'var(--color-neutral-400)',\n interactiveDisabled: 'var(--tier1-theme-color-background-default-interactive-disabled)',\n\n // ============================================================================\n // TIER 3: COMPONENT COLOR TOKENS\n // ============================================================================\n\n // Button component tokens\n 'tier3-theme-button-general-background-default': 'var(--color-medium-purple-400)',\n 'tier3-theme-button-general-background-hover': 'var(--color-medium-purple-600)',\n 'tier3-theme-button-general-background-active': 'var(--color-medium-purple-600)',\n 'tier3-theme-button-general-content-default': 'var(--tier1-theme-color-content-default-inverse-default)',\n 'tier3-theme-button-general-content-hover': 'var(--tier1-theme-color-content-default-inverse-default)',\n 'tier3-theme-button-general-border-default': 'var(--color-medium-purple-400)',\n 'tier3-theme-button-general-border-hover': 'var(--color-medium-purple-600)',\n\n 'tier3-theme-button-cta-background-default': 'var(--tier1-theme-color-background-accent-primary-default)',\n 'tier3-theme-button-cta-background-hover': 'var(--tier1-theme-color-background-accent-primary-hover)',\n 'tier3-theme-button-cta-background-active': 'var(--tier1-theme-color-background-accent-primary-active)',\n 'tier3-theme-button-cta-content-default': 'var(--tier1-theme-color-content-default-inverse-default)',\n 'tier3-theme-button-cta-content-hover': 'var(--tier1-theme-color-content-default-inverse-default)',\n 'tier3-theme-button-cta-border-default': 'var(--tier1-theme-color-border-default-white-default)',\n 'tier3-theme-button-cta-border-hover': 'var(--color-medium-purple-600)',\n\n 'tier3-theme-button-secondary-background-default': 'transparent',\n 'tier3-theme-button-secondary-background-hover': 'var(--tier1-theme-color-background-default-primary-default)',\n 'tier3-theme-button-secondary-background-active': 'var(--tier1-theme-color-background-default-primary-active)',\n 'tier3-theme-button-secondary-content-default': 'var(--tier1-theme-color-background-default-primary-default)',\n 'tier3-theme-button-secondary-content-hover': 'var(--tier1-theme-color-content-default-inverse-default)',\n 'tier3-theme-button-secondary-border-default': 'var(--tier1-theme-color-background-default-primary-default)',\n 'tier3-theme-button-secondary-border-hover': 'var(--tier1-theme-color-background-default-primary-default)',\n\n 'tier3-theme-button-outline-background-default': 'transparent',\n 'tier3-theme-button-outline-background-hover': 'var(--tier1-theme-color-background-default-secondary-default)',\n 'tier3-theme-button-outline-background-active': 'var(--tier1-theme-color-background-default-tertiary-default)',\n 'tier3-theme-button-outline-content-default': 'var(--tier1-theme-color-content-default-primary-default)',\n 'tier3-theme-button-outline-content-hover': 'var(--tier1-theme-color-content-default-primary-default)',\n 'tier3-theme-button-outline-border-default': 'var(--tier1-theme-color-border-default-default-default)',\n 'tier3-theme-button-outline-border-hover': 'var(--tier1-theme-color-border-default-strong-default)',\n\n 'tier3-theme-button-ghost-background-default': 'transparent',\n 'tier3-theme-button-ghost-background-hover': 'var(--tier1-theme-color-background-default-secondary-default)',\n 'tier3-theme-button-ghost-background-active': 'var(--tier1-theme-color-background-default-tertiary-default)',\n 'tier3-theme-button-ghost-content-default': 'var(--tier1-theme-color-content-default-primary-default)',\n 'tier3-theme-button-ghost-content-hover': 'var(--tier1-theme-color-content-default-primary-default)',\n 'tier3-theme-button-ghost-border-default': 'transparent',\n 'tier3-theme-button-ghost-border-hover': 'transparent',\n\n // Social media button tokens (using brand colors)\n 'tier3-theme-button-twitter-background-default': 'transparent',\n 'tier3-theme-button-twitter-background-hover': 'var(--color-brand-blue)',\n 'tier3-theme-button-twitter-background-active': 'var(--color-brand-navy)',\n 'tier3-theme-button-twitter-content-default': 'var(--color-brand-blue)',\n 'tier3-theme-button-twitter-content-hover': 'var(--color-white)',\n 'tier3-theme-button-twitter-content-active': 'var(--color-white)',\n 'tier3-theme-button-twitter-border-default': 'var(--color-brand-blue)',\n 'tier3-theme-button-twitter-border-hover': 'var(--color-brand-blue)',\n 'tier3-theme-button-twitter-border-active': 'var(--color-brand-navy)',\n\n 'tier3-theme-button-linkedin-background-default': 'transparent',\n 'tier3-theme-button-linkedin-background-hover': 'var(--color-brand-blue)',\n 'tier3-theme-button-linkedin-background-active': 'var(--color-brand-navy)',\n 'tier3-theme-button-linkedin-content-default': 'var(--color-brand-blue)',\n 'tier3-theme-button-linkedin-content-hover': 'var(--color-white)',\n 'tier3-theme-button-linkedin-content-active': 'var(--color-white)',\n 'tier3-theme-button-linkedin-border-default': 'var(--color-brand-blue)',\n 'tier3-theme-button-linkedin-border-hover': 'var(--color-brand-blue)',\n 'tier3-theme-button-linkedin-border-active': 'var(--color-brand-navy)',\n\n 'tier3-theme-button-facebook-background-default': 'transparent',\n 'tier3-theme-button-facebook-background-hover': 'var(--color-brand-blue)',\n 'tier3-theme-button-facebook-background-active': 'var(--color-brand-navy)',\n 'tier3-theme-button-facebook-content-default': 'var(--color-brand-blue)',\n 'tier3-theme-button-facebook-content-hover': 'var(--color-white)',\n 'tier3-theme-button-facebook-content-active': 'var(--color-white)',\n 'tier3-theme-button-facebook-border-default': 'var(--color-brand-blue)',\n 'tier3-theme-button-facebook-border-hover': 'var(--color-brand-blue)',\n 'tier3-theme-button-facebook-border-active': 'var(--color-brand-navy)',\n },\n};\n","/**\n * Advisors Plus theme configuration\n * Midnight blue and violet color scheme for financial advisory brand\n */\n\nimport { ThemeConfig } from '../core/types';\nimport { defaultTheme } from './default';\nimport { advisorsPlusColorSystem } from './color-systems/advisors-plus-colors';\n\nexport const advisorsPlusTheme: ThemeConfig = {\n ...defaultTheme,\n name: 'advisors-plus',\n fontImportUrl: [\n 'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap',\n 'https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,400;8..60,600;8..60,700&display=swap',\n ],\n\n // Three-tier color system\n colors: {\n primitives: advisorsPlusColorSystem.primitives,\n semantic: advisorsPlusColorSystem.semantic,\n },\n\n colorPalettes: [\n { name: 'Primary', bg: 'primary', text: 'primaryText' },\n { name: 'Secondary', bg: 'secondary', text: 'secondaryText' },\n { name: 'Accent', bg: 'accent', text: 'accentText' },\n { name: 'Tertiary', bg: 'tertiary', text: 'tertiaryText' },\n ],\n\n typography: {\n ...defaultTheme.typography,\n fontFamily: \"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",\n fontFamilyHeading: \"'Source Serif 4', Georgia, serif\",\n },\n\n components: {\n ...defaultTheme.components,\n cta: {\n ...defaultTheme.components.cta,\n },\n },\n\n // Inherit component tokens from default theme\n componentTokens: {\n ...defaultTheme.componentTokens,\n\n // Override paragraph tokens for Advisors Plus specific sizes\n paragraph: {\n // Size variants for Advisors Plus (lg, md, sm)\n sizes: {\n lg: {\n fontSize: '21px',\n lineHeight: '1.5',\n },\n md: {\n fontSize: '16px',\n lineHeight: '1.5',\n },\n sm: {\n fontSize: '14px',\n lineHeight: '1.5',\n },\n },\n },\n },\n};\n","/**\n * Primax color system\n * Brilliant Blue, Neon Mint, and Electric Berry color scheme\n */\n\nimport { ColorSystem } from '../../core/color-system';\n\nexport const primaxColorSystem: ColorSystem = {\n // ============================================================================\n // TIER 1: BASE COLORS\n // ============================================================================\n primitives: {\n // Primary (Blue scale)\n 'color-primary-50': '#E0FAFF',\n 'color-primary-100': '#D1F0FF',\n 'color-primary-200': '#BEDFFF',\n 'color-primary-300': '#A6C8FF',\n 'color-primary-400': '#78A7FB',\n 'color-primary-500': '#3B7EFD',\n 'color-primary-600': '#0061FF', // Key color\n 'color-primary-700': '#1944CE',\n 'color-primary-800': '#203399',\n 'color-primary-900': '#1B2369',\n 'color-primary-950': '#0D0942', // Key color (Navy)\n\n // Secondary (Mint/Teal scale)\n 'color-secondary-50': '#DBFFF6',\n 'color-secondary-100': '#BEFFEB',\n 'color-secondary-200': '#00FFD2', // Key color\n 'color-secondary-300': '#2EE6BF',\n 'color-secondary-400': '#06C3A0',\n 'color-secondary-500': '#1A9C80',\n 'color-secondary-600': '#05816A',\n 'color-secondary-700': '#026754',\n 'color-secondary-800': '#084E3F',\n 'color-secondary-900': '#03372B',\n 'color-secondary-950': '#012119',\n\n // Accent (Pink/Magenta scale)\n 'color-accent-50': '#FFE7EE',\n 'color-accent-100': '#FFDAE2',\n 'color-accent-200': '#FFC7D0',\n 'color-accent-300': '#FEAEB9',\n 'color-accent-400': '#FE748F',\n 'color-accent-500': '#FE0066', // Key color\n 'color-accent-600': '#C91452',\n 'color-accent-700': '#A20D40',\n 'color-accent-800': '#7D062F',\n 'color-accent-900': '#5A011F',\n 'color-accent-950': '#380211',\n\n // Neutral (Gray scale)\n 'color-neutral-00': '#FFFFFF',\n 'color-neutral-50': '#F5F8FF',\n 'color-neutral-75': '#F7F7F7',\n 'color-neutral-100': '#E7EFFD',\n 'color-neutral-200': '#D6DEEE',\n 'color-neutral-250': '#D9D9D9',\n 'color-neutral-300': '#BFC8D8',\n 'color-neutral-400': '#A0A8B8',\n 'color-neutral-500': '#7F8696',\n 'color-neutral-600': '#6B7280', // Key color\n 'color-neutral-700': '#525865',\n 'color-neutral-800': '#3D424D',\n 'color-neutral-850': '#3D3D3D',\n 'color-neutral-900': '#2A2E35',\n 'color-neutral-950': '#171B21',\n 'color-neutral-1000': '#000000',\n\n // Success (Teal scale)\n 'color-success-50': '#E3FFFA',\n 'color-success-100': '#BBFEF2',\n 'color-success-200': '#79F8E4',\n 'color-success-300': '#5AE1CE',\n 'color-success-400': '#14B8A6', // Key color\n 'color-success-500': '#1B9A8B',\n 'color-success-600': '#068073',\n 'color-success-700': '#03675C',\n 'color-success-800': '#004E45',\n 'color-success-900': '#033630',\n 'color-success-950': '#01201C',\n\n // Warning (Yellow scale)\n 'color-warning-50': '#FFF7DA',\n 'color-warning-100': '#FEEDC7',\n 'color-warning-200': '#FED987',\n 'color-warning-300': '#EAB308', // Key color\n 'color-warning-400': '#D19F03',\n 'color-warning-500': '#A68015',\n 'color-warning-600': '#8B6904',\n 'color-warning-700': '#6F5301',\n 'color-warning-800': '#543F06',\n 'color-warning-900': '#3B2B02',\n 'color-warning-950': '#241900',\n\n // Error (Red scale)\n 'color-error-50': '#FFECE7',\n 'color-error-100': '#FFDFD9',\n 'color-error-200': '#FFCDC6',\n 'color-error-300': '#FDB1AA',\n 'color-error-400': '#FD7A72',\n 'color-error-500': '#EF4444', // Key color\n 'color-error-600': '#C8252B',\n 'color-error-700': '#A4111C',\n 'color-error-800': '#7F0813',\n 'color-error-900': '#5B030A',\n 'color-error-950': '#3A0003',\n\n // Info (Cyan scale)\n 'color-info-50': '#E2FDFF',\n 'color-info-100': '#D3F4FF',\n 'color-info-200': '#BEE4FD',\n 'color-info-300': '#89D1FE',\n 'color-info-400': '#0EA5E9', // Key color\n 'color-info-500': '#0D90CC',\n 'color-info-600': '#0F77A8',\n 'color-info-700': '#095F88',\n 'color-info-800': '#044868',\n 'color-info-900': '#01324A',\n 'color-info-950': '#011D2D',\n\n // Base\n 'color-white': '#FFFFFF',\n 'color-black': '#000000',\n 'color-transparent': 'transparent',\n },\n\n // ============================================================================\n // TIER 2: SEMANTIC COLOR TOKENS\n // ============================================================================\n semantic: {\n // ============================================================================\n // LIGHT BACKGROUND SEMANTIC TOKENS\n // ============================================================================\n\n // Surface colors (light backgrounds)\n 'color-surface-canvas': 'var(--color-neutral-00)',\n 'color-surface-default': 'var(--color-neutral-50)',\n 'color-surface-subtle': 'var(--color-neutral-100)',\n 'color-surface-raised': 'var(--color-neutral-50)',\n 'color-surface-sunken': 'var(--color-neutral-200)',\n 'color-surface-inverse': 'var(--color-neutral-900)',\n 'color-surface-icons': 'var(--color-accent-500)',\n\n // Text colors (light backgrounds)\n 'color-text-primary': 'var(--color-primary-950)',\n 'color-text-secondary': 'var(--color-neutral-800)',\n 'color-text-tertiary': 'var(--color-neutral-500)',\n 'color-text-caption': 'var(--color-neutral-600)',\n 'color-text-disabled': 'var(--color-neutral-400)',\n 'color-text-on-brand': 'var(--color-neutral-00)',\n 'color-text-inverse': 'var(--color-primary-950)',\n 'color-text-forground': 'var(--color-neutral-00)',\n\n // Link colors (light backgrounds)\n 'color-text-link-default': 'var(--color-primary-600)',\n 'color-text-link-hover': 'var(--color-primary-700)',\n 'color-text-link-active': 'var(--color-primary-800)',\n 'color-text-link-visited': 'var(--color-primary-500)',\n\n // Border colors (light backgrounds)\n 'color-border-default': 'var(--color-primary-600)',\n 'color-border-subtle': 'var(--color-neutral-100)',\n 'color-border-strong': 'var(--color-primary-950)',\n 'color-border-focus-ring': 'var(--color-primary-600)',\n 'color-border-ghost': 'var(--color-primary-950)',\n\n // Action colors (light backgrounds)\n 'color-action-primary-default': 'var(--color-primary-600)',\n 'color-action-primary-foreground': 'var(--color-neutral-00)',\n 'color-action-primary-hover': 'var(--color-secondary-200)',\n 'color-action-primary-inverse': 'var(--color-primary-950)',\n 'color-action-primary-active': 'var(--color-primary-600)',\n 'color-action-primary-disabled': 'var(--color-neutral-500)',\n\n 'color-action-secondary-default': 'var(--color-primary-600)',\n 'color-action-secondary-foreground': 'var(--color-primary-600)',\n 'color-action-secondary-hover': 'var(--color-primary-950)',\n\n 'color-action-danger-default': 'var(--color-error-600)',\n 'color-action-danger-foreground': 'var(--color-error-500)',\n 'color-action-danger-hover': 'var(--color-error-700)',\n\n 'color-action-ghost-foreground': 'var(--color-primary-600)',\n 'color-action-ghost-hover-fg': 'var(--color-primary-950)',\n 'color-action-ghost-focus': 'var(--color-primary-600)',\n\n // Feedback colors (light backgrounds)\n 'color-feedback-success-background': 'var(--color-success-50)',\n 'color-feedback-success-foreground': 'var(--color-success-50)',\n 'color-feedback-success-border': 'var(--color-success-300)',\n 'color-feedback-success-text': 'var(--color-success-700)',\n\n 'color-feedback-error-background': 'var(--color-error-50)',\n 'color-feedback-error-foreground': 'var(--color-error-50)',\n 'color-feedback-error-border': 'var(--color-error-300)',\n 'color-feedback-error-text': 'var(--color-error-700)',\n\n 'color-feedback-warning-background': 'var(--color-warning-50)',\n 'color-feedback-warning-foreground': 'var(--color-warning-50)',\n 'color-feedback-warning-border': 'var(--color-warning-300)',\n 'color-feedback-warning-text': 'var(--color-warning-700)',\n\n 'color-feedback-info-background': 'var(--color-info-50)',\n 'color-feedback-info-foreground': 'var(--color-info-50)',\n 'color-feedback-info-border': 'var(--color-info-300)',\n 'color-feedback-info-text': 'var(--color-info-700)',\n\n // Overlay and state colors (light backgrounds)\n 'color-overlay-scrim': 'var(--color-neutral-900)',\n 'color-state-hover': 'var(--color-neutral-900)',\n 'color-state-active': 'var(--color-neutral-900)',\n\n // ============================================================================\n // DARK BACKGROUND SEMANTIC TOKENS\n // ============================================================================\n\n // Surface colors (dark backgrounds)\n 'color-surface-canvas-dark': 'var(--color-primary-950)',\n 'color-surface-default-dark': 'var(--color-neutral-900)',\n 'color-surface-subtle-dark': 'var(--color-neutral-800)',\n 'color-surface-raised-dark': 'var(--color-neutral-700)',\n 'color-surface-sunken-dark': 'var(--color-neutral-950)',\n 'color-surface-inverse-dark': 'var(--color-neutral-50)',\n 'color-surface-icons-dark': 'var(--color-accent-500)',\n\n // Text colors (dark backgrounds)\n 'color-text-primary-dark': 'var(--color-neutral-50)',\n 'color-text-secondary-dark': 'var(--color-neutral-200)',\n 'color-text-tertiary-dark': 'var(--color-neutral-400)',\n 'color-text-caption-dark': 'var(--color-neutral-300)',\n 'color-text-disabled-dark': 'var(--color-neutral-600)',\n 'color-text-on-brand-dark': 'var(--color-primary-950)',\n 'color-text-inverse-dark': 'var(--color-primary-950)',\n 'color-text-forground-dark': 'var(--color-neutral-1000)',\n\n // Link colors (dark backgrounds)\n 'color-text-link-default-dark': 'var(--color-primary-400)',\n 'color-text-link-hover-dark': 'var(--color-primary-300)',\n 'color-text-link-active-dark': 'var(--color-primary-200)',\n 'color-text-link-visited-dark': 'var(--color-primary-500)',\n\n // Border colors (dark backgrounds)\n 'color-border-default-dark': 'var(--color-neutral-00)',\n 'color-border-subtle-dark': 'var(--color-neutral-900)',\n 'color-border-strong-dark': 'var(--color-primary-950)',\n 'color-border-focus-ring-dark': 'var(--color-primary-600)',\n 'color-border-ghost-dark': 'var(--color-secondary-200)',\n\n // Action colors (dark backgrounds)\n 'color-action-primary-default-dark': 'var(--color-primary-600)',\n 'color-action-primary-foreground-dark': 'var(--color-neutral-00)',\n 'color-action-primary-hover-dark': 'var(--color-secondary-200)',\n 'color-action-primary-inverse-dark': 'var(--color-secondary-200)',\n 'color-action-primary-active-dark': 'var(--color-primary-600)',\n 'color-action-primary-disabled-dark': 'var(--color-neutral-500)',\n\n 'color-action-secondary-default-dark': 'var(--color-secondary-200)',\n 'color-action-secondary-foreground-dark': 'var(--color-neutral-00)',\n 'color-action-secondary-hover-dark': 'var(--color-neutral-00)',\n\n 'color-action-danger-default-dark': 'var(--color-error-600)',\n 'color-action-danger-foreground-dark': 'var(--color-error-500)',\n 'color-action-danger-hover-dark': 'var(--color-error-600)',\n 'color-action-danger-border-hover-dark': 'var(--color-error-400)',\n\n 'color-action-ghost-foreground-dark': 'var(--color-primary-950)',\n 'color-action-ghost-hover-fg-dark': 'var(--color-secondary-200)',\n 'color-action-ghost-focus-dark': 'var(--color-neutral-00)',\n\n // Feedback colors (dark backgrounds)\n 'color-feedback-success-background-dark': 'var(--color-success-950)',\n 'color-feedback-success-foreground-dark': 'var(--color-success-950)',\n 'color-feedback-success-border-dark': 'var(--color-success-700)',\n 'color-feedback-success-text-dark': 'var(--color-success-400)',\n\n 'color-feedback-error-background-dark': 'var(--color-error-950)',\n 'color-feedback-error-foreground-dark': 'var(--color-error-950)',\n 'color-feedback-error-border-dark': 'var(--color-error-700)',\n 'color-feedback-error-text-dark': 'var(--color-error-400)',\n\n 'color-feedback-warning-background-dark': 'var(--color-warning-950)',\n 'color-feedback-warning-foreground-dark': 'var(--color-warning-950)',\n 'color-feedback-warning-border-dark': 'var(--color-warning-700)',\n 'color-feedback-warning-text-dark': 'var(--color-warning-400)',\n\n 'color-feedback-info-background-dark': 'var(--color-info-950)',\n 'color-feedback-info-foreground-dark': 'var(--color-info-950)',\n 'color-feedback-info-border-dark': 'var(--color-info-700)',\n 'color-feedback-info-text-dark': 'var(--color-info-400)',\n\n // Overlay and state colors (dark backgrounds)\n 'color-overlay-scrim-dark': 'var(--color-neutral-950)',\n 'color-state-hover-dark': 'var(--color-neutral-50)',\n 'color-state-active-dark': 'var(--color-neutral-50)',\n\n // ============================================================================\n // LEGACY TIER 1 SEMANTIC TOKENS (mapped to new semantic structure)\n // ============================================================================\n\n // Background colors - mapped to new surface tokens\n 'tier1-theme-color-background-default-primary-default': 'var(--color-surface-canvas)', // Was Navy, now canvas\n 'tier1-theme-color-background-default-primary-hover': 'var(--color-primary-900)',\n 'tier1-theme-color-background-default-primary-active': 'var(--color-primary-800)',\n 'tier1-theme-color-background-default-secondary-default': 'var(--color-surface-default)', // Mapped to surface-default\n 'tier1-theme-color-background-default-secondary-hover': 'var(--color-surface-subtle)', // Mapped to surface-subtle\n 'tier1-theme-color-background-default-tertiary-default': 'var(--color-surface-subtle)', // Mapped to surface-subtle\n 'tier1-theme-color-background-default-tertiary-hover': 'var(--color-surface-sunken)', // Mapped to surface-sunken\n 'tier1-theme-color-background-accent-primary-default': 'var(--color-accent-500)', // Pink\n 'tier1-theme-color-background-accent-primary-hover': 'var(--color-accent-600)',\n 'tier1-theme-color-background-accent-primary-active': 'var(--color-accent-700)',\n 'tier1-theme-color-background-accent-secondary-default': 'var(--color-secondary-200)', // Mint\n 'tier1-theme-color-background-accent-secondary-hover': 'var(--color-secondary-300)',\n 'tier1-theme-color-background-accent-secondary-active': 'var(--color-secondary-400)',\n 'tier1-theme-color-background-default-inverse-default': 'var(--color-surface-inverse)', // Mapped to surface-inverse\n 'tier1-theme-color-background-utility-overlay-default': 'var(--color-overlay-scrim)', // Mapped to overlay-scrim\n\n // Content (text) colors - mapped to new text tokens\n 'tier1-theme-color-content-title-primary-default': 'var(--color-text-primary)', // Mapped to text-primary\n 'tier1-theme-color-content-default-primary-default': 'var(--color-text-primary)', // Mapped to text-primary\n 'tier1-theme-color-content-default-secondary-default': 'var(--color-text-secondary)', // Mapped to text-secondary\n 'tier1-theme-color-content-default-tertiary-default': 'var(--color-text-tertiary)', // Mapped to text-tertiary\n 'tier1-theme-color-content-default-inverse-default': 'var(--color-text-on-brand)', // Mapped to text-on-brand\n 'tier1-theme-color-content-disabled-subtle-default': 'var(--color-text-disabled)', // Mapped to text-disabled\n 'tier1-theme-color-content-accent-primary-default': 'var(--color-accent-500)', // Pink\n 'tier1-theme-color-content-accent-secondary-default': 'var(--color-secondary-200)', // Mint\n 'tier1-theme-color-content-default-link-default': 'var(--color-text-link-default)', // Mapped to text-link-default\n 'tier1-theme-color-content-default-link-hover': 'var(--color-text-link-hover)', // Mapped to text-link-hover\n\n // Border colors - mapped to new border tokens\n 'tier1-theme-color-border-default-subtle-default': 'var(--color-border-subtle)', // Mapped to border-subtle\n 'tier1-theme-color-border-default-default-default': 'var(--color-border-default)', // Mapped to border-default\n 'tier1-theme-color-border-default-strong-default': 'var(--color-border-strong)', // Mapped to border-strong\n 'tier1-theme-color-border-focus-primary-focus': 'var(--color-border-focus-ring)', // Mapped to border-focus-ring\n\n // State colors - mapped to new feedback tokens\n 'tier1-theme-color-background-utility-success-default': 'var(--color-feedback-success-background)',\n 'tier1-theme-color-content-utility-success-default': 'var(--color-feedback-success-text)',\n 'tier1-theme-color-content-utility-success-hover': 'var(--color-success-600)',\n 'tier1-theme-color-background-utility-warning-default': 'var(--color-feedback-warning-background)',\n 'tier1-theme-color-content-utility-warning-default': 'var(--color-feedback-warning-text)',\n 'tier1-theme-color-content-utility-warning-hover': 'var(--color-warning-600)',\n 'tier1-theme-color-background-utility-error-default': 'var(--color-feedback-error-background)',\n 'tier1-theme-color-content-utility-error-default': 'var(--color-feedback-error-text)',\n 'tier1-theme-color-content-utility-error-hover': 'var(--color-error-600)',\n 'tier1-theme-color-background-utility-info-default': 'var(--color-feedback-info-background)',\n 'tier1-theme-color-content-utility-info-default': 'var(--color-feedback-info-text)',\n 'tier1-theme-color-content-utility-info-hover': 'var(--color-info-500)',\n\n // Interactive colors - mapped to new action tokens\n 'tier1-theme-color-background-default-interactive-default': 'var(--color-action-primary-default)',\n 'tier1-theme-color-background-default-interactive-hover': 'var(--color-primary-700)',\n 'tier1-theme-color-background-default-interactive-active': 'var(--color-action-primary-active)',\n 'tier1-theme-color-background-default-interactive-disabled': 'var(--color-action-primary-disabled)',\n\n // Legacy semantic tokens for backward compatibility\n textBreadcrumbSeparator: 'var(--color-neutral-850)',\n textBreadcrumbLast: 'var(--color-primary-600)',\n textBreadcrumbHover: 'var(--color-primary-600)',\n textBreadcrumb: 'var(--color-neutral-700)',\n containerStrokeColor: 'var(--color-neutral-250)',\n bodyTextColor: 'var(--color-neutral-850)',\n backgroundColor: 'var(--color-neutral-75)',\n darkBackgroundColor: 'var(--color-primary-950)',\n primary: 'var(--color-action-primary-default)', // Mapped to action-primary-default\n primaryHover: 'var(--color-primary-700)',\n primaryActive: 'var(--color-action-primary-active)',\n primaryText: 'var(--color-action-primary-foreground)', // Mapped to action-primary-foreground\n secondary: 'var(--color-action-secondary-default)', // Mapped to action-secondary-default\n secondaryHover: 'var(--color-primary-700)',\n secondaryActive: 'var(--color-primary-800)',\n secondaryText: 'var(--color-text-on-brand)', // Mapped to text-on-brand\n accent: 'var(--color-accent-500)',\n accentHover: 'var(--color-accent-600)',\n accentActive: 'var(--color-accent-700)',\n accentText: 'var(--color-text-on-brand)', // Mapped to text-on-brand\n tertiary: 'var(--color-secondary-200)',\n tertiaryHover: 'var(--color-secondary-300)',\n tertiaryActive: 'var(--color-secondary-400)',\n tertiaryText: 'var(--color-text-primary)', // Mapped to text-primary\n textPrimary: 'var(--color-text-primary)', // Mapped to text-primary\n textSecondary: 'var(--color-text-secondary)', // Mapped to text-secondary\n textTertiary: 'var(--color-text-tertiary)', // Mapped to text-tertiary\n textInverse: 'var(--color-text-inverse)', // Mapped to text-inverse\n textDisabled: 'var(--color-text-disabled)', // Mapped to text-disabled\n textLink: 'var(--color-text-link-default)', // Mapped to text-link-default\n textLinkHover: 'var(--color-text-link-hover)', // Mapped to text-link-hover\n bgPrimary: 'var(--color-surface-canvas)', // Mapped to surface-canvas\n bgSecondary: 'var(--color-surface-default)', // Mapped to surface-default\n bgTertiary: 'var(--color-surface-subtle)', // Mapped to surface-subtle\n bgInverse: 'var(--color-surface-inverse)', // Mapped to surface-inverse\n bgOverlay: 'var(--color-overlay-scrim)', // Mapped to overlay-scrim\n borderDefault: 'var(--color-border-default)', // Mapped to border-default\n borderSubtle: 'var(--color-border-subtle)', // Mapped to border-subtle\n borderStrong: 'var(--color-border-strong)', // Mapped to border-strong\n borderFocus: 'var(--color-border-focus-ring)', // Mapped to border-focus-ring\n stateSuccess: 'var(--color-feedback-success-text)', // Mapped to feedback-success-text\n stateSuccessHover: 'var(--color-success-600)',\n stateSuccessBg: 'var(--color-feedback-success-background)', // Mapped to feedback-success-background\n stateWarning: 'var(--color-feedback-warning-text)', // Mapped to feedback-warning-text\n stateWarningHover: 'var(--color-warning-600)',\n stateWarningBg: 'var(--color-feedback-warning-background)', // Mapped to feedback-warning-background\n stateError: 'var(--color-feedback-error-text)', // Mapped to feedback-error-text\n stateErrorHover: 'var(--color-error-600)',\n stateErrorBg: 'var(--color-feedback-error-background)', // Mapped to feedback-error-background\n stateInfo: 'var(--color-feedback-info-text)', // Mapped to feedback-info-text\n stateInfoHover: 'var(--color-info-500)',\n stateInfoBg: 'var(--color-feedback-info-background)', // Mapped to feedback-info-background\n interactivePrimary: 'var(--color-action-primary-default)', // Mapped to action-primary-default\n interactivePrimaryHover: 'var(--color-action-primary-hover)',\n interactivePrimaryHoverForeground: 'var(--color-text-inverse)',\n interactivePrimaryActive: 'var(--color-action-primary-active)', // Mapped to action-primary-active\n interactiveSecondary: 'var(--color-neutral-200)',\n interactiveSecondaryHover: 'var(--color-neutral-300)',\n interactiveSecondaryActive: 'var(--color-neutral-400)',\n interactiveDisabled: 'var(--color-action-primary-disabled)', // Mapped to action-primary-disabled\n },\n};\n","/**\n * Primax theme configuration\n * Blue and orange color scheme for Primax brand\n */\n\nimport { ThemeConfig } from '../core/types';\nimport { defaultTheme } from './default';\nimport { primaxColorSystem } from './color-systems/primax-colors';\nimport sparkPattern from '@assets/spark-pattern.png';\n\nexport const primaxTheme: ThemeConfig = {\n ...defaultTheme,\n name: 'primax',\n fontImportUrl: ['https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap'],\n\n colors: {\n primitives: primaxColorSystem.primitives,\n semantic: primaxColorSystem.semantic,\n },\n\n colorPalettes: [\n { name: 'Primary', bg: 'primary', text: 'primaryText' },\n { name: 'Secondary', bg: 'secondary', text: 'secondaryText' },\n { name: 'Accent', bg: 'accent', text: 'accentText' },\n { name: 'Tertiary', bg: 'tertiary', text: 'tertiaryText' },\n ],\n\n typography: {\n ...defaultTheme.typography,\n fontFamily: \"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",\n fontFamilyHeading: \"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",\n\n variants: {\n title: {\n fontSize: '3.5rem',\n fontWeight: '700',\n lineHeight: '1.2',\n mobile: {\n fontSize: '2.25rem',\n },\n },\n sectionDivider: {\n fontSize: '2.5rem',\n fontWeight: '700',\n lineHeight: '1.2',\n mobile: {\n fontSize: '1.75rem',\n },\n },\n subtitle: {\n fontSize: '1.75rem',\n fontWeight: '400',\n lineHeight: '1.4',\n mobile: {\n fontSize: '1.375rem',\n },\n },\n componentTitle: {\n fontSize: '1.5rem',\n fontWeight: '700',\n lineHeight: '1.3',\n mobile: {\n fontSize: '1.25rem',\n },\n },\n body: {\n fontSize: '1.125rem',\n fontWeight: '400',\n lineHeight: '1.6',\n },\n bodyBold: {\n fontSize: '1.125rem',\n fontWeight: '700',\n lineHeight: '1.6',\n },\n bodySmall: {\n fontSize: '1.125rem',\n fontWeight: '700',\n lineHeight: '1.6',\n },\n },\n },\n\n components: {\n ...defaultTheme.components,\n cta: {\n ...defaultTheme.components.cta,\n },\n },\n\n componentTokens: {\n playButton: {\n // Default fill for the play shape (shadow layer inherits this at reduced opacity)\n color: 'var(--icon-fill-accent)',\n // Opacity for the shadow/background layer behind the shape\n shadowOpacity: '0.4',\n shadowOpacityHover: '1',\n shadowOpacityActive: '0.4',\n\n // Interactive states (applied on parent hover/focus/active via CSS)\n colorHover: 'var(--icon-fill-accent)',\n colorFocus: 'var(--icon-fill-accent)',\n colorActive: '#1944CE',\n\n // Dark mode overrides\n dark: {\n color: 'var(--icon-fill-accent)',\n colorHover: 'var(--icon-fill-accent)',\n colorFocus: 'var(--icon-fill-accent)',\n colorActive: '#1944CE',\n },\n },\n\n breadcrumb: {\n // Base properties\n gap: 'var(--tier1-theme-spacing-sm, 0.5rem)',\n fontSize: 'var(--tier1-theme-typography-body-small-desktop-font-size, 0.875rem)',\n fontFamily: 'var(--tier1-theme-typography-font-family)',\n fontWeight: 'var(--paragraph-font-weight, 400)',\n fontWeightHover: 'var(--paragraph-strong-font-weight, 700)',\n // Link styles\n linkColor: 'var(--text-breadcrumb)',\n linkHoverColor: 'var(--text-breadcrumb-hover)',\n linkActiveFontWeight: 'var(--paragraph-strong-font-weight)',\n lastItemColor: 'var(--text-breadcrumb)',\n lastItemFontWeight: 'var(--paragraph-strong-font-weight, 700)',\n\n // Separator styles\n separatorColor: 'var(--text-breadcrumb-separator)',\n\n // Focus state\n focusColor: 'var(--tier1-theme-color-border-focus-default-default)',\n\n // Dark mode overrides\n dark: {\n lastItemColor: 'var(--color-neutral-00)',\n linkColor: 'var(--tier1-theme-color-content-default-inverse-default)',\n linkHoverColor: 'var(--breadcrumb-text-color)',\n\n textColor: 'var(--color-secondary-200)',\n separatorColor: 'var(--color-neutral-00)',\n },\n },\n halfColumn: {\n gap: '7.62rem',\n },\n\n primaxCta: {\n gap: '3.75rem',\n padding: '0',\n headingMaxWidth: '53.75rem',\n formWidth: '39.375rem',\n lg: {\n formWidth: '100%',\n },\n tablet: {\n gap: '1.875rem',\n padding: '0',\n },\n mobile: {\n gap: '1.875rem',\n padding: '0',\n },\n },\n\n banner: {\n contentGapY: '0.9375rem',\n xl: {\n mediaBlockImagePadding: '0 1.875rem',\n mediaBlockImageOffset: '-6.25rem',\n },\n md: {\n mediaBlockImageOffset: '-4.9375rem',\n },\n sm: {\n mediaBlockImageOffset: '-3.4375rem',\n },\n },\n divider: {\n sparkPatternUrl: `url(${sparkPattern})`,\n lg: {\n height: 'auto',\n },\n md: {\n height: 'auto',\n padding: '32px',\n },\n sm: {\n height: 'auto',\n padding: '16px',\n },\n },\n\n mediaBlock: {\n // Container sizing\n width: '33.75rem',\n height: '31.25rem',\n\n // Thumbnail border radius (bottom-left rounded)\n borderRadius: '0 0 0 2rem',\n borderRadiusMirror: '2rem 0 2rem 0',\n\n // Video-specific overrides\n videoBorderRadius: '0 2rem 0 2rem',\n videoBorderRadiusMirror: '2rem 0 2rem 0',\n videoAccentColor: 'var(--color-secondary-200)',\n\n // Focus\n focusOutline: '0.125rem solid var(--color-primary-600)',\n\n // Thumbnail overlay\n overlayBg: 'rgba(0, 0, 0, 0.3)',\n\n // L-shaped accent border\n accentColor: 'var(--color-action-primary-default)',\n accentThickness: '0.625rem',\n accentGap: '0',\n // Side bar: starts at row 4, spans 7 of 10 rows (bottom 70%)\n accentSideRow: '6',\n accentSideSpan: '7',\n // Bottom bar: starts at col 5, spans 6 of 10 columns (right 60%)\n accentBottomCol: '4',\n accentBottomSpan: '6',\n // Play icon container (white bg box)\n playIconBg: 'transparent',\n playIconWidth: '9.375rem',\n playIconHeight: 'auto',\n playIconPaddingLeft: '1.5rem',\n playIconImageWidth: '9.375rem',\n playIconImageHeight: '11rem',\n\n // Spark / sparkle overlay (grid-placed)\n sparkRow: '4',\n sparkRowSpan: '6',\n sparkCol: '1',\n sparkColSpan: '4',\n sparkWidth: '58%',\n sparkHeight: '80%',\n sparkRotate: '0deg',\n sparkColMirror: '7',\n sparkTranslateMirrorX: '125%',\n\n // croppedSpark variant\n croppedSparkWidth: '42.8125rem',\n croppedSparkHeight: '40.8125rem',\n croppedSparkMaskRotate: '-15deg',\n croppedSparkMaskOffsetY: '15%',\n croppedSparkMaskOffsetX: '-10%',\n croppedSparkSvgScale: '1.3',\n croppedSparkStrokeColor: 'var(--color-secondary-200)',\n croppedSparkStrokeWidth: '3px',\n croppedSparkIconLgWidth: '13.625rem',\n croppedSparkIconLgTop: '4%',\n croppedSparkIconLgRight: '2%',\n croppedSparkIconSmWidth: '7.6875rem',\n croppedSparkIconSmTop: '34.6%',\n croppedSparkIconSmLeft: '10%',\n croppedSparkSmallSparksWidth: '18.5625rem',\n croppedSparkSmallSparksTop: '40%',\n croppedSparkSmallSparksRight: '10%',\n mobile: {\n videoHeight: '25rem',\n height: '25rem',\n maxWidth: '27.5rem',\n maxHeight: '100%',\n accentThickness: '0.5rem',\n playIconWidth: '7.8125rem',\n playIconHeight: '7.8125rem',\n playIconImageWidth: '5.625rem',\n playIconImageHeight: '6.625rem',\n croppedSparkSmallSparksTop: '30%',\n croppedSparkSmallSparksRight: '10%',\n },\n\n tablet: {\n videoHeight: '43rem',\n height: '43.75rem',\n maxWidth: '100%',\n maxHeight: '100%',\n accentThickness: '0.9375rem',\n },\n },\n\n icon: {\n // Base size\n size: '1.5rem',\n\n // Color variants - separate fill, stroke, and stroke-width\n fillPrimary: 'var(--color-primary-600)',\n strokePrimary: 'var(--color-primary-600)',\n strokeWidthPrimary: '0',\n\n fillSecondary: 'var(--color-secondary-200)',\n strokeSecondary: 'var(--color-secondary-200)',\n strokeWidthSecondary: '0',\n\n fillAccent: 'var(--color-accent-500)',\n strokeAccent: 'var(--color-accent-500)',\n strokeWidthAccent: '0',\n\n fillSuccess: 'var(--color-success-500)',\n strokeSuccess: 'var(--color-success-500)',\n strokeWidthSuccess: '0',\n\n fillWarning: 'var(--color-warning-500)',\n strokeWarning: 'var(--color-warning-500)',\n strokeWidthWarning: '0',\n\n fillError: 'var(--color-error-500)',\n strokeError: 'var(--color-error-500)',\n strokeWidthError: '0',\n\n // Size variants\n sizes: {\n xs: {\n size: '0.75rem',\n },\n sm: {\n size: '1rem',\n },\n md: {\n size: '1.5rem',\n },\n lg: {\n size: '2rem',\n },\n xl: {\n size: '4.375rem',\n },\n },\n },\n\n button: {\n borderWidth: '2px',\n padding: '1rem 1.5rem',\n fontSize: '1rem',\n fontWeight: '600',\n lineHeight: '1.375rem',\n fontFamily: 'var(--tier1-theme-typography-font-family, sans-serif)',\n shadow: 'none',\n\n // Icon spacing\n gap: '0.3125rem',\n\n // FontAwesome icon width\n faWidth: '0.875rem',\n\n // Focus state\n focusOutline: '0.125rem solid var(--color-primary-600)',\n focusOutlineOffset: '0.125rem',\n\n // Animation tokens - Primax uses spring animation on hover\n // Spring parameters from Figma: mass=1, stiffness=1536, damping=24\n // Using keyframe animation for reliable spring effect - quick and snappy\n hoverAnimation: 'button-spring-up 0.3s ease-out forwards',\n hoverOutAnimation: 'button-spring-down 0.3s ease-out forwards',\n\n // Size variants\n sizes: {\n sm: {\n padding: '0.75rem 1rem',\n fontSize: '0.875rem',\n lineHeight: '1.125rem',\n faWidth: '0.75rem',\n },\n md: {\n padding: '1rem 1.5rem',\n fontSize: '1rem',\n lineHeight: '1.375rem',\n faWidth: '0.8125rem',\n },\n lg: {\n padding: '1.25rem 1.875rem',\n fontSize: '1.125rem',\n lineHeight: '1.5rem',\n faWidth: '0.875rem',\n },\n },\n\n variants: {\n general: {\n bg: 'var(--color-primary-600)',\n text: 'var(--color-neutral-00)',\n border: 'var(--color-primary-600)',\n bgHover: 'var(--color-secondary-200)',\n textHover: 'var(--color-primary-950)',\n borderHover: 'var(--color-primary-950)',\n bgActive: 'var(--color-primary-700)',\n bgFocus: 'var(--color-primary-600)',\n textFocus: 'var(--color-neutral-00)',\n borderFocus: 'var(--color-primary-600)',\n\n bgDisabled: 'var(--color-neutral-500)',\n textDisabled: 'var(--color-neutral-300)',\n borderDisabled: 'var(--color-neutral-500)',\n\n dark: {\n bg: 'var(--color-primary-600)',\n text: 'var(--color-neutral-00)',\n border: 'var(--color-primary-600)',\n bgHover: 'var(--color-secondary-200)',\n textHover: 'var(--color-primary-950)',\n borderHover: 'var(--color-primary-950)',\n bgActive: 'var(--color-primary-700)',\n bgFocus: 'var(--color-primary-600)',\n textFocus: 'var(--color-neutral-00)',\n borderFocus: 'var(--color-primary-600)',\n },\n },\n secondary: {\n bg: 'transparent',\n border: 'var(--color-primary-600)',\n text: 'var(--color-primary-600)',\n\n textActive: 'var(--color-primary-600)',\n bgActive: 'transparent',\n\n bgHover: 'transparent',\n textHover: 'var(--color-primary-950)',\n borderHover: 'var(--color-primary-950)',\n\n bgFocus: 'var(--color-primary-600)',\n textFocus: 'var(--color-neutral-00)',\n borderFocus: 'var(--color-primary-600)',\n\n bgDisabled: 'transparent',\n textDisabled: 'var(--color-neutral-300)',\n borderDisabled: 'var(--color-neutral-300)',\n\n dark: {\n bg: 'transparent',\n text: 'var(--color-neutral-00)',\n border: 'var(--color-neutral-00)',\n\n bgHover: 'transparent',\n textHover: 'var(--color-secondary-200)',\n borderHover: 'var(--color-secondary-200)',\n\n borderActive: 'var(--color-primary-300)',\n textActive: 'var(--color-primary-300)',\n bgActive: 'transparent',\n\n bgFocus: 'var(--color-primary-600)',\n textFocus: 'var(--color-neutral-00)',\n borderFocus: 'var(--color-primary-600)',\n },\n },\n link: {\n // Light mode (default) - Link button variant (looks like TextLink)\n bg: 'transparent',\n text: 'var(--color-primary-600)', // #0061FF\n border: 'transparent',\n fontSize: '1.125rem', // 18px - same as TextLink\n fontWeight: '700',\n padding: '0.25rem 0.5rem', // Minimal padding for link style\n focusOutline: 'none', // No outline for link variant\n focusOutlineOffset: '0',\n\n bgHover: 'transparent',\n textHover: 'var(--color-primary-950)', // #0D0942 (Navy)\n borderHover: 'transparent',\n\n bgActive: 'transparent',\n textActive: 'var(--color-primary-950)', // #0D0942 (Navy)\n borderActive: 'transparent',\n\n bgFocus: 'transparent',\n textFocus: 'var(--color-primary-600)', // #0061FF\n borderFocus: 'transparent',\n\n bgDisabled: 'transparent',\n textDisabled: 'var(--color-neutral-300)', // #BFC8D8\n borderDisabled: 'transparent',\n\n sizes: {\n sm: {\n fontSize: '0.875rem',\n },\n md: {\n fontSize: '1rem',\n },\n lg: {\n fontSize: '1.125rem',\n },\n },\n\n // Dark mode overrides (for dark backgrounds)\n dark: {\n bg: 'transparent',\n text: 'var(--color-neutral-00)', // #FFFFFF White\n border: 'transparent',\n\n bgHover: 'transparent',\n textHover: 'var(--color-secondary-200)', // #00FFD2 Mint\n borderHover: 'transparent',\n\n bgActive: 'transparent',\n textActive: 'var(--color-secondary-200)', // #00FFD2 Mint\n borderActive: 'transparent',\n\n bgFocus: 'transparent',\n textFocus: 'var(--color-neutral-00)', // #FFFFFF White\n borderFocus: 'transparent',\n },\n },\n danger: {\n // Light mode (default) - Danger/destructive actions\n bg: 'var(--color-action-danger-default)', // #EF4444 (error-500)\n text: 'var(--color-neutral-00)', // White text\n border: 'var(--color-action-danger-default)',\n focusOutline: '0.125rem solid var(--color-action-danger-default)', // Red focus ring\n focusOutlineOffset: '0.125rem',\n\n bgHover: 'var(--color-action-danger-hover)', // #C8252B (error-600)\n textHover: 'var(--color-neutral-00)',\n borderHover: 'var(--color-error-900)',\n\n bgActive: 'var(--color-error-700)', // #A4111C\n textActive: 'var(--color-neutral-00)',\n borderActive: 'var(--color-error-700)',\n\n bgFocus: 'var(--color-action-danger-default)',\n textFocus: 'var(--color-neutral-00)',\n borderFocus: 'var(--color-action-danger-default)',\n\n bgDisabled: 'var(--color-neutral-500)',\n textDisabled: 'var(--color-neutral-300)',\n borderDisabled: 'var(--color-neutral-500)',\n\n // Dark mode overrides (for dark backgrounds)\n dark: {\n bg: 'var(--color-action-danger-default-dark)',\n text: 'var(--color-neutral-00)',\n border: 'var(--color-action-danger-default-dark)',\n focusOutline: '0.125rem solid var(--color-action-danger-default-dark)', // Red focus ring for dark mode\n\n bgHover: 'var(--color-action-danger-hover-dark)',\n textHover: 'var(--color-neutral-00)',\n borderHover: 'var(--color-action-danger-border-hover-dark)',\n\n bgActive: 'var(--color-error-700)',\n textActive: 'var(--color-neutral-00)',\n borderActive: 'var(--color-error-700)',\n\n bgFocus: 'var(--color-action-danger-default-dark)',\n textFocus: 'var(--color-neutral-00)',\n borderFocus: 'var(--color-action-danger-default-dark)',\n },\n },\n },\n },\n textLink: {\n color: 'var(--color-primary-600)',\n fontSize: '1.125rem',\n fontWeight: '700',\n textDecoration: 'none',\n\n colorActive: 'var(--color-primary-700)',\n colorHover: 'var(--color-primary-950)',\n colorFocus: 'var(--color-primary-600)',\n\n textDecorationFocus: 'underline',\n textDecorationStyleFocus: 'solid',\n focusOutline: '0.125rem solid var(--color-primary-600)',\n focusOutlineOffset: '0.125rem',\n\n dark: {\n color: 'var(--color-neutral-00)',\n colorHover: 'var(--color-secondary-200)',\n colorFocus: 'var(--color-neutral-00)',\n colorActive: 'var(--color-secondary-100)',\n },\n },\n heading: {\n margin: '0',\n padding: '0',\n color: 'var(--color-text-primary)',\n fontFamily: \"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",\n\n h1FontSize: 'var(--tier1-theme-typography-font-size-2xl, 2.5rem)',\n h1FontWeight: 'var(--tier1-theme-typography-font-weight-bold, 700)',\n h1LineHeight: 'var(--tier1-theme-typography-h1-desktop-line-height, 1.2)',\n h1LetterSpacing: 'normal',\n\n h2FontSize: 'var(--tier1-theme-typography-font-size-xl, 2rem)',\n h2FontWeight: 'var(--tier1-theme-typography-font-weight-bold, 700)',\n h2LineHeight: 'var(--tier1-theme-typography-h2-desktop-line-height, 1.3)',\n h2LetterSpacing: 'normal',\n\n h3FontSize: 'var(--tier1-theme-typography-font-size-lg, 1.75rem)',\n h3FontWeight: 'var(--tier1-theme-typography-font-weight-bold, 700)',\n h3LineHeight: 'var(--tier1-theme-typography-h3-desktop-line-height, 1.4)',\n h3LetterSpacing: 'normal',\n\n h4FontSize: 'var(--tier1-theme-typography-font-size-md, 1.5rem)',\n h4FontWeight: 'var(--tier1-theme-typography-font-weight-semibold, 700)',\n h4LineHeight: 'var(--tier1-theme-typography-h4-desktop-line-height, 1.4)',\n\n h5FontSize: 'var(--tier1-theme-typography-font-size-sm, 1.25rem)',\n h5FontWeight: 'var(--tier1-theme-typography-font-weight-semibold, 700)',\n h5LineHeight: 'var(--tier1-theme-typography-h5-desktop-line-height, 1.5)',\n\n h6FontSize: 'var(--tier1-theme-typography-font-size-xs, 1rem)',\n h6FontWeight: 'var(--tier1-theme-typography-font-weight-semibold, 700)',\n h6LineHeight: 'var(--tier1-theme-typography-h6-desktop-line-height, 1.5)',\n\n titleFontSize: '3.5rem',\n titleFontWeight: '700',\n titleLineHeight: '1.2',\n titleColor: 'var(--color-text-primary)',\n\n sectionDividerFontSize: '2.5rem',\n sectionDividerFontWeight: '700',\n sectionDividerLineHeight: '1.2',\n sectionDividerColor: 'var(--color-text-primary)',\n\n subtitleFontSize: '1.75rem',\n subtitleFontWeight: '400',\n subtitleLineHeight: '1.4',\n subtitleColor: 'var(--color-text-primary)',\n\n componentTitleFontSize: '1.5rem',\n componentTitleFontWeight: '700',\n componentTitleLineHeight: '1.3',\n componentTitleColor: 'var(--color-text-primary)',\n\n bodyFontSize: '1.125rem',\n bodyFontWeight: '400',\n bodyLineHeight: '1.6',\n bodyColor: 'var(--color-text-secondary)',\n\n bodyBoldFontSize: '1.125rem',\n bodyBoldFontWeight: '700',\n bodyBoldLineHeight: '1.6',\n bodyBoldColor: 'var(--color-text-secondary)',\n\n bodySmallFontSize: '1.125rem',\n bodySmallFontWeight: '700',\n bodySmallLineHeight: '1.6',\n bodySmallColor: 'var(--color-text-secondary)',\n\n // Dark mode override\n dark: {\n color: 'var(--color-neutral-00)',\n },\n\n mobile: {\n titleFontSize: '2.25rem',\n sectionDividerFontSize: '1.75rem',\n subtitleFontSize: '1.375rem',\n componentTitleFontSize: '1.25rem',\n },\n },\n card: {\n bg: '#fff',\n border: '1px solid var(--color-neutral-200)',\n borderRadius: '0',\n shadow: 'var(--tier1-theme-shadow-md)',\n padding: 'var(--tier1-theme-spacing-xl)',\n maxWidth: '25rem',\n height: '21.5625rem',\n\n focusOutline: '0.125rem solid var(--tier1-theme-color-border-focus-primary-focus)',\n focusOutlineOffset: '0.125rem',\n\n borderActive: '0.125rem solid var(--tier1-theme-color-background-default-interactive-default)',\n\n imageWrapperBorderRadius:\n 'var(--tier1-theme-border-radius-lg, 1.25rem) var(--tier1-theme-border-radius-lg, 1.25rem) 0 0',\n imageAspectRatio: '3/2',\n\n // Responsive overrides\n md: {\n imageAspectRatio: '16/9',\n },\n },\n\n grid: {\n // Gap size mappings - reference theme spacing tokens\n gapXs: '0.9375rem',\n gapSm: '1.875rem',\n gapMd: '3.75rem',\n gapLg: '4.5rem',\n gapXl: '9rem',\n\n // Default gap (desktop/lg)\n gap: '3.75rem',\n\n // Responsive gap sizes\n tablet: {\n gap: '2rem',\n\n gapSm: '0.9375rem',\n gapMd: '2rem',\n gapLg: '3rem',\n gapXl: '5rem',\n },\n mobile: {\n gap: '1rem',\n\n gapSm: '0.3125rem',\n gapMd: '1rem',\n gapLg: '1.5rem',\n gapXl: '4rem',\n },\n },\n\n header: {\n // Base properties\n bg: 'var(--tier1-theme-color-background-default-secondary-default)',\n border: '1px solid var(--tier1-theme-color-border-default-subtle-default)',\n height: '4rem',\n padding: 'var(--tier1-theme-spacing-md) var(--tier1-theme-spacing-lg)',\n\n // Title\n titleColor: 'var(--tier1-theme-color-content-default-primary-default)',\n titleFontSize: 'var(--tier1-theme-typography-h5-desktop-font-size, 1.25rem)',\n titleFontWeight: 'var(--tier1-theme-typography-h1-desktop-font-weight, 700)',\n titleMargin: '0.375rem 0 0.375rem var(--tier1-theme-spacing-sm, 0.625rem)',\n\n welcomeColor: 'var(--tier1-theme-color-content-default-secondary-default)',\n welcomeFontSize: 'var(--tier1-theme-typography-body-small-desktop-font-size, 0.875rem)',\n welcomeMargin: 'var(--tier1-theme-spacing-sm, 0.625rem)',\n\n buttonSpacing: 'var(--tier1-theme-spacing-sm, 0.625rem)',\n },\n\n cta: {\n height: '31.25rem',\n\n contentBg: 'var(--tier1-theme-color-background-default-primary-default)',\n contentMaxWidth: '47.8125rem',\n contentBorderRadius: '0 0 12.5rem',\n contentPadding: 'var(--tier1-theme-spacing-xxl) var(--tier1-theme-spacing-xl) 0 var(--tier1-theme-spacing-xxl)',\n\n titleColor: 'var(--tier1-theme-color-content-default-inverse-default)',\n titleFontSize: '3.4375rem',\n titleLineHeight: '4.0625rem',\n titleFontWeight: '900',\n titleMargin: '0 0 1rem',\n titleFontFamily: 'var(--tier1-theme-typography-font-family-heading, var(--tier1-theme-typography-font-family))',\n\n descriptionColor: 'var(--tier1-theme-color-content-default-inverse-default)',\n descriptionFontSize: '1.5rem',\n descriptionLineHeight: '2rem',\n descriptionFontWeight: '100',\n descriptionMargin: '0 0 1.875rem 0',\n descriptionFontFamily: 'var(--tier1-theme-typography-font-family)',\n\n md: {\n height: '28.125rem',\n titleFontSize: '2.5rem',\n titleLineHeight: '1.2',\n descriptionFontSize: '1.125rem',\n descriptionLineHeight: '1.6',\n },\n },\n\n richText: {\n // Base container\n color: 'var(--color-text-primary)',\n fontFamily: \"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",\n lineHeight: '1.6',\n\n // Heading spacing\n headingMarginBottom: 'var(--tier1-theme-spacing-md, 1rem)',\n\n // Paragraph styles\n paragraphFontSize: '1.125rem',\n paragraphFontWeight: '400',\n paragraphLineHeight: '1.6',\n paragraphMarginBottom: 'var(--tier1-theme-spacing-md, 1rem)',\n paragraphColor: 'var(--color-text-secondary)',\n\n // List styles\n listMargin: 'var(--tier1-theme-spacing-md, 1rem) 0',\n listPaddingLeft: 'var(--tier1-theme-spacing-xl, 1.875rem)',\n listItemFontSize: '1.125rem',\n listItemLineHeight: '1.6',\n listItemMarginBottom: 'var(--tier1-theme-spacing-sm, 0.5rem)',\n listItemColor: 'var(--color-text-secondary)',\n ulListStyleType: 'none',\n olListStyleType: 'decimal',\n\n // Strong/bold\n strongFontWeight: '700',\n\n // Code styles\n codeFontSize: '0.875em',\n codeBg: 'var(--color-neutral-100)',\n codePadding: '0.125rem 0.25rem',\n\n preFontSize: '0.875rem',\n preBg: 'var(--color-neutral-100)',\n prePadding: 'var(--tier1-theme-spacing-md, 1rem)',\n\n // Blockquote styles\n blockquoteMargin: 'var(--tier1-theme-spacing-md, 1rem) 0',\n blockquotePadding: 'var(--tier1-theme-spacing-sm, 0.5rem) var(--tier1-theme-spacing-md, 1rem)',\n blockquoteBorderLeft: '0.25rem solid var(--color-primary-600)',\n blockquoteColor: 'var(--color-text-secondary)',\n\n // Horizontal rule\n hrBorder: '1px solid var(--color-neutral-200)',\n hrMargin: 'var(--tier1-theme-spacing-lg, 1.5rem) 0',\n\n // Responsive overrides\n mobile: {\n paragraphFontSize: '1rem',\n paragraphLineHeight: '1.6',\n listItemFontSize: '1rem',\n },\n\n // Dark mode overrides\n dark: {\n color: 'var(--color-neutral-00)',\n paragraphColor: 'var(--color-neutral-00)',\n listItemColor: 'var(--color-neutral-00)',\n blockquoteColor: 'var(--color-neutral-00)',\n codeBg: 'var(--color-neutral-800)',\n preBg: 'var(--color-neutral-800)',\n hrBorder: '1px solid var(--color-neutral-700)',\n },\n },\n\n paragraph: {\n // Base properties\n fontSize: '1.125rem',\n fontWeight: '400',\n lineHeight: '1.6',\n color: 'var(--color-text-secondary)',\n fontFamily: \"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",\n letterSpacing: 'normal',\n\n // Strong/bold\n strongFontWeight: '700',\n\n // Responsive overrides\n mobile: {\n fontSize: '1rem',\n lineHeight: '1.6',\n },\n\n tablet: {\n fontSize: '1.125rem',\n lineHeight: '1.6',\n },\n\n // Dark mode overrides\n dark: {\n color: 'var(--color-neutral-00)',\n },\n },\n\n twoColumn: {\n gap: '3.75rem',\n rowGap: '7.625rem',\n leftColSparkIconSmallLeft: '0%',\n leftColSparkIconLargeRight: '20%',\n rightColSparkIconSmallLeft: '0%',\n rightColSparkIconLargeRight: '20%',\n tablet: {\n gap: '1.875rem',\n },\n mobile: {\n gap: '1rem',\n },\n },\n\n videoSection: {\n padding: '0.5rem 3.75rem',\n gap: '3.75rem',\n alignItems: 'center',\n contentPadding: '5.625rem',\n contentGap: '1.875rem',\n textGap: '0.625rem',\n\n tablet: {\n padding: '0.5rem 3.75rem',\n gap: '1.875rem',\n },\n mobile: {\n padding: '0.5rem 1.875rem',\n },\n },\n\n primaxCard: {\n // Card-level spring hover animation (same spring as button)\n hoverAnimation: 'spring-up 0.3s ease-out forwards',\n hoverOutAnimation: 'spring-down 0.3s ease-out forwards',\n\n // Base\n bg: '#fff',\n border: '2px solid var(--color-neutral-200)',\n focusBorder: '2px solid var(--color-primary-600)',\n focusOutline: '0px solid var(--color-primary-600)',\n focusOutlineOffset: '0',\n shadowFocus: 'none',\n shadowActive: 'none',\n textGap: '0.625rem',\n maxWidth: '400px',\n\n // Title typography (body bold)\n titleFontSize: 'var(--heading-body-bold-font-size)',\n titleFontWeight: 'var(--heading-body-bold-font-weight)',\n titleLineHeight: 'var(--heading-body-bold-line-height)',\n titleColor: 'var(--heading-color)',\n\n // Icon variant\n iconPadding: '3.75rem',\n iconContentGap: '0.625rem',\n iconSize: '4.375rem',\n iconActionLinkPadding: '0 3.75rem',\n\n // Image variant (insights)\n imageHeight: '15.625rem',\n imageContentPadding: '1.875rem',\n imageContentGap: '1.875rem',\n imageActionLinkPadding: '0 1.875rem',\n\n // Profile variant (team member)\n profileImageAspect: '1 / 1',\n profileContentPadding: '1.875rem',\n profileContentGap: '1.875rem',\n profileDescriptionMaxWidth: '17.5rem',\n profileActionLinkPadding: '0 1.875rem',\n\n // Dark mode\n dark: {\n bg: 'var(--color-neutral-900)',\n border: '2px solid var(--color-neutral-700)',\n },\n },\n\n bulletList: {\n // Spacing\n gap: '0.625rem',\n itemGap: '0.9375rem',\n itemAlign: 'center',\n\n // Icon styling\n iconSize: '1.125rem',\n iconColor: 'var(--color-accent-500)',\n // FontAwesome sparkle unicode character (fa-sparkle)\n iconContent: '\"\\\\e5d6\"',\n iconFontFamily: \"'Font Awesome 6 Pro'\",\n iconFontWeight: '900',\n\n // Text styling (falls back to paragraph tokens)\n fontSize: 'var(--paragraph-font-size, 1.125rem)',\n fontWeight: 'var(--paragraph-font-weight, 400)',\n lineHeight: 'var(--paragraph-line-height, 1.6)',\n color: 'var(--paragraph-color, var(--color-text-secondary))',\n fontFamily: 'var(--paragraph-font-family, inherit)',\n letterSpacing: 'var(--paragraph-letter-spacing, normal)',\n\n // Responsive\n mobile: {\n fontSize: 'var(--paragraph-font-size-mobile, 1rem)',\n },\n\n // Dark mode\n dark: {\n color: 'var(--color-neutral-00)',\n iconColor: 'var(--color-accent-500)',\n },\n },\n\n modal: {\n // Overlay\n overlayBg: 'rgba(0, 0, 0, 0.8)',\n\n // body area\n bodyMaxWidth: '510px',\n\n // Content area\n contentBg: 'var(--color-neutral-00)',\n contentBorder: '1px solid var(--color-neutral-200)',\n contentPadding: '3.75rem',\n borderRadius: '0',\n shadow: 'var(--tier1-theme-shadow-lg)',\n maxWidth: '39.375rem',\n width: '100%',\n\n // Focus\n focusOutline: '0.125rem solid var(--color-primary-600)',\n focusOutlineOffset: '0.125rem',\n\n // Mobile bottom sheet\n borderRadiusMobile: '1.5rem 1.5rem 0 0',\n contentPaddingMobile: '1.5rem',\n dragIndicatorBg: 'var(--color-neutral-300)',\n\n // Size variants\n sizes: {\n sm: {\n maxWidth: '39.375rem',\n contentPadding: '3.75rem',\n },\n md: {\n maxWidth: '39.375rem',\n contentPadding: '3.75rem',\n },\n lg: {\n maxWidth: '39.375rem',\n contentPadding: '3.75rem',\n },\n },\n\n // Responsive\n mobile: {\n contentPadding: '1.5rem',\n maxWidth: '100%',\n borderRadius: '1.5rem 1.5rem 0 0',\n dragHandleBorderRadius: '0',\n dragHandleBorderBottom: 'none',\n dragHandleMarginBottom: '0',\n },\n dark: {\n contentBg: 'var(--color-neutral-900)',\n contentBorder: '1px solid var(--color-neutral-700)',\n dragIndicatorBg: 'var(--color-neutral-600)',\n },\n },\n checkbox: {\n // Icon\n iconSize: '1.5rem',\n borderColor: 'var(--color-primary-950)',\n borderColorHover: 'var(--color-primary-600)',\n checkedColor: 'var(--color-primary-600)',\n checkedColorHover: 'var(--color-primary-700)',\n\n // Label\n fontFamily: 'var(--tier1-theme-typography-font-family, sans-serif)',\n fontSize: '1.125rem',\n fontWeight: '400',\n lineHeight: '1.333',\n labelColor: 'var(--color-neutral-500)',\n gap: '0.625rem',\n\n // Focus\n focusOutline: '0.125rem solid var(--color-primary-600)',\n focusOutlineOffset: '0.125rem',\n\n // Dark mode\n dark: {\n borderColor: 'var(--color-neutral-00)',\n borderColorHover: 'var(--color-secondary-200)',\n checkedColor: 'var(--color-secondary-200)',\n labelColor: 'var(--color-neutral-00)',\n },\n },\n\n dropdown: {\n // Label\n labelFontFamily: 'var(--tier1-theme-typography-font-family, sans-serif)',\n labelFontSize: '1.125rem',\n labelFontWeight: '700',\n labelLineHeight: '1.333',\n labelColor: 'var(--color-primary-950)',\n labelGap: '0.5rem',\n\n // Trigger field\n fontFamily: 'var(--tier1-theme-typography-font-family, sans-serif)',\n fontSize: '1.125rem',\n fontWeight: '400',\n lineHeight: '1.333',\n color: 'var(--color-primary-950)',\n bg: 'var(--color-neutral-50)',\n borderWidth: '1px',\n borderColor: 'var(--color-neutral-300)',\n borderRadius: '0',\n padding: '1rem',\n placeholderColor: 'var(--color-neutral-500)',\n borderColorFocus: 'var(--color-primary-600)',\n\n // Chevron\n chevronSize: '1rem',\n chevronColor: 'var(--color-primary-950)',\n\n // Panel\n panelBg: 'var(--color-neutral-00)',\n panelBorderColor: 'var(--color-neutral-300)',\n panelMaxHeight: '15rem',\n panelPadding: '0.5rem 0',\n\n // Error\n errorFontSize: '0.875rem',\n errorFontWeight: '400',\n errorColor: 'var(--color-error-500)',\n errorTextAlign: 'right',\n\n // Dark mode\n dark: {\n labelColor: 'var(--color-neutral-00)',\n color: 'var(--color-primary-950)',\n bg: 'var(--color-neutral-00)',\n borderColor: 'var(--color-neutral-300)',\n placeholderColor: 'var(--color-neutral-500)',\n chevronColor: 'var(--color-primary-950)',\n panelBg: 'var(--color-neutral-00)',\n panelBorderColor: 'var(--color-neutral-300)',\n errorColor: 'var(--color-error-300)',\n },\n },\n\n dropdownSelect: {\n optionPadding: '0.5rem 1rem',\n optionBgHover: 'transparent',\n\n dark: {\n optionBgHover: 'var(--color-neutral-100)',\n },\n },\n\n textInput: {\n // Label\n labelFontFamily: 'var(--tier1-theme-typography-font-family, sans-serif)',\n labelFontSize: '1.125rem',\n labelFontWeight: '700',\n labelLineHeight: '1.333',\n labelColor: 'var(--color-primary-950)',\n labelGap: '0.5rem',\n\n // Field\n fontFamily: 'var(--tier1-theme-typography-font-family, sans-serif)',\n fontSize: '1.125rem',\n fontWeight: '400',\n lineHeight: '1.333',\n color: 'var(--color-primary-950)',\n bg: 'var(--color-neutral-50)',\n borderWidth: '1px',\n borderColor: 'var(--color-neutral-300)',\n borderRadius: '0',\n padding: '1rem',\n placeholderColor: 'var(--color-neutral-500)',\n borderColorFocus: 'var(--color-primary-600)',\n\n // Error\n errorFontWeight: '400',\n errorColor: 'var(--color-error-500)',\n errorTextAlign: 'right',\n\n // Dark mode\n dark: {\n labelColor: 'var(--color-neutral-00)',\n color: 'var(--color-primary-950)',\n bg: 'var(--color-neutral-00)',\n borderColor: 'var(--color-neutral-300)',\n placeholderColor: 'var(--color-neutral-500)',\n // borderColorFocus: \"var(--color-secondary-200)\",\n errorColor: 'var(--color-error-300)',\n },\n },\n\n subscribe: {\n // Layout\n gap: '2rem',\n padding: '3.75rem',\n formGap: '1.875rem',\n fieldsGap: '3.75rem',\n\n // Disclaimer\n disclaimerFontFamily: 'var(--tier1-theme-typography-font-family, sans-serif)',\n disclaimerFontSize: '1rem',\n disclaimerFontWeight: '700',\n disclaimerLineHeight: '1.5',\n\n // Responsive\n tablet: {\n padding: '3.75rem 2rem',\n fieldsGap: '3.75rem',\n },\n mobile: {\n padding: '2rem 1rem',\n fieldsGap: '2rem',\n },\n\n // Dark mode\n dark: {\n disclaimerColor: 'var(--color-neutral-00)',\n disclaimerLinkColor: 'var(--color-secondary-200)',\n },\n },\n },\n};\n","/**\n * React hook for accessing color tokens programmatically\n * Useful when you need to use colors in JavaScript/TypeScript\n */\n\nimport { useTheme } from '../core/client-provider';\nimport type { ColorPrimitives } from '../core/color-system';\n\nexport interface ColorTokens {\n // Primitives\n primitives: Record<string, string>;\n // Semantic tokens\n semantic: Record<string, string>;\n}\n\n/**\n * Hook to access color tokens from the current theme\n * Returns resolved CSS variable values\n */\nexport function useColorTokens(): ColorTokens {\n const { currentTheme } = useTheme();\n\n // Helper to get computed CSS variable value\n const getCSSVar = (varName: string): string => {\n if (typeof window === 'undefined') return '';\n return getComputedStyle(document.documentElement).getPropertyValue(varName).trim();\n };\n\n // Convert color system to resolved values\n const primitives: Record<string, string> = {};\n const semantic: Record<string, string> = {};\n\n // Resolve primitives\n Object.keys(currentTheme.colors.primitives).forEach((key) => {\n const cssVar = `--color-${key.replace(/([A-Z])/g, '-$1').toLowerCase()}`;\n primitives[key] = getCSSVar(cssVar) || currentTheme.colors.primitives[key as keyof ColorPrimitives];\n });\n\n // Resolve semantic tokens (no prefix)\n Object.keys(currentTheme.colors.semantic).forEach((key) => {\n const cssVar = `--${key.replace(/([A-Z])/g, '-$1').toLowerCase()}`;\n semantic[key] = getCSSVar(cssVar);\n });\n\n return { primitives, semantic };\n}\n\n/**\n * Hook to get a specific color token value\n * @param level - The color system level ('primitives' or 'semantic')\n * @param tokenName - The name of the token\n * @returns The resolved color value\n */\nexport function useColorToken(level: 'primitives' | 'semantic', tokenName: string): string {\n const tokens = useColorTokens();\n return tokens[level][tokenName] || '';\n}\n\n/**\n * Hook to get CSS variable name for a color token\n * Useful for inline styles\n */\nexport function useColorVar(level: 'primitives' | 'semantic', tokenName: string): string {\n const cssKey = tokenName.replace(/([A-Z])/g, '-$1').toLowerCase();\n if (level === 'primitives') {\n return `var(--color-${cssKey})`;\n }\n // Semantic tokens have no prefix\n return `var(--${cssKey})`;\n}\n","import React from 'react';\nimport { Button, ButtonProps } from '@/components/atoms/Button';\nimport { Divider, DividerProps } from '@/components/atoms/Divider';\nimport { Heading, HeadingLevel } from '@/components/atoms/Heading';\nimport './CTA.scss';\nimport { Container } from '@/components/atoms/Container';\n\ntype CTAVariant = 'small' | 'large';\ntype CTAAlignment = 'left' | 'center' | 'right';\n\nexport interface PrimaxCTAProps extends Omit<DividerProps, 'children'> {\n /** CTA variant - small (heading + button) or large (heading + form slot) */\n variant?: CTAVariant;\n /** Content alignment - left, center, or right */\n alignment?: CTAAlignment;\n /** CTA heading text */\n heading: string;\n /** Heading semantic level */\n headingLevel?: HeadingLevel;\n /** Button props for the small variant */\n button?: ButtonProps;\n /** Form content slot for the large variant */\n children?: React.ReactNode;\n /** Make the inner container full-width (no max-width constraint) */\n fluid?: boolean;\n /** Additional class name */\n className?: string;\n}\n\nexport const BannerCTA: React.FC<PrimaxCTAProps> = ({\n variant = 'small',\n alignment = 'left',\n heading,\n headingLevel = 'h1',\n button,\n children,\n fluid = false,\n className,\n backgroundColor = 'var(--color-primary-950)',\n backgroundPattern = 'sparks',\n shapeDivider = 'top',\n darkMode = true,\n ...dividerProps\n}) => {\n const ctaClass = ['primax-cta', `primax-cta--${variant}`, `primax-cta--${alignment}`, className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <Divider\n className={ctaClass}\n backgroundColor={backgroundColor}\n backgroundPattern={backgroundPattern}\n shapeDivider={shapeDivider}\n darkMode={darkMode}\n {...dividerProps}\n >\n <Container fluid={fluid} className=\"primax-cta__inner container\">\n <Heading level={headingLevel} variant=\"title\" darkMode={darkMode} className=\"primax-cta__heading\">\n {heading}\n </Heading>\n\n {variant === 'small' && button && (\n <Button\n buttonType={button.buttonType || 'general'}\n size={button.size || 'lg'}\n darkMode={darkMode}\n {...button}\n >\n {button.children || button.label}\n </Button>\n )}\n\n {variant === 'large' && children && <div className=\"primax-cta__form\">{children}</div>}\n </Container>\n </Divider>\n );\n};\n","import React from 'react';\nimport { BackgroundMedia } from '../../atoms/BackgroundMedia';\nimport { Button } from '../../atoms/Button/Button';\nimport { ButtonLink } from '../../atoms/ButtonLink';\nimport { Heading, HeadingLevel } from '../../atoms/Heading';\nimport './CTA.scss';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faAnglesRight } from '@fortawesome/free-solid-svg-icons';\n\nexport interface CTAProps {\n /** Video URL for background */\n videoUrl?: string;\n /** Image URL for background */\n imageUrl?: string;\n /** CSS gradient overlay */\n gradient?: string;\n /** Background color */\n bgColor?: string;\n /** CTA title */\n title: string;\n /** Heading level */\n headingLevel?: HeadingLevel;\n /** CTA description */\n description?: string;\n /** Button text */\n buttonText: string;\n /** Button link */\n link?: string;\n /** External link flag */\n externalLink?: boolean;\n /** Link target */\n target?: '_blank' | '_self';\n /** Custom CSS class */\n className?: string;\n /** Inline styles */\n style?: React.CSSProperties;\n}\n\n/** CTA component with background media and content */\nexport const CTA: React.FC<CTAProps> = ({\n videoUrl,\n imageUrl,\n gradient,\n bgColor,\n title,\n headingLevel = 'h2',\n description,\n buttonText,\n link,\n externalLink,\n target = '_self',\n className,\n style,\n}) => {\n const ctaClasses = ['cta', className].filter(Boolean).join(' ');\n\n return (\n <div className={ctaClasses} style={style}>\n <BackgroundMedia videoUrl={videoUrl} imageUrl={imageUrl} gradient={gradient} bgColor={bgColor} />\n <div className=\"cta__content\">\n <Heading level={headingLevel} className=\"cta__title\">\n {title}\n </Heading>\n {description && <p className=\"cta__description\">{description}</p>}\n {link ? (\n <ButtonLink\n buttonType=\"cta\"\n label={buttonText}\n href={link}\n target={externalLink ? target : '_self'}\n icon={<FontAwesomeIcon icon={faAnglesRight} />}\n />\n ) : (\n <Button\n buttonType=\"cta\"\n label={buttonText}\n onClick={() => {}}\n icon={<FontAwesomeIcon icon={faAnglesRight} />}\n />\n )}\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport '../../molecules/Card/Card.scss';\n\nexport interface CardProps {\n children: React.ReactNode;\n maxWidth?: number | string;\n height?: number | string;\n width?: number | string;\n padding?: string;\n onClick?: (event: React.MouseEvent<HTMLDivElement>) => void;\n href?: string;\n target?: '_blank' | '_self' | '_parent' | '_top';\n imageUrl?: string;\n imageAlt?: string;\n className?: string;\n style?: React.CSSProperties;\n aspectRatio?: string;\n borderRadius?: string;\n hoverEffect?: boolean;\n 'aria-label'?: string;\n 'data-testid'?: string;\n}\n\nexport const Card: React.FC<CardProps> = ({\n children,\n maxWidth = '',\n padding = '30px',\n onClick,\n href,\n target = '_self',\n imageUrl,\n imageAlt = '',\n className = '',\n style,\n aspectRatio = '3/2',\n borderRadius = '',\n hoverEffect = true,\n 'aria-label': ariaLabel,\n 'data-testid': testId,\n}) => {\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if ((event.key === 'Enter' || event.key === ' ') && onClick) {\n event.preventDefault();\n onClick(event as unknown as React.MouseEvent<HTMLDivElement>);\n }\n };\n\n const handleLinkClick = (event: React.MouseEvent<HTMLAnchorElement>) => {\n if (onClick) {\n onClick(event as unknown as React.MouseEvent<HTMLDivElement>);\n }\n };\n\n const wrapperStyle: React.CSSProperties = {\n maxWidth,\n ...style,\n };\n\n const cardStyle: React.CSSProperties = {\n borderRadius,\n };\n\n const imageWrapperStyle: React.CSSProperties = {\n aspectRatio,\n borderRadius: `${borderRadius} ${borderRadius} 0 0`,\n };\n\n const bodyStyle: React.CSSProperties = {\n padding,\n };\n\n const cardClasses = ['card', hoverEffect && 'card--hover-effect', className].filter(Boolean).join(' ');\n\n const cardContent = (\n <div className={cardClasses} style={cardStyle} data-testid={testId}>\n {imageUrl && (\n <div className=\"card__image-wrapper\" style={imageWrapperStyle}>\n <div className=\"card__image-container\">\n <img src={imageUrl} alt={imageAlt} className=\"card__image\" loading=\"lazy\" />\n </div>\n </div>\n )}\n <div className=\"card__body\" style={bodyStyle}>\n {children}\n </div>\n </div>\n );\n\n if (href) {\n return (\n <div className=\"card-wrapper\" style={wrapperStyle}>\n <a\n href={href}\n target={target}\n rel={target === '_blank' ? 'noopener noreferrer' : undefined}\n onClick={handleLinkClick}\n className=\"card__link\"\n style={{ borderRadius }}\n aria-label={ariaLabel}\n >\n {cardContent}\n </a>\n </div>\n );\n }\n\n if (onClick) {\n return (\n <div className=\"card-wrapper\" style={wrapperStyle}>\n <div\n className={cardClasses}\n style={cardStyle}\n onClick={onClick}\n onKeyDown={handleKeyDown}\n role=\"button\"\n tabIndex={0}\n aria-label={ariaLabel}\n data-testid={testId}\n >\n {imageUrl && (\n <div className=\"card__image-wrapper\" style={imageWrapperStyle}>\n <div className=\"card__image-container\">\n <img src={imageUrl} alt={imageAlt} className=\"card__image\" loading=\"lazy\" />\n </div>\n </div>\n )}\n <div className=\"card__body\" style={bodyStyle}>\n {children}\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"card-wrapper\" style={wrapperStyle}>\n {cardContent}\n </div>\n );\n};\n","import React from 'react';\nimport { TwoColumn, TwoColumnRow } from '../TwoColumn';\nimport { MediaBlock } from '../MediaBlock';\nimport { DividerProps } from '@/components/atoms/Divider';\nimport './HalfColumn.scss';\n\nexport type HalfColumnVariant = 'sparkle' | 'video' | 'media';\n\nexport type HalfColumnMediaPosition = 'left' | 'right';\n\nexport interface HalfColumnRow {\n /** Text/content side — rendered opposite the media */\n content: React.ReactNode;\n /** Override the variant for this specific row */\n variant?: HalfColumnVariant;\n /** Which side the media appears on */\n mediaPosition?: HalfColumnMediaPosition;\n /** Vertical alignment of columns */\n verticalAlign?: 'top' | 'center' | 'bottom';\n}\n\nexport interface HalfColumnProps extends DividerProps {\n /** Visual variant controlling the media block style */\n variant?: HalfColumnVariant;\n\n /** Image URL used as thumbnail / display image */\n thumbnail?: string;\n /** Alt text for the media */\n alt?: string;\n\n /* --- Video variant props --- */\n /** Wistia media ID (video variant) */\n wistiaId?: string;\n /** Custom play button element (video variant) */\n playIcon?: React.ReactNode;\n /** Show overlay on video thumbnail */\n overlay?: boolean;\n\n /* --- Media styling props --- */\n /** Show the L-shaped accent border (media & video variants) */\n accentBorder?: boolean;\n /** Show decorative sparkle overlay (media & video variants) */\n sparkle?: boolean;\n /** Mirror decorative elements */\n mirror?: boolean;\n\n /* --- Layout --- */\n /** Which side the media appears on (single-row shorthand) */\n mediaPosition?: HalfColumnMediaPosition;\n /** Text/content for the non-media column (single-row shorthand) */\n content?: React.ReactNode;\n /** Multiple rows of half-column content */\n rows?: HalfColumnRow[];\n /** Gap between columns */\n gap?: string | { xs?: string; sm?: string; md?: string; lg?: string };\n /** Additional class name */\n className?: string;\n}\n\n/**\n * HalfColumn — a pre-configured two-column layout with built-in media variants.\n *\n * Variants:\n * - `sparkle` — cropped spark media block (no video)\n * - `video` — video player with accent border, sparkle & overlay\n * - `media` — static image with accent border & sparkle\n */\nexport const HalfColumn: React.FC<HalfColumnProps> = ({\n variant = 'media',\n thumbnail,\n alt = '',\n wistiaId,\n playIcon,\n overlay = true,\n accentBorder = true,\n sparkle = true,\n mirror,\n mediaPosition = 'right',\n content,\n rows,\n gap,\n className,\n // Divider passthrough\n backgroundColor,\n backgroundImage,\n backgroundPattern,\n shapeDivider,\n shapeColor,\n padding,\n height,\n overflow,\n darkMode = false,\n ...rest\n}) => {\n const buildMedia = (position: HalfColumnMediaPosition, rowVariant?: HalfColumnVariant) => {\n const v = rowVariant ?? variant;\n const shouldMirror = mirror ?? position === 'right';\n\n switch (v) {\n case 'sparkle':\n return <MediaBlock variant=\"croppedSpark\" thumbnail={thumbnail} alt={alt} />;\n case 'video':\n return (\n <MediaBlock\n wistiaId={wistiaId}\n playIcon={playIcon}\n thumbnail={thumbnail}\n alt={alt}\n accentBorder={accentBorder}\n overlay={overlay}\n sparkle={sparkle}\n mirror={shouldMirror}\n />\n );\n case 'media':\n default:\n return (\n <MediaBlock\n thumbnail={thumbnail}\n alt={alt}\n accentBorder={accentBorder}\n sparkle={sparkle}\n mirror={shouldMirror}\n />\n );\n }\n };\n\n // Wrap media in a marker div so CSS can identify and reorder it on mobile\n const wrapMedia = (mediaNode: React.ReactNode) => <div className=\"primax-half-column__media\">{mediaNode}</div>;\n\n // Build TwoColumn rows\n const resolvedRows: TwoColumnRow[] = rows\n ? rows.map((row) => {\n const pos = row.mediaPosition ?? mediaPosition;\n const media = wrapMedia(buildMedia(pos, row.variant));\n return {\n left: pos === 'left' ? media : row.content,\n right: pos === 'right' ? media : row.content,\n verticalAlign: row.verticalAlign,\n };\n })\n : (() => {\n const media = wrapMedia(buildMedia(mediaPosition));\n return [\n {\n left: mediaPosition === 'left' ? media : content,\n right: mediaPosition === 'right' ? media : content,\n verticalAlign: 'center' as const,\n },\n ];\n })();\n\n const baseClass = 'primax-half-column';\n const classes = [baseClass, className].filter(Boolean).join(' ');\n\n return (\n <TwoColumn\n rows={resolvedRows}\n gap={gap}\n backgroundColor={backgroundColor}\n backgroundImage={backgroundImage}\n backgroundPattern={backgroundPattern}\n shapeDivider={shapeDivider}\n shapeColor={shapeColor}\n padding={padding}\n height={height}\n overflow={overflow}\n darkMode={darkMode}\n className={classes}\n {...rest}\n />\n );\n};\n","import React from 'react';\nimport './Icon.scss';\n\nexport interface IconProps {\n /**\n * SVG content or path to SVG\n */\n svg: React.ReactNode;\n /**\n * Icon size variant\n */\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n /**\n * Icon color variant\n */\n color?: 'primary' | 'secondary' | 'accent' | 'success' | 'warning' | 'error' | 'inherit';\n /**\n * Custom fill color (overrides color variant)\n */\n fill?: string;\n /**\n * Custom stroke color (overrides color variant)\n */\n stroke?: string;\n /**\n * Custom stroke width (overrides color variant)\n */\n strokeWidth?: string | number;\n /**\n * Additional CSS class\n */\n className?: string;\n /**\n * Accessible label for screen readers\n */\n ariaLabel?: string;\n /**\n * Whether icon is decorative (hidden from screen readers)\n */\n decorative?: boolean;\n}\n\nexport const Icon: React.FC<IconProps> = ({\n svg,\n size = 'lg',\n color = 'inherit',\n fill = '',\n stroke = '',\n strokeWidth = '0',\n className = '',\n ariaLabel,\n decorative = false,\n ...props\n}) => {\n const classes = [\n 'icon-component',\n `icon-component--${size}`,\n color !== 'inherit' ? `icon-component--${color}` : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n // Build inline styles for custom fill/stroke/strokeWidth\n const customStyles: Record<string, string | number> = {};\n if (fill) customStyles['--icon-fill'] = fill;\n if (stroke) customStyles['--icon-stroke'] = stroke;\n if (strokeWidth !== undefined) customStyles['--icon-stroke-width'] = strokeWidth;\n\n return (\n <span\n className={classes}\n data-size={size}\n style={Object.keys(customStyles).length > 0 ? customStyles : undefined}\n role={decorative ? 'presentation' : 'img'}\n aria-label={decorative ? undefined : ariaLabel}\n aria-hidden={decorative ? 'true' : undefined}\n {...props}\n >\n {svg}\n </span>\n );\n};\n","import React, { useEffect, useRef, useCallback, useState } from 'react';\nimport './Modal.scss';\n\nexport interface ModalProps {\n /** Whether the modal is open */\n isOpen: boolean;\n /** Callback when the modal should close */\n onClose: () => void;\n /** Child elements rendered inside the modal content area */\n children: React.ReactNode;\n /** Additional CSS class name for the content area */\n className?: string;\n /** Dark mode styling */\n darkMode?: boolean;\n /** Size variant */\n size?: 'sm' | 'md' | 'lg';\n /** Accessible label for the modal */\n ariaLabel?: string;\n /** Whether clicking the overlay closes the modal */\n closeOnOverlayClick?: boolean;\n /** Whether pressing Escape closes the modal */\n closeOnEscape?: boolean;\n /** Force bottom sheet layout regardless of device pointer type (useful for previews/Storybook) */\n forceBottomSheet?: boolean;\n}\n\n/** Threshold in px — if dragged past this, dismiss the sheet */\nconst DISMISS_THRESHOLD = 150;\n/** Velocity threshold — fast swipe dismisses even if distance is short */\nconst VELOCITY_THRESHOLD = 0.5;\n\nexport const Modal: React.FC<ModalProps> = ({\n isOpen,\n onClose,\n children,\n className = '',\n darkMode = false,\n size = 'md',\n ariaLabel,\n closeOnOverlayClick = true,\n closeOnEscape = true,\n forceBottomSheet = false,\n}) => {\n const dialogRef = useRef<HTMLDialogElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const previousFocusRef = useRef<HTMLElement | null>(null);\n\n // Touch gesture state\n const [dragY, setDragY] = useState(0);\n const [isDragging, setIsDragging] = useState(false);\n const [isClosing, setIsClosing] = useState(false);\n const touchStartRef = useRef<{ y: number; time: number } | null>(null);\n\n const handleClose = useCallback(() => {\n onClose();\n }, [onClose]);\n\n /** Animate out then close */\n const dismissSheet = useCallback(() => {\n setIsClosing(true);\n // Wait for the slide-out animation to finish\n const timer = setTimeout(() => {\n setIsClosing(false);\n setDragY(0);\n handleClose();\n }, 300);\n return () => clearTimeout(timer);\n }, [handleClose]);\n\n // Sync open state with the native dialog element\n useEffect(() => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n\n if (isOpen && !dialog.open) {\n previousFocusRef.current = document.activeElement as HTMLElement;\n dialog.showModal();\n setIsClosing(false);\n setDragY(0);\n } else if (!isOpen && dialog.open) {\n dialog.close();\n previousFocusRef.current?.focus();\n }\n }, [isOpen]);\n\n // Handle native dialog close event (e.g. Escape key)\n useEffect(() => {\n const dialog = dialogRef.current;\n if (!dialog) return;\n\n const handleCancel = (e: Event) => {\n if (!closeOnEscape) {\n e.preventDefault();\n return;\n }\n handleClose();\n };\n\n dialog.addEventListener('cancel', handleCancel);\n return () => dialog.removeEventListener('cancel', handleCancel);\n }, [closeOnEscape, handleClose]);\n\n // Touch gesture handlers for mobile bottom sheet\n const handleTouchStart = useCallback((e: React.TouchEvent) => {\n const touch = e.touches[0];\n touchStartRef.current = { y: touch.clientY, time: Date.now() };\n setIsDragging(true);\n }, []);\n\n const handleTouchMove = useCallback((e: React.TouchEvent) => {\n if (!touchStartRef.current) return;\n const touch = e.touches[0];\n const deltaY = touch.clientY - touchStartRef.current.y;\n // Only allow dragging downward\n if (deltaY > 0) {\n setDragY(deltaY);\n }\n }, []);\n\n const handleTouchEnd = useCallback(() => {\n if (!touchStartRef.current) return;\n\n const elapsed = (Date.now() - touchStartRef.current.time) / 1000; // seconds\n const velocity = dragY / elapsed; // px/s\n\n // Dismiss if dragged past threshold or fast swipe\n if (dragY > DISMISS_THRESHOLD || velocity > VELOCITY_THRESHOLD * 1000) {\n dismissSheet();\n } else {\n // Snap back\n setDragY(0);\n }\n\n setIsDragging(false);\n touchStartRef.current = null;\n }, [dragY, dismissSheet]);\n\n const handleOverlayClick = (e: React.MouseEvent<HTMLDialogElement>) => {\n if (closeOnOverlayClick && e.target === dialogRef.current) {\n handleClose();\n }\n };\n\n if (!isOpen) return null;\n\n const contentStyle: React.CSSProperties =\n dragY > 0\n ? {\n transform: `translateY(${dragY}px)`,\n transition: isDragging ? 'none' : undefined,\n }\n : {};\n\n return (\n <dialog\n ref={dialogRef}\n className={`modal ${isClosing ? 'modal--closing' : ''} ${className}`}\n data-dark-mode={darkMode || undefined}\n data-size={size}\n data-bottom-sheet={forceBottomSheet || undefined}\n aria-label={ariaLabel}\n onClick={handleOverlayClick}\n >\n <div ref={contentRef} className=\"modal__content\" style={contentStyle}>\n {/* Drag handle — visible only on mobile via CSS */}\n <div\n className=\"modal__drag-handle\"\n onTouchStart={handleTouchStart}\n onTouchMove={handleTouchMove}\n onTouchEnd={handleTouchEnd}\n aria-hidden=\"true\"\n >\n <div className=\"modal__drag-indicator\" />\n </div>\n <div className=\"modal__body\">{children}</div>\n </div>\n </dialog>\n );\n};\n","import React from 'react';\nimport { Header } from '../molecules/Header/Header';\nimport './Page.scss';\n\ntype User = {\n name: string;\n};\n\nexport const Page: React.FC = () => {\n const [user, setUser] = React.useState<User>();\n\n return (\n <article>\n <Header\n user={user}\n onLogin={() => setUser({ name: 'Jane Doe' })}\n onLogout={() => setUser(undefined)}\n onCreateAccount={() => setUser({ name: 'Jane Doe' })}\n />\n\n <section className=\"storybook-page\">\n <h2>Pages in Storybook</h2>\n <p>\n We recommend building UIs with a{' '}\n <a href=\"https://componentdriven.org\" target=\"_blank\" rel=\"noopener noreferrer\">\n <strong>component-driven</strong>\n </a>{' '}\n process starting with atomic components and ending with pages.\n </p>\n </section>\n </article>\n );\n};\n","import React from 'react';\nimport './PlayButton.scss';\n\nexport interface PlayButtonProps {\n /** Custom icon element to render inside the play button wrapper.\n * When omitted, nothing renders — pass a tenant-specific icon\n * (e.g. primax PlayIcon) or any React node. */\n icon?: React.ReactNode;\n /** Dark mode styling */\n darkMode?: boolean;\n /** Size variant */\n size?: 'sm' | 'md' | 'lg';\n /** Additional CSS class */\n className?: string;\n /** Inline styles */\n style?: React.CSSProperties;\n}\n\n/**\n * Themeable play button wrapper.\n * Colors are driven by CSS custom properties so themes can override\n * default, hover, focus, and active states.\n *\n * Pass any SVG or React node as `icon` — the wrapper handles\n * sizing, positioning, and state-based color transitions.\n */\nexport const PlayButton: React.FC<PlayButtonProps> = ({ icon, darkMode = false, size, className, style }) => {\n const classes = ['play-button', className].filter(Boolean).join(' ');\n\n return (\n <span\n className={classes}\n style={style}\n data-dark-mode={darkMode || undefined}\n data-size={size || undefined}\n aria-hidden=\"true\"\n >\n {icon}\n </span>\n );\n};\n","import React from 'react';\n\n/**\n * Primax-branded play button SVG icon (matches public/play-button.svg).\n * Renders inline so fill colors can be controlled via CSS custom properties.\n *\n * Uses two class names for targeted theming:\n * - `.play-button__shadow` — the semi-transparent background triangle\n * - `.play-button__shape` — the outlined foreground triangle\n */\nexport const PlayIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 150 176\" aria-hidden=\"true\" {...props}>\n {/* Shadow / background layer */}\n <g className=\"play-button__shadow\">\n <path d=\"M0,175.6V.6l150,87.5L0,175.6Z\" />\n </g>\n {/* Foreground outlined play triangle */}\n <path\n className=\"play-button__shape\"\n d=\"M18.8,11.6l112.7,65.7,18.6,10.9-18.6,10.9L18.8,164.7,0,175.6V.6l18.8,10.9ZM18.8,143l94-54.8L18.8,33.3v109.7Z\"\n />\n </svg>\n);\n","import React from 'react';\nimport { Button, ButtonProps } from '@/components/atoms/Button';\nimport { Heading } from '@/components/atoms/Heading';\nimport { Paragraph } from '@/components/atoms/Paragraph';\nimport './Card.scss';\n\nexport type PrimaxCardVariant = 'icon' | 'image' | 'profile';\nexport type PrimaxCardButtonVariant = 'general' | 'link';\n\nexport interface PrimaxCardProps {\n /** Card layout variant */\n variant?: PrimaxCardVariant;\n /** SVG icon element (for icon variant) */\n icon?: React.ReactNode;\n /** Image URL (for image/profile variants) */\n imageUrl?: string;\n /** Image alt text */\n imageAlt?: string;\n /** Card title */\n title: string;\n /** HTML element for the title. Defaults to 'p' for image variant, 'h4' for others.\n * Use 'p' or 'span' when cards are repeated in lists to avoid heading hierarchy issues. */\n titleAs?: 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span';\n /** Card description text */\n description?: string;\n /** Optional metadata slot (e.g. asset type, duration) */\n metadata?: React.ReactNode;\n /** Text alignment */\n textAlign?: 'left' | 'center';\n /** Visual button props — purely decorative, the card itself is the link */\n button?: Omit<ButtonProps, 'buttonType'>;\n /** Button style: solid primary or text link */\n buttonVariant?: PrimaxCardButtonVariant;\n /** Card destination URL */\n href: string;\n /** Link target */\n target?: '_blank' | '_self';\n /** Dark mode */\n darkMode?: boolean;\n /** Enable/disable hover animation - overrides theme default */\n animated?: boolean;\n /** Additional class */\n className?: string;\n /** Children rendered after description, before button */\n children?: React.ReactNode;\n /** Accessible label */\n 'aria-label'?: string;\n}\n\nexport const Card: React.FC<PrimaxCardProps> = ({\n variant = 'icon',\n icon,\n imageUrl,\n imageAlt = '',\n title,\n titleAs,\n description,\n metadata,\n textAlign,\n button,\n buttonVariant = 'general',\n href,\n target = '_self',\n darkMode = false,\n animated,\n className,\n children,\n 'aria-label': ariaLabel,\n}) => {\n const align = textAlign ?? (variant === 'image' ? 'left' : 'center');\n\n // Default to 'p' for image (insight) variant to avoid heading hierarchy issues\n // when many cards are rendered in a list. Other variants default to 'h4'.\n const resolvedTitleAs = titleAs ?? (variant === 'image' ? 'p' : 'h4');\n\n const cardClasses = ['primax-card', `primax-card--${variant}`, `primax-card--align-${align}`, className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <a\n href={href}\n target={target}\n rel={target === '_blank' ? 'noopener noreferrer' : undefined}\n className={cardClasses}\n data-dark-mode={darkMode || undefined}\n data-animated={animated !== undefined ? (animated ? 'true' : 'false') : undefined}\n aria-label={ariaLabel || title}\n >\n {(variant === 'image' || variant === 'profile') && imageUrl && (\n <div className=\"primax-card__image-wrapper\">\n <img src={imageUrl} alt={imageAlt} className=\"primax-card__image\" loading=\"lazy\" />\n </div>\n )}\n\n <div className=\"primax-card__content\">\n {variant === 'icon' && icon && (\n <div className=\"primax-card__icon\" aria-hidden=\"true\">\n {icon}\n </div>\n )}\n\n {metadata && <div className=\"primax-card__metadata\">{metadata}</div>}\n\n <div className=\"primax-card__text\">\n {resolvedTitleAs === 'p' || resolvedTitleAs === 'span' ? (\n <Paragraph as={resolvedTitleAs} weight=\"bold\" className=\"primax-card__title\" darkMode={darkMode}>\n {title}\n </Paragraph>\n ) : (\n <Heading\n level={resolvedTitleAs}\n variant=\"componentTitle\"\n className=\"primax-card__title\"\n darkMode={darkMode}\n >\n {title}\n </Heading>\n )}\n\n {description && (\n <Paragraph className=\"primax-card__description\" darkMode={darkMode}>\n {description}\n </Paragraph>\n )}\n </div>\n\n {button && buttonVariant === 'link' && (\n <div className=\"primax-card__action primax-card__action--link\" aria-hidden=\"true\">\n <Button {...button} buttonType=\"link\" darkMode={darkMode} />\n </div>\n )}\n\n {children}\n </div>\n\n {button && buttonVariant !== 'link' && (\n <div className=\"primax-card__action primax-card__action--button\" aria-hidden=\"true\">\n <Button {...button} buttonType=\"general\" darkMode={darkMode} />\n </div>\n )}\n </a>\n );\n};\n","import React from 'react';\nimport './RichText.scss';\n\nexport interface RichTextProps {\n /** HTML content to render */\n content: string;\n /** Dark mode - applies dark mode styling for use on dark backgrounds */\n darkMode?: boolean;\n /** Custom CSS class */\n className?: string;\n /** Inline styles */\n style?: React.CSSProperties;\n /** Maximum width constraint */\n maxWidth?: string;\n}\n\n/**\n * RichText component for rendering styled HTML content\n * Inherits typography styles from Heading and TextLink components\n * Supports future extension for lists, paragraphs, and other HTML elements\n */\nexport const RichText: React.FC<RichTextProps> = ({ content, darkMode = false, className, style, maxWidth }) => {\n const richTextClasses = ['rich-text', className].filter(Boolean).join(' ');\n\n const finalStyle = maxWidth ? { ...style, maxWidth } : style;\n\n return (\n <div\n className={richTextClasses}\n style={finalStyle}\n data-dark-mode={darkMode ? 'true' : undefined}\n dangerouslySetInnerHTML={{ __html: content }}\n />\n );\n};\n","import React from 'react';\nimport './TextLink.scss';\n\nexport interface TextLinkProps {\n label: string;\n href?: string;\n externalLink?: string;\n target?: '_blank' | '_self' | '_parent' | '_top';\n onClick?: (event: React.MouseEvent<HTMLAnchorElement>) => void;\n className?: string;\n icon?: React.ReactNode;\n style?: React.CSSProperties;\n disabled?: boolean;\n darkMode?: boolean;\n 'aria-label'?: string;\n 'aria-describedby'?: string;\n 'data-testid'?: string;\n}\n\nexport const TextLink: React.FC<TextLinkProps> = ({\n label,\n href,\n externalLink,\n target = '_self',\n onClick,\n className = '',\n icon,\n style,\n disabled = false,\n darkMode = false,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedBy,\n 'data-testid': testId,\n}) => {\n const linkUrl = externalLink || href;\n const isExternal = !!externalLink || target === '_blank';\n\n const handleClick = (event: React.MouseEvent<HTMLAnchorElement>) => {\n if (disabled) {\n event.preventDefault();\n return;\n }\n if (onClick) {\n onClick(event);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLAnchorElement>) => {\n if (disabled && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault();\n }\n };\n\n if (!linkUrl || disabled) {\n return (\n <span\n className={`text-link text-link--disabled ${className}`}\n data-dark-mode={darkMode || undefined}\n style={style}\n data-testid={testId}\n aria-label={ariaLabel || label}\n aria-describedby={ariaDescribedBy}\n >\n {label} {icon}\n </span>\n );\n }\n\n return (\n <a\n href={linkUrl}\n target={target}\n rel={isExternal ? 'noopener noreferrer' : undefined}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n className={`text-link ${className}`}\n data-dark-mode={darkMode || undefined}\n style={style}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedBy}\n data-testid={testId}\n >\n {label} {icon}\n </a>\n );\n};\n","import React from 'react';\nimport { Button, ButtonProps } from '@/components/atoms/Button';\nimport { BulletList, BulletItem } from '@/components/atoms/BulletList';\nimport { Heading, HeadingLevel } from '@/components/atoms/Heading';\nimport { Paragraph } from '@/components/atoms/Paragraph';\nimport { MediaBlock, MediaBlockProps } from '@/components/molecules/primax/MediaBlock';\nimport './VideoSection.scss';\n\nexport type VideoSectionVariation = 'media-first' | 'content-first';\n\nexport interface VideoSectionProps {\n /** Layout variation: media on left or right */\n variation?: VideoSectionVariation;\n /** Section heading text */\n heading: string;\n /** Heading semantic level */\n headingLevel?: HeadingLevel;\n /** Description text below the heading */\n description?: string;\n /** List of bullet items rendered via BulletList atom */\n bulletPoints?: BulletItem[];\n /** Shared icon for all bullet points (can be overridden per-item) */\n bulletIcon?: React.ReactNode;\n /** Button props */\n button?: ButtonProps;\n /** Media block props (video/image with accent border, sparkle, etc.) */\n media: MediaBlockProps;\n /** Dark mode styling */\n darkMode?: boolean;\n /** Additional class name */\n className?: string;\n}\n\nexport const VideoSection: React.FC<VideoSectionProps> = ({\n variation = 'media-first',\n heading,\n headingLevel = 'h2',\n description,\n bulletPoints,\n bulletIcon,\n button,\n media,\n darkMode = false,\n className,\n}) => {\n const baseClass = 'primax-video-section';\n const classes = [baseClass, `${baseClass}--${variation}`, className].filter(Boolean).join(' ');\n\n const contentBlock = (\n <div className={`${baseClass}__content`}>\n <div className={`${baseClass}__text-content`}>\n <Heading level={headingLevel} variant=\"sectionDivider\" darkMode={darkMode} className={`${baseClass}__heading`}>\n {heading}\n </Heading>\n\n {description && (\n <Paragraph className={`${baseClass}__description`} darkMode={darkMode}>\n {description}\n </Paragraph>\n )}\n\n {bulletPoints && bulletPoints.length > 0 && (\n <BulletList items={bulletPoints} icon={bulletIcon} darkMode={darkMode} />\n )}\n </div>\n\n {button && (\n <Button buttonType={button.buttonType || 'general'} size={button.size || 'lg'} darkMode={darkMode} {...button}>\n {button.children || button.label}\n </Button>\n )}\n </div>\n );\n\n const mediaBlock = (\n <div className={`${baseClass}__media`}>\n <MediaBlock {...media} />\n </div>\n );\n\n return (\n <section className={classes} data-dark-mode={darkMode || undefined}>\n <div className={`${baseClass}__inner`}>\n {variation === 'media-first' ? (\n <>\n {mediaBlock}\n {contentBlock}\n </>\n ) : (\n <>\n {contentBlock}\n {mediaBlock}\n </>\n )}\n </div>\n </section>\n );\n};\n"],"names":["defaultButtonIcons","video","regular","jsx","FontAwesomeIcon","icon","faCirclePlayRegular","hover","faCirclePlaySolid","subscribe","faEnvelopeRegular","faEnvelopeSolid","cta","faAnglesRight","twitter","faXTwitter","linkedin","faLinkedin","facebook","faSquareFacebook","defaultColorSystem","primitives","semantic","primary","primaryHover","primaryActive","primaryText","secondary","secondaryHover","secondaryActive","secondaryText","accent","accentHover","accentActive","accentText","tertiary","tertiaryHover","tertiaryActive","tertiaryText","textPrimary","textSecondary","textAccent","textTertiary","textInverse","textDisabled","textLink","textLinkHover","bgPrimary","bgSecondary","bgTertiary","bgInverse","bgOverlay","borderDefault","borderSubtle","borderStrong","borderFocus","stateSuccess","stateSuccessHover","stateSuccessBg","stateWarning","stateWarningHover","stateWarningBg","stateError","stateErrorHover","stateErrorBg","stateInfo","stateInfoHover","stateInfoBg","interactivePrimary","interactivePrimaryHover","interactivePrimaryActive","interactiveSecondary","interactiveSecondaryHover","interactiveSecondaryActive","interactiveDisabled","defaultTheme","name","fontImportUrl","colors","colorPalettes","bg","text","spacing","xs","sm","md","lg","xl","xxl","borderRadius","shadows","breakpoints","typography","fontFamily","fontFamilyHeading","fontFamilyMono","fontSizeXs","fontSizeSm","fontSizeMd","fontSizeLg","fontSizeXl","fontSize2xl","fontWeightLight","fontWeightRegular","fontWeightSemibold","fontWeightBold","fontWeightBlack","lineHeightTight","lineHeightSnug","lineHeightNormal","lineHeightRelaxed","lineHeightLoose","letterSpacingTighter","letterSpacingTight","letterSpacingNormal","letterSpacingWide","letterSpacingWider","letterSpacingWidest","variants","display","fontSize","fontWeight","lineHeight","letterSpacing","mobile","tablet","bodyDefault","bodyLarge","bodySmall","lead","caption","textTransform","overline","pageTitle","sectionTitle","title","subtitle","body","textlink","textDecoration","bodyBold","bodyBoldLarge","components","card","background","border","shadow","padding","header","borderBottom","height","titleFontWeight","titleFontSize","titleLineHeight","descriptionLineHeight","descriptionFontWeight","descriptionFontSize","descriptionMargin","componentTokens","button","borderWidth","focusOutline","focusOutlineOffset","disabledOpacity","hoverAnimation","general","bgHover","bgActive","textHover","borderHover","secondaryDarkMode","maxWidth","borderActive","imageWrapperBorderRadius","imageAspectRatio","grid","gapXs","gapSm","gapMd","gapLg","gapXl","gapXxl","titleColor","titleMargin","welcomeColor","welcomeFontSize","welcomeMargin","buttonSpacing","contentBg","contentMaxWidth","contentBorderRadius","contentPadding","titleFontFamily","descriptionColor","descriptionFontFamily","size","fillPrimary","strokePrimary","strokeWidthPrimary","fillSecondary","strokeSecondary","strokeWidthSecondary","fillAccent","strokeAccent","strokeWidthAccent","fillSuccess","strokeSuccess","strokeWidthSuccess","fillWarning","strokeWarning","strokeWidthWarning","fillError","strokeError","strokeWidthError","sizes","heading","margin","color","h1FontSize","h1FontWeight","h1LineHeight","h1LetterSpacing","h2FontSize","h2FontWeight","h2LineHeight","h2LetterSpacing","h3FontSize","h3FontWeight","h3LineHeight","h3LetterSpacing","h4FontSize","h4FontWeight","h4LineHeight","h5FontSize","h5FontWeight","h5LineHeight","h6FontSize","h6FontWeight","h6LineHeight","displayFontSize","displayFontWeight","displayLineHeight","displayLetterSpacing","bodyDefaultFontSize","bodyDefaultFontWeight","bodyDefaultLineHeight","bodyDefaultLetterSpacing","bodyDefaultFontFamily","leadFontSize","leadFontWeight","leadLineHeight","leadLetterSpacing","captionFontSize","captionFontWeight","captionLineHeight","captionLetterSpacing","captionTextTransform","overlineFontSize","overlineFontWeight","overlineLineHeight","overlineLetterSpacing","overlineTextTransform","pageTitleFontSize","pageTitleFontWeight","pageTitleLineHeight","pageTitleLetterSpacing","pageTitleTextTransform","pageTitleColor","sectionTitleFontSize","sectionTitleFontWeight","sectionTitleLineHeight","sectionTitleLetterSpacing","titleLetterSpacing","subtitleFontSize","subtitleFontWeight","subtitleLineHeight","bodyFontSize","bodyFontWeight","bodyLineHeight","textlinkFontSize","textlinkFontWeight","textlinkLineHeight","textlinkFontFamily","textlinkTextDecoration","textlinkTextTransform","bodyBoldFontSize","bodyBoldFontWeight","bodyBoldLineHeight","bodyBoldFontFamily","bodyLargeFontSize","bodyLargeFontWeight","bodyLargeLineHeight","bodyLargeFontFamily","bodyBoldLargeFontSize","bodyBoldLargeFontWeight","bodyBoldLargeLineHeight","bodyBoldLargeFontFamily","bodySmallFontSize","bodySmallFontWeight","bodySmallLineHeight","bodySmallFontFamily","dark","colorHover","colorFocus","textDecorationFocus","textDecorationStyleFocus","colorActive","richText","headingMarginBottom","paragraphFontSize","paragraphFontWeight","paragraphLineHeight","paragraphMarginBottom","paragraphColor","listMargin","listPaddingLeft","listItemFontSize","listItemLineHeight","listItemMarginBottom","listItemColor","ulListStyleType","olListStyleType","strongFontWeight","codeFontSize","codeBg","codePadding","preFontSize","preBg","prePadding","blockquoteMargin","blockquotePadding","blockquoteBorderLeft","blockquoteColor","hrBorder","hrMargin","media","objectFit","objectPosition","aspectRatio","videoPlayer","thumbnailBg","placeholderBg","playIconSize","playIconBg","playIconBorder","playIconColor","paragraph","modal","overlayBg","contentBorder","width","toKebabCase","str","test","toLowerCase","replace","objectToCSSVars","obj","prefix","Object","entries","filter","value","map","key","cssKey","startsWith","generateThemeCSS","theme","selector","css","colorSystem","sections","push","legacyVars","oldVar","newKey","Boolean","join","generateColorSystemCSS","typographyCSS","typographyBase","forEach","variantName","variantStyles","desktopStyles","prop","propKey","variantKey","length","generateTypographyCSS","vars","darkSections","sizeSections","breakpointKeys","darkSelector","componentName","componentProps","componentPrefix","camelToKebab","propValue","includes","cssVarName","sizeName","sizeProps","sizeSelector","variantProps","variantKebab","match","baseProp","state","breakpoint","breakpointProps","values","sizeSection","hasDarkContent","hasSizeContent","keys","result","generateComponentTokensCSS","ThemeContext","createContext","useTheme","context","useContext","Error","ThemeProvider","children","initialTheme","initialThemeName","useEffect","themeName","style","document","getElementById","createElement","id","fontImport","Array","isArray","url","textContent","head","contains","appendChild","applyThemeCSS","documentElement","setAttribute","currentTheme","Provider","Button","buttonType","palette","label","hoverIcon","className","disabled","darkMode","animated","onClick","props","buttonClass","iconConfig","customIcon","customHoverIcon","faSparkle","faSparkles","getButtonIcon","paletteStyle","backgroundColor","borderColor","jsxs","type","Fragment","ButtonLink","href","target","rel","BackgroundMedia","videoUrl","imageUrl","gradient","bgColor","baseClasses","autoPlay","muted","loop","playsInline","src","backgroundStyle","backgroundImage","WISTIA_SCRIPT_ID","Media","alt","autoplay","controls","loading","srcSet","providers","onLoad","onError","onReady","videoRef","useRef","wistiaDivRef","isClient","setIsClient","useState","isWistiaReady","setIsWistiaReady","resolvedType","detectMediaType","resolvedMuted","wistiaId","extractWistiaId","isWistia","script","async","window","_wq","current","play","catch","baseClass","classes","cssVars","wistiaOptions","ref","visibility","providerResult","options","provider","embedUrl","buildEmbedUrl","providerName","resolveCustomProvider","allow","allowFullScreen","onLoadedData","Breadcrumb","items","separator","item","index","isLast","Divider","backgroundPattern","shapeDivider","shapeColor","verticalAlign","overflow","dividerClasses","Container","fluid","as","Tag","Heading","level","variant","weight","finalStyle","headingClasses","Grid","columns","gap","rowGap","columnGap","minColumnWidth","maxColumnWidth","alignItems","justifyItems","justifyContent","columnAlign","fullWidth","gridClass","gridStyles","toString","gridTemplateColumns","gapMap","GridItem","colSpan","rowSpan","colStart","rowStart","itemStyles","gridColumn","gridRow","gridColumnStart","gridRowStart","Paragraph","dangerouslySetInnerHTML","commonProps","defaultIcon","viewBox","fill","xmlns","cx","cy","r","BulletList","role","itemIcon","Header","user","onLogin","onLogout","onCreateAccount","fillRule","d","WISTIA_PLAYER_SCRIPT","wistiaScriptLoaded","wistiaScriptLoading","wistiaLoadCallbacks","WISTIA_PLAYER_SCRIPT_ID","MediaBlock","thumbnail","playIcon","accentBorder","overlay","sparkle","accentColor","sparkSrc","sparkScale","mirror","popover","sparkSmallSrc","isPlaying","setIsPlaying","videoHandleRef","videoContainerRef","isPopover","videoSrc","hasVideo","isVideoSource","isImage","loadWistiaPlayerScript","mediaId","moduleId","loadWistiaMediaModule","handleVideoReady","useCallback","handle","handlePlay","videoEl","querySelector","sparkPath","x","y","clipPath","React","aspect","BANNER_CONFIG","hero","level2","level3","gated","mapVerticalAlignment","alignment","top","center","bottom","renderColumnMedia","mediaBlockProps","verticalAlignMap","TwoColumn","left","right","rows","variation","_children","rest","resolvedRows","row","rowVariation","rowAlign","isReversed","order","TextInput","placeholder","onChange","onBlur","validation","error","useId","errorId","isRequired","required","htmlFor","e","minLength","maxLength","Dropdown","isOpen","controlledOpen","onToggle","displayValue","listboxId","containerRef","internalOpen","setInternalOpen","handleToggle","next","handleClickOutside","addEventListener","removeEventListener","handleKeyDown","onKeyDown","faChevronUp","faChevronDown","Checkbox","checked","faSquareCheck","faSquare","DropdownSelect","controlledValue","internalValue","setInternalValue","selectedValues","handleToggleOption","optionValue","v","handleDropdownClose","option","EMAIL_RE","validateField","field","dropdownValidation","custom","errorMessage","selections","split","minSelections","maxSelections","trim","email","pattern","advisorsPlusColorSystem","borderWhite","advisorsPlusTheme","primaxColorSystem","textBreadcrumbSeparator","textBreadcrumbLast","textBreadcrumbHover","textBreadcrumb","containerStrokeColor","bodyTextColor","darkBackgroundColor","interactivePrimaryHoverForeground","primaxTheme","sectionDivider","componentTitle","playButton","shadowOpacity","shadowOpacityHover","shadowOpacityActive","breadcrumb","fontWeightHover","linkColor","linkHoverColor","linkActiveFontWeight","lastItemColor","lastItemFontWeight","separatorColor","focusColor","textColor","halfColumn","primaxCta","headingMaxWidth","formWidth","banner","contentGapY","mediaBlockImagePadding","mediaBlockImageOffset","divider","sparkPatternUrl","mediaBlock","borderRadiusMirror","videoBorderRadius","videoBorderRadiusMirror","videoAccentColor","accentThickness","accentGap","accentSideRow","accentSideSpan","accentBottomCol","accentBottomSpan","playIconWidth","playIconHeight","playIconPaddingLeft","playIconImageWidth","playIconImageHeight","sparkRow","sparkRowSpan","sparkCol","sparkColSpan","sparkWidth","sparkHeight","sparkRotate","sparkColMirror","sparkTranslateMirrorX","croppedSparkWidth","croppedSparkHeight","croppedSparkMaskRotate","croppedSparkMaskOffsetY","croppedSparkMaskOffsetX","croppedSparkSvgScale","croppedSparkStrokeColor","croppedSparkStrokeWidth","croppedSparkIconLgWidth","croppedSparkIconLgTop","croppedSparkIconLgRight","croppedSparkIconSmWidth","croppedSparkIconSmTop","croppedSparkIconSmLeft","croppedSparkSmallSparksWidth","croppedSparkSmallSparksTop","croppedSparkSmallSparksRight","videoHeight","maxHeight","faWidth","hoverOutAnimation","bgFocus","textFocus","bgDisabled","borderDisabled","textActive","link","danger","sectionDividerFontSize","sectionDividerFontWeight","sectionDividerLineHeight","sectionDividerColor","subtitleColor","componentTitleFontSize","componentTitleFontWeight","componentTitleLineHeight","componentTitleColor","bodyColor","bodyBoldColor","bodySmallColor","twoColumn","leftColSparkIconSmallLeft","leftColSparkIconLargeRight","rightColSparkIconSmallLeft","rightColSparkIconLargeRight","videoSection","contentGap","textGap","primaxCard","focusBorder","shadowFocus","shadowActive","iconPadding","iconContentGap","iconSize","iconActionLinkPadding","imageHeight","imageContentPadding","imageContentGap","imageActionLinkPadding","profileImageAspect","profileContentPadding","profileContentGap","profileDescriptionMaxWidth","profileActionLinkPadding","bulletList","itemGap","itemAlign","iconColor","iconContent","iconFontFamily","iconFontWeight","bodyMaxWidth","borderRadiusMobile","contentPaddingMobile","dragIndicatorBg","dragHandleBorderRadius","dragHandleBorderBottom","dragHandleMarginBottom","checkbox","borderColorHover","checkedColor","checkedColorHover","labelColor","dropdown","labelFontFamily","labelFontSize","labelFontWeight","labelLineHeight","labelGap","placeholderColor","borderColorFocus","chevronSize","chevronColor","panelBg","panelBorderColor","panelMaxHeight","panelPadding","errorFontSize","errorFontWeight","errorColor","errorTextAlign","dropdownSelect","optionPadding","optionBgHover","textInput","formGap","fieldsGap","disclaimerFontFamily","disclaimerFontSize","disclaimerFontWeight","disclaimerLineHeight","disclaimerColor","disclaimerLinkColor","useColorTokens","getCSSVar","varName","getComputedStyle","getPropertyValue","cssVar","align","headingLevel","config","bannerType","hasBackgroundVideo","backgroundVideo","BannerClass","contentStyle","textAlign","gridAlignItems","contentAlignSelf","contentVerticalAlign","mediaAlignSelf","mediaVerticalAlign","gridGap","alignSelf","breadcrumbs","dividerProps","ctaClass","description","buttonText","externalLink","ctaClasses","imageAlt","hoverEffect","ariaLabel","testId","event","preventDefault","handleLinkClick","wrapperStyle","cardStyle","imageWrapperStyle","bodyStyle","cardClasses","cardContent","tabIndex","mediaPosition","content","buildMedia","position","rowVariant","shouldMirror","wrapMedia","mediaNode","pos","svg","stroke","strokeWidth","decorative","customStyles","onClose","closeOnOverlayClick","closeOnEscape","forceBottomSheet","dialogRef","contentRef","previousFocusRef","dragY","setDragY","isDragging","setIsDragging","isClosing","setIsClosing","touchStartRef","handleClose","dismissSheet","timer","setTimeout","clearTimeout","dialog","open","activeElement","showModal","close","focus","handleCancel","handleTouchStart","touch","touches","clientY","time","Date","now","handleTouchMove","deltaY","handleTouchEnd","elapsed","VELOCITY_THRESHOLD","transform","transition","onTouchStart","onTouchMove","onTouchEnd","setUser","titleAs","metadata","buttonVariant","resolvedTitleAs","richTextClasses","__html","fields","submitLabel","disclaimer","onSubmit","onValidate","formRef","setValues","fromEntries","f","dropdownValues","setDropdownValues","errors","setErrors","touched","setTouched","handleChange","prev","handleDropdownChange","selected","handleBlur","err","handleSubmit","fieldErrors","assign","hasErrors","noValidate","requestSubmit","ariaDescribedBy","linkUrl","isExternal","playbackMode","mediaProps","Promise","resolve","cb","onload","then","mediaScriptSrc","mediaScript","renderPlayIcon","points","transparentPng","node","player","thumbnailEl","insertBefore","firstChild","bulletPoints","bulletIcon","contentBlock","existingStyle","remove","tokenName"],"mappings":"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"}