@omega.js/extension 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (684) hide show
  1. package/LICENSE +98 -0
  2. package/README.md +194 -0
  3. package/bin/omega +2 -0
  4. package/bin/omega-extension +2 -0
  5. package/bin/omg +2 -0
  6. package/dist/assets/css/bundles/.gitkeep +0 -0
  7. package/dist/assets/css/components/content/index.scss +5 -0
  8. package/dist/assets/css/components/options/index.scss +9 -0
  9. package/dist/assets/css/components/pages/index.scss +5 -0
  10. package/dist/assets/css/components/popup/index.scss +9 -0
  11. package/dist/assets/css/core/_animations.scss +64 -0
  12. package/dist/assets/css/core/_fontawesome.scss +146 -0
  13. package/dist/assets/css/core/_initialize.scss +23 -0
  14. package/dist/assets/css/core/_utilities.scss +80 -0
  15. package/dist/assets/css/omega-extension.scss +43 -0
  16. package/dist/assets/css/shell/_index.scss +207 -0
  17. package/dist/assets/css/tokens/_index.scss +166 -0
  18. package/dist/assets/js/core/app-shell.js +136 -0
  19. package/dist/assets/js/libs/initialize-tooltips.js +31 -0
  20. package/dist/assets/js/libs/recaptcha.js +94 -0
  21. package/dist/assets/js/main.js +4 -0
  22. package/dist/assets/themes/_template/README.md +115 -0
  23. package/dist/assets/themes/_template/_config.scss +60 -0
  24. package/dist/assets/themes/_template/_theme.js +14 -0
  25. package/dist/assets/themes/_template/_theme.scss +28 -0
  26. package/dist/assets/themes/_template/css/base/_root.scss +19 -0
  27. package/dist/assets/themes/_template/css/components/_components.scss +23 -0
  28. package/dist/assets/themes/base/README.md +5 -0
  29. package/dist/assets/themes/base/_components/data/org-chart/component.html +33 -0
  30. package/dist/assets/themes/base/_components/data/org-chart/component.json5 +33 -0
  31. package/dist/assets/themes/base/_components/data/org-chart/component.scss +183 -0
  32. package/dist/assets/themes/base/_components/heading/masthead/component.html +22 -0
  33. package/dist/assets/themes/base/_components/heading/masthead/component.json5 +30 -0
  34. package/dist/assets/themes/base/_components/heading/section-head/component.html +18 -0
  35. package/dist/assets/themes/base/_components/heading/section-head/component.json5 +27 -0
  36. package/dist/assets/themes/base/_components/pricing/features/component.html +29 -0
  37. package/dist/assets/themes/base/_components/pricing/features/component.json5 +30 -0
  38. package/dist/assets/themes/base/_hero/orbit/index.html +30 -0
  39. package/dist/assets/themes/base/_hero/orbit/script.js +33 -0
  40. package/dist/assets/themes/base/_hero/orbit/style.scss +133 -0
  41. package/dist/assets/themes/base/_includes/admin/sections/sidebar.html +3 -0
  42. package/dist/assets/themes/base/_includes/admin/sections/topbar.html +3 -0
  43. package/dist/assets/themes/base/_includes/backend/sections/sidebar.html +3 -0
  44. package/dist/assets/themes/base/_includes/backend/sections/topbar.html +3 -0
  45. package/dist/assets/themes/base/_includes/frontend/components/connection-card.html +49 -0
  46. package/dist/assets/themes/base/_includes/frontend/components/post-card.html +54 -0
  47. package/dist/assets/themes/base/_includes/frontend/sections/account-connections.html +42 -0
  48. package/dist/assets/themes/base/_includes/frontend/sections/account-section-header.html +11 -0
  49. package/dist/assets/themes/base/_includes/frontend/sections/footer.html +154 -0
  50. package/dist/assets/themes/base/_includes/frontend/sections/nav.html +276 -0
  51. package/dist/assets/themes/base/_includes/global/sections/account.html +72 -0
  52. package/dist/assets/themes/base/_includes/global/sections/app-sidebar.html +248 -0
  53. package/dist/assets/themes/base/_includes/global/sections/app-topbar.html +228 -0
  54. package/dist/assets/themes/base/_includes/global/sections/page-header.html +99 -0
  55. package/dist/assets/themes/base/_layouts/admin/core/minimal-viewport-locked.html +22 -0
  56. package/dist/assets/themes/base/_layouts/admin/core/minimal.html +23 -0
  57. package/dist/assets/themes/base/_layouts/backend/core/base.html +57 -0
  58. package/dist/assets/themes/base/_layouts/backend/core/minimal-viewport-locked.html +32 -0
  59. package/dist/assets/themes/base/_layouts/backend/core/minimal.html +32 -0
  60. package/dist/assets/themes/base/_layouts/backend/pages/dashboard/index.html +230 -0
  61. package/dist/assets/themes/base/_layouts/frontend/core/base.html +31 -0
  62. package/dist/assets/themes/base/_layouts/frontend/core/cover.html +40 -0
  63. package/dist/assets/themes/base/_layouts/frontend/core/minimal.html +47 -0
  64. package/dist/assets/themes/base/_layouts/frontend/pages/404.html +54 -0
  65. package/dist/assets/themes/base/_layouts/frontend/pages/about.html +144 -0
  66. package/dist/assets/themes/base/_layouts/frontend/pages/account/index.html +2104 -0
  67. package/dist/assets/themes/base/_layouts/frontend/pages/alternatives/alternative.html +319 -0
  68. package/dist/assets/themes/base/_layouts/frontend/pages/alternatives/index.html +186 -0
  69. package/dist/assets/themes/base/_layouts/frontend/pages/app.html +142 -0
  70. package/dist/assets/themes/base/_layouts/frontend/pages/auth/reset.html +53 -0
  71. package/dist/assets/themes/base/_layouts/frontend/pages/auth/signin.html +90 -0
  72. package/dist/assets/themes/base/_layouts/frontend/pages/auth/signup.html +141 -0
  73. package/dist/assets/themes/base/_layouts/frontend/pages/auth/token.html +44 -0
  74. package/dist/assets/themes/base/_layouts/frontend/pages/blog/categories/category.html +88 -0
  75. package/dist/assets/themes/base/_layouts/frontend/pages/blog/categories/index.html +88 -0
  76. package/dist/assets/themes/base/_layouts/frontend/pages/blog/index.html +255 -0
  77. package/dist/assets/themes/base/_layouts/frontend/pages/blog/post.html +261 -0
  78. package/dist/assets/themes/base/_layouts/frontend/pages/blog/tags/index.html +84 -0
  79. package/dist/assets/themes/base/_layouts/frontend/pages/blog/tags/tag.html +88 -0
  80. package/dist/assets/themes/base/_layouts/frontend/pages/collection/category.html +72 -0
  81. package/dist/assets/themes/base/_layouts/frontend/pages/collection/document.html +54 -0
  82. package/dist/assets/themes/base/_layouts/frontend/pages/collection/index.html +84 -0
  83. package/dist/assets/themes/base/_layouts/frontend/pages/connections/callback.html +55 -0
  84. package/dist/assets/themes/base/_layouts/frontend/pages/contact.html +214 -0
  85. package/dist/assets/themes/base/_layouts/frontend/pages/download.html +793 -0
  86. package/dist/assets/themes/base/_layouts/frontend/pages/extension/index.html +253 -0
  87. package/dist/assets/themes/base/_layouts/frontend/pages/extension/installed.html +198 -0
  88. package/dist/assets/themes/base/_layouts/frontend/pages/feedback.html +171 -0
  89. package/dist/assets/themes/base/_layouts/frontend/pages/index.html +66 -0
  90. package/dist/assets/themes/base/_layouts/frontend/pages/legal/document.html +78 -0
  91. package/dist/assets/themes/base/_layouts/frontend/pages/payment/checkout.html +459 -0
  92. package/dist/assets/themes/base/_layouts/frontend/pages/payment/confirmation.html +131 -0
  93. package/dist/assets/themes/base/_layouts/frontend/pages/portal/email-preferences.html +104 -0
  94. package/dist/assets/themes/base/_layouts/frontend/pages/pricing.html +596 -0
  95. package/dist/assets/themes/base/_layouts/frontend/pages/status.html +361 -0
  96. package/dist/assets/themes/base/_layouts/frontend/pages/team/index.html +210 -0
  97. package/dist/assets/themes/base/_layouts/frontend/pages/team/member.html +125 -0
  98. package/dist/assets/themes/base/_layouts/frontend/pages/updates/index.html +119 -0
  99. package/dist/assets/themes/base/_layouts/frontend/pages/updates/update.html +118 -0
  100. package/dist/assets/themes/base/_sections/about/hero/section.html +68 -0
  101. package/dist/assets/themes/base/_sections/about/hero/section.json5 +58 -0
  102. package/dist/assets/themes/base/_sections/about/letter/section.html +60 -0
  103. package/dist/assets/themes/base/_sections/about/letter/section.json5 +56 -0
  104. package/dist/assets/themes/base/_sections/about/photo-band/section.html +24 -0
  105. package/dist/assets/themes/base/_sections/about/photo-band/section.json5 +23 -0
  106. package/dist/assets/themes/base/_sections/about/principles/section.html +17 -0
  107. package/dist/assets/themes/base/_sections/about/principles/section.json5 +34 -0
  108. package/dist/assets/themes/base/_sections/about/timeline/section.html +20 -0
  109. package/dist/assets/themes/base/_sections/about/timeline/section.json5 +34 -0
  110. package/dist/assets/themes/base/_sections/marketing/bento/section.html +91 -0
  111. package/dist/assets/themes/base/_sections/marketing/bento/section.json5 +152 -0
  112. package/dist/assets/themes/base/_sections/marketing/cta/section.html +44 -0
  113. package/dist/assets/themes/base/_sections/marketing/cta/section.json5 +47 -0
  114. package/dist/assets/themes/base/_sections/marketing/faq/section.html +52 -0
  115. package/dist/assets/themes/base/_sections/marketing/faq/section.json5 +68 -0
  116. package/dist/assets/themes/base/_sections/marketing/hero/section.html +349 -0
  117. package/dist/assets/themes/base/_sections/marketing/hero/section.json5 +335 -0
  118. package/dist/assets/themes/base/_sections/marketing/newsletter-cta/section.html +38 -0
  119. package/dist/assets/themes/base/_sections/marketing/newsletter-cta/section.js +86 -0
  120. package/dist/assets/themes/base/_sections/marketing/newsletter-cta/section.json5 +29 -0
  121. package/dist/assets/themes/base/_sections/marketing/pricing-cards/section.html +115 -0
  122. package/dist/assets/themes/base/_sections/marketing/pricing-cards/section.json5 +72 -0
  123. package/dist/assets/themes/base/_sections/marketing/product-demo/section.html +62 -0
  124. package/dist/assets/themes/base/_sections/marketing/product-demo/section.js +44 -0
  125. package/dist/assets/themes/base/_sections/marketing/product-demo/section.json5 +52 -0
  126. package/dist/assets/themes/base/_sections/marketing/prose/section.html +22 -0
  127. package/dist/assets/themes/base/_sections/marketing/prose/section.json5 +41 -0
  128. package/dist/assets/themes/base/_sections/marketing/showcase/section.html +35 -0
  129. package/dist/assets/themes/base/_sections/marketing/showcase/section.json5 +52 -0
  130. package/dist/assets/themes/base/_sections/marketing/stats/section.html +32 -0
  131. package/dist/assets/themes/base/_sections/marketing/stats/section.json5 +44 -0
  132. package/dist/assets/themes/base/_sections/marketing/testimonials/section.html +54 -0
  133. package/dist/assets/themes/base/_sections/marketing/testimonials/section.json5 +70 -0
  134. package/dist/assets/themes/base/_sections/marketing/trusted-by/section.html +30 -0
  135. package/dist/assets/themes/base/_sections/marketing/trusted-by/section.json5 +38 -0
  136. package/dist/assets/themes/base/_sections/verts/unit/section.html +7 -0
  137. package/dist/assets/themes/base/_sections/verts/unit/section.js +22 -0
  138. package/dist/assets/themes/base/_sections/verts/unit/section.json5 +24 -0
  139. package/dist/assets/themes/base/_sections/verts/unit/section.scss +24 -0
  140. package/dist/assets/themes/base/_theme.js +13 -0
  141. package/dist/assets/themes/base/_theme.scss +4 -0
  142. package/dist/assets/themes/bootstrap/_theme.js +16 -0
  143. package/dist/assets/themes/bootstrap/_theme.scss +11 -0
  144. package/dist/assets/themes/bootstrap/js/index.esm.js +19 -0
  145. package/dist/assets/themes/bootstrap/js/index.umd.js +34 -0
  146. package/dist/assets/themes/bootstrap/js/src/alert.js +87 -0
  147. package/dist/assets/themes/bootstrap/js/src/base-component.js +86 -0
  148. package/dist/assets/themes/bootstrap/js/src/button.js +72 -0
  149. package/dist/assets/themes/bootstrap/js/src/carousel.js +474 -0
  150. package/dist/assets/themes/bootstrap/js/src/collapse.js +297 -0
  151. package/dist/assets/themes/bootstrap/js/src/dom/data.js +55 -0
  152. package/dist/assets/themes/bootstrap/js/src/dom/event-handler.js +317 -0
  153. package/dist/assets/themes/bootstrap/js/src/dom/manipulator.js +71 -0
  154. package/dist/assets/themes/bootstrap/js/src/dom/selector-engine.js +126 -0
  155. package/dist/assets/themes/bootstrap/js/src/dropdown.js +458 -0
  156. package/dist/assets/themes/bootstrap/js/src/modal.js +378 -0
  157. package/dist/assets/themes/bootstrap/js/src/offcanvas.js +282 -0
  158. package/dist/assets/themes/bootstrap/js/src/popover.js +97 -0
  159. package/dist/assets/themes/bootstrap/js/src/scrollspy.js +296 -0
  160. package/dist/assets/themes/bootstrap/js/src/tab.js +315 -0
  161. package/dist/assets/themes/bootstrap/js/src/toast.js +224 -0
  162. package/dist/assets/themes/bootstrap/js/src/tooltip.js +632 -0
  163. package/dist/assets/themes/bootstrap/js/src/util/backdrop.js +151 -0
  164. package/dist/assets/themes/bootstrap/js/src/util/component-functions.js +35 -0
  165. package/dist/assets/themes/bootstrap/js/src/util/config.js +65 -0
  166. package/dist/assets/themes/bootstrap/js/src/util/focustrap.js +115 -0
  167. package/dist/assets/themes/bootstrap/js/src/util/index.js +306 -0
  168. package/dist/assets/themes/bootstrap/js/src/util/sanitizer.js +117 -0
  169. package/dist/assets/themes/bootstrap/js/src/util/scrollbar.js +114 -0
  170. package/dist/assets/themes/bootstrap/js/src/util/swipe.js +146 -0
  171. package/dist/assets/themes/bootstrap/js/src/util/template-factory.js +160 -0
  172. package/dist/assets/themes/bootstrap/overrides/_accordion.scss +21 -0
  173. package/dist/assets/themes/bootstrap/overrides/_avatars.scss +51 -0
  174. package/dist/assets/themes/bootstrap/overrides/_blog-images.scss +45 -0
  175. package/dist/assets/themes/bootstrap/overrides/_buttons-adaptive.scss +141 -0
  176. package/dist/assets/themes/bootstrap/overrides/_color-shades.scss +25 -0
  177. package/dist/assets/themes/bootstrap/overrides/_cursor-utilities.scss +13 -0
  178. package/dist/assets/themes/bootstrap/overrides/_index.scss +30 -0
  179. package/dist/assets/themes/bootstrap/overrides/_links.scss +26 -0
  180. package/dist/assets/themes/bootstrap/overrides/_soft-colors.scss +99 -0
  181. package/dist/assets/themes/bootstrap/overrides/_spacing-extended.scss +74 -0
  182. package/dist/assets/themes/bootstrap/overrides/_spinners.scss +22 -0
  183. package/dist/assets/themes/bootstrap/overrides/_typography-utilities.scss +40 -0
  184. package/dist/assets/themes/bootstrap/scss/_accordion.scss +153 -0
  185. package/dist/assets/themes/bootstrap/scss/_alert.scss +68 -0
  186. package/dist/assets/themes/bootstrap/scss/_badge.scss +38 -0
  187. package/dist/assets/themes/bootstrap/scss/_breadcrumb.scss +40 -0
  188. package/dist/assets/themes/bootstrap/scss/_button-group.scss +147 -0
  189. package/dist/assets/themes/bootstrap/scss/_buttons.scss +216 -0
  190. package/dist/assets/themes/bootstrap/scss/_card.scss +238 -0
  191. package/dist/assets/themes/bootstrap/scss/_carousel.scss +226 -0
  192. package/dist/assets/themes/bootstrap/scss/_close.scss +66 -0
  193. package/dist/assets/themes/bootstrap/scss/_containers.scss +41 -0
  194. package/dist/assets/themes/bootstrap/scss/_dropdown.scss +250 -0
  195. package/dist/assets/themes/bootstrap/scss/_forms.scss +9 -0
  196. package/dist/assets/themes/bootstrap/scss/_functions.scss +302 -0
  197. package/dist/assets/themes/bootstrap/scss/_grid.scss +39 -0
  198. package/dist/assets/themes/bootstrap/scss/_helpers.scss +12 -0
  199. package/dist/assets/themes/bootstrap/scss/_images.scss +42 -0
  200. package/dist/assets/themes/bootstrap/scss/_list-group.scss +199 -0
  201. package/dist/assets/themes/bootstrap/scss/_maps.scss +174 -0
  202. package/dist/assets/themes/bootstrap/scss/_mixins.scss +42 -0
  203. package/dist/assets/themes/bootstrap/scss/_modal.scss +240 -0
  204. package/dist/assets/themes/bootstrap/scss/_nav.scss +197 -0
  205. package/dist/assets/themes/bootstrap/scss/_navbar.scss +289 -0
  206. package/dist/assets/themes/bootstrap/scss/_offcanvas.scss +147 -0
  207. package/dist/assets/themes/bootstrap/scss/_pagination.scss +109 -0
  208. package/dist/assets/themes/bootstrap/scss/_placeholders.scss +51 -0
  209. package/dist/assets/themes/bootstrap/scss/_popover.scss +196 -0
  210. package/dist/assets/themes/bootstrap/scss/_progress.scss +68 -0
  211. package/dist/assets/themes/bootstrap/scss/_reboot.scss +611 -0
  212. package/dist/assets/themes/bootstrap/scss/_root.scss +187 -0
  213. package/dist/assets/themes/bootstrap/scss/_spinners.scss +85 -0
  214. package/dist/assets/themes/bootstrap/scss/_tables.scss +171 -0
  215. package/dist/assets/themes/bootstrap/scss/_toasts.scss +73 -0
  216. package/dist/assets/themes/bootstrap/scss/_tooltip.scss +119 -0
  217. package/dist/assets/themes/bootstrap/scss/_transitions.scss +27 -0
  218. package/dist/assets/themes/bootstrap/scss/_type.scss +106 -0
  219. package/dist/assets/themes/bootstrap/scss/_utilities.scss +806 -0
  220. package/dist/assets/themes/bootstrap/scss/_variables-dark.scss +102 -0
  221. package/dist/assets/themes/bootstrap/scss/_variables.scss +1753 -0
  222. package/dist/assets/themes/bootstrap/scss/bootstrap-grid.scss +62 -0
  223. package/dist/assets/themes/bootstrap/scss/bootstrap-reboot.scss +10 -0
  224. package/dist/assets/themes/bootstrap/scss/bootstrap-utilities.scss +19 -0
  225. package/dist/assets/themes/bootstrap/scss/bootstrap.scss +52 -0
  226. package/dist/assets/themes/bootstrap/scss/forms/_floating-labels.scss +97 -0
  227. package/dist/assets/themes/bootstrap/scss/forms/_form-check.scss +189 -0
  228. package/dist/assets/themes/bootstrap/scss/forms/_form-control.scss +214 -0
  229. package/dist/assets/themes/bootstrap/scss/forms/_form-range.scss +91 -0
  230. package/dist/assets/themes/bootstrap/scss/forms/_form-select.scss +80 -0
  231. package/dist/assets/themes/bootstrap/scss/forms/_form-text.scss +11 -0
  232. package/dist/assets/themes/bootstrap/scss/forms/_input-group.scss +132 -0
  233. package/dist/assets/themes/bootstrap/scss/forms/_labels.scss +36 -0
  234. package/dist/assets/themes/bootstrap/scss/forms/_validation.scss +12 -0
  235. package/dist/assets/themes/bootstrap/scss/helpers/_clearfix.scss +3 -0
  236. package/dist/assets/themes/bootstrap/scss/helpers/_color-bg.scss +7 -0
  237. package/dist/assets/themes/bootstrap/scss/helpers/_colored-links.scss +30 -0
  238. package/dist/assets/themes/bootstrap/scss/helpers/_focus-ring.scss +5 -0
  239. package/dist/assets/themes/bootstrap/scss/helpers/_icon-link.scss +25 -0
  240. package/dist/assets/themes/bootstrap/scss/helpers/_position.scss +36 -0
  241. package/dist/assets/themes/bootstrap/scss/helpers/_ratio.scss +26 -0
  242. package/dist/assets/themes/bootstrap/scss/helpers/_stacks.scss +15 -0
  243. package/dist/assets/themes/bootstrap/scss/helpers/_stretched-link.scss +15 -0
  244. package/dist/assets/themes/bootstrap/scss/helpers/_text-truncation.scss +7 -0
  245. package/dist/assets/themes/bootstrap/scss/helpers/_visually-hidden.scss +8 -0
  246. package/dist/assets/themes/bootstrap/scss/helpers/_vr.scss +8 -0
  247. package/dist/assets/themes/bootstrap/scss/mixins/_alert.scss +18 -0
  248. package/dist/assets/themes/bootstrap/scss/mixins/_backdrop.scss +14 -0
  249. package/dist/assets/themes/bootstrap/scss/mixins/_banner.scss +7 -0
  250. package/dist/assets/themes/bootstrap/scss/mixins/_border-radius.scss +78 -0
  251. package/dist/assets/themes/bootstrap/scss/mixins/_box-shadow.scss +18 -0
  252. package/dist/assets/themes/bootstrap/scss/mixins/_breakpoints.scss +127 -0
  253. package/dist/assets/themes/bootstrap/scss/mixins/_buttons.scss +70 -0
  254. package/dist/assets/themes/bootstrap/scss/mixins/_caret.scss +69 -0
  255. package/dist/assets/themes/bootstrap/scss/mixins/_clearfix.scss +9 -0
  256. package/dist/assets/themes/bootstrap/scss/mixins/_color-mode.scss +21 -0
  257. package/dist/assets/themes/bootstrap/scss/mixins/_color-scheme.scss +7 -0
  258. package/dist/assets/themes/bootstrap/scss/mixins/_container.scss +11 -0
  259. package/dist/assets/themes/bootstrap/scss/mixins/_deprecate.scss +10 -0
  260. package/dist/assets/themes/bootstrap/scss/mixins/_forms.scss +163 -0
  261. package/dist/assets/themes/bootstrap/scss/mixins/_gradients.scss +47 -0
  262. package/dist/assets/themes/bootstrap/scss/mixins/_grid.scss +151 -0
  263. package/dist/assets/themes/bootstrap/scss/mixins/_image.scss +16 -0
  264. package/dist/assets/themes/bootstrap/scss/mixins/_list-group.scss +26 -0
  265. package/dist/assets/themes/bootstrap/scss/mixins/_lists.scss +7 -0
  266. package/dist/assets/themes/bootstrap/scss/mixins/_pagination.scss +10 -0
  267. package/dist/assets/themes/bootstrap/scss/mixins/_reset-text.scss +17 -0
  268. package/dist/assets/themes/bootstrap/scss/mixins/_resize.scss +6 -0
  269. package/dist/assets/themes/bootstrap/scss/mixins/_table-variants.scss +24 -0
  270. package/dist/assets/themes/bootstrap/scss/mixins/_text-truncate.scss +8 -0
  271. package/dist/assets/themes/bootstrap/scss/mixins/_transition.scss +26 -0
  272. package/dist/assets/themes/bootstrap/scss/mixins/_utilities.scss +97 -0
  273. package/dist/assets/themes/bootstrap/scss/mixins/_visually-hidden.scss +38 -0
  274. package/dist/assets/themes/bootstrap/scss/tests/jasmine.js +16 -0
  275. package/dist/assets/themes/bootstrap/scss/tests/mixins/_auto-import-of-variables-dark.test.scss +7 -0
  276. package/dist/assets/themes/bootstrap/scss/tests/mixins/_color-modes.test.scss +69 -0
  277. package/dist/assets/themes/bootstrap/scss/tests/mixins/_media-query-color-mode-full.test.scss +8 -0
  278. package/dist/assets/themes/bootstrap/scss/tests/mixins/_utilities.test.scss +393 -0
  279. package/dist/assets/themes/bootstrap/scss/tests/sass-true/register.js +14 -0
  280. package/dist/assets/themes/bootstrap/scss/tests/sass-true/runner.js +17 -0
  281. package/dist/assets/themes/bootstrap/scss/tests/utilities/_api.test.scss +75 -0
  282. package/dist/assets/themes/bootstrap/scss/utilities/_api.scss +47 -0
  283. package/dist/assets/themes/bootstrap/scss/vendor/_rfs.scss +348 -0
  284. package/dist/assets/themes/classy/README.md +89 -0
  285. package/dist/assets/themes/classy/_config.scss +245 -0
  286. package/dist/assets/themes/classy/_theme.js +31 -0
  287. package/dist/assets/themes/classy/_theme.scss +57 -0
  288. package/dist/assets/themes/classy/css/app/_panels.scss +183 -0
  289. package/dist/assets/themes/classy/css/base/_fonts.scss +79 -0
  290. package/dist/assets/themes/classy/css/base/_no-raise.scss +49 -0
  291. package/dist/assets/themes/classy/css/base/_root.scss +113 -0
  292. package/dist/assets/themes/classy/css/base/_typography.scss +154 -0
  293. package/dist/assets/themes/classy/css/base/_utilities.scss +284 -0
  294. package/dist/assets/themes/classy/css/components/_alerts.scss +51 -0
  295. package/dist/assets/themes/classy/css/components/_badges.scss +46 -0
  296. package/dist/assets/themes/classy/css/components/_buttons.scss +175 -0
  297. package/dist/assets/themes/classy/css/components/_cards.scss +41 -0
  298. package/dist/assets/themes/classy/css/components/_dropdowns.scss +48 -0
  299. package/dist/assets/themes/classy/css/components/_forms.scss +171 -0
  300. package/dist/assets/themes/classy/css/components/_receipt.scss +45 -0
  301. package/dist/assets/themes/classy/css/layout/_footer.scss +298 -0
  302. package/dist/assets/themes/classy/css/layout/_general.scss +209 -0
  303. package/dist/assets/themes/classy/css/layout/_nav.scss +154 -0
  304. package/dist/assets/themes/classy/css/layout/_shell.scss +458 -0
  305. package/dist/assets/themes/classy/css/marketing/_bento.scss +238 -0
  306. package/dist/assets/themes/classy/css/marketing/_content.scss +1328 -0
  307. package/dist/assets/themes/classy/css/marketing/_downloads.scss +246 -0
  308. package/dist/assets/themes/classy/css/marketing/_hero.scss +311 -0
  309. package/dist/assets/themes/classy/css/marketing/_sections.scss +649 -0
  310. package/dist/assets/themes/classy/css/pages/404/index.scss +67 -0
  311. package/dist/assets/themes/classy/css/pages/_auth.scss +235 -0
  312. package/dist/assets/themes/classy/css/pages/admin/firebase/index.scss +22 -0
  313. package/dist/assets/themes/classy/css/pages/blog/[slug].scss +56 -0
  314. package/dist/assets/themes/classy/css/pages/cookies.scss +2 -0
  315. package/dist/assets/themes/classy/css/pages/dashboard/account/index.scss +31 -0
  316. package/dist/assets/themes/classy/css/pages/feedback/index.scss +39 -0
  317. package/dist/assets/themes/classy/css/pages/legal/_document.scss +192 -0
  318. package/dist/assets/themes/classy/css/pages/payment/checkout/index.scss +585 -0
  319. package/dist/assets/themes/classy/css/pages/payment/confirmation/index.scss +9 -0
  320. package/dist/assets/themes/classy/css/pages/privacy.scss +2 -0
  321. package/dist/assets/themes/classy/css/pages/status/index.scss +164 -0
  322. package/dist/assets/themes/classy/css/pages/terms.scss +2 -0
  323. package/dist/assets/themes/classy/css/pages/updates/index.scss +128 -0
  324. package/dist/assets/themes/classy/fonts/inter-italic-latin-ext.woff2 +0 -0
  325. package/dist/assets/themes/classy/fonts/inter-italic-latin.woff2 +0 -0
  326. package/dist/assets/themes/classy/fonts/inter-normal-latin-ext.woff2 +0 -0
  327. package/dist/assets/themes/classy/fonts/inter-normal-latin.woff2 +0 -0
  328. package/dist/assets/themes/classy/fonts/newsreader-italic-latin-ext.woff2 +0 -0
  329. package/dist/assets/themes/classy/fonts/newsreader-italic-latin.woff2 +0 -0
  330. package/dist/assets/themes/classy/fonts/newsreader-normal-latin-ext.woff2 +0 -0
  331. package/dist/assets/themes/classy/fonts/newsreader-normal-latin.woff2 +0 -0
  332. package/dist/assets/themes/classy/js/hero-demo-form.js +56 -0
  333. package/dist/assets/themes/neobrutalism/README.md +118 -0
  334. package/dist/assets/themes/neobrutalism/_config.scss +139 -0
  335. package/dist/assets/themes/neobrutalism/_layouts/frontend/core/base.html +30 -0
  336. package/dist/assets/themes/neobrutalism/_layouts/frontend/pages/index.html +275 -0
  337. package/dist/assets/themes/neobrutalism/_theme.js +24 -0
  338. package/dist/assets/themes/neobrutalism/_theme.scss +61 -0
  339. package/dist/assets/themes/neobrutalism/css/base/_mixins.scss +46 -0
  340. package/dist/assets/themes/neobrutalism/css/base/_root.scss +169 -0
  341. package/dist/assets/themes/neobrutalism/css/base/_typography.scss +61 -0
  342. package/dist/assets/themes/neobrutalism/css/base/_utilities.scss +89 -0
  343. package/dist/assets/themes/neobrutalism/css/components/_billing-toggle.scss +74 -0
  344. package/dist/assets/themes/neobrutalism/css/components/_buttons.scss +148 -0
  345. package/dist/assets/themes/neobrutalism/css/components/_cards.scss +47 -0
  346. package/dist/assets/themes/neobrutalism/css/components/_forms.scss +88 -0
  347. package/dist/assets/themes/neobrutalism/css/components/_marketing.scss +244 -0
  348. package/dist/assets/themes/neobrutalism/css/layout/_general.scss +213 -0
  349. package/dist/assets/themes/neobrutalism/css/layout/_navigation.scss +171 -0
  350. package/dist/assets/themes/neobrutalism/css/pages/index.scss +203 -0
  351. package/dist/assets/themes/neobrutalism/css/pages/pricing/index.scss +58 -0
  352. package/dist/assets/themes/neobrutalism/css/pages/test/libraries/layers/index.scss +7 -0
  353. package/dist/assets/themes/neobrutalism/js/pages/test/libraries/layers/index.js +9 -0
  354. package/dist/assets/themes/newsflash/README.md +117 -0
  355. package/dist/assets/themes/newsflash/_components/heading/lede/component.html +14 -0
  356. package/dist/assets/themes/newsflash/_components/heading/lede/component.json5 +23 -0
  357. package/dist/assets/themes/newsflash/_components/heading/rule-head/component.html +17 -0
  358. package/dist/assets/themes/newsflash/_components/heading/rule-head/component.json5 +23 -0
  359. package/dist/assets/themes/newsflash/_components/news/byline/component.html +12 -0
  360. package/dist/assets/themes/newsflash/_components/news/byline/component.json5 +18 -0
  361. package/dist/assets/themes/newsflash/_components/news/story-card/component.html +25 -0
  362. package/dist/assets/themes/newsflash/_components/news/story-card/component.json5 +21 -0
  363. package/dist/assets/themes/newsflash/_config.scss +147 -0
  364. package/dist/assets/themes/newsflash/_layouts/frontend/core/base.html +51 -0
  365. package/dist/assets/themes/newsflash/_layouts/frontend/pages/blog/index.html +299 -0
  366. package/dist/assets/themes/newsflash/_layouts/frontend/pages/blog/post.html +235 -0
  367. package/dist/assets/themes/newsflash/_layouts/frontend/pages/index.html +328 -0
  368. package/dist/assets/themes/newsflash/_sections/marketing/desks/section.html +39 -0
  369. package/dist/assets/themes/newsflash/_sections/marketing/desks/section.json5 +49 -0
  370. package/dist/assets/themes/newsflash/_sections/marketing/newsletter-cta/section.html +103 -0
  371. package/dist/assets/themes/newsflash/_sections/marketing/newsletter-cta/section.json5 +50 -0
  372. package/dist/assets/themes/newsflash/_sections/marketing/rundown/section.html +28 -0
  373. package/dist/assets/themes/newsflash/_sections/marketing/rundown/section.json5 +40 -0
  374. package/dist/assets/themes/newsflash/_theme.js +24 -0
  375. package/dist/assets/themes/newsflash/_theme.scss +70 -0
  376. package/dist/assets/themes/newsflash/css/base/_fonts.scss +80 -0
  377. package/dist/assets/themes/newsflash/css/base/_mixins.scss +51 -0
  378. package/dist/assets/themes/newsflash/css/base/_root.scss +257 -0
  379. package/dist/assets/themes/newsflash/css/base/_typography.scss +49 -0
  380. package/dist/assets/themes/newsflash/css/base/_utilities.scss +122 -0
  381. package/dist/assets/themes/newsflash/css/components/_badges.scss +65 -0
  382. package/dist/assets/themes/newsflash/css/components/_billing-toggle.scss +61 -0
  383. package/dist/assets/themes/newsflash/css/components/_buttons.scss +139 -0
  384. package/dist/assets/themes/newsflash/css/components/_cards.scss +47 -0
  385. package/dist/assets/themes/newsflash/css/components/_editorial.scss +173 -0
  386. package/dist/assets/themes/newsflash/css/components/_forms.scss +75 -0
  387. package/dist/assets/themes/newsflash/css/components/_infinite-scroll.scss +102 -0
  388. package/dist/assets/themes/newsflash/css/components/_panels.scss +156 -0
  389. package/dist/assets/themes/newsflash/css/components/_ticker.scss +67 -0
  390. package/dist/assets/themes/newsflash/css/layout/_general.scss +330 -0
  391. package/dist/assets/themes/newsflash/css/layout/_navigation.scss +168 -0
  392. package/dist/assets/themes/newsflash/css/pages/404/index.scss +79 -0
  393. package/dist/assets/themes/newsflash/css/pages/blog/[slug].scss +186 -0
  394. package/dist/assets/themes/newsflash/css/pages/blog/index.scss +17 -0
  395. package/dist/assets/themes/newsflash/css/pages/index.scss +157 -0
  396. package/dist/assets/themes/newsflash/css/pages/pricing/index.scss +55 -0
  397. package/dist/assets/themes/newsflash/css/pages/test/libraries/layers/index.scss +7 -0
  398. package/dist/assets/themes/newsflash/fonts/fraunces-italic-latin-ext.woff2 +0 -0
  399. package/dist/assets/themes/newsflash/fonts/fraunces-italic-latin.woff2 +0 -0
  400. package/dist/assets/themes/newsflash/fonts/fraunces-normal-latin-ext.woff2 +0 -0
  401. package/dist/assets/themes/newsflash/fonts/fraunces-normal-latin.woff2 +0 -0
  402. package/dist/assets/themes/newsflash/fonts/schibsted-grotesk-italic-latin-ext.woff2 +0 -0
  403. package/dist/assets/themes/newsflash/fonts/schibsted-grotesk-italic-latin.woff2 +0 -0
  404. package/dist/assets/themes/newsflash/fonts/schibsted-grotesk-normal-latin-ext.woff2 +0 -0
  405. package/dist/assets/themes/newsflash/fonts/schibsted-grotesk-normal-latin.woff2 +0 -0
  406. package/dist/assets/themes/newsflash/js/pages/blog/[slug].js +29 -0
  407. package/dist/assets/themes/newsflash/js/pages/test/libraries/layers/index.js +9 -0
  408. package/dist/background.js +684 -0
  409. package/dist/build.js +268 -0
  410. package/dist/cli-run.js +25 -0
  411. package/dist/cli.js +30 -0
  412. package/dist/commands/build.js +67 -0
  413. package/dist/commands/clean.js +29 -0
  414. package/dist/commands/deploy.js +97 -0
  415. package/dist/commands/install.js +58 -0
  416. package/dist/commands/lib/dependencies.js +33 -0
  417. package/dist/commands/lib/deploy-precheck.js +57 -0
  418. package/dist/commands/lib/ensure-target.js +151 -0
  419. package/dist/commands/lib/push-secrets.js +60 -0
  420. package/dist/commands/migrate.js +77 -0
  421. package/dist/commands/test.js +110 -0
  422. package/dist/commands/update.js +21 -0
  423. package/dist/commands/version.js +12 -0
  424. package/dist/config/manifest.json +117 -0
  425. package/dist/config/page-template.html +21 -0
  426. package/dist/content.js +37 -0
  427. package/dist/defaults/.github/workflows/publish.yml +86 -0
  428. package/dist/defaults/.nvmrc +1 -0
  429. package/dist/defaults/.vscode/settings.json +8 -0
  430. package/dist/defaults/AGENTS.md +113 -0
  431. package/dist/defaults/CHANGELOG.md +15 -0
  432. package/dist/defaults/CLAUDE.md +1 -0
  433. package/dist/defaults/_.gitignore +75 -0
  434. package/dist/defaults/config/description.md +46 -0
  435. package/dist/defaults/config/messages.json +20 -0
  436. package/dist/defaults/config/omega.json5 +64 -0
  437. package/dist/defaults/docs/README.md +17 -0
  438. package/dist/defaults/gulpfile.js +6 -0
  439. package/dist/defaults/hooks/build/post.js +8 -0
  440. package/dist/defaults/hooks/build/pre.js +8 -0
  441. package/dist/defaults/src/assets/css/bundles/.gitkeep +0 -0
  442. package/dist/defaults/src/assets/css/components/content/index.scss +11 -0
  443. package/dist/defaults/src/assets/css/components/offscreen/index.scss +4 -0
  444. package/dist/defaults/src/assets/css/components/options/index.scss +14 -0
  445. package/dist/defaults/src/assets/css/components/pages/index.scss +10 -0
  446. package/dist/defaults/src/assets/css/components/popup/index.scss +10 -0
  447. package/dist/defaults/src/assets/css/components/sidepanel/index.scss +6 -0
  448. package/dist/defaults/src/assets/css/main.scss +32 -0
  449. package/dist/defaults/src/assets/images/.gitkeep +0 -0
  450. package/dist/defaults/src/assets/js/components/background/index.js +25 -0
  451. package/dist/defaults/src/assets/js/components/content/index.js +22 -0
  452. package/dist/defaults/src/assets/js/components/offscreen/index.js +25 -0
  453. package/dist/defaults/src/assets/js/components/options/index.js +22 -0
  454. package/dist/defaults/src/assets/js/components/pages/index.js +22 -0
  455. package/dist/defaults/src/assets/js/components/popup/index.js +22 -0
  456. package/dist/defaults/src/assets/js/components/sidepanel/index.js +20 -0
  457. package/dist/defaults/src/assets/vendor/.gitkeep +0 -0
  458. package/dist/defaults/src/manifest.json +131 -0
  459. package/dist/defaults/src/views/offscreen/index.html +3 -0
  460. package/dist/defaults/src/views/options/index.html +8 -0
  461. package/dist/defaults/src/views/pages/index.html +10 -0
  462. package/dist/defaults/src/views/popup/index.html +4 -0
  463. package/dist/defaults/src/views/sidepanel/index.html +4 -0
  464. package/dist/defaults/test/README.md +41 -0
  465. package/dist/defaults/test/_init.js +10 -0
  466. package/dist/defaults/test/boot/externally-connectable.test.js +28 -0
  467. package/dist/gulp/config/locales.js +12 -0
  468. package/dist/gulp/main.js +78 -0
  469. package/dist/gulp/tasks/_.js +18 -0
  470. package/dist/gulp/tasks/audit.js +222 -0
  471. package/dist/gulp/tasks/bundle.js +687 -0
  472. package/dist/gulp/tasks/defaults.js +281 -0
  473. package/dist/gulp/tasks/distribute.js +172 -0
  474. package/dist/gulp/tasks/fontawesome.js +25 -0
  475. package/dist/gulp/tasks/html.js +163 -0
  476. package/dist/gulp/tasks/icons.js +126 -0
  477. package/dist/gulp/tasks/package.js +742 -0
  478. package/dist/gulp/tasks/publish.js +417 -0
  479. package/dist/gulp/tasks/sass.js +252 -0
  480. package/dist/gulp/tasks/serve.js +103 -0
  481. package/dist/gulp/tasks/translate.js +252 -0
  482. package/dist/gulp/tasks/utils/build-json.js +43 -0
  483. package/dist/gulp/tasks/utils/template-transform.js +50 -0
  484. package/dist/gulp/templates/BUILD_INSTRUCTIONS.md +69 -0
  485. package/dist/index.js +46 -0
  486. package/dist/lib/affiliatizer.js +224 -0
  487. package/dist/lib/analytics.js +26 -0
  488. package/dist/lib/auth-helpers.js +213 -0
  489. package/dist/lib/extension.js +116 -0
  490. package/dist/lib/icons.js +36 -0
  491. package/dist/lib/logger-lite.js +35 -0
  492. package/dist/lib/logger.js +4 -0
  493. package/dist/lib/messaging.js +48 -0
  494. package/dist/lib/safe-install.js +4 -0
  495. package/dist/lib/theme.js +73 -0
  496. package/dist/lib/verts.js +68 -0
  497. package/dist/offscreen.js +31 -0
  498. package/dist/omega-bin.js +6 -0
  499. package/dist/options.js +80 -0
  500. package/dist/page.js +80 -0
  501. package/dist/popup.js +80 -0
  502. package/dist/sidepanel.js +80 -0
  503. package/dist/test/assert.js +4 -0
  504. package/dist/test/fixtures/consumer-extension/dist/background.js +23 -0
  505. package/dist/test/fixtures/consumer-extension/dist/manifest.json +20 -0
  506. package/dist/test/fixtures/consumer-extension/dist/options.html +10 -0
  507. package/dist/test/fixtures/consumer-extension/dist/popup.bundle.js +5 -0
  508. package/dist/test/fixtures/consumer-extension/dist/popup.html +12 -0
  509. package/dist/test/harness/extension/background.js +26 -0
  510. package/dist/test/harness/extension/manifest.json +27 -0
  511. package/dist/test/harness/extension/options.html +12 -0
  512. package/dist/test/harness/extension/popup.html +12 -0
  513. package/dist/test/harness/extension/sidepanel.html +12 -0
  514. package/dist/test/index.js +63 -0
  515. package/dist/test/runner.js +99 -0
  516. package/dist/test/runners/boot.js +221 -0
  517. package/dist/test/runners/chromium.js +391 -0
  518. package/dist/test/runners/helpers.js +24 -0
  519. package/dist/test/suites/background/messaging.test.js +44 -0
  520. package/dist/test/suites/background/storage.test.js +46 -0
  521. package/dist/test/suites/background/sw-context.test.js +49 -0
  522. package/dist/test/suites/boot/build-json-bake.test.js +80 -0
  523. package/dist/test/suites/boot/extension-loads.test.js +58 -0
  524. package/dist/test/suites/build/affiliatizer.test.js +64 -0
  525. package/dist/test/suites/build/app-launch.test.js +65 -0
  526. package/dist/test/suites/build/attach-log-file.test.js +99 -0
  527. package/dist/test/suites/build/auth-emulator-gate.test.js +118 -0
  528. package/dist/test/suites/build/auth-triggers.test.js +71 -0
  529. package/dist/test/suites/build/boot-discovery.test.js +134 -0
  530. package/dist/test/suites/build/boot-timeout.test.js +92 -0
  531. package/dist/test/suites/build/build-error-notification.test.js +122 -0
  532. package/dist/test/suites/build/build-json-bake.test.js +302 -0
  533. package/dist/test/suites/build/build-verb.test.js +138 -0
  534. package/dist/test/suites/build/bundle-targets.test.js +66 -0
  535. package/dist/test/suites/build/cache-warming.test.js +44 -0
  536. package/dist/test/suites/build/cli.test.js +150 -0
  537. package/dist/test/suites/build/default-boot-test.test.js +100 -0
  538. package/dist/test/suites/build/defaults-scaffold.test.js +287 -0
  539. package/dist/test/suites/build/deploy-dispatch.test.js +76 -0
  540. package/dist/test/suites/build/distribute-task.test.js +111 -0
  541. package/dist/test/suites/build/ensure-target.test.js +141 -0
  542. package/dist/test/suites/build/env-delivery.test.js +239 -0
  543. package/dist/test/suites/build/env-watch.test.js +86 -0
  544. package/dist/test/suites/build/expect.test.js +48 -0
  545. package/dist/test/suites/build/exports.test.js +53 -0
  546. package/dist/test/suites/build/extension-fallback.test.js +82 -0
  547. package/dist/test/suites/build/framework-deps.test.js +176 -0
  548. package/dist/test/suites/build/global-handlers.test.js +70 -0
  549. package/dist/test/suites/build/icon-sheet.test.js +74 -0
  550. package/dist/test/suites/build/logger-lite.test.js +61 -0
  551. package/dist/test/suites/build/manager.test.js +249 -0
  552. package/dist/test/suites/build/mode-helpers.test.js +136 -0
  553. package/dist/test/suites/build/omega-shell.test.js +103 -0
  554. package/dist/test/suites/build/omega-tokens.test.js +76 -0
  555. package/dist/test/suites/build/package-task.test.js +831 -0
  556. package/dist/test/suites/build/setup-scripts.test.js +172 -0
  557. package/dist/test/suites/build/strip-dev-blocks.test.js +122 -0
  558. package/dist/test/suites/build/template-replace.test.js +116 -0
  559. package/dist/test/suites/build/test-discovery.test.js +64 -0
  560. package/dist/test/suites/build/test-target-no-match.test.js +119 -0
  561. package/dist/test/suites/build/theme-resolve.test.js +115 -0
  562. package/dist/test/suites/build/translate.test.js +85 -0
  563. package/dist/test/suites/build/url-helpers.test.js +119 -0
  564. package/dist/test/suites/build/verb-logs.test.js +43 -0
  565. package/dist/test/suites/build/verts-binding.test.js +67 -0
  566. package/dist/test/suites/build/wakeup-ping.test.js +90 -0
  567. package/dist/test/suites/build/wave5-messenger.test.js +80 -0
  568. package/dist/test/suites/view/options-and-sidepanel.test.js +16 -0
  569. package/dist/test/suites/view/popup-context.test.js +53 -0
  570. package/dist/test/suites/view/sidepanel.test.js +16 -0
  571. package/dist/test/utils/extended-mode-warning.js +13 -0
  572. package/dist/utils/attach-log-file.js +4 -0
  573. package/dist/utils/mode-helpers.js +117 -0
  574. package/dist/utils/url-helpers.js +69 -0
  575. package/dist/vendor/account/engine.js +182 -0
  576. package/dist/vendor/account/features.js +220 -0
  577. package/dist/vendor/account/index.js +53 -0
  578. package/dist/vendor/account/schema.js +272 -0
  579. package/dist/vendor/account/subscription.js +38 -0
  580. package/dist/vendor/config/company.js +31 -0
  581. package/dist/vendor/config/defaults.js +173 -0
  582. package/dist/vendor/config/demo.js +18 -0
  583. package/dist/vendor/config/desktop-artifacts.js +110 -0
  584. package/dist/vendor/config/edit.js +769 -0
  585. package/dist/vendor/config/env-delivery.js +145 -0
  586. package/dist/vendor/config/env-rules.js +93 -0
  587. package/dist/vendor/config/env-schema.js +1078 -0
  588. package/dist/vendor/config/env.js +445 -0
  589. package/dist/vendor/config/hooks.js +97 -0
  590. package/dist/vendor/config/index.js +237 -0
  591. package/dist/vendor/config/instances.js +208 -0
  592. package/dist/vendor/config/load.js +490 -0
  593. package/dist/vendor/config/merge.js +68 -0
  594. package/dist/vendor/config/order.js +139 -0
  595. package/dist/vendor/config/ports.js +374 -0
  596. package/dist/vendor/config/providers.js +32 -0
  597. package/dist/vendor/config/repo.js +142 -0
  598. package/dist/vendor/config/retired-keys.js +430 -0
  599. package/dist/vendor/config/schema.js +1610 -0
  600. package/dist/vendor/config/secrets.js +50 -0
  601. package/dist/vendor/config/seed.js +34 -0
  602. package/dist/vendor/config/site-global.js +205 -0
  603. package/dist/vendor/config/validate.js +554 -0
  604. package/dist/vendor/config/winback.js +61 -0
  605. package/dist/vendor/devkit/actions-secrets.js +145 -0
  606. package/dist/vendor/devkit/attach-log-file.js +262 -0
  607. package/dist/vendor/devkit/bundle.js +292 -0
  608. package/dist/vendor/devkit/ci-workflows.js +520 -0
  609. package/dist/vendor/devkit/clean-dirs.js +28 -0
  610. package/dist/vendor/devkit/cli-router.js +156 -0
  611. package/dist/vendor/devkit/defaults-engine.js +372 -0
  612. package/dist/vendor/devkit/deploy-precheck.js +54 -0
  613. package/dist/vendor/devkit/deploy-record.js +180 -0
  614. package/dist/vendor/devkit/deploy.js +286 -0
  615. package/dist/vendor/devkit/empty-modules-plugin.js +64 -0
  616. package/dist/vendor/devkit/env-watch.js +132 -0
  617. package/dist/vendor/devkit/framework-deps.js +46 -0
  618. package/dist/vendor/devkit/icons.js +178 -0
  619. package/dist/vendor/devkit/license.js +155 -0
  620. package/dist/vendor/devkit/local.js +1905 -0
  621. package/dist/vendor/devkit/logger.js +128 -0
  622. package/dist/vendor/devkit/merge-line-files.js +296 -0
  623. package/dist/vendor/devkit/npm-registry.js +52 -0
  624. package/dist/vendor/devkit/omega-bin.js +345 -0
  625. package/dist/vendor/devkit/safe-install.js +18 -0
  626. package/dist/vendor/devkit/scaffold-guard.js +96 -0
  627. package/dist/vendor/devkit/strip-dev-blocks-plugin.js +29 -0
  628. package/dist/vendor/devkit/strip-dev-blocks.js +32 -0
  629. package/dist/vendor/devkit/target-dependencies.js +137 -0
  630. package/dist/vendor/devkit/target-secrets.js +165 -0
  631. package/dist/vendor/devkit/test/assert.js +120 -0
  632. package/dist/vendor/devkit/test/define-cases.js +104 -0
  633. package/dist/vendor/devkit/test/extended-mode-warning.js +22 -0
  634. package/dist/vendor/devkit/test/runner-core.js +554 -0
  635. package/dist/vendor/devkit/test/scope.js +162 -0
  636. package/dist/vendor/devkit/translate/cache.js +84 -0
  637. package/dist/vendor/devkit/translate/engine.js +243 -0
  638. package/dist/vendor/devkit/translate/index.js +49 -0
  639. package/dist/vendor/devkit/translate/languages.js +134 -0
  640. package/dist/vendor/devkit/translate/providers.js +188 -0
  641. package/dist/vendor/devkit/update.js +569 -0
  642. package/docs/affiliatizer.md +81 -0
  643. package/docs/audit.md +67 -0
  644. package/docs/auth.md +149 -0
  645. package/docs/build-system.md +176 -0
  646. package/docs/cdp-debugging.md +42 -0
  647. package/docs/cli.md +73 -0
  648. package/docs/common-mistakes.md +10 -0
  649. package/docs/components.md +87 -0
  650. package/docs/css.md +133 -0
  651. package/docs/defaults.md +72 -0
  652. package/docs/environment-detection.md +79 -0
  653. package/docs/extension.md +93 -0
  654. package/docs/hooks.md +111 -0
  655. package/docs/icons.md +47 -0
  656. package/docs/index.md +291 -0
  657. package/docs/logging.md +33 -0
  658. package/docs/managers.md +100 -0
  659. package/docs/offscreen.md +57 -0
  660. package/docs/publishing.md +182 -0
  661. package/docs/shared/agent-docs.md +89 -0
  662. package/docs/shared/analytics.md +612 -0
  663. package/docs/shared/brands.md +51 -0
  664. package/docs/shared/breaking-changes.md +497 -0
  665. package/docs/shared/config.md +1387 -0
  666. package/docs/shared/deploys.md +215 -0
  667. package/docs/shared/icons.md +201 -0
  668. package/docs/shared/local-dev.md +147 -0
  669. package/docs/shared/logging.md +202 -0
  670. package/docs/shared/monitoring.md +153 -0
  671. package/docs/shared/publishing.md +183 -0
  672. package/docs/shared/rulings.md +34 -0
  673. package/docs/shared/testing.md +147 -0
  674. package/docs/shared/theming.md +604 -0
  675. package/docs/shared/translation.md +291 -0
  676. package/docs/shared/updates.md +61 -0
  677. package/docs/templating.md +66 -0
  678. package/docs/test-boot-layer.md +143 -0
  679. package/docs/test-framework.md +411 -0
  680. package/docs/themes.md +89 -0
  681. package/docs/translations.md +73 -0
  682. package/docs/verts.md +67 -0
  683. package/docs/xss-prevention.md +95 -0
  684. package/package.json +159 -0
@@ -0,0 +1,66 @@
1
+ ---
2
+ layout: frontend/core/base
3
+
4
+ #### THEME CONFIG ####
5
+ # Page sections: extracted to _sections/marketing/* (hero, trusted-by, bento,
6
+ # product-demo, showcase, stats — each section.json5 owns the defaults;
7
+ # consumers override by owning the composition in their page BODY — page
8
+ # frontmatter is meta-only since 2026-07-19; directory data remains the
9
+ # site-wide lane — docs/web/omega-sections-spec.md).
10
+
11
+ # Testimonials + CTA — page copy stays HERE: marketing/testimonials and
12
+ # marketing/cta are SHARED bands (pricing/alternatives/about/team/... pass
13
+ # their own), so their json5 defaults stay neutral and every page owns its
14
+ # copy (spec §6 shared-band ruling).
15
+ testimonials:
16
+ superheadline: "Testimonials"
17
+ items:
18
+ - quote: "This platform <em>transformed</em> how we ship. We went from idea to production in a weekend."
19
+ author: "Sarah Johnson"
20
+ role: "CEO, TechStart Inc"
21
+ initial: "S"
22
+ - quote: "Best investment we've made. Everything just works, <em>together</em>."
23
+ author: "Michael Chen"
24
+ role: "Founder, DataFlow"
25
+ initial: "M"
26
+ - quote: "The kind of foundation you usually spend a year building. We got it on <em>day one</em>."
27
+ author: "Emily Davis"
28
+ role: "Director, Creative Studio"
29
+ initial: "E"
30
+
31
+ # CTA Section — the ink band
32
+ cta:
33
+ headline: "Ready to build something people remember?"
34
+ subheadline: "Join thousands of teams already shipping with {{ resolved.config.brand.name }}."
35
+ primary_button:
36
+ text: "Start free today"
37
+ href: "/signup"
38
+ config:
39
+ theme:
40
+ main:
41
+ class: "pt-0"
42
+ ---
43
+ {% composition %}
44
+ {% section "marketing/hero", data: resolved.hero %}
45
+ <!-- ═══ Trusted-by marquee ═══ -->
46
+ {% section "marketing/trusted-by", data: resolved.trusted_by %}
47
+ <!-- ═══ Bento ═══ -->
48
+ {% section "marketing/bento", data: resolved.bento %}
49
+ <!-- ═══ Plan cards (#493) — the catalog itself, right under the WHY band.
50
+ plans/annual bridge from resolved.pricing: ONE pricing source, and a
51
+ brand with no published catalog renders no band. ═══ -->
52
+ {% section "marketing/pricing-cards", data: resolved.pricing_cards, plans: resolved.pricing.plans, annual: resolved.pricing.billing.annually %}
53
+ <!-- ═══ Product demo (optional video tabs) ═══ -->
54
+ {% section "marketing/product-demo", data: resolved.product_demo %}
55
+ <!-- ═══ Showcase (optional alternating rows) ═══ -->
56
+ {% section "marketing/showcase", data: resolved.showcase %}
57
+ <!-- ═══ Stats band ═══ -->
58
+ {% section "marketing/stats", items: resolved.stats %}
59
+ <!-- ═══ Quote ═══ -->
60
+ {% iftruthy resolved.testimonials.items %}
61
+ {% section "marketing/testimonials", data: resolved.testimonials %}
62
+ {% endiftruthy %}
63
+
64
+ <!-- ═══ CTA band ═══ -->
65
+ {% section "marketing/cta", data: resolved.cta %}
66
+ {% endcomposition %}
@@ -0,0 +1,78 @@
1
+ ---
2
+ layout: frontend/core/base
3
+
4
+ # ═══ Legal document shell — reimagined 2026-07-16. One layout for the trio
5
+ # (terms/privacy/cookies): sober document header with the legal-hub switcher,
6
+ # a sticky "On this page" rail built from the document's h3 sections
7
+ # (core/js/pages/legal/document), and the text at a readable measure.
8
+
9
+ config:
10
+ theme:
11
+ nav:
12
+ enabled: true
13
+ footer:
14
+ enabled: true
15
+ ---
16
+
17
+ {% capture company %}{{ resolved.config.brand.company | default: resolved.config.brand.name }}{% endcapture %}
18
+
19
+ <!-- ═══ Document header ═══ -->
20
+ {% comment %} #467 (after #749): this masthead IS the page's first viewport, so
21
+ the band paints with the document — data-omega-first-paint on the section, no
22
+ stagger container, and the masthead cluster on its first_paint switch. The
23
+ document body below it never carried a reveal of its own. {% endcomment %}
24
+ <section class="omega-legal__head pb-4" data-omega-first-paint>
25
+ <div class="container">
26
+ {% component "heading/masthead", eyebrow: "Legal", headline: resolved.meta.breadcrumb, h1_class: "mb-2", sub: resolved.meta.description, sub_class: "omega-legal__sub omega-quiet", first_paint: true %}
27
+
28
+ <!-- The legal hub: every policy one hop away, current one marked -->
29
+ <nav class="omega-legal__hub" aria-label="Legal documents">
30
+ {% assign legal_docs = "Terms of Service|/terms,Privacy Policy|/privacy,Cookie Policy|/cookies" | split: "," %}
31
+ {% for doc in legal_docs %}
32
+ {% assign parts = doc | split: "|" %}
33
+ {% assign doc_name = parts[0] %}
34
+ {% assign doc_url = parts[1] %}
35
+ {% if page.url == doc_url %}
36
+ <span class="omega-chip omega-chip--ink" aria-current="page">{{ doc_name }}</span>
37
+ {% else %}
38
+ <a class="omega-chip" href="{{ doc_url }}">{{ doc_name }}</a>
39
+ {% endif %}
40
+ {% endfor %}
41
+ </nav>
42
+ </div>
43
+ </section>
44
+
45
+ <!-- ═══ Rail + document ═══ -->
46
+ <section class="pt-2">
47
+ <div class="container">
48
+ <div class="omega-legal">
49
+ <aside class="omega-legal__rail" aria-label="On this page">
50
+ <div class="omega-legal__rail-inner">
51
+ <span class="omega-micro d-block mb-3">On this page</span>
52
+ <nav class="omega-legal__toc" data-legal-toc>
53
+ <!-- Built by the page JS from the document's section headings -->
54
+ </nav>
55
+
56
+ <div class="omega-legal__rail-foot">
57
+ {% iftruthy resolved.config.brand.contact.email %}
58
+ <a class="omega-legal__rail-link" href="mailto:{{ resolved.config.brand.contact.email }}">
59
+ <i class="fa-solid fa-envelope fa-xs me-2"></i>Questions? Email us
60
+ </a>
61
+ {% endiftruthy %}
62
+ <button type="button" class="omega-legal__rail-link" data-legal-print>
63
+ <i class="fa-solid fa-print fa-xs me-2"></i>Print this page
64
+ </button>
65
+ </div>
66
+ </div>
67
+ </aside>
68
+
69
+ <article class="omega-legal__doc omega-prose" data-legal-doc>
70
+ {{ content | omega_content_format }}
71
+
72
+ <footer class="omega-legal__doc-foot omega-quiet small">
73
+ © {{ site.omega.date.year }} {{ company }}. This document governs {{ resolved.config.brand.name }}.
74
+ </footer>
75
+ </article>
76
+ </div>
77
+ </div>
78
+ </section>
@@ -0,0 +1,459 @@
1
+ ---
2
+ layout: frontend/core/cover
3
+
4
+ # ═══ Checkout — the classy redesign (round 18). The commitment moment now
5
+ # sits on real surfaces: the left column as two hairline PANELS (plan,
6
+ # account) each led by an icon chip, then the pay zone BARE beneath them, and
7
+ # the order summary as a receipt CARD on the right (product identity,
8
+ # discount, then the money rows in the shared receipt vocabulary). Reveals
9
+ # stagger the zones in; every color is a token, both modes.
10
+ # The pay buttons live OUTSIDE any card and under NO head, both viewports
11
+ # (Ian 2026-08-19, #374): the commitment moment is the one zone with no chrome
12
+ # around it, and a "Payment" label over a Credit/Debit button and a PayPal mark
13
+ # names nothing the buttons do not already say. The trust chips AND the help
14
+ # line ride the buttons' own capture, centered right under the terms line — the
15
+ # page foot below the form is empty.
16
+ # The HEADER is one brand lockup and nothing else (#373): the brandmark and
17
+ # the brand name on one line, left, linking home, and it is the page's h1.
18
+ # A checkout page is got THROUGH, not read — an eyebrow, a serif display
19
+ # title and a second copy of the mark were three voices for a page that
20
+ # needs one. It reads its brand facts from config; never type them here.
21
+ # The mobile one-screen contract (cp179) is DELIBERATE and stays (Ian
22
+ # 2026-08-19, #370): EVERY card collapses to a one-line row showing the value
23
+ # it hides, so the pay buttons sit above the fold. Billing cycle and Account
24
+ # start closed; the Order summary starts OPEN, and its folded row carries the
25
+ # total due today (the old "never fold the numbers" note is retired). What the
26
+ # phone must NOT have is its own vocabulary — the rows are labeled with
27
+ # desktop's words ("Billing cycle", "Account", "Order summary"), and the pay
28
+ # buttons are one width and one height on every viewport.
29
+ # Every payment-engine hook is preserved verbatim: #checkout-form,
30
+ # name="frequency" radios, data-payment-method/data-action buttons,
31
+ # #discount-code, #apply-discount, #switch-account, #checkout-help-button,
32
+ # #subscription-toggle, the dev panel ids, and all data-omega-bind expressions.
33
+
34
+ config:
35
+ theme:
36
+ main:
37
+ align: "start"
38
+ client:
39
+ auth:
40
+ config:
41
+ policy: "authenticated"
42
+ consent:
43
+ enabled: false
44
+ ---
45
+
46
+ <!-- The pay buttons captured once and rendered by both column positions (the
47
+ phone puts payment after the summary), so neither viewport carries its own
48
+ copy of this markup — and both stack them the same way: one full-width
49
+ column, one height per button (#370). The capture is the WHOLE commitment
50
+ block (#374): buttons, terms, trust chips, help line — every one of them
51
+ centered, so the assurance always sits directly under the buttons and the
52
+ two viewports can never drift apart. -->
53
+ {% capture payment_buttons_content %}
54
+ <!-- Credit/Debit Card Button -->
55
+ <button type="submit" class="btn btn-adaptive payment-button d-flex align-items-center justify-content-center"
56
+ data-payment-method="card"
57
+ data-action="pay-card"
58
+ data-omega-bind="@show checkout.paymentMethods.card"
59
+ hidden>
60
+ <i class="fa-solid fa-credit-card me-2 fa-lg"></i>
61
+ <span class="fw-semibold">Credit/Debit</span>
62
+ </button>
63
+
64
+ <!-- PayPal Button -->
65
+ <button type="submit" class="btn btn-paypal payment-button d-flex align-items-center justify-content-center"
66
+ data-payment-method="paypal"
67
+ data-action="pay-paypal"
68
+ data-omega-bind="@show checkout.paymentMethods.paypal"
69
+ hidden>
70
+ <img src="https://www.paypalobjects.com/webstatic/mktg/Logo/pp-logo-200px.png"
71
+ alt="PayPal"
72
+ height="24"
73
+ style="max-height: 24px;">
74
+ </button>
75
+
76
+ <!-- Apple Pay Button -->
77
+ <button type="submit" class="btn payment-button payment-button--apple d-flex align-items-center justify-content-center"
78
+ data-payment-method="apple-pay"
79
+ data-action="pay-apple-pay"
80
+ data-omega-bind="@show checkout.paymentMethods.applePay"
81
+ hidden>
82
+ <i class="fa-brands fa-apple me-2 fa-lg"></i>
83
+ <span class="fw-semibold">Apple Pay</span>
84
+ </button>
85
+
86
+ <!-- Google Pay Button -->
87
+ <button type="submit" class="btn payment-button payment-button--gpay d-flex align-items-center justify-content-center"
88
+ data-payment-method="google-pay"
89
+ data-action="pay-google-pay"
90
+ data-omega-bind="@show checkout.paymentMethods.googlePay"
91
+ hidden>
92
+ <img src="https://www.gstatic.com/instantbuy/svg/dark_gpay.svg"
93
+ alt="Google Pay"
94
+ height="22"
95
+ class="me-2">
96
+ <span class="fw-semibold">Google Pay</span>
97
+ </button>
98
+
99
+ <!-- Crypto Button — Coinbase Commerce (#642). One-time purchases only, so it
100
+ shows on the crypto provider's own switch and never on a subscription. -->
101
+ <button type="submit" class="btn btn-outline-adaptive payment-button d-flex align-items-center justify-content-center"
102
+ data-payment-method="crypto"
103
+ data-action="pay-crypto"
104
+ data-omega-bind="@show checkout.paymentMethods.crypto"
105
+ hidden>
106
+ <i class="fa-brands fa-bitcoin me-2 fa-lg"></i>
107
+ <span class="fw-semibold">Crypto</span>
108
+ </button>
109
+
110
+ <p class="omega-checkout__terms small mb-0">
111
+ By purchasing, you agree to our <a href="/terms" target="_blank">Terms of Service</a> and <a href="/privacy" target="_blank">Privacy Policy</a>.
112
+ </p>
113
+
114
+ <!-- Trust chips — centered inside the pay stack, right under the terms line,
115
+ both viewports (Ian 2026-08-19, #374): at the page foot they were a
116
+ footnote two zones away from the thing they reassure. The refund chip
117
+ rides the brand's `pricing.guarantee` gate (#273); the other two state
118
+ facts the framework owns. No "Encrypted" chip joins them — "SSL
119
+ encrypted" already says it, with the same lock. The gap above is the
120
+ sheet's, not a utility: one home for the pay stack's rhythm. -->
121
+ <div class="omega-checkout__trust">
122
+ <span><i class="fa-solid fa-lock fa-xs"></i> SSL encrypted</span>
123
+ {% iftruthy resolved.pricing.guarantee %}
124
+ <span><i class="fa-solid fa-shield-halved fa-xs"></i> Money-back guarantee</span>
125
+ {% endiftruthy %}
126
+ <span><i class="fa-solid fa-handshake fa-xs"></i> Secure payments</span>
127
+ </div>
128
+
129
+ <!-- Help — the stack's last line, in the stack (Ian 2026-08-19, #374): the
130
+ one line a stalled buyer reaches for belongs where the stall happens, not
131
+ at a page foot below the form. Its rhythm is the sheet's too, so the
132
+ capture carries no utility margins to drift between viewports. -->
133
+ <div class="omega-checkout__help">
134
+ <a href="javascript:;" class="omega-checkout__quiet-link small" id="checkout-help-button">
135
+ <i class="fa-solid fa-circle-question fa-sm me-1"></i> Need help? Chat with us.
136
+ </a>
137
+ </div>
138
+ {% endcapture %}
139
+
140
+ <!-- Error Message Container (hidden by default, shown via bindings) -->
141
+ <div id="checkout-error-container" class="col-12" data-omega-bind="@show checkout.error.show" hidden>
142
+ <div class="row justify-content-center">
143
+ <div class="col-12 col-md-8 col-lg-6 col-xl-5">
144
+ <div class="omega-form-panel text-center" role="alert">
145
+ <span class="omega-icon-chip omega-icon-chip--neutral omega-icon-chip--lg omega-checkout__error-glyph mb-3">
146
+ <i class="fa-solid fa-triangle-exclamation fa-md"></i>
147
+ </span>
148
+ <h1 class="omega-display omega-display--section mb-2">Something went <em>wrong</em></h1>
149
+ <p class="omega-quiet mb-4" data-omega-bind="@text checkout.error.message"></p>
150
+ <button class="btn btn-adaptive omega-hover-nudge" onclick="window.location.reload()">
151
+ <i class="fa-solid fa-rotate-right fa-sm me-2"></i>
152
+ Try again
153
+ </button>
154
+ </div>
155
+ </div>
156
+ </div>
157
+ </div>
158
+
159
+ <!-- Checkout Section (visible by default, hidden only when error is shown) -->
160
+ <section id="checkout-content" class="col-12 col-xl-10 omega-checkout" data-omega-bind="@hide checkout.error.show">
161
+ <!-- Header: ONE brand lockup, left, and nothing else (#373 — Shopify's
162
+ checkout leads with the store's mark). It is the page's h1, so it links
163
+ home and reads its facts from config; the right of the row stays empty.
164
+ Cover pages carry no nav, which is why the mark lives here at all. -->
165
+ <header class="omega-checkout__head" data-omega-reveal="fade">
166
+ <h1 class="omega-checkout__head-mark mb-0">
167
+ <a href="/" class="omega-checkout__brand">
168
+ {% comment %} #467: the VISIBLE lockup prefers the bridged vector when the mint produced one — `brand.images.brandmark` stays the raster OG/social and payment sync need. {% endcomment %}
169
+ <img src="{{ assetManifest.brandmarkSvg | default: resolved.config.brand.images.brandmark | omega_cachebreak }}" class="filter-adaptive" alt="{{ resolved.config.brand.name }} logo" width="24" height="24">
170
+ <span class="fw-semibold">{{ resolved.config.brand.name }}</span>
171
+ </a>
172
+ </h1>
173
+ </header>
174
+
175
+ <!-- Main Checkout Form -->
176
+ <form id="checkout-form" autocomplete="on" novalidate data-form-state="initializing" onsubmit="return false">
177
+ <div class="row g-3 g-lg-4" data-omega-reveal-stagger="70">
178
+ <!-- Zone 1: what you're buying and who's buying it -->
179
+ <div class="col-12 col-lg-7 order-1">
180
+ <!-- Plan panel (subscriptions only) -->
181
+ <div class="omega-checkout__panel" data-omega-reveal data-omega-bind="@show checkout.product.isSubscription">
182
+ <!-- Mobile: collapsed one-line row showing the current selection. The
183
+ row IS the panel's title on phones, so it is labeled with the
184
+ word desktop uses — "Billing cycle", never a phone-only "Plan"
185
+ (#370): one vocabulary, both viewports. -->
186
+ <button class="omega-checkout__rowtoggle d-lg-none collapsed" type="button"
187
+ data-bs-toggle="collapse" data-bs-target="#collapse-billing" aria-expanded="false">
188
+ <span class="omega-micro">Billing cycle</span>
189
+ <span class="omega-checkout__rowtoggle-value omega-binding-skeleton" data-omega-bind="@show checkout">
190
+ <span data-omega-bind="@text checkout.product.name">--</span> &middot; <span data-omega-bind="@text checkout.pricing.frequencyPaymentText">$--</span>
191
+ </span>
192
+ <i class="fa-solid fa-chevron-down fa-xs omega-checkout__rowtoggle-chev"></i>
193
+ </button>
194
+
195
+ <div id="collapse-billing" class="collapse d-lg-block">
196
+ <div class="omega-panel-head omega-checkout__panel-head">
197
+ <h2 class="omega-checkout__panel-title d-none d-lg-flex mb-0">
198
+ <span class="omega-icon-chip omega-icon-chip--neutral"><i class="fa-solid fa-calendar-days fa-sm"></i></span>
199
+ Billing cycle
200
+ </h2>
201
+ <a href="/pricing" class="omega-checkout__quiet-link small ms-auto">
202
+ <i class="fa-solid fa-arrow-left fa-xs me-1"></i>Change plan
203
+ </a>
204
+ </div>
205
+
206
+ <!-- Subscription Toggle (shown for subscriptions only) -->
207
+ <div id="subscription-toggle">
208
+ <div class="row g-3">
209
+ <div class="col-6" data-omega-bind="@show checkout.frequencies.annually" hidden>
210
+ <div class="omega-binding-skeleton h-100" data-omega-bind="@show checkout.frequencies.annually">
211
+ <input type="radio" class="btn-check" name="frequency" id="annually" value="annually">
212
+ <label class="omega-checkout__tile" for="annually">
213
+ <span class="omega-checkout__tile-head">
214
+ <span class="omega-checkout__tile-radio" aria-hidden="true"></span>
215
+ <span class="omega-checkout__tile-name">Annual</span>
216
+ <span class="omega-chip omega-chip--accent ms-auto"
217
+ data-omega-bind="@text checkout.pricing.savingsBadge, @show checkout.pricing.showSavingsBadge"
218
+ hidden>Save --</span>
219
+ </span>
220
+ <span class="omega-checkout__tile-price omega-binding-skeleton" data-omega-bind="@show checkout">
221
+ <span data-omega-bind="@text checkout.pricing.annualMonthlyRate">$--</span><span class="omega-checkout__tile-per">/mo</span>
222
+ </span>
223
+ </label>
224
+ </div>
225
+ </div>
226
+ <div class="col-6" data-omega-bind="@show checkout.frequencies.monthly" hidden>
227
+ <div class="omega-binding-skeleton h-100" data-omega-bind="@show checkout.frequencies.monthly">
228
+ <input type="radio" class="btn-check" name="frequency" id="monthly" value="monthly">
229
+ <label class="omega-checkout__tile" for="monthly">
230
+ <span class="omega-checkout__tile-head">
231
+ <span class="omega-checkout__tile-radio" aria-hidden="true"></span>
232
+ <span class="omega-checkout__tile-name">Monthly</span>
233
+ </span>
234
+ <span class="omega-checkout__tile-price omega-binding-skeleton" data-omega-bind="@show checkout">
235
+ <span data-omega-bind="@text checkout.pricing.monthlyPrice">$--</span><span class="omega-checkout__tile-per">/mo</span>
236
+ </span>
237
+ </label>
238
+ </div>
239
+ </div>
240
+ <div class="col-6" data-omega-bind="@show checkout.frequencies.weekly" hidden>
241
+ <div class="omega-binding-skeleton h-100" data-omega-bind="@show checkout.frequencies.weekly">
242
+ <input type="radio" class="btn-check" name="frequency" id="weekly" value="weekly">
243
+ <label class="omega-checkout__tile" for="weekly">
244
+ <span class="omega-checkout__tile-head">
245
+ <span class="omega-checkout__tile-radio" aria-hidden="true"></span>
246
+ <span class="omega-checkout__tile-name">Weekly</span>
247
+ </span>
248
+ <span class="omega-checkout__tile-price omega-binding-skeleton" data-omega-bind="@show checkout">
249
+ <span data-omega-bind="@text checkout.pricing.weeklyPrice">$--</span><span class="omega-checkout__tile-per">/wk</span>
250
+ </span>
251
+ </label>
252
+ </div>
253
+ </div>
254
+ <div class="col-6" data-omega-bind="@show checkout.frequencies.daily" hidden>
255
+ <div class="omega-binding-skeleton h-100" data-omega-bind="@show checkout.frequencies.daily">
256
+ <input type="radio" class="btn-check" name="frequency" id="daily" value="daily">
257
+ <label class="omega-checkout__tile" for="daily">
258
+ <span class="omega-checkout__tile-head">
259
+ <span class="omega-checkout__tile-radio" aria-hidden="true"></span>
260
+ <span class="omega-checkout__tile-name">Daily</span>
261
+ </span>
262
+ <span class="omega-checkout__tile-price omega-binding-skeleton" data-omega-bind="@show checkout">
263
+ <span data-omega-bind="@text checkout.pricing.dailyPrice">$--</span><span class="omega-checkout__tile-per">/day</span>
264
+ </span>
265
+ </label>
266
+ </div>
267
+ </div>
268
+ </div>
269
+
270
+ <!-- Payment cadence under the tiles — centered under the pair -->
271
+ <div class="small omega-checkout__cadence text-center mt-2 omega-binding-skeleton" data-omega-bind="@show checkout.product.isSubscription">
272
+ Billed <span data-omega-bind="@text checkout.pricing.frequencyPaymentText">$-- monthly</span>
273
+ </div>
274
+
275
+ <!-- The trial spot (#637). Which of the two notes below belongs
276
+ here is a question only the server can answer, so the spot
277
+ holds a SKELETON until it does and then renders once — never
278
+ the guarantee flipping into the trial line a moment later.
279
+ The placeholder is what is up first, and the `order` root
280
+ landing is what takes it away. -->
281
+ <div class="omega-checkout__note mt-3 omega-binding-skeleton"
282
+ data-omega-bind="@hide order">
283
+ <span class="omega-icon-chip omega-icon-chip--neutral"><i class="fa-solid fa-gift fa-sm"></i></span>
284
+ <span>Checking your plan</span>
285
+ </div>
286
+
287
+ <!-- Subscription note — the BRAND's guarantee copy (#273: a
288
+ refund window is a policy the framework cannot know), shown
289
+ when no trial replaces it. No stated guarantee, no note. -->
290
+ {% iftruthy resolved.pricing.guarantee %}
291
+ <div class="omega-checkout__note mt-3"
292
+ data-omega-bind="@show !order.trial.show"
293
+ hidden>
294
+ <span class="omega-icon-chip omega-icon-chip--neutral"><i class="fa-solid fa-shield-halved fa-sm"></i></span>
295
+ <span>{{ resolved.pricing.guarantee }}</span>
296
+ </div>
297
+ {% endiftruthy %}
298
+
299
+ <!-- Free Trial Note -->
300
+ <div class="omega-checkout__note omega-checkout__note--ok mt-3"
301
+ data-omega-bind="@show order.trial.show"
302
+ hidden>
303
+ <span class="omega-icon-chip omega-icon-chip--neutral"><i class="fa-solid fa-gift fa-sm"></i></span>
304
+ <span data-omega-bind="@text order.trial.message"></span>
305
+ </div>
306
+ </div>
307
+ </div>
308
+ </div>
309
+
310
+ <!-- Account panel -->
311
+ <div class="omega-checkout__panel" data-omega-reveal>
312
+ <!-- Mobile: collapsed one-line row showing the signed-in email -->
313
+ <button class="omega-checkout__rowtoggle d-lg-none collapsed" type="button"
314
+ data-bs-toggle="collapse" data-bs-target="#collapse-account" aria-expanded="false">
315
+ <span class="omega-micro">Account</span>
316
+ <span class="omega-checkout__rowtoggle-value omega-binding-skeleton" data-omega-bind="@text auth.user.email">&nbsp;</span>
317
+ <i class="fa-solid fa-chevron-down fa-xs omega-checkout__rowtoggle-chev"></i>
318
+ </button>
319
+
320
+ <div id="collapse-account" class="collapse d-lg-block">
321
+ <!-- The expanded content is ONE block: the head is desktop's title
322
+ row, and on phones (where that title is the row above) the CSS
323
+ orders the switch link under the "Paying as" line rather than
324
+ leaving it floating alone over a gap (#370). -->
325
+ <div class="omega-checkout__account-block">
326
+ <div class="omega-panel-head omega-checkout__panel-head">
327
+ <h2 class="omega-checkout__panel-title d-none d-lg-flex mb-0">
328
+ <span class="omega-icon-chip omega-icon-chip--neutral"><i class="fa-solid fa-user fa-sm"></i></span>
329
+ Account
330
+ </h2>
331
+ <a href="#" id="switch-account" class="omega-checkout__quiet-link small">Switch account</a>
332
+ </div>
333
+ <p class="mb-0 omega-binding-skeleton omega-checkout__account" data-omega-bind="@show checkout">
334
+ Paying as <strong data-omega-bind="@text auth.user.email">loading@example.com</strong>
335
+ </p>
336
+ </div>
337
+ </div>
338
+ </div>
339
+
340
+ <!-- Pay zone (desktop only — the phone's copy sits after the summary).
341
+ NOT a card and NOT headed (#374): the buttons sit in open space
342
+ with nothing labeling them, on this viewport exactly like the
343
+ phone's. The reveal rides this wrapper, so the whole stack inside
344
+ it — buttons, terms, chips, help — animates in as one zone (#326). -->
345
+ <div class="omega-checkout__pay d-none d-lg-block" data-omega-reveal>
346
+ <div class="d-grid gap-2 omega-binding-skeleton" data-omega-bind="@show checkout.paymentMethods">
347
+ {{ payment_buttons_content }}
348
+ </div>
349
+ </div>
350
+ </div>
351
+
352
+ <!-- Zone 2: Order summary — the receipt the confirmation page hands back -->
353
+ <div class="col-12 col-lg-5 order-2">
354
+ <div class="omega-checkout__sticky">
355
+ <div class="omega-checkout__summary" data-omega-reveal>
356
+ <!-- Mobile: the summary folds like the two rows above it (#370 —
357
+ parity across all cards), with one difference: it starts OPEN,
358
+ so the numbers are still what the phone lands on. Folded, the
359
+ row keeps the total due today on screen. -->
360
+ <button class="omega-checkout__rowtoggle d-lg-none" type="button"
361
+ data-bs-toggle="collapse" data-bs-target="#collapse-summary" aria-expanded="true">
362
+ <span class="omega-micro">Order summary</span>
363
+ <span class="omega-checkout__rowtoggle-value omega-binding-skeleton" data-omega-bind="@text order.total">$--</span>
364
+ <i class="fa-solid fa-chevron-down fa-xs omega-checkout__rowtoggle-chev"></i>
365
+ </button>
366
+
367
+ <div id="collapse-summary" class="collapse show d-lg-block">
368
+ <div class="omega-panel-head omega-checkout__panel-head d-none d-lg-flex">
369
+ <h2 class="omega-checkout__panel-title mb-0">
370
+ <span class="omega-icon-chip omega-icon-chip--neutral"><i class="fa-solid fa-receipt fa-sm"></i></span>
371
+ Order summary
372
+ </h2>
373
+ </div>
374
+
375
+ <!-- Product identity: what you get, on what cadence -->
376
+ <div class="omega-checkout__product omega-binding-skeleton" data-omega-bind="@show checkout">
377
+ <span class="omega-checkout__product-name">{{ resolved.config.brand.name }} <span data-omega-bind="@text checkout.product.name">Loading...</span></span>
378
+ <span class="omega-quiet small" data-omega-bind="@text checkout.pricing.frequencyPaymentText">$--</span>
379
+ </div>
380
+
381
+ <!-- Discount Code -->
382
+ <div class="omega-checkout__discount-zone omega-binding-skeleton" data-omega-bind="@show checkout">
383
+ <!-- The label sits OUTSIDE the input-group on purpose: Bootstrap
384
+ rounds a group by child position, so a label as first child
385
+ made the input `:not(:first-child)` and squared its left
386
+ corners (and pulled it -1px left). It keeps the group's show
387
+ binding so the two still appear and hide together. -->
388
+ <label for="discount-code" class="visually-hidden" data-omega-bind="@show checkout" hidden>Discount code</label>
389
+ <div class="input-group omega-checkout__discount" data-omega-bind="@show checkout" hidden>
390
+ <input type="text" class="form-control" id="discount-code" name="discount" placeholder="Discount code" autocomplete="off">
391
+ <button class="btn btn-outline-adaptive px-3" type="button" id="apply-discount" data-action="apply-discount">Apply</button>
392
+ </div>
393
+
394
+ <!-- Discount Messages -->
395
+ <div class="mt-2 omega-quiet small" data-omega-bind="@show checkout.discount.loading" hidden>
396
+ <i class="fa-solid fa-clock me-1"></i> Checking code...
397
+ </div>
398
+ <div class="mt-2 omega-checkout__row-ok small" data-omega-bind="@show checkout.discount.success" hidden>
399
+ <i class="fa-solid fa-check-circle me-1"></i> <span data-omega-bind="@text checkout.discount.successMessage">Discount applied</span>
400
+ </div>
401
+ <div class="mt-2 omega-checkout__row-bad small" data-omega-bind="@show checkout.discount.error" hidden>
402
+ <i class="fa-solid fa-times-circle me-1"></i> <span data-omega-bind="@text checkout.discount.errorMessage">Invalid discount code</span>
403
+ </div>
404
+ </div>
405
+
406
+ <!-- Price detail — the folded row states the total, so opening the
407
+ summary is what reveals subtotal, discount and trial credit -->
408
+ <div class="omega-receipt__panel">
409
+ <div class="omega-receipt__row omega-binding-skeleton" data-omega-bind="@show checkout">
410
+ <span class="omega-micro">Subtotal</span>
411
+ <span data-omega-bind="@text checkout.pricing.subtotal">$--</span>
412
+ </div>
413
+
414
+ <div class="omega-receipt__row omega-checkout__row-ok"
415
+ data-omega-bind="@show checkout.discount.hasDiscount"
416
+ hidden>
417
+ <span class="omega-micro">Discount (<span data-omega-bind="@text checkout.discount.label"></span>)</span>
418
+ <span>-$<span data-omega-bind="@text checkout.discount.amount"></span></span>
419
+ </div>
420
+
421
+ <div class="omega-receipt__row omega-checkout__row-ok"
422
+ data-omega-bind="@show order.trial.hasFreeTrial"
423
+ hidden>
424
+ <span class="omega-micro">Free trial</span>
425
+ <span>-$<span data-omega-bind="@text order.trial.discountAmount"></span></span>
426
+ </div>
427
+
428
+ <div class="omega-receipt__row omega-receipt__row--total omega-binding-skeleton" data-omega-bind="@show order">
429
+ <span class="omega-micro">Total due today</span>
430
+ <span class="omega-receipt__total" data-omega-bind="@text order.total">$--</span>
431
+ </div>
432
+ </div>
433
+
434
+ <!-- Subscription Terms -->
435
+ <p class="omega-checkout__fineprint small mb-0"
436
+ data-omega-bind="@show order.showTerms"
437
+ hidden>
438
+ <span data-omega-bind="@text order.termsText"></span>
439
+ </p>
440
+ </div>
441
+ </div>
442
+ </div>
443
+ </div>
444
+
445
+ <!-- Zone 3: Payment (mobile only — headless and out of any card, exactly
446
+ like desktop's (#374), and the SAME full-width stack desktop
447
+ renders: one width, one height, every button) -->
448
+ <div class="col-12 order-3 d-lg-none">
449
+ <div class="omega-checkout__pay">
450
+ <div class="d-grid gap-2 omega-binding-skeleton" data-omega-bind="@show checkout.paymentMethods">
451
+ {{ payment_buttons_content }}
452
+ </div>
453
+ </div>
454
+ </div>
455
+ </div>
456
+ </form>
457
+ </section>
458
+
459
+ {{ content | omega_content_format }}