@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.
- package/LICENSE +98 -0
- package/README.md +194 -0
- package/bin/omega +2 -0
- package/bin/omega-extension +2 -0
- package/bin/omg +2 -0
- package/dist/assets/css/bundles/.gitkeep +0 -0
- package/dist/assets/css/components/content/index.scss +5 -0
- package/dist/assets/css/components/options/index.scss +9 -0
- package/dist/assets/css/components/pages/index.scss +5 -0
- package/dist/assets/css/components/popup/index.scss +9 -0
- package/dist/assets/css/core/_animations.scss +64 -0
- package/dist/assets/css/core/_fontawesome.scss +146 -0
- package/dist/assets/css/core/_initialize.scss +23 -0
- package/dist/assets/css/core/_utilities.scss +80 -0
- package/dist/assets/css/omega-extension.scss +43 -0
- package/dist/assets/css/shell/_index.scss +207 -0
- package/dist/assets/css/tokens/_index.scss +166 -0
- package/dist/assets/js/core/app-shell.js +136 -0
- package/dist/assets/js/libs/initialize-tooltips.js +31 -0
- package/dist/assets/js/libs/recaptcha.js +94 -0
- package/dist/assets/js/main.js +4 -0
- package/dist/assets/themes/_template/README.md +115 -0
- package/dist/assets/themes/_template/_config.scss +60 -0
- package/dist/assets/themes/_template/_theme.js +14 -0
- package/dist/assets/themes/_template/_theme.scss +28 -0
- package/dist/assets/themes/_template/css/base/_root.scss +19 -0
- package/dist/assets/themes/_template/css/components/_components.scss +23 -0
- package/dist/assets/themes/base/README.md +5 -0
- package/dist/assets/themes/base/_components/data/org-chart/component.html +33 -0
- package/dist/assets/themes/base/_components/data/org-chart/component.json5 +33 -0
- package/dist/assets/themes/base/_components/data/org-chart/component.scss +183 -0
- package/dist/assets/themes/base/_components/heading/masthead/component.html +22 -0
- package/dist/assets/themes/base/_components/heading/masthead/component.json5 +30 -0
- package/dist/assets/themes/base/_components/heading/section-head/component.html +18 -0
- package/dist/assets/themes/base/_components/heading/section-head/component.json5 +27 -0
- package/dist/assets/themes/base/_components/pricing/features/component.html +29 -0
- package/dist/assets/themes/base/_components/pricing/features/component.json5 +30 -0
- package/dist/assets/themes/base/_hero/orbit/index.html +30 -0
- package/dist/assets/themes/base/_hero/orbit/script.js +33 -0
- package/dist/assets/themes/base/_hero/orbit/style.scss +133 -0
- package/dist/assets/themes/base/_includes/admin/sections/sidebar.html +3 -0
- package/dist/assets/themes/base/_includes/admin/sections/topbar.html +3 -0
- package/dist/assets/themes/base/_includes/backend/sections/sidebar.html +3 -0
- package/dist/assets/themes/base/_includes/backend/sections/topbar.html +3 -0
- package/dist/assets/themes/base/_includes/frontend/components/connection-card.html +49 -0
- package/dist/assets/themes/base/_includes/frontend/components/post-card.html +54 -0
- package/dist/assets/themes/base/_includes/frontend/sections/account-connections.html +42 -0
- package/dist/assets/themes/base/_includes/frontend/sections/account-section-header.html +11 -0
- package/dist/assets/themes/base/_includes/frontend/sections/footer.html +154 -0
- package/dist/assets/themes/base/_includes/frontend/sections/nav.html +276 -0
- package/dist/assets/themes/base/_includes/global/sections/account.html +72 -0
- package/dist/assets/themes/base/_includes/global/sections/app-sidebar.html +248 -0
- package/dist/assets/themes/base/_includes/global/sections/app-topbar.html +228 -0
- package/dist/assets/themes/base/_includes/global/sections/page-header.html +99 -0
- package/dist/assets/themes/base/_layouts/admin/core/minimal-viewport-locked.html +22 -0
- package/dist/assets/themes/base/_layouts/admin/core/minimal.html +23 -0
- package/dist/assets/themes/base/_layouts/backend/core/base.html +57 -0
- package/dist/assets/themes/base/_layouts/backend/core/minimal-viewport-locked.html +32 -0
- package/dist/assets/themes/base/_layouts/backend/core/minimal.html +32 -0
- package/dist/assets/themes/base/_layouts/backend/pages/dashboard/index.html +230 -0
- package/dist/assets/themes/base/_layouts/frontend/core/base.html +31 -0
- package/dist/assets/themes/base/_layouts/frontend/core/cover.html +40 -0
- package/dist/assets/themes/base/_layouts/frontend/core/minimal.html +47 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/404.html +54 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/about.html +144 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/account/index.html +2104 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/alternatives/alternative.html +319 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/alternatives/index.html +186 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/app.html +142 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/auth/reset.html +53 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/auth/signin.html +90 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/auth/signup.html +141 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/auth/token.html +44 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/blog/categories/category.html +88 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/blog/categories/index.html +88 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/blog/index.html +255 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/blog/post.html +261 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/blog/tags/index.html +84 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/blog/tags/tag.html +88 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/collection/category.html +72 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/collection/document.html +54 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/collection/index.html +84 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/connections/callback.html +55 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/contact.html +214 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/download.html +793 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/extension/index.html +253 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/extension/installed.html +198 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/feedback.html +171 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/index.html +66 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/legal/document.html +78 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/payment/checkout.html +459 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/payment/confirmation.html +131 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/portal/email-preferences.html +104 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/pricing.html +596 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/status.html +361 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/team/index.html +210 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/team/member.html +125 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/updates/index.html +119 -0
- package/dist/assets/themes/base/_layouts/frontend/pages/updates/update.html +118 -0
- package/dist/assets/themes/base/_sections/about/hero/section.html +68 -0
- package/dist/assets/themes/base/_sections/about/hero/section.json5 +58 -0
- package/dist/assets/themes/base/_sections/about/letter/section.html +60 -0
- package/dist/assets/themes/base/_sections/about/letter/section.json5 +56 -0
- package/dist/assets/themes/base/_sections/about/photo-band/section.html +24 -0
- package/dist/assets/themes/base/_sections/about/photo-band/section.json5 +23 -0
- package/dist/assets/themes/base/_sections/about/principles/section.html +17 -0
- package/dist/assets/themes/base/_sections/about/principles/section.json5 +34 -0
- package/dist/assets/themes/base/_sections/about/timeline/section.html +20 -0
- package/dist/assets/themes/base/_sections/about/timeline/section.json5 +34 -0
- package/dist/assets/themes/base/_sections/marketing/bento/section.html +91 -0
- package/dist/assets/themes/base/_sections/marketing/bento/section.json5 +152 -0
- package/dist/assets/themes/base/_sections/marketing/cta/section.html +44 -0
- package/dist/assets/themes/base/_sections/marketing/cta/section.json5 +47 -0
- package/dist/assets/themes/base/_sections/marketing/faq/section.html +52 -0
- package/dist/assets/themes/base/_sections/marketing/faq/section.json5 +68 -0
- package/dist/assets/themes/base/_sections/marketing/hero/section.html +349 -0
- package/dist/assets/themes/base/_sections/marketing/hero/section.json5 +335 -0
- package/dist/assets/themes/base/_sections/marketing/newsletter-cta/section.html +38 -0
- package/dist/assets/themes/base/_sections/marketing/newsletter-cta/section.js +86 -0
- package/dist/assets/themes/base/_sections/marketing/newsletter-cta/section.json5 +29 -0
- package/dist/assets/themes/base/_sections/marketing/pricing-cards/section.html +115 -0
- package/dist/assets/themes/base/_sections/marketing/pricing-cards/section.json5 +72 -0
- package/dist/assets/themes/base/_sections/marketing/product-demo/section.html +62 -0
- package/dist/assets/themes/base/_sections/marketing/product-demo/section.js +44 -0
- package/dist/assets/themes/base/_sections/marketing/product-demo/section.json5 +52 -0
- package/dist/assets/themes/base/_sections/marketing/prose/section.html +22 -0
- package/dist/assets/themes/base/_sections/marketing/prose/section.json5 +41 -0
- package/dist/assets/themes/base/_sections/marketing/showcase/section.html +35 -0
- package/dist/assets/themes/base/_sections/marketing/showcase/section.json5 +52 -0
- package/dist/assets/themes/base/_sections/marketing/stats/section.html +32 -0
- package/dist/assets/themes/base/_sections/marketing/stats/section.json5 +44 -0
- package/dist/assets/themes/base/_sections/marketing/testimonials/section.html +54 -0
- package/dist/assets/themes/base/_sections/marketing/testimonials/section.json5 +70 -0
- package/dist/assets/themes/base/_sections/marketing/trusted-by/section.html +30 -0
- package/dist/assets/themes/base/_sections/marketing/trusted-by/section.json5 +38 -0
- package/dist/assets/themes/base/_sections/verts/unit/section.html +7 -0
- package/dist/assets/themes/base/_sections/verts/unit/section.js +22 -0
- package/dist/assets/themes/base/_sections/verts/unit/section.json5 +24 -0
- package/dist/assets/themes/base/_sections/verts/unit/section.scss +24 -0
- package/dist/assets/themes/base/_theme.js +13 -0
- package/dist/assets/themes/base/_theme.scss +4 -0
- package/dist/assets/themes/bootstrap/_theme.js +16 -0
- package/dist/assets/themes/bootstrap/_theme.scss +11 -0
- package/dist/assets/themes/bootstrap/js/index.esm.js +19 -0
- package/dist/assets/themes/bootstrap/js/index.umd.js +34 -0
- package/dist/assets/themes/bootstrap/js/src/alert.js +87 -0
- package/dist/assets/themes/bootstrap/js/src/base-component.js +86 -0
- package/dist/assets/themes/bootstrap/js/src/button.js +72 -0
- package/dist/assets/themes/bootstrap/js/src/carousel.js +474 -0
- package/dist/assets/themes/bootstrap/js/src/collapse.js +297 -0
- package/dist/assets/themes/bootstrap/js/src/dom/data.js +55 -0
- package/dist/assets/themes/bootstrap/js/src/dom/event-handler.js +317 -0
- package/dist/assets/themes/bootstrap/js/src/dom/manipulator.js +71 -0
- package/dist/assets/themes/bootstrap/js/src/dom/selector-engine.js +126 -0
- package/dist/assets/themes/bootstrap/js/src/dropdown.js +458 -0
- package/dist/assets/themes/bootstrap/js/src/modal.js +378 -0
- package/dist/assets/themes/bootstrap/js/src/offcanvas.js +282 -0
- package/dist/assets/themes/bootstrap/js/src/popover.js +97 -0
- package/dist/assets/themes/bootstrap/js/src/scrollspy.js +296 -0
- package/dist/assets/themes/bootstrap/js/src/tab.js +315 -0
- package/dist/assets/themes/bootstrap/js/src/toast.js +224 -0
- package/dist/assets/themes/bootstrap/js/src/tooltip.js +632 -0
- package/dist/assets/themes/bootstrap/js/src/util/backdrop.js +151 -0
- package/dist/assets/themes/bootstrap/js/src/util/component-functions.js +35 -0
- package/dist/assets/themes/bootstrap/js/src/util/config.js +65 -0
- package/dist/assets/themes/bootstrap/js/src/util/focustrap.js +115 -0
- package/dist/assets/themes/bootstrap/js/src/util/index.js +306 -0
- package/dist/assets/themes/bootstrap/js/src/util/sanitizer.js +117 -0
- package/dist/assets/themes/bootstrap/js/src/util/scrollbar.js +114 -0
- package/dist/assets/themes/bootstrap/js/src/util/swipe.js +146 -0
- package/dist/assets/themes/bootstrap/js/src/util/template-factory.js +160 -0
- package/dist/assets/themes/bootstrap/overrides/_accordion.scss +21 -0
- package/dist/assets/themes/bootstrap/overrides/_avatars.scss +51 -0
- package/dist/assets/themes/bootstrap/overrides/_blog-images.scss +45 -0
- package/dist/assets/themes/bootstrap/overrides/_buttons-adaptive.scss +141 -0
- package/dist/assets/themes/bootstrap/overrides/_color-shades.scss +25 -0
- package/dist/assets/themes/bootstrap/overrides/_cursor-utilities.scss +13 -0
- package/dist/assets/themes/bootstrap/overrides/_index.scss +30 -0
- package/dist/assets/themes/bootstrap/overrides/_links.scss +26 -0
- package/dist/assets/themes/bootstrap/overrides/_soft-colors.scss +99 -0
- package/dist/assets/themes/bootstrap/overrides/_spacing-extended.scss +74 -0
- package/dist/assets/themes/bootstrap/overrides/_spinners.scss +22 -0
- package/dist/assets/themes/bootstrap/overrides/_typography-utilities.scss +40 -0
- package/dist/assets/themes/bootstrap/scss/_accordion.scss +153 -0
- package/dist/assets/themes/bootstrap/scss/_alert.scss +68 -0
- package/dist/assets/themes/bootstrap/scss/_badge.scss +38 -0
- package/dist/assets/themes/bootstrap/scss/_breadcrumb.scss +40 -0
- package/dist/assets/themes/bootstrap/scss/_button-group.scss +147 -0
- package/dist/assets/themes/bootstrap/scss/_buttons.scss +216 -0
- package/dist/assets/themes/bootstrap/scss/_card.scss +238 -0
- package/dist/assets/themes/bootstrap/scss/_carousel.scss +226 -0
- package/dist/assets/themes/bootstrap/scss/_close.scss +66 -0
- package/dist/assets/themes/bootstrap/scss/_containers.scss +41 -0
- package/dist/assets/themes/bootstrap/scss/_dropdown.scss +250 -0
- package/dist/assets/themes/bootstrap/scss/_forms.scss +9 -0
- package/dist/assets/themes/bootstrap/scss/_functions.scss +302 -0
- package/dist/assets/themes/bootstrap/scss/_grid.scss +39 -0
- package/dist/assets/themes/bootstrap/scss/_helpers.scss +12 -0
- package/dist/assets/themes/bootstrap/scss/_images.scss +42 -0
- package/dist/assets/themes/bootstrap/scss/_list-group.scss +199 -0
- package/dist/assets/themes/bootstrap/scss/_maps.scss +174 -0
- package/dist/assets/themes/bootstrap/scss/_mixins.scss +42 -0
- package/dist/assets/themes/bootstrap/scss/_modal.scss +240 -0
- package/dist/assets/themes/bootstrap/scss/_nav.scss +197 -0
- package/dist/assets/themes/bootstrap/scss/_navbar.scss +289 -0
- package/dist/assets/themes/bootstrap/scss/_offcanvas.scss +147 -0
- package/dist/assets/themes/bootstrap/scss/_pagination.scss +109 -0
- package/dist/assets/themes/bootstrap/scss/_placeholders.scss +51 -0
- package/dist/assets/themes/bootstrap/scss/_popover.scss +196 -0
- package/dist/assets/themes/bootstrap/scss/_progress.scss +68 -0
- package/dist/assets/themes/bootstrap/scss/_reboot.scss +611 -0
- package/dist/assets/themes/bootstrap/scss/_root.scss +187 -0
- package/dist/assets/themes/bootstrap/scss/_spinners.scss +85 -0
- package/dist/assets/themes/bootstrap/scss/_tables.scss +171 -0
- package/dist/assets/themes/bootstrap/scss/_toasts.scss +73 -0
- package/dist/assets/themes/bootstrap/scss/_tooltip.scss +119 -0
- package/dist/assets/themes/bootstrap/scss/_transitions.scss +27 -0
- package/dist/assets/themes/bootstrap/scss/_type.scss +106 -0
- package/dist/assets/themes/bootstrap/scss/_utilities.scss +806 -0
- package/dist/assets/themes/bootstrap/scss/_variables-dark.scss +102 -0
- package/dist/assets/themes/bootstrap/scss/_variables.scss +1753 -0
- package/dist/assets/themes/bootstrap/scss/bootstrap-grid.scss +62 -0
- package/dist/assets/themes/bootstrap/scss/bootstrap-reboot.scss +10 -0
- package/dist/assets/themes/bootstrap/scss/bootstrap-utilities.scss +19 -0
- package/dist/assets/themes/bootstrap/scss/bootstrap.scss +52 -0
- package/dist/assets/themes/bootstrap/scss/forms/_floating-labels.scss +97 -0
- package/dist/assets/themes/bootstrap/scss/forms/_form-check.scss +189 -0
- package/dist/assets/themes/bootstrap/scss/forms/_form-control.scss +214 -0
- package/dist/assets/themes/bootstrap/scss/forms/_form-range.scss +91 -0
- package/dist/assets/themes/bootstrap/scss/forms/_form-select.scss +80 -0
- package/dist/assets/themes/bootstrap/scss/forms/_form-text.scss +11 -0
- package/dist/assets/themes/bootstrap/scss/forms/_input-group.scss +132 -0
- package/dist/assets/themes/bootstrap/scss/forms/_labels.scss +36 -0
- package/dist/assets/themes/bootstrap/scss/forms/_validation.scss +12 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_clearfix.scss +3 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_color-bg.scss +7 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_colored-links.scss +30 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_focus-ring.scss +5 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_icon-link.scss +25 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_position.scss +36 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_ratio.scss +26 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_stacks.scss +15 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_stretched-link.scss +15 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_text-truncation.scss +7 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_visually-hidden.scss +8 -0
- package/dist/assets/themes/bootstrap/scss/helpers/_vr.scss +8 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_alert.scss +18 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_backdrop.scss +14 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_banner.scss +7 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_border-radius.scss +78 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_box-shadow.scss +18 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_breakpoints.scss +127 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_buttons.scss +70 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_caret.scss +69 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_clearfix.scss +9 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_color-mode.scss +21 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_color-scheme.scss +7 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_container.scss +11 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_deprecate.scss +10 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_forms.scss +163 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_gradients.scss +47 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_grid.scss +151 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_image.scss +16 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_list-group.scss +26 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_lists.scss +7 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_pagination.scss +10 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_reset-text.scss +17 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_resize.scss +6 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_table-variants.scss +24 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_text-truncate.scss +8 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_transition.scss +26 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_utilities.scss +97 -0
- package/dist/assets/themes/bootstrap/scss/mixins/_visually-hidden.scss +38 -0
- package/dist/assets/themes/bootstrap/scss/tests/jasmine.js +16 -0
- package/dist/assets/themes/bootstrap/scss/tests/mixins/_auto-import-of-variables-dark.test.scss +7 -0
- package/dist/assets/themes/bootstrap/scss/tests/mixins/_color-modes.test.scss +69 -0
- package/dist/assets/themes/bootstrap/scss/tests/mixins/_media-query-color-mode-full.test.scss +8 -0
- package/dist/assets/themes/bootstrap/scss/tests/mixins/_utilities.test.scss +393 -0
- package/dist/assets/themes/bootstrap/scss/tests/sass-true/register.js +14 -0
- package/dist/assets/themes/bootstrap/scss/tests/sass-true/runner.js +17 -0
- package/dist/assets/themes/bootstrap/scss/tests/utilities/_api.test.scss +75 -0
- package/dist/assets/themes/bootstrap/scss/utilities/_api.scss +47 -0
- package/dist/assets/themes/bootstrap/scss/vendor/_rfs.scss +348 -0
- package/dist/assets/themes/classy/README.md +89 -0
- package/dist/assets/themes/classy/_config.scss +245 -0
- package/dist/assets/themes/classy/_theme.js +31 -0
- package/dist/assets/themes/classy/_theme.scss +57 -0
- package/dist/assets/themes/classy/css/app/_panels.scss +183 -0
- package/dist/assets/themes/classy/css/base/_fonts.scss +79 -0
- package/dist/assets/themes/classy/css/base/_no-raise.scss +49 -0
- package/dist/assets/themes/classy/css/base/_root.scss +113 -0
- package/dist/assets/themes/classy/css/base/_typography.scss +154 -0
- package/dist/assets/themes/classy/css/base/_utilities.scss +284 -0
- package/dist/assets/themes/classy/css/components/_alerts.scss +51 -0
- package/dist/assets/themes/classy/css/components/_badges.scss +46 -0
- package/dist/assets/themes/classy/css/components/_buttons.scss +175 -0
- package/dist/assets/themes/classy/css/components/_cards.scss +41 -0
- package/dist/assets/themes/classy/css/components/_dropdowns.scss +48 -0
- package/dist/assets/themes/classy/css/components/_forms.scss +171 -0
- package/dist/assets/themes/classy/css/components/_receipt.scss +45 -0
- package/dist/assets/themes/classy/css/layout/_footer.scss +298 -0
- package/dist/assets/themes/classy/css/layout/_general.scss +209 -0
- package/dist/assets/themes/classy/css/layout/_nav.scss +154 -0
- package/dist/assets/themes/classy/css/layout/_shell.scss +458 -0
- package/dist/assets/themes/classy/css/marketing/_bento.scss +238 -0
- package/dist/assets/themes/classy/css/marketing/_content.scss +1328 -0
- package/dist/assets/themes/classy/css/marketing/_downloads.scss +246 -0
- package/dist/assets/themes/classy/css/marketing/_hero.scss +311 -0
- package/dist/assets/themes/classy/css/marketing/_sections.scss +649 -0
- package/dist/assets/themes/classy/css/pages/404/index.scss +67 -0
- package/dist/assets/themes/classy/css/pages/_auth.scss +235 -0
- package/dist/assets/themes/classy/css/pages/admin/firebase/index.scss +22 -0
- package/dist/assets/themes/classy/css/pages/blog/[slug].scss +56 -0
- package/dist/assets/themes/classy/css/pages/cookies.scss +2 -0
- package/dist/assets/themes/classy/css/pages/dashboard/account/index.scss +31 -0
- package/dist/assets/themes/classy/css/pages/feedback/index.scss +39 -0
- package/dist/assets/themes/classy/css/pages/legal/_document.scss +192 -0
- package/dist/assets/themes/classy/css/pages/payment/checkout/index.scss +585 -0
- package/dist/assets/themes/classy/css/pages/payment/confirmation/index.scss +9 -0
- package/dist/assets/themes/classy/css/pages/privacy.scss +2 -0
- package/dist/assets/themes/classy/css/pages/status/index.scss +164 -0
- package/dist/assets/themes/classy/css/pages/terms.scss +2 -0
- package/dist/assets/themes/classy/css/pages/updates/index.scss +128 -0
- package/dist/assets/themes/classy/fonts/inter-italic-latin-ext.woff2 +0 -0
- package/dist/assets/themes/classy/fonts/inter-italic-latin.woff2 +0 -0
- package/dist/assets/themes/classy/fonts/inter-normal-latin-ext.woff2 +0 -0
- package/dist/assets/themes/classy/fonts/inter-normal-latin.woff2 +0 -0
- package/dist/assets/themes/classy/fonts/newsreader-italic-latin-ext.woff2 +0 -0
- package/dist/assets/themes/classy/fonts/newsreader-italic-latin.woff2 +0 -0
- package/dist/assets/themes/classy/fonts/newsreader-normal-latin-ext.woff2 +0 -0
- package/dist/assets/themes/classy/fonts/newsreader-normal-latin.woff2 +0 -0
- package/dist/assets/themes/classy/js/hero-demo-form.js +56 -0
- package/dist/assets/themes/neobrutalism/README.md +118 -0
- package/dist/assets/themes/neobrutalism/_config.scss +139 -0
- package/dist/assets/themes/neobrutalism/_layouts/frontend/core/base.html +30 -0
- package/dist/assets/themes/neobrutalism/_layouts/frontend/pages/index.html +275 -0
- package/dist/assets/themes/neobrutalism/_theme.js +24 -0
- package/dist/assets/themes/neobrutalism/_theme.scss +61 -0
- package/dist/assets/themes/neobrutalism/css/base/_mixins.scss +46 -0
- package/dist/assets/themes/neobrutalism/css/base/_root.scss +169 -0
- package/dist/assets/themes/neobrutalism/css/base/_typography.scss +61 -0
- package/dist/assets/themes/neobrutalism/css/base/_utilities.scss +89 -0
- package/dist/assets/themes/neobrutalism/css/components/_billing-toggle.scss +74 -0
- package/dist/assets/themes/neobrutalism/css/components/_buttons.scss +148 -0
- package/dist/assets/themes/neobrutalism/css/components/_cards.scss +47 -0
- package/dist/assets/themes/neobrutalism/css/components/_forms.scss +88 -0
- package/dist/assets/themes/neobrutalism/css/components/_marketing.scss +244 -0
- package/dist/assets/themes/neobrutalism/css/layout/_general.scss +213 -0
- package/dist/assets/themes/neobrutalism/css/layout/_navigation.scss +171 -0
- package/dist/assets/themes/neobrutalism/css/pages/index.scss +203 -0
- package/dist/assets/themes/neobrutalism/css/pages/pricing/index.scss +58 -0
- package/dist/assets/themes/neobrutalism/css/pages/test/libraries/layers/index.scss +7 -0
- package/dist/assets/themes/neobrutalism/js/pages/test/libraries/layers/index.js +9 -0
- package/dist/assets/themes/newsflash/README.md +117 -0
- package/dist/assets/themes/newsflash/_components/heading/lede/component.html +14 -0
- package/dist/assets/themes/newsflash/_components/heading/lede/component.json5 +23 -0
- package/dist/assets/themes/newsflash/_components/heading/rule-head/component.html +17 -0
- package/dist/assets/themes/newsflash/_components/heading/rule-head/component.json5 +23 -0
- package/dist/assets/themes/newsflash/_components/news/byline/component.html +12 -0
- package/dist/assets/themes/newsflash/_components/news/byline/component.json5 +18 -0
- package/dist/assets/themes/newsflash/_components/news/story-card/component.html +25 -0
- package/dist/assets/themes/newsflash/_components/news/story-card/component.json5 +21 -0
- package/dist/assets/themes/newsflash/_config.scss +147 -0
- package/dist/assets/themes/newsflash/_layouts/frontend/core/base.html +51 -0
- package/dist/assets/themes/newsflash/_layouts/frontend/pages/blog/index.html +299 -0
- package/dist/assets/themes/newsflash/_layouts/frontend/pages/blog/post.html +235 -0
- package/dist/assets/themes/newsflash/_layouts/frontend/pages/index.html +328 -0
- package/dist/assets/themes/newsflash/_sections/marketing/desks/section.html +39 -0
- package/dist/assets/themes/newsflash/_sections/marketing/desks/section.json5 +49 -0
- package/dist/assets/themes/newsflash/_sections/marketing/newsletter-cta/section.html +103 -0
- package/dist/assets/themes/newsflash/_sections/marketing/newsletter-cta/section.json5 +50 -0
- package/dist/assets/themes/newsflash/_sections/marketing/rundown/section.html +28 -0
- package/dist/assets/themes/newsflash/_sections/marketing/rundown/section.json5 +40 -0
- package/dist/assets/themes/newsflash/_theme.js +24 -0
- package/dist/assets/themes/newsflash/_theme.scss +70 -0
- package/dist/assets/themes/newsflash/css/base/_fonts.scss +80 -0
- package/dist/assets/themes/newsflash/css/base/_mixins.scss +51 -0
- package/dist/assets/themes/newsflash/css/base/_root.scss +257 -0
- package/dist/assets/themes/newsflash/css/base/_typography.scss +49 -0
- package/dist/assets/themes/newsflash/css/base/_utilities.scss +122 -0
- package/dist/assets/themes/newsflash/css/components/_badges.scss +65 -0
- package/dist/assets/themes/newsflash/css/components/_billing-toggle.scss +61 -0
- package/dist/assets/themes/newsflash/css/components/_buttons.scss +139 -0
- package/dist/assets/themes/newsflash/css/components/_cards.scss +47 -0
- package/dist/assets/themes/newsflash/css/components/_editorial.scss +173 -0
- package/dist/assets/themes/newsflash/css/components/_forms.scss +75 -0
- package/dist/assets/themes/newsflash/css/components/_infinite-scroll.scss +102 -0
- package/dist/assets/themes/newsflash/css/components/_panels.scss +156 -0
- package/dist/assets/themes/newsflash/css/components/_ticker.scss +67 -0
- package/dist/assets/themes/newsflash/css/layout/_general.scss +330 -0
- package/dist/assets/themes/newsflash/css/layout/_navigation.scss +168 -0
- package/dist/assets/themes/newsflash/css/pages/404/index.scss +79 -0
- package/dist/assets/themes/newsflash/css/pages/blog/[slug].scss +186 -0
- package/dist/assets/themes/newsflash/css/pages/blog/index.scss +17 -0
- package/dist/assets/themes/newsflash/css/pages/index.scss +157 -0
- package/dist/assets/themes/newsflash/css/pages/pricing/index.scss +55 -0
- package/dist/assets/themes/newsflash/css/pages/test/libraries/layers/index.scss +7 -0
- package/dist/assets/themes/newsflash/fonts/fraunces-italic-latin-ext.woff2 +0 -0
- package/dist/assets/themes/newsflash/fonts/fraunces-italic-latin.woff2 +0 -0
- package/dist/assets/themes/newsflash/fonts/fraunces-normal-latin-ext.woff2 +0 -0
- package/dist/assets/themes/newsflash/fonts/fraunces-normal-latin.woff2 +0 -0
- package/dist/assets/themes/newsflash/fonts/schibsted-grotesk-italic-latin-ext.woff2 +0 -0
- package/dist/assets/themes/newsflash/fonts/schibsted-grotesk-italic-latin.woff2 +0 -0
- package/dist/assets/themes/newsflash/fonts/schibsted-grotesk-normal-latin-ext.woff2 +0 -0
- package/dist/assets/themes/newsflash/fonts/schibsted-grotesk-normal-latin.woff2 +0 -0
- package/dist/assets/themes/newsflash/js/pages/blog/[slug].js +29 -0
- package/dist/assets/themes/newsflash/js/pages/test/libraries/layers/index.js +9 -0
- package/dist/background.js +684 -0
- package/dist/build.js +268 -0
- package/dist/cli-run.js +25 -0
- package/dist/cli.js +30 -0
- package/dist/commands/build.js +67 -0
- package/dist/commands/clean.js +29 -0
- package/dist/commands/deploy.js +97 -0
- package/dist/commands/install.js +58 -0
- package/dist/commands/lib/dependencies.js +33 -0
- package/dist/commands/lib/deploy-precheck.js +57 -0
- package/dist/commands/lib/ensure-target.js +151 -0
- package/dist/commands/lib/push-secrets.js +60 -0
- package/dist/commands/migrate.js +77 -0
- package/dist/commands/test.js +110 -0
- package/dist/commands/update.js +21 -0
- package/dist/commands/version.js +12 -0
- package/dist/config/manifest.json +117 -0
- package/dist/config/page-template.html +21 -0
- package/dist/content.js +37 -0
- package/dist/defaults/.github/workflows/publish.yml +86 -0
- package/dist/defaults/.nvmrc +1 -0
- package/dist/defaults/.vscode/settings.json +8 -0
- package/dist/defaults/AGENTS.md +113 -0
- package/dist/defaults/CHANGELOG.md +15 -0
- package/dist/defaults/CLAUDE.md +1 -0
- package/dist/defaults/_.gitignore +75 -0
- package/dist/defaults/config/description.md +46 -0
- package/dist/defaults/config/messages.json +20 -0
- package/dist/defaults/config/omega.json5 +64 -0
- package/dist/defaults/docs/README.md +17 -0
- package/dist/defaults/gulpfile.js +6 -0
- package/dist/defaults/hooks/build/post.js +8 -0
- package/dist/defaults/hooks/build/pre.js +8 -0
- package/dist/defaults/src/assets/css/bundles/.gitkeep +0 -0
- package/dist/defaults/src/assets/css/components/content/index.scss +11 -0
- package/dist/defaults/src/assets/css/components/offscreen/index.scss +4 -0
- package/dist/defaults/src/assets/css/components/options/index.scss +14 -0
- package/dist/defaults/src/assets/css/components/pages/index.scss +10 -0
- package/dist/defaults/src/assets/css/components/popup/index.scss +10 -0
- package/dist/defaults/src/assets/css/components/sidepanel/index.scss +6 -0
- package/dist/defaults/src/assets/css/main.scss +32 -0
- package/dist/defaults/src/assets/images/.gitkeep +0 -0
- package/dist/defaults/src/assets/js/components/background/index.js +25 -0
- package/dist/defaults/src/assets/js/components/content/index.js +22 -0
- package/dist/defaults/src/assets/js/components/offscreen/index.js +25 -0
- package/dist/defaults/src/assets/js/components/options/index.js +22 -0
- package/dist/defaults/src/assets/js/components/pages/index.js +22 -0
- package/dist/defaults/src/assets/js/components/popup/index.js +22 -0
- package/dist/defaults/src/assets/js/components/sidepanel/index.js +20 -0
- package/dist/defaults/src/assets/vendor/.gitkeep +0 -0
- package/dist/defaults/src/manifest.json +131 -0
- package/dist/defaults/src/views/offscreen/index.html +3 -0
- package/dist/defaults/src/views/options/index.html +8 -0
- package/dist/defaults/src/views/pages/index.html +10 -0
- package/dist/defaults/src/views/popup/index.html +4 -0
- package/dist/defaults/src/views/sidepanel/index.html +4 -0
- package/dist/defaults/test/README.md +41 -0
- package/dist/defaults/test/_init.js +10 -0
- package/dist/defaults/test/boot/externally-connectable.test.js +28 -0
- package/dist/gulp/config/locales.js +12 -0
- package/dist/gulp/main.js +78 -0
- package/dist/gulp/tasks/_.js +18 -0
- package/dist/gulp/tasks/audit.js +222 -0
- package/dist/gulp/tasks/bundle.js +687 -0
- package/dist/gulp/tasks/defaults.js +281 -0
- package/dist/gulp/tasks/distribute.js +172 -0
- package/dist/gulp/tasks/fontawesome.js +25 -0
- package/dist/gulp/tasks/html.js +163 -0
- package/dist/gulp/tasks/icons.js +126 -0
- package/dist/gulp/tasks/package.js +742 -0
- package/dist/gulp/tasks/publish.js +417 -0
- package/dist/gulp/tasks/sass.js +252 -0
- package/dist/gulp/tasks/serve.js +103 -0
- package/dist/gulp/tasks/translate.js +252 -0
- package/dist/gulp/tasks/utils/build-json.js +43 -0
- package/dist/gulp/tasks/utils/template-transform.js +50 -0
- package/dist/gulp/templates/BUILD_INSTRUCTIONS.md +69 -0
- package/dist/index.js +46 -0
- package/dist/lib/affiliatizer.js +224 -0
- package/dist/lib/analytics.js +26 -0
- package/dist/lib/auth-helpers.js +213 -0
- package/dist/lib/extension.js +116 -0
- package/dist/lib/icons.js +36 -0
- package/dist/lib/logger-lite.js +35 -0
- package/dist/lib/logger.js +4 -0
- package/dist/lib/messaging.js +48 -0
- package/dist/lib/safe-install.js +4 -0
- package/dist/lib/theme.js +73 -0
- package/dist/lib/verts.js +68 -0
- package/dist/offscreen.js +31 -0
- package/dist/omega-bin.js +6 -0
- package/dist/options.js +80 -0
- package/dist/page.js +80 -0
- package/dist/popup.js +80 -0
- package/dist/sidepanel.js +80 -0
- package/dist/test/assert.js +4 -0
- package/dist/test/fixtures/consumer-extension/dist/background.js +23 -0
- package/dist/test/fixtures/consumer-extension/dist/manifest.json +20 -0
- package/dist/test/fixtures/consumer-extension/dist/options.html +10 -0
- package/dist/test/fixtures/consumer-extension/dist/popup.bundle.js +5 -0
- package/dist/test/fixtures/consumer-extension/dist/popup.html +12 -0
- package/dist/test/harness/extension/background.js +26 -0
- package/dist/test/harness/extension/manifest.json +27 -0
- package/dist/test/harness/extension/options.html +12 -0
- package/dist/test/harness/extension/popup.html +12 -0
- package/dist/test/harness/extension/sidepanel.html +12 -0
- package/dist/test/index.js +63 -0
- package/dist/test/runner.js +99 -0
- package/dist/test/runners/boot.js +221 -0
- package/dist/test/runners/chromium.js +391 -0
- package/dist/test/runners/helpers.js +24 -0
- package/dist/test/suites/background/messaging.test.js +44 -0
- package/dist/test/suites/background/storage.test.js +46 -0
- package/dist/test/suites/background/sw-context.test.js +49 -0
- package/dist/test/suites/boot/build-json-bake.test.js +80 -0
- package/dist/test/suites/boot/extension-loads.test.js +58 -0
- package/dist/test/suites/build/affiliatizer.test.js +64 -0
- package/dist/test/suites/build/app-launch.test.js +65 -0
- package/dist/test/suites/build/attach-log-file.test.js +99 -0
- package/dist/test/suites/build/auth-emulator-gate.test.js +118 -0
- package/dist/test/suites/build/auth-triggers.test.js +71 -0
- package/dist/test/suites/build/boot-discovery.test.js +134 -0
- package/dist/test/suites/build/boot-timeout.test.js +92 -0
- package/dist/test/suites/build/build-error-notification.test.js +122 -0
- package/dist/test/suites/build/build-json-bake.test.js +302 -0
- package/dist/test/suites/build/build-verb.test.js +138 -0
- package/dist/test/suites/build/bundle-targets.test.js +66 -0
- package/dist/test/suites/build/cache-warming.test.js +44 -0
- package/dist/test/suites/build/cli.test.js +150 -0
- package/dist/test/suites/build/default-boot-test.test.js +100 -0
- package/dist/test/suites/build/defaults-scaffold.test.js +287 -0
- package/dist/test/suites/build/deploy-dispatch.test.js +76 -0
- package/dist/test/suites/build/distribute-task.test.js +111 -0
- package/dist/test/suites/build/ensure-target.test.js +141 -0
- package/dist/test/suites/build/env-delivery.test.js +239 -0
- package/dist/test/suites/build/env-watch.test.js +86 -0
- package/dist/test/suites/build/expect.test.js +48 -0
- package/dist/test/suites/build/exports.test.js +53 -0
- package/dist/test/suites/build/extension-fallback.test.js +82 -0
- package/dist/test/suites/build/framework-deps.test.js +176 -0
- package/dist/test/suites/build/global-handlers.test.js +70 -0
- package/dist/test/suites/build/icon-sheet.test.js +74 -0
- package/dist/test/suites/build/logger-lite.test.js +61 -0
- package/dist/test/suites/build/manager.test.js +249 -0
- package/dist/test/suites/build/mode-helpers.test.js +136 -0
- package/dist/test/suites/build/omega-shell.test.js +103 -0
- package/dist/test/suites/build/omega-tokens.test.js +76 -0
- package/dist/test/suites/build/package-task.test.js +831 -0
- package/dist/test/suites/build/setup-scripts.test.js +172 -0
- package/dist/test/suites/build/strip-dev-blocks.test.js +122 -0
- package/dist/test/suites/build/template-replace.test.js +116 -0
- package/dist/test/suites/build/test-discovery.test.js +64 -0
- package/dist/test/suites/build/test-target-no-match.test.js +119 -0
- package/dist/test/suites/build/theme-resolve.test.js +115 -0
- package/dist/test/suites/build/translate.test.js +85 -0
- package/dist/test/suites/build/url-helpers.test.js +119 -0
- package/dist/test/suites/build/verb-logs.test.js +43 -0
- package/dist/test/suites/build/verts-binding.test.js +67 -0
- package/dist/test/suites/build/wakeup-ping.test.js +90 -0
- package/dist/test/suites/build/wave5-messenger.test.js +80 -0
- package/dist/test/suites/view/options-and-sidepanel.test.js +16 -0
- package/dist/test/suites/view/popup-context.test.js +53 -0
- package/dist/test/suites/view/sidepanel.test.js +16 -0
- package/dist/test/utils/extended-mode-warning.js +13 -0
- package/dist/utils/attach-log-file.js +4 -0
- package/dist/utils/mode-helpers.js +117 -0
- package/dist/utils/url-helpers.js +69 -0
- package/dist/vendor/account/engine.js +182 -0
- package/dist/vendor/account/features.js +220 -0
- package/dist/vendor/account/index.js +53 -0
- package/dist/vendor/account/schema.js +272 -0
- package/dist/vendor/account/subscription.js +38 -0
- package/dist/vendor/config/company.js +31 -0
- package/dist/vendor/config/defaults.js +173 -0
- package/dist/vendor/config/demo.js +18 -0
- package/dist/vendor/config/desktop-artifacts.js +110 -0
- package/dist/vendor/config/edit.js +769 -0
- package/dist/vendor/config/env-delivery.js +145 -0
- package/dist/vendor/config/env-rules.js +93 -0
- package/dist/vendor/config/env-schema.js +1078 -0
- package/dist/vendor/config/env.js +445 -0
- package/dist/vendor/config/hooks.js +97 -0
- package/dist/vendor/config/index.js +237 -0
- package/dist/vendor/config/instances.js +208 -0
- package/dist/vendor/config/load.js +490 -0
- package/dist/vendor/config/merge.js +68 -0
- package/dist/vendor/config/order.js +139 -0
- package/dist/vendor/config/ports.js +374 -0
- package/dist/vendor/config/providers.js +32 -0
- package/dist/vendor/config/repo.js +142 -0
- package/dist/vendor/config/retired-keys.js +430 -0
- package/dist/vendor/config/schema.js +1610 -0
- package/dist/vendor/config/secrets.js +50 -0
- package/dist/vendor/config/seed.js +34 -0
- package/dist/vendor/config/site-global.js +205 -0
- package/dist/vendor/config/validate.js +554 -0
- package/dist/vendor/config/winback.js +61 -0
- package/dist/vendor/devkit/actions-secrets.js +145 -0
- package/dist/vendor/devkit/attach-log-file.js +262 -0
- package/dist/vendor/devkit/bundle.js +292 -0
- package/dist/vendor/devkit/ci-workflows.js +520 -0
- package/dist/vendor/devkit/clean-dirs.js +28 -0
- package/dist/vendor/devkit/cli-router.js +156 -0
- package/dist/vendor/devkit/defaults-engine.js +372 -0
- package/dist/vendor/devkit/deploy-precheck.js +54 -0
- package/dist/vendor/devkit/deploy-record.js +180 -0
- package/dist/vendor/devkit/deploy.js +286 -0
- package/dist/vendor/devkit/empty-modules-plugin.js +64 -0
- package/dist/vendor/devkit/env-watch.js +132 -0
- package/dist/vendor/devkit/framework-deps.js +46 -0
- package/dist/vendor/devkit/icons.js +178 -0
- package/dist/vendor/devkit/license.js +155 -0
- package/dist/vendor/devkit/local.js +1905 -0
- package/dist/vendor/devkit/logger.js +128 -0
- package/dist/vendor/devkit/merge-line-files.js +296 -0
- package/dist/vendor/devkit/npm-registry.js +52 -0
- package/dist/vendor/devkit/omega-bin.js +345 -0
- package/dist/vendor/devkit/safe-install.js +18 -0
- package/dist/vendor/devkit/scaffold-guard.js +96 -0
- package/dist/vendor/devkit/strip-dev-blocks-plugin.js +29 -0
- package/dist/vendor/devkit/strip-dev-blocks.js +32 -0
- package/dist/vendor/devkit/target-dependencies.js +137 -0
- package/dist/vendor/devkit/target-secrets.js +165 -0
- package/dist/vendor/devkit/test/assert.js +120 -0
- package/dist/vendor/devkit/test/define-cases.js +104 -0
- package/dist/vendor/devkit/test/extended-mode-warning.js +22 -0
- package/dist/vendor/devkit/test/runner-core.js +554 -0
- package/dist/vendor/devkit/test/scope.js +162 -0
- package/dist/vendor/devkit/translate/cache.js +84 -0
- package/dist/vendor/devkit/translate/engine.js +243 -0
- package/dist/vendor/devkit/translate/index.js +49 -0
- package/dist/vendor/devkit/translate/languages.js +134 -0
- package/dist/vendor/devkit/translate/providers.js +188 -0
- package/dist/vendor/devkit/update.js +569 -0
- package/docs/affiliatizer.md +81 -0
- package/docs/audit.md +67 -0
- package/docs/auth.md +149 -0
- package/docs/build-system.md +176 -0
- package/docs/cdp-debugging.md +42 -0
- package/docs/cli.md +73 -0
- package/docs/common-mistakes.md +10 -0
- package/docs/components.md +87 -0
- package/docs/css.md +133 -0
- package/docs/defaults.md +72 -0
- package/docs/environment-detection.md +79 -0
- package/docs/extension.md +93 -0
- package/docs/hooks.md +111 -0
- package/docs/icons.md +47 -0
- package/docs/index.md +291 -0
- package/docs/logging.md +33 -0
- package/docs/managers.md +100 -0
- package/docs/offscreen.md +57 -0
- package/docs/publishing.md +182 -0
- package/docs/shared/agent-docs.md +89 -0
- package/docs/shared/analytics.md +612 -0
- package/docs/shared/brands.md +51 -0
- package/docs/shared/breaking-changes.md +497 -0
- package/docs/shared/config.md +1387 -0
- package/docs/shared/deploys.md +215 -0
- package/docs/shared/icons.md +201 -0
- package/docs/shared/local-dev.md +147 -0
- package/docs/shared/logging.md +202 -0
- package/docs/shared/monitoring.md +153 -0
- package/docs/shared/publishing.md +183 -0
- package/docs/shared/rulings.md +34 -0
- package/docs/shared/testing.md +147 -0
- package/docs/shared/theming.md +604 -0
- package/docs/shared/translation.md +291 -0
- package/docs/shared/updates.md +61 -0
- package/docs/templating.md +66 -0
- package/docs/test-boot-layer.md +143 -0
- package/docs/test-framework.md +411 -0
- package/docs/themes.md +89 -0
- package/docs/translations.md +73 -0
- package/docs/verts.md +67 -0
- package/docs/xss-prevention.md +95 -0
- package/package.json +159 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: frontend/core/base
|
|
3
|
+
|
|
4
|
+
#### THEME CONFIG ####
|
|
5
|
+
# Page sections: extracted to _sections/marketing/* (hero, trusted-by, bento,
|
|
6
|
+
# product-demo, showcase, stats — each section.json5 owns the defaults;
|
|
7
|
+
# consumers override by owning the composition in their page BODY — page
|
|
8
|
+
# frontmatter is meta-only since 2026-07-19; directory data remains the
|
|
9
|
+
# site-wide lane — docs/web/omega-sections-spec.md).
|
|
10
|
+
|
|
11
|
+
# Testimonials + CTA — page copy stays HERE: marketing/testimonials and
|
|
12
|
+
# marketing/cta are SHARED bands (pricing/alternatives/about/team/... pass
|
|
13
|
+
# their own), so their json5 defaults stay neutral and every page owns its
|
|
14
|
+
# copy (spec §6 shared-band ruling).
|
|
15
|
+
testimonials:
|
|
16
|
+
superheadline: "Testimonials"
|
|
17
|
+
items:
|
|
18
|
+
- quote: "This platform <em>transformed</em> how we ship. We went from idea to production in a weekend."
|
|
19
|
+
author: "Sarah Johnson"
|
|
20
|
+
role: "CEO, TechStart Inc"
|
|
21
|
+
initial: "S"
|
|
22
|
+
- quote: "Best investment we've made. Everything just works, <em>together</em>."
|
|
23
|
+
author: "Michael Chen"
|
|
24
|
+
role: "Founder, DataFlow"
|
|
25
|
+
initial: "M"
|
|
26
|
+
- quote: "The kind of foundation you usually spend a year building. We got it on <em>day one</em>."
|
|
27
|
+
author: "Emily Davis"
|
|
28
|
+
role: "Director, Creative Studio"
|
|
29
|
+
initial: "E"
|
|
30
|
+
|
|
31
|
+
# CTA Section — the ink band
|
|
32
|
+
cta:
|
|
33
|
+
headline: "Ready to build something people remember?"
|
|
34
|
+
subheadline: "Join thousands of teams already shipping with {{ resolved.config.brand.name }}."
|
|
35
|
+
primary_button:
|
|
36
|
+
text: "Start free today"
|
|
37
|
+
href: "/signup"
|
|
38
|
+
config:
|
|
39
|
+
theme:
|
|
40
|
+
main:
|
|
41
|
+
class: "pt-0"
|
|
42
|
+
---
|
|
43
|
+
{% composition %}
|
|
44
|
+
{% section "marketing/hero", data: resolved.hero %}
|
|
45
|
+
<!-- ═══ Trusted-by marquee ═══ -->
|
|
46
|
+
{% section "marketing/trusted-by", data: resolved.trusted_by %}
|
|
47
|
+
<!-- ═══ Bento ═══ -->
|
|
48
|
+
{% section "marketing/bento", data: resolved.bento %}
|
|
49
|
+
<!-- ═══ Plan cards (#493) — the catalog itself, right under the WHY band.
|
|
50
|
+
plans/annual bridge from resolved.pricing: ONE pricing source, and a
|
|
51
|
+
brand with no published catalog renders no band. ═══ -->
|
|
52
|
+
{% section "marketing/pricing-cards", data: resolved.pricing_cards, plans: resolved.pricing.plans, annual: resolved.pricing.billing.annually %}
|
|
53
|
+
<!-- ═══ Product demo (optional video tabs) ═══ -->
|
|
54
|
+
{% section "marketing/product-demo", data: resolved.product_demo %}
|
|
55
|
+
<!-- ═══ Showcase (optional alternating rows) ═══ -->
|
|
56
|
+
{% section "marketing/showcase", data: resolved.showcase %}
|
|
57
|
+
<!-- ═══ Stats band ═══ -->
|
|
58
|
+
{% section "marketing/stats", items: resolved.stats %}
|
|
59
|
+
<!-- ═══ Quote ═══ -->
|
|
60
|
+
{% iftruthy resolved.testimonials.items %}
|
|
61
|
+
{% section "marketing/testimonials", data: resolved.testimonials %}
|
|
62
|
+
{% endiftruthy %}
|
|
63
|
+
|
|
64
|
+
<!-- ═══ CTA band ═══ -->
|
|
65
|
+
{% section "marketing/cta", data: resolved.cta %}
|
|
66
|
+
{% endcomposition %}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: frontend/core/base
|
|
3
|
+
|
|
4
|
+
# ═══ Legal document shell — reimagined 2026-07-16. One layout for the trio
|
|
5
|
+
# (terms/privacy/cookies): sober document header with the legal-hub switcher,
|
|
6
|
+
# a sticky "On this page" rail built from the document's h3 sections
|
|
7
|
+
# (core/js/pages/legal/document), and the text at a readable measure.
|
|
8
|
+
|
|
9
|
+
config:
|
|
10
|
+
theme:
|
|
11
|
+
nav:
|
|
12
|
+
enabled: true
|
|
13
|
+
footer:
|
|
14
|
+
enabled: true
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
{% capture company %}{{ resolved.config.brand.company | default: resolved.config.brand.name }}{% endcapture %}
|
|
18
|
+
|
|
19
|
+
<!-- ═══ Document header ═══ -->
|
|
20
|
+
{% comment %} #467 (after #749): this masthead IS the page's first viewport, so
|
|
21
|
+
the band paints with the document — data-omega-first-paint on the section, no
|
|
22
|
+
stagger container, and the masthead cluster on its first_paint switch. The
|
|
23
|
+
document body below it never carried a reveal of its own. {% endcomment %}
|
|
24
|
+
<section class="omega-legal__head pb-4" data-omega-first-paint>
|
|
25
|
+
<div class="container">
|
|
26
|
+
{% component "heading/masthead", eyebrow: "Legal", headline: resolved.meta.breadcrumb, h1_class: "mb-2", sub: resolved.meta.description, sub_class: "omega-legal__sub omega-quiet", first_paint: true %}
|
|
27
|
+
|
|
28
|
+
<!-- The legal hub: every policy one hop away, current one marked -->
|
|
29
|
+
<nav class="omega-legal__hub" aria-label="Legal documents">
|
|
30
|
+
{% assign legal_docs = "Terms of Service|/terms,Privacy Policy|/privacy,Cookie Policy|/cookies" | split: "," %}
|
|
31
|
+
{% for doc in legal_docs %}
|
|
32
|
+
{% assign parts = doc | split: "|" %}
|
|
33
|
+
{% assign doc_name = parts[0] %}
|
|
34
|
+
{% assign doc_url = parts[1] %}
|
|
35
|
+
{% if page.url == doc_url %}
|
|
36
|
+
<span class="omega-chip omega-chip--ink" aria-current="page">{{ doc_name }}</span>
|
|
37
|
+
{% else %}
|
|
38
|
+
<a class="omega-chip" href="{{ doc_url }}">{{ doc_name }}</a>
|
|
39
|
+
{% endif %}
|
|
40
|
+
{% endfor %}
|
|
41
|
+
</nav>
|
|
42
|
+
</div>
|
|
43
|
+
</section>
|
|
44
|
+
|
|
45
|
+
<!-- ═══ Rail + document ═══ -->
|
|
46
|
+
<section class="pt-2">
|
|
47
|
+
<div class="container">
|
|
48
|
+
<div class="omega-legal">
|
|
49
|
+
<aside class="omega-legal__rail" aria-label="On this page">
|
|
50
|
+
<div class="omega-legal__rail-inner">
|
|
51
|
+
<span class="omega-micro d-block mb-3">On this page</span>
|
|
52
|
+
<nav class="omega-legal__toc" data-legal-toc>
|
|
53
|
+
<!-- Built by the page JS from the document's section headings -->
|
|
54
|
+
</nav>
|
|
55
|
+
|
|
56
|
+
<div class="omega-legal__rail-foot">
|
|
57
|
+
{% iftruthy resolved.config.brand.contact.email %}
|
|
58
|
+
<a class="omega-legal__rail-link" href="mailto:{{ resolved.config.brand.contact.email }}">
|
|
59
|
+
<i class="fa-solid fa-envelope fa-xs me-2"></i>Questions? Email us
|
|
60
|
+
</a>
|
|
61
|
+
{% endiftruthy %}
|
|
62
|
+
<button type="button" class="omega-legal__rail-link" data-legal-print>
|
|
63
|
+
<i class="fa-solid fa-print fa-xs me-2"></i>Print this page
|
|
64
|
+
</button>
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
67
|
+
</aside>
|
|
68
|
+
|
|
69
|
+
<article class="omega-legal__doc omega-prose" data-legal-doc>
|
|
70
|
+
{{ content | omega_content_format }}
|
|
71
|
+
|
|
72
|
+
<footer class="omega-legal__doc-foot omega-quiet small">
|
|
73
|
+
© {{ site.omega.date.year }} {{ company }}. This document governs {{ resolved.config.brand.name }}.
|
|
74
|
+
</footer>
|
|
75
|
+
</article>
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
</section>
|
|
@@ -0,0 +1,459 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: frontend/core/cover
|
|
3
|
+
|
|
4
|
+
# ═══ Checkout — the classy redesign (round 18). The commitment moment now
|
|
5
|
+
# sits on real surfaces: the left column as two hairline PANELS (plan,
|
|
6
|
+
# account) each led by an icon chip, then the pay zone BARE beneath them, and
|
|
7
|
+
# the order summary as a receipt CARD on the right (product identity,
|
|
8
|
+
# discount, then the money rows in the shared receipt vocabulary). Reveals
|
|
9
|
+
# stagger the zones in; every color is a token, both modes.
|
|
10
|
+
# The pay buttons live OUTSIDE any card and under NO head, both viewports
|
|
11
|
+
# (Ian 2026-08-19, #374): the commitment moment is the one zone with no chrome
|
|
12
|
+
# around it, and a "Payment" label over a Credit/Debit button and a PayPal mark
|
|
13
|
+
# names nothing the buttons do not already say. The trust chips AND the help
|
|
14
|
+
# line ride the buttons' own capture, centered right under the terms line — the
|
|
15
|
+
# page foot below the form is empty.
|
|
16
|
+
# The HEADER is one brand lockup and nothing else (#373): the brandmark and
|
|
17
|
+
# the brand name on one line, left, linking home, and it is the page's h1.
|
|
18
|
+
# A checkout page is got THROUGH, not read — an eyebrow, a serif display
|
|
19
|
+
# title and a second copy of the mark were three voices for a page that
|
|
20
|
+
# needs one. It reads its brand facts from config; never type them here.
|
|
21
|
+
# The mobile one-screen contract (cp179) is DELIBERATE and stays (Ian
|
|
22
|
+
# 2026-08-19, #370): EVERY card collapses to a one-line row showing the value
|
|
23
|
+
# it hides, so the pay buttons sit above the fold. Billing cycle and Account
|
|
24
|
+
# start closed; the Order summary starts OPEN, and its folded row carries the
|
|
25
|
+
# total due today (the old "never fold the numbers" note is retired). What the
|
|
26
|
+
# phone must NOT have is its own vocabulary — the rows are labeled with
|
|
27
|
+
# desktop's words ("Billing cycle", "Account", "Order summary"), and the pay
|
|
28
|
+
# buttons are one width and one height on every viewport.
|
|
29
|
+
# Every payment-engine hook is preserved verbatim: #checkout-form,
|
|
30
|
+
# name="frequency" radios, data-payment-method/data-action buttons,
|
|
31
|
+
# #discount-code, #apply-discount, #switch-account, #checkout-help-button,
|
|
32
|
+
# #subscription-toggle, the dev panel ids, and all data-omega-bind expressions.
|
|
33
|
+
|
|
34
|
+
config:
|
|
35
|
+
theme:
|
|
36
|
+
main:
|
|
37
|
+
align: "start"
|
|
38
|
+
client:
|
|
39
|
+
auth:
|
|
40
|
+
config:
|
|
41
|
+
policy: "authenticated"
|
|
42
|
+
consent:
|
|
43
|
+
enabled: false
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
<!-- The pay buttons captured once and rendered by both column positions (the
|
|
47
|
+
phone puts payment after the summary), so neither viewport carries its own
|
|
48
|
+
copy of this markup — and both stack them the same way: one full-width
|
|
49
|
+
column, one height per button (#370). The capture is the WHOLE commitment
|
|
50
|
+
block (#374): buttons, terms, trust chips, help line — every one of them
|
|
51
|
+
centered, so the assurance always sits directly under the buttons and the
|
|
52
|
+
two viewports can never drift apart. -->
|
|
53
|
+
{% capture payment_buttons_content %}
|
|
54
|
+
<!-- Credit/Debit Card Button -->
|
|
55
|
+
<button type="submit" class="btn btn-adaptive payment-button d-flex align-items-center justify-content-center"
|
|
56
|
+
data-payment-method="card"
|
|
57
|
+
data-action="pay-card"
|
|
58
|
+
data-omega-bind="@show checkout.paymentMethods.card"
|
|
59
|
+
hidden>
|
|
60
|
+
<i class="fa-solid fa-credit-card me-2 fa-lg"></i>
|
|
61
|
+
<span class="fw-semibold">Credit/Debit</span>
|
|
62
|
+
</button>
|
|
63
|
+
|
|
64
|
+
<!-- PayPal Button -->
|
|
65
|
+
<button type="submit" class="btn btn-paypal payment-button d-flex align-items-center justify-content-center"
|
|
66
|
+
data-payment-method="paypal"
|
|
67
|
+
data-action="pay-paypal"
|
|
68
|
+
data-omega-bind="@show checkout.paymentMethods.paypal"
|
|
69
|
+
hidden>
|
|
70
|
+
<img src="https://www.paypalobjects.com/webstatic/mktg/Logo/pp-logo-200px.png"
|
|
71
|
+
alt="PayPal"
|
|
72
|
+
height="24"
|
|
73
|
+
style="max-height: 24px;">
|
|
74
|
+
</button>
|
|
75
|
+
|
|
76
|
+
<!-- Apple Pay Button -->
|
|
77
|
+
<button type="submit" class="btn payment-button payment-button--apple d-flex align-items-center justify-content-center"
|
|
78
|
+
data-payment-method="apple-pay"
|
|
79
|
+
data-action="pay-apple-pay"
|
|
80
|
+
data-omega-bind="@show checkout.paymentMethods.applePay"
|
|
81
|
+
hidden>
|
|
82
|
+
<i class="fa-brands fa-apple me-2 fa-lg"></i>
|
|
83
|
+
<span class="fw-semibold">Apple Pay</span>
|
|
84
|
+
</button>
|
|
85
|
+
|
|
86
|
+
<!-- Google Pay Button -->
|
|
87
|
+
<button type="submit" class="btn payment-button payment-button--gpay d-flex align-items-center justify-content-center"
|
|
88
|
+
data-payment-method="google-pay"
|
|
89
|
+
data-action="pay-google-pay"
|
|
90
|
+
data-omega-bind="@show checkout.paymentMethods.googlePay"
|
|
91
|
+
hidden>
|
|
92
|
+
<img src="https://www.gstatic.com/instantbuy/svg/dark_gpay.svg"
|
|
93
|
+
alt="Google Pay"
|
|
94
|
+
height="22"
|
|
95
|
+
class="me-2">
|
|
96
|
+
<span class="fw-semibold">Google Pay</span>
|
|
97
|
+
</button>
|
|
98
|
+
|
|
99
|
+
<!-- Crypto Button — Coinbase Commerce (#642). One-time purchases only, so it
|
|
100
|
+
shows on the crypto provider's own switch and never on a subscription. -->
|
|
101
|
+
<button type="submit" class="btn btn-outline-adaptive payment-button d-flex align-items-center justify-content-center"
|
|
102
|
+
data-payment-method="crypto"
|
|
103
|
+
data-action="pay-crypto"
|
|
104
|
+
data-omega-bind="@show checkout.paymentMethods.crypto"
|
|
105
|
+
hidden>
|
|
106
|
+
<i class="fa-brands fa-bitcoin me-2 fa-lg"></i>
|
|
107
|
+
<span class="fw-semibold">Crypto</span>
|
|
108
|
+
</button>
|
|
109
|
+
|
|
110
|
+
<p class="omega-checkout__terms small mb-0">
|
|
111
|
+
By purchasing, you agree to our <a href="/terms" target="_blank">Terms of Service</a> and <a href="/privacy" target="_blank">Privacy Policy</a>.
|
|
112
|
+
</p>
|
|
113
|
+
|
|
114
|
+
<!-- Trust chips — centered inside the pay stack, right under the terms line,
|
|
115
|
+
both viewports (Ian 2026-08-19, #374): at the page foot they were a
|
|
116
|
+
footnote two zones away from the thing they reassure. The refund chip
|
|
117
|
+
rides the brand's `pricing.guarantee` gate (#273); the other two state
|
|
118
|
+
facts the framework owns. No "Encrypted" chip joins them — "SSL
|
|
119
|
+
encrypted" already says it, with the same lock. The gap above is the
|
|
120
|
+
sheet's, not a utility: one home for the pay stack's rhythm. -->
|
|
121
|
+
<div class="omega-checkout__trust">
|
|
122
|
+
<span><i class="fa-solid fa-lock fa-xs"></i> SSL encrypted</span>
|
|
123
|
+
{% iftruthy resolved.pricing.guarantee %}
|
|
124
|
+
<span><i class="fa-solid fa-shield-halved fa-xs"></i> Money-back guarantee</span>
|
|
125
|
+
{% endiftruthy %}
|
|
126
|
+
<span><i class="fa-solid fa-handshake fa-xs"></i> Secure payments</span>
|
|
127
|
+
</div>
|
|
128
|
+
|
|
129
|
+
<!-- Help — the stack's last line, in the stack (Ian 2026-08-19, #374): the
|
|
130
|
+
one line a stalled buyer reaches for belongs where the stall happens, not
|
|
131
|
+
at a page foot below the form. Its rhythm is the sheet's too, so the
|
|
132
|
+
capture carries no utility margins to drift between viewports. -->
|
|
133
|
+
<div class="omega-checkout__help">
|
|
134
|
+
<a href="javascript:;" class="omega-checkout__quiet-link small" id="checkout-help-button">
|
|
135
|
+
<i class="fa-solid fa-circle-question fa-sm me-1"></i> Need help? Chat with us.
|
|
136
|
+
</a>
|
|
137
|
+
</div>
|
|
138
|
+
{% endcapture %}
|
|
139
|
+
|
|
140
|
+
<!-- Error Message Container (hidden by default, shown via bindings) -->
|
|
141
|
+
<div id="checkout-error-container" class="col-12" data-omega-bind="@show checkout.error.show" hidden>
|
|
142
|
+
<div class="row justify-content-center">
|
|
143
|
+
<div class="col-12 col-md-8 col-lg-6 col-xl-5">
|
|
144
|
+
<div class="omega-form-panel text-center" role="alert">
|
|
145
|
+
<span class="omega-icon-chip omega-icon-chip--neutral omega-icon-chip--lg omega-checkout__error-glyph mb-3">
|
|
146
|
+
<i class="fa-solid fa-triangle-exclamation fa-md"></i>
|
|
147
|
+
</span>
|
|
148
|
+
<h1 class="omega-display omega-display--section mb-2">Something went <em>wrong</em></h1>
|
|
149
|
+
<p class="omega-quiet mb-4" data-omega-bind="@text checkout.error.message"></p>
|
|
150
|
+
<button class="btn btn-adaptive omega-hover-nudge" onclick="window.location.reload()">
|
|
151
|
+
<i class="fa-solid fa-rotate-right fa-sm me-2"></i>
|
|
152
|
+
Try again
|
|
153
|
+
</button>
|
|
154
|
+
</div>
|
|
155
|
+
</div>
|
|
156
|
+
</div>
|
|
157
|
+
</div>
|
|
158
|
+
|
|
159
|
+
<!-- Checkout Section (visible by default, hidden only when error is shown) -->
|
|
160
|
+
<section id="checkout-content" class="col-12 col-xl-10 omega-checkout" data-omega-bind="@hide checkout.error.show">
|
|
161
|
+
<!-- Header: ONE brand lockup, left, and nothing else (#373 — Shopify's
|
|
162
|
+
checkout leads with the store's mark). It is the page's h1, so it links
|
|
163
|
+
home and reads its facts from config; the right of the row stays empty.
|
|
164
|
+
Cover pages carry no nav, which is why the mark lives here at all. -->
|
|
165
|
+
<header class="omega-checkout__head" data-omega-reveal="fade">
|
|
166
|
+
<h1 class="omega-checkout__head-mark mb-0">
|
|
167
|
+
<a href="/" class="omega-checkout__brand">
|
|
168
|
+
{% comment %} #467: the VISIBLE lockup prefers the bridged vector when the mint produced one — `brand.images.brandmark` stays the raster OG/social and payment sync need. {% endcomment %}
|
|
169
|
+
<img src="{{ assetManifest.brandmarkSvg | default: resolved.config.brand.images.brandmark | omega_cachebreak }}" class="filter-adaptive" alt="{{ resolved.config.brand.name }} logo" width="24" height="24">
|
|
170
|
+
<span class="fw-semibold">{{ resolved.config.brand.name }}</span>
|
|
171
|
+
</a>
|
|
172
|
+
</h1>
|
|
173
|
+
</header>
|
|
174
|
+
|
|
175
|
+
<!-- Main Checkout Form -->
|
|
176
|
+
<form id="checkout-form" autocomplete="on" novalidate data-form-state="initializing" onsubmit="return false">
|
|
177
|
+
<div class="row g-3 g-lg-4" data-omega-reveal-stagger="70">
|
|
178
|
+
<!-- Zone 1: what you're buying and who's buying it -->
|
|
179
|
+
<div class="col-12 col-lg-7 order-1">
|
|
180
|
+
<!-- Plan panel (subscriptions only) -->
|
|
181
|
+
<div class="omega-checkout__panel" data-omega-reveal data-omega-bind="@show checkout.product.isSubscription">
|
|
182
|
+
<!-- Mobile: collapsed one-line row showing the current selection. The
|
|
183
|
+
row IS the panel's title on phones, so it is labeled with the
|
|
184
|
+
word desktop uses — "Billing cycle", never a phone-only "Plan"
|
|
185
|
+
(#370): one vocabulary, both viewports. -->
|
|
186
|
+
<button class="omega-checkout__rowtoggle d-lg-none collapsed" type="button"
|
|
187
|
+
data-bs-toggle="collapse" data-bs-target="#collapse-billing" aria-expanded="false">
|
|
188
|
+
<span class="omega-micro">Billing cycle</span>
|
|
189
|
+
<span class="omega-checkout__rowtoggle-value omega-binding-skeleton" data-omega-bind="@show checkout">
|
|
190
|
+
<span data-omega-bind="@text checkout.product.name">--</span> · <span data-omega-bind="@text checkout.pricing.frequencyPaymentText">$--</span>
|
|
191
|
+
</span>
|
|
192
|
+
<i class="fa-solid fa-chevron-down fa-xs omega-checkout__rowtoggle-chev"></i>
|
|
193
|
+
</button>
|
|
194
|
+
|
|
195
|
+
<div id="collapse-billing" class="collapse d-lg-block">
|
|
196
|
+
<div class="omega-panel-head omega-checkout__panel-head">
|
|
197
|
+
<h2 class="omega-checkout__panel-title d-none d-lg-flex mb-0">
|
|
198
|
+
<span class="omega-icon-chip omega-icon-chip--neutral"><i class="fa-solid fa-calendar-days fa-sm"></i></span>
|
|
199
|
+
Billing cycle
|
|
200
|
+
</h2>
|
|
201
|
+
<a href="/pricing" class="omega-checkout__quiet-link small ms-auto">
|
|
202
|
+
<i class="fa-solid fa-arrow-left fa-xs me-1"></i>Change plan
|
|
203
|
+
</a>
|
|
204
|
+
</div>
|
|
205
|
+
|
|
206
|
+
<!-- Subscription Toggle (shown for subscriptions only) -->
|
|
207
|
+
<div id="subscription-toggle">
|
|
208
|
+
<div class="row g-3">
|
|
209
|
+
<div class="col-6" data-omega-bind="@show checkout.frequencies.annually" hidden>
|
|
210
|
+
<div class="omega-binding-skeleton h-100" data-omega-bind="@show checkout.frequencies.annually">
|
|
211
|
+
<input type="radio" class="btn-check" name="frequency" id="annually" value="annually">
|
|
212
|
+
<label class="omega-checkout__tile" for="annually">
|
|
213
|
+
<span class="omega-checkout__tile-head">
|
|
214
|
+
<span class="omega-checkout__tile-radio" aria-hidden="true"></span>
|
|
215
|
+
<span class="omega-checkout__tile-name">Annual</span>
|
|
216
|
+
<span class="omega-chip omega-chip--accent ms-auto"
|
|
217
|
+
data-omega-bind="@text checkout.pricing.savingsBadge, @show checkout.pricing.showSavingsBadge"
|
|
218
|
+
hidden>Save --</span>
|
|
219
|
+
</span>
|
|
220
|
+
<span class="omega-checkout__tile-price omega-binding-skeleton" data-omega-bind="@show checkout">
|
|
221
|
+
<span data-omega-bind="@text checkout.pricing.annualMonthlyRate">$--</span><span class="omega-checkout__tile-per">/mo</span>
|
|
222
|
+
</span>
|
|
223
|
+
</label>
|
|
224
|
+
</div>
|
|
225
|
+
</div>
|
|
226
|
+
<div class="col-6" data-omega-bind="@show checkout.frequencies.monthly" hidden>
|
|
227
|
+
<div class="omega-binding-skeleton h-100" data-omega-bind="@show checkout.frequencies.monthly">
|
|
228
|
+
<input type="radio" class="btn-check" name="frequency" id="monthly" value="monthly">
|
|
229
|
+
<label class="omega-checkout__tile" for="monthly">
|
|
230
|
+
<span class="omega-checkout__tile-head">
|
|
231
|
+
<span class="omega-checkout__tile-radio" aria-hidden="true"></span>
|
|
232
|
+
<span class="omega-checkout__tile-name">Monthly</span>
|
|
233
|
+
</span>
|
|
234
|
+
<span class="omega-checkout__tile-price omega-binding-skeleton" data-omega-bind="@show checkout">
|
|
235
|
+
<span data-omega-bind="@text checkout.pricing.monthlyPrice">$--</span><span class="omega-checkout__tile-per">/mo</span>
|
|
236
|
+
</span>
|
|
237
|
+
</label>
|
|
238
|
+
</div>
|
|
239
|
+
</div>
|
|
240
|
+
<div class="col-6" data-omega-bind="@show checkout.frequencies.weekly" hidden>
|
|
241
|
+
<div class="omega-binding-skeleton h-100" data-omega-bind="@show checkout.frequencies.weekly">
|
|
242
|
+
<input type="radio" class="btn-check" name="frequency" id="weekly" value="weekly">
|
|
243
|
+
<label class="omega-checkout__tile" for="weekly">
|
|
244
|
+
<span class="omega-checkout__tile-head">
|
|
245
|
+
<span class="omega-checkout__tile-radio" aria-hidden="true"></span>
|
|
246
|
+
<span class="omega-checkout__tile-name">Weekly</span>
|
|
247
|
+
</span>
|
|
248
|
+
<span class="omega-checkout__tile-price omega-binding-skeleton" data-omega-bind="@show checkout">
|
|
249
|
+
<span data-omega-bind="@text checkout.pricing.weeklyPrice">$--</span><span class="omega-checkout__tile-per">/wk</span>
|
|
250
|
+
</span>
|
|
251
|
+
</label>
|
|
252
|
+
</div>
|
|
253
|
+
</div>
|
|
254
|
+
<div class="col-6" data-omega-bind="@show checkout.frequencies.daily" hidden>
|
|
255
|
+
<div class="omega-binding-skeleton h-100" data-omega-bind="@show checkout.frequencies.daily">
|
|
256
|
+
<input type="radio" class="btn-check" name="frequency" id="daily" value="daily">
|
|
257
|
+
<label class="omega-checkout__tile" for="daily">
|
|
258
|
+
<span class="omega-checkout__tile-head">
|
|
259
|
+
<span class="omega-checkout__tile-radio" aria-hidden="true"></span>
|
|
260
|
+
<span class="omega-checkout__tile-name">Daily</span>
|
|
261
|
+
</span>
|
|
262
|
+
<span class="omega-checkout__tile-price omega-binding-skeleton" data-omega-bind="@show checkout">
|
|
263
|
+
<span data-omega-bind="@text checkout.pricing.dailyPrice">$--</span><span class="omega-checkout__tile-per">/day</span>
|
|
264
|
+
</span>
|
|
265
|
+
</label>
|
|
266
|
+
</div>
|
|
267
|
+
</div>
|
|
268
|
+
</div>
|
|
269
|
+
|
|
270
|
+
<!-- Payment cadence under the tiles — centered under the pair -->
|
|
271
|
+
<div class="small omega-checkout__cadence text-center mt-2 omega-binding-skeleton" data-omega-bind="@show checkout.product.isSubscription">
|
|
272
|
+
Billed <span data-omega-bind="@text checkout.pricing.frequencyPaymentText">$-- monthly</span>
|
|
273
|
+
</div>
|
|
274
|
+
|
|
275
|
+
<!-- The trial spot (#637). Which of the two notes below belongs
|
|
276
|
+
here is a question only the server can answer, so the spot
|
|
277
|
+
holds a SKELETON until it does and then renders once — never
|
|
278
|
+
the guarantee flipping into the trial line a moment later.
|
|
279
|
+
The placeholder is what is up first, and the `order` root
|
|
280
|
+
landing is what takes it away. -->
|
|
281
|
+
<div class="omega-checkout__note mt-3 omega-binding-skeleton"
|
|
282
|
+
data-omega-bind="@hide order">
|
|
283
|
+
<span class="omega-icon-chip omega-icon-chip--neutral"><i class="fa-solid fa-gift fa-sm"></i></span>
|
|
284
|
+
<span>Checking your plan</span>
|
|
285
|
+
</div>
|
|
286
|
+
|
|
287
|
+
<!-- Subscription note — the BRAND's guarantee copy (#273: a
|
|
288
|
+
refund window is a policy the framework cannot know), shown
|
|
289
|
+
when no trial replaces it. No stated guarantee, no note. -->
|
|
290
|
+
{% iftruthy resolved.pricing.guarantee %}
|
|
291
|
+
<div class="omega-checkout__note mt-3"
|
|
292
|
+
data-omega-bind="@show !order.trial.show"
|
|
293
|
+
hidden>
|
|
294
|
+
<span class="omega-icon-chip omega-icon-chip--neutral"><i class="fa-solid fa-shield-halved fa-sm"></i></span>
|
|
295
|
+
<span>{{ resolved.pricing.guarantee }}</span>
|
|
296
|
+
</div>
|
|
297
|
+
{% endiftruthy %}
|
|
298
|
+
|
|
299
|
+
<!-- Free Trial Note -->
|
|
300
|
+
<div class="omega-checkout__note omega-checkout__note--ok mt-3"
|
|
301
|
+
data-omega-bind="@show order.trial.show"
|
|
302
|
+
hidden>
|
|
303
|
+
<span class="omega-icon-chip omega-icon-chip--neutral"><i class="fa-solid fa-gift fa-sm"></i></span>
|
|
304
|
+
<span data-omega-bind="@text order.trial.message"></span>
|
|
305
|
+
</div>
|
|
306
|
+
</div>
|
|
307
|
+
</div>
|
|
308
|
+
</div>
|
|
309
|
+
|
|
310
|
+
<!-- Account panel -->
|
|
311
|
+
<div class="omega-checkout__panel" data-omega-reveal>
|
|
312
|
+
<!-- Mobile: collapsed one-line row showing the signed-in email -->
|
|
313
|
+
<button class="omega-checkout__rowtoggle d-lg-none collapsed" type="button"
|
|
314
|
+
data-bs-toggle="collapse" data-bs-target="#collapse-account" aria-expanded="false">
|
|
315
|
+
<span class="omega-micro">Account</span>
|
|
316
|
+
<span class="omega-checkout__rowtoggle-value omega-binding-skeleton" data-omega-bind="@text auth.user.email"> </span>
|
|
317
|
+
<i class="fa-solid fa-chevron-down fa-xs omega-checkout__rowtoggle-chev"></i>
|
|
318
|
+
</button>
|
|
319
|
+
|
|
320
|
+
<div id="collapse-account" class="collapse d-lg-block">
|
|
321
|
+
<!-- The expanded content is ONE block: the head is desktop's title
|
|
322
|
+
row, and on phones (where that title is the row above) the CSS
|
|
323
|
+
orders the switch link under the "Paying as" line rather than
|
|
324
|
+
leaving it floating alone over a gap (#370). -->
|
|
325
|
+
<div class="omega-checkout__account-block">
|
|
326
|
+
<div class="omega-panel-head omega-checkout__panel-head">
|
|
327
|
+
<h2 class="omega-checkout__panel-title d-none d-lg-flex mb-0">
|
|
328
|
+
<span class="omega-icon-chip omega-icon-chip--neutral"><i class="fa-solid fa-user fa-sm"></i></span>
|
|
329
|
+
Account
|
|
330
|
+
</h2>
|
|
331
|
+
<a href="#" id="switch-account" class="omega-checkout__quiet-link small">Switch account</a>
|
|
332
|
+
</div>
|
|
333
|
+
<p class="mb-0 omega-binding-skeleton omega-checkout__account" data-omega-bind="@show checkout">
|
|
334
|
+
Paying as <strong data-omega-bind="@text auth.user.email">loading@example.com</strong>
|
|
335
|
+
</p>
|
|
336
|
+
</div>
|
|
337
|
+
</div>
|
|
338
|
+
</div>
|
|
339
|
+
|
|
340
|
+
<!-- Pay zone (desktop only — the phone's copy sits after the summary).
|
|
341
|
+
NOT a card and NOT headed (#374): the buttons sit in open space
|
|
342
|
+
with nothing labeling them, on this viewport exactly like the
|
|
343
|
+
phone's. The reveal rides this wrapper, so the whole stack inside
|
|
344
|
+
it — buttons, terms, chips, help — animates in as one zone (#326). -->
|
|
345
|
+
<div class="omega-checkout__pay d-none d-lg-block" data-omega-reveal>
|
|
346
|
+
<div class="d-grid gap-2 omega-binding-skeleton" data-omega-bind="@show checkout.paymentMethods">
|
|
347
|
+
{{ payment_buttons_content }}
|
|
348
|
+
</div>
|
|
349
|
+
</div>
|
|
350
|
+
</div>
|
|
351
|
+
|
|
352
|
+
<!-- Zone 2: Order summary — the receipt the confirmation page hands back -->
|
|
353
|
+
<div class="col-12 col-lg-5 order-2">
|
|
354
|
+
<div class="omega-checkout__sticky">
|
|
355
|
+
<div class="omega-checkout__summary" data-omega-reveal>
|
|
356
|
+
<!-- Mobile: the summary folds like the two rows above it (#370 —
|
|
357
|
+
parity across all cards), with one difference: it starts OPEN,
|
|
358
|
+
so the numbers are still what the phone lands on. Folded, the
|
|
359
|
+
row keeps the total due today on screen. -->
|
|
360
|
+
<button class="omega-checkout__rowtoggle d-lg-none" type="button"
|
|
361
|
+
data-bs-toggle="collapse" data-bs-target="#collapse-summary" aria-expanded="true">
|
|
362
|
+
<span class="omega-micro">Order summary</span>
|
|
363
|
+
<span class="omega-checkout__rowtoggle-value omega-binding-skeleton" data-omega-bind="@text order.total">$--</span>
|
|
364
|
+
<i class="fa-solid fa-chevron-down fa-xs omega-checkout__rowtoggle-chev"></i>
|
|
365
|
+
</button>
|
|
366
|
+
|
|
367
|
+
<div id="collapse-summary" class="collapse show d-lg-block">
|
|
368
|
+
<div class="omega-panel-head omega-checkout__panel-head d-none d-lg-flex">
|
|
369
|
+
<h2 class="omega-checkout__panel-title mb-0">
|
|
370
|
+
<span class="omega-icon-chip omega-icon-chip--neutral"><i class="fa-solid fa-receipt fa-sm"></i></span>
|
|
371
|
+
Order summary
|
|
372
|
+
</h2>
|
|
373
|
+
</div>
|
|
374
|
+
|
|
375
|
+
<!-- Product identity: what you get, on what cadence -->
|
|
376
|
+
<div class="omega-checkout__product omega-binding-skeleton" data-omega-bind="@show checkout">
|
|
377
|
+
<span class="omega-checkout__product-name">{{ resolved.config.brand.name }} <span data-omega-bind="@text checkout.product.name">Loading...</span></span>
|
|
378
|
+
<span class="omega-quiet small" data-omega-bind="@text checkout.pricing.frequencyPaymentText">$--</span>
|
|
379
|
+
</div>
|
|
380
|
+
|
|
381
|
+
<!-- Discount Code -->
|
|
382
|
+
<div class="omega-checkout__discount-zone omega-binding-skeleton" data-omega-bind="@show checkout">
|
|
383
|
+
<!-- The label sits OUTSIDE the input-group on purpose: Bootstrap
|
|
384
|
+
rounds a group by child position, so a label as first child
|
|
385
|
+
made the input `:not(:first-child)` and squared its left
|
|
386
|
+
corners (and pulled it -1px left). It keeps the group's show
|
|
387
|
+
binding so the two still appear and hide together. -->
|
|
388
|
+
<label for="discount-code" class="visually-hidden" data-omega-bind="@show checkout" hidden>Discount code</label>
|
|
389
|
+
<div class="input-group omega-checkout__discount" data-omega-bind="@show checkout" hidden>
|
|
390
|
+
<input type="text" class="form-control" id="discount-code" name="discount" placeholder="Discount code" autocomplete="off">
|
|
391
|
+
<button class="btn btn-outline-adaptive px-3" type="button" id="apply-discount" data-action="apply-discount">Apply</button>
|
|
392
|
+
</div>
|
|
393
|
+
|
|
394
|
+
<!-- Discount Messages -->
|
|
395
|
+
<div class="mt-2 omega-quiet small" data-omega-bind="@show checkout.discount.loading" hidden>
|
|
396
|
+
<i class="fa-solid fa-clock me-1"></i> Checking code...
|
|
397
|
+
</div>
|
|
398
|
+
<div class="mt-2 omega-checkout__row-ok small" data-omega-bind="@show checkout.discount.success" hidden>
|
|
399
|
+
<i class="fa-solid fa-check-circle me-1"></i> <span data-omega-bind="@text checkout.discount.successMessage">Discount applied</span>
|
|
400
|
+
</div>
|
|
401
|
+
<div class="mt-2 omega-checkout__row-bad small" data-omega-bind="@show checkout.discount.error" hidden>
|
|
402
|
+
<i class="fa-solid fa-times-circle me-1"></i> <span data-omega-bind="@text checkout.discount.errorMessage">Invalid discount code</span>
|
|
403
|
+
</div>
|
|
404
|
+
</div>
|
|
405
|
+
|
|
406
|
+
<!-- Price detail — the folded row states the total, so opening the
|
|
407
|
+
summary is what reveals subtotal, discount and trial credit -->
|
|
408
|
+
<div class="omega-receipt__panel">
|
|
409
|
+
<div class="omega-receipt__row omega-binding-skeleton" data-omega-bind="@show checkout">
|
|
410
|
+
<span class="omega-micro">Subtotal</span>
|
|
411
|
+
<span data-omega-bind="@text checkout.pricing.subtotal">$--</span>
|
|
412
|
+
</div>
|
|
413
|
+
|
|
414
|
+
<div class="omega-receipt__row omega-checkout__row-ok"
|
|
415
|
+
data-omega-bind="@show checkout.discount.hasDiscount"
|
|
416
|
+
hidden>
|
|
417
|
+
<span class="omega-micro">Discount (<span data-omega-bind="@text checkout.discount.label"></span>)</span>
|
|
418
|
+
<span>-$<span data-omega-bind="@text checkout.discount.amount"></span></span>
|
|
419
|
+
</div>
|
|
420
|
+
|
|
421
|
+
<div class="omega-receipt__row omega-checkout__row-ok"
|
|
422
|
+
data-omega-bind="@show order.trial.hasFreeTrial"
|
|
423
|
+
hidden>
|
|
424
|
+
<span class="omega-micro">Free trial</span>
|
|
425
|
+
<span>-$<span data-omega-bind="@text order.trial.discountAmount"></span></span>
|
|
426
|
+
</div>
|
|
427
|
+
|
|
428
|
+
<div class="omega-receipt__row omega-receipt__row--total omega-binding-skeleton" data-omega-bind="@show order">
|
|
429
|
+
<span class="omega-micro">Total due today</span>
|
|
430
|
+
<span class="omega-receipt__total" data-omega-bind="@text order.total">$--</span>
|
|
431
|
+
</div>
|
|
432
|
+
</div>
|
|
433
|
+
|
|
434
|
+
<!-- Subscription Terms -->
|
|
435
|
+
<p class="omega-checkout__fineprint small mb-0"
|
|
436
|
+
data-omega-bind="@show order.showTerms"
|
|
437
|
+
hidden>
|
|
438
|
+
<span data-omega-bind="@text order.termsText"></span>
|
|
439
|
+
</p>
|
|
440
|
+
</div>
|
|
441
|
+
</div>
|
|
442
|
+
</div>
|
|
443
|
+
</div>
|
|
444
|
+
|
|
445
|
+
<!-- Zone 3: Payment (mobile only — headless and out of any card, exactly
|
|
446
|
+
like desktop's (#374), and the SAME full-width stack desktop
|
|
447
|
+
renders: one width, one height, every button) -->
|
|
448
|
+
<div class="col-12 order-3 d-lg-none">
|
|
449
|
+
<div class="omega-checkout__pay">
|
|
450
|
+
<div class="d-grid gap-2 omega-binding-skeleton" data-omega-bind="@show checkout.paymentMethods">
|
|
451
|
+
{{ payment_buttons_content }}
|
|
452
|
+
</div>
|
|
453
|
+
</div>
|
|
454
|
+
</div>
|
|
455
|
+
</div>
|
|
456
|
+
</form>
|
|
457
|
+
</section>
|
|
458
|
+
|
|
459
|
+
{{ content | omega_content_format }}
|