@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,253 @@
1
+ ---
2
+ layout: frontend/core/base
3
+
4
+ # ═══ /extension — reimagined 2026-07-16 (family DNA with /download): the
5
+ # detected browser's button leads, every browser card sits in the open with
6
+ # its REAL brandmark, and "coming soon" is a designed state, not a warning
7
+ # banner. Data contract preserved: resolved.downloads.browsers + the
8
+ # detection JS; site.targets.extension.listings[browser.id].url supplies the
9
+ # store URLs (#610 — the curated targets view is the ONE home).
10
+
11
+ # Hero Section
12
+ hero:
13
+ headline: "One tab away, in <em>every</em> browser"
14
+ headline_accent: ""
15
+ description: "The full product, folded into your toolbar: one click from wherever you already are."
16
+
17
+ # Downloads Section
18
+ downloads:
19
+ loading:
20
+ headline: "Detecting browser"
21
+ description: "Determining your browser..."
22
+ button_text: "Please wait"
23
+ not_available:
24
+ headline: "Coming soon"
25
+ description: "The {{ resolved.config.brand.name }} extension isn't listed for this browser yet."
26
+ browsers:
27
+ - id: "chrome"
28
+ name: "Chrome"
29
+ logo: "chrome"
30
+ description: "Chrome 88+"
31
+ action: "Add to Chrome"
32
+ - id: "firefox"
33
+ name: "Firefox"
34
+ logo: "firefox"
35
+ description: "Firefox 78+"
36
+ action: "Add to Firefox"
37
+ - id: "edge"
38
+ name: "Edge"
39
+ logo: "edge"
40
+ description: "Edge 88+"
41
+ action: "Add to Edge"
42
+ - id: "opera"
43
+ name: "Opera"
44
+ logo: "opera"
45
+ description: "Opera 74+"
46
+ action: "Add to Opera"
47
+ - id: "safari"
48
+ name: "Safari"
49
+ logo: "safari"
50
+ description: "Safari 14+"
51
+ action: "Get for Safari"
52
+ - id: "brave"
53
+ name: "Brave"
54
+ logo: "brave"
55
+ description: "Brave 1.25+"
56
+ action: "Add to Brave"
57
+
58
+ # After install — the pin ritual
59
+ setup:
60
+ superheadline:
61
+ text: "Setup"
62
+ headline: "Thirty seconds to"
63
+ headline_accent: "pinned"
64
+ steps:
65
+ - title: "Install from your store"
66
+ description: "One click on the button above. The store handles the rest."
67
+ icon: "puzzle-piece"
68
+ - title: "Pin it to the toolbar"
69
+ description: "Click the puzzle piece in your toolbar, then the pin next to {{ resolved.config.brand.name }}."
70
+ icon: "thumbtack"
71
+ - title: "Sign in once"
72
+ description: "Your account carries over. Everything you have here is in the popup."
73
+ icon: "user-check"
74
+
75
+ # Highlights Section — named `highlights`, not `features`: `features` is a
76
+ # CONFIG section now (the feature catalog, #647) and a page key may not shadow one
77
+ highlights:
78
+ superheadline:
79
+ text: "Included"
80
+ headline: "Small icon, whole"
81
+ headline_accent: "product"
82
+ subheadline: ""
83
+ items:
84
+ - title: "One-click access"
85
+ description: "The popup is the product: no new tab, no context switch."
86
+ icon: "bolt"
87
+ - title: "Works where you work"
88
+ description: "Actions available on the page you're already reading."
89
+ icon: "link"
90
+ - title: "Real-time alerts"
91
+ description: "Badge counts and notifications the moment something needs you."
92
+ icon: "bell"
93
+ - title: "Least-privilege by design"
94
+ description: "It asks only for the permissions it demonstrably needs."
95
+ icon: "shield-halved"
96
+
97
+ # FAQ Section
98
+ faqs:
99
+ superheadline:
100
+ text: "FAQs"
101
+ headline: "Before you"
102
+ headline_accent: "add it"
103
+ subheadline: "Quick answers about the browser extension."
104
+ items:
105
+ - question: "Is the extension free?"
106
+ answer: "Yes. Free to install and free to use. Your plan applies to your account, not to where you access it."
107
+ - question: "Which browsers are supported?"
108
+ answer: "It's built for Chrome, Firefox, Edge, Opera, Safari, and Brave. Store buttons above go live per browser as listings roll out."
109
+ - question: "How do I pin the extension?"
110
+ answer: "Click the puzzle-piece icon in your toolbar, then the pin next to {{ resolved.config.brand.name }}. Pinned is a different product: one click instead of three."
111
+ - question: "What can it see?"
112
+ answer: "Only what it needs to function, and the permission prompt tells you exactly what that is. No browsing-history collection, ever."
113
+
114
+ # CTA Section
115
+ cta:
116
+ superheadline:
117
+ text: "Support"
118
+ headline: "Extension acting"
119
+ headline_accent: "up?"
120
+ subheadline: "Tell us the browser and what you clicked, and we'll take it from there."
121
+ primary_button:
122
+ text: "Contact support"
123
+ icon: "headset"
124
+ href: "/contact"
125
+ secondary_button:
126
+ text: "Release notes"
127
+ icon: "book"
128
+ href: "/updates"
129
+ nudge: true
130
+ ---
131
+
132
+ <!-- ═══ Hero: the page already picked your browser ═══ -->
133
+ {% comment %} #467 (after #749): this masthead IS the page's first viewport, so
134
+ the band paints with the document — data-omega-first-paint on the section, no
135
+ stagger container, and the masthead cluster on its first_paint switch. The
136
+ bands below keep the reveal lane. {% endcomment %}
137
+ <section class="omega-dotgrid pb-0" data-omega-first-paint data-omega-dotfield>
138
+ <div class="container text-center">
139
+ {% component "heading/masthead", eyebrow: "Extension", headline: resolved.hero.headline, headline_accent: resolved.hero.headline_accent, sub: resolved.hero.description, sub_class: "omega-hero__sub mx-auto", first_paint: true %}
140
+
141
+ <div class="omega-dl-hero">
142
+ <!-- Filled by the detection JS: your browser's store button -->
143
+ <a id="extension-hero" class="btn btn-adaptive btn-lg omega-dl-hero__btn" href="#browsers" hidden>
144
+ <span class="omega-dl-hero__icon" data-hero-icon></span>
145
+ <span data-hero-label>Install</span>
146
+ </a>
147
+ <!-- Shown until detection resolves (and forever without JS / no listing) -->
148
+ <a id="extension-hero-fallback" class="btn btn-adaptive btn-lg omega-dl-hero__btn" href="#browsers">
149
+ <i class="fa-solid fa-puzzle-piece fa-sm me-2"></i>
150
+ See supported browsers
151
+ </a>
152
+ <a class="btn btn-outline-adaptive btn-lg omega-hover-nudge" href="#browsers">
153
+ All browsers
154
+ <span class="omega-nudge ms-2"><i class="fa-solid fa-arrow-down fa-sm"></i></span>
155
+ </a>
156
+ </div>
157
+
158
+ <p class="omega-dl-hero__platforms omega-quiet small">
159
+ {% for browser in resolved.downloads.browsers %}{{ browser.name }}{% unless forloop.last %} · {% endunless %}{% endfor %}
160
+ </p>
161
+ </div>
162
+ </section>
163
+
164
+ <!-- ═══ Browser grid: real marks, buttons in hand ═══ -->
165
+ <section id="browsers" class="pt-5">
166
+ <div class="container">
167
+ <!-- The visible section-head is gone (Ian QA); the h2 stays for heading
168
+ order — the cards' h3 names need a parent level under the h1 -->
169
+ <h2 class="visually-hidden">Supported browsers</h2>
170
+ <div class="row g-4 justify-content-center" data-omega-reveal-stagger="70">
171
+ {% for browser in resolved.downloads.browsers %}
172
+ {% assign config_url = site.targets.extension.listings[browser.id].url %}
173
+
174
+ <div class="col-sm-6 col-lg-4 d-flex" data-omega-reveal>
175
+ <div class="omega-dl-card omega-hover-lift" data-download-card data-browser="{{ browser.id }}">
176
+ <span class="omega-dl-card__mark">{% omega_logo browser.logo, "brandmarks" %}</span>
177
+ <h3 class="omega-dl-card__name">{{ browser.name }}</h3>
178
+ <p class="omega-dl-card__req omega-quiet small">{{ browser.description }}</p>
179
+
180
+ <div class="omega-dl-card__actions">
181
+ {% iftruthy config_url %}
182
+ <a href="{{ config_url }}" class="btn btn-adaptive w-100" data-install="true" target="_blank" rel="noopener">
183
+ <i class="fa-solid fa-puzzle-piece fa-sm me-2"></i>
184
+ {{ browser.action | default: "Install" }}
185
+ </a>
186
+ {% endiftruthy %}
187
+ {% iffalsy config_url %}
188
+ <span class="omega-status w-100 justify-content-center">
189
+ <span class="omega-dot"></span>
190
+ {{ resolved.downloads.not_available.headline }}
191
+ </span>
192
+ {% endiffalsy %}
193
+ </div>
194
+ </div>
195
+ </div>
196
+ {% endfor %}
197
+ </div>
198
+ </div>
199
+ </section>
200
+
201
+ <!-- ═══ The pin ritual — three steps ═══ -->
202
+ <section>
203
+ <div class="container">
204
+ <div class="omega-duo">
205
+ <div class="omega-duo__aside omega-section-head" data-omega-reveal>
206
+ {% component "heading/section-head", superheadline: resolved.setup.superheadline.text, headline: resolved.setup.headline, headline_accent: resolved.setup.headline_accent %}
207
+ </div>
208
+
209
+ <div class="omega-rowlist" data-omega-reveal-stagger="60">
210
+ {% for step in resolved.setup.steps %}
211
+ <div class="omega-rowlist__item" data-omega-reveal>
212
+ <span class="d-inline-flex align-items-center gap-3">
213
+ <span class="omega-icon-chip omega-icon-chip--neutral"><i class="fa-solid fa-{{ step.icon }} fa-sm"></i></span>
214
+ <strong>{{ forloop.index }}. {{ step.title }}</strong>
215
+ </span>
216
+ <span class="omega-rowlist__meta">{{ step.description }}</span>
217
+ </div>
218
+ {% endfor %}
219
+ </div>
220
+ </div>
221
+ </div>
222
+ </section>
223
+
224
+ <!-- ═══ What the little icon carries ═══ -->
225
+ <section>
226
+ <div class="container">
227
+ <div class="omega-duo">
228
+ <div class="omega-duo__aside omega-section-head" data-omega-reveal>
229
+ {% component "heading/section-head", superheadline: resolved.highlights.superheadline.text, headline: resolved.highlights.headline, headline_accent: resolved.highlights.headline_accent %}
230
+ </div>
231
+
232
+ <div class="omega-rowlist" data-omega-reveal-stagger="60">
233
+ {% for feature in resolved.highlights.items %}
234
+ <div class="omega-rowlist__item" data-omega-reveal>
235
+ <span class="d-inline-flex align-items-center gap-3">
236
+ <span class="omega-icon-chip omega-icon-chip--neutral"><i class="fa-solid fa-{{ feature.icon }} fa-sm"></i></span>
237
+ <strong>{{ feature.title }}</strong>
238
+ </span>
239
+ <span class="omega-rowlist__meta">{{ feature.description }}</span>
240
+ </div>
241
+ {% endfor %}
242
+ </div>
243
+ </div>
244
+ </div>
245
+ </section>
246
+
247
+ <!-- ═══ FAQ ═══ -->
248
+ {% section "marketing/faq", data: resolved.faqs %}
249
+
250
+ <!-- ═══ CTA band ═══ -->
251
+ {% section "marketing/cta", data: resolved.cta %}
252
+
253
+ {{ content | omega_content_format }}
@@ -0,0 +1,198 @@
1
+ ---
2
+ layout: frontend/core/cover
3
+
4
+ # Hero Section
5
+ hero:
6
+ headline: "Extension installed,"
7
+ headline_accent: "now let's pin it!"
8
+ description: ""
9
+
10
+ # Steps
11
+ steps:
12
+ - title: "Click the puzzle piece"
13
+ description: "Find the Extensions icon in your browser toolbar"
14
+ - title: "Pin the extension"
15
+ description: "Click the pin icon to keep it visible in your toolbar"
16
+ - title: "You're all set!"
17
+ description: "{{ resolved.config.brand.name }} is now pinned and ready to use"
18
+ ---
19
+
20
+ {% comment %} #467: the VISIBLE lockup prefers the bridged vector when the mint produced one —
21
+ `brand.images.brandmark` stays the raster OG/social and payment sync need. {% endcomment %}
22
+ {% assign brandmark_src = assetManifest.brandmarkSvg | default: resolved.config.brand.images.brandmark %}
23
+ <!-- Main content -->
24
+ <section class="col-12 col-md-10 col-lg-8 col-xl-7">
25
+ <div class="card">
26
+ <div class="card-body p-4 p-md-5">
27
+ <!-- Success Icon -->
28
+ <div class="text-center mb-4" data-omega-reveal>
29
+ <span class="omega-status omega-status--ok">
30
+ <span class="omega-dot omega-dot--ok"></span>
31
+ Installed
32
+ </span>
33
+ </div>
34
+
35
+ <!-- Headline -->
36
+ <div class="text-center mb-5" data-omega-reveal>
37
+ <h1 class="omega-display omega-display--section mb-3">
38
+ {{ resolved.hero.headline }}
39
+ <em>{{ resolved.hero.headline_accent }}</em>
40
+ </h1>
41
+ </div>
42
+
43
+ <!-- Steps Slideshow -->
44
+ <div class="steps-slideshow">
45
+ <div class="steps-slideshow-slides">
46
+ <!-- Step 1: Click puzzle piece -->
47
+ <div class="step-slide" data-step="1">
48
+ <div class="step-number-badge">1</div>
49
+ <h5 class="step-title">{{ resolved.steps[0].title }}</h5>
50
+ <p class="text-muted mb-3">{{ resolved.steps[0].description }}</p>
51
+ <div class="instruction-step-container bg-body-tertiary rounded-4 p-4 d-flex align-items-center justify-content-center position-relative">
52
+ <div class="extension-visual" aria-hidden="true">
53
+ <div class="extension-toolbar d-flex align-items-center justify-content-end gap-2 bg-body rounded-3 p-2 border">
54
+ <!-- Mock URL bar -->
55
+ <div class="extension-url-bar flex-grow-1 bg-body-secondary rounded px-3 py-1 small text-muted me-2 text-truncate">
56
+ {{ resolved.config.url }}
57
+ </div>
58
+ <!-- Extension icons -->
59
+ <button type="button" class="btn btn-sm btn-secondary opacity-50" disabled>
60
+ <i class="fa-solid fa-shield fa-sm"></i>
61
+ </button>
62
+ <button type="button" class="btn btn-sm btn-secondary opacity-50" disabled>
63
+ <i class="fa-solid fa-bookmark fa-sm"></i>
64
+ </button>
65
+ <!-- Puzzle piece - highlighted -->
66
+ <div class="extension-puzzle-target position-relative">
67
+ <button type="button" class="btn btn-sm btn-primary" tabindex="-1">
68
+ <i class="fa-solid fa-puzzle-piece fa-sm"></i>
69
+ </button>
70
+ <div class="click-indicator position-absolute top-50 start-50">
71
+ <div class="click-pulse position-absolute border border-3 border-primary rounded-circle"></div>
72
+ <div class="pointer-icon">
73
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48" height="48">
74
+ <path fill="#E0E0E0" d="M27.8,39.7c-0.1,0-0.2,0-0.4-0.1c-0.2-0.1-0.4-0.3-0.6-0.5l-3.7-8.6l-4.5,4.2C18.5,34.9,18.3,35,18,35c-0.1,0-0.3,0-0.4-0.1C17.3,34.8,17,34.4,17,34l0-22c0-0.4,0.2-0.8,0.6-0.9C17.7,11,17.9,11,18,11c0.2,0,0.5,0.1,0.7,0.3l16,15c0.3,0.3,0.4,0.7,0.3,1.1c-0.1,0.4-0.5,0.6-0.9,0.7l-6.3,0.6l3.9,8.5c0.1,0.2,0.1,0.5,0,0.8c-0.1,0.2-0.3,0.5-0.5,0.6l-2.9,1.3C28.1,39.7,27.9,39.7,27.8,39.7z"/>
75
+ <path fill="#212121" d="M18,12l16,15l-7.7,0.7l4.5,9.8l-2.9,1.3l-4.3-9.9L18,34L18,12 M18,10c-0.3,0-0.5,0.1-0.8,0.2c-0.7,0.3-1.2,1-1.2,1.8l0,22c0,0.8,0.5,1.5,1.2,1.8C17.5,36,17.8,36,18,36c0.5,0,1-0.2,1.4-0.5l3.4-3.2l3.1,7.3c0.2,0.5,0.6,0.9,1.1,1.1c0.2,0.1,0.5,0.1,0.7,0.1c0.3,0,0.5-0.1,0.8-0.2l2.9-1.3c0.5-0.2,0.9-0.6,1.1-1.1c0.2-0.5,0.2-1.1,0-1.5l-3.3-7.2l4.9-0.4c0.8-0.1,1.5-0.6,1.7-1.3c0.3-0.7,0.1-1.6-0.5-2.1l-16-15C19,10.2,18.5,10,18,10L18,10z"/>
76
+ </svg>
77
+ </div>
78
+ </div>
79
+ </div>
80
+ </div>
81
+ </div>
82
+ </div>
83
+ </div>
84
+
85
+ <!-- Step 2: Pin the extension -->
86
+ <div class="step-slide" data-step="2">
87
+ <div class="step-number-badge">2</div>
88
+ <h5 class="step-title">{{ resolved.steps[1].title }}</h5>
89
+ <p class="text-muted mb-3">{{ resolved.steps[1].description }}</p>
90
+ <div class="instruction-step-container bg-body-tertiary rounded-4 p-4 d-flex align-items-center justify-content-center position-relative">
91
+ <div class="extension-visual" aria-hidden="true">
92
+ <div class="extension-dropdown bg-body rounded-3 border shadow-sm mx-auto">
93
+ <!-- Dropdown header -->
94
+ <div class="extension-dropdown-header d-flex align-items-center justify-content-between p-2 border-bottom bg-body-secondary">
95
+ <span class="small fw-bold">Extensions</span>
96
+ <button type="button" class="btn btn-sm p-0 opacity-50" disabled>
97
+ <i class="fa-solid fa-gear fa-sm"></i>
98
+ </button>
99
+ </div>
100
+ <!-- Extension list -->
101
+ <div class="extension-dropdown-list p-2">
102
+ <!-- Other extension (dimmed) -->
103
+ <div class="extension-dropdown-item d-flex align-items-center gap-3 p-2 rounded opacity-50">
104
+ <div class="extension-item-icon bg-body-secondary rounded p-1 d-flex align-items-center justify-content-center">
105
+ <i class="fa-solid fa-shield fa-xs"></i>
106
+ </div>
107
+ <span class="small flex-grow-1">AdBlocker</span>
108
+ <button type="button" class="btn btn-sm p-1" disabled>
109
+ <i class="fa-solid fa-thumbtack fa-xs text-muted"></i>
110
+ </button>
111
+ </div>
112
+ <!-- Our extension (highlighted with pin click) -->
113
+ <div class="extension-dropdown-item d-flex align-items-center gap-3 p-2 rounded bg-primary bg-opacity-10 border border-primary">
114
+ <div class="extension-item-icon rounded p-1 d-flex align-items-center justify-content-center">
115
+ <img src="{{ site.omega.placeholder.src }}" data-lazy="@src {{ brandmark_src }}" class="extension-brandmark" alt="{{ resolved.config.brand.name }}"/>
116
+ </div>
117
+ <span class="small flex-grow-1 fw-bold">{{ resolved.config.brand.name }}</span>
118
+ <!-- Pin button - highlighted with click animation -->
119
+ <div class="extension-pin-target position-relative">
120
+ <button type="button" class="btn btn-sm btn-primary p-1" tabindex="-1">
121
+ <i class="fa-solid fa-thumbtack fa-xs"></i>
122
+ </button>
123
+ <div class="click-indicator position-absolute top-50 start-50">
124
+ <div class="click-pulse position-absolute border border-3 border-primary rounded-circle"></div>
125
+ <div class="pointer-icon">
126
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48" height="48">
127
+ <path fill="#E0E0E0" d="M27.8,39.7c-0.1,0-0.2,0-0.4-0.1c-0.2-0.1-0.4-0.3-0.6-0.5l-3.7-8.6l-4.5,4.2C18.5,34.9,18.3,35,18,35c-0.1,0-0.3,0-0.4-0.1C17.3,34.8,17,34.4,17,34l0-22c0-0.4,0.2-0.8,0.6-0.9C17.7,11,17.9,11,18,11c0.2,0,0.5,0.1,0.7,0.3l16,15c0.3,0.3,0.4,0.7,0.3,1.1c-0.1,0.4-0.5,0.6-0.9,0.7l-6.3,0.6l3.9,8.5c0.1,0.2,0.1,0.5,0,0.8c-0.1,0.2-0.3,0.5-0.5,0.6l-2.9,1.3C28.1,39.7,27.9,39.7,27.8,39.7z"/>
128
+ <path fill="#212121" d="M18,12l16,15l-7.7,0.7l4.5,9.8l-2.9,1.3l-4.3-9.9L18,34L18,12 M18,10c-0.3,0-0.5,0.1-0.8,0.2c-0.7,0.3-1.2,1-1.2,1.8l0,22c0,0.8,0.5,1.5,1.2,1.8C17.5,36,17.8,36,18,36c0.5,0,1-0.2,1.4-0.5l3.4-3.2l3.1,7.3c0.2,0.5,0.6,0.9,1.1,1.1c0.2,0.1,0.5,0.1,0.7,0.1c0.3,0,0.5-0.1,0.8-0.2l2.9-1.3c0.5-0.2,0.9-0.6,1.1-1.1c0.2-0.5,0.2-1.1,0-1.5l-3.3-7.2l4.9-0.4c0.8-0.1,1.5-0.6,1.7-1.3c0.3-0.7,0.1-1.6-0.5-2.1l-16-15C19,10.2,18.5,10,18,10L18,10z"/>
129
+ </svg>
130
+ </div>
131
+ </div>
132
+ </div>
133
+ </div>
134
+ </div>
135
+ </div>
136
+ </div>
137
+ </div>
138
+ </div>
139
+
140
+ <!-- Step 3: All set -->
141
+ <div class="step-slide" data-step="3">
142
+ <div class="step-number-badge">3</div>
143
+ <h5 class="step-title">{{ resolved.steps[2].title }}</h5>
144
+ <p class="text-muted mb-3">{{ resolved.steps[2].description }}</p>
145
+ <div class="instruction-step-container bg-body-tertiary rounded-4 p-4 d-flex align-items-center justify-content-center position-relative">
146
+ <div class="extension-visual" aria-hidden="true">
147
+ <div class="extension-toolbar d-flex align-items-center justify-content-end gap-2 bg-body rounded-3 p-2 border">
148
+ <!-- Mock URL bar -->
149
+ <div class="extension-url-bar flex-grow-1 bg-body-secondary rounded px-3 py-1 small text-muted me-2 text-truncate">
150
+ {{ resolved.config.url }}
151
+ </div>
152
+ <!-- Extension icons -->
153
+ <button type="button" class="btn btn-sm btn-secondary opacity-50" disabled>
154
+ <i class="fa-solid fa-shield fa-sm"></i>
155
+ </button>
156
+ <button type="button" class="btn btn-sm btn-secondary opacity-50" disabled>
157
+ <i class="fa-solid fa-bookmark fa-sm"></i>
158
+ </button>
159
+ <!-- Our extension - now pinned! -->
160
+ <div class="extension-pinned-target position-relative">
161
+ <button type="button" class="btn btn-sm btn-primary animation-flex" tabindex="-1">
162
+ <img src="{{ site.omega.placeholder.src }}" data-lazy="@src {{ brandmark_src }}" class="extension-toolbar-brandmark" alt="{{ resolved.config.brand.name }}"/>
163
+ </button>
164
+ </div>
165
+ <button type="button" class="btn btn-sm btn-secondary opacity-50" disabled>
166
+ <i class="fa-solid fa-puzzle-piece fa-sm"></i>
167
+ </button>
168
+ </div>
169
+ </div>
170
+ </div>
171
+ </div>
172
+
173
+ </div>
174
+
175
+ <!-- Slideshow Navigation -->
176
+ <div class="steps-slideshow-nav">
177
+ <button type="button" class="btn btn-outline-adaptive btn-sm step-prev" disabled>
178
+ <i class="fa-solid fa-chevron-left me-1"></i> Back
179
+ </button>
180
+ <div class="steps-dots"></div>
181
+ <button type="button" class="btn btn-adaptive btn-sm step-next">
182
+ <span class="button-text">Next</span> <i class="fa-solid fa-chevron-right ms-1"></i>
183
+ </button>
184
+ </div>
185
+ </div>
186
+
187
+ <!-- CTA Button -->
188
+ <div class="text-center mt-4" data-omega-reveal>
189
+ <a href="/" class="btn btn-adaptive btn-lg px-5 omega-hover-nudge">
190
+ Start using {{ resolved.config.brand.name }}
191
+ <span class="omega-nudge ms-2"><i class="fa-solid fa-arrow-right fa-sm"></i></span>
192
+ </a>
193
+ </div>
194
+ </div>
195
+ </div>
196
+ </section>
197
+
198
+ {{ content | omega_content_format }}
@@ -0,0 +1,171 @@
1
+ ---
2
+ layout: frontend/core/base
3
+
4
+ # Hero Section
5
+ hero:
6
+ headline: "We'd love your"
7
+ headline_accent: "feedback"
8
+ subheadline: "Help us improve {{ resolved.config.brand.name }} by sharing your experience"
9
+
10
+ # Feedback Form Section
11
+ feedback_form:
12
+ superheadline:
13
+ text: "Your experience"
14
+ headline: "How would you rate <em>{{ resolved.config.brand.name }}</em>?"
15
+ subheadline: "Select a rating and let us know what you think."
16
+ ratings:
17
+ - id: "dislike"
18
+ label: "Poor"
19
+ image: "https://cdn.itwcreativeworks.com/assets/general/images/feedback/dislike.png"
20
+ - id: "neutral"
21
+ label: "Okay"
22
+ image: "https://cdn.itwcreativeworks.com/assets/general/images/feedback/neutral.png"
23
+ - id: "like"
24
+ label: "Good"
25
+ image: "https://cdn.itwcreativeworks.com/assets/general/images/feedback/like.png"
26
+ - id: "love"
27
+ label: "Excellent"
28
+ image: "https://cdn.itwcreativeworks.com/assets/general/images/feedback/love.png"
29
+
30
+ # Prerender icons for JS
31
+ ---
32
+
33
+ <!-- ═══ Feedback — aside head + form panel ═══ -->
34
+ {% comment %} #467 (after #749): this masthead IS the page's first viewport, so
35
+ the band paints with the document — data-omega-first-paint on the section, no
36
+ stagger container, and the masthead cluster on its first_paint switch. The
37
+ form beneath it never carried a reveal of its own. {% endcomment %}
38
+ <section class="omega-dotgrid" data-omega-first-paint data-omega-dotfield>
39
+ <div class="container">
40
+ <div class="omega-duo" style="--omega-duo-cols: 5fr 7fr;">
41
+ <!-- Aside: the ask, stated once -->
42
+ <div class="omega-duo__aside">
43
+ {% component "heading/masthead", eyebrow: "Feedback", headline: resolved.hero.headline, headline_accent: resolved.hero.headline_accent, sub: resolved.hero.subheadline, first_paint: true %}
44
+ <p class="small omega-quiet mt-4 mb-0">
45
+ <i class="fa-solid fa-reply fa-xs me-1"></i>
46
+ Every submission is read by a human, and the sharp ones shape the roadmap.
47
+ </p>
48
+ </div>
49
+
50
+ <!-- The form -->
51
+ <div class="omega-form-panel">
52
+ <div class="mb-4">
53
+ <h2 class="omega-display omega-display--section mb-2">{{ resolved.feedback_form.headline }}</h2>
54
+ {% iftruthy resolved.feedback_form.subheadline %}
55
+ <p class="text-muted mb-0">{{ resolved.feedback_form.subheadline }}</p>
56
+ {% endiftruthy %}
57
+ </div>
58
+
59
+ <form id="feedback-form" autocomplete="off" data-form-state="initializing" onsubmit="return false">
60
+ <!-- Rating Selection -->
61
+ <div class="feedback-rating-group mb-4">
62
+ <input type="hidden" name="rating" id="feedback-rating-input" required>
63
+ <div class="row g-3 justify-content-center">
64
+ {% for rating in resolved.feedback_form.ratings %}
65
+ <div class="col-6 col-sm-3">
66
+ <button type="button" class="feedback-rating-btn w-100 text-center" data-rating="{{ rating.id }}">
67
+ <img src="{{ rating.image | omega_cachebreak }}" alt="{{ rating.label }}" class="feedback-rating-img mb-2" width="64" height="64" loading="eager">
68
+ <span class="d-block small fw-semibold">{{ rating.label }}</span>
69
+ </button>
70
+ </div>
71
+ {% endfor %}
72
+ </div>
73
+ <div class="invalid-feedback"></div>
74
+ </div>
75
+
76
+ <!-- Honeypot field (bot detection) -->
77
+ <div class="form-group" style="display: none;" aria-hidden="true">
78
+ <input type="text" class="form-control" name="honey" tabindex="-1" autocomplete="off">
79
+ </div>
80
+
81
+ <!-- Hidden auth fields (auto-populated via bindings) -->
82
+ <input type="hidden" aria-hidden="true" name="auth.user.uid" data-omega-bind="@value auth.user.uid">
83
+ <input type="hidden" aria-hidden="true" name="auth.user.email" data-omega-bind="@value auth.user.email">
84
+
85
+ <!-- Positive feedback? -->
86
+ <div class="mb-4">
87
+ <label for="feedback-positive" class="form-label fw-semibold">
88
+ What do you like about {{ resolved.config.brand.name }}?
89
+ </label>
90
+ <textarea class="form-control form-control-lg" id="feedback-positive" name="positive" rows="2"
91
+ placeholder="Tell us what you enjoy..."
92
+ maxlength="2000"></textarea>
93
+ </div>
94
+
95
+ <!-- Negative feedback? -->
96
+ <div class="mb-4">
97
+ <label for="feedback-negative" class="form-label fw-semibold">
98
+ What could we improve?
99
+ </label>
100
+ <textarea class="form-control form-control-lg" id="feedback-negative" name="negative" rows="2"
101
+ placeholder="Let us know how we can do better..."
102
+ maxlength="2000"></textarea>
103
+ </div>
104
+
105
+ <!-- Additional Comments -->
106
+ <div class="mb-4">
107
+ <label for="feedback-comments" class="form-label fw-semibold">
108
+ Additional comments
109
+ </label>
110
+ <textarea class="form-control form-control-lg" id="feedback-comments" name="comments" rows="3"
111
+ placeholder="Anything else you'd like to share..."
112
+ maxlength="5000"></textarea>
113
+ </div>
114
+
115
+ <!-- Submit -->
116
+ <div class="d-grid">
117
+ <button type="submit" class="btn btn-adaptive btn-lg">
118
+ <i class="fa-solid fa-paper-plane fa-sm me-2"></i>
119
+ Submit feedback
120
+ </button>
121
+ </div>
122
+ </form>
123
+ </div>
124
+ </div>
125
+ </div>
126
+ </section>
127
+
128
+ <!-- Review Prompt Modal -->
129
+ <div class="modal fade" id="review-modal" tabindex="-1" aria-labelledby="review-modal-label" aria-hidden="true">
130
+ <div class="modal-dialog modal-dialog-centered">
131
+ <div class="modal-content">
132
+ <div class="modal-body text-center p-4 p-md-5">
133
+ <div class="mb-4">
134
+ <img src="{{ 'https://cdn.itwcreativeworks.com/assets/general/images/feedback/love.png' | omega_cachebreak }}" alt="Thank you" width="72" height="72">
135
+ </div>
136
+ <h3 class="omega-display omega-display--section mb-3" id="review-modal-label">You're <em>awesome</em>!</h3>
137
+ <p class="text-muted mb-3">
138
+ We're so glad you love {{ resolved.config.brand.name }}! Share your experience on a review site to be entered to win a $100 gift card.
139
+ </p>
140
+ <div class="alert alert-warning text-start small mb-4" role="alert">
141
+ <i class="fa-solid fa-circle-exclamation me-1"></i>
142
+ You must actually post your review to be eligible for the $100 gift card. Closing this without publishing a review won't qualify.
143
+ </div>
144
+
145
+ <!-- Copy-paste feedback -->
146
+ <div class="text-start mb-4">
147
+ <label class="form-label fw-semibold small text-muted">
148
+ Your feedback (copy and paste into your review)
149
+ </label>
150
+ <div class="position-relative">
151
+ <textarea id="review-modal-feedback" class="form-control" rows="4" readonly></textarea>
152
+ <button type="button" id="review-modal-copy" class="btn btn-sm btn-adaptive position-absolute top-0 end-0 m-2">
153
+ <i class="fa-solid fa-copy fa-sm me-1"></i>
154
+ Copy
155
+ </button>
156
+ </div>
157
+ </div>
158
+
159
+ <a id="review-modal-link" href="#" target="_blank" rel="noopener noreferrer" class="btn btn-adaptive btn-lg mb-3">
160
+ Post your review
161
+ <i class="fa-solid fa-arrow-up-right-from-square fa-sm ms-2"></i>
162
+ </a>
163
+ <div>
164
+ <button type="button" class="btn btn-link text-muted" data-bs-dismiss="modal">Maybe later</button>
165
+ </div>
166
+ </div>
167
+ </div>
168
+ </div>
169
+ </div>
170
+
171
+ {{ content | omega_content_format }}