@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,43 @@
1
+ // ============================================
2
+ // Browser Extension Manager - Main Entry
3
+ // ============================================
4
+ // This is the main SCSS entry point for Browser Extension Manager
5
+ // Import this in your extension components using:
6
+ // @use 'omega-extension' as * with ($primary: #2563EB);
7
+
8
+ // App shell mechanics (#111) — the .omega-shell grid, region geometry and the
9
+ // collapse/drawer states, vendored from @omega.js/web alongside the theme's
10
+ // shell SKIN. Loaded BEFORE the theme (Sass emits a module's CSS at its first
11
+ // load, @forward included) so the skin layers OVER the mechanics, exactly as
12
+ // web's core/css/main.scss orders them.
13
+ @use 'shell/index' as omega-shell;
14
+
15
+ // Forward the theme (allows consuming project to configure it)
16
+ @forward 'theme';
17
+
18
+ // Core design tokens (C4) — the cross-target `--omega-*` contract, vendored
19
+ // from @omega.js/web at prepare (package.json `omega.vendorAssets`). Emitted
20
+ // BEFORE the theme so theme rules can override at equal specificity.
21
+ @use 'tokens/index' as omega-tokens;
22
+
23
+ @use 'theme' as *;
24
+
25
+ // Import core extension styles
26
+ @use 'core/_initialize' as *;
27
+ @use 'core/_utilities' as *;
28
+ @use 'core/_animations' as *;
29
+
30
+ // Icon presentation (#183): the square glyph-centered box, the size scale and
31
+ // the spin/bounce/beat utilities, vendored VERBATIM from @omega.js/web's one
32
+ // icon sheet at prepare (package.json `omega.vendorAssets`), same channel as
33
+ // the tokens and shell sheets above. Never hand-written here.
34
+ @use 'core/_fontawesome' as *;
35
+
36
+ // Import component-specific styles
37
+ @use '_component-specific' as *;
38
+
39
+ // First cross-target token consumer: native controls pick up the brand accent.
40
+ // The full component migration onto tokens lands with the D10 skin (C4 cp109).
41
+ body {
42
+ accent-color: var(--omega-accent);
43
+ }
@@ -0,0 +1,207 @@
1
+ // OMEGA app shell — structural mechanics for backend/admin surfaces (C3).
2
+ // Layout GEOMETRY only: regions (sidebar / topbar / main / scrim) and
3
+ // STATES (desktop rail collapse, mobile drawer, viewport lock). All paint
4
+ // comes from the token contract (tokens/_index.scss), so a skin restyles by
5
+ // redefining tokens or layering rules — never by fighting these.
6
+ //
7
+ // Markup contract (theme layouts emit this; core/js/core/app-shell.js drives it):
8
+ //
9
+ // <div class="omega-shell" data-omega-shell>
10
+ // <aside class="omega-shell__sidebar" id="…">
11
+ // …pinned head: brand, and any popover-owning module (the selector)…
12
+ // <div class="omega-shell__sidebar-scroll">
13
+ // …nav; text that hides in the rail wears .omega-shell__label…
14
+ // </div>
15
+ // </aside>
16
+ // <header class="omega-shell__topbar">
17
+ // <div class="omega-shell__topbar-start"> (both toggles render only while the page has a rail, #740)
18
+ // <button data-shell-toggle="drawer" aria-expanded="false" aria-controls="…">…</button>
19
+ // <button data-shell-toggle="collapse" aria-expanded="true" aria-controls="…">…</button>
20
+ // </div>
21
+ // <div class="omega-shell__topbar-end">…</div>
22
+ // </header>
23
+ // <button class="omega-shell__drawer-toggle"> (only when the page has a rail and NO topbar, #719)
24
+ // <main class="omega-shell__main">…</main>
25
+ // <div class="omega-shell__scrim" data-shell-dismiss></div>
26
+ // </div>
27
+ //
28
+ // States (stamped on .omega-shell by app-shell.js):
29
+ // data-shell-collapsed="true" — desktop sidebar → icon rail (persisted)
30
+ // data-shell-open="true" — mobile drawer slid in (scrim visible)
31
+ // Variant: .omega-shell--locked — main never scrolls (calendar/studio pages
32
+ // manage their own interior scroll).
33
+
34
+ // Below this, the sidebar becomes the drawer (matches classy's xl cutover).
35
+ $shell-breakpoint: 1200px;
36
+
37
+ :root {
38
+ --omega-shell-sidebar-w: 264px;
39
+ --omega-shell-rail-w: 68px;
40
+ --omega-shell-topbar-h: 60px;
41
+ --omega-shell-pad: 24px;
42
+ }
43
+
44
+ .omega-shell {
45
+ display: grid;
46
+ grid-template-columns: auto minmax(0, 1fr);
47
+ grid-template-rows: auto minmax(0, 1fr);
48
+ height: 100dvh;
49
+ background: var(--omega-ground);
50
+ color: var(--omega-ink);
51
+ }
52
+
53
+ // The rail clips NOTHING (#319): a module that opens a popover — the project
54
+ // selector — has to paint outside the 264px box, so the scroll lives one level
55
+ // down on __sidebar-scroll and the rail is merely positioned. Its z-index is
56
+ // the explicit stacking order for those popovers: above sticky page chrome
57
+ // inside the content column (bootstrap's 1020 band), below the drawer/modal
58
+ // layers.
59
+ .omega-shell__sidebar {
60
+ display: flex;
61
+ flex-direction: column;
62
+ grid-row: 1 / -1;
63
+ position: relative;
64
+ z-index: 1030;
65
+ width: var(--omega-shell-sidebar-w);
66
+ background: var(--omega-surface);
67
+ border-inline-end: 1px solid var(--omega-line);
68
+ transition: width var(--omega-speed) var(--omega-ease), transform var(--omega-speed) var(--omega-ease);
69
+ }
70
+
71
+ // Everything under the pinned head scrolls here — nav plus the bottom slot,
72
+ // which keeps its `mt-auto` push because this region is the flex column now.
73
+ .omega-shell__sidebar-scroll {
74
+ display: flex;
75
+ flex: 1;
76
+ flex-direction: column;
77
+ min-height: 0;
78
+ overflow-y: auto;
79
+ }
80
+
81
+ // A rail popover can now outgrow the viewport (nothing clips it), and the
82
+ // shell page itself never scrolls (100dvh grid) — so a long selector menu
83
+ // caps itself and scrolls internally, keeping the tail reachable on short
84
+ // viewports (#319).
85
+ .omega-shell__sidebar .dropdown-menu {
86
+ max-height: calc(100dvh - 8rem);
87
+ overflow-y: auto;
88
+ }
89
+
90
+ .omega-shell__topbar {
91
+ display: flex;
92
+ align-items: center;
93
+ gap: 8px;
94
+ grid-column: 2;
95
+ min-height: var(--omega-shell-topbar-h);
96
+ padding-inline: 12px;
97
+ background: var(--omega-surface);
98
+ border-bottom: 1px solid var(--omega-line);
99
+ }
100
+
101
+ .omega-shell__topbar-start,
102
+ .omega-shell__topbar-end {
103
+ display: flex;
104
+ align-items: center;
105
+ gap: 8px;
106
+ }
107
+
108
+ .omega-shell__topbar-end {
109
+ margin-inline-start: auto;
110
+ }
111
+
112
+ // The row is PINNED, not auto-placed (#741): a page that turns the topbar off
113
+ // would otherwise land main in the `auto` row, size it to its content, and
114
+ // hand the scroll back to the document. An empty `auto` row is zero height,
115
+ // so row 2 is the whole `1fr` with or without a topbar — and the drawer block
116
+ // below re-places only the column, so the pin holds at every width.
117
+ .omega-shell__main {
118
+ grid-column: 2;
119
+ grid-row: 2;
120
+ overflow-y: auto;
121
+ padding: var(--omega-shell-pad);
122
+ }
123
+
124
+ // The floating drawer toggle: a page with a rail and no topbar renders it
125
+ // instead of the topbar's copy ([#719]). It sits above main and below the
126
+ // drawer + scrim, so opening the drawer covers it and the scrim takes the
127
+ // next tap. The layout hides it above the cutover with `d-xl-none` (the rail
128
+ // is on screen there), so this block is geometry only.
129
+ .omega-shell__drawer-toggle {
130
+ position: fixed;
131
+ inset-block-start: 12px;
132
+ inset-inline-start: 12px;
133
+ z-index: 1035;
134
+ background: var(--omega-surface);
135
+ border: 1px solid var(--omega-line);
136
+ border-radius: var(--omega-radius-m);
137
+ }
138
+
139
+ // Scrim only participates in the mobile drawer state.
140
+ .omega-shell__scrim {
141
+ display: none;
142
+ position: fixed;
143
+ inset: 0;
144
+ z-index: 1040; // pairs with the drawer below; sits under modal layers (1050+)
145
+ background: rgb(0 0 0 / 45%);
146
+ }
147
+
148
+ // ─── Desktop rail collapse ───────────────────────────────────────────────────
149
+
150
+ .omega-shell[data-shell-collapsed='true'] .omega-shell__sidebar {
151
+ width: var(--omega-shell-rail-w);
152
+ }
153
+
154
+ .omega-shell[data-shell-collapsed='true'] .omega-shell__label {
155
+ display: none;
156
+ }
157
+
158
+ // ─── Viewport-locked variant ─────────────────────────────────────────────────
159
+
160
+ .omega-shell--locked .omega-shell__main {
161
+ overflow: hidden;
162
+ }
163
+
164
+ // ─── Mobile: sidebar becomes the drawer ──────────────────────────────────────
165
+
166
+ @media (max-width: ($shell-breakpoint - 0.02px)) {
167
+ .omega-shell {
168
+ grid-template-columns: minmax(0, 1fr);
169
+ }
170
+
171
+ .omega-shell__topbar,
172
+ .omega-shell__main {
173
+ grid-column: 1;
174
+ }
175
+
176
+ .omega-shell__sidebar {
177
+ position: fixed;
178
+ inset-block: 0;
179
+ inset-inline-start: 0;
180
+ z-index: 1045;
181
+ transform: translateX(-100%);
182
+ }
183
+
184
+ // The drawer always shows at full width with labels — desktop rail
185
+ // collapse has no meaning here.
186
+ .omega-shell[data-shell-collapsed='true'] .omega-shell__sidebar {
187
+ width: var(--omega-shell-sidebar-w);
188
+ }
189
+
190
+ .omega-shell[data-shell-collapsed='true'] .omega-shell__label {
191
+ display: revert;
192
+ }
193
+
194
+ .omega-shell[data-shell-open='true'] .omega-shell__sidebar {
195
+ transform: translateX(0);
196
+ }
197
+
198
+ .omega-shell[data-shell-open='true'] .omega-shell__scrim {
199
+ display: block;
200
+ }
201
+ }
202
+
203
+ @media (prefers-reduced-motion: reduce) {
204
+ .omega-shell__sidebar {
205
+ transition: none;
206
+ }
207
+ }
@@ -0,0 +1,166 @@
1
+ // OMEGA core design tokens — the runtime contract every theme (and, at C4,
2
+ // every target) consumes. CSS custom properties ONLY: themes restyle by
3
+ // redefining tokens, components read `var(--omega-*)` and never hardcode.
4
+ //
5
+ // VALUES are the classy v2 sheet (docs/web/classy-v2/DIRECTION.md, Ian-approved
6
+ // draft-2 comps): warm-paper light neutrals, de-blued charcoal dark, a single
7
+ // brand accent slot, reserved status hues, and the Manus-split type stacks.
8
+ // The NAMES plus the light/dark/attribute plumbing below are the contract
9
+ // (D2: dual-theme at the token level from day one).
10
+ //
11
+ // The accent family is a BUILD-TIME override surface: when `brand.color`
12
+ // is set, head.html emits inline `:root` ramps from composeBrandTokens
13
+ // (src/brand-tokens.js) — a light ramp AND a dark-variant ramp stamped with
14
+ // this same plumbing — that win the cascade over these placeholders.
15
+ //
16
+ // Theme attribute: `data-bs-theme` is what core/js/core/appearance.js
17
+ // stamps today (Bootstrap-era name; renames alongside the appearance UI
18
+ // when classy retires — keyed here in exactly one place on purpose).
19
+ //
20
+ // Type presets: `data-omega-type` on <html> re-pairs the font tokens
21
+ // (mix is the default pairing — serif marketing display over sans UI).
22
+ //
23
+ // Surface-2 moves in OPPOSITE directions per mode, on purpose (#152): dark
24
+ // elevates by getting lighter (#1d1d1f over the #0d0d0e ground), light
25
+ // elevates with white + shadow and RECESSES by getting darker. It shipped at
26
+ // #f6f6f5, one point off the light ground, so anything painting it directly
27
+ // on the page was invisible in light mode and correct in dark. #ececeb sits
28
+ // between the ground and the hairline in the warm-neutral ramp: a visible well
29
+ // on the ground AND on a white card, still nowhere near --omega-line-strong.
30
+ // Its Bootstrap twins (`$classy-surface-2-light`, `--bs-secondary-bg-rgb` in
31
+ // classy's root bridge) carry the same value and move with it.
32
+ //
33
+ // Status hues ship in PAIRS: `--omega-ok` and `--omega-ok-rgb` (same for
34
+ // warn/danger). Bootstrap's translucency utilities paint from
35
+ // `rgba(var(--bs-success-rgb), …)`, which no var() can feed a hex to, so each
36
+ // theme's root bridge points --bs-success/-warning/-danger and their -rgb
37
+ // companions at these — ONE green for `bg-success`, `.text-success` and every
38
+ // token-painted glyph, in both modes (#13). A theme that re-values a status
39
+ // hue MUST re-value its -rgb twin or the two drift apart again.
40
+
41
+ @mixin light-tokens {
42
+ --omega-ground: #f5f5f4;
43
+ --omega-surface: #ffffff;
44
+ --omega-surface-2: #ececeb; // the light well: RECESSED off the ground, never a second white
45
+ --omega-ink: #1a1a19;
46
+ --omega-ink-muted: #6d6d6c;
47
+ --omega-ink-faint: #a1a19e;
48
+ --omega-line: #e8e8e6;
49
+ --omega-line-strong: #d8d8d5;
50
+ --omega-accent: #2563eb; // placeholder — brand.color wins at build
51
+ --omega-accent-hover: #1451d8;
52
+ --omega-accent-active: #124ac6;
53
+ --omega-accent-subtle: rgba(37, 99, 235, 0.12);
54
+ --omega-accent-ink: #ffffff;
55
+ --omega-accent-ring: rgba(37, 99, 235, 0.35);
56
+ --omega-ok: #12925c;
57
+ --omega-ok-rgb: 18, 146, 92;
58
+ --omega-warn: #c47206;
59
+ --omega-warn-rgb: 196, 114, 6;
60
+ --omega-danger: #d92d20;
61
+ --omega-danger-rgb: 217, 45, 32;
62
+ --omega-chart-2: #0f8fa9;
63
+ --omega-chart-3: #7a45b5;
64
+ --omega-chart-4: #b0416a;
65
+ --omega-chart-5: #a06a08;
66
+ --omega-chart-6: #6a7f2b;
67
+ --omega-shadow-1: 0 1px 2px rgb(24 23 21 / 5%);
68
+ --omega-shadow-2: 0 18px 44px rgb(24 23 21 / 10%);
69
+ }
70
+
71
+ @mixin dark-tokens {
72
+ --omega-ground: #0d0d0e;
73
+ --omega-surface: #151516;
74
+ --omega-surface-2: #1d1d1f;
75
+ --omega-ink: #ebebea;
76
+ --omega-ink-muted: #9f9fa0;
77
+ --omega-ink-faint: #6c6c6e;
78
+ --omega-line: #262628;
79
+ --omega-line-strong: #333336;
80
+ --omega-accent: #5484ef; // placeholder — brand.color's dark ramp wins at build
81
+ --omega-accent-hover: #336dec;
82
+ --omega-accent-active: #2060eb;
83
+ --omega-accent-subtle: rgba(84, 132, 239, 0.16);
84
+ --omega-accent-ink: #111213;
85
+ --omega-accent-ring: rgba(84, 132, 239, 0.35);
86
+ --omega-ok: #3ecf8e;
87
+ --omega-ok-rgb: 62, 207, 142;
88
+ --omega-warn: #f5a524;
89
+ --omega-warn-rgb: 245, 165, 36;
90
+ --omega-danger: #f0574d;
91
+ --omega-danger-rgb: 240, 87, 77;
92
+ --omega-chart-2: #1f9fb4;
93
+ --omega-chart-3: #c09aec;
94
+ --omega-chart-4: #ee89a8;
95
+ --omega-chart-5: #e0a33c;
96
+ --omega-chart-6: #a9c153;
97
+ --omega-shadow-1: 0 1px 2px rgb(0 0 0 / 30%);
98
+ --omega-shadow-2: 0 18px 44px rgb(0 0 0 / 45%);
99
+ }
100
+
101
+ :root {
102
+ @include light-tokens;
103
+
104
+ // scheme-agnostic
105
+ --omega-radius-xs: 6px;
106
+ --omega-radius-s: 8px;
107
+ --omega-radius-m: 10px;
108
+ --omega-radius-l: 14px;
109
+ --omega-radius-xl: 20px;
110
+ --omega-radius-pill: 50rem;
111
+ --omega-speed: 160ms;
112
+ --omega-speed-slow: 550ms;
113
+ --omega-speed-first-paint: 300ms; // the first viewport's reveal, see motion/_index.scss
114
+ --omega-ease: cubic-bezier(0.25, 0.5, 0.35, 1);
115
+
116
+ // Type stacks (D5: system stacks until Ian picks vendored faces — the
117
+ // token seam makes that swap a values-only change).
118
+ --omega-font-ui: -apple-system, blinkmacsystemfont, 'Segoe UI', roboto, 'Helvetica Neue', arial, sans-serif;
119
+ --omega-font-serif: ui-serif, georgia, 'Times New Roman', times, serif;
120
+ --omega-font-mono: ui-monospace, 'SF Mono', sfmono-regular, menlo, consolas, 'Liberation Mono', monospace;
121
+
122
+ // Pairing slots components actually read: marketing display vs app display.
123
+ // Default = the "mix" pairing (serif marketing, sans app).
124
+ --omega-font-marketing: var(--omega-font-serif);
125
+ --omega-font-display: var(--omega-font-ui);
126
+
127
+ // Chart series-1 rides the accent; 2–6 are the CVD-validated categorical
128
+ // ramp above (cool half first, warm half after — what keeps two vocabularies
129
+ // apart at a glance). It is ONE ramp for two surfaces: a chart series
130
+ // (core/js/libs/charts.js) and a `.omega-badge-tone` chip read the same slot,
131
+ // so the same thing is the same color wherever it appears. Muted on purpose
132
+ // — status is told by a dot and a label, never by color alone.
133
+ --omega-chart-1: var(--omega-accent);
134
+ }
135
+
136
+ // Consumer type presets — one attribute (or a token override in main.scss)
137
+ // re-pairs the display faces everywhere.
138
+ :root[data-omega-type='sans'] {
139
+ --omega-font-marketing: var(--omega-font-ui);
140
+ }
141
+
142
+ :root[data-omega-type='serif'] {
143
+ --omega-font-marketing: var(--omega-font-serif);
144
+ --omega-font-display: var(--omega-font-serif);
145
+ }
146
+
147
+ :root[data-omega-type='mono'] {
148
+ --omega-font-marketing: var(--omega-font-mono);
149
+ --omega-font-display: var(--omega-font-mono);
150
+ }
151
+
152
+ // OS preference carries when no explicit choice is stamped…
153
+ @media (prefers-color-scheme: dark) {
154
+ :root {
155
+ @include dark-tokens;
156
+ }
157
+ }
158
+
159
+ // …and the appearance.js stamp beats the OS in BOTH directions.
160
+ :root[data-bs-theme='dark'] {
161
+ @include dark-tokens;
162
+ }
163
+
164
+ :root[data-bs-theme='light'] {
165
+ @include light-tokens;
166
+ }
@@ -0,0 +1,136 @@
1
+ /**
2
+ * App Shell Module
3
+ * Drives the .omega-shell mechanics (core/css/shell/_index.scss): desktop
4
+ * sidebar collapse (persisted) and the mobile drawer (scrim + Escape dismiss).
5
+ * Controls are declarative — [data-shell-toggle="collapse|drawer"] and
6
+ * [data-shell-dismiss] anywhere in the page.
7
+ */
8
+ import omega from '@omega.js/client';
9
+
10
+ // Constants
11
+ const STORAGE_KEY = 'shell.collapsed';
12
+
13
+ // Module
14
+ export default () => {
15
+ const $shell = document.querySelector('[data-omega-shell]');
16
+
17
+ // Create app shell API
18
+ const shellAPI = {
19
+ /**
20
+ * Whether the desktop sidebar is collapsed to the icon rail
21
+ * @returns {boolean}
22
+ */
23
+ isCollapsed: () => $shell?.getAttribute('data-shell-collapsed') === 'true',
24
+
25
+ /**
26
+ * Whether the mobile drawer is open
27
+ * @returns {boolean}
28
+ */
29
+ isOpen: () => $shell?.getAttribute('data-shell-open') === 'true',
30
+
31
+ /**
32
+ * Collapse or expand the desktop sidebar (persisted)
33
+ * @param {boolean} value
34
+ */
35
+ setCollapsed: (value) => {
36
+ if (!$shell) {
37
+ return;
38
+ }
39
+
40
+ $shell.setAttribute('data-shell-collapsed', value ? 'true' : 'false');
41
+ omega.storage().set(STORAGE_KEY, !!value);
42
+ syncControls(shellAPI);
43
+ },
44
+
45
+ /**
46
+ * Open or close the mobile drawer (not persisted)
47
+ * @param {boolean} value
48
+ */
49
+ setOpen: (value) => {
50
+ if (!$shell) {
51
+ return;
52
+ }
53
+
54
+ $shell.setAttribute('data-shell-open', value ? 'true' : 'false');
55
+ syncControls(shellAPI);
56
+ },
57
+
58
+ /**
59
+ * Toggle the desktop sidebar collapse state
60
+ */
61
+ toggleCollapsed() {
62
+ this.setCollapsed(!this.isCollapsed());
63
+ },
64
+
65
+ /**
66
+ * Toggle the mobile drawer
67
+ */
68
+ toggleOpen() {
69
+ this.setOpen(!this.isOpen());
70
+ },
71
+ };
72
+
73
+ // Register on the omega library — web's bundle entry creates the container before
74
+ // this runs; vendored surfaces (desktop/extension renderers) call this
75
+ // module directly with no such entry, so create it if absent (#111)
76
+ omega._library = omega._library || {};
77
+ omega._library.appShell = shellAPI;
78
+
79
+ // No shell on this page — the API stays registered but inert
80
+ if (!$shell) {
81
+ return;
82
+ }
83
+
84
+ // Restore the persisted collapse state
85
+ if (String(omega.storage().get(STORAGE_KEY)) === 'true') {
86
+ $shell.setAttribute('data-shell-collapsed', 'true');
87
+ }
88
+
89
+ // Delegated controls
90
+ document.addEventListener('click', (event) => {
91
+ const $control = event.target.closest('[data-shell-toggle], [data-shell-dismiss]');
92
+
93
+ if (!$control) {
94
+ return;
95
+ }
96
+
97
+ event.preventDefault();
98
+
99
+ if ($control.hasAttribute('data-shell-dismiss')) {
100
+ shellAPI.setOpen(false);
101
+ return;
102
+ }
103
+
104
+ if ($control.getAttribute('data-shell-toggle') === 'collapse') {
105
+ shellAPI.toggleCollapsed();
106
+ } else {
107
+ shellAPI.toggleOpen();
108
+ }
109
+ });
110
+
111
+ // Escape closes the drawer
112
+ document.addEventListener('keydown', (event) => {
113
+ if (event.key === 'Escape' && shellAPI.isOpen()) {
114
+ shellAPI.setOpen(false);
115
+ }
116
+ });
117
+
118
+ // Reflect the restored state onto the controls
119
+ syncControls(shellAPI);
120
+
121
+ console.log('App shell module loaded');
122
+ };
123
+
124
+ /**
125
+ * Sync aria-expanded on every shell control to the current state
126
+ * @param {object} shellAPI - The shell API
127
+ */
128
+ const syncControls = (shellAPI) => {
129
+ document.querySelectorAll('[data-shell-toggle]').forEach(($el) => {
130
+ const expanded = $el.getAttribute('data-shell-toggle') === 'collapse'
131
+ ? !shellAPI.isCollapsed()
132
+ : shellAPI.isOpen();
133
+
134
+ $el.setAttribute('aria-expanded', expanded ? 'true' : 'false');
135
+ });
136
+ };
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Initialize Bootstrap Tooltips
3
+ * Finds all elements with data-bs-toggle="tooltip" and initializes them
4
+ *
5
+ * The ONE home ([#99](https://github.com/Omega-JS-Stack/omega/issues/99)):
6
+ * every theme shipped a byte-identical copy under its own `js/`, so a fix
7
+ * had to be made three times. Themes import it off the core layer
8
+ * (`__main_assets__/js/libs/initialize-tooltips.js`) — same lane as the
9
+ * chart helper beside it — and `window.bootstrap` is already global by the
10
+ * time a theme's DOM-ready handler calls this.
11
+ *
12
+ * @param {ParentNode} [$root] - the subtree to scan; markup injected AFTER the
13
+ * page-load pass (the change-plan modal's feature bullets) passes its own
14
+ * container so only the new triggers are wired.
15
+ */
16
+ export default function initializeTooltips($root = document) {
17
+ const $tooltipTriggers = $root.querySelectorAll('[data-bs-toggle="tooltip"]');
18
+
19
+ // If no tooltips found, exit early
20
+ if ($tooltipTriggers.length === 0) {
21
+ return;
22
+ }
23
+
24
+ // Log the number of tooltips being initialized
25
+ console.log(`Initializing ${$tooltipTriggers.length} tooltips`);
26
+
27
+ // Initialize each tooltip
28
+ $tooltipTriggers.forEach(($el) => {
29
+ new bootstrap.Tooltip($el);
30
+ });
31
+ }
@@ -0,0 +1,94 @@
1
+ // Shared reCAPTCHA v3 management — lazy script load + token mint for any
2
+ // public form that posts to a recaptcha-gated backend route (checkout
3
+ // payment intent, newsletter capture). Site key: omega.config.captcha.providers.recaptcha.siteKey.
4
+ import omega from '@omega.js/client';
5
+ import { createLogger } from '__main_assets__/js/libs/logger.js';
6
+
7
+ const logger = createLogger('recaptcha');
8
+
9
+ let recaptchaReady = false;
10
+ let recaptchaSiteKey = null;
11
+
12
+ // Initialize reCAPTCHA
13
+ export async function initializeRecaptcha(siteKey) {
14
+ if (!siteKey) {
15
+ console.warn('No reCAPTCHA site key provided');
16
+ return false;
17
+ }
18
+
19
+ recaptchaSiteKey = siteKey;
20
+
21
+ // Check if already loaded
22
+ if (window.grecaptcha) {
23
+ recaptchaReady = true;
24
+ return true;
25
+ }
26
+
27
+ try {
28
+ // Use omega.dom().loadScript()
29
+ const scriptUrl = `https://www.google.com/recaptcha/api.js?render=${siteKey}`;
30
+
31
+ await omega.dom().loadScript({
32
+ src: scriptUrl,
33
+ async: true,
34
+ defer: true,
35
+ timeout: 30000, // 30 second timeout
36
+ retries: 2 // Retry twice on failure
37
+ });
38
+
39
+ // Wait for grecaptcha to be ready
40
+ await new Promise((resolve) => {
41
+ if (window.grecaptcha && window.grecaptcha.ready) {
42
+ window.grecaptcha.ready(() => {
43
+ recaptchaReady = true;
44
+ console.log('🔐 reCAPTCHA initialized successfully');
45
+ resolve();
46
+ });
47
+ } else {
48
+ // Fallback timeout if grecaptcha.ready is not available
49
+ console.warn('grecaptcha.ready not available, using timeout fallback');
50
+ setTimeout(() => {
51
+ recaptchaReady = true;
52
+ resolve();
53
+ }, 1000);
54
+ }
55
+ });
56
+
57
+ return true;
58
+ } catch (error) {
59
+ console.error('Failed to load reCAPTCHA:', error);
60
+ return false;
61
+ }
62
+ }
63
+
64
+ // Get reCAPTCHA token
65
+ export async function getRecaptchaToken(action = 'submit') {
66
+ /* @dev-only:start */
67
+ {
68
+ const devRecaptcha = new URLSearchParams(window.location.search).get('_dev_recaptcha');
69
+ if (devRecaptcha === 'invalid') {
70
+ logger.warn('Sending invalid reCAPTCHA token');
71
+ return 'invalid-dev-token';
72
+ }
73
+ if (devRecaptcha === 'empty') {
74
+ logger.warn('Sending empty reCAPTCHA token');
75
+ return '';
76
+ }
77
+ }
78
+ /* @dev-only:end */
79
+
80
+ if (!recaptchaReady || !recaptchaSiteKey) {
81
+ console.warn('reCAPTCHA not initialized');
82
+ return null;
83
+ }
84
+
85
+ try {
86
+ console.log('🔐 Getting reCAPTCHA token for action:', action);
87
+ const token = await grecaptcha.execute(recaptchaSiteKey, { action });
88
+ console.log('🔐 reCAPTCHA token obtained successfully');
89
+ return token;
90
+ } catch (error) {
91
+ console.error('Failed to get reCAPTCHA token:', error);
92
+ return null;
93
+ }
94
+ }
@@ -0,0 +1,4 @@
1
+ // const Manager = new (require('@omega.js/client'));
2
+ const Manager = new (require(proccess.cwd() + '/node_modules/@omega.js/client'));
3
+
4
+ console.log('MAIN.js', Manager);