@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,793 @@
1
+ ---
2
+ layout: frontend/core/base
3
+
4
+ # ═══ /download — reimagined 2026-07-16 (manus-grade: the page knows your
5
+ # platform and leads with YOUR button; everything else is one scroll away).
6
+ # Data contract preserved: resolved.downloads.platforms drives cards + the
7
+ # detection JS; site.targets.desktop.downloads[platform][artifact] supplies the
8
+ # desktop URLs (#610 — the curated targets view is the ONE home). Each is a
9
+ # DIRECT download of a versionless asset (#620), so a button hands over the
10
+ # file and a desktop release never touches this page. The platform/artifact
11
+ # keys below are the catalog's: a `type` with no derived URL renders no button.
12
+ # Mobile derives nothing while MAM is parked, so every mobile store stays on
13
+ # the notify form.
14
+
15
+ # Hero Section
16
+ hero:
17
+ headline: "Take {{ resolved.config.brand.name }} with you"
18
+ headline_accent: ""
19
+ description: "One account, every device."
20
+
21
+ # Downloads Section
22
+ downloads:
23
+ supported_platforms:
24
+ - "Windows"
25
+ - "macOS"
26
+ - "Linux"
27
+ - "Android"
28
+ - "iOS"
29
+ loading:
30
+ headline: "Detecting platform"
31
+ description: "Determining your operating system..."
32
+ button_text: "Please wait"
33
+ coming_soon_mobile:
34
+ headline: "Coming soon to mobile"
35
+ description: "Leave your email and the download link arrives the moment it ships."
36
+ not_available:
37
+ headline: "Not available yet"
38
+ description: "{{ resolved.config.brand.name }} is not currently available for this platform yet."
39
+ platforms:
40
+ - id: "mac"
41
+ name: "macOS"
42
+ icon: "apple"
43
+ description: "macOS 10.15+ (Apple Silicon & Intel)"
44
+ types:
45
+ - type: "universal"
46
+ name: "Download for macOS"
47
+ icon: "apple"
48
+ - id: "windows"
49
+ name: "Windows"
50
+ icon: "windows"
51
+ description: "Windows 10 and later"
52
+ types:
53
+ - type: "universal"
54
+ name: "Download for Windows"
55
+ icon: "windows"
56
+ - id: "linux"
57
+ name: "Linux"
58
+ icon: "linux"
59
+ description: "Ubuntu 18.04+ and friends"
60
+ types:
61
+ - type: "debian"
62
+ name: "Debian package"
63
+ icon: "linux"
64
+ - type: "appimage"
65
+ name: "AppImage"
66
+ icon: "linux"
67
+ - id: "ios"
68
+ name: "iOS"
69
+ icon: "apple"
70
+ description: "iOS 13 and later"
71
+ store_badge: "apple-app-store"
72
+ types:
73
+ - type: "universal"
74
+ name: "App Store"
75
+ icon: "apple"
76
+ - id: "android"
77
+ name: "Android"
78
+ icon: "android"
79
+ description: "Android 8.0 and later"
80
+ store_badge: "google-play-store"
81
+ types:
82
+ - type: "universal"
83
+ name: "Google Play"
84
+ icon: "android"
85
+
86
+ # What travels with you — hairline rows. Named `highlights`, not `features`:
87
+ # `features` is a CONFIG section now (the feature catalog, #647) and a page key
88
+ # may not shadow one
89
+ highlights:
90
+ superheadline:
91
+ text: "Included"
92
+ headline: "The install is the"
93
+ headline_accent: "easy part"
94
+ subheadline: ""
95
+ items:
96
+ - title: "Everything syncs"
97
+ description: "Sign in anywhere and your work is already there: desktop, mobile, browser."
98
+ icon: "rotate"
99
+ - title: "Updates itself"
100
+ description: "New versions arrive quietly in the background. You never install twice."
101
+ icon: "cloud-arrow-down"
102
+ - title: "Fast to first use"
103
+ description: "Small download, no bundled extras, running in under a minute."
104
+ icon: "bolt"
105
+ - title: "Secure by default"
106
+ description: "Signed builds and encrypted sync, on every platform."
107
+ icon: "shield-halved"
108
+
109
+ # System Requirements Section
110
+ system_requirements:
111
+ superheadline:
112
+ text: "Requirements"
113
+ headline: "Will it run?"
114
+ headline_accent: ""
115
+ subheadline: "Almost certainly. Here's the fine print."
116
+ desktop:
117
+ label: "Desktop"
118
+ icon: "desktop"
119
+ items:
120
+ - text: "2GB RAM minimum"
121
+ icon: "check"
122
+ - text: "500MB free disk space"
123
+ icon: "check"
124
+ mobile:
125
+ label: "Mobile"
126
+ icon: "mobile"
127
+ items:
128
+ - text: "100MB free storage"
129
+ icon: "check"
130
+ - text: "Internet connection required"
131
+ icon: "check"
132
+
133
+ # FAQ Section
134
+ faqs:
135
+ superheadline:
136
+ text: "FAQs"
137
+ headline: "Before you"
138
+ headline_accent: "install"
139
+ subheadline: "The questions everyone asks, answered straight."
140
+ items:
141
+ - question: "Is {{ resolved.config.brand.name }} free to download?"
142
+ answer: "Yes. The download is free and the core product works without a card. Paid plans add capacity and team features. See pricing when you're ready."
143
+ - question: "How do updates work?"
144
+ answer: "The app keeps itself current in the background and tells you when something notable lands. Release notes live on the updates page."
145
+ - question: "Can I use one account on all my devices?"
146
+ answer: "That's the point. Install everywhere, sign in once per device, and your data follows you."
147
+ - question: "Is my data secure?"
148
+ answer: "Builds are signed, transport is encrypted, and data is encrypted at rest. Security isn't a plan tier."
149
+
150
+ # CTA Section
151
+ cta:
152
+ superheadline:
153
+ text: "Support"
154
+ headline: "Stuck on the"
155
+ headline_accent: "install?"
156
+ subheadline: "Real humans answer. Bring your error message."
157
+ primary_button:
158
+ text: "Contact support"
159
+ icon: "headset"
160
+ href: "/contact"
161
+ secondary_button:
162
+ text: "Release notes"
163
+ icon: "book"
164
+ href: "/updates"
165
+ nudge: true
166
+ ---
167
+
168
+ {% comment %} #467: the VISIBLE lockup prefers the bridged vector when the mint produced one —
169
+ `brand.images.brandmark` stays the raster OG/social and payment sync need. {% endcomment %}
170
+ {% assign brandmark_src = assetManifest.brandmarkSvg | default: resolved.config.brand.images.brandmark %}
171
+ <!-- ═══ Hero: the page already picked your button ═══ -->
172
+ {% comment %} #467 (after #749): this masthead IS the page's first viewport, so
173
+ the band paints with the document — data-omega-first-paint on the section, no
174
+ stagger container, and the masthead cluster on its first_paint switch. The
175
+ bands below keep the reveal lane. {% endcomment %}
176
+ <section class="omega-dotgrid pb-0" data-omega-first-paint data-omega-dotfield>
177
+ <div class="container text-center">
178
+ {% component "heading/masthead", eyebrow: "Download", headline: resolved.hero.headline, headline_accent: resolved.hero.headline_accent, sub: resolved.hero.description, sub_class: "omega-hero__sub mx-auto", first_paint: true %}
179
+
180
+ <div class="omega-dl-hero">
181
+ <!-- Filled by the detection JS: your platform's primary download -->
182
+ <a id="download-hero" class="btn btn-adaptive btn-lg omega-dl-hero__btn" href="#platforms" hidden>
183
+ <span class="omega-dl-hero__icon" data-hero-icon></span>
184
+ <span data-hero-label>Download</span>
185
+ </a>
186
+ <!-- Shown until detection resolves (and forever without JS) -->
187
+ <a id="download-hero-fallback" class="btn btn-adaptive btn-lg omega-dl-hero__btn" href="#platforms">
188
+ <i class="fa-solid fa-download fa-sm me-2"></i>
189
+ See every download
190
+ </a>
191
+ <a class="btn btn-outline-adaptive btn-lg omega-hover-nudge" href="#platforms">
192
+ All platforms
193
+ <span class="omega-nudge ms-2"><i class="fa-solid fa-arrow-down fa-sm"></i></span>
194
+ </a>
195
+ </div>
196
+
197
+ <p class="omega-dl-hero__platforms omega-quiet small">
198
+ {% for name in resolved.downloads.supported_platforms %}{{ name }}{% unless forloop.last %} · {% endunless %}{% endfor %}
199
+ </p>
200
+ </div>
201
+ </section>
202
+
203
+ <!-- ═══ Desktop: three cards, buttons in hand ═══ -->
204
+ <section id="platforms" class="pt-5">
205
+ <div class="container">
206
+ <!-- The visible section-head is gone (Ian QA); the h2 stays for heading
207
+ order — the cards' h3 names need a parent level under the h1 -->
208
+ <h2 class="visually-hidden">Desktop downloads</h2>
209
+ <div class="row g-4 justify-content-center" data-omega-reveal-stagger="90">
210
+ {% for platform in resolved.downloads.platforms %}
211
+ {% if platform.id == 'ios' or platform.id == 'android' %}{% continue %}{% endif %}
212
+
213
+ {% assign download_count = 0 %}
214
+ {% for type in platform.types %}
215
+ {% assign config_url = site.targets.desktop.downloads[platform.id][type.type] %}
216
+ {% iftruthy config_url %}{% assign download_count = download_count | plus: 1 %}{% endiftruthy %}
217
+ {% endfor %}
218
+
219
+ <div class="col-md-6 col-lg-4 d-flex" data-omega-reveal>
220
+ <div class="omega-dl-card omega-hover-lift" data-download-card data-platform="{{ platform.id }}">
221
+ <span class="omega-dl-card__mark">
222
+ <i class="fa-solid fa-{{ platform.icon }} fa-2xl"></i>
223
+ </span>
224
+ <h3 class="omega-dl-card__name">{{ platform.name }}</h3>
225
+ <p class="omega-dl-card__req omega-quiet small">{{ platform.description }}</p>
226
+
227
+ <!-- Two artifacts (Linux ships .deb + AppImage) ride SIDE BY SIDE —
228
+ a second full-width button under the first read as the primary
229
+ download twice (Ian #14). -->
230
+ <div class="omega-dl-card__actions{% if download_count > 1 %} omega-dl-card__actions--split{% endif %}">
231
+ {% if download_count > 0 %}
232
+ {% for type in platform.types %}
233
+ {% assign config_url = site.targets.desktop.downloads[platform.id][type.type] %}
234
+ {% iftruthy config_url %}
235
+ <a href="{{ config_url }}" class="btn {% if forloop.first %}btn-adaptive{% else %}btn-outline-adaptive{% endif %}" data-download="true" data-download-name="{{ type.name }}">
236
+ <i class="fa-solid fa-download fa-sm me-2"></i>
237
+ {{ type.name }}
238
+ </a>
239
+ {% endiftruthy %}
240
+ {% endfor %}
241
+ {% else %}
242
+ <span class="omega-status w-100 justify-content-center">
243
+ <span class="omega-dot"></span>
244
+ {{ resolved.downloads.not_available.headline }}
245
+ </span>
246
+ {% endif %}
247
+ </div>
248
+ </div>
249
+ </div>
250
+ {% endfor %}
251
+ </div>
252
+ </div>
253
+ </section>
254
+
255
+ <!-- ═══ Mobile: store badges or the tell-me-when form ═══ -->
256
+ <section>
257
+ <div class="container">
258
+ <div class="omega-dl-mobile" data-omega-reveal="scale">
259
+ <div class="omega-dl-mobile__copy">
260
+ <span class="omega-micro d-block mb-3">On the go</span>
261
+ <h2 class="omega-display omega-display--section mb-2">In your <em>pocket</em> too</h2>
262
+ <p class="omega-quiet mb-0">The same account, the small screen. Everything you do here shows up there before you've stood up.</p>
263
+ </div>
264
+
265
+ <div class="omega-dl-mobile__stores" data-omega-reveal-stagger="80">
266
+ {% assign pending_mobile = 0 %}
267
+ {% for platform in resolved.downloads.platforms %}
268
+ {% unless platform.id == 'ios' or platform.id == 'android' %}{% continue %}{% endunless %}
269
+
270
+ {% assign has_download = false %}
271
+ {% for type in platform.types %}
272
+ {% assign config_url = "" %}{% comment %}MAM is parked (#610): site.targets carries no mobile fact{% endcomment %}
273
+ {% iftruthy config_url %}{% assign has_download = true %}{% break %}{% endiftruthy %}
274
+ {% endfor %}
275
+
276
+ {% if has_download %}
277
+ <div class="omega-dl-store" data-download-card data-platform="{{ platform.id }}" data-omega-reveal>
278
+ {% for type in platform.types %}
279
+ {% assign config_url = "" %}{% comment %}MAM is parked (#610): site.targets carries no mobile fact{% endcomment %}
280
+ {% iftruthy config_url %}
281
+ <a href="{{ config_url }}" class="omega-dl-store__badge" data-download="true" aria-label="{{ platform.name }}: {{ type.name }}">
282
+ {% omega_logo platform.store_badge, "brandmarks" %}
283
+ <span class="omega-dl-store__badge-text">
284
+ <span class="omega-dl-store__hint">Download on</span>
285
+ <strong>{{ type.name }}</strong>
286
+ </span>
287
+ </a>
288
+ {% endiftruthy %}
289
+ {% endfor %}
290
+ </div>
291
+ {% else %}
292
+ {% assign pending_mobile = pending_mobile | plus: 1 %}
293
+ {% endif %}
294
+ {% endfor %}
295
+
296
+ <!-- ONE notify-me form for every unshipped mobile store (Ian #14): the
297
+ address is the same address whichever store lands first. -->
298
+ {% if pending_mobile > 0 %}
299
+ <div class="omega-dl-store__soon" data-omega-reveal>
300
+ <span class="omega-dl-store__soon-heads">
301
+ {% for platform in resolved.downloads.platforms %}
302
+ {% unless platform.id == 'ios' or platform.id == 'android' %}{% continue %}{% endunless %}
303
+ {% assign has_download = false %}
304
+ {% for type in platform.types %}
305
+ {% assign config_url = "" %}{% comment %}MAM is parked (#610): site.targets carries no mobile fact{% endcomment %}
306
+ {% iftruthy config_url %}{% assign has_download = true %}{% break %}{% endiftruthy %}
307
+ {% endfor %}
308
+ {% unless has_download %}
309
+ <span class="d-inline-flex align-items-center gap-2">
310
+ <i class="fa-solid fa-{{ platform.icon }} fa-sm"></i>
311
+ <strong>{{ platform.name }}</strong>
312
+ </span>
313
+ {% endunless %}
314
+ {% endfor %}
315
+ <span class="omega-chip omega-chip--accent">Soon</span>
316
+ </span>
317
+ <p class="omega-quiet small mb-0">{{ resolved.downloads.coming_soon_mobile.description }}</p>
318
+ <form id="mobile-email-form" class="mobile-email-form" data-form-state="initializing" onsubmit="return false">
319
+ <label for="mobile-email" class="visually-hidden">Email address</label>
320
+ <div class="omega-dl-store__form">
321
+ <input
322
+ type="email"
323
+ class="form-control"
324
+ id="mobile-email"
325
+ name="email"
326
+ placeholder="you@work.com"
327
+ autocomplete="email"
328
+ required
329
+ >
330
+ <button class="btn btn-adaptive" type="submit">
331
+ <i class="fa-solid fa-paper-plane fa-sm me-1"></i>
332
+ Notify me
333
+ </button>
334
+ </div>
335
+ <div class="form-message small mt-2" aria-live="polite"></div>
336
+ </form>
337
+ </div>
338
+ {% endif %}
339
+ </div>
340
+ </div>
341
+ </div>
342
+ </section>
343
+
344
+ <!-- ═══ What travels with you — hairline rows ═══ -->
345
+ <section>
346
+ <div class="container">
347
+ <div class="omega-duo">
348
+ <div class="omega-duo__aside omega-section-head" data-omega-reveal>
349
+ {% component "heading/section-head", superheadline: resolved.highlights.superheadline.text, headline: resolved.highlights.headline, headline_accent: resolved.highlights.headline_accent %}
350
+ </div>
351
+
352
+ <div class="omega-rowlist" data-omega-reveal-stagger="60">
353
+ {% for feature in resolved.highlights.items %}
354
+ <div class="omega-rowlist__item" data-omega-reveal>
355
+ <span class="d-inline-flex align-items-center gap-3">
356
+ <span class="omega-icon-chip omega-icon-chip--neutral"><i class="fa-solid fa-{{ feature.icon }} fa-sm"></i></span>
357
+ <strong>{{ feature.title }}</strong>
358
+ </span>
359
+ <span class="omega-rowlist__meta">{{ feature.description }}</span>
360
+ </div>
361
+ {% endfor %}
362
+ </div>
363
+ </div>
364
+ </div>
365
+ </section>
366
+
367
+ <!-- ═══ Requirements — quiet duo ═══ -->
368
+ <section>
369
+ <div class="container">
370
+ <div class="omega-duo">
371
+ <div class="omega-duo__aside omega-section-head" data-omega-reveal>
372
+ {% component "heading/section-head", superheadline: resolved.system_requirements.superheadline.text, headline: resolved.system_requirements.headline, headline_accent: resolved.system_requirements.headline_accent, sub: resolved.system_requirements.subheadline %}
373
+ </div>
374
+
375
+ <div class="row g-5" data-omega-reveal>
376
+ <div class="col-md-6">
377
+ <span class="omega-micro d-block mb-3">{{ resolved.system_requirements.desktop.label }}</span>
378
+ <div class="omega-rowlist">
379
+ {% for platform in resolved.downloads.platforms %}
380
+ {% if platform.id == 'windows' or platform.id == 'mac' or platform.id == 'linux' %}
381
+ <div class="omega-rowlist__item"><span>{{ platform.description }}</span></div>
382
+ {% endif %}
383
+ {% endfor %}
384
+ {% for req in resolved.system_requirements.desktop.items %}
385
+ <div class="omega-rowlist__item"><span>{{ req.text }}</span></div>
386
+ {% endfor %}
387
+ </div>
388
+ </div>
389
+
390
+ <div class="col-md-6">
391
+ <span class="omega-micro d-block mb-3">{{ resolved.system_requirements.mobile.label }}</span>
392
+ <div class="omega-rowlist">
393
+ {% for platform in resolved.downloads.platforms %}
394
+ {% if platform.id == 'ios' or platform.id == 'android' %}
395
+ <div class="omega-rowlist__item"><span>{{ platform.description }}</span></div>
396
+ {% endif %}
397
+ {% endfor %}
398
+ {% for req in resolved.system_requirements.mobile.items %}
399
+ <div class="omega-rowlist__item"><span>{{ req.text }}</span></div>
400
+ {% endfor %}
401
+ </div>
402
+ </div>
403
+ </div>
404
+ </div>
405
+ </div>
406
+ </section>
407
+
408
+ <!-- ═══ FAQ ═══ -->
409
+ {% section "marketing/faq", data: resolved.faqs %}
410
+
411
+ <!-- ═══ CTA band ═══ -->
412
+ {% section "marketing/cta", data: resolved.cta %}
413
+
414
+ <!-- Onboarding Modal — the post-download walkthrough. Chrome speaks the classy
415
+ v2 vocabulary (tokens, hairlines, chips); the step illustrations keep their
416
+ own animation machinery in core/css/pages/download. -->
417
+ <div class="modal fade" id="onboardingModal" tabindex="-1" aria-labelledby="onboardingModalLabel" aria-hidden="true">
418
+ <div class="modal-dialog modal-dialog-centered modal-lg">
419
+ <div class="modal-content omega-dl-modal">
420
+ <div class="modal-header border-0 pb-0">
421
+ <h5 class="modal-title omega-dl-modal__title" id="onboardingModalLabel">
422
+ <span class="omega-icon-chip"><i class="fa-solid fa-rocket fa-sm"></i></span>
423
+ Getting started
424
+ </h5>
425
+ <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
426
+ </div>
427
+ <div class="modal-body p-4">
428
+ <!-- Windows Instructions -->
429
+ <div class="platform-instructions" data-platform="windows" hidden>
430
+ <div class="steps-slideshow">
431
+ <div class="steps-slideshow-slides">
432
+ <div class="step-slide" data-step="1">
433
+ <div class="step-number-badge">1</div>
434
+ <h5 class="step-title">Open your Downloads folder</h5>
435
+ <!-- <p class="text-muted mb-3">Find the <strong>Downloads</strong> folder on your computer</p> -->
436
+ <div class="instruction-step-container p-4 d-flex align-items-center justify-content-center overflow-hidden position-relative">
437
+ <div class="d-flex flex-column align-items-center gap-2 position-relative">
438
+ <div class="folder-icon animation-flex position-relative d-flex align-items-center justify-content-center">
439
+ <i class="fa-solid fa-download display-4"></i>
440
+ </div>
441
+ <span class="fw-bold">Downloads</span>
442
+ <div class="click-indicator folder-click-target position-absolute top-50 start-50">
443
+ <div class="click-pulse position-absolute"></div>
444
+ <div class="pointer-icon">
445
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48px" height="48px"><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"/><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"/></svg>
446
+ </div>
447
+ </div>
448
+ </div>
449
+ </div>
450
+ </div>
451
+
452
+ <div class="step-slide" data-step="2">
453
+ <div class="step-number-badge">2</div>
454
+ <h5 class="step-title">Double-click {{ resolved.config.brand.name }}-Setup.exe</h5>
455
+ <!-- <p class="text-muted mb-3">Click <strong>"Yes"</strong> if Windows asks for permission</p> -->
456
+ <div class="instruction-step-container p-4 d-flex align-items-center justify-content-center overflow-hidden position-relative">
457
+ <div class="d-flex flex-column align-items-center gap-2 position-relative">
458
+ <div class="file-to-click d-flex align-items-center justify-content-center">
459
+ <img src="{{ site.omega.placeholder.src }}" data-lazy="@src {{ brandmark_src }}" class="brandmark" alt="{{ resolved.config.brand.name }} Logo"/>
460
+ </div>
461
+ <span class="fw-bold">{{ resolved.config.brand.name }}-Setup.exe</span>
462
+ <div class="click-indicator position-absolute top-50 start-50">
463
+ <div class="click-pulse position-absolute"></div>
464
+ <div class="pointer-icon">
465
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48px" height="48px"><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"/><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"/></svg>
466
+ </div>
467
+ </div>
468
+ </div>
469
+ </div>
470
+ </div>
471
+
472
+ <div class="step-slide" data-step="3">
473
+ <div class="step-number-badge">3</div>
474
+ <h5 class="step-title">Follow the installation setup</h5>
475
+ <!-- <p class="text-muted mb-3">Click <strong>"Next"</strong> through the steps and accept the terms</p> -->
476
+ <div class="instruction-step-container p-4 d-flex align-items-center justify-content-center overflow-hidden position-relative">
477
+ <div class="wizard-window overflow-hidden">
478
+ <div class="wizard-header d-flex align-items-center px-2 small fw-bold">
479
+ {{ resolved.config.brand.name }} Setup
480
+ </div>
481
+ <div class="wizard-content bg-adaptive-inverse d-flex flex-column justify-content-center p-3">
482
+ <div class="small text-adaptive mb-2 text-center">Installing...</div>
483
+ <div class="progress-bar-container overflow-hidden w-100">
484
+ <div class="progress-fill"></div>
485
+ </div>
486
+ </div>
487
+ </div>
488
+ </div>
489
+ </div>
490
+
491
+ <div class="step-slide" data-step="4">
492
+ <div class="step-number-badge">4</div>
493
+ <h5 class="step-title">Launch the app</h5>
494
+ <!-- <p class="text-muted mb-3">Find {{ resolved.config.brand.name }} in your <strong>Start Menu</strong> or <strong>Desktop</strong> shortcut</p> -->
495
+ <div class="instruction-step-container p-4 d-flex align-items-center justify-content-center overflow-hidden position-relative">
496
+ <div class="d-flex flex-column align-items-center gap-2">
497
+ <div class="app-icon animation-flex d-flex align-items-center justify-content-center">
498
+ <img src="{{ site.omega.placeholder.src }}" data-lazy="@src {{ brandmark_src }}" class="brandmark" alt="{{ resolved.config.brand.name }} Logo"/>
499
+ </div>
500
+ <span class="fw-bold">{{ resolved.config.brand.name }}</span>
501
+ </div>
502
+ </div>
503
+ </div>
504
+
505
+ </div>
506
+ <div class="steps-slideshow-nav">
507
+ <button type="button" class="btn btn-outline-adaptive btn-sm step-prev" disabled>
508
+ <i class="fa-solid fa-chevron-left me-1"></i> Back
509
+ </button>
510
+ <div class="steps-dots"></div>
511
+ <button type="button" class="btn btn-adaptive btn-sm step-next">
512
+ <span class="button-text">Next</span> <i class="fa-solid fa-chevron-right ms-1"></i>
513
+ </button>
514
+ </div>
515
+ </div>
516
+ </div>
517
+
518
+ <!-- macOS Instructions -->
519
+ <div class="platform-instructions" data-platform="mac" hidden>
520
+ <div class="steps-slideshow">
521
+ <div class="steps-slideshow-slides">
522
+ <div class="step-slide" data-step="1">
523
+ <div class="step-number-badge">1</div>
524
+ <h5 class="step-title">Open your Downloads folder</h5>
525
+ <!-- <p class="text-muted mb-3">Find the <strong>Downloads</strong> folder on your Mac</p> -->
526
+ <div class="instruction-step-container p-4 d-flex align-items-center justify-content-center overflow-hidden position-relative">
527
+ <div class="d-flex flex-column align-items-center gap-2 position-relative">
528
+ <div class="folder-icon animation-flex position-relative d-flex align-items-center justify-content-center">
529
+ <i class="fa-solid fa-download display-4"></i>
530
+ </div>
531
+ <span class="fw-bold">Downloads</span>
532
+ <div class="click-indicator folder-click-target position-absolute top-50 start-50">
533
+ <div class="click-pulse position-absolute"></div>
534
+ <div class="pointer-icon">
535
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48px" height="48px"><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"/><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"/></svg>
536
+ </div>
537
+ </div>
538
+ </div>
539
+ </div>
540
+ </div>
541
+
542
+ <div class="step-slide" data-step="2">
543
+ <div class="step-number-badge">2</div>
544
+ <h5 class="step-title">Double-click {{ resolved.config.brand.name }}.dmg</h5>
545
+ <!-- <p class="text-muted mb-3">This will mount the disk image</p> -->
546
+ <div class="instruction-step-container p-4 d-flex align-items-center justify-content-center overflow-hidden position-relative">
547
+ <div class="d-flex flex-column align-items-center gap-2 position-relative">
548
+ <div class="file-to-click d-flex align-items-center justify-content-center">
549
+ <img src="{{ site.omega.placeholder.src }}" data-lazy="@src {{ brandmark_src }}" class="brandmark" alt="{{ resolved.config.brand.name }} Logo"/>
550
+ </div>
551
+ <span class="fw-bold">{{ resolved.config.brand.name }}.dmg</span>
552
+ <div class="click-indicator position-absolute top-50 start-50">
553
+ <div class="click-pulse position-absolute"></div>
554
+ <div class="pointer-icon">
555
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48px" height="48px"><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"/><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"/></svg>
556
+ </div>
557
+ </div>
558
+ </div>
559
+ </div>
560
+ </div>
561
+
562
+ <div class="step-slide" data-step="3">
563
+ <div class="step-number-badge">3</div>
564
+ <h5 class="step-title">Drag {{ resolved.config.brand.name }} to Applications folder</h5>
565
+ <!-- <p class="text-muted mb-3">This installs the app for all users</p> -->
566
+ <div class="instruction-step-container p-4 d-flex align-items-center justify-content-center overflow-hidden position-relative">
567
+ <div class="d-flex gap-5 align-items-center position-relative">
568
+ <div class="d-flex flex-column align-items-center gap-2 position-relative">
569
+ <div class="file-to-click d-flex align-items-center justify-content-center">
570
+ <img src="{{ site.omega.placeholder.src }}" data-lazy="@src {{ brandmark_src }}" class="brandmark" alt="{{ resolved.config.brand.name }} Logo"/>
571
+ </div>
572
+ <span class="fw-bold">{{ resolved.config.brand.name }}</span>
573
+ <div class="drag-indicator position-absolute top-50 start-50">
574
+ <div class="click-pulse position-absolute"></div>
575
+ <div class="pointer-icon">
576
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48px" height="48px"><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"/><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"/></svg>
577
+ </div>
578
+ </div>
579
+ </div>
580
+ <div class="text-primary animation-pulse-right">
581
+ <i class="fa-solid fa-arrow-right fs-1"></i>
582
+ </div>
583
+ <div class="d-flex flex-column align-items-center gap-2">
584
+ <div class="folder-icon position-relative d-flex align-items-center justify-content-center">
585
+ <i class="fa display-4">
586
+ <?xml version="1.0" encoding="utf-8"?>
587
+ <svg width="800px" height="800px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
588
+ <path fill="#1D81F3" d="M3,17 C2.44771525,17 2,16.5522847 2,16 C2,15.4477153 2.44771525,15 3,15 L13.5,15 C14.5,15 15.5,17 15,17 L3,17 Z M17,17 C16.4477153,17 16,16.5522847 16,16 C16,15.4477153 16.4477153,15 17,15 L21,15 C21.5522847,15 22,15.4477153 22,16 C22,16.5522847 21.5522847,17 21,17 L17,17 Z M12.6333775,3.50103556 C12.908948,3.02241319 13.5203421,2.85780709 13.9989644,3.13337754 C14.4775868,3.408948 14.6421929,4.02034208 14.3666225,4.49896444 L7.45953351,16.4954873 C7.18396306,16.9741097 6.57256898,17.1387158 6.09394661,16.8631454 C5.61532424,16.5875749 5.45071815,15.9761808 5.7262886,15.4975585 L12.6333775,3.50103556 Z M4,18.5 C4.5,17.5 7.5,16.5 6.5,18.2208385 C6.32221095,18.5267848 5.77775177,19.4528267 4.86662246,20.9989644 C4.591052,21.4775868 3.97965792,21.6421929 3.50103556,21.3666225 C3.02241319,21.091052 2.85780709,20.4796579 3.13337754,20.0010356 L4,18.5 Z M9.13337754,4.49896444 C8.85780709,4.02034208 9.02241319,3.408948 9.50103556,3.13337754 C9.97965792,2.85780709 10.591052,3.02241319 10.8666225,3.50103556 L12.6104584,6.52980328 C12.8860289,7.00842564 12.7214228,7.61981972 12.2428004,7.89539018 C11.764178,8.17096063 11.152784,8.00635453 10.8772135,7.52773217 L9.13337754,4.49896444 Z M13,11.5 C12.1018662,10 13,7 13.7163439,8.49589818 L20.3666225,20.0010356 C20.6421929,20.4796579 20.4775868,21.091052 19.9989644,21.3666225 C19.5203421,21.6421929 18.908948,21.4775868 18.6333775,20.9989644 L13,11.5 Z"/>
589
+ </svg>
590
+ </i>
591
+ </div>
592
+ <span class="fw-bold">Applications</span>
593
+ </div>
594
+ </div>
595
+ </div>
596
+ </div>
597
+
598
+ <div class="step-slide" data-step="4">
599
+ <div class="step-number-badge">4</div>
600
+ <h5 class="step-title">Launch the app</h5>
601
+ <!-- <p class="text-muted mb-3">Find {{ resolved.config.brand.name }} in your <strong>Applications</strong> folder or use <strong>Spotlight</strong></p> -->
602
+ <div class="instruction-step-container p-4 d-flex align-items-center justify-content-center overflow-hidden position-relative">
603
+ <div class="d-flex flex-column align-items-center gap-2">
604
+ <div class="app-icon animation-flex d-flex align-items-center justify-content-center">
605
+ <img src="{{ site.omega.placeholder.src }}" data-lazy="@src {{ brandmark_src }}" class="brandmark" alt="{{ resolved.config.brand.name }} Logo"/>
606
+ </div>
607
+ <span class="fw-bold">{{ resolved.config.brand.name }}</span>
608
+ </div>
609
+ </div>
610
+ </div>
611
+
612
+ </div>
613
+ <div class="steps-slideshow-nav">
614
+ <button type="button" class="btn btn-outline-adaptive btn-sm step-prev" disabled>
615
+ <i class="fa-solid fa-chevron-left me-1"></i> Back
616
+ </button>
617
+ <div class="steps-dots"></div>
618
+ <button type="button" class="btn btn-adaptive btn-sm step-next">
619
+ <span class="button-text">Next</span> <i class="fa-solid fa-chevron-right ms-1"></i>
620
+ </button>
621
+ </div>
622
+ </div>
623
+ </div>
624
+
625
+ <!-- Linux Instructions -->
626
+ <div class="platform-instructions" data-platform="linux" hidden>
627
+ <div class="steps-slideshow">
628
+ <div class="steps-slideshow-slides">
629
+ <div class="step-slide" data-step="1">
630
+ <div class="step-number-badge">1</div>
631
+ <h5 class="step-title">Open terminal</h5>
632
+ <!-- <p class="text-muted mb-3">Press <strong>Ctrl+Alt+T</strong></p> -->
633
+ <div class="instruction-step-container p-4 d-flex align-items-center justify-content-center overflow-hidden position-relative">
634
+ <div class="d-flex flex-column align-items-center gap-2 position-relative">
635
+ <div class="app-icon animation-flex app-icon--terminal d-flex align-items-center justify-content-center">
636
+ <i class="fa-solid fa-terminal display-4"></i>
637
+ </div>
638
+ <span class="fw-bold">Terminal</span>
639
+ <div class="click-indicator folder-click-target position-absolute top-50 start-50">
640
+ <div class="click-pulse position-absolute"></div>
641
+ <div class="pointer-icon">
642
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="48px" height="48px"><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"/><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"/></svg>
643
+ </div>
644
+ </div>
645
+ </div>
646
+ </div>
647
+ </div>
648
+
649
+ <div class="step-slide" data-step="2">
650
+ <div class="step-number-badge">2</div>
651
+ <h5 class="step-title" id="linux-step-2-label">Navigate to Downloads</h5>
652
+ <!-- <p class="text-muted mb-3">Run the command below</p> -->
653
+ <div class="omega-dl-modal__pane p-4 overflow-hidden position-relative">
654
+ <div class="input-group">
655
+ <input type="text" class="form-control font-monospace omega-dl-modal__cmd" name="linux-command-1" value="cd ~/Downloads" readonly aria-labelledby="linux-step-2-label">
656
+ <button type="button" class="btn btn-outline-adaptive copy-command-btn">
657
+ <i class="fa-solid fa-copy me-2"></i>
658
+ <span class="button-text d-none d-sm-inline">Copy</span>
659
+ </button>
660
+ </div>
661
+ </div>
662
+ </div>
663
+
664
+ <div class="step-slide" data-step="3">
665
+ <div class="step-number-badge">3</div>
666
+ <h5 class="step-title" id="linux-step-3-label">Install the package</h5>
667
+ <!-- <p class="text-muted mb-3">Run the appropriate command for your distribution</p> -->
668
+ <!-- The command installs the file the button just handed over:
669
+ the basename of the SAME derived URL (#620), never a second
670
+ hand-spelled rule. Debian is the only install step there is —
671
+ the pipeline builds a .deb and an AppImage (which needs no
672
+ install), and never an .rpm. -->
673
+ {% assign deb_file = site.targets.desktop.downloads.linux.debian | split: "/" | last %}
674
+ <div class="omega-dl-modal__pane p-4 overflow-hidden position-relative">
675
+ <div>
676
+ <small class="text-muted d-block mb-2 fw-bold" id="linux-debian-label">For Debian/Ubuntu:</small>
677
+ <div class="input-group">
678
+ <input type="text" class="form-control font-monospace omega-dl-modal__cmd" name="linux-command-2" value="sudo dpkg -i {{ deb_file }}" readonly aria-labelledby="linux-debian-label">
679
+ <button type="button" class="btn btn-outline-adaptive copy-command-btn">
680
+ <i class="fa-solid fa-copy me-2"></i>
681
+ <span class="button-text d-none d-sm-inline">Copy</span>
682
+ </button>
683
+ </div>
684
+ </div>
685
+ </div>
686
+ </div>
687
+
688
+ <div class="step-slide" data-step="4">
689
+ <div class="step-number-badge">4</div>
690
+ <h5 class="step-title">Launch the app</h5>
691
+ <!-- <p class="text-muted mb-3">Find {{ resolved.config.brand.name }} in your <strong>Applications</strong> menu</p> -->
692
+ <div class="instruction-step-container p-4 d-flex align-items-center justify-content-center overflow-hidden position-relative">
693
+ <div class="d-flex flex-column align-items-center gap-2">
694
+ <div class="app-icon animation-flex d-flex align-items-center justify-content-center">
695
+ <img src="{{ site.omega.placeholder.src }}" data-lazy="@src {{ brandmark_src }}" class="brandmark" alt="{{ resolved.config.brand.name }} Logo"/>
696
+ </div>
697
+ <span class="fw-bold">{{ resolved.config.brand.name }}</span>
698
+ </div>
699
+ </div>
700
+ </div>
701
+
702
+ </div>
703
+ <div class="steps-slideshow-nav">
704
+ <button type="button" class="btn btn-outline-adaptive btn-sm step-prev" disabled>
705
+ <i class="fa-solid fa-chevron-left me-1"></i> Back
706
+ </button>
707
+ <div class="steps-dots"></div>
708
+ <button type="button" class="btn btn-adaptive btn-sm step-next">
709
+ <span class="button-text">Next</span> <i class="fa-solid fa-chevron-right ms-1"></i>
710
+ </button>
711
+ </div>
712
+ </div>
713
+ </div>
714
+
715
+ <!-- Android Instructions -->
716
+ <div class="platform-instructions" data-platform="android" hidden>
717
+ <div class="steps-slideshow">
718
+ <div class="steps-slideshow-slides">
719
+ <div class="step-slide" data-step="1">
720
+ <div class="step-number-badge">1</div>
721
+ <h5 class="step-title">Open the Play Store app</h5>
722
+ <!-- <p class="text-muted mb-3">Or follow the download link that opened</p> -->
723
+ </div>
724
+
725
+ <div class="step-slide" data-step="2">
726
+ <div class="step-number-badge">2</div>
727
+ <h5 class="step-title">Tap "Install"</h5>
728
+ <!-- <p class="text-muted mb-3">Grant any required permissions</p> -->
729
+ </div>
730
+
731
+ <div class="step-slide" data-step="3">
732
+ <div class="step-number-badge">3</div>
733
+ <h5 class="step-title">Tap "Open"</h5>
734
+ <!-- <p class="text-muted mb-3">Or find the app icon on your home screen</p> -->
735
+ </div>
736
+
737
+ </div>
738
+ <div class="steps-slideshow-nav">
739
+ <button type="button" class="btn btn-outline-adaptive btn-sm step-prev" disabled>
740
+ <i class="fa-solid fa-chevron-left me-1"></i> Back
741
+ </button>
742
+ <div class="steps-dots"></div>
743
+ <button type="button" class="btn btn-adaptive btn-sm step-next">
744
+ <span class="button-text">Next</span> <i class="fa-solid fa-chevron-right ms-1"></i>
745
+ </button>
746
+ </div>
747
+ </div>
748
+ </div>
749
+
750
+ <!-- iOS Instructions -->
751
+ <div class="platform-instructions" data-platform="ios" hidden>
752
+ <div class="steps-slideshow">
753
+ <div class="steps-slideshow-slides">
754
+ <div class="step-slide" data-step="1">
755
+ <div class="step-number-badge">1</div>
756
+ <h5 class="step-title">Open the App Store</h5>
757
+ <!-- <p class="text-muted mb-3">Or follow the link that opened</p> -->
758
+ </div>
759
+
760
+ <div class="step-slide" data-step="2">
761
+ <div class="step-number-badge">2</div>
762
+ <h5 class="step-title">Tap "Get" or the download button</h5>
763
+ <!-- <p class="text-muted mb-3">You may need to verify with Face ID or Touch ID</p> -->
764
+ </div>
765
+
766
+ <div class="step-slide" data-step="3">
767
+ <div class="step-number-badge">3</div>
768
+ <h5 class="step-title">Tap "Open"</h5>
769
+ <!-- <p class="text-muted mb-3">Or find the app icon on your home screen</p> -->
770
+ </div>
771
+
772
+ </div>
773
+ <div class="steps-slideshow-nav">
774
+ <button type="button" class="btn btn-outline-adaptive btn-sm step-prev" disabled>
775
+ <i class="fa-solid fa-chevron-left me-1"></i> Back
776
+ </button>
777
+ <div class="steps-dots"></div>
778
+ <button type="button" class="btn btn-adaptive btn-sm step-next">
779
+ <span class="button-text">Next</span> <i class="fa-solid fa-chevron-right ms-1"></i>
780
+ </button>
781
+ </div>
782
+ </div>
783
+ </div>
784
+
785
+ <div class="omega-dl-modal__help mt-4" role="note">
786
+ <i class="fa-solid fa-lightbulb fa-sm me-2"></i><strong>Need help?</strong> Please <a href="/contact">contact support</a>.
787
+ </div>
788
+ </div>
789
+ </div>
790
+ </div>
791
+ </div>
792
+
793
+ {{ content | omega_content_format }}