tenara-ui-components 0.3.3 → 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.
- package/dist/components/atoms/BackgroundMedia/BackgroundMedia.d.ts +19 -0
- package/dist/components/atoms/BackgroundMedia/BackgroundMedia.d.ts.map +1 -0
- package/dist/components/atoms/BackgroundMedia/index.d.ts +3 -0
- package/dist/components/atoms/BackgroundMedia/index.d.ts.map +1 -0
- package/dist/components/atoms/Breadcrumb/Breadcrumb.d.ts +14 -0
- package/dist/components/atoms/Breadcrumb/Breadcrumb.d.ts.map +1 -0
- package/dist/components/atoms/Breadcrumb/index.d.ts +3 -0
- package/dist/components/atoms/Breadcrumb/index.d.ts.map +1 -0
- package/dist/components/atoms/BulletList/BulletList.d.ts +22 -0
- package/dist/components/atoms/BulletList/BulletList.d.ts.map +1 -0
- package/dist/components/atoms/BulletList/index.d.ts +3 -0
- package/dist/components/atoms/BulletList/index.d.ts.map +1 -0
- package/dist/components/atoms/Button/Button.d.ts +36 -0
- package/dist/components/atoms/Button/Button.d.ts.map +1 -0
- package/dist/components/atoms/Button/buttonIcons.d.ts +24 -0
- package/dist/components/atoms/Button/buttonIcons.d.ts.map +1 -0
- package/dist/components/atoms/Button/index.d.ts +3 -0
- package/dist/components/atoms/Button/index.d.ts.map +1 -0
- package/dist/components/atoms/ButtonLink/ButtonLink.d.ts +34 -0
- package/dist/components/atoms/ButtonLink/ButtonLink.d.ts.map +1 -0
- package/dist/components/atoms/ButtonLink/index.d.ts +3 -0
- package/dist/components/atoms/ButtonLink/index.d.ts.map +1 -0
- package/dist/components/atoms/Checkbox/Checkbox.d.ts +24 -0
- package/dist/components/atoms/Checkbox/Checkbox.d.ts.map +1 -0
- package/dist/components/atoms/Checkbox/index.d.ts +3 -0
- package/dist/components/atoms/Checkbox/index.d.ts.map +1 -0
- package/dist/components/atoms/ColorTable/ColorTable.d.ts +12 -0
- package/dist/components/atoms/ColorTable/ColorTable.d.ts.map +1 -0
- package/dist/components/atoms/ColorTable/index.d.ts +3 -0
- package/dist/components/atoms/ColorTable/index.d.ts.map +1 -0
- package/dist/components/atoms/Container/Container.d.ts +15 -0
- package/dist/components/atoms/Container/Container.d.ts.map +1 -0
- package/dist/components/atoms/Container/index.d.ts +3 -0
- package/dist/components/atoms/Container/index.d.ts.map +1 -0
- package/dist/components/atoms/Divider/Divider.d.ts +20 -0
- package/dist/components/atoms/Divider/Divider.d.ts.map +1 -0
- package/dist/components/atoms/Divider/index.d.ts +3 -0
- package/dist/components/atoms/Divider/index.d.ts.map +1 -0
- package/dist/components/atoms/Dropdown/Dropdown.d.ts +32 -0
- package/dist/components/atoms/Dropdown/Dropdown.d.ts.map +1 -0
- package/dist/components/atoms/Dropdown/index.d.ts +3 -0
- package/dist/components/atoms/Dropdown/index.d.ts.map +1 -0
- package/dist/components/atoms/Grid/Grid.d.ts +113 -0
- package/dist/components/atoms/Grid/Grid.d.ts.map +1 -0
- package/dist/components/atoms/Grid/index.d.ts +3 -0
- package/dist/components/atoms/Grid/index.d.ts.map +1 -0
- package/dist/components/atoms/Heading/Heading.d.ts +37 -0
- package/dist/components/atoms/Heading/Heading.d.ts.map +1 -0
- package/dist/components/atoms/Heading/index.d.ts +3 -0
- package/dist/components/atoms/Heading/index.d.ts.map +1 -0
- package/dist/components/atoms/Icon/Icon.d.ts +42 -0
- package/dist/components/atoms/Icon/Icon.d.ts.map +1 -0
- package/dist/components/atoms/Icon/index.d.ts +3 -0
- package/dist/components/atoms/Icon/index.d.ts.map +1 -0
- package/dist/components/atoms/Media/Media.d.ts +63 -0
- package/dist/components/atoms/Media/Media.d.ts.map +1 -0
- package/dist/components/atoms/Media/index.d.ts +3 -0
- package/dist/components/atoms/Media/index.d.ts.map +1 -0
- package/dist/components/atoms/Paragraph/Paragraph.d.ts +41 -0
- package/dist/components/atoms/Paragraph/Paragraph.d.ts.map +1 -0
- package/dist/components/atoms/Paragraph/index.d.ts +3 -0
- package/dist/components/atoms/Paragraph/index.d.ts.map +1 -0
- package/dist/components/atoms/PlayButton/PlayButton.d.ts +26 -0
- package/dist/components/atoms/PlayButton/PlayButton.d.ts.map +1 -0
- package/dist/components/atoms/PlayButton/index.d.ts +3 -0
- package/dist/components/atoms/PlayButton/index.d.ts.map +1 -0
- package/dist/components/atoms/RichText/RichText.d.ts +21 -0
- package/dist/components/atoms/RichText/RichText.d.ts.map +1 -0
- package/dist/components/atoms/RichText/index.d.ts +3 -0
- package/dist/components/atoms/RichText/index.d.ts.map +1 -0
- package/dist/components/atoms/TextInput/TextInput.d.ts +44 -0
- package/dist/components/atoms/TextInput/TextInput.d.ts.map +1 -0
- package/dist/components/atoms/TextInput/index.d.ts +3 -0
- package/dist/components/atoms/TextInput/index.d.ts.map +1 -0
- package/dist/components/atoms/TextLink/TextLink.d.ts +19 -0
- package/dist/components/atoms/TextLink/TextLink.d.ts.map +1 -0
- package/dist/components/atoms/TextLink/index.d.ts +3 -0
- package/dist/components/atoms/TextLink/index.d.ts.map +1 -0
- package/dist/components/molecules/CTA/CTA.d.ts +34 -0
- package/dist/components/molecules/CTA/CTA.d.ts.map +1 -0
- package/dist/components/molecules/CTA/index.d.ts +3 -0
- package/dist/components/molecules/CTA/index.d.ts.map +1 -0
- package/dist/components/molecules/Card/Card.d.ts +23 -0
- package/dist/components/molecules/Card/Card.d.ts.map +1 -0
- package/dist/components/molecules/Card/index.d.ts +3 -0
- package/dist/components/molecules/Card/index.d.ts.map +1 -0
- package/dist/components/molecules/Header/Header.d.ts +13 -0
- package/dist/components/molecules/Header/Header.d.ts.map +1 -0
- package/dist/components/molecules/Header/index.d.ts +3 -0
- package/dist/components/molecules/Header/index.d.ts.map +1 -0
- package/dist/components/molecules/Modal/Modal.d.ts +26 -0
- package/dist/components/molecules/Modal/Modal.d.ts.map +1 -0
- package/dist/components/molecules/Modal/index.d.ts +3 -0
- package/dist/components/molecules/Modal/index.d.ts.map +1 -0
- package/dist/components/molecules/VideoPlayer/VideoPlayer.d.ts +29 -0
- package/dist/components/molecules/VideoPlayer/VideoPlayer.d.ts.map +1 -0
- package/dist/components/molecules/VideoPlayer/index.d.ts +3 -0
- package/dist/components/molecules/VideoPlayer/index.d.ts.map +1 -0
- package/dist/components/molecules/primax/Banner/Banner.d.ts.map +1 -1
- package/dist/components/molecules/primax/CTA/CTA.d.ts +28 -0
- package/dist/components/molecules/primax/CTA/CTA.d.ts.map +1 -0
- package/dist/components/molecules/primax/CTA/index.d.ts +3 -0
- package/dist/components/molecules/primax/CTA/index.d.ts.map +1 -0
- package/dist/components/molecules/primax/Card/Card.d.ts +46 -0
- package/dist/components/molecules/primax/Card/Card.d.ts.map +1 -0
- package/dist/components/molecules/primax/Card/index.d.ts +3 -0
- package/dist/components/molecules/primax/Card/index.d.ts.map +1 -0
- package/dist/components/molecules/primax/DropdownSelect/DropdownSelect.d.ts +50 -0
- package/dist/components/molecules/primax/DropdownSelect/DropdownSelect.d.ts.map +1 -0
- package/dist/components/molecules/primax/DropdownSelect/index.d.ts +3 -0
- package/dist/components/molecules/primax/DropdownSelect/index.d.ts.map +1 -0
- package/dist/components/molecules/primax/HalfColumn/HalfColumn.d.ts +60 -0
- package/dist/components/molecules/primax/HalfColumn/HalfColumn.d.ts.map +1 -0
- package/dist/components/molecules/primax/HalfColumn/index.d.ts +3 -0
- package/dist/components/molecules/primax/HalfColumn/index.d.ts.map +1 -0
- package/dist/components/molecules/primax/MediaBlock/MediaBlock.d.ts +45 -0
- package/dist/components/molecules/primax/MediaBlock/MediaBlock.d.ts.map +1 -0
- package/dist/components/molecules/primax/MediaBlock/assets.d.ts +11 -0
- package/dist/components/molecules/primax/MediaBlock/assets.d.ts.map +1 -0
- package/dist/components/molecules/primax/MediaBlock/index.d.ts +3 -0
- package/dist/components/molecules/primax/MediaBlock/index.d.ts.map +1 -0
- package/dist/components/molecules/primax/PlayIcon/PlayIcon.d.ts +11 -0
- package/dist/components/molecules/primax/PlayIcon/PlayIcon.d.ts.map +1 -0
- package/dist/components/molecules/primax/PlayIcon/index.d.ts +2 -0
- package/dist/components/molecules/primax/PlayIcon/index.d.ts.map +1 -0
- package/dist/components/molecules/primax/Subscribe/Subscribe.d.ts +58 -0
- package/dist/components/molecules/primax/Subscribe/Subscribe.d.ts.map +1 -0
- package/dist/components/molecules/primax/Subscribe/index.d.ts +3 -0
- package/dist/components/molecules/primax/Subscribe/index.d.ts.map +1 -0
- package/dist/components/molecules/primax/TwoColumn/TwoColumn.d.ts +37 -0
- package/dist/components/molecules/primax/TwoColumn/TwoColumn.d.ts.map +1 -0
- package/dist/components/molecules/primax/TwoColumn/index.d.ts +3 -0
- package/dist/components/molecules/primax/TwoColumn/index.d.ts.map +1 -0
- package/dist/components/molecules/primax/VideoSection/VideoSection.d.ts +31 -0
- package/dist/components/molecules/primax/VideoSection/VideoSection.d.ts.map +1 -0
- package/dist/components/molecules/primax/VideoSection/index.d.ts +3 -0
- package/dist/components/molecules/primax/VideoSection/index.d.ts.map +1 -0
- package/dist/components/pages/Page.d.ts +4 -0
- package/dist/components/pages/Page.d.ts.map +1 -0
- package/dist/components/pages/index.d.ts +2 -0
- package/dist/components/pages/index.d.ts.map +1 -0
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/themes/core/client-provider.d.ts +8 -0
- package/dist/themes/core/client-provider.d.ts.map +1 -0
- package/dist/themes/core/color-system.d.ts +72 -0
- package/dist/themes/core/color-system.d.ts.map +1 -0
- package/dist/themes/core/context.d.ts +26 -0
- package/dist/themes/core/context.d.ts.map +1 -0
- package/dist/themes/core/types.d.ts +188 -0
- package/dist/themes/core/types.d.ts.map +1 -0
- package/dist/themes/hooks/useColorTokens.d.ts +26 -0
- package/dist/themes/hooks/useColorTokens.d.ts.map +1 -0
- package/dist/themes/index.d.ts +16 -0
- package/dist/themes/index.d.ts.map +1 -0
- package/dist/themes/presets/advisors-plus.d.ts +7 -0
- package/dist/themes/presets/advisors-plus.d.ts.map +1 -0
- package/dist/themes/presets/color-systems/advisors-plus-colors.d.ts +7 -0
- package/dist/themes/presets/color-systems/advisors-plus-colors.d.ts.map +1 -0
- package/dist/themes/presets/color-systems/default-colors.d.ts +7 -0
- package/dist/themes/presets/color-systems/default-colors.d.ts.map +1 -0
- package/dist/themes/presets/color-systems/primax-colors.d.ts +7 -0
- package/dist/themes/presets/color-systems/primax-colors.d.ts.map +1 -0
- package/dist/themes/presets/default.d.ts +7 -0
- package/dist/themes/presets/default.d.ts.map +1 -0
- package/dist/themes/presets/primax.d.ts +7 -0
- package/dist/themes/presets/primax.d.ts.map +1 -0
- package/dist/themes/utils/generator.d.ts +20 -0
- package/dist/themes/utils/generator.d.ts.map +1 -0
- package/dist/themes/utils/helpers.d.ts +14 -0
- package/dist/themes/utils/helpers.d.ts.map +1 -0
- package/dist/themes/utils/index.d.ts +6 -0
- package/dist/themes/utils/index.d.ts.map +1 -0
- package/package.json +4 -4
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.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/TextLink/TextLink.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/Icon/Icon.tsx","../src/components/atoms/RichText/RichText.tsx","../src/components/atoms/Paragraph/Paragraph.tsx","../src/components/atoms/BulletList/BulletList.tsx","../src/components/atoms/PlayButton/PlayButton.tsx","../src/components/molecules/Modal/Modal.tsx","../src/components/molecules/Header/Header.tsx","../src/components/molecules/Card/Card.tsx","../src/components/molecules/CTA/CTA.tsx","../src/components/molecules/VideoPlayer/VideoPlayer.tsx","../src/components/molecules/primax/MediaBlock/MediaBlock.tsx","../public/assets/sparkle-overlay.svg","../public/assets/spark-small-sparks.svg","../public/assets/spark-icon-large.svg","../public/assets/spark-icon-small.svg","../src/components/molecules/primax/Banner/Banner.tsx","../src/components/molecules/primax/CTA/CTA.tsx","../src/components/molecules/primax/VideoSection/VideoSection.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/components/molecules/primax/PlayIcon/PlayIcon.tsx","../src/components/molecules/primax/HalfColumn/HalfColumn.tsx","../src/components/molecules/primax/Card/Card.tsx","../src/components/pages/Page.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"],"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,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],"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","applyTheme","themeName","existingStyle","document","getElementById","remove","style","createElement","id","textContent","head","appendChild","setThemeAttribute","documentElement","setAttribute","ThemeContext","createContext","useTheme","context","useContext","Error","ThemeProvider","children","initialTheme","initialThemeName","useEffect","fontImport","Array","isArray","url","contains","applyThemeCSS","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","TextLink","externalLink","ariaLabel","ariaDescribedBy","testId","linkUrl","isExternal","event","preventDefault","onKeyDown","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","Icon","svg","fill","stroke","strokeWidth","decorative","customStyles","role","RichText","content","richTextClasses","dangerouslySetInnerHTML","__html","Paragraph","commonProps","defaultIcon","viewBox","xmlns","cx","cy","r","BulletList","itemIcon","_b","PlayButton","Modal","isOpen","onClose","closeOnOverlayClick","closeOnEscape","forceBottomSheet","dialogRef","contentRef","previousFocusRef","dragY","setDragY","isDragging","setIsDragging","isClosing","setIsClosing","touchStartRef","handleClose","useCallback","dismissSheet","timer","setTimeout","clearTimeout","dialog","open","activeElement","showModal","close","focus","handleCancel","addEventListener","removeEventListener","handleTouchStart","touch","touches","y","clientY","time","Date","now","handleTouchMove","deltaY","handleTouchEnd","elapsed","VELOCITY_THRESHOLD","transform","transition","onTouchStart","onTouchMove","onTouchEnd","Header","user","onLogin","onLogout","onCreateAccount","fillRule","d","_Fragment","Card","imageAlt","hoverEffect","handleKeyDown","handleLinkClick","wrapperStyle","cardStyle","imageWrapperStyle","bodyStyle","cardClasses","cardContent","tabIndex","CTA","headingLevel","description","buttonText","link","ctaClasses","WISTIA_PLAYER_SCRIPT","wistiaScriptLoaded","wistiaScriptLoading","wistiaLoadCallbacks","VideoPlayer","thumbnail","playIcon","playbackMode","mediaProps","isPlaying","setIsPlaying","Promise","resolve","querySelector","cb","onload","then","mediaScriptSrc","mediaScript","handlePlay","renderPlayIcon","points","transparentPng","node","player","thumbnailEl","insertBefore","firstChild","WISTIA_PLAYER_SCRIPT_ID","MediaBlock","accentBorder","overlay","sparkle","accentColor","sparkSrc","sparkScale","mirror","popover","sparkSmallSrc","videoHandleRef","videoContainerRef","isPopover","videoSrc","hasVideo","isVideoSource","isImage","loadWistiaPlayerScript","mediaId","moduleId","loadWistiaMediaModule","handleVideoReady","handle","videoEl","sparkPath","x","clipPath","React","aspect","BANNER_CONFIG","hero","level2","level3","gated","mapVerticalAlignment","alignment","top","center","bottom","renderColumnMedia","mediaBlockProps","Banner","align","config","bannerType","hasBackgroundVideo","backgroundVideo","BannerClass","contentStyle","textAlign","left","right","gridAlignItems","contentAlignSelf","contentVerticalAlign","mediaAlignSelf","mediaVerticalAlign","gridGap","alignSelf","contentGap","breadcrumbs","BannerCTA","dividerProps","ctaClass","VideoSection","variation","bulletPoints","bulletIcon","contentBlock","mediaBlock","verticalAlignMap","TwoColumn","rows","_children","rest","resolvedRows","row","rowVariation","rowAlign","isReversed","order","TextInput","placeholder","onChange","onBlur","validation","error","useId","errorId","isRequired","required","htmlFor","minLength","maxLength","Dropdown","controlledOpen","onToggle","displayValue","listboxId","containerRef","internalOpen","setInternalOpen","handleToggle","next","handleClickOutside","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","Subscribe","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","PlayIcon","HalfColumn","mediaPosition","buildMedia","position","rowVariant","shouldMirror","wrapMedia","mediaNode","pos","titleAs","metadata","buttonVariant","resolvedTitleAs","Page","setUser","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","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","danger","sectionDividerFontSize","sectionDividerFontWeight","sectionDividerLineHeight","sectionDividerColor","subtitleColor","componentTitleFontSize","componentTitleFontWeight","componentTitleLineHeight","componentTitleColor","bodyColor","bodyBoldColor","bodySmallColor","twoColumn","leftColSparkIconSmallLeft","leftColSparkIconLargeRight","rightColSparkIconSmallLeft","rightColSparkIconLargeRight","videoSection","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","useColorToken","tokenName","useColorVar"],"mappings":"0xBA0CO,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,EAACC,GAAgBC,KAAMC,IAChCC,MAAOJ,EAACC,GAAgBC,KAAMG,KAEhCC,UAAW,CACTP,QAASC,EAACC,GAAgBC,KAAMK,IAChCH,MAAOJ,EAACC,GAAgBC,KAAMM,KAEhCC,IAAK,CACHV,QAASC,EAACC,GAAgBC,KAAMQ,KAElCC,QAAS,CACPZ,QAASC,EAACC,GAAgBC,KAAMU,KAElCC,SAAU,CACRd,QAASC,EAACC,GAAgBC,KAAMY,KAElCC,SAAU,CACRhB,QAASC,EAACC,GAAgBC,KAAMc,MCzC7B,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,CAsMM,SAAUiE,EAAWnD,EAAoBoD,GAC7C,MACMlD,EAAMH,EAAiBC,EADZoD,EAAY,gBAAgBA,MAAgB,SAIvDC,EAAgBC,SAASC,eAAe,SAASvD,EAAMpS,QACzDyV,GACFA,EAAcG,SAIhB,MAAMC,EAAQH,SAASI,cAAc,SACrCD,EAAME,GAAK,SAAS3D,EAAMpS,OAC1B6V,EAAMG,YAAc1D,EACpBoD,SAASO,KAAKC,YAAYL,EAC5B,CAKM,SAAUM,EAAkBX,GAChCE,SAASU,gBAAgBC,aAAa,aAAcb,EACtD,CCxXA,MAAMc,EAAeC,OAA6CzE,YAkClD0E,IACd,MAAMC,EAAUC,EAAWJ,GAC3B,IAAKG,EACH,MAAM,IAAIE,MAAM,gDAElB,OAAOF,CACT,CCzEO,MAAMG,ED6CP,UAAwBC,SAC5BA,EAAQC,aACRA,EAAe/W,EAAYgX,iBAC3BA,EAAmB,YAGnBC,EAAU,MA/CZ,SAAuB5E,EAAoBoD,GACzC,MAAMK,EAAQH,SAASC,eAAe,SAASH,MAAgBE,SAASI,cAAc,SACtFD,EAAME,GAAK,SAASP,IAEpB,MAAMnD,EAAW,gBAAgBmD,MAGjC,IAAIyB,EAAa,GACb7E,EAAMnS,gBAERgX,GADaC,MAAMC,QAAQ/E,EAAMnS,eAAiBmS,EAAMnS,cAAgB,CAACmS,EAAMnS,gBAC7D8R,IAAKqF,GAAQ,gBAAgBA,QAAUtE,KAAK,WAGhE,MAAMR,EAAM,SACR2E,UACA9E,EAAiBC,EAAOC,SAG5BwD,EAAMG,YAAc1D,EACfoD,SAASO,KAAKoB,SAASxB,IAC1BH,SAASO,KAAKC,YAAYL,EAE9B,CA0BIyB,CAAcR,EAAcC,GAC5BrB,SAASU,gBAAgBC,aAAa,aAAcU,IACnD,CAACD,EAAcC,IAElB,MAAMlF,EAA2B,CAC/B0F,aAAcT,EACdtB,UAAWuB,GAGb,OAAOxb,EAAC+a,EAAakB,SAAQ,CAAC3F,MAAOA,EAAKgF,SAAGA,GAC/C,EE5BaY,EAAUC,IAAA,IAAAC,WACrBA,EAAa,UAASC,QACtBA,EAAOC,MACPA,EAAKpc,KACLA,EAAIqc,UACJA,EAASC,UACTA,EAASlB,SACTA,EAAQhB,MACRA,EAAKmC,SACLA,GAAW,EAAKC,SAChBA,GAAW,EAAK1Q,KAChBA,EAAO,KAAI2Q,SACXA,EAAQC,QACRA,GAAOT,EACJU,EAAK/d,EAAAqd,EAda,sIAgBrB,MAAMH,aAAEA,GAAiBf,IACnB6B,EAAc,kBAAkBlH,EAAYwG,MAAeI,GAAa,KACxEO,EPFF,SACJX,EACAY,EACAC,EACAhD,GAGA,OAAI+C,EACK,CACLjd,QAASid,EACT5c,MAAO6c,GAKO,WAAdhD,GAEe,YAAfmC,GACe,cAAfA,GACe,SAAfA,GACe,WAAfA,GACe,gBAAfA,GACe,kBAAfA,EAUGvc,EAAmBuc,IAAe,KAR9B,CACLrc,QAASC,EAACC,GAAgBC,KAAMgd,IAChC9c,MAAOJ,EAACC,GAAgBC,KAAMid,IAOtC,CO/BqBC,CAAchB,EAAYlc,EAAMqc,EAAWP,eAAAA,EAAcvX,MAEtE4Y,EAAehB,EAClBld,OAAAme,OAAA,CACGC,gBAAiB,SAASlB,KAC1B/O,MAAO,SAAS+O,UAChBmB,YAAa,SAASnB,MACnB/B,GAELA,EAEJ,OACEmD,EAAA,SAAAte,OAAAme,OAAA,CACEI,KAAK,SACLlB,UAAWM,EAAW,iBACNJ,EAAW,YAASnG,EAAS,YAClCvK,EAAI,qBACauK,IAAboG,EAA0BA,EAAW,OAAS,aAAWpG,EACxE+D,MAAO+C,EACPT,QAASA,EACTH,SAAUA,GACNI,EAAK,CAAAvB,SAAA,CAERA,GAAYgB,EACZS,IACEA,EAAW3c,MACVqd,eACEzd,EAAA,OAAA,CAAMwc,UAAU,qBAAoBlB,SAAEyB,EAAWhd,UACjDC,EAAA,OAAA,CAAMwc,UAAU,mBAAkBlB,SAAEyB,EAAW3c,WAGjDJ,EAAA,OAAA,CAAMwc,UAAU,OAAMlB,SAAEyB,EAAWhd,gBC1DhC4d,EAAcxB,IAAA,IAAAC,WACzBA,EAAa,UAASE,MACtBA,EAAKpc,KACLA,EAAI0d,KACJA,EAAIC,OACJA,EAAS,QAAOrB,UAChBA,EAASlB,SACTA,EAAQhB,MACRA,EAAKmC,SACLA,GAAW,EAAKzQ,KAChBA,EAAO,KAAI0Q,SACXA,GAAW,GAAKP,EACbU,EAAK/d,EAAAqd,EAZiB,2GAczB,MAAMW,EAAc,kBAAkBV,KAAcI,GAAa,KAC3DsB,EAAiB,WAAXD,EAAsB,2BAAwBtH,EAE1D,OAAIkG,EAEAgB,EAAA,OAAAte,OAAAme,OAAA,CACEd,UAAWM,EAAW,YACX9Q,EAAI,iBACC0Q,QAAYnG,EAC5B+D,MAAOA,EAAK,gBACE,QACVuC,aAEHvB,GAAYgB,EAAK,IAAGpc,GAAQF,EAAA,OAAA,CAAMwc,UAAU,OAAMlB,SAAEpb,QAMzDud,qBACEG,KAAMA,EACNC,OAAQA,EACRC,IAAKA,EACLtB,UAAWM,EAAW,YACX9Q,mBACK0Q,QAAYnG,EAC5B+D,MAAOA,GACHuC,EAAK,CAAAvB,SAAA,CAERA,GAAYgB,EAAK,IAAGpc,GAAQF,EAAA,OAAA,CAAMwc,UAAU,gBAAQtc,SC1D9C6d,EAAoC,EAC/CzB,QACAsB,OACAI,eACAH,SAAS,QACTjB,UACAJ,YAAY,GACZtc,OACAoa,QACAmC,YAAW,EACXC,YAAW,EACX,aAAcuB,EACd,mBAAoBC,EACpB,cAAeC,MAEf,MAAMC,EAAUJ,GAAgBJ,EAC1BS,IAAeL,GAA2B,WAAXH,EAkBrC,OAAKO,GAAW3B,EAEZgB,EAAA,OAAA,CACEjB,UAAW,iCAAiCA,IAAW,iBACvCE,QAAYnG,EAC5B+D,MAAOA,EAAK,cACC6D,EAAM,aACPF,GAAa3B,EAAK,mBACZ4B,EAAe5C,SAAA,CAEhCgB,EAAK,IAAGpc,KAMbud,EAAA,IAAA,CACEG,KAAMQ,EACNP,OAAQA,EACRC,IAAKO,EAAa,2BAAwB9H,EAC1CqG,QApCiB0B,IACf7B,EACF6B,EAAMC,iBAGJ3B,GACFA,EAAQ0B,IA+BRE,UA3BmBF,KACjB7B,GAA2B,UAAd6B,EAAM7H,KAAiC,MAAd6H,EAAM7H,KAC9C6H,EAAMC,kBA0BN/B,UAAW,aAAaA,IAAW,iBACnBE,QAAYnG,EAC5B+D,MAAOA,EAAK,aACA2D,EAAS,mBACHC,EAAe,cACpBC,EAAM7C,SAAA,CAElBgB,EAAK,IAAGpc,MC/DFue,EAAkD,EAC7DC,WACAC,WACAC,WACAC,UACArC,YACAlC,YAEA,MAAMwE,EAAc,CAAC,mBAAoBtC,GAAWnG,OAAOiB,SAASC,KAAK,KAEzE,GAAImH,EACF,OACEjB,EAAA,QAAA,CAAOjB,UAAW,GAAGsC,4BAAuCC,UAAQ,EAACC,OAAK,EAACC,MAAI,EAACC,aAAW,EAAC5E,MAAOA,EAAKgB,SAAA,CACtGtb,EAAA,SAAA,CAAQmf,IAAKT,EAAUhB,KAAK,cAAc,0CAMhD,MAAM0B,EAAejgB,OAAAme,OAAA,CACnB+B,gBAAiBT,EAAW,GAAGA,UAAiBD,KAAcA,EAAW,OAAOA,UAAcpI,EAC9FgH,gBAAiBsB,GACdvE,GAGL,OAAOta,EAAA,MAAA,CAAKwc,UAAWsC,EAAaxE,MAAO8E,KCzCvCE,EAAmB,yBAyGlB,MAAMC,EAA8B,EACzCJ,MACAzB,OACA8B,MAAM,GACN3K,YAAY,QACZC,iBACAC,cACA0K,YAAW,EACXC,YAAW,EACXT,QAAO,EACPD,QACAW,UAAU,OACVC,SACAzS,QACA0S,YAAY,GACZnD,YAAW,EACXF,YACAlC,QACAwF,SACAC,UACAC,cAEA,MAAMC,EAAWC,EAAyB,MACpCC,EAAeD,EAA8B,OAC5CE,EAAUC,GAAeC,GAAS,IAClCC,EAAeC,GAAoBF,GAAS,GAE7CG,EAAe/C,QAAAA,EAlCvB,SAAyByB,GAEvB,MADkB,sDACJrJ,KAAKqJ,GAAa,QACzB,OACT,CA8B+BuB,CAAgBvB,GACvCwB,EAAgB3B,QAAAA,EAASS,EACzBmB,EAA4B,UAAjBH,EAlInB,SAAyB5E,SACvB,MAAMzC,EAAQyC,EAAIzC,MAAM,sCAAwCyC,EAAIzC,MAAM,kCAC1E,OAAiB,QAAV+C,EAAA/C,aAAK,EAALA,EAAQ,UAAE,IAAA+C,EAAAA,EAAI,IACvB,CA+H8C0E,CAAgB1B,GAAO,KAC7D2B,EAA4B,UAAjBL,IA5HV,qBAAqB3K,KADT+F,EA6HsCsD,IA5HhB,UAAUrJ,KAAK+F,OA4HW+E,EA7HrE,IAAqB/E,EAgInBJ,EAAU,KACR4E,GAAY,IACX,IAGH5E,EAAU,KACR,GAAK2E,GAAaU,GAAaF,EAA/B,CAGA,IAAKzG,SAASC,eAAekF,GAAmB,CAC9C,MAAMyB,EAAS5G,SAASI,cAAc,UACtCwG,EAAOvG,GAAK8E,EACZyB,EAAO5B,IArJa,kDAsJpB4B,EAAOC,OAAQ,EACf7G,SAAS7R,KAAKqS,YAAYoG,EAC5B,CAGCE,OAAeC,IAAOD,OAAeC,KAAO,GAC5CD,OAAeC,IAAIhK,KAAK,CACvBsD,GAAIoG,EACJZ,QAAUlgB,IACR0gB,GAAiB,GACjBR,SAAAA,EAAUlgB,GACVggB,SAAAA,MAlBqC,GAqBxC,CAACM,EAAUU,EAAUF,EAAUd,EAAQE,IAG1CvE,EAAU,KACa,UAAjBgF,IAA6BK,GAAYrB,GAAYQ,EAASkB,SAChElB,EAASkB,QAAQC,OAAOC,MAAM,SAI/B,CAACZ,EAAcK,EAAUrB,EAAUN,IAEtC,MAAMmC,EAAY,QACZC,EAAU,CAACD,EAAW,GAAGA,MAAcb,IAAgBjE,GAAWnG,OAAOiB,SAASC,KAAK,KAEvFiK,EAAOriB,OAAAme,OAAAne,OAAAme,OAAAne,OAAAme,OAAAne,OAAAme,OAAA,CAAA,EACPzI,GAAc,CAAE,qBAAsBA,IACtCC,GAAmB,CAAE,0BAA2BA,IAChDC,GAAgB,CAAE,uBAAwBA,IAC3CuF,GAGL,GAAqB,UAAjBmG,EACF,OACEzgB,SAAKwc,UAAW+E,EAASjH,MAAOkH,EAAO,iBAAkB9E,QAAYnG,EAAS+E,SAC5Etb,EAAA,MAAA,CACEwc,UAAW,GAAG8E,WACdnC,IAAKA,EACLK,IAAKA,EACLG,QAASA,EACTC,OAAQA,EACRzS,MAAOA,EACP2S,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,yBAEP5I,OAAOiB,SACPC,KAAK,KAER,OACEvX,EAAA,MAAA,CACEwc,UAAW,GAAG+E,KAAWD,qBACzBhH,MAAOkH,EAAO,iBACE9E,QAAYnG,EAAS+E,SAEpC8E,GACCpgB,EAAA,MAAA,CACE0hB,IAAKvB,EACL3D,UAAW,GAAGiF,KAAiBH,YAC/BhH,MAAO,CACL3E,MAAO,OACPxM,OAAQ,OACRwY,WAAYpB,EAAgB,UAAY,aAMpD,CAEA,MAAMqB,EAjNR,SACE/F,EACAgE,EACAgC,GAEA,IAAK,MAAMC,KAAYjC,EACrB,GAAIiC,EAAS1I,MAAMyC,GACjB,MAAO,CACL6B,KAAM,QACNqE,SAAUD,EAASE,cAAcnG,EAAKgG,GACtCI,aAAcH,EAASrd,MAI7B,MAAO,CAAEiZ,KAAM,SACjB,CAkMyBwE,CAAsB/C,EAAKU,EAAW,CAC3DJ,WACAC,WACAV,MAAO2B,EACP1B,SAGF,MAA4B,UAAxB2C,EAAelE,KAEf1d,EAAA,MAAA,CACEwc,UAAW,GAAG+E,KAAWD,eAAuBM,EAAeK,eAC/D3H,MAAOkH,EAAO,iBACE9E,QAAYnG,EAAS+E,SAErCtb,EAAA,SAAA,CACEwc,UAAW,GAAG8E,YACdnC,IAAKyC,EAAeG,SACpB3Z,MAAOoX,GAAO,QACd2C,MAAM,4DACNC,iBAAe,EACfzC,QAASA,EACTG,OAAQA,EACRC,QAASA,MAOf/f,EAAA,MAAA,CAAKwc,UAAW+E,EAASjH,MAAOkH,EAAO,iBAAkB9E,QAAYnG,WACnEvW,EAAA,QAAA,CACE0hB,IAAKzB,EACLzD,UAAW,GAAG8E,WACdnC,IAAKA,EACLJ,SAAUU,EACVC,SAAUA,EACVT,KAAMA,EACND,MAAO2B,EACPzB,aAAW,EACXmD,aAAcvC,EACdC,QAASA,OC/QJuC,EAAwC,EAAGC,QAAOC,YAAY,IAAK9F,YAAW,EAAOF,YAAY,MAE1Gxc,EAAA,MAAA,CAAKwc,UAAW,cAAcA,IAAW,aAAa,aAAY,iBAAiBE,QAAYnG,EAAS+E,SACtGtb,EAAA,KAAA,CAAIwc,UAAU,mBAAkBlB,SAC7BiH,EAAM/L,IAAI,CAACiM,EAAMC,KAChB,MAAMC,EAASD,IAAUH,EAAM7iB,OAAS,EAExC,OACE+d,EAAA,KAAA,CAAgBjB,UAAU,mBAAkBlB,SAAA,CACzCmH,EAAK7E,OAAS+E,EACb3iB,EAAA,IAAA,CAAG4d,KAAM6E,EAAK7E,KAAMpB,UAAU,mBAAkBlB,SAC7CmH,EAAKnG,QAGRtc,EAAA,OAAA,CAAMwc,UAAU,mBAAkB,eAAemG,EAAS,YAASpM,EAAS+E,SACzEmH,EAAKnG,SAGRqG,GACA3iB,EAAA,OAAA,CAAMwc,UAAU,wBAAuB,cAAa,OAAMlB,SACvDkH,MAZEE,SCFRE,EAAkC,EAC7CtH,WACAiC,kBACA8B,kBACAwD,oBAAoB,OACpBC,eAAe,OACfC,aAAa,UACbvG,YAAY,GACZxT,UACAG,SACA6Z,gBAAgB,MAChBtG,YAAW,EACXuG,eAEA,MAAMC,EAAiB,CACrB,UACA,oBAAoBJ,IACE,SAAtBD,GAAgC,oBAAoBA,IACpDrG,GAECnG,OAAOiB,SACPC,KAAK,KAEF+C,EAAKnb,OAAAme,OAAAne,OAAAme,OAAAne,OAAAme,OAAAne,OAAAme,OAAAne,OAAAme,OAAAne,OAAAme,OAAAne,OAAAme,OAAA,CAAA,EACLC,GAAoB,CAAE,eAAgBA,IACtC8B,GACD,CACC,qBAAsB,OAAOA,OAE7BrW,GAAY,CAAE,oBAAqBA,IACnCG,GAAW,CAAE,mBAAoBA,IACjC6Z,GAAkB,CAAE,2BAA4BA,IAChDD,GAAe,CAAE,wBAAyBA,IAC1CE,GAAa,CAAE,qBAAsBA,IAG3C,OACExF,EAAA,MAAA,CAAKjB,UAAW0G,EAAgB5I,MAAOA,EAAK,iBAAkBoC,QAAYnG,EAAS,YAAY,OAAM+E,SAAA,CAEnGtb,EAAA,MAAA,CAAKwc,UAAU,gBAEfxc,EAAA,MAAA,CAAKwc,UAAU,mBAAkBlB,SAAEA,QC/C5B6H,EAAsC,EACjD7H,WACA8H,SAAQ,EACR5G,YAAY,GACZ6G,GAAIC,EAAM,MACVhJ,YAEA,MAAMiH,EAAU,CAAC6B,EAAQ,kBAAoB,YAAa5G,GAAWnG,OAAOiB,SAASC,KAAK,KAE1F,OACEvX,EAACsjB,EAAG,CAAC9G,UAAW+E,EAASjH,MAAOA,EAAKgB,SAClCA,KCmBMiI,EAAkC,EAC7CC,QAAQ,KACRC,UACAC,SACA1X,OACAsB,QACA+O,UACAK,YAAW,EACXpB,WACAkB,YACAlC,YAEA,MAAMgJ,EAAME,EAGZ,IAAIG,EAAarJ,EAEb+B,EACFsH,iCACKrJ,GAAK,CACRiD,gBAAiB,SAASlB,KAC1B/O,MAAO,SAAS+O,UAChBrT,SAASsR,aAAK,EAALA,EAAOtR,UAAW,cAC3B1D,cAAcgV,eAAAA,EAAOhV,eAAgB,QAE9BgI,IACTqW,EAAUxkB,OAAAme,OAAAne,OAAAme,OAAA,CAAA,EACLhD,GAAK,CACRhN,MAAO,SAASsI,EAAYtI,SAK5BoW,IACFC,EAAUxkB,OAAAme,OAAAne,OAAAme,OAAA,CAAA,EACLqG,GAAU,CACbrc,WAAY,4CAA4Coc,QAIxD1X,IACF2X,iCACKA,GAAU,CACbtc,SAAU,0CAAmD,QAAT2E,EAAiB,MAAQA,QAIjF,MAAM4X,EAAiB,CAAC,UAAW,YAAYJ,IAASC,GAAW,oBAAoBA,IAAWjH,GAC/FnG,OAAOiB,SACPC,KAAK,KAER,OACEvX,EAACsjB,EAAG,CAAC9G,UAAWoH,EAAgBtJ,MAAOqJ,EAAU,iBAAkBjH,EAAW,YAASnG,EAAS+E,SAC7FA,KCzCMuI,EAAO,EAClBC,UAAU,GACVC,MACAC,SACAC,YACAC,iBACAC,iBACAC,aACAC,eACAC,iBACAC,cACA/H,YAAY,GACZlC,QAAQ,CAAA,EACRgB,WACAkJ,aAAY,MAEZ,MAAMC,EAAY,QAAQD,EAAY,mBAAqB,MAAMhI,IAG3DkI,EAAyBH,EACX,SAAhBA,EACE,QACgB,UAAhBA,EACE,MACA,SACJD,EAGEK,EAAUxlB,OAAAme,OAAAne,OAAAme,OAAA,CAAA,EACXhD,GAAK,CACR8J,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,SAEUvN,IAAfuN,EAAQ7e,KACgB,iBAAf6e,EAAQ7e,GACjB0f,EAAW,8BAAgCb,EAAQ7e,GAEnD0f,EAAW,qBAAuBb,EAAQ7e,GAAG2f,iBAG9BrO,IAAfuN,EAAQ5e,KACgB,iBAAf4e,EAAQ5e,GACjByf,EAAW,8BAAgCb,EAAQ5e,GAEnDyf,EAAW,qBAAuBb,EAAQ5e,GAAG0f,iBAG9BrO,IAAfuN,EAAQ3e,KACgB,iBAAf2e,EAAQ3e,GACjBwf,EAAW,8BAAgCb,EAAQ3e,GAEnDwf,EAAW,qBAAuBb,EAAQ3e,GAAGyf,iBAG9BrO,IAAfuN,EAAQ1e,GACgB,iBAAf0e,EAAQ1e,GACjBuf,EAAW,8BAAgCb,EAAQ1e,GAEnDuf,EAAW,qBAAuBb,EAAQ1e,GAAGwf,gBAEvBrO,IAAfuN,EAAQ3e,KAES,iBAAf2e,EAAQ3e,GACjBwf,EAAW,8BAAgCb,EAAQ3e,GAEnDwf,EAAW,qBAAuBb,EAAQ3e,GAAGyf,aAM/CV,IACFS,EAAW,2BAA6BT,GAEtCC,IACFQ,EAAW,2BAA6BR,GAItCJ,EACF,GAAmB,iBAARA,EAAkB,CAE3B,MAAMe,EAAiC,CACrC9f,GAAI,qBACJC,GAAI,qBACJC,GAAI,qBACJC,GAAI,qBACJC,GAAI,qBACJC,IAAK,uBAEPsf,EAAWZ,IAAMe,EAAOf,IAAQA,CAClC,MACMA,EAAI9e,KAAI0f,EAAW,iBAAmBZ,EAAI9e,IAC1C8e,EAAI7e,KAAIyf,EAAW,iBAAmBZ,EAAI7e,IAC1C6e,EAAI5e,KAAIwf,EAAW,iBAAmBZ,EAAI5e,IAC9Cwf,EAAW,iBAAmBZ,EAAI3e,IAAM2e,EAAI5e,IAAM4e,EAAI7e,IAAM6e,EAAI9e,IAAM,YAIxE0f,EAAW,iBAAmB,+BAC9BA,EAAW,iBAAmB,iCAC9BA,EAAW,iBAAmB,wBAC9BA,EAAW,iBAAmB,wBAyBhC,OAtBIX,IACoB,iBAAXA,EACTW,EAAWX,OAASA,GAEhBA,EAAO/e,KAAI0f,EAAW,qBAAuBX,EAAO/e,IACpD+e,EAAO9e,KAAIyf,EAAW,qBAAuBX,EAAO9e,IACpD8e,EAAO7e,KAAIwf,EAAW,qBAAuBX,EAAO7e,IACxDwf,EAAW,qBAAuBX,EAAO5e,IAAM4e,EAAO7e,IAAM6e,EAAO9e,IAAM8e,EAAO/e,IAAM,SAItFgf,IACuB,iBAAdA,EACTU,EAAWV,UAAYA,GAEnBA,EAAUhf,KAAI0f,EAAW,wBAA0BV,EAAUhf,IAC7Dgf,EAAU/e,KAAIyf,EAAW,wBAA0BV,EAAU/e,IAC7D+e,EAAU9e,KAAIwf,EAAW,wBAA0BV,EAAU9e,IACjEwf,EAAW,wBAA0BV,EAAU7e,IAAM6e,EAAU9e,IAAM8e,EAAU/e,IAAM+e,EAAUhf,IAAM,SAKvGjF,EAAA,MAAA,CAAKwc,UAAWiI,EAAWnK,MAAOqK,EAAiCrJ,SAChEA,KAKMyJ,EAAW,EACtBC,UACAC,UACAC,WACAC,WACApB,MACAC,SACAC,YACAzH,YAAY,GACZlC,QAAQ,CAAA,EACRgB,eAEA,MAAM8J,EAAUjmB,OAAAme,OAAA,CAAA,EAAqDhD,GAgFrE,MA7EuB,iBAAZ0K,EACTI,EAAWC,WAAa,QAAQL,IACX,SAAZA,EACTI,EAAWC,WAAa,OACfL,IACLA,EAAQ/f,KAAImgB,EAAW,sBAAuC,SAAfJ,EAAQ/f,GAAgB,OAAS+f,EAAQ/f,GAAG2f,YAC3FI,EAAQ9f,KAAIkgB,EAAW,sBAAuC,SAAfJ,EAAQ9f,GAAgB,OAAS8f,EAAQ9f,GAAG0f,YAC3FI,EAAQ7f,KAAIigB,EAAW,sBAAuC,SAAfJ,EAAQ7f,GAAgB,OAAS6f,EAAQ7f,GAAGyf,YAC3FI,EAAQ5f,KAAIggB,EAAW,sBAAuC,SAAfJ,EAAQ5f,GAAgB,OAAS4f,EAAQ5f,GAAGwf,aAI1E,iBAAZK,EACTG,EAAWE,QAAU,QAAQL,IACR,SAAZA,EACTG,EAAWE,QAAU,OACZL,IACLA,EAAQhgB,KAAImgB,EAAW,sBAAuC,SAAfH,EAAQhgB,GAAgB,OAASggB,EAAQhgB,GAAG2f,YAC3FK,EAAQ/f,KAAIkgB,EAAW,sBAAuC,SAAfH,EAAQ/f,GAAgB,OAAS+f,EAAQ/f,GAAG0f,YAC3FK,EAAQ9f,KAAIigB,EAAW,sBAAuC,SAAfH,EAAQ9f,GAAgB,OAAS8f,EAAQ9f,GAAGyf,YAC3FK,EAAQ7f,KAAIggB,EAAW,sBAAuC,SAAfH,EAAQ7f,GAAgB,OAAS6f,EAAQ7f,GAAGwf,aAIzE,iBAAbM,EACTE,EAAWG,gBAAkBL,EACpBA,IACLA,EAASjgB,KAAImgB,EAAW,uBAAyBF,EAASjgB,GAAG2f,YAC7DM,EAAShgB,KAAIkgB,EAAW,uBAAyBF,EAAShgB,GAAG0f,YAC7DM,EAAS/f,KAAIigB,EAAW,uBAAyBF,EAAS/f,GAAGyf,YAC7DM,EAAS9f,KAAIggB,EAAW,uBAAyBF,EAAS9f,GAAGwf,aAI3C,iBAAbO,EACTC,EAAWI,aAAeL,EACjBA,IACLA,EAASlgB,KAAImgB,EAAW,uBAAyBD,EAASlgB,GAAG2f,YAC7DO,EAASjgB,KAAIkgB,EAAW,uBAAyBD,EAASjgB,GAAG0f,YAC7DO,EAAShgB,KAAIigB,EAAW,uBAAyBD,EAAShgB,GAAGyf,YAC7DO,EAAS/f,KAAIggB,EAAW,uBAAyBD,EAAS/f,GAAGwf,aAI/Db,IACiB,iBAARA,EACTqB,EAAWrB,IAAMA,GAEbA,EAAI9e,KAAImgB,EAAW,sBAAwBrB,EAAI9e,IAC/C8e,EAAI7e,KAAIkgB,EAAW,sBAAwBrB,EAAI7e,IAC/C6e,EAAI5e,KAAIigB,EAAW,sBAAwBrB,EAAI5e,IAC/C4e,EAAI3e,KAAIggB,EAAW,sBAAwBrB,EAAI3e,MAInD4e,IACoB,iBAAXA,EACToB,EAAWpB,OAASA,GAEhBA,EAAO/e,KAAImgB,EAAW,0BAA4BpB,EAAO/e,IACzD+e,EAAO9e,KAAIkgB,EAAW,0BAA4BpB,EAAO9e,IACzD8e,EAAO7e,KAAIigB,EAAW,0BAA4BpB,EAAO7e,IACzD6e,EAAO5e,KAAIggB,EAAW,0BAA4BpB,EAAO5e,MAI7D6e,IACuB,iBAAdA,EACTmB,EAAWnB,UAAYA,GAEnBA,EAAUhf,KAAImgB,EAAW,6BAA+BnB,EAAUhf,IAClEgf,EAAU/e,KAAIkgB,EAAW,6BAA+BnB,EAAU/e,IAClE+e,EAAU9e,KAAIigB,EAAW,6BAA+BnB,EAAU9e,IAClE8e,EAAU7e,KAAIggB,EAAW,6BAA+BnB,EAAU7e,MAKxEpF,EAAA,MAAA,CAAKwc,UAAW,aAAaA,IAAalC,MAAO8K,EAAiC9J,SAC/EA,KC/QMmK,EAA6BtJ,IAAA,IAAAuJ,IACxCA,EAAG1Z,KACHA,EAAO,KAAIsB,MACXA,EAAQ,UAASqY,KACjBA,EAAO,GAAEC,OACTA,EAAS,GAAEC,YACXA,EAAc,IAAGrJ,UACjBA,EAAY,GAAEyB,UACdA,EAAS6H,WACTA,GAAa,GAAK3J,EACfU,EAAK/d,EAAAqd,EAVgC,2FAYxC,MAAMoF,EAAU,CACd,iBACA,mBAAmBvV,IACT,YAAVsB,EAAsB,mBAAmBA,IAAU,GACnDkP,GAECnG,OAAOiB,SACPC,KAAK,KAGFwO,EAAgD,CAAA,EAKtD,OAJIJ,IAAMI,EAAa,eAAiBJ,GACpCC,IAAQG,EAAa,iBAAmBH,QACxBrP,IAAhBsP,IAA2BE,EAAa,uBAAyBF,GAGnE7lB,EAAA,OAAAb,OAAAme,OAAA,CACEd,UAAW+E,EAAO,YACPvV,EACXsO,MAAOnb,OAAO0a,KAAKkM,GAAcrmB,OAAS,EAAIqmB,OAAexP,EAC7DyP,KAAMF,EAAa,eAAiB,MAAK,aAC7BA,OAAavP,EAAY0H,EAAS,cACjC6H,EAAa,YAASvP,GAC/BsG,EAAK,CAAAvB,SAERoK,MC1DMO,EAAoC,EAAGC,UAASxJ,YAAW,EAAOF,YAAWlC,QAAO9P,eAC/F,MAAM2b,EAAkB,CAAC,YAAa3J,GAAWnG,OAAOiB,SAASC,KAAK,KAEhEoM,EAAanZ,EAAUrL,OAAAme,OAAAne,OAAAme,OAAA,CAAA,EAAMhD,GAAK,CAAE9P,aAAa8P,EAEvD,OACEta,EAAA,MAAA,CACEwc,UAAW2J,EACX7L,MAAOqJ,EAAU,iBACDjH,EAAW,YAASnG,EACpC6P,wBAAyB,CAAEC,OAAQH,MCa5BI,EAAsC,EACjDhL,WACA+H,KAAK,IACLK,SACA1X,OACAsB,QACA+O,UACAK,YAAW,EACXF,YACAlC,QACA8L,8BAEA,MAAM9C,EAAMD,EAGZ,IAAIM,EAAarJ,EAEb+B,EACFsH,iCACKrJ,GAAK,CACRiD,gBAAiB,SAASlB,KAC1B/O,MAAO,SAAS+O,UAChBrT,SAASsR,aAAK,EAALA,EAAOtR,UAAW,cAC3B1D,cAAcgV,eAAAA,EAAOhV,eAAgB,QAE9BgI,IACTqW,EAAUxkB,OAAAme,OAAAne,OAAAme,OAAA,CAAA,EACLhD,GAAK,CACRhN,MAAO,SAASsI,EAAYtI,SAOhC,MAEMiZ,EAAc,CAClB/J,UAHuB,CAAC,YAAaA,GAAWnG,OAAOiB,SAASC,KAAK,KAIrE+C,MAAOqJ,EACP,iBAAkBjH,EAAW,YAASnG,EACtC,YAAavK,QAAQuK,EACrB,cAAemN,QAAUnN,GAG3B,OACSvW,EAACsjB,EADN8C,EACSjnB,OAAAme,OAAA,GAAKiJ,GAAaH,wBAAyBA,IAG7CjnB,OAAAme,OAAA,GAAKiJ,EAAW,CAAAjL,SAAGA,MChE1BkL,GACJxmB,SACE2V,MAAM,MACNxM,OAAO,MACPsd,QAAQ,YACRd,KAAK,eACLe,MAAM,6BAA4B,cACtB,gBAEZ1mB,EAAA,SAAA,CAAQ2mB,GAAG,IAAIC,GAAG,IAAIC,EAAE,QAIfC,GAAwC,EAAGvE,QAAOriB,OAAMwc,YAAW,EAAOF,YAAWlC,YAChG,MAAMiH,EAAU,CAAC,cAAe/E,GAAWnG,OAAOiB,SAASC,KAAK,KAEhE,OACEvX,EAAA,KAAA,CAAIwc,UAAW+E,EAASjH,MAAOA,EAAO0L,KAAK,wBAAuBtJ,EAAW,YAASnG,EAAS+E,SAC5FiH,EAAM/L,IAAI,CAACiM,EAAMC,aAChB,MAAMqE,EAA4B,QAAjBC,EAAS,QAAT7K,EAAAsG,EAAKviB,YAAI,IAAAic,EAAAA,EAAIjc,SAAI,IAAA8mB,EAAAA,EAAIR,GACtC,OACE/I,EAAA,KAAA,CAAgBjB,UAAU,oBAAmBlB,SAAA,CAC3Ctb,EAAA,OAAA,CAAMwc,UAAU,oBAAmB,cAAa,OAAMlB,SACnDyL,IAEH/mB,EAAA,OAAA,CAAMwc,UAAU,oBAAmBlB,SAAEmH,EAAK3d,SAJnC4d,QCxBNuE,GAAwC,EAAG/mB,OAAMwc,YAAW,EAAO1Q,OAAMwQ,YAAWlC,YAC/F,MAAMiH,EAAU,CAAC,cAAe/E,GAAWnG,OAAOiB,SAASC,KAAK,KAEhE,OACEvX,UACEwc,UAAW+E,EACXjH,MAAOA,EAAK,iBACIoC,QAAYnG,EAAS,YAC1BvK,QAAQuK,EAAS,cAChB,OAAM+E,SAEjBpb,KCNMgnB,GAA8B,EACzCC,SACAC,UACA9L,WACAkB,YAAY,GACZE,YAAW,EACX1Q,OAAO,KACPiS,YACAoJ,uBAAsB,EACtBC,iBAAgB,EAChBC,oBAAmB,MAEnB,MAAMC,EAAYtH,EAA0B,MACtCuH,EAAavH,EAAuB,MACpCwH,EAAmBxH,EAA2B,OAG7CyH,EAAOC,GAAYtH,EAAS,IAC5BuH,EAAYC,GAAiBxH,GAAS,IACtCyH,EAAWC,GAAgB1H,GAAS,GACrC2H,EAAgB/H,EAA2C,MAE3DgI,EAAcC,EAAY,KAC9Bf,KACC,CAACA,IAGEgB,EAAeD,EAAY,KAC/BH,GAAa,GAEb,MAAMK,EAAQC,WAAW,KACvBN,GAAa,GACbJ,EAAS,GACTM,KACC,KACH,MAAO,IAAMK,aAAaF,IACzB,CAACH,IAGJzM,EAAU,WACR,MAAM+M,EAAShB,EAAUrG,QACpBqH,IAEDrB,IAAWqB,EAAOC,MACpBf,EAAiBvG,QAAUhH,SAASuO,cACpCF,EAAOG,YACPX,GAAa,GACbJ,EAAS,KACCT,GAAUqB,EAAOC,OAC3BD,EAAOI,QACiB,QAAxBzM,EAAAuL,EAAiBvG,mBAAOhF,GAAAA,EAAE0M,WAE3B,CAAC1B,IAGJ1L,EAAU,KACR,MAAM+M,EAAShB,EAAUrG,QACzB,IAAKqH,EAAQ,OAEb,MAAMM,EAAgB9pB,IACfsoB,EAILY,IAHElpB,EAAEuf,kBAON,OADAiK,EAAOO,iBAAiB,SAAUD,GAC3B,IAAMN,EAAOQ,oBAAoB,SAAUF,IACjD,CAACxB,EAAeY,IAGnB,MAAMe,EAAmBd,EAAanpB,IACpC,MAAMkqB,EAAQlqB,EAAEmqB,QAAQ,GACxBlB,EAAc9G,QAAU,CAAEiI,EAAGF,EAAMG,QAASC,KAAMC,KAAKC,OACvD1B,GAAc,IACb,IAEG2B,EAAkBtB,EAAanpB,IACnC,IAAKipB,EAAc9G,QAAS,OAC5B,MACMuI,EADQ1qB,EAAEmqB,QAAQ,GACHE,QAAUpB,EAAc9G,QAAQiI,EAEjDM,EAAS,GACX9B,EAAS8B,IAEV,IAEGC,EAAiBxB,EAAY,KACjC,IAAKF,EAAc9G,QAAS,OAE5B,MAAMyI,GAAWL,KAAKC,MAAQvB,EAAc9G,QAAQmI,MAAQ,IAIxD3B,EAnGkB,KAgGLA,EAAQiC,EAGmBC,IAC1CzB,IAGAR,EAAS,GAGXE,GAAc,GACdG,EAAc9G,QAAU,MACvB,CAACwG,EAAOS,IAQX,IAAKjB,EAAQ,OAAO,KAUpB,OACEnnB,EAAA,SAAA,CACE0hB,IAAK8F,EACLhL,UAAW,SAASuL,EAAY,iBAAmB,MAAMvL,IAAW,iBACpDE,QAAYnG,cACjBvK,EAAI,oBACIub,QAAoBhR,eAC3B0H,EACZrB,QAxBwB5d,IACtBqoB,GAAuBroB,EAAE6e,SAAW2J,EAAUrG,SAChD+G,cAwBAzK,EAAA,MAAA,CAAKiE,IAAK+F,EAAYjL,UAAU,iBAAiBlC,MAjBnDqN,EAAQ,EACJ,CACEmC,UAAW,cAAcnC,OACzBoC,WAAYlC,EAAa,YAAStR,GAEpC,CAAA,EAYkE+E,SAAA,CAElEtb,SACEwc,UAAU,qBACVwN,aAAcf,EACdgB,YAAaR,EACbS,WAAYP,EAAc,cACd,OAAMrO,SAElBtb,EAAA,MAAA,CAAKwc,UAAU,4BAEjBxc,SAAKwc,UAAU,cAAalB,SAAEA,UC/JzB6O,GAAS,EAAGC,OAAMC,UAASC,WAAUC,qBAChDvqB,EAAA,SAAA,CAAAsb,SACEmC,EAAA,MAAA,CAAKjB,UAAU,mBAAkBlB,SAAA,CAC/BmC,EAAA,MAAA,CAAAnC,SAAA,CACEtb,EAAA,MAAA,CAAK2V,MAAM,KAAKxM,OAAO,KAAKsd,QAAQ,YAAYC,MAAM,6BAA4BpL,SAChFmC,OAAGkI,KAAK,OAAO6E,SAAS,UAASlP,SAAA,CAC/Btb,EAAA,OAAA,CAAMyqB,EAAE,oFAAoF9E,KAAK,SACjG3lB,EAAA,OAAA,CAAMyqB,EAAE,mEAAmE9E,KAAK,YAChF3lB,EAAA,OAAA,CAAMyqB,EAAE,iEAAiE9E,KAAK,iBAGlF3lB,EAAA,KAAA,CAAAsb,SAAA,YAEFtb,EAAA,MAAA,CAAAsb,SAEImC,EAAAiN,EADDN,EACC,CAAA9O,SAAA,CACEmC,EAAA,OAAA,CAAMjB,UAAU,gCACLxc,EAAA,IAAA,CAAAsb,SAAI8O,EAAK3lB,OAAS,OAE7BzE,EAACkc,EAAM,CAACE,WAAW,YAAYQ,QAAS0N,EAAUhO,MAAM,yBAIxDtc,EAACkc,EAAM,CAACE,WAAW,YAAYQ,QAASyN,EAAS/N,MAAM,WACvDtc,EAACkc,EAAM,CAACE,WAAW,MAAMQ,QAAS2N,EAAiBjO,MAAM,sBChBxDqO,GAA4B,EACvCrP,WACA9Q,WAAW,GACXxB,UAAU,OACV4T,UACAgB,OACAC,SAAS,QACTc,WACAiM,WAAW,GACXpO,YAAY,GACZlC,QACAvF,cAAc,MACdzP,eAAe,GACfulB,eAAc,EACd,aAAc5M,EACd,cAAeE,MAEf,MAAM2M,EAAiBxM,IACF,UAAdA,EAAM7H,KAAiC,MAAd6H,EAAM7H,MAAgBmG,IAClD0B,EAAMC,iBACN3B,EAAQ0B,KAINyM,EAAmBzM,IACnB1B,GACFA,EAAQ0B,IAIN0M,EAAY7rB,OAAAme,OAAA,CAChB9S,YACG8P,GAGC2Q,EAAiC,CACrC3lB,gBAGI4lB,EAAyC,CAC7CnW,cACAzP,aAAc,GAAGA,KAAgBA,SAG7B6lB,EAAiC,CACrCniB,WAGIoiB,EAAc,CAAC,OAAQP,GAAe,qBAAsBrO,GAAWnG,OAAOiB,SAASC,KAAK,KAE5F8T,EACJ5N,EAAA,MAAA,CAAKjB,UAAW4O,EAAa9Q,MAAO2Q,EAAS,cAAe9M,EAAM7C,SAAA,CAC/DqD,GACC3e,EAAA,MAAA,CAAKwc,UAAU,sBAAsBlC,MAAO4Q,EAAiB5P,SAC3Dtb,EAAA,MAAA,CAAKwc,UAAU,wBAAuBlB,SACpCtb,EAAA,MAAA,CAAKmf,IAAKR,EAAUa,IAAKoL,EAAUpO,UAAU,cAAcmD,QAAQ,aAIzE3f,EAAA,MAAA,CAAKwc,UAAU,aAAalC,MAAO6Q,EAAS7P,SACzCA,OAKP,OAEItb,EAAA,MAFA4d,EAEA,CAAKpB,UAAU,eAAelC,MAAO0Q,EAAY1P,SAC/Ctb,EAAA,IAAA,CACE4d,KAAMA,EACNC,OAAQA,EACRC,IAAgB,WAAXD,EAAsB,2BAAwBtH,EACnDqG,QAASmO,EACTvO,UAAU,aACVlC,MAAO,CAAEhV,gBAAc,aACX2Y,EAAS3C,SAEpB+P,KAMLzO,EAEA,CAAKJ,UAAU,eAAelC,MAAO0Q,WACnCvN,EAAA,MAAA,CACEjB,UAAW4O,EACX9Q,MAAO2Q,EACPrO,QAASA,EACT4B,UAAWsM,EACX9E,KAAK,SACLsF,SAAU,EAAC,aACCrN,gBACCE,EAAM7C,SAAA,CAElBqD,GACC3e,SAAKwc,UAAU,sBAAsBlC,MAAO4Q,EAAiB5P,SAC3Dtb,SAAKwc,UAAU,wBAAuBlB,SACpCtb,EAAA,MAAA,CAAKmf,IAAKR,EAAUa,IAAKoL,EAAUpO,UAAU,cAAcmD,QAAQ,aAIzE3f,EAAA,MAAA,CAAKwc,UAAU,aAAalC,MAAO6Q,EAAS7P,SACzCA,QAQT,CAAKkB,UAAU,eAAelC,MAAO0Q,EAAY1P,SAC9C+P,KCjGME,GAA0B,EACrC7M,WACAC,WACAC,WACAC,UACAzW,QACAojB,eAAe,KACfC,cACAC,aACAC,OACA3N,eACAH,SAAS,QACTrB,YACAlC,YAEA,MAAMsR,EAAa,CAAC,MAAOpP,GAAWnG,OAAOiB,SAASC,KAAK,KAE3D,OACEkG,EAAA,MAAA,CAAKjB,UAAWoP,EAAYtR,MAAOA,EAAKgB,SAAA,CACtCtb,EAACye,GAAgBC,SAAUA,EAAUC,SAAUA,EAAUC,SAAUA,EAAUC,QAASA,IACtFpB,SAAKjB,UAAU,eAAclB,SAAA,CAC3Btb,EAACujB,EAAO,CAACC,MAAOgI,EAAchP,UAAU,aAAYlB,SACjDlT,IAEFqjB,GAAezrB,EAAA,IAAA,CAAGwc,UAAU,mBAAkBlB,SAAEmQ,IAChDE,EACC3rB,EAAC2d,GACCvB,WAAW,MACXE,MAAOoP,EACP9N,KAAM+N,EACN9N,OAAQG,EAAeH,EAAS,QAChC3d,KAAMF,EAACC,EAAe,CAACC,KAAMQ,MAG/BV,EAACkc,EAAM,CACLE,WAAW,MACXE,MAAOoP,EACP9O,QAAS,OACT1c,KAAMF,EAACC,GAAgBC,KAAMQ,aCzEnCmrB,GAAuB,oCAE7B,IAAIC,IAAqB,EACrBC,IAAsB,EAC1B,MAAMC,GAAsC,GAuErC,MAAMC,GAA0C,EACrD9M,MACA+M,YACA1M,MAAM,GACN2M,WACAC,eAAe,SACfrX,cAAc,OACdsX,aACA3P,YAAW,EACXF,YACAlC,YAEA,MAAOgS,EAAWC,GAAgBjM,GAAS,GACrCM,EA1CC,qBAAqB9K,KADT+F,EA2CUsD,IA1CY,UAAUrJ,KAAK+F,GAT1D,SAAyBA,SACvB,MAAMzC,EACJyC,EAAIzC,MAAM,4CACVyC,EAAIzC,MAAM,mCACVyC,EAAIzC,MAAM,uCACZ,OAAiB,QAAV+C,EAAA/C,aAAK,EAALA,EAAQ,UAAE,IAAA+C,EAAAA,EAAI,IACvB,CA6CsC0E,CAAgB1B,GAAO,KA3C7D,IAAqBtD,EA6CnB,MAAMyF,EAAY,eACZC,EAAU,CAACD,EAAWgL,GAAa,GAAGhL,aAAsB9E,GAAWnG,OAAOiB,SAASC,KAAK,KAElGkE,EAAU,KACa,YAAjB2Q,GAA+BxL,IAvFjCkL,GAA2BU,QAAQC,UAEhC,IAAID,QAASC,IAGlB,GAFAT,GAAoB9U,KAAKuV,GAErBV,GAAqB,OAKzB,GAJAA,IAAsB,EAGL5R,SAASuS,cAAc,eAAeb,QAKrD,OAHAC,IAAqB,EACrBE,GAAoBrU,QAASgV,GAAOA,UACpCX,GAAoBtsB,OAAS,GAI/B,MAAMqhB,EAAS5G,SAASI,cAAc,UACtCwG,EAAO5B,IAAM0M,GACb9K,EAAOC,OAAQ,EACfD,EAAO6L,OAAS,KACdd,IAAqB,EACrBE,GAAoBrU,QAASgV,GAAOA,KACpCX,GAAoBtsB,OAAS,GAE/Bya,SAASO,KAAKC,YAAYoG,MAgEL8L,KAAK,KACxB,MAAMC,EAAiB,iCAAiClM,OACxD,IAAKzG,SAASuS,cAAc,eAAeI,OAAqB,CAC9D,MAAMC,EAAc5S,SAASI,cAAc,UAC3CwS,EAAY5N,IAAM2N,EAClBC,EAAY/L,OAAQ,EACpB+L,EAAYrP,KAAO,SACnBvD,SAASO,KAAKC,YAAYoS,EAC5B,KAED,CAACX,EAAcxL,IAElB,MAAMoM,EAAa7E,EAAY,KACR,WAAjBiE,GACFG,GAAa,IAEd,CAACH,IAEEa,EAAiB,IAEZjtB,EAAA,MADLmsB,EACK,CAAK3P,UAAW,GAAG8E,eAAsBhG,SAAG6Q,GAInD,CAAK3P,UAAW,GAAG8E,eAAsBhG,SACvCmC,EAAA,MAAA,CAAKgJ,QAAQ,YAAYd,KAAK,OAAOe,MAAM,6BAA4B,cAAa,OAAMpL,SAAA,CACxFtb,EAAA,SAAA,CACE2mB,GAAG,KACHC,GAAG,KACHC,EAAE,KACFlB,KAAK,uDACLC,OAAO,iEACPC,YAAY,MAEd7lB,EAAA,UAAA,CAASktB,OAAO,oBAAoBvH,KAAK,mDAM3CnE,EAAOriB,OAAAme,OAAA,CAAA,EACRhD,GAGL,GAAqB,YAAjB8R,GAA8BxL,EAAU,CAC1C,MAAMuM,EACJ,qHAEF,OACEntB,EAAA,MAAA,CACEwc,UAAW+E,EACXjH,MAAOkH,mBACS9E,QAAYnG,EAC5BmL,IAAM0L,IACJ,IAAKA,EAAM,OAEX,GADiBA,EAAKV,cAAc,iBACtB,OAEd,MAAMW,EAASlT,SAASI,cAAc,iBACtC8S,EAAOvS,aAAa,WAAY8F,GAChCyM,EAAOvS,aAAa,iBAAkB,IACtCuS,EAAOvS,aAAa,kBAAmB,QACvCuS,EAAOvS,aAAa,SAAUqS,GAC9BE,EAAO/S,MAAMlT,QAAU,QACvBimB,EAAO/S,MAAM3E,MAAQ,OACjBZ,IAAasY,EAAO/S,MAAMvF,YAAcA,GAE5C,MAAMuY,EAAcF,EAAKV,cAAc,IAAIpL,wBACvCgM,GACFD,EAAO1S,YAAY2S,GAGrBF,EAAKG,aAAaF,EAAQD,EAAKI,aAChClS,SAEDmC,SAAKjB,UAAW,GAAG8E,uBAAgChH,MAAO,CAAEvF,yBACzDmX,GAAalsB,EAACuf,EAAK,CAACJ,IAAK+M,EAAWxO,KAAK,QAAQ8B,IAAKA,EAAK3K,UAAU,QAAQE,YAAaA,IAC1FkY,QAIT,CAEA,OAEIjtB,EAAA,MAFAssB,EAEA,CAAK9P,UAAW+E,EAASjH,MAAOkH,EAAO,iBAAkB9E,QAAYnG,EAAS+E,SAC5Etb,EAACuf,EAAKpgB,OAAAme,OAAA,CAAC6B,IAAKA,EAAKzB,KAAK,QAAQ8B,IAAKA,EAAKC,UAAQ,EAACC,UAAQ,EAAC3K,YAAaA,GAAiBsX,KAM5F,CAAK7P,UAAW+E,EAASjH,MAAOkH,EAAO,iBAAkB9E,QAAYnG,EAAS+E,SAC5EmC,YACEjB,UAAW,GAAG8E,uBACd1E,QAASoQ,EAAU,aACP,eAAexN,IAC3B9B,KAAK,SACLpD,MAAO,CAAEvF,eAAauG,SAAA,CAErB4Q,EACClsB,EAACuf,EAAK,CAACJ,IAAK+M,EAAWxO,KAAK,QAAQ8B,IAAKA,EAAK3K,UAAU,QAAQE,YAAaA,IAE7E/U,EAAA,MAAA,CAAKwc,UAAW,GAAG8E,mBAEpB2L,UCjJT,MAAMQ,GAA0B,uBA2BzB,MAAMC,GAAwC,EACnDjK,UAAU,UACVtE,MACA+M,YACA1M,MAAM,GACN2M,WACApX,cAAc,GACd4Y,gBAAe,EACfC,WAAU,EACVC,WAAU,EACVnO,YAAW,EACXoO,cACAC,WCnGa,i7HDoGbC,aACAC,UAAS,EACTrN,WACAsN,WAAU,EACVC,gBExGa,k2DFyGb3R,gBAEA,MAAO8P,EAAWC,GAAgBjM,GAAS,GACrC8N,EAAiBlO,EAAY,MAC7BmO,EAAoBnO,EAAuB,MAG3CoO,IAAc1N,GAAYsN,EAG1BK,EAAWpP,IADOyB,IAAasN,EAAU,kCAAkCtN,SAAarK,GAExFiY,EAAWF,KAAgBC,GA9DnC,SAAuBpP,GAGrB,MAFkB,gCAEDrJ,KAAKqJ,IADC,4BACsBrJ,KAAKqJ,EACpD,CA0D+CsP,CAAcF,GACrDG,GAAWF,KAActC,EAEzB5K,EAAY,cACZC,EAAU,CACdD,EACY,YAAZmC,GAAyB,GAAGnC,MAAcmC,IAC1CkK,GAAgB,GAAGrM,YACnB2M,GAAU,GAAG3M,YACbkN,GAAY,GAAGlN,WACf9E,GAECnG,OAAOiB,SACPC,KAAK,KAGRkE,EAAU,KACH6S,GAAc1N,IArEvB,WACE,GAAwB,oBAAbzG,SAA0B,OACrC,GAAIA,SAASC,eAAeqT,IAA0B,OACtD,MAAM1M,EAAS5G,SAASI,cAAc,UACtCwG,EAAOvG,GAAKiT,GACZ1M,EAAO5B,IARwB,oCAS/B4B,EAAOC,OAAQ,EACf7G,SAASO,KAAKC,YAAYoG,EAC5B,CA8DI4N,GA3DJ,SAA+BC,GAC7B,GAAwB,oBAAbzU,SAA0B,OACrC,MAAM0U,EAAW,iBAAiBD,IAClC,GAAIzU,SAASC,eAAeyU,GAAW,OACvC,MAAM9N,EAAS5G,SAASI,cAAc,UACtCwG,EAAOvG,GAAKqU,EACZ9N,EAAO5B,IAAM,iCAAiCyP,OAC9C7N,EAAOC,OAAQ,EACfD,EAAOrD,KAAO,SACdvD,SAASO,KAAKC,YAAYoG,EAC5B,CAkDI+N,CAAsBlO,KACrB,CAAC0N,EAAW1N,IAGf,MAAMmO,EAAmB5G,EAAa6G,IACpCZ,EAAejN,QAAU6N,GACxB,IAGGhC,EAAa7E,EAAY,aAC7B,IAAKqG,GAAYF,EAAW,OAI5B,GAHA/B,GAAa,GAGa,UAAtB6B,EAAejN,mBAAOhF,OAAA,EAAAA,EAAEiF,KAE1B,YADAgN,EAAejN,QAAQC,OAKzB,MAAM6N,EAAmC,QAAzBjI,EAAAqH,EAAkBlN,eAAO,IAAA6F,OAAA,EAAAA,EAAE0F,cAAc,SACrDuC,GACFA,EAAQ7N,OAAOC,MAAM,SAEtB,CAACmN,EAAUF,IAgBd,GAAgB,iBAAZ7K,EAA4B,CAE9B,MAAMyL,EACJ,koBAEF,OACElvB,EAAA,SAAA,CAAQwc,UAAW+E,EAASyE,KAAK,qBAAoBxG,GAAO,gBAAelE,SACzEmC,EAAA,MAAA,CAAKjB,UAAW,GAAG8E,mBAA0BhG,SAAA,CAE3CmC,SACEjB,UAAW,GAAG8E,eACdmF,QAAQ,cACRd,KAAK,OACLe,MAAM,2CACM,OAAMpL,SAAA,CAElBtb,mBACEA,EAAA,WAAA,CAAUwa,GAAG,sBACXxa,EAAA,OAAA,CAAMyqB,EAAGyE,QAKblvB,mBAAemvB,EAAE,IAAI/F,EAAE,IAAIzT,MAAM,MAAMxM,OAAO,MAAMimB,SAAS,mBAAkB9T,SAC5E4Q,GACClsB,SACEmf,IAAK+M,EACL1M,IAAKA,EACLlF,MAAO,CACL3E,MAAO,OACPxM,OAAQ,OACR0L,UAAW,QACXzN,QAAS,aAOjBpH,EAAA,OAAA,CAAMwc,UAAW,GAAG8E,sBAA+BmJ,EAAGyE,EAAWvJ,KAAK,YAIxE3lB,EAAA,MAAA,CACEwc,UAAW,GAAG8E,iBAAyBA,uBACvCnC,IG5NG,ohCH6NHK,IAAI,GAAE,cACM,SAEdxf,EAAA,MAAA,CACEwc,UAAW,GAAG8E,iBAAyBA,uBACvCnC,IIlOG,+gCJmOHK,IAAI,GAAE,cACM,SAIdxf,EAAA,MAAA,CAAKwc,UAAW,GAAG8E,wBAAiCnC,IAAKgP,EAAe3O,IAAI,GAAE,cAAa,aAInG,CAEA,OACExf,YACEwc,UAAW+E,EACXyE,KAAK,QAAO,aACAxG,GAAO,gBACnBlF,MAAOwT,EAAe,CAAE,6BAA8BA,QAAwCvX,WAE9FkH,EAAA,MAAA,CAAKjB,UAAW,GAAG8E,oBAEhBuM,GACC7tB,EAAA,MAAA,CACEwc,UAAW,GAAG8E,WAAkB,cACpB,OACZhH,MAAO0T,EAAc,CAAE,4BAA6BA,EAAa,SAA+BzX,EAAS+E,SAEzGtb,SAAKmf,IAAK4O,EAAUvO,IAAI,OAK5Bxf,EAAA,MAAA,CAAKwc,UAAW,GAAG8E,WAAoBI,IAAK2M,EAAiB/S,SAC1DoT,GAAWxC,EACVlsB,EAACuf,EAAK,CAACJ,IAAK+M,EAAWxO,KAAK,QAAQ8B,IAAKA,EAAK3K,UAAU,QAAQE,YAAaA,IAC3EuZ,EACF7Q,EAAAiN,EAAA,CAAApP,SAAA,CAEEmC,EAAA,MAAA,CAAKjB,UAAW,GAAG8E,uBAA8B,cAAc,iBAC5D4K,GAAalsB,EAACuf,EAAK,CAACJ,IAAK+M,EAAWxO,KAAK,QAAQ8B,IAAI,GAAG3K,UAAU,QAAQE,YAAaA,IACvF6Y,GAAW5tB,EAAA,MAAA,CAAKwc,UAAW,GAAG8E,eAC9B6K,GAAYnsB,EAAA,MAAA,CAAKwc,UAAW,GAAG8E,eAAsBhG,SAAG6Q,OAI3DnsB,EAAA,MAAA,CAAKwc,UAAW,GAAG8E,oBAA2BhG,SAC3C+T,EAAM9U,cAAc,gBAAiB,CACpC,WAAYqG,EACZ,iBAAkB,OAClB0O,OAAQ,qBACRhV,MAAO,CAAE3E,MAAO,OAAQxM,OAAQ,eAIpColB,EACF9Q,eAEEzd,EAACuf,GACCJ,IAAKoP,EACL7Q,KAAK,QACL8B,IAAKA,EACLE,SAAUA,EACV3K,YAAaA,EACbiL,QAAS+O,EACTvS,UAAW,GAAG8E,oBAIdgL,IApIkB1P,EAoIkBoQ,EAnIhDvP,EAAA,SAAA,CAAQjB,UAAW,GAAG8E,aAAsB1E,QAASA,EAAO,aAAc,eAAe4C,IAAO9B,KAAK,SAAQpC,SAAA,CAC1G4Q,GAAalsB,EAACuf,EAAK,CAACJ,IAAK+M,EAAWxO,KAAK,QAAQ8B,IAAI,GAAG3K,UAAU,QAAQE,YAAaA,IACvF6Y,GAAW5tB,EAAA,MAAA,CAAKwc,UAAW,GAAG8E,aAAoB,cAAc,SAChE6K,GACCnsB,EAAA,MAAA,CAAKwc,UAAW,GAAG8E,eAAsB,cAAc,OAAMhG,SAC1D6Q,WAgIG,OAILwB,GAAgB3tB,SAAKwc,UAAW,GAAG8E,iBAAwB,cAAc,SACzEqM,GAAgB3tB,EAAA,MAAA,CAAKwc,UAAW,GAAG8E,mBAA0B,cAAc,cA3InD,IAAC1E,GK1G5B2S,GAAkF,CACtFC,KAAM,CAAE1L,QAAS,EAAGpH,UAAU,GAC9B+S,OAAQ,CAAE3L,QAAS,EAAGpH,UAAU,GAChCgT,OAAQ,CAAE5L,QAAS,EAAGpH,UAAU,GAChCiT,MAAO,CAAE7L,QAAS,EAAGpH,UAAU,IAc3BkT,GAAwBC,IAC5B,IAAKA,EAAW,OAOhB,MAL2E,CACzEC,IAAK,QACLC,OAAQ,SACRC,OAAQ,OAESH,IAIrB,SAASI,GAAkBrb,EAAyB8H,GAElD,MAAM/G,MAAEA,EAAKxM,OAAEA,GAA+ByL,EAApBsb,EAAepxB,EAAK8V,EAAxC,CAAA,QAAA,WACN,OAAO5U,EAAC0tB,GAAUvuB,OAAAme,OAAA,CAAA,EAAK4S,GACzB,CAEO,MAAMC,GAAUhU,IAAA,IAAAb,SACrBA,EAAQ8U,MACRA,EAAQ,OAAMpN,cACdA,EAAgB,SAAQwI,aACxBA,EAAe,MAAIrP,EAChBU,EAAK/d,EAAAqd,EALa,qDAOrB,MAAMkU,EAASd,GAAc1S,EAAMyT,YAC7BC,EAA0C,SAArB1T,EAAMyT,cAA2BzT,EAAM2T,gBAE5DC,EAAc,CAClB,SACA,WAAW7a,EAAYiH,EAAMyT,cAC7BC,GAAsB,uBACtB1T,EAAML,WAELnG,OAAOiB,SACPC,KAAK,KAEFmZ,EAAoC,CACxCC,UAAWP,EACXhM,YAjDwByL,EAiDOO,EAhDe,CAC9CQ,KAAM,aACNb,OAAQ,SACRc,MAAO,YAEWhB,KANK,IAACA,EAoD1B,MAAMiB,EAAiBlB,GAAqB5M,GACtC+N,EAAmBnB,GAAqB/S,EAAMmU,sBAC9CC,EAAiBrB,GAAqB/S,EAAMqU,oBAElD,OACEzT,EAAAiN,EAAA,CAAApP,SAAA,CACEmC,EAACmF,EAAOzjB,OAAAme,OAAA,CAACd,UAAWiU,EAAazN,cAAeA,GAAmBnG,EAAK,CAAAvB,SAAA,CACrEA,GAGCtb,EAAA0qB,EAAA,CAAApP,SACEmC,EAACoG,EAAI,CACHC,QAAS,CACP7e,GAAI,EACJC,GAAI,EACJC,GAAIkrB,EAAOvM,QAAU,EAAI,WAAauM,EAAOvM,SAE/CK,eAAgBkM,EAAOvM,QAAU,EAAI,aAAUvN,EAC/C+N,eAAe,SACfP,KAAKlH,eAAAA,EAAOsU,UAAW,KACvB/M,WAAY0M,EAAcxV,SAAA,CAG1Btb,EAAC+kB,EAAQ,CAACvI,UAAU,UAAUlC,MAAOyW,EAAmB,CAAEK,UAAWL,QAAqBxa,EAAS+E,SACjGmC,EAACoG,EAAI,CAACC,QAAS,EAAGC,IAA2B,UAAtBlH,eAAAA,EAAOwU,YAAwB,IAAMxU,aAAK,EAALA,EAAOwU,WAAU/V,SAAA,EAC1EuB,eAAAA,EAAOyU,cACNtxB,EAACsiB,GAAWC,MAAO1F,EAAMyU,YAAa9O,UAAU,IAAI9F,SAAUG,eAAAA,EAAOH,YAEtEG,aAAK,EAALA,EAAOzP,UACNpN,EAAC+kB,EAAQ,CAACzK,MAAOoW,EAAYpV,SAC3Btb,EAACujB,GAAQC,MAAOgI,GAAgB,KAAM/H,QAAQ,QAAQ/G,SAAU2T,EAAO3T,SAAQpB,SAC5EuB,EAAMzP,aAIZyP,aAAK,EAALA,EAAOjT,SACN5J,EAAC+kB,EAAQ,CAACzK,MAAOoW,EAAYpV,SAC1B,SAAUuB,EAAMjT,OACf5J,EAAC2d,EAAUxe,OAAAme,OAAA,CACTZ,SAAU2T,EAAO3T,UACbG,EAAMjT,SAGZ5J,EAACkc,EAAM/c,OAAAme,OAAA,CACLZ,SAAU2T,EAAO3T,UACbG,EAAMjT,gBASrBymB,EAAOvM,QAAU,IAAKjH,eAAAA,EAAOjI,QAC5B5U,EAAC+kB,EAAQ,CACPvI,UAAU,QACVwI,QAAS,OACT1K,MAAO2W,EAAiB,CAAEG,UAAWH,QAAmB1a,EAAS+E,SAEhE2U,GAAkBpT,EAAMjI,MAAOyb,EAAO3T,iBAOhD6T,GACCvwB,EAAA,MAAA,CAAKwc,UAAU,mBAAkBlB,SAC/Btb,EAACuf,EAAK,CAACJ,IAAKtC,EAAM2T,gBAAkB9S,KAAK,QAAQ+B,UAAQ,EAACR,MAAI,EAACD,OAAK,EAACU,UAAU,EAAO7K,UAAU,gBAMhF,UAArBgI,EAAMyT,aACLzT,aAAK,EAALA,EAAOjI,QACP,MACE,MAAMuH,EAAwCU,EAAMjI,OAA9Ce,MAAEA,EAAKxM,OAAEA,KAAW+mB,EAAepxB,EAAAqd,EAAnC,CAAA,QAAA,WACN,OACEnc,EAAA,MAAA,CAAKwc,UAAU,oCACbxc,EAAC0tB,GAAUvuB,OAAAme,OAAA,CAAA,EAAK4S,GAAiBtC,SAAS,MAG/C,EAPD,OCpKK2D,GAAuCpV,QAAAsH,QAClDA,EAAU,QAAOoM,UACjBA,EAAY,OAAMziB,QAClBA,EAAOoe,aACPA,EAAe,KAAI5hB,OACnBA,EAAM0R,SACNA,EAAQ8H,MACRA,GAAQ,EAAK5G,UACbA,EAASe,gBACTA,EAAkB,2BAA0BsF,kBAC5CA,EAAoB,SAAQC,aAC5BA,EAAe,MAAKpG,SACpBA,GAAW,GAAIP,EACZqV,EAAY1yB,EAAAqd,EAbmC,0JAelD,MAAMsV,EAAW,CAAC,aAAc,eAAehO,IAAW,eAAeoM,IAAarT,GACnFnG,OAAOiB,SACPC,KAAK,KAER,OACEvX,EAAC4iB,EAAOzjB,OAAAme,OAAA,CACNd,UAAWiV,EACXlU,gBAAiBA,EACjBsF,kBAAmBA,EACnBC,aAAcA,EACdpG,SAAUA,GACN8U,EAAY,CAAAlW,SAEhBmC,EAAC0F,GAAUC,MAAOA,EAAO5G,UAAU,8BAA6BlB,SAAA,CAC9Dtb,EAACujB,EAAO,CAACC,MAAOgI,EAAc/H,QAAQ,QAAQ/G,SAAUA,EAAUF,UAAU,sBAAqBlB,SAC9FlO,IAGU,UAAZqW,GAAuB7Z,GACtB5J,EAACkc,EAAM/c,OAAAme,OAAA,CACLlB,WAAYxS,EAAOwS,YAAc,UACjCpQ,KAAMpC,EAAOoC,MAAQ,KACrB0Q,SAAUA,GACN9S,EAAM,CAAA0R,SAET1R,EAAO0R,UAAY1R,EAAO0S,SAIlB,UAAZmH,GAAuBnI,GAAYtb,EAAA,MAAA,CAAKwc,UAAU,mBAAkBlB,SAAEA,WCxClEoW,GAA4C,EACvDC,YAAY,cACZvkB,UACAoe,eAAe,KACfC,cACAmG,eACAC,aACAjoB,SACAgL,QACA8H,YAAW,EACXF,gBAEA,MAAM8E,EAAY,uBACZC,EAAU,CAACD,EAAW,GAAGA,MAAcqQ,IAAanV,GAAWnG,OAAOiB,SAASC,KAAK,KAEpFua,EACJrU,EAAA,MAAA,CAAKjB,UAAW,GAAG8E,aAAoBhG,SAAA,CACrCmC,EAAA,MAAA,CAAKjB,UAAW,GAAG8E,kBAAyBhG,SAAA,CAC1Ctb,EAACujB,EAAO,CAACC,MAAOgI,EAAc/H,QAAQ,iBAAiB/G,SAAUA,EAAUF,UAAW,GAAG8E,aAAoBhG,SAC1GlO,IAGFqe,GACCzrB,EAACsmB,EAAS,CAAC9J,UAAW,GAAG8E,iBAA0B5E,SAAUA,EAAQpB,SAClEmQ,IAIJmG,GAAgBA,EAAalyB,OAAS,GACrCM,EAAC8mB,GAAU,CAACvE,MAAOqP,EAAc1xB,KAAM2xB,EAAYnV,SAAUA,OAIhE9S,GACC5J,EAACkc,iBAAOE,WAAYxS,EAAOwS,YAAc,UAAWpQ,KAAMpC,EAAOoC,MAAQ,KAAM0Q,SAAUA,GAAc9S,EAAM,CAAA0R,SAC1G1R,EAAO0R,UAAY1R,EAAO0S,YAM7ByV,EACJ/xB,EAAA,MAAA,CAAKwc,UAAW,GAAG8E,WAAkBhG,SACnCtb,EAAC0tB,GAAUvuB,OAAAme,OAAA,CAAA,EAAK1I,MAIpB,OACE5U,EAAA,UAAA,CAASwc,UAAW+E,EAAO,iBAAkB7E,QAAYnG,WACvDvW,EAAA,MAAA,CAAKwc,UAAW,GAAG8E,WAAkBhG,SAEjCmC,IADa,gBAAdkU,aAEII,EACAD,IAGH,CAAAxW,SAAA,CACGwW,EACAC,UCxDPC,GAA+D,CACnElC,IAAK,QACLC,OAAQ,SACRC,OAAQ,OAGGiC,GAAuC9V,IAAA,IAAAyU,KAClDA,EAAIC,MACJA,EAAKqB,KACLA,EAAIP,UACJA,EAAY,aAAY3O,cACxBA,EAAgB,MAAKe,IACrBA,EAAGvH,UACHA,EAASe,gBAETA,EAAe8B,gBACfA,EAAewD,kBACfA,EAAiBC,aACjBA,EAAYC,WACZA,EAAU/Z,QACVA,EAAOG,OACPA,EAAM8Z,SACNA,EAAQvG,SACRA,GAAW,EACXpB,SAAU6W,GAAShW,EAChBiW,EAAItzB,EAAAqd,EAnB2C,CAAA,OAAA,QAAA,OAAA,YAAA,gBAAA,MAAA,YAAA,kBAAA,kBAAA,oBAAA,eAAA,aAAA,UAAA,SAAA,WAAA,WAAA,aAqBlD,MAAMmF,EAAY,oBACZC,EAAU,CAACD,EAAW9E,GAAWnG,OAAOiB,SAASC,KAAK,KAGtD8a,EAA+BH,QAAAA,EAAQ,CAAC,CAAEtB,OAAMC,QAAOc,YAAW3O,kBAExE,OACEhjB,EAAC4iB,EAAOzjB,OAAAme,OAAA,CACNC,gBAAiBA,EACjB8B,gBAAiBA,EACjBwD,kBAAmBA,EACnBC,aAAcA,EACdC,WAAYA,EACZ/Z,QAASA,EACTG,OAAQA,EACR8Z,SAAUA,EACVvG,SAAUA,EACVF,UAAW+E,GACP6Q,EAAI,CAAA9W,SAEP+W,EAAa7b,IAAI,CAAC8b,EAAK5P,aACtB,MAAM6P,EAA4B,QAAbpW,EAAAmW,EAAIX,qBAASxV,EAAAA,EAAIwV,EAChCa,EAA4B,QAAjBxL,EAAAsL,EAAItP,yBAAagE,EAAAA,EAAIhE,EAChCyP,EAA8B,gBAAjBF,EAEnB,OACE9U,EAACoG,EAAI,CAEHC,QAAS,CAAE7e,GAAI,EAAGC,GAAI,EAAGC,GAAI,GAC7Bgf,eAAe,QACfG,eAAe,SACfF,WAAY4N,GAAiBQ,GAC7BhW,UAAW,GAAG8E,UACdyC,IAAKA,EAAGzI,SAAA,CAERtb,EAAC+kB,EAAQ,CACPvI,UAAW,GAAG8E,UAAkBA,eAChChH,MAAOmY,EAAa,CAAEC,MAAO,QAAMnc,EAAS+E,SAE3CgX,EAAI1B,OAEP5wB,EAAC+kB,EAAQ,CACPvI,UAAW,GAAG8E,UAAkBA,gBAChChH,MAAOmY,EAAa,CAAEC,MAAO,QAAMnc,EAAS+E,SAE3CgX,EAAIzB,UAlBFnO,SC3CJiQ,GAAsC,EACjDrW,QACA7X,OACAiZ,OAAO,OACPkV,cACAtc,QACAuc,WACAC,SACAC,aACAC,QACAvW,YAAW,EACXC,YAAW,EACXF,gBAEA,MAAMhC,EAAKyY,IACLC,EAAU,GAAG1Y,UACb2Y,EAAaJ,aAAU,EAAVA,EAAYK,SAEzB7R,EAAU,CAAC,aAAcyR,GAAS,oBAAqBvW,GAAY,uBAAwBD,GAC9FnG,OAAOiB,SACPC,KAAK,KAER,OACEkG,EAAA,MAAA,CAAKjB,UAAW+E,EAAO,iBAAkB7E,QAAYnG,YACnDkH,EAAA,QAAA,CAAO4V,QAAS7Y,EAAIgC,UAAU,oBAAmBlB,SAAA,CAC9CgB,EACA6W,GACCnzB,UAAMwc,UAAU,uBAAsB,cAAa,OAAMlB,SAAA,SAK7Dtb,WACEwa,GAAIA,EACJ/V,KAAMA,EACNiZ,KAAMA,EACNlB,UAAU,oBACVoW,YAAaA,EACbtc,MAAOA,EACPuc,SAAW7zB,GAAM6zB,eAAAA,EAAW7zB,EAAE6e,OAAOvH,OACrCwc,OAAQA,EACRrW,SAAUA,EACV2W,SAAUD,EACVG,UAAWP,aAAU,EAAVA,EAAYO,UACvBC,UAAWR,aAAU,EAAVA,EAAYQ,UAAS,eAClBP,EAAQ,YAASzc,EAAS,mBACtByc,EAAQE,OAAU3c,IAErCyc,GACChzB,EAACsmB,EAAS,CAAC9L,GAAI0Y,EAAS1W,UAAU,oBAAoBwJ,KAAK,iBACxDgN,QC9DEQ,GAAoC,EAC/ClX,QACA7X,OACAmuB,cAAc,oBACdzL,OAAQsM,EACRC,WACAC,eACAX,QACAvW,YAAW,EACXC,YAAW,EACXF,YACAlB,eAEA,MAAMd,EAAKyY,IACLC,EAAU,GAAG1Y,UACboZ,EAAY,GAAGpZ,YACfqZ,EAAe3T,EAAuB,OAGrC4T,EAAcC,GAAmBzT,GAAS,GAC3C6G,OAA4B5Q,IAAnBkd,EAA+BA,EAAiBK,EAEzDE,EAAe7L,EAAY,KAC/B,GAAI1L,EAAU,OACd,MAAMwX,GAAQ9M,EACd4M,EAAgBE,GAChBP,SAAAA,EAAWO,IACV,CAACxX,EAAU0K,EAAQuM,IAGtBjY,EAAU,KACR,MAAMyY,EAAsBl1B,IACtB60B,EAAa1S,UAAY0S,EAAa1S,QAAQrF,SAAS9c,EAAE6e,UAC3DkW,GAAgB,GAChBL,SAAAA,GAAW,KAMf,OAHIvM,GACFhN,SAAS4O,iBAAiB,YAAamL,GAElC,IAAM/Z,SAAS6O,oBAAoB,YAAakL,IACtD,CAAC/M,EAAQuM,IAGZ,MAAM5I,EAAgB3C,EACnBnpB,IACe,WAAVA,EAAEyX,KAAoB0Q,IACxB4M,GAAgB,GAChBL,SAAAA,GAAW,KAGf,CAACvM,EAAQuM,IAGLnS,EAAU,CACd,WACA4F,GAAU,iBACV6L,GAAS,kBACTvW,GAAY,qBACZD,GAECnG,OAAOiB,SACPC,KAAK,KAER,OACEkG,EAAA,MAAA,CAAKiE,IAAKmS,EAAcrX,UAAW+E,EAAO,iBAAkB7E,QAAYnG,EAAWiI,UAAWsM,YAC5F9qB,EAAA,QAAA,CAAOqzB,QAAS7Y,EAAIgC,UAAU,kBAAiBlB,SAC5CgB,IAGHmB,EAAA,MAAA,CAAKjB,UAAU,oBAAmBlB,SAAA,CAChCmC,EAAA,SAAA,CACEjD,GAAIA,EACJkD,KAAK,SACLlB,UAAU,oBACVI,QAASoX,EACTvX,SAAUA,kBACI,UAAS,gBACR0K,EAAM,gBACNyM,iBACDZ,EAAQ,YAASzc,EAAS,mBACtByc,EAAQE,OAAU3c,cACzB9R,EAAI6W,SAAA,CAEftb,UAAMwc,UAAW,oBAAoBmX,EAAgD,GAAjC,gCAAqCrY,SACtFqY,GAAgBf,IAEnB5yB,EAAA,OAAA,CAAMwc,UAAU,oBAAmB,cAAa,gBAC9Cxc,EAACC,GAAgBC,KAAMinB,EAASgN,EAAcC,SAIjDjN,GACCnnB,SAAKwa,GAAIoZ,EAAWpX,UAAU,kBAAkBwJ,KAAK,UAAS,aAAa1J,WACxEhB,OAKN0X,GACChzB,EAAA,IAAA,CAAGwa,GAAI0Y,EAAS1W,UAAU,kBAAkBwJ,KAAK,QAAO1K,SACrD0X,QC5GEqB,GAAoC,EAC/C/X,QACA7X,OACA6vB,WAAU,EACVzB,WACApW,YAAW,EACXC,YAAW,EACXF,gBAEA,MAAMhC,EAAKyY,IAEL1R,EAAU,CAAC,WAAY+S,GAAW,oBAAqB7X,GAAY,qBAAsBD,GAC5FnG,OAAOiB,SACPC,KAAK,KAER,OACEkG,WAAOjB,UAAW+E,EAAO,iBAAkB7E,QAAYnG,EAAW8c,QAAS7Y,YACzExa,EAAA,QAAA,CACEwa,GAAIA,EACJkD,KAAK,WACLjZ,KAAMA,EACN6vB,QAASA,EACTzB,SAAW7zB,GAAM6zB,aAAQ,EAARA,EAAW7zB,EAAE6e,OAAOyW,SACrC7X,SAAUA,EACVD,UAAU,kBAAiB,eACb8X,IAEhBt0B,UAAMwc,UAAU,iBAAgB,cAAa,OAAMlB,SACjDtb,EAACC,EAAe,CAACC,KAAMo0B,EAAUC,EAAgBC,MAEnDx0B,EAAA,OAAA,CAAMwc,UAAU,2BAAmBF,QCH5BmY,GAAgD,EAC3DnY,QACA7X,OACAmuB,cAAc,oBACd/Q,UACAvL,MAAOoe,EACP7B,WACAC,SACAC,aACAC,QACAvW,YAAW,EACXC,YAAW,EACXF,gBAEA,MAAOmY,EAAeC,GAAoBtU,EAAmB,IACvDuU,OAAqCte,IAApBme,EAAgCA,EAAkBC,EAEnEG,EAAqB3M,EACzB,CAAC4M,EAAqBT,KACpB,MAAML,EAAOK,EAAU,IAAIO,EAAgBE,GAAeF,EAAexe,OAAQ2e,GAAMA,IAAMD,GAE7FH,EAAiBX,GACjBpB,SAAAA,EAAWoB,IAEb,CAACY,EAAgBhC,IAGboC,EAAsB9M,EACzBhB,IACMA,GACH2L,SAAAA,KAGJ,CAACA,IAMGvR,EAAU,CAAC,kBAAmB/E,GAAWnG,OAAOiB,SAASC,KAAK,KAEpE,OACEvX,EAAA,MAAA,CAAKwc,UAAW+E,EAAO,iBAAkB7E,QAAYnG,WACnDvW,EAACwzB,GAAQ,CACPlX,MAAOA,EACP7X,KAAMA,EACNmuB,YAAaA,EACbe,aAVe,GAWfD,SAAUuB,EACVjC,MAAOA,EACPvW,SAAUA,EACVC,SAAUA,EAAQpB,SAElBtb,EAAA,MAAA,CAAKwc,UAAU,2BAA2BwJ,KAAK,QAAO,aAAa1J,EAAKhB,SACrEuG,EAAQrL,IAAK0e,GACZl1B,SAEEwc,UAAU,0BACVwJ,KAAK,SAAQ,gBACE6O,EAAehc,SAASqc,EAAO5e,OAAMgF,SAEpDtb,EAACq0B,GAAQ,CACP/X,MAAO4Y,EAAO5Y,MACd7X,KAAM,GAAGA,KAAQywB,EAAO5e,QACxBge,QAASO,EAAehc,SAASqc,EAAO5e,OACxCuc,SAAWyB,GAAYQ,EAAmBI,EAAO5e,MAAOge,GACxD7X,SAAUA,EACVC,SAAUA,KAXPwY,EAAO5e,eC5CpB6e,GAAW,6BAEjB,SAASC,GAAc9e,EAAe+e,GAEpC,GAAmB,oBAAfA,EAAM3X,KAA4B,CACpC,MAAMsX,EAAIK,EAAMC,mBAChB,IAAKN,EAAG,OACR,MAAMO,EAASP,EAAEQ,aACXC,EAAanf,EAAQA,EAAMof,MAAM,KAAO,GAE9C,OAAIV,EAAE5B,UAAkC,IAAtBqC,EAAW/1B,OACpB61B,QAAAA,EAAU,qCAEfP,EAAEW,eAAiBF,EAAW/1B,OAASs1B,EAAEW,cACpCJ,QAAAA,EAAU,0BAA0BP,EAAEW,2BAE3CX,EAAEY,eAAiBH,EAAW/1B,OAASs1B,EAAEY,cACpCL,QAAAA,EAAU,8BAA8BP,EAAEY,gCAEnD,CACF,CAGA,MAAMZ,EAAIK,EAAMtC,WAChB,IAAKiC,EAAG,OACR,MAAMO,EAASP,EAAEQ,aAEjB,OAAIR,EAAE5B,WAAa9c,EAAMuf,OAChBN,QAAAA,EAAU,0BAEfP,EAAEc,OAASxf,EAAMuf,SAAWV,GAASrf,KAAKQ,EAAMuf,QAC3CN,QAAAA,EAAU,sCAEfP,EAAE1B,WAAahd,EAAMuf,OAAOn2B,OAASs1B,EAAE1B,UAClCiC,QAAAA,EAAU,oBAAoBP,EAAE1B,wBAErC0B,EAAEzB,WAAajd,EAAMuf,OAAOn2B,OAASs1B,EAAEzB,UAClCgC,QAAAA,EAAU,wBAAwBP,EAAEzB,wBAEzCyB,EAAEe,UAAYf,EAAEe,QAAQjgB,KAAKQ,EAAMuf,QAC9BN,QAAAA,EAAU,GAAGF,EAAM/Y,2BAD5B,CAIF,CAEO,MAAM0Z,GAAsC,EACjD5oB,UACAoe,eAAe,KACfyK,SACAnS,UAAU,CAAE7e,GAAI,EAAGC,GAAI,EAAGC,GAAI,GAC9B4e,MACAC,SACAC,YACAiS,cAAc,SACdvW,WAAU,EACVwW,aACAC,WACAC,aACAtW,UACArD,YAAW,EACXF,gBAEA,MAAM8Z,EAAUpW,EAAwB,OAEjCzG,EAAQ8c,GAAajW,EAAiC,IAC3DnhB,OAAOq3B,YAAYP,EAAOzf,IAAKigB,GAAM,CAACA,EAAEhyB,KAAM,QAEzCiyB,EAAgBC,GAAqBrW,EAAmC,IAC7EnhB,OAAOq3B,YAAYP,EAAO5f,OAAQogB,GAAiB,oBAAXA,EAAE/Y,MAA4BlH,IAAKigB,GAAM,CAACA,EAAEhyB,KAAM,QAErFmyB,EAAQC,GAAavW,EAAiC,CAAA,IACtDwW,EAASC,GAAczW,EAAkC,CAAA,GAE1D0W,EAAe7O,EAAY,CAAC1jB,EAAc6R,KAC9CigB,EAAWU,GAAS93B,OAAAme,OAAAne,OAAAme,OAAA,GAAM2Z,GAAI,CAAExyB,CAACA,GAAO6R,KAExCugB,EAAWI,IACT,IAAKA,EAAKxyB,GAAO,OAAOwyB,EACxB,MAAMhD,EAAI90B,OAAAme,OAAA,CAAA,EAAQ2Z,GAElB,cADOhD,EAAKxvB,GACLwvB,KAER,IAEGiD,EAAuB/O,EAAY,CAAC1jB,EAAc0yB,KACtDR,EAAmBM,GAAS93B,OAAAme,OAAAne,OAAAme,OAAA,GAAM2Z,GAAI,CAAExyB,CAACA,GAAO0yB,KAEhDZ,EAAWU,GAAS93B,OAAAme,OAAAne,OAAAme,OAAA,CAAA,EAAM2Z,GAAI,CAAExyB,CAACA,GAAO0yB,EAAS5f,KAAK,QAEtDsf,EAAWI,IACT,IAAKA,EAAKxyB,GAAO,OAAOwyB,EACxB,MAAMhD,EAAI90B,OAAAme,OAAA,CAAA,EAAQ2Z,GAElB,cADOhD,EAAKxvB,GACLwvB,KAER,IAEGmD,EAAajP,EAChBkN,UACC0B,EAAYE,kCAAeA,GAAI,CAAE,CAAC5B,EAAM5wB,OAAO,KAC/C,MAAM4yB,EAAMjC,GAAgC,QAAlBjZ,EAAA1C,EAAO4b,EAAM5wB,aAAK,IAAA0X,EAAAA,EAAI,GAAIkZ,GAChDgC,GACFR,EAAWI,kCAAeA,GAAI,CAAE,CAAC5B,EAAM5wB,MAAO4yB,MAGlD,CAAC5d,IAGG6d,EAAenP,EACnBnH,MAAOhiB,IACLA,EAAEuf,iBAGF,MAAMgZ,EAAsC,CAAA,EAO5C,GANAtB,EAAOte,QAAS0d,UACd,MAAMgC,EAAMjC,GAAgC,QAAlBjZ,EAAA1C,EAAO4b,EAAM5wB,aAAK,IAAA0X,EAAAA,EAAI,GAAIkZ,GAChDgC,IAAKE,EAAYlC,EAAM5wB,MAAQ4yB,KAIjChB,EAAY,CACd,MAAMd,QAAec,EAAW5c,GAC5B8b,GAAQp2B,OAAOme,OAAOia,EAAahC,EACzC,CAEA,GAAIp2B,OAAO0a,KAAK0d,GAAa73B,OAAS,EAIpC,OAHAm3B,EAAUU,GACVR,EAAW53B,OAAOq3B,YAAYP,EAAOzf,IAAKigB,GAAM,CAACA,EAAEhyB,MAAM,WACzDsb,SAAAA,EAAUwX,IAIZnB,SAAAA,EAAW3c,IAEb,CAACwc,EAAQxc,EAAQ2c,EAAUC,EAAYtW,IAGnCyX,EAAYr4B,OAAO0a,KAAK+c,GAAQl3B,OAAS,EAEzC6hB,EAAU,CAAC,YAAa/E,GAAWnG,OAAOiB,SAASC,KAAK,KAE9D,OACEkG,EAAA,UAAA,CAASjB,UAAW+E,mBAAyB7E,QAAYnG,EAAS,aAAcnJ,EAAOkO,SAAA,CACrFtb,EAACujB,EAAO,CAACC,MAAOgI,EAAc/H,QAAQ,iBAAiB/G,SAAUA,EAAUF,UAAU,8BAClFpP,IAGHqQ,EAAA,OAAA,CAAMiE,IAAK4U,EAAS9Z,UAAU,kBAAkB4Z,SAAUkB,EAAcG,YAAU,EAAAnc,SAAA,CAChFtb,EAAC6jB,GAAKC,QAASA,EAASC,IAAKA,EAAKvH,UAAU,oBAAoBwH,OAAQA,EAAQC,UAAWA,EAAS3I,SACjG2a,EAAOzf,IAAK6e,gBAAU,OACrBr1B,EAAC+kB,EAAQ,CAAkBC,QAASqQ,EAAMrQ,QAAO1J,SAC/B,oBAAf+Z,EAAM3X,KACL1d,EAACy0B,GAAc,CACbhwB,KAAM4wB,EAAM5wB,KACZ6X,MAAO+Y,EAAM/Y,MACbsW,YAAayC,EAAMzC,YACnB/Q,QAAsB,QAAb1F,EAAAkZ,EAAMxT,eAAO,IAAA1F,EAAAA,EAAI,GAC1B7F,MAAiC,QAA1B0Q,EAAA0P,EAAerB,EAAM5wB,aAAK,IAAAuiB,EAAAA,EAAI,GACrC6L,SAAWsE,GAAaD,EAAqB7B,EAAM5wB,KAAM0yB,GACzDrE,OAAQ,IAAMsE,EAAW/B,GACzBtC,WAAYsC,EAAMC,mBAClBtC,MAAO8D,EAAQzB,EAAM5wB,MAAQmyB,EAAOvB,EAAM5wB,WAAQ8R,EAClDmG,SAAUA,IAGZ1c,EAAC2yB,GAAS,CACRluB,KAAM4wB,EAAM5wB,KACZ6X,MAAO+Y,EAAM/Y,MACboB,KAAgB,QAAVga,EAAArC,EAAM3X,YAAI,IAAAga,EAAAA,EAAI,OACpB9E,YAAayC,EAAMzC,YACnBtc,MAAyB,QAAlBqhB,EAAAle,EAAO4b,EAAM5wB,aAAK,IAAAkzB,EAAAA,EAAI,GAC7B9E,SAAWmC,GAAMgC,EAAa3B,EAAM5wB,KAAMuwB,GAC1ClC,OAAQ,IAAMsE,EAAW/B,GACzBtC,WAAYsC,EAAMtC,WAClBC,MAAO8D,EAAQzB,EAAM5wB,MAAQmyB,EAAOvB,EAAM5wB,WAAQ8R,EAClDmG,SAAUA,KAzBD2Y,EAAM5wB,UAgCzBzE,EAACkc,EAAM,CACLE,WAAW,UACXpQ,KAAK,KACL0Q,SAAUA,EACVD,SAAUkD,GAAW6X,EACrBhb,UAAU,oBACVI,QAAS,WAAM,eAAAT,EAAAma,EAAQnV,8BAASyW,0BAE/BjY,EAAU,aAAeuW,IAG3BC,GACCn2B,EAACsmB,EAAS,CACR9J,UAAU,wBACVE,SAAUA,EACV0J,wBAAyB,CAAEC,OAAQ8P,YC7PlC0B,GAAqDhb,GAChEY,uBAAKiJ,MAAM,6BAA6BD,QAAQ,cAAa,cAAa,QAAW5J,EAAK,CAAAvB,SAAA,CAExFtb,OAAGwc,UAAU,sBAAqBlB,SAChCtb,EAAA,OAAA,CAAMyqB,EAAE,oCAGVzqB,UACEwc,UAAU,qBACViO,EAAE,qHCgDKqN,GAAyC3b,IAAA,IAAAsH,QACpDA,EAAU,QAAOyI,UACjBA,EAAS1M,IACTA,EAAM,GAAEoB,SACRA,EAAQuL,SACRA,EAAQyB,QACRA,GAAU,EAAID,aACdA,GAAe,EAAIE,QACnBA,GAAU,EAAII,OACdA,EAAM8J,cACNA,EAAgB,QAAO7R,QACvBA,EAAOgM,KACPA,EAAInO,IACJA,EAAGvH,UACHA,EAASe,gBAETA,EAAe8B,gBACfA,EAAewD,kBACfA,EAAiBC,aACjBA,EAAYC,WACZA,EAAU/Z,QACVA,EAAOG,OACPA,EAAM8Z,SACNA,EAAQvG,SACRA,GAAW,KACR0V,EAAItzB,EAAAqd,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,MAAM6b,EAAa,CAACC,EAAmCC,KACrD,MACMC,EAAelK,QAAAA,EAAuB,UAAbgK,EAE/B,OAHUC,QAAAA,EAAczU,GAItB,IAAK,UACH,OAAOzjB,EAAC0tB,GAAU,CAACjK,QAAQ,eAAeyI,UAAWA,EAAW1M,IAAKA,IACvE,IAAK,QACH,OACExf,EAAC0tB,GAAU,CACT9M,SAAUA,EACVuL,SAAUA,EACVD,UAAWA,EACX1M,IAAKA,EACLmO,aAAcA,EACdC,QAASA,EACTC,QAASA,EACTI,OAAQkK,IAId,QACE,OACEn4B,EAAC0tB,GAAU,CACTxB,UAAWA,EACX1M,IAAKA,EACLmO,aAAcA,EACdE,QAASA,EACTI,OAAQkK,MAOZC,EAAaC,GAA+Br4B,EAAA,MAAA,CAAKwc,UAAU,4BAA2BlB,SAAE+c,IAGxFhG,EAA+BH,EACjCA,EAAK1b,IAAK8b,UACR,MAAMgG,EAAuB,QAAjBnc,EAAAmW,EAAIyF,yBAAa5b,EAAAA,EAAI4b,EAC3BnjB,EAAQwjB,EAAUJ,EAAWM,EAAKhG,EAAI7O,UAC5C,MAAO,CACLmN,KAAc,SAAR0H,EAAiB1jB,EAAQ0d,EAAIpM,QACnC2K,MAAe,UAARyH,EAAkB1jB,EAAQ0d,EAAIpM,QACrClD,cAAesP,EAAItP,iBAGvB,MACE,MAAMpO,EAAQwjB,EAAUJ,EAAWD,IACnC,MAAO,CACL,CACEnH,KAAwB,SAAlBmH,EAA2BnjB,EAAQsR,EACzC2K,MAAyB,UAAlBkH,EAA4BnjB,EAAQsR,EAC3ClD,cAAe,UAGpB,EATD,GAYEzB,EAAU,CADE,qBACU/E,GAAWnG,OAAOiB,SAASC,KAAK,KAE5D,OACEvX,EAACiyB,GAAS9yB,OAAAme,OAAA,CACR4U,KAAMG,EACNtO,IAAKA,EACLxG,gBAAiBA,EACjB8B,gBAAiBA,EACjBwD,kBAAmBA,EACnBC,aAAcA,EACdC,WAAYA,EACZ/Z,QAASA,EACTG,OAAQA,EACR8Z,SAAUA,EACVvG,SAAUA,EACVF,UAAW+E,GACP6Q,KCzHGzH,GAAkC,EAC7ClH,UAAU,OACVvjB,OACAye,WACAiM,WAAW,GACXxiB,QACAmwB,UACA9M,cACA+M,WACA7H,YACA/mB,SACA6uB,gBAAgB,UAChB7a,OACAC,SAAS,QACTnB,YAAW,EACXC,WACAH,YACAlB,WACA,aAAc2C,MAEd,MAIMya,EAAkBH,QAAAA,EAAwB,UAAZ9U,EAAsB,IAAM,KAE1D2H,EAAc,CAAC,cAAe,gBAAgB3H,IAAW,sBANjDkN,QAAAA,EAA0B,UAAZlN,EAAsB,OAAS,WAMmCjH,GAC3FnG,OAAOiB,SACPC,KAAK,KAER,OACEkG,EAAA,IAAA,CACEG,KAAMA,EACNC,OAAQA,EACRC,IAAgB,WAAXD,EAAsB,2BAAwBtH,EACnDiG,UAAW4O,EAAW,iBACN1O,QAAYnG,EAAS,qBACTA,IAAboG,EAA0BA,EAAW,OAAS,aAAWpG,EAAS,aACrE0H,GAAa7V,EAAKkT,SAAA,EAEhB,UAAZmI,GAAmC,YAAZA,IAA0B9E,GACjD3e,EAAA,MAAA,CAAKwc,UAAU,6BAA4BlB,SACzCtb,EAAA,MAAA,CAAKmf,IAAKR,EAAUa,IAAKoL,EAAUpO,UAAU,qBAAqBmD,QAAQ,WAI9ElC,EAAA,MAAA,CAAKjB,UAAU,iCACA,SAAZiH,GAAsBvjB,GACrBF,EAAA,MAAA,CAAKwc,UAAU,oBAAmB,cAAa,OAAMlB,SAClDpb,IAIJs4B,GAAYx4B,EAAA,MAAA,CAAKwc,UAAU,wBAAuBlB,SAAEkd,IAErD/a,EAAA,MAAA,CAAKjB,UAAU,oBAAmBlB,SAAA,CACX,MAApBod,GAA+C,SAApBA,EAC1B14B,EAACsmB,EAAS,CAACjD,GAAIqV,EAAiBhV,OAAO,OAAOlH,UAAU,qBAAqBE,SAAUA,EAAQpB,SAC5FlT,IAGHpI,EAACujB,EAAO,CACNC,MAAOkV,EACPjV,QAAQ,iBACRjH,UAAU,qBACVE,SAAUA,EAAQpB,SAEjBlT,IAIJqjB,GACCzrB,EAACsmB,EAAS,CAAC9J,UAAU,2BAA2BE,SAAUA,EAAQpB,SAC/DmQ,OAKN7hB,GAA4B,SAAlB6uB,GACTz4B,EAAA,MAAA,CAAKwc,UAAU,gDAA+C,cAAa,OAAMlB,SAC/Etb,EAACkc,EAAM/c,OAAAme,OAAA,GAAK1T,GAAQwS,WAAW,OAAOM,SAAUA,OAInDpB,KAGF1R,GAA4B,SAAlB6uB,GACTz4B,EAAA,MAAA,CAAKwc,UAAU,kDAAiD,cAAa,OAAMlB,SACjFtb,EAACkc,EAAM/c,OAAAme,OAAA,CAAA,EAAK1T,EAAM,CAAEwS,WAAW,UAAUM,SAAUA,WClIhDic,GAAiB,KAC5B,MAAOvO,EAAMwO,GAAWvJ,EAAM/O,WAE9B,OACE7C,EAAA,UAAA,CAAAnC,SAAA,CACEtb,EAACmqB,GAAM,CACLC,KAAMA,EACNC,QAAS,IAAMuO,EAAQ,CAAEn0B,KAAM,aAC/B6lB,SAAU,IAAMsO,OAAQriB,GACxBgU,gBAAiB,IAAMqO,EAAQ,CAAEn0B,KAAM,eAGzCgZ,EAAA,UAAA,CAASjB,UAAU,iBAAgBlB,SAAA,CACjCtb,EAAA,KAAA,CAAAsb,SAAA,uBACAmC,EAAA,IAAA,CAAAnC,SAAA,CAAA,mCACmC,IACjCtb,EAAA,IAAA,CAAG4d,KAAK,8BAA8BC,OAAO,SAASC,IAAI,sBAAqBxC,SAC7Etb,EAAA,SAAA,CAAAsb,SAAA,uBACG,+ECnBFud,GAAuC,CAIlD33B,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,sDACb01B,YAAa,wDACbz1B,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,4BCjTpCw0B,GAAiB55B,OAAAme,OAAAne,OAAAme,OAAA,GACzB9Y,GAAY,CACfC,KAAM,gBACNC,cAAe,CACb,mFACA,gHAIFC,OAAQ,CACNzD,WAAY23B,GAAwB33B,WACpCC,SAAU03B,GAAwB13B,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,OAAAme,OAAAne,OAAAme,OAAA,CAAA,EACL9Y,EAAaiB,YAAU,CAC1BC,WAAY,qEACZC,kBAAmB,qCAGrBgD,WAAUxJ,OAAAme,OAAAne,OAAAme,OAAA,CAAA,EACL9Y,EAAamE,YAAU,CAC1BlI,IAAGtB,OAAAme,OAAA,CAAA,EACE9Y,EAAamE,WAAWlI,OAK/BkJ,gBAAexK,OAAAme,OAAAne,OAAAme,OAAA,GACV9Y,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,aCtDTyxB,GAAiC,CAI5C93B,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,uCAG7D83B,wBAAyB,2BACzBC,mBAAoB,2BACpBC,oBAAqB,2BACrBC,eAAgB,2BAChBC,qBAAsB,2BACtBC,cAAe,2BACf/b,gBAAiB,0BACjBgc,oBAAqB,2BACrBn4B,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,oCACzBs1B,kCAAmC,4BACnCr1B,yBAA0B,qCAC1BC,qBAAsB,2BACtBC,0BAA2B,2BAC3BC,2BAA4B,2BAC5BC,oBAAqB,yCCrZlB,MAAMk1B,GAAWt6B,OAAAme,OAAAne,OAAAme,OAAA,CAAA,EACnB9Y,IACHC,KAAM,SACNC,cAAe,CAAC,oFAEhBC,OAAQ,CACNzD,WAAY83B,GAAkB93B,WAC9BC,SAAU63B,GAAkB73B,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,OAAAme,OAAAne,OAAAme,OAAA,CAAA,EACL9Y,EAAaiB,YAAU,CAC1BC,WAAY,qEACZC,kBAAmB,qEAEnBwB,SAAU,CACRiB,MAAO,CACLf,SAAU,SACVC,WAAY,MACZC,WAAY,MACZE,OAAQ,CACNJ,SAAU,YAGdqyB,eAAgB,CACdryB,SAAU,SACVC,WAAY,MACZC,WAAY,MACZE,OAAQ,CACNJ,SAAU,YAGdgB,SAAU,CACRhB,SAAU,UACVC,WAAY,MACZC,WAAY,MACZE,OAAQ,CACNJ,SAAU,aAGdsyB,eAAgB,CACdtyB,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,OAAAme,OAAAne,OAAAme,OAAA,GACL9Y,EAAamE,YAAU,CAC1BlI,IAAGtB,OAAAme,OAAA,GACE9Y,EAAamE,WAAWlI,OAI/BkJ,gBAAiB,CACfiwB,WAAY,CAEVtsB,MAAO,0BAEPusB,cAAe,MACfC,mBAAoB,IACpBC,oBAAqB,MAGrBpnB,WAAY,0BACZC,WAAY,0BACZG,YAAa,UAGbL,KAAM,CACJpF,MAAO,0BACPqF,WAAY,0BACZC,WAAY,0BACZG,YAAa,YAIjBinB,WAAY,CAEVjW,IAAK,wCACL1c,SAAU,uEACV3B,WAAY,4CACZ4B,WAAY,oCACZ2yB,gBAAiB,2CAEjBC,UAAW,yBACXC,eAAgB,+BAChBC,qBAAsB,sCACtBC,cAAe,yBACfC,mBAAoB,2CAGpBC,eAAgB,mCAGhBC,WAAY,wDAGZ9nB,KAAM,CACJ2nB,cAAe,0BACfH,UAAW,2DACXC,eAAgB,+BAEhBM,UAAW,6BACXF,eAAgB,4BAGpBG,WAAY,CACV3W,IAAK,WAGP4W,UAAW,CACT5W,IAAK,UACL/a,QAAS,IACT4xB,gBAAiB,WACjBC,UAAW,YACX11B,GAAI,CACF01B,UAAW,QAEbnzB,OAAQ,CACNqc,IAAK,WACL/a,QAAS,KAEXvB,OAAQ,CACNsc,IAAK,WACL/a,QAAS,MAIb8xB,OAAQ,CACNC,YAAa,YACb31B,GAAI,CACF41B,uBAAwB,aACxBC,sBAAuB,YAEzB/1B,GAAI,CACF+1B,sBAAuB,cAEzBh2B,GAAI,CACFg2B,sBAAuB,eAG3BC,QAAS,CACPC,gBAAiB,8+6iBACjBh2B,GAAI,CACFgE,OAAQ,QAEVjE,GAAI,CACFiE,OAAQ,OACRH,QAAS,QAEX/D,GAAI,CACFkE,OAAQ,OACRH,QAAS,SAIb+oB,WAAY,CAEVpc,MAAO,WACPxM,OAAQ,WAGR7D,aAAc,aACd81B,mBAAoB,gBAGpBC,kBAAmB,gBACnBC,wBAAyB,gBACzBC,iBAAkB,6BAGlBzxB,aAAc,0CAGd2L,UAAW,qBAGXqY,YAAa,sCACb0N,gBAAiB,WACjBC,UAAW,IAEXC,cAAe,IACfC,eAAgB,IAEhBC,gBAAiB,IACjBC,iBAAkB,IAElBzmB,WAAY,cACZ0mB,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,MAC9Bn2B,OAAQ,CACNo2B,YAAa,QACb10B,OAAQ,QACRqB,SAAU,UACVszB,UAAW,OACXtC,gBAAiB,SACjBM,cAAe,YACfC,eAAgB,YAChBE,mBAAoB,WACpBC,oBAAqB,WACrByB,2BAA4B,MAC5BC,6BAA8B,OAGhCl2B,OAAQ,CACNm2B,YAAa,QACb10B,OAAQ,WACRqB,SAAU,OACVszB,UAAW,OACXtC,gBAAiB,cAIrBt7B,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,OAGRgb,IAAK,YAGLga,QAAS,WAGTj0B,aAAc,0CACdC,mBAAoB,WAKpBE,eAAgB,0CAChB+zB,kBAAmB,4CAGnB7wB,MAAO,CACLlI,GAAI,CACF+D,QAAS,eACT3B,SAAU,WACVE,WAAY,WACZw2B,QAAS,WAEX74B,GAAI,CACF8D,QAAS,cACT3B,SAAU,OACVE,WAAY,WACZw2B,QAAS,aAEX54B,GAAI,CACF6D,QAAS,mBACT3B,SAAU,WACVE,WAAY,SACZw2B,QAAS,aAIb52B,SAAU,CACR+C,QAAS,CACPrF,GAAI,2BACJC,KAAM,0BACNgE,OAAQ,2BACRqB,QAAS,6BACTE,UAAW,2BACXC,YAAa,2BACbF,SAAU,2BACV6zB,QAAS,2BACTC,UAAW,0BACX96B,YAAa,2BAEb+6B,WAAY,2BACZ17B,aAAc,2BACd27B,eAAgB,2BAEhB1rB,KAAM,CACJ7N,GAAI,2BACJC,KAAM,0BACNgE,OAAQ,2BACRqB,QAAS,6BACTE,UAAW,2BACXC,YAAa,2BACbF,SAAU,2BACV6zB,QAAS,2BACTC,UAAW,0BACX96B,YAAa,6BAGjB5B,UAAW,CACTqD,GAAI,cACJiE,OAAQ,2BACRhE,KAAM,2BAENu5B,WAAY,2BACZj0B,SAAU,cAEVD,QAAS,cACTE,UAAW,2BACXC,YAAa,2BAEb2zB,QAAS,2BACTC,UAAW,0BACX96B,YAAa,2BAEb+6B,WAAY,cACZ17B,aAAc,2BACd27B,eAAgB,2BAEhB1rB,KAAM,CACJ7N,GAAI,cACJC,KAAM,0BACNgE,OAAQ,0BAERqB,QAAS,cACTE,UAAW,6BACXC,YAAa,6BAEbG,aAAc,2BACd4zB,WAAY,2BACZj0B,SAAU,cAEV6zB,QAAS,2BACTC,UAAW,0BACX96B,YAAa,6BAGjBuoB,KAAM,CAEJ9mB,GAAI,cACJC,KAAM,2BACNgE,OAAQ,cACRzB,SAAU,WACVC,WAAY,MACZ0B,QAAS,iBACTc,aAAc,OACdC,mBAAoB,IAEpBI,QAAS,cACTE,UAAW,2BACXC,YAAa,cAEbF,SAAU,cACVi0B,WAAY,2BACZ5zB,aAAc,cAEdwzB,QAAS,cACTC,UAAW,2BACX96B,YAAa,cAEb+6B,WAAY,cACZ17B,aAAc,2BACd27B,eAAgB,cAEhBjxB,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,cACVi0B,WAAY,6BACZ5zB,aAAc,cAEdwzB,QAAS,cACTC,UAAW,0BACX96B,YAAa,gBAGjBk7B,OAAQ,CAENz5B,GAAI,qCACJC,KAAM,0BACNgE,OAAQ,qCACRgB,aAAc,oDACdC,mBAAoB,WAEpBI,QAAS,mCACTE,UAAW,0BACXC,YAAa,yBAEbF,SAAU,yBACVi0B,WAAY,0BACZ5zB,aAAc,yBAEdwzB,QAAS,qCACTC,UAAW,0BACX96B,YAAa,qCAEb+6B,WAAY,2BACZ17B,aAAc,2BACd27B,eAAgB,2BAGhB1rB,KAAM,CACJ7N,GAAI,0CACJC,KAAM,0BACNgE,OAAQ,0CACRgB,aAAc,yDAEdK,QAAS,wCACTE,UAAW,0BACXC,YAAa,+CAEbF,SAAU,yBACVi0B,WAAY,0BACZ5zB,aAAc,yBAEdwzB,QAAS,0CACTC,UAAW,0BACX96B,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,4BAEZozB,uBAAwB,SACxBC,yBAA0B,MAC1BC,yBAA0B,MAC1BC,oBAAqB,4BAErB5tB,iBAAkB,UAClBC,mBAAoB,MACpBC,mBAAoB,MACpB2tB,cAAe,4BAEfC,uBAAwB,SACxBC,yBAA0B,MAC1BC,yBAA0B,MAC1BC,oBAAqB,4BAErB9tB,aAAc,WACdC,eAAgB,MAChBC,eAAgB,MAChB6tB,UAAW,8BAEXttB,iBAAkB,WAClBC,mBAAoB,MACpBC,mBAAoB,MACpBqtB,cAAe,8BAEf3sB,kBAAmB,WACnBC,oBAAqB,MACrBC,oBAAqB,MACrB0sB,eAAgB,8BAGhBxsB,KAAM,CACJpF,MAAO,2BAGT7F,OAAQ,CACN4B,cAAe,UACfk1B,uBAAwB,UACxBztB,iBAAkB,WAClB8tB,uBAAwB,YAG5Bh2B,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,OAGP8Y,IAAK,UAGLrc,OAAQ,CACNqc,IAAK,OAELjZ,MAAO,YACPC,MAAO,OACPC,MAAO,OACPC,MAAO,QAETxD,OAAQ,CACNsc,IAAK,OAELjZ,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,4BAIX6xB,UAAW,CACTpb,IAAK,UACLC,OAAQ,WACRob,0BAA2B,KAC3BC,2BAA4B,MAC5BC,2BAA4B,KAC5BC,4BAA6B,MAC7B73B,OAAQ,CACNqc,IAAK,YAEPtc,OAAQ,CACNsc,IAAK,SAITyb,aAAc,CACZx2B,QAAS,iBACT+a,IAAK,UACLK,WAAY,SACZxY,eAAgB,WAChBylB,WAAY,WACZoO,QAAS,WAET/3B,OAAQ,CACNsB,QAAS,iBACT+a,IAAK,YAEPtc,OAAQ,CACNuB,QAAS,oBAIb02B,WAAY,CAEVz1B,eAAgB,mCAChB+zB,kBAAmB,qCAGnBn5B,GAAI,OACJiE,OAAQ,qCACR62B,YAAa,qCACb71B,aAAc,qCACdC,mBAAoB,IACpB61B,YAAa,OACbC,aAAc,OACdJ,QAAS,WACTj1B,SAAU,QAGVnB,cAAe,qCACfD,gBAAiB,uCACjBE,gBAAiB,uCACjB6B,WAAY,uBAGZ20B,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,aAG1BhuB,KAAM,CACJ7N,GAAI,2BACJiE,OAAQ,uCAIZ63B,WAAY,CAEV5c,IAAK,WACL6c,QAAS,YACTC,UAAW,SAGXb,SAAU,WACVc,UAAW,0BAEXC,YAAa,WACbC,eAAgB,uBAChBC,eAAgB,MAGhB55B,SAAU,uCACVC,WAAY,oCACZC,WAAY,oCACZ+F,MAAO,sDACP5H,WAAY,wCACZ8B,cAAe,0CAGfC,OAAQ,CACNJ,SAAU,2CAIZqL,KAAM,CACJpF,MAAO,0BACPwzB,UAAW,4BAIftrB,MAAO,CAELC,UAAW,qBAGXyrB,aAAc,QAGdz1B,UAAW,0BACXiK,cAAe,qCACf9J,eAAgB,UAChBtG,aAAc,IACdyD,OAAQ,+BACRyB,SAAU,YACVmL,MAAO,OAGP7L,aAAc,0CACdC,mBAAoB,WAGpBo3B,mBAAoB,oBACpBC,qBAAsB,SACtBC,gBAAiB,2BAGjBl0B,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,oBACdg8B,uBAAwB,IACxBC,uBAAwB,OACxBC,uBAAwB,KAE1B9uB,KAAM,CACJjH,UAAW,2BACXiK,cAAe,qCACf2rB,gBAAiB,6BAGrBI,SAAU,CAERzB,SAAU,SACVxiB,YAAa,2BACbkkB,iBAAkB,2BAClBC,aAAc,2BACdC,kBAAmB,2BAGnBl8B,WAAY,wDACZ2B,SAAU,WACVC,WAAY,MACZC,WAAY,QACZs6B,WAAY,2BACZ9d,IAAK,WAGLja,aAAc,0CACdC,mBAAoB,WAGpB2I,KAAM,CACJ8K,YAAa,0BACbkkB,iBAAkB,6BAClBC,aAAc,6BACdE,WAAY,4BAIhBC,SAAU,CAERC,gBAAiB,wDACjBC,cAAe,WACfC,gBAAiB,MACjBC,gBAAiB,QACjBL,WAAY,2BACZM,SAAU,SAGVz8B,WAAY,wDACZ2B,SAAU,WACVC,WAAY,MACZC,WAAY,QACZ+F,MAAO,2BACPzI,GAAI,0BACJgF,YAAa,MACb2T,YAAa,2BACblY,aAAc,IACd0D,QAAS,OACTo5B,iBAAkB,2BAClBC,iBAAkB,2BAGlBC,YAAa,OACbC,aAAc,2BAGdC,QAAS,0BACTC,iBAAkB,2BAClBC,eAAgB,QAChBC,aAAc,WAGdC,cAAe,WACfC,gBAAiB,MACjBC,WAAY,yBACZC,eAAgB,QAGhBrwB,KAAM,CACJmvB,WAAY,0BACZv0B,MAAO,2BACPzI,GAAI,0BACJ2Y,YAAa,2BACb4kB,iBAAkB,2BAClBG,aAAc,2BACdC,QAAS,0BACTC,iBAAkB,2BAClBK,WAAY,2BAIhBE,eAAgB,CACdC,cAAe,cACfC,cAAe,cAEfxwB,KAAM,CACJwwB,cAAe,6BAInBC,UAAW,CAETpB,gBAAiB,wDACjBC,cAAe,WACfC,gBAAiB,MACjBC,gBAAiB,QACjBL,WAAY,2BACZM,SAAU,SAGVz8B,WAAY,wDACZ2B,SAAU,WACVC,WAAY,MACZC,WAAY,QACZ+F,MAAO,2BACPzI,GAAI,0BACJgF,YAAa,MACb2T,YAAa,2BACblY,aAAc,IACd0D,QAAS,OACTo5B,iBAAkB,2BAClBC,iBAAkB,2BAGlBQ,gBAAiB,MACjBC,WAAY,yBACZC,eAAgB,QAGhBrwB,KAAM,CACJmvB,WAAY,0BACZv0B,MAAO,2BACPzI,GAAI,0BACJ2Y,YAAa,2BACb4kB,iBAAkB,2BAElBU,WAAY,2BAIhBxiC,UAAW,CAETyjB,IAAK,OACL/a,QAAS,UACTo6B,QAAS,WACTC,UAAW,UAGXC,qBAAsB,wDACtBC,mBAAoB,OACpBC,qBAAsB,MACtBC,qBAAsB,MAGtB/7B,OAAQ,CACNsB,QAAS,eACTq6B,UAAW,WAEb57B,OAAQ,CACNuB,QAAS,YACTq6B,UAAW,QAIb3wB,KAAM,CACJgxB,gBAAiB,0BACjBC,oBAAqB,2CC1oCbC,KACd,MAAM5nB,aAAEA,GAAiBf,IAGnB4oB,EAAaC,GACK,oBAAX7iB,OAA+B,GACnC8iB,iBAAiB5pB,SAASU,iBAAiBmpB,iBAAiBF,GAASjO,OAIxE30B,EAAqC,CAAA,EACrCC,EAAmC,CAAA,EAczC,OAXAhC,OAAO0a,KAAKmC,EAAarX,OAAOzD,YAAYyW,QAASlB,IACnD,MAAMwtB,EAAS,WAAWxtB,EAAIT,QAAQ,WAAY,OAAOD,gBACzD7U,EAAWuV,GAAOotB,EAAUI,IAAWjoB,EAAarX,OAAOzD,WAAWuV,KAIxEtX,OAAO0a,KAAKmC,EAAarX,OAAOxD,UAAUwW,QAASlB,IACjD,MAAMwtB,EAAS,KAAKxtB,EAAIT,QAAQ,WAAY,OAAOD,gBACnD5U,EAASsV,GAAOotB,EAAUI,KAGrB,CAAE/iC,aAAYC,WACvB,CAQM,SAAU+iC,GAAc1gB,EAAkC2gB,GAE9D,OADeP,KACDpgB,GAAO2gB,IAAc,EACrC,CAMM,SAAUC,GAAY5gB,EAAkC2gB,GAC5D,MAAMztB,EAASytB,EAAUnuB,QAAQ,WAAY,OAAOD,cACpD,MAAc,eAAVyN,EACK,eAAe9M,KAGjB,SAASA,IAClB","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"index.esm.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/TextLink/TextLink.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/Icon/Icon.tsx","../src/components/atoms/RichText/RichText.tsx","../src/components/atoms/Paragraph/Paragraph.tsx","../src/components/atoms/BulletList/BulletList.tsx","../src/components/atoms/PlayButton/PlayButton.tsx","../src/components/molecules/Modal/Modal.tsx","../src/components/molecules/Header/Header.tsx","../src/components/molecules/Card/Card.tsx","../src/components/molecules/CTA/CTA.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/CTA/CTA.tsx","../src/components/molecules/primax/VideoSection/VideoSection.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/components/molecules/primax/PlayIcon/PlayIcon.tsx","../src/components/molecules/primax/HalfColumn/HalfColumn.tsx","../src/components/molecules/primax/Card/Card.tsx","../src/components/pages/Page.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"],"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 './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 './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 './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 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 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 './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, { 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 { 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 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 { 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, { 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 { 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 { 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","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","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 { 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 { 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 { 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","/**\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"],"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","applyTheme","themeName","existingStyle","document","getElementById","remove","style","createElement","id","textContent","head","appendChild","setThemeAttribute","documentElement","setAttribute","ThemeContext","createContext","useTheme","context","useContext","Error","ThemeProvider","children","initialTheme","initialThemeName","useEffect","fontImport","Array","isArray","url","contains","applyThemeCSS","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","TextLink","externalLink","ariaLabel","ariaDescribedBy","testId","linkUrl","isExternal","event","preventDefault","onKeyDown","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","Icon","svg","fill","stroke","strokeWidth","decorative","customStyles","role","RichText","content","richTextClasses","dangerouslySetInnerHTML","__html","Paragraph","commonProps","defaultIcon","viewBox","xmlns","cx","cy","r","BulletList","itemIcon","PlayButton","Modal","isOpen","onClose","closeOnOverlayClick","closeOnEscape","forceBottomSheet","dialogRef","contentRef","previousFocusRef","dragY","setDragY","isDragging","setIsDragging","isClosing","setIsClosing","touchStartRef","handleClose","useCallback","dismissSheet","timer","setTimeout","clearTimeout","dialog","open","activeElement","showModal","close","focus","handleCancel","e","addEventListener","removeEventListener","handleTouchStart","touch","touches","y","clientY","time","Date","now","handleTouchMove","deltaY","handleTouchEnd","elapsed","VELOCITY_THRESHOLD","transform","transition","onTouchStart","onTouchMove","onTouchEnd","Header","user","onLogin","onLogout","onCreateAccount","fillRule","d","Card","imageAlt","hoverEffect","handleKeyDown","handleLinkClick","wrapperStyle","cardStyle","imageWrapperStyle","bodyStyle","cardClasses","cardContent","tabIndex","CTA","headingLevel","description","buttonText","link","ctaClasses","WISTIA_PLAYER_SCRIPT","wistiaScriptLoaded","wistiaScriptLoading","wistiaLoadCallbacks","VideoPlayer","thumbnail","playIcon","playbackMode","mediaProps","isPlaying","setIsPlaying","Promise","resolve","querySelector","cb","onload","then","mediaScriptSrc","mediaScript","handlePlay","renderPlayIcon","points","transparentPng","node","player","thumbnailEl","insertBefore","firstChild","WISTIA_PLAYER_SCRIPT_ID","MediaBlock","accentBorder","overlay","sparkle","accentColor","sparkSrc","sparkScale","mirror","popover","sparkSmallSrc","videoHandleRef","videoContainerRef","isPopover","videoSrc","hasVideo","isVideoSource","isImage","loadWistiaPlayerScript","mediaId","moduleId","loadWistiaMediaModule","handleVideoReady","handle","videoEl","sparkPath","x","clipPath","React","aspect","BANNER_CONFIG","hero","level2","level3","gated","mapVerticalAlignment","alignment","top","center","bottom","renderColumnMedia","mediaBlockProps","Banner","align","config","bannerType","hasBackgroundVideo","backgroundVideo","BannerClass","contentStyle","textAlign","left","right","gridAlignItems","contentAlignSelf","contentVerticalAlign","mediaAlignSelf","mediaVerticalAlign","gridGap","alignSelf","contentGap","breadcrumbs","BannerCTA","dividerProps","ctaClass","VideoSection","variation","bulletPoints","bulletIcon","contentBlock","mediaBlock","verticalAlignMap","TwoColumn","rows","_children","rest","row","rowVariation","rowAlign","isReversed","order","TextInput","placeholder","onChange","onBlur","validation","error","useId","errorId","isRequired","required","htmlFor","minLength","maxLength","Dropdown","controlledOpen","onToggle","displayValue","listboxId","containerRef","internalOpen","setInternalOpen","handleToggle","next","handleClickOutside","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","Subscribe","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","PlayIcon","HalfColumn","mediaPosition","buildMedia","position","rowVariant","shouldMirror","wrapMedia","mediaNode","resolvedRows","pos","titleAs","metadata","buttonVariant","resolvedTitleAs","Page","setUser","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","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","danger","sectionDividerFontSize","sectionDividerFontWeight","sectionDividerLineHeight","sectionDividerColor","subtitleColor","componentTitleFontSize","componentTitleFontWeight","componentTitleLineHeight","componentTitleColor","bodyColor","bodyBoldColor","bodySmallColor","twoColumn","leftColSparkIconSmallLeft","leftColSparkIconLargeRight","rightColSparkIconSmallLeft","rightColSparkIconLargeRight","videoSection","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","useColorToken","tokenName","useColorVar"],"mappings":"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"}
|