@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,70 @@
1
+ // Newsflash Theme — SCSS entry point
2
+ // Forwards config (so consuming projects can override vars), loads Bootstrap
3
+ // via config, then layers the editorial system on top. Import order matters:
4
+ // config → mixins → root vars → base → layout → components → bootstrap overrides.
5
+
6
+ // Forward theme configuration (allows consuming project to override)
7
+ @forward 'config';
8
+ @use 'config' as *;
9
+
10
+ // Mixins must be available to every partial below.
11
+ // @import (not @use) so the mixins land in the global scope the @imports share.
12
+ @import 'css/base/mixins';
13
+
14
+ // Vendored webfonts (Fraunces + Schibsted Grotesk — D5)
15
+ @import 'css/base/fonts';
16
+
17
+ // Token re-value + Bootstrap bridge (--omega-* contract, light/dark)
18
+ @import 'css/base/root';
19
+
20
+ // ── The classy FLOOR (cp190, widened for #177 phase 2) ──────────────────────
21
+ // Fall-through surfaces render BASE markup (omega-* classes), and the
22
+ // structural css for that vocabulary lives in classy's partials, which are
23
+ // deliberately TOKEN-PURE, so a full sibling theme imports them directly
24
+ // and they paint through THIS theme's token re-values (paper/ink/frames),
25
+ // no classy Bootstrap involved. Phase 2 widened the floor beyond app/auth to
26
+ // the marketing vocabulary (omega-cta, omega-stats, omega-price-card,
27
+ // omega-person, omega-rowlist, omega-duo, and the rest) because newsflash
28
+ // now renders the base 404/about/contact/pricing/team/taxonomy surfaces
29
+ // unforked.
30
+ // Imported EARLY on purpose: the floor sits UNDER the theme's own voice, so
31
+ // later newsflash rules win every collision (e.g. classy's .badge base).
32
+ // NOT imported: classy's typography (its h1-h6 element rules would beat the
33
+ // Fraunces headings this theme sets through Bootstrap vars), layout/general
34
+ // (fixed-nav clearance rhythm; the sticky masthead needs none), and
35
+ // layout/nav (fixed glassy bar; the masthead re-skins .omega-nav below).
36
+ // Partial/consumer themes take the whole-chain hatch instead
37
+ // (`@forward 'omega:theme'` — see docs/shared/theming.md).
38
+ @import '../classy/css/layout/shell';
39
+ @import '../classy/css/layout/footer';
40
+ @import '../classy/css/app/panels';
41
+ @import '../classy/css/pages/auth';
42
+ @import '../classy/css/components/receipt';
43
+ @import '../classy/css/components/badges';
44
+ @import '../classy/css/base/utilities';
45
+ @import '../classy/css/marketing/hero';
46
+ @import '../classy/css/marketing/content';
47
+ @import '../classy/css/marketing/sections';
48
+
49
+ // Base styles
50
+ @import 'css/base/typography';
51
+ @import 'css/base/utilities';
52
+
53
+ // Layout styles
54
+ @import 'css/layout/general';
55
+ @import 'css/layout/navigation';
56
+
57
+ // Component styles
58
+ @import 'css/components/buttons';
59
+ @import 'css/components/cards';
60
+ @import 'css/components/forms';
61
+ @import 'css/components/badges';
62
+ @import 'css/components/ticker';
63
+ @import 'css/components/editorial';
64
+ @import 'css/components/panels';
65
+ @import 'css/components/infinite-scroll';
66
+ @import 'css/components/billing-toggle';
67
+
68
+ // Universal Bootstrap overrides (shared across all omega themes).
69
+ // Must come AFTER Bootstrap is loaded via config to use @extend.
70
+ @import '../bootstrap/overrides';
@@ -0,0 +1,80 @@
1
+ // Vendored webfonts (D5): Fraunces (optical-sized display serif) + Schibsted
2
+ // Grotesk (UI grotesk), both OFL — safe to redistribute inside the published
3
+ // theme. Variable fonts, latin + latin-ext subsets; the files ship in the
4
+ // theme's fonts/ dir and the asset pipeline copies every layer's fonts/ to
5
+ // /assets/fonts (first-wins), so a consumer theme can override the files OR
6
+ // just re-point the --omega-font-* tokens (see _root.scss) at different
7
+ // families. Replaces the cp71-era Google Fonts CDN link in base.html.
8
+
9
+ /* fraunces italic latin-ext */
10
+ @font-face {
11
+ font-family: 'Fraunces';
12
+ font-style: italic;
13
+ font-weight: 100 900;
14
+ font-display: swap;
15
+ src: url(/assets/fonts/fraunces-italic-latin-ext.woff2) format('woff2');
16
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
17
+ }
18
+ /* fraunces italic latin */
19
+ @font-face {
20
+ font-family: 'Fraunces';
21
+ font-style: italic;
22
+ font-weight: 100 900;
23
+ font-display: swap;
24
+ src: url(/assets/fonts/fraunces-italic-latin.woff2) format('woff2');
25
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
26
+ }
27
+ /* fraunces normal latin-ext */
28
+ @font-face {
29
+ font-family: 'Fraunces';
30
+ font-style: normal;
31
+ font-weight: 100 900;
32
+ font-display: swap;
33
+ src: url(/assets/fonts/fraunces-normal-latin-ext.woff2) format('woff2');
34
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
35
+ }
36
+ /* fraunces normal latin */
37
+ @font-face {
38
+ font-family: 'Fraunces';
39
+ font-style: normal;
40
+ font-weight: 100 900;
41
+ font-display: swap;
42
+ src: url(/assets/fonts/fraunces-normal-latin.woff2) format('woff2');
43
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
44
+ }
45
+ /* schibsted grotesk italic latin-ext */
46
+ @font-face {
47
+ font-family: 'Schibsted Grotesk';
48
+ font-style: italic;
49
+ font-weight: 400 900;
50
+ font-display: swap;
51
+ src: url(/assets/fonts/schibsted-grotesk-italic-latin-ext.woff2) format('woff2');
52
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
53
+ }
54
+ /* schibsted grotesk italic latin */
55
+ @font-face {
56
+ font-family: 'Schibsted Grotesk';
57
+ font-style: italic;
58
+ font-weight: 400 900;
59
+ font-display: swap;
60
+ src: url(/assets/fonts/schibsted-grotesk-italic-latin.woff2) format('woff2');
61
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
62
+ }
63
+ /* schibsted grotesk normal latin-ext */
64
+ @font-face {
65
+ font-family: 'Schibsted Grotesk';
66
+ font-style: normal;
67
+ font-weight: 400 900;
68
+ font-display: swap;
69
+ src: url(/assets/fonts/schibsted-grotesk-normal-latin-ext.woff2) format('woff2');
70
+ unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
71
+ }
72
+ /* schibsted grotesk normal latin */
73
+ @font-face {
74
+ font-family: 'Schibsted Grotesk';
75
+ font-style: normal;
76
+ font-weight: 400 900;
77
+ font-display: swap;
78
+ src: url(/assets/fonts/schibsted-grotesk-normal-latin.woff2) format('woff2');
79
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
80
+ }
@@ -0,0 +1,51 @@
1
+ // Newsflash Theme — Mixins
2
+ // The shared building blocks of the editorial look. Components @include these
3
+ // so the frame/shadow/lift system lives in ONE place (SSOT) rather than being
4
+ // copy-pasted across buttons, cards, inputs, etc.
5
+
6
+ // Hairline frame in the current ink color.
7
+ @mixin nf-border($width: var(--nf-border-width)) {
8
+ border: $width solid var(--omega-line-strong);
9
+ }
10
+
11
+ // Small hard offset shadow (no blur) — the resting state of controls.
12
+ @mixin nf-shadow-hard() {
13
+ box-shadow: var(--nf-shadow-hard);
14
+ }
15
+
16
+ // Soft "pop" shadow — depth for frames and panels (hero art, signup rail).
17
+ // Rides the shared big-shadow slot, which the root re-values editorially.
18
+ @mixin nf-shadow-pop() {
19
+ box-shadow: var(--omega-shadow-2);
20
+ }
21
+
22
+ // The signature interaction: the element rests on a small hard shadow, then
23
+ // LIFTS up-left on hover (shadow grows beneath it) and presses flush on
24
+ // active. Pure transform + shadow — no color shift.
25
+ @mixin nf-lift() {
26
+ transition: $nf-transition;
27
+
28
+ &:hover {
29
+ transform: translate(-2px, -2px);
30
+ box-shadow: var(--nf-shadow-hard-hover);
31
+ }
32
+
33
+ &:active {
34
+ transform: translate(0, 0);
35
+ box-shadow: 1px 1px 0 var(--omega-ink);
36
+ }
37
+ }
38
+
39
+ // Headline hover underline — an accent rule that grows from the left under
40
+ // the text (the editorial "this is a link" affordance on serif headlines).
41
+ @mixin nf-underline-grow($color: var(--omega-accent), $thickness: 2px) {
42
+ background-image: linear-gradient($color, $color);
43
+ background-repeat: no-repeat;
44
+ background-size: 0% $thickness;
45
+ background-position: 0 96%;
46
+ transition: background-size 0.35s cubic-bezier(0.22, 1, 0.36, 1);
47
+
48
+ &:hover {
49
+ background-size: 100% $thickness;
50
+ }
51
+ }
@@ -0,0 +1,257 @@
1
+ // Newsflash root — the editorial skin re-VALUED onto the shared --omega-*
2
+ // token contract (core/css/tokens/_index.scss). The core sheet ships classy
3
+ // values as placeholders; this file restamps the same NAMES with paper/ink,
4
+ // so core chrome (shell, motion, fall-through app surfaces) and newsflash
5
+ // components all paint editorial without a parallel token economy. Genuinely
6
+ // newsflash-only extras (volt, ink panels, hard-offset shadows, grain) keep
7
+ // the --nf-* namespace.
8
+ //
9
+ // Plumbing mirrors the core sheet exactly (three stamps: OS preference via
10
+ // media query, appearance.js's data-bs-theme attribute beats it both ways),
11
+ // and the Bootstrap bridge mirrors classy's _root.scss: the
12
+ // `:root[data-bs-theme]` arm (0,1,1) outranks Bootstrap's own compiled
13
+ // [data-bs-theme='dark'] block (0,1,0) regardless of load order — which is
14
+ // what the cp71-era doubled-selector hack did, retired here.
15
+ //
16
+ // brand.color: when the consumer sets it, head.html emits inline accent
17
+ // ramps AFTER the css bundles — those win over the vermilion placeholders
18
+ // stamped here, exactly as the contract intends.
19
+
20
+ // Vendored faces take over the font tokens (scheme-agnostic — one :root
21
+ // stamp). Everything below (Bootstrap bridge, typography, components) reads
22
+ // THESE tokens, so a consumer re-points fonts by redefining two properties.
23
+ // --omega-font-marketing already defaults to the serif slot (the "mix"
24
+ // pairing) — exactly newsflash's voice; app display stays grotesk.
25
+ :root {
26
+ --omega-font-ui: 'Schibsted Grotesk', -apple-system, blinkmacsystemfont, 'Segoe UI', roboto, 'Helvetica Neue', arial, sans-serif;
27
+ --omega-font-serif: 'Fraunces', ui-serif, georgia, 'Times New Roman', times, serif;
28
+ }
29
+
30
+ // Dark-mode accent derives from the COMPILE-TIME $primary so a consumer's
31
+ // Sass brand override survives dark mode (the stock vermilion keeps its
32
+ // hand-tuned brightening; any other color gets a generic white-mix lift).
33
+ // brand.color consumers get the real per-mode ramp from head.html instead.
34
+ $nf-primary-dark-mode: if($primary == $nf-vermilion, $nf-vermilion-dark-mode, mix(white, $primary, 15%));
35
+
36
+ // ============================================
37
+ // The editorial token sheet (light / dark)
38
+ // ============================================
39
+ // Values compute from the _config.scss knobs so a consumer's Sass overrides
40
+ // flow into the runtime tokens automatically.
41
+ @mixin nf-light-tokens {
42
+ --omega-ground: #{$nf-paper};
43
+ --omega-surface: #{$nf-paper}; // cards sit ON the paper — ink frames, not tint, mark the edge
44
+ --omega-surface-2: #{$nf-paper-2};
45
+ --omega-ink: #{$nf-ink};
46
+ --omega-ink-muted: #{$nf-ink-soft};
47
+ --omega-ink-faint: #{mix($nf-ink-soft, $nf-paper, 65%)};
48
+ --omega-line: #{rgba($nf-ink, 0.16)}; // soft in-content dividers
49
+ --omega-line-strong: #{$nf-ink}; // FULL ink — hairline frames are the identity
50
+ --omega-accent: #{$nf-vermilion}; // placeholder — brand.color wins at build
51
+ --omega-accent-hover: #{mix(black, $nf-vermilion, 10%)};
52
+ --omega-accent-active: #{mix(black, $nf-vermilion, 16%)};
53
+ --omega-accent-subtle: #{rgba($nf-vermilion, 0.12)};
54
+ --omega-accent-ink: #{$nf-ink}; // ink-on-vermilion (the ramp's WCAG pick too)
55
+ --omega-accent-ring: #{rgba($nf-vermilion, 0.35)};
56
+ --omega-ok: #2e7d4f;
57
+ --omega-ok-rgb: 46, 125, 79;
58
+ --omega-warn: #b45309; // true status amber — volt is a highlight, never a warning
59
+ --omega-warn-rgb: 180, 83, 9;
60
+ --omega-danger: #c81e1e;
61
+ --omega-danger-rgb: 200, 30, 30;
62
+ --omega-chart-2: #0f8fa9; // the CVD-validated teal (contract value)
63
+ --omega-shadow-1: 0 1px 2px rgb(23 19 16 / 8%);
64
+ --omega-shadow-2: #{$nf-shadow-pop};
65
+
66
+ // Editorial extras that flip with the scheme
67
+ --nf-blue: #{$nf-blue};
68
+ --nf-panel-bg: #{$nf-panel-bg};
69
+ --nf-panel-color: #{$nf-panel-color};
70
+ --nf-paper-translucent: #{rgba($nf-paper, 0.88)};
71
+ --nf-grain-opacity: 0.05;
72
+ }
73
+
74
+ @mixin nf-dark-tokens {
75
+ --omega-ground: #{$nf-paper-dark};
76
+ --omega-surface: #{$nf-paper-2-dark}; // cards lift a step off the dark paper
77
+ --omega-surface-2: #{$nf-paper-2-dark};
78
+ --omega-ink: #{$nf-ink-dark};
79
+ --omega-ink-muted: #{$nf-ink-soft-dark};
80
+ --omega-ink-faint: #{mix($nf-ink-soft-dark, $nf-paper-dark, 65%)};
81
+ --omega-line: #{rgba($nf-ink-dark, 0.18)};
82
+ --omega-line-strong: #{$nf-ink-dark}; // cream frames on dark paper
83
+ --omega-accent: #{$nf-primary-dark-mode};
84
+ --omega-accent-hover: #{mix(black, $nf-primary-dark-mode, 10%)};
85
+ --omega-accent-active: #{mix(black, $nf-primary-dark-mode, 16%)};
86
+ --omega-accent-subtle: #{rgba($nf-primary-dark-mode, 0.16)};
87
+ --omega-accent-ink: #{$nf-ink}; // still ink — the brightened accent stays a light fill
88
+ --omega-accent-ring: #{rgba($nf-primary-dark-mode, 0.35)};
89
+ --omega-ok: #3fbf83;
90
+ --omega-ok-rgb: 63, 191, 131;
91
+ --omega-warn: #f5a524;
92
+ --omega-warn-rgb: 245, 165, 36;
93
+ --omega-danger: #f0574d;
94
+ --omega-danger-rgb: 240, 87, 77;
95
+ --omega-chart-2: #1f9fb4;
96
+ --omega-shadow-1: 0 1px 2px rgb(0 0 0 / 35%);
97
+ --omega-shadow-2: 0 18px 40px -18px rgb(0 0 0 / 80%); // pop barely reads on dark paper — deeper, tighter
98
+
99
+ --nf-blue: #{$nf-blue-dark-mode};
100
+ --nf-panel-bg: #{$nf-panel-bg-dark};
101
+ --nf-panel-color: #{$nf-panel-color-dark};
102
+ --nf-paper-translucent: #{rgba($nf-paper-dark, 0.88)};
103
+ --nf-grain-opacity: 0.07;
104
+ }
105
+
106
+ :root {
107
+ @include nf-light-tokens;
108
+
109
+ // Shape + motion (scheme-agnostic re-values of the core slots)
110
+ --omega-radius-xs: 8px;
111
+ --omega-radius-s: 10px;
112
+ --omega-radius-m: #{$nf-radius-sm};
113
+ --omega-radius-l: #{$nf-radius};
114
+ --omega-radius-xl: 24px;
115
+ --omega-speed: 200ms;
116
+ --omega-speed-slow: 600ms;
117
+ --omega-ease: cubic-bezier(0.22, 1, 0.36, 1);
118
+
119
+ // Editorial constants (deliberately identical in both modes)
120
+ --nf-volt: #{$nf-volt};
121
+ --nf-volt-ink: #{$nf-volt-ink};
122
+ --nf-border-width: #{$nf-border-width};
123
+
124
+ // Frame + hard-shadow recipes — ink-colored, so they auto-flip to cream
125
+ // in dark mode through the tokens they reference.
126
+ --nf-border: var(--nf-border-width) solid var(--omega-line-strong);
127
+ --nf-shadow-hard: #{$nf-shadow-offset} #{$nf-shadow-offset} 0 var(--omega-ink);
128
+ --nf-shadow-hard-hover: #{$nf-shadow-offset-hover} #{$nf-shadow-offset-hover} 0 var(--omega-ink);
129
+ }
130
+
131
+ // OS preference carries when no explicit choice is stamped…
132
+ @media (prefers-color-scheme: dark) {
133
+ :root {
134
+ @include nf-dark-tokens;
135
+ }
136
+ }
137
+
138
+ // …and the appearance.js stamp beats the OS in BOTH directions.
139
+ :root[data-bs-theme='dark'] {
140
+ @include nf-dark-tokens;
141
+ }
142
+
143
+ :root[data-bs-theme='light'] {
144
+ @include nf-light-tokens;
145
+ }
146
+
147
+ // ============================================
148
+ // Bootstrap bridge
149
+ // ============================================
150
+ // Bootstrap's CSS variables re-pointed at the tokens (classy's pattern), so
151
+ // mode switching, brand ramps, and consumer token overrides restyle every
152
+ // Bootstrap component with ZERO recompilation.
153
+ :root,
154
+ :root[data-bs-theme] {
155
+ // Surfaces + text
156
+ --bs-body-bg: var(--omega-ground);
157
+ --bs-body-color: var(--omega-ink);
158
+ --bs-emphasis-color: var(--omega-ink);
159
+ --bs-secondary-color: var(--omega-ink-muted);
160
+ --bs-tertiary-color: var(--omega-ink-faint);
161
+ --bs-secondary-bg: var(--omega-surface-2);
162
+ --bs-tertiary-bg: var(--omega-surface-2); // wells are paper-2 — newsflash has no white tier
163
+ --bs-heading-color: var(--omega-ink);
164
+
165
+ // Lines — soft dividers by default; frames opt into full ink via --nf-border
166
+ --bs-border-color: var(--omega-line);
167
+ --bs-border-color-translucent: var(--omega-line);
168
+
169
+ // Status (#13) — one green/amber/red across utilities and token paint alike
170
+ --bs-success: var(--omega-ok);
171
+ --bs-success-rgb: var(--omega-ok-rgb);
172
+ --bs-warning: var(--omega-warn);
173
+ --bs-warning-rgb: var(--omega-warn-rgb);
174
+ --bs-danger: var(--omega-danger);
175
+ --bs-danger-rgb: var(--omega-danger-rgb);
176
+
177
+ // Accent + links track the ramp (replaces the cp71 dark-block primary hack)
178
+ --bs-primary: var(--omega-accent);
179
+ --bs-link-color: var(--omega-accent);
180
+ --bs-link-hover-color: var(--omega-accent-hover);
181
+
182
+ // Type
183
+ --bs-body-font-family: var(--omega-font-ui);
184
+ --bs-font-monospace: var(--omega-font-mono);
185
+
186
+ // Focus
187
+ --bs-focus-ring-color: var(--omega-accent-ring);
188
+
189
+ // Code
190
+ --bs-code-color: var(--omega-ink);
191
+ }
192
+
193
+ // RGB triplets (Bootstrap's translucency utilities paint from
194
+ // rgba(var(--bs-*-rgb), opacity), which var() can't feed) — computed from
195
+ // the Sass knobs, same three-stamp plumbing as the sheet.
196
+ @mixin nf-light-rgb {
197
+ --bs-body-bg-rgb: #{red($nf-paper)}, #{green($nf-paper)}, #{blue($nf-paper)};
198
+ --bs-body-color-rgb: #{red($nf-ink)}, #{green($nf-ink)}, #{blue($nf-ink)};
199
+ --bs-emphasis-color-rgb: #{red($nf-ink)}, #{green($nf-ink)}, #{blue($nf-ink)};
200
+ --bs-secondary-color-rgb: #{red($nf-ink-soft)}, #{green($nf-ink-soft)}, #{blue($nf-ink-soft)};
201
+ --bs-secondary-bg-rgb: #{red($nf-paper-2)}, #{green($nf-paper-2)}, #{blue($nf-paper-2)};
202
+ --bs-tertiary-bg-rgb: #{red($nf-paper-2)}, #{green($nf-paper-2)}, #{blue($nf-paper-2)};
203
+ --bs-primary-rgb: #{red($nf-vermilion)}, #{green($nf-vermilion)}, #{blue($nf-vermilion)};
204
+ --bs-link-color-rgb: #{red($nf-vermilion)}, #{green($nf-vermilion)}, #{blue($nf-vermilion)};
205
+ }
206
+
207
+ @mixin nf-dark-rgb {
208
+ --bs-body-bg-rgb: #{red($nf-paper-dark)}, #{green($nf-paper-dark)}, #{blue($nf-paper-dark)};
209
+ --bs-body-color-rgb: #{red($nf-ink-dark)}, #{green($nf-ink-dark)}, #{blue($nf-ink-dark)};
210
+ --bs-emphasis-color-rgb: #{red($nf-ink-dark)}, #{green($nf-ink-dark)}, #{blue($nf-ink-dark)};
211
+ --bs-secondary-color-rgb: #{red($nf-ink-soft-dark)}, #{green($nf-ink-soft-dark)}, #{blue($nf-ink-soft-dark)};
212
+ --bs-secondary-bg-rgb: #{red($nf-paper-2-dark)}, #{green($nf-paper-2-dark)}, #{blue($nf-paper-2-dark)};
213
+ --bs-tertiary-bg-rgb: #{red($nf-paper-2-dark)}, #{green($nf-paper-2-dark)}, #{blue($nf-paper-2-dark)};
214
+ --bs-primary-rgb: #{red($nf-primary-dark-mode)}, #{green($nf-primary-dark-mode)}, #{blue($nf-primary-dark-mode)};
215
+ --bs-link-color-rgb: #{red($nf-primary-dark-mode)}, #{green($nf-primary-dark-mode)}, #{blue($nf-primary-dark-mode)};
216
+ }
217
+
218
+ :root {
219
+ @include nf-light-rgb;
220
+ }
221
+
222
+ @media (prefers-color-scheme: dark) {
223
+ :root {
224
+ @include nf-dark-rgb;
225
+ }
226
+ }
227
+
228
+ :root[data-bs-theme='dark'] {
229
+ @include nf-dark-rgb;
230
+ }
231
+
232
+ :root[data-bs-theme='light'] {
233
+ @include nf-light-rgb;
234
+ }
235
+
236
+ // The theme uses --bs-card-bg as its universal "framed paper" background
237
+ // (dropdowns, the mobile nav drawer, accordions, pricing chrome). Root-level
238
+ // so it resolves on EVERY consumer; an undefined var() in a background
239
+ // shorthand computes to transparent, which is how invisible panels happen.
240
+ :root {
241
+ --bs-card-bg: var(--omega-surface);
242
+ }
243
+
244
+ // Component surfaces ride the tokens too. (Volt ::selection lives in
245
+ // css/base/_utilities.scss with the rest of the editorial garnish.)
246
+ .card,
247
+ .modal-content,
248
+ .offcanvas,
249
+ .toast,
250
+ .popover {
251
+ --bs-card-bg: var(--omega-surface);
252
+ --bs-card-border-color: var(--omega-line);
253
+ --bs-modal-bg: var(--omega-surface);
254
+ --bs-offcanvas-bg: var(--omega-surface);
255
+ --bs-toast-bg: var(--omega-surface);
256
+ --bs-popover-bg: var(--omega-surface);
257
+ }
@@ -0,0 +1,49 @@
1
+ // Newsflash Theme — Typography
2
+ // Optical-sized serif headlines over a clean grotesk body — the editorial
3
+ // voice of the theme. Fonts are loaded via the theme's `head` block in
4
+ // base.html (Google Fonts), NOT @import-ed here, to avoid render-blocking
5
+ // duplicate loads.
6
+
7
+ // NOTE: families, weights, and line-heights ship as Bootstrap vars in
8
+ // _config.scss ($headings-*, $display-*, $lead-font-weight, $line-height-base)
9
+ // — NOT as element rules here. Page bundles re-emit Bootstrap AFTER the main
10
+ // bundle, so element-rule overrides of Bootstrap-owned props would silently
11
+ // lose on any page that ships page CSS (the stock 300 display/lead weights
12
+ // would come back). Only non-Bootstrap props live below.
13
+
14
+ body {
15
+ -webkit-font-smoothing: antialiased;
16
+ }
17
+
18
+ h1, h2, h3, h4, h5, h6,
19
+ .h1, .h2, .h3, .h4, .h5, .h6 {
20
+ font-optical-sizing: auto;
21
+ letter-spacing: $nf-heading-letter-spacing;
22
+ text-wrap: balance;
23
+ }
24
+
25
+ // Display headlines: tighter tracking — the front-page splash voice
26
+ // (weight 550 + leading 1.04 come from $display-* in _config.scss).
27
+ .display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
28
+ font-family: $nf-font-display;
29
+ font-optical-sizing: auto;
30
+ letter-spacing: -0.022em;
31
+ }
32
+
33
+ // Deks (the standfirst under a headline) — .lead reads as ink-soft prose.
34
+ .lead {
35
+ color: var(--bs-secondary-color);
36
+ line-height: 1.6;
37
+ }
38
+
39
+ // Plain in-content links: vermilion with a visible underline. Buttons set
40
+ // their own text color via --bs-btn-color — guard them so labels never turn
41
+ // vermilion on hover.
42
+ a {
43
+ text-underline-offset: 0.15em;
44
+ text-decoration-thickness: 1.5px;
45
+ }
46
+
47
+ a.btn:hover {
48
+ color: var(--bs-btn-color);
49
+ }
@@ -0,0 +1,122 @@
1
+ // Newsflash Theme — Base
2
+ // Body surface, the film-grain overlay, selection color, and editorial
3
+ // treatments of utility classes the shared (Classy-derived) layouts emit.
4
+ // No theme-prefixed classes in markup: the look comes from restyling
5
+ // STANDARD classes so markup stays swappable across themes.
6
+
7
+ // Body surface
8
+ body {
9
+ background-color: var(--omega-ground);
10
+ color: var(--bs-body-color);
11
+ }
12
+
13
+ // ============================================
14
+ // Film grain — the analog print texture over everything
15
+ // ============================================
16
+ // Fixed SVG-noise overlay; pointer-events none so it never intercepts input.
17
+ // Multiply on paper, screen on dark paper (multiply would just vanish).
18
+ body::after {
19
+ content: "";
20
+ position: fixed;
21
+ inset: 0;
22
+ z-index: 999;
23
+ pointer-events: none;
24
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
25
+ opacity: var(--nf-grain-opacity);
26
+ mix-blend-mode: multiply;
27
+ }
28
+
29
+ [data-bs-theme="dark"] body::after {
30
+ mix-blend-mode: screen;
31
+ }
32
+
33
+ // Volt selection — the highlighter
34
+ ::selection {
35
+ background: var(--nf-volt);
36
+ color: var(--nf-volt-ink);
37
+ }
38
+
39
+ // ============================================
40
+ // Accent text (headline_accent spans) — italic serif vermilion
41
+ // ============================================
42
+ // Fork markup wears newsflash-accent; base markup reaches the same look
43
+ // through the .omega-display em rule below.
44
+ .newsflash-accent {
45
+ font-family: $nf-font-display;
46
+ font-style: italic;
47
+ color: var(--omega-accent);
48
+ }
49
+
50
+ // ============================================
51
+ // Base voice re-tunes: the omega-* type vocabulary the fallthrough
52
+ // surfaces speak (classy's typography partial is deliberately NOT imported;
53
+ // these are the pieces base markup actually uses, in the editorial voice)
54
+ // ============================================
55
+ // Marketing display: optical serif (Fraunces via --omega-font-marketing),
56
+ // accents italic vermilion (the newsflash-accent treatment on base markup).
57
+ .omega-display {
58
+ font-family: var(--omega-font-marketing);
59
+ font-optical-sizing: auto;
60
+ font-weight: 550;
61
+ letter-spacing: -0.022em;
62
+ line-height: 1.06;
63
+
64
+ em,
65
+ i {
66
+ font-style: italic;
67
+ color: var(--omega-accent);
68
+ }
69
+ }
70
+
71
+ .omega-display--hero {
72
+ font-size: clamp(2.6rem, 5.4vw, 4.4rem);
73
+ line-height: 1.04;
74
+ }
75
+
76
+ .omega-display--page {
77
+ font-size: clamp(2.25rem, 4.6vw, 3.375rem);
78
+ }
79
+
80
+ .omega-display--section {
81
+ font-size: clamp(1.875rem, 3.4vw, 2.625rem);
82
+ line-height: 1.08;
83
+ }
84
+
85
+ // Micro labels become the vermilion kicker voice (sans dot; the dot is the
86
+ // fork kicker's flourish). Authored in full: classy's typography partial
87
+ // (the usual .omega-micro home) is not imported.
88
+ .omega-micro {
89
+ font-family: $font-family-sans-serif;
90
+ font-size: 0.72rem;
91
+ font-weight: 800;
92
+ letter-spacing: 0.12em;
93
+ text-transform: uppercase;
94
+ color: var(--omega-accent);
95
+ }
96
+
97
+ // The faintest voice (footnotes, reassurance lines): same home story.
98
+ .omega-quiet {
99
+ color: var(--omega-ink-faint);
100
+ }
101
+
102
+ // Serif voice on arbitrary elements (status page numbers): same home story.
103
+ .text-marketing {
104
+ font-family: var(--omega-font-marketing);
105
+ }
106
+
107
+ // In-page anchors clear the sticky masthead.
108
+ [id] {
109
+ scroll-margin-top: 6rem;
110
+ }
111
+
112
+ // ============================================
113
+ // Highlighter swipe — volt half-height marker behind inline text
114
+ // ============================================
115
+ mark,
116
+ .highlight {
117
+ background: linear-gradient(transparent 55%, var(--nf-volt) 55%);
118
+ color: inherit;
119
+ padding: 0 0.12em;
120
+ box-decoration-break: clone;
121
+ -webkit-box-decoration-break: clone;
122
+ }