@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,164 @@
|
|
|
1
|
+
// Classy v2 status page — the page JS toggles bg-success/warning/danger/info
|
|
2
|
+
// on the banner, service dots, and uptime bars (that class contract is the
|
|
3
|
+
// API; don't rename it). In classy the banner and dots stay hairline
|
|
4
|
+
// surfaces: the LEVEL paints the glyph, never a colored slab. Uptime bars
|
|
5
|
+
// keep their bg-* paint — there the color IS the data (chart semantics).
|
|
6
|
+
// This is a theme PAGE entry (css/pages/status/index.scss): it loads AFTER
|
|
7
|
+
// the core status page css, so equal-specificity overrides here win.
|
|
8
|
+
|
|
9
|
+
.status-banner {
|
|
10
|
+
// Beat the .bg-* utility the JS applies AND the core status css's
|
|
11
|
+
// .status-banner.bg-* washes (0,2,0 specificity — match it per level)
|
|
12
|
+
&,
|
|
13
|
+
&.bg-success,
|
|
14
|
+
&.bg-warning,
|
|
15
|
+
&.bg-danger,
|
|
16
|
+
&.bg-info {
|
|
17
|
+
background: var(--omega-surface) !important;
|
|
18
|
+
border: 1px solid var(--omega-line) !important;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
color: var(--omega-ink);
|
|
22
|
+
|
|
23
|
+
.status-icon {
|
|
24
|
+
transition: color var(--omega-speed) var(--omega-ease);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Level → glyph + pulse color
|
|
28
|
+
&.bg-success .status-icon,
|
|
29
|
+
&.bg-success .status-pulse {
|
|
30
|
+
color: var(--omega-ok) !important;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
&.bg-warning .status-icon,
|
|
34
|
+
&.bg-warning .status-pulse {
|
|
35
|
+
color: var(--omega-warn) !important;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
&.bg-danger .status-icon,
|
|
39
|
+
&.bg-danger .status-pulse {
|
|
40
|
+
color: var(--omega-danger) !important;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
&.bg-info .status-icon,
|
|
44
|
+
&.bg-info .status-pulse {
|
|
45
|
+
color: var(--omega-accent) !important;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// The pulse dot rides currentColor
|
|
49
|
+
.status-pulse {
|
|
50
|
+
width: 8px;
|
|
51
|
+
height: 8px;
|
|
52
|
+
display: inline-block;
|
|
53
|
+
background: currentcolor !important;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// Service rows — the dot span gets the bg-* class; recolor the glyph instead
|
|
58
|
+
.service-status-dot {
|
|
59
|
+
background: transparent !important;
|
|
60
|
+
|
|
61
|
+
svg {
|
|
62
|
+
transition: color var(--omega-speed) var(--omega-ease);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
&.bg-success svg {
|
|
66
|
+
color: var(--omega-ok) !important;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
&.bg-warning svg {
|
|
70
|
+
color: var(--omega-warn) !important;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
&.bg-danger svg {
|
|
74
|
+
color: var(--omega-danger) !important;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
&.bg-info svg {
|
|
78
|
+
color: var(--omega-accent) !important;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.service-item {
|
|
83
|
+
border-color: var(--omega-line) !important;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// ── Reimagined composition (2026-07-16) ──────────────────────────────────────
|
|
87
|
+
|
|
88
|
+
// The live strip: status as a sentence, not a colored slab
|
|
89
|
+
.omega-status-strip {
|
|
90
|
+
display: flex;
|
|
91
|
+
align-items: center;
|
|
92
|
+
justify-content: space-between;
|
|
93
|
+
flex-wrap: wrap;
|
|
94
|
+
gap: 1rem;
|
|
95
|
+
padding: 1.125rem 1.5rem;
|
|
96
|
+
border-radius: var(--omega-radius-l);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.omega-status-strip__text {
|
|
100
|
+
font-family: var(--omega-font-marketing);
|
|
101
|
+
font-size: 1.375rem;
|
|
102
|
+
font-weight: 550;
|
|
103
|
+
letter-spacing: -0.01em;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// The ops card: every service in ONE surface
|
|
107
|
+
.omega-status-card {
|
|
108
|
+
padding: 1.75rem;
|
|
109
|
+
background: var(--omega-surface);
|
|
110
|
+
border: 1px solid var(--omega-line);
|
|
111
|
+
border-radius: var(--omega-radius-l);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.omega-status-card__row {
|
|
115
|
+
padding-block: 1.125rem;
|
|
116
|
+
|
|
117
|
+
&:first-child {
|
|
118
|
+
padding-top: 0;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
&--divided {
|
|
122
|
+
border-bottom: 1px solid var(--omega-line);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.omega-status-card__legend {
|
|
127
|
+
margin-top: 1.25rem;
|
|
128
|
+
padding-top: 1.25rem;
|
|
129
|
+
border-top: 1px solid var(--omega-line);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.omega-status-card--manifest {
|
|
133
|
+
padding: 1.5rem 1.75rem;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
// Quiet empty states: a dot and a sentence, not a card-in-card
|
|
137
|
+
.omega-status-empty {
|
|
138
|
+
display: flex;
|
|
139
|
+
align-items: center;
|
|
140
|
+
gap: 0.625rem;
|
|
141
|
+
padding: 1.125rem 1.375rem;
|
|
142
|
+
background: var(--omega-surface);
|
|
143
|
+
border: 1px solid var(--omega-line);
|
|
144
|
+
border-radius: var(--omega-radius-m);
|
|
145
|
+
color: var(--omega-ink-muted);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// Subscribe band: split panel on surface-2
|
|
149
|
+
.omega-status-subscribe {
|
|
150
|
+
display: grid;
|
|
151
|
+
grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
|
|
152
|
+
gap: 2rem;
|
|
153
|
+
align-items: center;
|
|
154
|
+
padding: 2rem 2.25rem;
|
|
155
|
+
background: var(--omega-surface-2);
|
|
156
|
+
border: 1px solid var(--omega-line);
|
|
157
|
+
border-radius: var(--omega-radius-l);
|
|
158
|
+
|
|
159
|
+
@media (max-width: 767.98px) {
|
|
160
|
+
grid-template-columns: minmax(0, 1fr);
|
|
161
|
+
gap: 1.25rem;
|
|
162
|
+
padding: 1.5rem;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
// classy /updates — the version timeline: a hairline spine with version
|
|
2
|
+
// nodes; the latest release leads with an accent node + Latest status.
|
|
3
|
+
|
|
4
|
+
.omega-timeline {
|
|
5
|
+
position: relative;
|
|
6
|
+
padding-inline-start: 2rem;
|
|
7
|
+
|
|
8
|
+
// The spine
|
|
9
|
+
&::before {
|
|
10
|
+
content: '';
|
|
11
|
+
position: absolute;
|
|
12
|
+
inset-block: 0.5rem;
|
|
13
|
+
inset-inline-start: 0.4375rem;
|
|
14
|
+
width: 1px;
|
|
15
|
+
background: var(--omega-line-strong);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.omega-timeline__entry {
|
|
20
|
+
position: relative;
|
|
21
|
+
padding-bottom: 2.75rem;
|
|
22
|
+
|
|
23
|
+
&:last-child {
|
|
24
|
+
padding-bottom: 0.5rem;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.omega-timeline__node {
|
|
29
|
+
position: absolute;
|
|
30
|
+
inset-inline-start: -2rem;
|
|
31
|
+
top: 0.3125rem;
|
|
32
|
+
width: 0.9375rem;
|
|
33
|
+
display: flex;
|
|
34
|
+
justify-content: center;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.omega-timeline__dot {
|
|
38
|
+
width: 0.5625rem;
|
|
39
|
+
height: 0.5625rem;
|
|
40
|
+
border-radius: 50%;
|
|
41
|
+
background: var(--omega-ground);
|
|
42
|
+
border: 1.5px solid var(--omega-ink-faint);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.omega-timeline__entry--latest .omega-timeline__dot {
|
|
46
|
+
background: var(--omega-accent);
|
|
47
|
+
border-color: var(--omega-accent);
|
|
48
|
+
box-shadow: 0 0 0 4px color-mix(in srgb, var(--omega-accent) 18%, transparent);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.omega-timeline__meta {
|
|
52
|
+
display: flex;
|
|
53
|
+
align-items: center;
|
|
54
|
+
flex-wrap: wrap;
|
|
55
|
+
gap: 0.625rem;
|
|
56
|
+
margin-bottom: 0.375rem;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.omega-timeline__version {
|
|
60
|
+
font-size: 0.8125rem;
|
|
61
|
+
font-weight: 650;
|
|
62
|
+
letter-spacing: 0.02em;
|
|
63
|
+
color: var(--omega-ink);
|
|
64
|
+
padding: 0.125rem 0.5rem;
|
|
65
|
+
background: var(--omega-surface);
|
|
66
|
+
border: 1px solid var(--omega-line-strong);
|
|
67
|
+
border-radius: var(--omega-radius-s);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.omega-timeline__body {
|
|
71
|
+
position: relative; // stretched-link boundary
|
|
72
|
+
padding: 1.375rem 1.5rem;
|
|
73
|
+
background: var(--omega-surface);
|
|
74
|
+
border: 1px solid var(--omega-line);
|
|
75
|
+
border-radius: var(--omega-radius-l);
|
|
76
|
+
transition: box-shadow var(--omega-speed) var(--omega-ease), border-color var(--omega-speed) var(--omega-ease);
|
|
77
|
+
|
|
78
|
+
&:hover {
|
|
79
|
+
border-color: var(--omega-line-strong);
|
|
80
|
+
box-shadow: var(--omega-shadow-2);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.omega-timeline__entry--latest .omega-timeline__body {
|
|
85
|
+
border-color: var(--omega-line-strong);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.omega-timeline__title {
|
|
89
|
+
font-family: var(--omega-font-marketing);
|
|
90
|
+
font-size: 1.375rem;
|
|
91
|
+
font-weight: 550;
|
|
92
|
+
letter-spacing: -0.01em;
|
|
93
|
+
margin-bottom: 0.375rem;
|
|
94
|
+
|
|
95
|
+
a {
|
|
96
|
+
color: var(--omega-ink);
|
|
97
|
+
text-decoration: none;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.omega-timeline__summary {
|
|
102
|
+
margin-bottom: 0;
|
|
103
|
+
max-width: 40rem;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.omega-timeline__more {
|
|
107
|
+
display: inline-flex;
|
|
108
|
+
align-items: center;
|
|
109
|
+
margin-top: 0.875rem;
|
|
110
|
+
color: var(--omega-ink-muted);
|
|
111
|
+
transition: color var(--omega-speed) var(--omega-ease);
|
|
112
|
+
|
|
113
|
+
.omega-timeline__body:hover & {
|
|
114
|
+
color: var(--omega-ink);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// The quiet empty state (shared shape with /status)
|
|
119
|
+
.omega-status-empty {
|
|
120
|
+
display: flex;
|
|
121
|
+
align-items: center;
|
|
122
|
+
gap: 0.625rem;
|
|
123
|
+
padding: 1.125rem 1.375rem;
|
|
124
|
+
background: var(--omega-surface);
|
|
125
|
+
border: 1px solid var(--omega-line);
|
|
126
|
+
border-radius: var(--omega-radius-m);
|
|
127
|
+
color: var(--omega-ink-muted);
|
|
128
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hero Demo Form
|
|
3
|
+
* Initializes FormManager for hero demo forms (input or form type)
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
// Zero-trust URL gate. `dataset.redirect` is DOM-controllable and could in
|
|
7
|
+
// principle be set to `javascript:...` by an attacker who can inject markup.
|
|
8
|
+
// Anything that isn't a same-origin path or http(s) URL is rejected outright.
|
|
9
|
+
function safeRedirect(raw) {
|
|
10
|
+
if (!raw || typeof raw !== 'string') return '/dashboard/account';
|
|
11
|
+
// Same-origin path — must start with `/` and NOT `//` (protocol-relative).
|
|
12
|
+
if (raw.startsWith('/') && !raw.startsWith('//')) return raw;
|
|
13
|
+
try {
|
|
14
|
+
const parsed = new URL(raw, window.location.origin);
|
|
15
|
+
if (parsed.protocol === 'http:' || parsed.protocol === 'https:') return raw;
|
|
16
|
+
} catch (e) { /* fall through */ }
|
|
17
|
+
return '/dashboard/account';
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Initialize the hero demo form if present
|
|
22
|
+
*/
|
|
23
|
+
export default async function initHeroDemoForm() {
|
|
24
|
+
const $form = document.querySelector('#hero-demo-form');
|
|
25
|
+
|
|
26
|
+
if (!$form) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Dynamic import FormManager only when needed
|
|
31
|
+
const { FormManager } = await import('@omega.js/client/modules/form-manager.js');
|
|
32
|
+
|
|
33
|
+
const formManager = new FormManager($form, {
|
|
34
|
+
submittingText: 'Processing...',
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
formManager.on('submit', async ({ data }) => {
|
|
38
|
+
// Get redirect URL from form data attribute or default to /dashboard
|
|
39
|
+
const redirectUrl = safeRedirect($form.dataset.redirect);
|
|
40
|
+
|
|
41
|
+
// Build query string from form data
|
|
42
|
+
const params = new URLSearchParams();
|
|
43
|
+
|
|
44
|
+
Object.entries(data).forEach(([key, value]) => {
|
|
45
|
+
if (value !== null && value !== undefined && value !== '') {
|
|
46
|
+
params.set(key, value);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
// Redirect with form data as query params
|
|
51
|
+
const queryString = params.toString();
|
|
52
|
+
const url = queryString ? `${redirectUrl}?${queryString}` : redirectUrl;
|
|
53
|
+
|
|
54
|
+
window.location.href = url;
|
|
55
|
+
});
|
|
56
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# Neobrutalism Theme
|
|
2
|
+
|
|
3
|
+
A bold, high-contrast omega theme built on the neobrutalist design language:
|
|
4
|
+
**pure-ink borders, hard offset shadows (no blur), zero border-radius, chunky
|
|
5
|
+
grotesk display type, and flat saturated color blocks.** Buttons and cards
|
|
6
|
+
"press" into the page on interaction. Full light + dark mode support.
|
|
7
|
+
|
|
8
|
+
## Skin + bounded forks
|
|
9
|
+
|
|
10
|
+
Neobrutalism follows the base/skin/fork convention
|
|
11
|
+
(`docs/web/sections.md` "Markup convention"): it is a SKIN over the base
|
|
12
|
+
theme's shared markup, plus a short list of identity forks. Every surface it
|
|
13
|
+
does not fork renders base markup (`omega-*` classes) restyled by this
|
|
14
|
+
theme's scss, so the nav, pricing, 404, about, contact, team, blog, and auth
|
|
15
|
+
pages are structurally identical to every other skin, and the behavior
|
|
16
|
+
contracts that ride base markup (`data-omega-countup`, the pricing JS hooks,
|
|
17
|
+
the feature-comparison table) all work here unchanged.
|
|
18
|
+
|
|
19
|
+
## Forks
|
|
20
|
+
|
|
21
|
+
Identity forks, all wearing `neo-*` BEM classes. This list is
|
|
22
|
+
machine-checked (packages/web/test/theme-convention.test.js): every markup
|
|
23
|
+
file in the theme must appear here, and every listed path must exist.
|
|
24
|
+
|
|
25
|
+
- `themes/neobrutalism/_layouts/frontend/core/base.html`: the smallest
|
|
26
|
+
possible fork: body markup identical to base; the only delta is the head
|
|
27
|
+
block loading the display faces (Archivo / Space Grotesk / Space Mono via
|
|
28
|
+
Google Fonts). When the faces are vendored like newsflash's, this fork
|
|
29
|
+
dies.
|
|
30
|
+
- `themes/neobrutalism/_layouts/frontend/pages/index.html`: the neobrutalist
|
|
31
|
+
homepage. Three hand-built bands where the structure is genuinely
|
|
32
|
+
neo-specific: the asymmetric split hero, the alternating offset showcase
|
|
33
|
+
rows, and the numbered step cards, plus the fork vocabulary they share
|
|
34
|
+
(kicker, accent, section-head). The rest of the page delegates to base
|
|
35
|
+
sections: trusted-by (the omega-marquee logo wall, ink-framed by this
|
|
36
|
+
theme), stats (omega-stat cells painted as color blocks), testimonials,
|
|
37
|
+
and the cta band (the omega-cta ink panel).
|
|
38
|
+
|
|
39
|
+
Everything else falls through to base, including the whole pricing page.
|
|
40
|
+
The scss floor for the fallthrough vocabulary comes from classy's token-pure
|
|
41
|
+
partials (imported in `_theme.scss`) painted through this theme's
|
|
42
|
+
`--omega-*` re-values, with neobrutalist overlays on top
|
|
43
|
+
(`css/components/_marketing.scss` for the marketing bands — plan cards
|
|
44
|
+
included, since `marketing/pricing-cards` composes them off /pricing too
|
|
45
|
+
(#531) — the omega voice rules in `css/base/_utilities.scss`, the ink-bar
|
|
46
|
+
re-skin of `.omega-nav` in `css/layout/_navigation.scss`, and the pricing page
|
|
47
|
+
css).
|
|
48
|
+
|
|
49
|
+
## Select the theme
|
|
50
|
+
|
|
51
|
+
```json5
|
|
52
|
+
// config/omega.json5 (consuming brand/app)
|
|
53
|
+
theme: {
|
|
54
|
+
id: "neobrutalism",
|
|
55
|
+
appearance: "system", // or "light" / "dark"; dark mode is first-class
|
|
56
|
+
},
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Customize
|
|
60
|
+
|
|
61
|
+
Compile-time knobs: every variable in `_config.scss` is `!default`; override
|
|
62
|
+
any of them from your project's main.scss:
|
|
63
|
+
|
|
64
|
+
```scss
|
|
65
|
+
// src/assets/css/main.scss (consuming project)
|
|
66
|
+
@use 'omega:main' with (
|
|
67
|
+
$primary: #FF5C00, // your brand color
|
|
68
|
+
$nb-border-width: 4px, // chunkier borders
|
|
69
|
+
$nb-shadow-offset: 7px, // deeper hard shadow
|
|
70
|
+
$nb-accent-yellow: #D4FF00, // swap the signature highlight
|
|
71
|
+
);
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Key tokens (see `_config.scss` for the full list)
|
|
75
|
+
|
|
76
|
+
| Token | Purpose | Default |
|
|
77
|
+
|---|---|---|
|
|
78
|
+
| `$primary` … `$danger` | Bootstrap semantic colors | electric blue, hot pink, etc. |
|
|
79
|
+
| `$nb-ink` / `$nb-paper` | Border/shadow color + page surface (light) | `#111` / `#FFFEF2` |
|
|
80
|
+
| `$nb-ink-dark` / `$nb-paper-dark` | Same, dark mode | `#F5F5F5` / `#16161A` |
|
|
81
|
+
| `$nb-border-width` | Standard border thickness | `3px` |
|
|
82
|
+
| `$nb-shadow-offset` | Hard shadow distance | `5px` |
|
|
83
|
+
| `$nb-accent-*` | Color-block palette | blue/pink/yellow/green/purple/orange |
|
|
84
|
+
| `$nb-font-display` | Heading font | `Archivo` |
|
|
85
|
+
| `$font-family-sans-serif` | Body font | `Space Grotesk` |
|
|
86
|
+
|
|
87
|
+
Runtime paint reads the shared `--omega-*` token contract
|
|
88
|
+
(`core/css/tokens/_index.scss`), which `css/base/_root.scss` re-values with
|
|
89
|
+
the ink/paper sheet: light AND dark, three-stamp plumbing, Bootstrap
|
|
90
|
+
bridged. Consumers can override any token per-mode in plain CSS. Genuinely
|
|
91
|
+
neobrutalist extras (the accent palette, border/shadow recipes, the press
|
|
92
|
+
interaction) keep the `--nb-*` namespace; the `nb-` prefix never appears in
|
|
93
|
+
markup.
|
|
94
|
+
|
|
95
|
+
## Fonts
|
|
96
|
+
|
|
97
|
+
Archivo + Space Grotesk + Space Mono load via the theme's `head` block in
|
|
98
|
+
the core/base fork (Google Fonts). If you change the font tokens, update the
|
|
99
|
+
`<link>` accordingly (in your page/layout `theme.head.content`, or by
|
|
100
|
+
overriding the base layout).
|
|
101
|
+
|
|
102
|
+
## Behaviors
|
|
103
|
+
|
|
104
|
+
None of its own. Bootstrap tooltips come from the shared core-layer
|
|
105
|
+
initializer every theme imports; the logo wall rides the shared motion
|
|
106
|
+
engine's marquee; nav scroll state is engine-stamped
|
|
107
|
+
(`data-omega-scroll-watch` on the base nav include).
|
|
108
|
+
|
|
109
|
+
## Conventions
|
|
110
|
+
|
|
111
|
+
- Fork markup wears `neo-<block>__<element>--<modifier>` BEM (`neo-hero`,
|
|
112
|
+
`neo-showcase`, `neo-step-card`, `neo-kicker`, `neo-accent`, ...).
|
|
113
|
+
Bootstrap classes (`.card`, `.btn-*`, `.text-bg-*`), the shared `omega-*`
|
|
114
|
+
vocabulary, `data-*` idioms, and core JS hooks (`amount`, `billing-info`,
|
|
115
|
+
`price-per-unit`, `button-text`) stay untouched.
|
|
116
|
+
- The border/shadow/press system lives in `css/base/_mixins.scss`
|
|
117
|
+
(`nb-border` / `nb-shadow` / `nb-press`), the SSOT for the look;
|
|
118
|
+
components include these rather than repeating the recipes.
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
// Neobrutalism Theme Configuration
|
|
2
|
+
// ALL customizable variables are defined here with !default.
|
|
3
|
+
// Consuming projects override any of these BEFORE the theme is imported.
|
|
4
|
+
//
|
|
5
|
+
// Design language: raw, high-contrast color blocks; pure-black hard borders;
|
|
6
|
+
// hard offset shadows (no blur); zero border-radius; chunky grotesk type.
|
|
7
|
+
// This is NOT a recolored Classy — the shadow/border/press system is the identity.
|
|
8
|
+
|
|
9
|
+
// ============================================
|
|
10
|
+
// Bootstrap Color Overrides
|
|
11
|
+
// ============================================
|
|
12
|
+
// Loud, saturated, high-contrast. These map onto Bootstrap's semantic colors.
|
|
13
|
+
$primary: #2563EB !default; // electric blue
|
|
14
|
+
$secondary: #EC4899 !default; // hot pink
|
|
15
|
+
$success: #16A34A !default; // grass green
|
|
16
|
+
$info: #06B6D4 !default; // cyan
|
|
17
|
+
$warning: #FACC15 !default; // acid yellow
|
|
18
|
+
$danger: #EF4444 !default; // red
|
|
19
|
+
$light: #FFFEF2 !default; // paper white (warm off-white)
|
|
20
|
+
$dark: #111111 !default; // near-black
|
|
21
|
+
|
|
22
|
+
// ============================================
|
|
23
|
+
// Ink & Paper (the structural neutrals)
|
|
24
|
+
// ============================================
|
|
25
|
+
// "Ink" = the universal border/shadow color. "Paper" = the page surface.
|
|
26
|
+
$nb-ink: #111111 !default; // borders + hard shadows (light mode)
|
|
27
|
+
$nb-paper: #FFFEF2 !default; // body background (light mode)
|
|
28
|
+
$nb-surface: #FFFFFF !default; // cards / elevated surfaces (light mode)
|
|
29
|
+
$nb-surface-alt: #F4F1E4 !default; // alt sections / wells (light mode)
|
|
30
|
+
|
|
31
|
+
// Dark mode counterparts
|
|
32
|
+
$nb-ink-dark: #F5F5F5 !default; // borders + shadows become near-white
|
|
33
|
+
$nb-paper-dark: #16161A !default; // body background (dark mode)
|
|
34
|
+
$nb-surface-dark: #1F1F25 !default; // cards (dark mode)
|
|
35
|
+
$nb-surface-alt-dark: #25252D !default; // alt sections (dark mode)
|
|
36
|
+
|
|
37
|
+
// ============================================
|
|
38
|
+
// Accent Palette (for color-block sections, tags, highlights)
|
|
39
|
+
// ============================================
|
|
40
|
+
// Used directly as section backgrounds and decorative blocks.
|
|
41
|
+
$nb-accent-blue: #2563EB !default;
|
|
42
|
+
$nb-accent-pink: #EC4899 !default;
|
|
43
|
+
$nb-accent-yellow: #FACC15 !default;
|
|
44
|
+
$nb-accent-green: #16A34A !default;
|
|
45
|
+
$nb-accent-purple: #8B5CF6 !default;
|
|
46
|
+
$nb-accent-orange: #FB923C !default;
|
|
47
|
+
|
|
48
|
+
// ============================================
|
|
49
|
+
// Borders — the defining structural element
|
|
50
|
+
// ============================================
|
|
51
|
+
$nb-border-width: 3px !default; // standard border thickness
|
|
52
|
+
$nb-border-width-lg: 4px !default; // emphasis (hero buttons, feature cards)
|
|
53
|
+
$nb-border-width-sm: 2px !default; // small controls (inputs, tags)
|
|
54
|
+
$nb-border-color: $nb-ink !default; // remapped to ink-dark in dark mode via _root
|
|
55
|
+
$nb-border: $nb-border-width solid $nb-border-color !default;
|
|
56
|
+
|
|
57
|
+
// Zero radius everywhere — this is the neobrutalist signature.
|
|
58
|
+
$border-radius: 0 !default;
|
|
59
|
+
$border-radius-sm: 0 !default;
|
|
60
|
+
$border-radius-lg: 0 !default;
|
|
61
|
+
$border-radius-xl: 0 !default;
|
|
62
|
+
$border-radius-2xl: 0 !default;
|
|
63
|
+
$border-radius-pill: 0 !default;
|
|
64
|
+
|
|
65
|
+
// ============================================
|
|
66
|
+
// Hard Offset Shadows — the second defining element
|
|
67
|
+
// ============================================
|
|
68
|
+
// No blur, no spread — a solid block offset down-right in ink color.
|
|
69
|
+
$nb-shadow-offset: 5px !default; // default offset distance
|
|
70
|
+
$nb-shadow-offset-sm: 3px !default;
|
|
71
|
+
$nb-shadow-offset-lg: 8px !default;
|
|
72
|
+
$nb-shadow-color: $nb-ink !default; // remapped in dark mode via _root
|
|
73
|
+
|
|
74
|
+
$nb-shadow-sm: $nb-shadow-offset-sm $nb-shadow-offset-sm 0 $nb-shadow-color !default;
|
|
75
|
+
$nb-shadow: $nb-shadow-offset $nb-shadow-offset 0 $nb-shadow-color !default;
|
|
76
|
+
$nb-shadow-lg: $nb-shadow-offset-lg $nb-shadow-offset-lg 0 $nb-shadow-color !default;
|
|
77
|
+
|
|
78
|
+
// ============================================
|
|
79
|
+
// Typography
|
|
80
|
+
// ============================================
|
|
81
|
+
// Chunky geometric grotesk for display; clean grotesk for body.
|
|
82
|
+
$font-family-sans-serif: 'Space Grotesk', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !default;
|
|
83
|
+
$nb-font-display: 'Archivo', 'Space Grotesk', sans-serif !default;
|
|
84
|
+
$nb-font-mono: 'Space Mono', ui-monospace, SFMono-Regular, Menlo, monospace !default;
|
|
85
|
+
|
|
86
|
+
$headings-font-weight: 800 !default;
|
|
87
|
+
$nb-heading-letter-spacing: -0.02em !default;
|
|
88
|
+
$font-weight-bold: 700 !default;
|
|
89
|
+
|
|
90
|
+
// ============================================
|
|
91
|
+
// Motion — snappy, mechanical, no easing softness
|
|
92
|
+
// ============================================
|
|
93
|
+
// Neobrutalism favors instant/linear motion over smooth cubic-beziers.
|
|
94
|
+
$nb-transition-fast: all 0.08s ease-out !default;
|
|
95
|
+
$nb-transition: all 0.12s ease-out !default;
|
|
96
|
+
|
|
97
|
+
// ============================================
|
|
98
|
+
// Component Sizing
|
|
99
|
+
// ============================================
|
|
100
|
+
// Avatar sizes map (matches Classy so shared layouts/includes render correctly)
|
|
101
|
+
$avatar-sizes: (
|
|
102
|
+
null: 3rem,
|
|
103
|
+
2xs: 0.5rem,
|
|
104
|
+
xs: 1.5rem,
|
|
105
|
+
sm: 2rem,
|
|
106
|
+
md: 2.5rem,
|
|
107
|
+
lg: 3.5rem,
|
|
108
|
+
xl: 5rem,
|
|
109
|
+
2xl: 7.5rem,
|
|
110
|
+
3xl: 10rem,
|
|
111
|
+
4xl: 12.5rem,
|
|
112
|
+
5xl: 15rem
|
|
113
|
+
) !default;
|
|
114
|
+
|
|
115
|
+
// ============================================
|
|
116
|
+
// Forward Bootstrap with our configuration
|
|
117
|
+
// ============================================
|
|
118
|
+
@forward '../bootstrap/scss/bootstrap.scss' with (
|
|
119
|
+
$primary: $primary,
|
|
120
|
+
$secondary: $secondary,
|
|
121
|
+
$success: $success,
|
|
122
|
+
$info: $info,
|
|
123
|
+
$warning: $warning,
|
|
124
|
+
$danger: $danger,
|
|
125
|
+
$light: $light,
|
|
126
|
+
$dark: $dark,
|
|
127
|
+
$font-family-sans-serif: $font-family-sans-serif,
|
|
128
|
+
$headings-font-weight: $headings-font-weight,
|
|
129
|
+
$font-weight-bold: $font-weight-bold,
|
|
130
|
+
$border-radius: $border-radius,
|
|
131
|
+
$border-radius-sm: $border-radius-sm,
|
|
132
|
+
$border-radius-lg: $border-radius-lg,
|
|
133
|
+
// Neobrutalism uses solid borders everywhere, so Bootstrap's default
|
|
134
|
+
// border width is bumped and box-shadow softness is disabled.
|
|
135
|
+
$border-width: $nb-border-width,
|
|
136
|
+
$enable-rounded: false,
|
|
137
|
+
$enable-shadows: false,
|
|
138
|
+
$enable-negative-margins: true
|
|
139
|
+
);
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: core/root
|
|
3
|
+
|
|
4
|
+
config:
|
|
5
|
+
# The smallest possible fork (#177): body markup is IDENTICAL to the base
|
|
6
|
+
# core/base. The only delta is the head block loading the theme's display
|
|
7
|
+
# faces (Archivo / Space Grotesk / Space Mono); when the faces are vendored
|
|
8
|
+
# like newsflash's, this fork dies and the base shell serves.
|
|
9
|
+
theme:
|
|
10
|
+
head:
|
|
11
|
+
content: |
|
|
12
|
+
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Archivo:wght@400;600;800;900&family=Space+Grotesk:wght@400;500;700&family=Space+Mono:wght@400;700&display=swap" media="print" onload="this.media='all'">
|
|
13
|
+
body:
|
|
14
|
+
class: "d-flex flex-column min-vh-100"
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
<!-- Nav (controlled by page/layout front matter) -->
|
|
18
|
+
{% unless resolved.config.theme.nav.enabled == false %}
|
|
19
|
+
{%- include frontend/sections/nav.html -%}
|
|
20
|
+
{% endunless %}
|
|
21
|
+
|
|
22
|
+
<!-- Main Content -->
|
|
23
|
+
<main id="main-content" class="flex-fill {{ resolved.config.theme.main.class | omega_liquify }}" aria-label="Main content">
|
|
24
|
+
{{ content | omega_content_format }}
|
|
25
|
+
</main>
|
|
26
|
+
|
|
27
|
+
<!-- Footer (controlled by page/layout front matter) -->
|
|
28
|
+
{% unless resolved.config.theme.footer.enabled == false %}
|
|
29
|
+
{%- include frontend/sections/footer.html -%}
|
|
30
|
+
{% endunless %}
|