@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,115 @@
1
+ # Theme Template
2
+
3
+ A minimal, copy-paste starting point for a **brand-new @omega.js/web theme** —
4
+ whether you're adding one inside this package (`themes/<id>/`) or creating one
5
+ in your own consumer project (`src/themes/<id>/`, under the Eleventy INPUT dir
6
+ — the consumer-local copy beats the packaged one with the same id). A copy
7
+ works as-is in either place; "Consumer themes" below has the one caveat and
8
+ the lighter alternative.
9
+
10
+ > The design-system contract (tokens, motion, brand ramps, the classy
11
+ > vocabulary): [`docs/shared/theming.md`](../../../../docs/shared/theming.md).
12
+
13
+ ## Create a theme from this template
14
+
15
+ 1. **Copy this folder** to your theme id (the `_` prefix excludes this template
16
+ from selection, so rename it):
17
+ - Inside the package: `themes/my-theme/`
18
+ - In a consumer: `src/themes/my-theme/`
19
+ 2. **Select it** in `omega.json5`:
20
+ ```json5
21
+ theme: {
22
+ id: "my-theme",
23
+ }
24
+ ```
25
+ 3. **Customize** `_config.scss` (tokens), `css/` (styles), and `_theme.js`
26
+ (behaviors). Restyle Bootstrap's own classes (`.btn`, `.card`, `.navbar`,
27
+ `.form-control`) so the shared layouts pick up your look with no HTML edits.
28
+ 4. **Layouts, includes, and section JSON are inherited automatically — zero
29
+ copies.** The engine resolves every file through a layered union
30
+ (consumer → your theme → classy → core), so all ~40 page layouts render
31
+ without you owning a single one. Override a layout only when its *markup*
32
+ (not just CSS) must differ — create the same path inside your theme
33
+ (`<your-theme>/_layouts/frontend/pages/<page>.html`) and yours wins.
34
+
35
+ ## The CSS boundary (read this before shipping a partial theme)
36
+
37
+ Unlike layouts/includes, the MAIN stylesheet does **not** fall through:
38
+ exactly one `_theme.scss` loads — yours. The shared layouts you inherit emit
39
+ classy's `omega-*` content vocabulary (nav, footer, marketing sections,
40
+ auth/form panels — see `docs/shared/theming.md`), so a theme that doesn't restyle
41
+ that vocabulary renders those pages structurally intact but unstyled beyond
42
+ Bootstrap + core tokens/shell/motion. Budget for it: restyle the vocabulary
43
+ namespaces you keep, or override the layouts whose markup you replace.
44
+
45
+ ## Consumer themes: sibling resolution, and the lighter partial route
46
+
47
+ This template is a **full sibling theme** — its `_config.scss` forwards
48
+ `../bootstrap/scss/bootstrap.scss` (its own Bootstrap) and its `_theme.scss`
49
+ imports classy's token-pure floor partials and `../bootstrap/overrides`. Copied
50
+ verbatim into `src/themes/my-theme/`, **it compiles**. A relative `@use`/
51
+ `@import` is tried against the importing file first — `src/themes/bootstrap/`,
52
+ `src/themes/classy/`, which don't exist — and then against the build's sass
53
+ `loadPaths`, which include every LAYER root. The last theme layer is always
54
+ `themes/base`, base normally resolves to the PACKAGED one, and packaged base
55
+ sits *inside* the packaged themes root — so `themes/base/../bootstrap/…` and
56
+ `themes/base/../classy/…` land on the real files. Your copy builds with its own
57
+ Bootstrap, the classy floor, and your own rules last.
58
+
59
+ **The one thing that breaks it: shipping your own `src/themes/base/`.** The
60
+ theme chain resolves consumer-local-first for *every* id, base included — so
61
+ your base shadows the packaged one, the packaged themes root drops out of the
62
+ loadPaths, and every `../bootstrap/…` / `../classy/…` import fails the build
63
+ ("Can't find stylesheet to import"). Own the base layer only if nothing in
64
+ your theme reaches a packaged sibling through `../`.
65
+
66
+ The **partial theme** is the smaller route, and the one to prefer unless you
67
+ genuinely need your own Bootstrap config: it rides the packaged chain through
68
+ the inheritance hatch instead of shipping a second Bootstrap. After copying,
69
+ make it one —
70
+
71
+ 1. Put the hatch on the FIRST line of `_theme.scss`, and pass your tokens
72
+ through it (`themes/classy/_config.scss` names every `!default` knob):
73
+ ```scss
74
+ @forward 'omega:theme' with ($primary: #d6336c, $border-radius: .75rem);
75
+ ```
76
+ 2. Drop the `@forward '../bootstrap/scss/bootstrap.scss' with (…)` clause from
77
+ `_config.scss` (keep the file for your own sass variables), and drop the
78
+ `../classy/*` and `../bootstrap/overrides` imports from `_theme.scss` — the
79
+ hatch emits that whole configured chain, and your rules land after it so
80
+ they win the cascade.
81
+ 3. Drop `@forward 'config';` from `_theme.scss` too — keep the
82
+ `@use 'config' as *;` beneath it. The hatch already re-exports `$primary`,
83
+ `$font-family-sans-serif` and friends; re-forwarding your own `!default`
84
+ copies of those names is the
85
+ sass error *"Two forwarded modules both define a variable named $primary"*.
86
+ `_config.scss` stays a plain sass-variable module for your own partials
87
+ (`_root.scss` reads it); anything you want **Bootstrap** to see goes in the
88
+ hatch's `with (…)` clause instead.
89
+
90
+ Both lanes, and which one a theme is on: `docs/shared/theming.md`
91
+ § "CSS fall-through — the two lanes".
92
+
93
+ ## What's here
94
+
95
+ ```
96
+ _template/
97
+ ├── _config.scss ← design tokens (!default) + Bootstrap forward
98
+ ├── _theme.scss ← SCSS entry (config → root → styles → bootstrap overrides)
99
+ ├── _theme.js ← JS entry (Bootstrap UMD + DOM-ready behaviors)
100
+ ├── README.md ← this file
101
+ └── css/
102
+ ├── base/_root.scss ← SCSS → CSS-variable bridge (light/dark)
103
+ └── components/_components.scss ← restyle Bootstrap classes here
104
+ ```
105
+
106
+ ## Principles (the contract lives in docs/shared/theming.md)
107
+
108
+ - **Tokens are `!default`** so consumers can override without forking your theme.
109
+ - **Bridge to CSS variables** in `_root.scss` — the `--omega-*` token names are
110
+ the stable API; light + dark ship together.
111
+ - **Don't duplicate the shared layers** — core tokens/shell/motion CSS and
112
+ `bootstrap/overrides` are in every build already.
113
+ - **Namespace your own components** (`.mytheme-*`) to avoid collisions;
114
+ runtime-stamped classes must live in the `omega-` namespace (PurgeCSS
115
+ safelist).
@@ -0,0 +1,60 @@
1
+ // <Theme Name> Configuration
2
+ // ALL customizable variables live here with !default so consuming projects can
3
+ // override any of them BEFORE the theme is imported. Keep this file as the
4
+ // single source of truth for your theme's design tokens.
5
+
6
+ // ============================================
7
+ // Bootstrap Color Overrides
8
+ // ============================================
9
+ $primary: #3B82F6 !default;
10
+ $secondary: #6B7280 !default;
11
+ $success: #10B981 !default;
12
+ $info: #06B6D4 !default;
13
+ $warning: #F59E0B !default;
14
+ $danger: #EF4444 !default;
15
+ $light: #F9FAFB !default;
16
+ $dark: #111827 !default;
17
+
18
+ // ============================================
19
+ // Surfaces (light + dark mode)
20
+ // ============================================
21
+ // Define your page/card backgrounds for each mode. _root.scss bridges these
22
+ // into CSS variables so dark-mode switching needs no recompilation.
23
+ $theme-bg-light: #FFFFFF !default;
24
+ $theme-surface-light: #F3F4F6 !default;
25
+ $theme-bg-dark: #0B0B0F !default;
26
+ $theme-surface-dark: #16161C !default;
27
+
28
+ // ============================================
29
+ // Typography
30
+ // ============================================
31
+ $font-family-sans-serif: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !default;
32
+ $headings-font-weight: 700 !default;
33
+
34
+ // ============================================
35
+ // Component sizing
36
+ // ============================================
37
+ // Match Classy's avatar map so the shared layouts/includes render correctly.
38
+ $avatar-sizes: (
39
+ null: 3rem, 2xs: 0.5rem, xs: 1.5rem, sm: 2rem, md: 2.5rem,
40
+ lg: 3.5rem, xl: 5rem, 2xl: 7.5rem, 3xl: 10rem, 4xl: 12.5rem, 5xl: 15rem
41
+ ) !default;
42
+
43
+ // ============================================
44
+ // Forward Bootstrap with our configuration
45
+ // ============================================
46
+ // Pass your overridden tokens into Bootstrap so .btn/.card/.form-control etc.
47
+ // are generated with your colors. Add/remove forwards as your theme needs.
48
+ @forward '../bootstrap/scss/bootstrap.scss' with (
49
+ $primary: $primary,
50
+ $secondary: $secondary,
51
+ $success: $success,
52
+ $info: $info,
53
+ $warning: $warning,
54
+ $danger: $danger,
55
+ $light: $light,
56
+ $dark: $dark,
57
+ $font-family-sans-serif: $font-family-sans-serif,
58
+ $headings-font-weight: $headings-font-weight,
59
+ $enable-negative-margins: true
60
+ );
@@ -0,0 +1,14 @@
1
+ // <Theme Name> — JS entry point
2
+ // Loaded at runtime via webpack's __theme__ alias. Exposes Bootstrap globally
3
+ // and runs your theme behaviors once the DOM is ready.
4
+ import bootstrap from '__main_assets__/themes/bootstrap/js/index.umd.js';
5
+ import { ready as domReady } from '@omega.js/client/modules/dom.js';
6
+
7
+ // Make Bootstrap available globally (used by omega utilities + components)
8
+ window.bootstrap = bootstrap;
9
+
10
+ // Initialize theme behaviors when the DOM is ready
11
+ domReady().then(() => {
12
+ // Add your theme's initializers here, e.g.:
13
+ // import('./js/navbar-scroll.js').then(m => m.default());
14
+ });
@@ -0,0 +1,28 @@
1
+ // <Theme Name> — SCSS entry point
2
+ // Import order matters: config (loads Bootstrap with your tokens) → root vars →
3
+ // your styles → universal Bootstrap overrides (shared across all omega themes).
4
+
5
+ // Forward config so consuming projects can override your !default tokens
6
+ @forward 'config';
7
+ @use 'config' as *;
8
+
9
+ // CSS custom properties (light/dark bridge)
10
+ @import 'css/base/root';
11
+
12
+ // The classy app/auth FLOOR: fall-through surfaces (auth, dashboard/account,
13
+ // admin) render classy layouts whose vocabulary is token-pure — these partials
14
+ // paint through YOUR token values. Keep them EARLY so your rules win collisions.
15
+ // Removing them leaves those pages unstyled (the build warns — #98).
16
+ @import '../classy/css/layout/shell';
17
+ @import '../classy/css/layout/footer';
18
+ @import '../classy/css/app/panels';
19
+ @import '../classy/css/pages/auth';
20
+ @import '../classy/css/components/receipt';
21
+ @import '../classy/css/components/badges';
22
+
23
+ // Your theme's styles (add base/layout/component partials as you grow)
24
+ @import 'css/components/components';
25
+
26
+ // Universal Bootstrap overrides shared by every omega theme
27
+ // (avatars, color-shades, soft-colors, spacing, etc.). Must come AFTER Bootstrap.
28
+ @import '../bootstrap/overrides';
@@ -0,0 +1,19 @@
1
+ // <Theme Name> — CSS Custom Properties
2
+ // Bridges SCSS config into runtime CSS variables. Components should read these
3
+ // var(--*) tokens (never the raw SCSS values) so dark mode is one override block.
4
+
5
+ :root,
6
+ [data-bs-theme="light"] {
7
+ --bs-body-bg: #{$theme-bg-light};
8
+ --bs-body-bg-rgb: #{red($theme-bg-light)}, #{green($theme-bg-light)}, #{blue($theme-bg-light)};
9
+ --bs-secondary-bg: #{$theme-surface-light};
10
+ // Add your own tokens, e.g.:
11
+ // --theme-card-bg: #{$theme-surface-light};
12
+ }
13
+
14
+ [data-bs-theme="dark"] {
15
+ --bs-body-bg: #{$theme-bg-dark};
16
+ --bs-body-bg-rgb: #{red($theme-bg-dark)}, #{green($theme-bg-dark)}, #{blue($theme-bg-dark)};
17
+ --bs-secondary-bg: #{$theme-surface-dark};
18
+ // --theme-card-bg: #{$theme-surface-dark};
19
+ }
@@ -0,0 +1,23 @@
1
+ // <Theme Name> — Components
2
+ // Restyle Bootstrap's own classes here so all inherited markup (nav, hero,
3
+ // cards, forms, buttons) picks up your look with NO HTML changes. Add files
4
+ // like _buttons.scss / _cards.scss as your theme grows and @import them in
5
+ // _theme.scss. This starter keeps everything in one file to stay minimal.
6
+
7
+ // Example: give buttons your theme's personality
8
+ .btn {
9
+ font-weight: 600;
10
+ // ...your button styling...
11
+ }
12
+
13
+ // Example: cards
14
+ .card {
15
+ background: var(--bs-secondary-bg);
16
+ // ...your card styling...
17
+ }
18
+
19
+ // Example: a theme-namespaced helper for your own page layouts
20
+ .theme-box {
21
+ background: var(--bs-secondary-bg);
22
+ padding: 1.5rem;
23
+ }
@@ -0,0 +1,5 @@
1
+ # base
2
+
3
+ The structural markup layer every theme chain ends at: layouts, sections, includes, and components for all shared surfaces.
4
+ It owns the neutral `omega-*` BEM vocabulary; themes are skins (scss over these selectors) and fork markup only for identity surfaces.
5
+ Convention: `docs/web/sections.md` § "Markup convention: base, skin, fork" (#177).
@@ -0,0 +1,33 @@
1
+ {% comment %} Org chart: one root over a connected row of nodes. The
2
+ connectors are drawn entirely by component.scss (the trunk hangs off the
3
+ children row, the bus and its stubs off each node), so the markup is just the
4
+ two levels — and a live page that renders the same class vocabulary from JS
5
+ gets the same lines for free. {% endcomment %}
6
+ <div class="omega-org-chart{% if args.class != blank %} {{ args.class }}{% endif %}">
7
+ {% iftruthy args.root %}
8
+ <div class="omega-org-chart__root">
9
+ <div class="card h-100">
10
+ <div class="card-body">
11
+ <p class="omega-org-chart__title mb-0">{{ args.root.title }}</p>
12
+ {% iftruthy args.root.sub %}<p class="omega-micro mb-0">{{ args.root.sub }}</p>{% endiftruthy %}
13
+ {% iftruthy args.root.meta %}<span class="omega-chip omega-badge-tone{% if args.root.tone != blank %} omega-tone-{{ args.root.tone }}{% endif %}">{{ args.root.meta }}</span>{% endiftruthy %}
14
+ </div>
15
+ </div>
16
+ </div>
17
+ {% endiftruthy %}
18
+ {% iftruthy args.nodes %}
19
+ <div class="omega-org-chart__children">
20
+ {% for node in args.nodes %}
21
+ <div class="omega-org-chart__node">
22
+ <div class="card h-100">
23
+ <div class="card-body">
24
+ <p class="omega-org-chart__title mb-0">{{ node.title }}</p>
25
+ {% iftruthy node.sub %}<p class="omega-micro mb-0">{{ node.sub }}</p>{% endiftruthy %}
26
+ {% iftruthy node.meta %}<span class="omega-chip omega-badge-tone{% if node.tone != blank %} omega-tone-{{ node.tone }}{% endif %}">{{ node.meta }}</span>{% endiftruthy %}
27
+ </div>
28
+ </div>
29
+ </div>
30
+ {% endfor %}
31
+ </div>
32
+ {% endiftruthy %}
33
+ </div>
@@ -0,0 +1,33 @@
1
+ {
2
+ description: 'Org chart — one root card over a connected row of node cards, joined by animated dashed connectors (repeating gradients, because a border\'s dash pattern cannot move). Under 768px the tree tilts onto its side: a spine down the left with an elbow into each card. The animation stops under prefers-reduced-motion. Each entry takes { title, sub, meta, tone } — `tone` is a 1–6 slot of the shared categorical ramp (--omega-chart-*), so a node\'s chip matches the same name\'s series on a chart. A live page rendering this class vocabulary from JS gets the same connectors.',
3
+
4
+ args: {
5
+ root: { type: 'object', description: 'The top card: { title, sub, meta, tone }' },
6
+ nodes: { type: 'array', description: 'The connected row, each { title, sub, meta, tone }' },
7
+ class: 'string',
8
+ },
9
+
10
+ // Mechanical only — the chart has no copy of its own to keep neutral
11
+ defaults: {},
12
+
13
+ demo: [
14
+ {
15
+ label: 'Root over four nodes',
16
+ args: {
17
+ root: { title: 'Manager', sub: 'orchestration', meta: 'lead', tone: 1 },
18
+ nodes: [
19
+ { title: 'Scout', sub: 'reads the repo', meta: 'research', tone: 2 },
20
+ { title: 'Worker', sub: 'builds the change', meta: 'build', tone: 3 },
21
+ { title: 'Verifier', sub: 'proves it', meta: 'review', tone: 4 },
22
+ { title: 'Advisor', sub: 'weighs the call', meta: 'counsel', tone: 5 },
23
+ ],
24
+ },
25
+ },
26
+ {
27
+ label: 'Root alone',
28
+ args: {
29
+ root: { title: 'Manager', sub: 'nobody dispatched yet' },
30
+ },
31
+ },
32
+ ],
33
+ }
@@ -0,0 +1,183 @@
1
+ // data/org-chart — the tree's connector geometry (§7 omega:sections lane).
2
+ //
3
+ // Every line is a repeating gradient rather than a border, for one reason:
4
+ // a gradient's position is animatable and a border's dash pattern is not, and
5
+ // the lines on this chart MOVE — a chart of what is happening RIGHT NOW reads
6
+ // as live only if something on it is.
7
+ //
8
+ // Wide: the root centred over a row of nodes, a trunk down to a horizontal
9
+ // bus, a stub down into each card. Under 768px the same tree turns on its
10
+ // side — one spine down the left with an elbow into each card — because six
11
+ // 16rem columns on a phone is not a chart, it is a scrollbar.
12
+
13
+ .omega-org-chart {
14
+ --omega-org-line: var(--omega-line);
15
+ --omega-org-line-size: 2px;
16
+ --omega-org-drop: 1.5rem;
17
+ }
18
+
19
+ .omega-org-chart__root,
20
+ .omega-org-chart__node {
21
+ flex: 0 0 auto;
22
+ position: relative;
23
+ width: 16rem;
24
+ }
25
+
26
+ .omega-org-chart__root {
27
+ margin-inline: auto;
28
+ }
29
+
30
+ .omega-org-chart__title {
31
+ font-weight: 650;
32
+ }
33
+
34
+ .omega-org-chart__children {
35
+ display: flex;
36
+ // `safe` keeps an overflowing row reachable: centring a row wider than its
37
+ // container puts the first card off the scrollable edge. An engine that
38
+ // does not know the keyword drops the declaration and starts the row at the
39
+ // left, which is the same rescue.
40
+ justify-content: safe center;
41
+ gap: 1rem;
42
+ // A row wider than the container scrolls sideways rather than wrapping into
43
+ // rows the bus cannot connect. The trunk is drawn INSIDE this padding
44
+ // rather than above the box, because a scroll container clips what hangs
45
+ // outside it.
46
+ overflow-x: auto;
47
+ padding-top: var(--omega-org-drop);
48
+ padding-bottom: 0.25rem;
49
+ position: relative;
50
+ }
51
+
52
+ // The trunk: from the root's bottom edge down to the bus.
53
+ .omega-org-chart__children::before {
54
+ content: '';
55
+ position: absolute;
56
+ top: 0;
57
+ left: calc(50% - (var(--omega-org-line-size) / 2));
58
+ width: var(--omega-org-line-size);
59
+ height: var(--omega-org-drop);
60
+ background-image: repeating-linear-gradient(180deg, var(--omega-org-line) 0 6px, transparent 6px 12px);
61
+ animation: omega-org-flow-down 1.2s linear infinite;
62
+ }
63
+
64
+ // Each node holds the drop the bus and its own stub are drawn in.
65
+ .omega-org-chart__node {
66
+ padding-top: var(--omega-org-drop);
67
+ }
68
+
69
+ // The bus, in segments: one per node, reaching half the gap either side so
70
+ // the segments meet. The first and last stop at their own centre, which is
71
+ // what makes the bus span exactly from the first card to the last.
72
+ .omega-org-chart__node::after {
73
+ content: '';
74
+ position: absolute;
75
+ top: 0;
76
+ left: -0.5rem;
77
+ right: -0.5rem;
78
+ height: var(--omega-org-line-size);
79
+ background-image: repeating-linear-gradient(90deg, var(--omega-org-line) 0 6px, transparent 6px 12px);
80
+ animation: omega-org-flow-right 1.2s linear infinite;
81
+ }
82
+
83
+ .omega-org-chart__node:first-child::after {
84
+ left: calc(50% - (var(--omega-org-line-size) / 2));
85
+ }
86
+
87
+ .omega-org-chart__node:last-child::after {
88
+ right: calc(50% - (var(--omega-org-line-size) / 2));
89
+ }
90
+
91
+ // The stub: down from the bus into the card.
92
+ .omega-org-chart__node::before {
93
+ content: '';
94
+ position: absolute;
95
+ top: 0;
96
+ left: calc(50% - (var(--omega-org-line-size) / 2));
97
+ width: var(--omega-org-line-size);
98
+ height: var(--omega-org-drop);
99
+ background-image: repeating-linear-gradient(180deg, var(--omega-org-line) 0 6px, transparent 6px 12px);
100
+ animation: omega-org-flow-down 1.2s linear infinite;
101
+ }
102
+
103
+ @keyframes omega-org-flow-down {
104
+ to {
105
+ background-position: 0 12px;
106
+ }
107
+ }
108
+
109
+ @keyframes omega-org-flow-right {
110
+ to {
111
+ background-position: 12px 0;
112
+ }
113
+ }
114
+
115
+ // Narrow: the same tree, stacked. The bus becomes a spine down the left and
116
+ // each node's stub becomes an elbow into its card, so nothing floats free.
117
+ @media (max-width: 767.98px) {
118
+ .omega-org-chart__root,
119
+ .omega-org-chart__node {
120
+ width: auto;
121
+ }
122
+
123
+ .omega-org-chart__children {
124
+ display: block;
125
+ overflow-x: visible;
126
+ padding-left: var(--omega-org-drop);
127
+ }
128
+
129
+ .omega-org-chart__children::before {
130
+ left: 0;
131
+ }
132
+
133
+ .omega-org-chart__node {
134
+ padding-top: 0;
135
+ margin-top: 1rem;
136
+ }
137
+
138
+ // The elbow, at the card's shoulder.
139
+ .omega-org-chart__node::before {
140
+ top: var(--omega-org-drop);
141
+ left: calc(var(--omega-org-drop) * -1);
142
+ width: var(--omega-org-drop);
143
+ height: var(--omega-org-line-size);
144
+ background-image: repeating-linear-gradient(90deg, var(--omega-org-line) 0 6px, transparent 6px 12px);
145
+ animation: omega-org-flow-right 1.2s linear infinite;
146
+ }
147
+
148
+ // The spine, in segments: each node carries the piece above it, and the
149
+ // last one stops at its own elbow instead of running past the bottom card.
150
+ //
151
+ // The first and last node are named here too. Their wide-layout rules trim
152
+ // the bus to a half segment, a media query adds no specificity of its own,
153
+ // and without the same two selectors on this side they would keep winning.
154
+ .omega-org-chart__node::after,
155
+ .omega-org-chart__node:first-child::after,
156
+ .omega-org-chart__node:last-child::after {
157
+ top: -1rem;
158
+ bottom: 0;
159
+ left: calc(var(--omega-org-drop) * -1);
160
+ right: auto;
161
+ width: var(--omega-org-line-size);
162
+ height: auto;
163
+ background-image: repeating-linear-gradient(180deg, var(--omega-org-line) 0 6px, transparent 6px 12px);
164
+ animation: omega-org-flow-down 1.2s linear infinite;
165
+ }
166
+
167
+ .omega-org-chart__node:last-child::after {
168
+ bottom: auto;
169
+ height: calc(1rem + var(--omega-org-drop));
170
+ }
171
+ }
172
+
173
+ // Last, and naming the trimmed segments too: this has to outrank BOTH
174
+ // layouts, and a media query lends a rule no specificity to outrank them with.
175
+ @media (prefers-reduced-motion: reduce) {
176
+ .omega-org-chart__children::before,
177
+ .omega-org-chart__node::before,
178
+ .omega-org-chart__node::after,
179
+ .omega-org-chart__node:first-child::after,
180
+ .omega-org-chart__node:last-child::after {
181
+ animation: none;
182
+ }
183
+ }
@@ -0,0 +1,22 @@
1
+ {% comment %} Interior-page masthead cluster: omega-micro eyebrow + the
2
+ omega-display--page h1 (+ optional em accent) + sub line. The calling layout
3
+ owns the band shell (dotgrid section, container, duo/split wrappers, reveal
4
+ stagger) — this is the repeated head only. Breadcrumb-eyebrow pages pass no
5
+ eyebrow and keep their link row in the layout.
6
+
7
+ #467: `first_paint` is the caller saying "this cluster IS the first viewport",
8
+ and the reveal attributes come off — a band the visitor never scrolls to must
9
+ not wait for the observer. The band itself declares data-omega-first-paint;
10
+ this switch keeps the markup honest rather than shipping attributes the
11
+ exemption has already neutralized. {% endcomment %}
12
+ {% iffalsy args.first_paint %}{% assign masthead_reveal = " data-omega-reveal" %}{% endiffalsy %}
13
+ {% iftruthy args.eyebrow %}
14
+ <span class="omega-micro d-block mb-3"{{ masthead_reveal }}>{{ args.eyebrow }}</span>
15
+ {% endiftruthy %}
16
+ <h1 class="omega-display omega-display--page{% if args.h1_class != blank %} {{ args.h1_class }}{% endif %}"{{ masthead_reveal }}>
17
+ {{ args.headline }}{% if args.headline_accent != blank %}
18
+ <em>{{ args.headline_accent }}</em>{% endif %}
19
+ </h1>
20
+ {% iftruthy args.sub %}
21
+ <p class="{{ args.sub_class }}"{{ masthead_reveal }}>{{ args.sub }}</p>
22
+ {% endiftruthy %}
@@ -0,0 +1,30 @@
1
+ {
2
+ description: 'Interior-page masthead head cluster — optional omega-micro eyebrow, the omega-display--page h1 with optional <em> accent, optional sub line. A COMPONENT: the page keeps its own shell (dotgrid section, container, duo/split wrappers) and composes this inside it; breadcrumb-eyebrow pages (blog taxonomy, alternative) pass no eyebrow and keep their link row in the layout. SHARED across the interior pages — defaults stay NEUTRAL (spec §6); sub_class/h1_class are mechanical knobs.',
3
+
4
+ args: {
5
+ eyebrow: 'string',
6
+ headline: 'string',
7
+ headline_accent: 'string',
8
+ sub: 'string',
9
+ sub_class: 'string',
10
+ h1_class: 'string',
11
+ first_paint: 'boolean', // #467: this cluster IS the first viewport — drop the reveal attributes, the band's data-omega-first-paint owns the paint
12
+ },
13
+
14
+ defaults: {
15
+ sub_class: 'omega-hero-split__sub',
16
+ },
17
+
18
+ // Showcase variants (spec §9)
19
+ demo: [
20
+ {
21
+ label: 'Eyebrow + accent + sub',
22
+ args: {
23
+ eyebrow: 'Guides',
24
+ headline: 'Everything about',
25
+ headline_accent: 'getting started',
26
+ sub: 'A short standfirst under the display headline.',
27
+ },
28
+ },
29
+ ],
30
+ }
@@ -0,0 +1,18 @@
1
+ {% comment %} Section-head cluster: omega-micro eyebrow + the
2
+ omega-display--section h2 (+ optional em accent) + plain sub line. The
3
+ caller owns the omega-section-head wrapper div (its centering/duo/margin
4
+ classes vary) and anything after the cluster — this is the inner head only.
5
+ Sections compose it too (nested composition): pass the resolved STRING as
6
+ superheadline. {% endcomment %}
7
+ {% iftruthy args.superheadline %}
8
+ <span class="omega-micro">{{ args.superheadline }}</span>
9
+ {% endiftruthy %}
10
+ {% iftruthy args.headline %}
11
+ <h2 class="omega-display omega-display--section">
12
+ {{ args.headline }}{% if args.headline_accent != blank %}
13
+ <em>{{ args.headline_accent }}</em>{% endif %}
14
+ </h2>
15
+ {% endiftruthy %}
16
+ {% iftruthy args.sub %}
17
+ <p>{{ args.sub }}</p>
18
+ {% endiftruthy %}
@@ -0,0 +1,27 @@
1
+ {
2
+ description: 'Section-head cluster — optional omega-micro eyebrow, the omega-display--section h2 with optional <em> accent (whole h2 suppressed when headline is blank), optional plain sub line. A COMPONENT: the caller owns the omega-section-head wrapper div and everything after the cluster. Composed by layouts AND by sections (nested composition — pass the resolved string as superheadline, e.g. args.superheadline.text). Fully neutral: no defaults.',
3
+
4
+ args: {
5
+ superheadline: 'string',
6
+ headline: 'string',
7
+ headline_accent: 'string',
8
+ sub: 'string',
9
+ },
10
+
11
+ defaults: {},
12
+
13
+ // Showcase variants (spec §9) — stage_class supplies the wrapper the
14
+ // caller normally owns, so the demo renders in its natural shell.
15
+ demo: [
16
+ {
17
+ label: 'Full cluster',
18
+ stage_class: 'omega-section-head',
19
+ args: {
20
+ superheadline: 'Features',
21
+ headline: 'Built for',
22
+ headline_accent: 'momentum',
23
+ sub: 'A supporting line under the section head.',
24
+ },
25
+ },
26
+ ],
27
+ }
@@ -0,0 +1,29 @@
1
+ {% comment %} The price card's feature bullets — the ONE home of the list
2
+ /pricing's plan cards, its one-time cards and the homepage plan band all
3
+ render (#539). A feature the catalog gave a `definition` becomes the
4
+ dotted-underline hover target Bootstrap's tooltip engine binds (the themes
5
+ initialize tooltips page-wide, so the affordance works anywhere the list
6
+ lands); a feature without one stays plain text. Values print through
7
+ omega_commaify, which passes non-numeric strings ("Unlimited", "24/7")
8
+ through untouched — then escape_once, because a catalog value is TEXT and a
9
+ literal `<` must never open a tag the minifier can eat (#580). {% endcomment %}
10
+ {% if args.features.size > 0 %}
11
+ <ul class="omega-price-card__features">
12
+ {% for feature in args.features %}
13
+ <li>
14
+ <span class="omega-feature-check text-success"><i class="fa-solid fa-check fa-sm"></i></span>
15
+ <span>
16
+ {% if feature.value and feature.value != true %}
17
+ {{ feature.value | omega_commaify | escape_once }}
18
+ {% endif %}
19
+ {% iftruthy feature.definition %}
20
+ <span class="text-decoration-underline text-decoration-dotted cursor-help" data-bs-toggle="tooltip" data-bs-title="{{ feature.definition }}">{{ feature.name }}</span>
21
+ {% endiftruthy %}
22
+ {% iffalsy feature.definition %}
23
+ {{ feature.name }}
24
+ {% endiffalsy %}
25
+ </span>
26
+ </li>
27
+ {% endfor %}
28
+ </ul>
29
+ {% endif %}