@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,275 @@
1
+ ---
2
+ layout: frontend/core/base
3
+
4
+ #### THEME CONFIG ####
5
+ # Hero Section
6
+ hero:
7
+ tagline: "Introducing {{ resolved.config.brand.name }}"
8
+ headline: "The #1 platform for business"
9
+ headline_accent: "success"
10
+ description: "AI automation for modern businesses made simple"
11
+ primary_button:
12
+ text: "Get started free"
13
+ icon: "rocket"
14
+ href: "/dashboard"
15
+ secondary_button:
16
+ text: "See pricing"
17
+ icon: "book-open"
18
+ href: "/pricing"
19
+
20
+ # Trusted By Section (base marketing/trusted-by, restyled)
21
+ trusted_by:
22
+ headline: "Trusted by the best"
23
+ logos:
24
+ - name: "Amazon"
25
+ logo: "amazon"
26
+ - name: "Google"
27
+ logo: "google"
28
+ - name: "HubSpot"
29
+ logo: "hubspot"
30
+ - name: "PayPal"
31
+ logo: "paypal"
32
+ - name: "Slack"
33
+ logo: "slack"
34
+ - name: "Shopify"
35
+ logo: "shopify"
36
+ - name: "Stripe"
37
+ logo: "stripe"
38
+
39
+ # Showcase Section
40
+ showcase:
41
+ superheadline:
42
+ text: "Showcase"
43
+ headline: "What makes {{ resolved.config.brand.name }}"
44
+ headline_accent: "different"
45
+ subheadline: "Powerful features designed to accelerate your success"
46
+ items:
47
+ - title: "Seamless integration"
48
+ description: "Connect with your existing tools and platforms effortlessly. Our system automatically syncs data and streamlines your workflow for maximum efficiency."
49
+ - title: "Data-driven insights"
50
+ description: "Make informed decisions with real-time analytics and actionable insights that help you understand what matters most to your business."
51
+ - title: "Smart automation"
52
+ description: "Focus on what matters while our intelligent platform handles routine tasks automatically, working 24/7 to keep your business running smoothly."
53
+
54
+ # Highlights Section — named `highlights`, not `features`: `features` is a
55
+ # CONFIG section now (the feature catalog, #647) and a page key may not shadow one
56
+ highlights:
57
+ superheadline:
58
+ text: "How it works"
59
+ headline: "Design made"
60
+ headline_accent: "simple"
61
+ subheadline: "Get unlimited design requests delivered fast with our streamlined process."
62
+ cta_button:
63
+ text: "Get started"
64
+ icon: "rocket"
65
+ href: "/dashboard"
66
+ items:
67
+ - title: "Subscribe"
68
+ description: "Choose your plan and submit unlimited design requests."
69
+ icon: "rotate"
70
+ - title: "Receive"
71
+ description: "Get your designs delivered in as fast as two business days."
72
+ icon: "bolt"
73
+ - title: "Revise"
74
+ description: "Request unlimited revisions until it's perfect."
75
+ icon: "thumbs-up"
76
+
77
+ # Testimonials Section
78
+ testimonials:
79
+ superheadline:
80
+ text: "Testimonials"
81
+ items:
82
+ - quote: "This platform transformed my business. The support is incredible!"
83
+ author: "Sarah Johnson"
84
+ role: "CEO"
85
+ company: "TechStart Inc"
86
+ initial: "S"
87
+ - quote: "Best investment I've made. Achieved more here than with any consultant."
88
+ author: "Michael Chen"
89
+ role: "Founder"
90
+ company: "DataFlow"
91
+ initial: "M"
92
+ - quote: "The community support made all the difference in our growth journey."
93
+ author: "Emily Davis"
94
+ role: "Director"
95
+ company: "Creative Studio"
96
+ initial: "E"
97
+
98
+ # Stats Section (base marketing/stats, restyled as color blocks)
99
+ stats:
100
+ - number: "50,000+"
101
+ label: "Active users"
102
+ sublabel: "From 120+ countries"
103
+ - number: "200+"
104
+ label: "Solutions"
105
+ sublabel: "Industry-leading"
106
+ - number: "4.9"
107
+ label: "Average rating"
108
+ - number: "98%"
109
+ label: "Success rate"
110
+ sublabel: "Business growth"
111
+
112
+ # CTA Section (base marketing/cta, restyled as the ink panel)
113
+ cta:
114
+ superheadline:
115
+ text: "Launch"
116
+ headline: "Ready to transform your"
117
+ headline_accent: "business?"
118
+ subheadline: "Join thousands of successful companies who have already accelerated their growth with {{ resolved.config.brand.name }}"
119
+ primary_button:
120
+ text: "Start today"
121
+ href: "/dashboard"
122
+ secondary_button:
123
+ text: "Talk to an expert"
124
+ href: "/contact"
125
+ config:
126
+ theme:
127
+ main:
128
+ class: "pt-0"
129
+ ---
130
+
131
+ {% comment %}
132
+ NEOBRUTALISM HOMEPAGE (identity fork, #177)
133
+ Same resolved.* data contract as the base homepage, different STRUCTURE
134
+ where the neobrutalist design demands it: an asymmetric split hero,
135
+ alternating offset showcase blocks, and big numbered step cards. Those
136
+ bands are hand-built here and wear neo-* BEM classes. Everything with a
137
+ base-section counterpart of the same content shape delegates instead:
138
+ trusted-by (the omega-marquee logo wall, framed by this theme's scss),
139
+ stats (omega-stat cells painted as color blocks), testimonials, and the
140
+ cta band (omega-cta ink panel). Convention: docs/web/sections.md
141
+ "Markup convention: base, skin, fork".
142
+ {% endcomment %}
143
+
144
+ <!-- ============================================ -->
145
+ <!-- HERO: asymmetric split: oversized headline | offset action stack -->
146
+ <!-- ============================================ -->
147
+ <section class="neo-hero text-bg-warning">
148
+ <div class="container">
149
+ <div class="row align-items-center g-5">
150
+ <!-- Left: kicker + giant headline + description -->
151
+ <div class="col-lg-7">
152
+ <p class="neo-kicker neo-kicker--ink text-uppercase mb-4">{{ resolved.hero.tagline }}</p>
153
+ <h1 class="neo-hero__title mb-4">
154
+ {{ resolved.hero.headline }}
155
+ <span class="neo-accent">{{ resolved.hero.headline_accent }}</span>
156
+ </h1>
157
+ <p class="fs-3 fw-medium mb-0" style="max-width: 36ch;">
158
+ {{ resolved.hero.description }}
159
+ </p>
160
+ </div>
161
+
162
+ <!-- Right: stacked, full-width CTA buttons (d-grid = full-width children) -->
163
+ <div class="col-lg-5">
164
+ <div class="d-grid gap-3 neo-hero__actions">
165
+ <a href="{{ resolved.hero.primary_button.href }}" class="btn btn-dark btn-lg">
166
+ <i class="fa-solid fa-{{ resolved.hero.primary_button.icon }} me-2"></i>{{ resolved.hero.primary_button.text }}
167
+ </a>
168
+ <a href="{{ resolved.hero.secondary_button.href }}" class="btn btn-light btn-lg">
169
+ <i class="fa-solid fa-{{ resolved.hero.secondary_button.icon }} me-2"></i>{{ resolved.hero.secondary_button.text }}
170
+ </a>
171
+ </div>
172
+ </div>
173
+ </div>
174
+ </div>
175
+ </section>
176
+
177
+ <!-- ============================================ -->
178
+ <!-- TRUSTED BY: base marquee wall, ink-framed by the theme scss -->
179
+ <!-- ============================================ -->
180
+ {% section "marketing/trusted-by", data: resolved.trusted_by %}
181
+
182
+ <!-- ============================================ -->
183
+ <!-- SHOWCASE: alternating offset blocks that break the grid -->
184
+ <!-- ============================================ -->
185
+ <section class="neo-showcase">
186
+ <div class="container">
187
+ <header class="neo-section-head mb-5">
188
+ {% iftruthy resolved.showcase.superheadline.text %}
189
+ <span class="neo-kicker mb-3">
190
+ {{ resolved.showcase.superheadline.text }}
191
+ </span>
192
+ {% endiftruthy %}
193
+ <h2 class="neo-section-head__title">
194
+ {{ resolved.showcase.headline }}
195
+ <span class="neo-accent">{{ resolved.showcase.headline_accent }}</span>
196
+ </h2>
197
+ </header>
198
+
199
+ {% assign showcase_bgs = "text-bg-primary,text-bg-secondary,text-bg-success,text-bg-info,text-bg-warning" | split: "," %}
200
+ <div class="neo-showcase__list">
201
+ {% for item in resolved.showcase.items %}
202
+ {% assign bg = showcase_bgs[forloop.index0] | default: "text-bg-primary" %}
203
+ {% comment %} Liquid can't use a filter inside `if`, so compute the parity first {% endcomment %}
204
+ {% assign row_parity = forloop.index0 | modulo: 2 %}
205
+ <article class="neo-showcase__row {% if row_parity == 1 %}neo-showcase__row--flip{% endif %}">
206
+ <div class="neo-showcase__num {{ bg }}">
207
+ {{ forloop.index | prepend: '0' | slice: -2, 2 }}
208
+ </div>
209
+ <div class="neo-showcase__body">
210
+ <h3 class="neo-showcase__title">{{ item.title }}</h3>
211
+ <p class="neo-showcase__desc">{{ item.description }}</p>
212
+ </div>
213
+ </article>
214
+ {% endfor %}
215
+ </div>
216
+ </div>
217
+ </section>
218
+
219
+ <!-- ============================================ -->
220
+ <!-- FEATURES: big numbered step cards -->
221
+ <!-- ============================================ -->
222
+ <section class="neo-steps bg-body-tertiary">
223
+ <div class="container">
224
+ <header class="neo-section-head mb-5">
225
+ {% iftruthy resolved.highlights.superheadline.text %}
226
+ <span class="neo-kicker mb-3">
227
+ {{ resolved.highlights.superheadline.text }}
228
+ </span>
229
+ {% endiftruthy %}
230
+ <h2 class="neo-section-head__title">
231
+ {{ resolved.highlights.headline }}
232
+ <span class="neo-accent">{{ resolved.highlights.headline_accent }}</span>
233
+ </h2>
234
+ </header>
235
+
236
+ <div class="row g-4">
237
+ {% for feature in resolved.highlights.items %}
238
+ <div class="col-md-4">
239
+ <div class="card neo-step-card h-100">
240
+ <div class="card-body">
241
+ <div class="neo-step-card__top">
242
+ <span class="neo-step-card__num">{{ forloop.index }}</span>
243
+ <span class="neo-step-card__icon"><i class="fa-solid fa-{{ feature.icon }}"></i></span>
244
+ </div>
245
+ <h3 class="neo-step-card__title">{{ feature.title }}</h3>
246
+ <p class="neo-step-card__desc">{{ feature.description }}</p>
247
+ </div>
248
+ </div>
249
+ </div>
250
+ {% endfor %}
251
+ </div>
252
+
253
+ {% iftruthy resolved.highlights.cta_button %}
254
+ <div class="text-center mt-5">
255
+ <a href="{{ resolved.highlights.cta_button.href }}" class="btn btn-warning btn-lg">
256
+ <i class="fa-solid fa-{{ resolved.highlights.cta_button.icon }} me-2"></i>{{ resolved.highlights.cta_button.text }}
257
+ </a>
258
+ </div>
259
+ {% endiftruthy %}
260
+ </div>
261
+ </section>
262
+
263
+ <!-- ============================================ -->
264
+ <!-- STATS: base stats band, painted as oversized color blocks -->
265
+ <!-- ============================================ -->
266
+ {% section "marketing/stats", items: resolved.stats %}
267
+
268
+ {% section "marketing/testimonials", data: resolved.testimonials %}
269
+
270
+ <!-- ============================================ -->
271
+ <!-- CTA: base cta band, painted as the full-bleed ink block -->
272
+ <!-- ============================================ -->
273
+ {% section "marketing/cta", data: resolved.cta %}
274
+
275
+ {{ content | omega_content_format }}
@@ -0,0 +1,24 @@
1
+ // Neobrutalism Theme — JS entry point
2
+ // Loaded at runtime via webpack's __theme__ alias (import('__theme__/_theme.js')).
3
+ // Exposes Bootstrap globally and wires up theme behaviors on DOM 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
+ /* @dev-only:start */
11
+ {
12
+ console.log('Neobrutalism theme loaded successfully (assets/themes/neobrutalism/_theme.js)');
13
+ }
14
+ /* @dev-only:end */
15
+
16
+ // Theme behaviors (navbar scroll state rides the shared motion engine's
17
+ // data-omega-scroll-watch on the base nav include; no theme JS)
18
+ import initializeTooltips from '__main_assets__/js/libs/initialize-tooltips.js';
19
+
20
+ // Initialize when DOM is ready
21
+ domReady().then(() => {
22
+ // Generic Bootstrap initializations
23
+ initializeTooltips();
24
+ });
@@ -0,0 +1,61 @@
1
+ // Neobrutalism Theme — SCSS entry point
2
+ // Forwards config (so consuming projects can override vars), loads Bootstrap via
3
+ // config, then layers the neobrutalist 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
+ // CSS custom properties (light/dark bridge)
15
+ @import 'css/base/root';
16
+
17
+ // ── The classy FLOOR (cp190, widened for #177 phase 3) ──────────────────────
18
+ // Fall-through surfaces render BASE markup (omega-* classes), and the
19
+ // structural css for that vocabulary lives in classy's partials, which are
20
+ // deliberately TOKEN-PURE, so a full sibling theme imports them directly
21
+ // and they paint through THIS theme's token re-values (ink/paper/accents).
22
+ // Phase 3 widened the floor beyond app/auth to the marketing vocabulary
23
+ // (omega-cta, omega-stats, omega-price-card, omega-band, omega-compare, and
24
+ // the rest) because neobrutalism now renders the base pricing page and the
25
+ // base marketing sections unforked.
26
+ // Imported EARLY on purpose: the floor sits UNDER the theme's own voice, so
27
+ // later neobrutalist rules win every collision.
28
+ // NOT imported: classy's typography (its element rules would beat the
29
+ // Archivo headings this theme sets), layout/general (fixed-nav clearance
30
+ // rhythm; the flush ink bar needs none), and layout/nav (fixed glassy bar;
31
+ // _navigation.scss re-skins .omega-nav below).
32
+ // Contract: docs/shared/theming.md § "CSS fall-through".
33
+ @import '../classy/css/layout/shell';
34
+ @import '../classy/css/layout/footer';
35
+ @import '../classy/css/app/panels';
36
+ @import '../classy/css/pages/auth';
37
+ @import '../classy/css/components/receipt';
38
+ @import '../classy/css/components/badges';
39
+ @import '../classy/css/base/utilities';
40
+ @import '../classy/css/marketing/hero';
41
+ @import '../classy/css/marketing/content';
42
+ @import '../classy/css/marketing/sections';
43
+
44
+ // Base styles
45
+ @import 'css/base/typography';
46
+ @import 'css/base/utilities';
47
+
48
+ // Layout styles
49
+ @import 'css/layout/general';
50
+ @import 'css/layout/navigation';
51
+
52
+ // Component styles
53
+ @import 'css/components/buttons';
54
+ @import 'css/components/cards';
55
+ @import 'css/components/forms';
56
+ @import 'css/components/marketing';
57
+ @import 'css/components/billing-toggle';
58
+
59
+ // Universal Bootstrap overrides (shared across all omega themes).
60
+ // Must come AFTER Bootstrap is loaded via config to use @extend.
61
+ @import '../bootstrap/overrides';
@@ -0,0 +1,46 @@
1
+ // Neobrutalism Theme — Mixins
2
+ // The shared building blocks of the neobrutalist look. Components @include these
3
+ // so the border/shadow/press system lives in ONE place (SSOT) rather than being
4
+ // copy-pasted across buttons, cards, inputs, etc.
5
+
6
+ // Hard border in the current ink color.
7
+ @mixin nb-border($width: var(--nb-border-width)) {
8
+ border: $width solid var(--nb-border-color);
9
+ }
10
+
11
+ // Hard offset shadow (no blur). $size: sm | md | lg.
12
+ @mixin nb-shadow($size: md) {
13
+ @if $size == sm {
14
+ box-shadow: var(--nb-shadow-sm);
15
+ } @else if $size == lg {
16
+ box-shadow: var(--nb-shadow-lg);
17
+ } @else {
18
+ box-shadow: var(--nb-shadow);
19
+ }
20
+ }
21
+
22
+ // The signature interaction: the element sits on a hard offset shadow, then
23
+ // "presses" toward the page on hover/active. THE INVARIANT: the element's
24
+ // translate distance + the shrunk shadow offset must always equal the RESTING
25
+ // shadow offset, so the bottom-right edge stays perfectly pinned (the face and
26
+ // shadow line up exactly when the press completes — no drift).
27
+ //
28
+ // $rest = the element's resting shadow offset. Pass the SAME size you gave
29
+ // nb-shadow() (default 5px = md; pass $nb-shadow-offset-lg for lg-shadow elements).
30
+ @mixin nb-press($rest: $nb-shadow-offset) {
31
+ transition: $nb-transition;
32
+
33
+ // Hover: press ~40% of the way in. shadow = rest - translate (stays pinned).
34
+ &:hover {
35
+ $hover-move: round($rest * 0.4);
36
+ $hover-shadow: $rest - $hover-move;
37
+ transform: translate($hover-move, $hover-move);
38
+ box-shadow: #{$hover-shadow} #{$hover-shadow} 0 var(--nb-shadow-color);
39
+ }
40
+
41
+ // Active: press fully in. translate == rest, shadow collapses to 0 → flush.
42
+ &:active {
43
+ transform: translate($rest, $rest);
44
+ box-shadow: 0 0 0 var(--nb-shadow-color);
45
+ }
46
+ }
@@ -0,0 +1,169 @@
1
+ // Neobrutalism Theme — CSS Custom Properties
2
+ // Bridges SCSS config into runtime CSS variables so light/dark mode switching
3
+ // works without recompilation. Components read these var(--nb-*) tokens, never
4
+ // the raw SCSS values, so dark mode is a single block of overrides.
5
+
6
+ // ============================================
7
+ // Light Mode (default)
8
+ // ============================================
9
+ :root,
10
+ [data-bs-theme="light"] {
11
+ // Structural tokens
12
+ --nb-ink: #{$nb-ink};
13
+ --nb-paper: #{$nb-paper};
14
+ --nb-surface: #{$nb-surface};
15
+ --nb-surface-alt: #{$nb-surface-alt};
16
+
17
+ // Border + shadow color follow the ink
18
+ --nb-border-color: var(--nb-ink);
19
+ --nb-shadow-color: var(--nb-ink);
20
+
21
+ // Border + shadow recipes (used by components)
22
+ --nb-border-width: #{$nb-border-width};
23
+ --nb-border: #{$nb-border-width} solid var(--nb-border-color);
24
+ --nb-shadow-sm: #{$nb-shadow-offset-sm} #{$nb-shadow-offset-sm} 0 var(--nb-shadow-color);
25
+ --nb-shadow: #{$nb-shadow-offset} #{$nb-shadow-offset} 0 var(--nb-shadow-color);
26
+ --nb-shadow-lg: #{$nb-shadow-offset-lg} #{$nb-shadow-offset-lg} 0 var(--nb-shadow-color);
27
+
28
+ // Accent palette (for color-block sections)
29
+ --nb-accent-blue: #{$nb-accent-blue};
30
+ --nb-accent-pink: #{$nb-accent-pink};
31
+ --nb-accent-yellow: #{$nb-accent-yellow};
32
+ --nb-accent-green: #{$nb-accent-green};
33
+ --nb-accent-purple: #{$nb-accent-purple};
34
+ --nb-accent-orange: #{$nb-accent-orange};
35
+
36
+ // INTERACTIVE accent — the single token every hover/active fill points at
37
+ // (nav links, footer links, dropdown items, body links, mobile toggler). It
38
+ // tracks the rendered primary blue (--bs-primary), NOT the yellow signature
39
+ // accent. Retune all interactive states from this one line. Yellow stays
40
+ // reserved for static signature blocks (kicker, highlight, hero, badges).
41
+ --nb-accent-interactive: var(--bs-primary);
42
+ --nb-accent-interactive-ink: #ffffff; // readable text on the interactive fill
43
+
44
+ // Map onto Bootstrap surfaces
45
+ --bs-body-bg: #{$nb-paper};
46
+ --bs-body-bg-rgb: #{red($nb-paper)}, #{green($nb-paper)}, #{blue($nb-paper)};
47
+ --bs-body-color: #{$nb-ink};
48
+ --bs-secondary-bg: #{$nb-surface};
49
+ --bs-tertiary-bg: #{$nb-surface-alt};
50
+ --bs-border-color: var(--nb-ink);
51
+ --bs-card-bg: #{$nb-surface};
52
+ --bs-emphasis-color: #{$nb-ink};
53
+
54
+ // Status (#13) — one green/amber/red site-wide. Declared once: the tokens
55
+ // themselves flip with the scheme (core/css/tokens), so this needs no
56
+ // dark-mode twin below.
57
+ --bs-success: var(--omega-ok);
58
+ --bs-success-rgb: var(--omega-ok-rgb);
59
+ --bs-warning: var(--omega-warn);
60
+ --bs-warning-rgb: var(--omega-warn-rgb);
61
+ --bs-danger: var(--omega-danger);
62
+ --bs-danger-rgb: var(--omega-danger-rgb);
63
+ }
64
+
65
+ // ============================================
66
+ // The --omega-* token re-value (#177 phase 3)
67
+ // ============================================
68
+ // The classy floor partials and core chrome paint through the shared
69
+ // --omega-* contract (core/css/tokens/_index.scss). Restamp the same NAMES
70
+ // with the neobrutalist sheet so fall-through surfaces (pricing, marketing
71
+ // sections, app panels) read ink/paper/hard-shadow instead of the core
72
+ // placeholders. Plumbing mirrors the core sheet exactly (three stamps: OS
73
+ // preference via media query, appearance.js's data-bs-theme attribute beats
74
+ // it both ways). Genuinely neobrutalist extras keep the --nb-* namespace.
75
+ @mixin nb-omega-light-tokens {
76
+ --omega-ground: #{$nb-paper};
77
+ --omega-surface: #{$nb-surface};
78
+ --omega-surface-2: #{$nb-surface-alt};
79
+ --omega-ink: #{$nb-ink};
80
+ --omega-ink-muted: #{mix($nb-ink, $nb-paper, 72%)};
81
+ --omega-ink-faint: #{mix($nb-ink, $nb-paper, 48%)};
82
+ --omega-line: #{$nb-ink}; // hard ink rules ARE the identity, no soft dividers
83
+ --omega-line-strong: #{$nb-ink};
84
+ --omega-accent: #{$primary}; // placeholder; brand.color wins at build
85
+ --omega-accent-hover: #{mix(black, $primary, 12%)};
86
+ --omega-accent-active: #{mix(black, $primary, 18%)};
87
+ --omega-accent-subtle: #{rgba($primary, 0.12)};
88
+ --omega-accent-ink: #ffffff;
89
+ --omega-accent-ring: #{rgba($primary, 0.35)};
90
+ --omega-shadow-1: #{$nb-shadow-offset-sm} #{$nb-shadow-offset-sm} 0 #{$nb-ink};
91
+ --omega-shadow-2: #{$nb-shadow-offset} #{$nb-shadow-offset} 0 #{$nb-ink};
92
+ }
93
+
94
+ @mixin nb-omega-dark-tokens {
95
+ --omega-ground: #{$nb-paper-dark};
96
+ --omega-surface: #{$nb-surface-dark};
97
+ --omega-surface-2: #{$nb-surface-alt-dark};
98
+ --omega-ink: #{$nb-ink-dark};
99
+ --omega-ink-muted: #{mix($nb-ink-dark, $nb-paper-dark, 72%)};
100
+ --omega-ink-faint: #{mix($nb-ink-dark, $nb-paper-dark, 48%)};
101
+ --omega-line: #{$nb-ink-dark};
102
+ --omega-line-strong: #{$nb-ink-dark};
103
+ --omega-accent: #{$primary}; // the flat saturated blue holds in both modes
104
+ --omega-accent-hover: #{mix(white, $primary, 12%)};
105
+ --omega-accent-active: #{mix(white, $primary, 18%)};
106
+ --omega-accent-subtle: #{rgba($primary, 0.16)};
107
+ --omega-accent-ink: #ffffff;
108
+ --omega-accent-ring: #{rgba($primary, 0.35)};
109
+ --omega-shadow-1: #{$nb-shadow-offset-sm} #{$nb-shadow-offset-sm} 0 #{$nb-ink-dark};
110
+ --omega-shadow-2: #{$nb-shadow-offset} #{$nb-shadow-offset} 0 #{$nb-ink-dark};
111
+ }
112
+
113
+ :root {
114
+ @include nb-omega-light-tokens;
115
+
116
+ // Shape: zero radius everywhere the contract offers one (the signature).
117
+ // The pill slot keeps its value so rounded-circle avatars and the shared
118
+ // segmented thumb stay intact.
119
+ --omega-radius-xs: 0;
120
+ --omega-radius-s: 0;
121
+ --omega-radius-m: 0;
122
+ --omega-radius-l: 0;
123
+ --omega-radius-xl: 0;
124
+
125
+ // Type: chunky grotesk display, clean grotesk body, mono accents
126
+ --omega-font-ui: #{$font-family-sans-serif};
127
+ --omega-font-mono: #{$nb-font-mono};
128
+ --omega-font-marketing: #{$nb-font-display};
129
+ --omega-font-display: #{$nb-font-display};
130
+ }
131
+
132
+ // OS preference carries when no explicit choice is stamped…
133
+ @media (prefers-color-scheme: dark) {
134
+ :root {
135
+ @include nb-omega-dark-tokens;
136
+ }
137
+ }
138
+
139
+ // …and the appearance.js stamp beats the OS in BOTH directions.
140
+ :root[data-bs-theme='dark'] {
141
+ @include nb-omega-dark-tokens;
142
+ }
143
+
144
+ :root[data-bs-theme='light'] {
145
+ @include nb-omega-light-tokens;
146
+ }
147
+
148
+ // ============================================
149
+ // Dark Mode
150
+ // ============================================
151
+ // Ink flips to near-white: borders and hard shadows become light on dark paper.
152
+ [data-bs-theme="dark"] {
153
+ --nb-ink: #{$nb-ink-dark};
154
+ --nb-paper: #{$nb-paper-dark};
155
+ --nb-surface: #{$nb-surface-dark};
156
+ --nb-surface-alt: #{$nb-surface-alt-dark};
157
+
158
+ --nb-border-color: var(--nb-ink);
159
+ --nb-shadow-color: var(--nb-ink);
160
+
161
+ --bs-body-bg: #{$nb-paper-dark};
162
+ --bs-body-bg-rgb: #{red($nb-paper-dark)}, #{green($nb-paper-dark)}, #{blue($nb-paper-dark)};
163
+ --bs-body-color: #{$nb-ink-dark};
164
+ --bs-secondary-bg: #{$nb-surface-dark};
165
+ --bs-tertiary-bg: #{$nb-surface-alt-dark};
166
+ --bs-border-color: var(--nb-ink);
167
+ --bs-card-bg: #{$nb-surface-dark};
168
+ --bs-emphasis-color: #{$nb-ink-dark};
169
+ }
@@ -0,0 +1,61 @@
1
+ // Neobrutalism Theme — Typography
2
+ // Chunky, confident, tightly-tracked headings; clean grotesk body.
3
+ // Fonts are loaded via the theme's `head` block in base.html (Google Fonts),
4
+ // NOT @import-ed here, to avoid render-blocking duplicate loads.
5
+
6
+ body {
7
+ font-family: $font-family-sans-serif;
8
+ font-weight: 400;
9
+ -webkit-font-smoothing: antialiased;
10
+ }
11
+
12
+ h1, h2, h3, h4, h5, h6,
13
+ .h1, .h2, .h3, .h4, .h5, .h6 {
14
+ font-family: $nb-font-display;
15
+ font-weight: $headings-font-weight;
16
+ letter-spacing: $nb-heading-letter-spacing;
17
+ line-height: 1.05;
18
+ text-wrap: balance;
19
+ }
20
+
21
+ // Display headings get extra weight + tighter tracking
22
+ .display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
23
+ font-family: $nb-font-display;
24
+ font-weight: 900;
25
+ letter-spacing: -0.03em;
26
+ line-height: 0.98;
27
+ }
28
+
29
+ // Monospace accents (kickers, labels, code-ish tags)
30
+ .font-mono,
31
+ code, kbd, samp, pre {
32
+ font-family: $nb-font-mono;
33
+ }
34
+
35
+ // Marker-style background swipe on emphasized inline text (mark is the
36
+ // element markdown/content emits; the fork vocabulary uses .neo-accent).
37
+ mark {
38
+ background: var(--nb-accent-yellow);
39
+ color: #111111;
40
+ padding: 0 0.15em;
41
+ box-decoration-break: clone;
42
+ -webkit-box-decoration-break: clone;
43
+ }
44
+
45
+ // Links: bold, underlined, no fade — they look clickable and stay readable in both
46
+ // modes. Hover shifts to the interactive accent (blue), matching every other hover
47
+ // in the theme. Buttons/nav/dropdown/footer links opt out of this generic rule via
48
+ // their own higher-specificity hover, so this only catches plain in-content links.
49
+ a {
50
+ font-weight: 600;
51
+ text-underline-offset: 0.15em;
52
+ text-decoration-thickness: 2px;
53
+
54
+ &:hover { color: var(--nb-accent-interactive); }
55
+ }
56
+
57
+ // Buttons are <a> too, but set their text via --bs-btn-color. A direct `color` on
58
+ // `a:hover` would beat that var and turn button labels blue — exclude them so the
59
+ // button keeps its own (frozen) text color. Nav/dropdown/footer links already win
60
+ // on specificity with their explicit white hover, so they need no guard here.
61
+ a.btn:hover { color: var(--bs-btn-color); }