@telesign/boreal-web-components 0.1.0-alpha.5 → 0.1.0-alpha.6
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/components-build/bds-avatar.js +1 -1
- package/components-build/bds-breadcrumb-item.d.ts +11 -0
- package/components-build/bds-breadcrumb-item.js +1 -0
- package/components-build/bds-breadcrumb.d.ts +11 -0
- package/components-build/bds-breadcrumb.js +1 -0
- package/components-build/bds-button-group.js +1 -1
- package/components-build/bds-button.js +1 -1
- package/components-build/bds-checkbox-button.d.ts +11 -0
- package/components-build/bds-checkbox-button.js +1 -0
- package/components-build/bds-checkbox-card.js +1 -1
- package/components-build/bds-checkbox-group.d.ts +11 -0
- package/components-build/bds-checkbox-group.js +1 -0
- package/components-build/bds-checkbox.js +1 -1
- package/components-build/bds-dialog.js +1 -1
- package/components-build/bds-divider.js +1 -1
- package/components-build/bds-flag.js +1 -1
- package/components-build/bds-grid-item.js +1 -1
- package/components-build/bds-grid.js +1 -1
- package/components-build/bds-list-menu-item.js +1 -1
- package/components-build/bds-list-menu.js +1 -1
- package/components-build/bds-popover.js +1 -1
- package/components-build/bds-radio-button.js +1 -1
- package/components-build/bds-radio-card.js +1 -1
- package/components-build/bds-radio-group.js +1 -1
- package/components-build/bds-radio.js +1 -1
- package/components-build/bds-select.d.ts +11 -0
- package/components-build/bds-select.js +1 -0
- package/components-build/bds-slider.d.ts +11 -0
- package/components-build/bds-slider.js +1 -0
- package/components-build/bds-tag.js +1 -1
- package/components-build/bds-text-field.js +1 -1
- package/components-build/bds-toggle.js +1 -1
- package/components-build/bds-tooltip.js +1 -1
- package/components-build/bds-typography.js +1 -1
- package/components-build/p-B6e9eIHB.js +1 -0
- package/components-build/p-CJBdGD_4.js +1 -0
- package/components-build/p-DcR7mHFE.js +1 -0
- package/components-build/p-DdOPD9wW.js +1 -0
- package/components-build/{p-BSlaf0ff.js → p-DoNZM78n.js} +1 -1
- package/components-build/p-DrkDx75U.js +1 -0
- package/components-build/p-DuBzr05c.js +1 -0
- package/components-build/p-PmjPRW8X.js +1 -0
- package/components-build/p-cgdh1LO-.js +1 -0
- package/components-build/p-yLNcMg2E.js +1 -0
- package/custom-elements.json +2723 -841
- package/dist/boreal-web-components/boreal-web-components.esm.js +1 -1
- package/dist/boreal-web-components/css/boreal.css +60 -0
- package/dist/boreal-web-components/css/theme-connect.css +15 -0
- package/dist/boreal-web-components/css/theme-engage.css +15 -0
- package/dist/boreal-web-components/css/theme-protect.css +15 -0
- package/dist/boreal-web-components/css/theme-proximus.css +15 -0
- package/dist/boreal-web-components/{p-7bb88855.entry.js → p-02e53626.entry.js} +1 -1
- package/dist/boreal-web-components/p-0357450d.system.entry.js +1 -0
- package/dist/boreal-web-components/{p-efe159aa.entry.js → p-1250ba53.entry.js} +1 -1
- package/dist/boreal-web-components/p-1911b978.entry.js +1 -0
- package/dist/boreal-web-components/p-1mOd23lT.system.js +1 -0
- package/dist/boreal-web-components/{p-48ebbfbe.system.entry.js → p-25823f7d.system.entry.js} +1 -1
- package/dist/boreal-web-components/p-2db71382.system.entry.js +1 -0
- package/dist/boreal-web-components/p-367e40f9.entry.js +1 -0
- package/dist/boreal-web-components/p-3946d587.entry.js +1 -0
- package/dist/boreal-web-components/{p-4dc01078.system.entry.js → p-44b6fe6c.system.entry.js} +1 -1
- package/dist/boreal-web-components/{p-024d90b0.system.entry.js → p-48712a63.system.entry.js} +1 -1
- package/dist/boreal-web-components/{p-2adf2cd5.entry.js → p-49ea207a.entry.js} +1 -1
- package/dist/boreal-web-components/{p-7aff4c78.entry.js → p-4b028406.entry.js} +1 -1
- package/dist/boreal-web-components/p-4b615de8.system.entry.js +1 -0
- package/dist/boreal-web-components/{p-e0a41cab.system.entry.js → p-4f431941.system.entry.js} +1 -1
- package/dist/boreal-web-components/p-524421f7.system.entry.js +1 -0
- package/dist/boreal-web-components/p-530c8c7f.entry.js +1 -0
- package/dist/boreal-web-components/p-55aeff0c.system.entry.js +1 -0
- package/dist/boreal-web-components/p-5c8650b3.system.entry.js +1 -0
- package/dist/boreal-web-components/p-5e590291.system.entry.js +1 -0
- package/dist/boreal-web-components/p-5ee0841f.entry.js +1 -0
- package/dist/boreal-web-components/{p-93066db4.system.entry.js → p-65923619.system.entry.js} +1 -1
- package/dist/boreal-web-components/p-66ec16d9.entry.js +1 -0
- package/dist/boreal-web-components/{p-e55f2a8b.entry.js → p-714bf70d.entry.js} +1 -1
- package/dist/boreal-web-components/p-7626338e.system.entry.js +1 -0
- package/dist/boreal-web-components/p-7G4h4DI7.js +1 -0
- package/dist/boreal-web-components/p-800fc096.system.entry.js +1 -0
- package/dist/boreal-web-components/p-824485ad.entry.js +1 -0
- package/dist/boreal-web-components/p-8dfe3a9f.entry.js +1 -0
- package/dist/boreal-web-components/p-90022071.entry.js +1 -0
- package/dist/boreal-web-components/{p-7ebc67c9.entry.js → p-9d02057d.entry.js} +1 -1
- package/dist/boreal-web-components/{p-wREMI3WA.js → p-CcENtewr.js} +1 -1
- package/dist/boreal-web-components/p-Dk9dfU9-.system.js +1 -0
- package/dist/boreal-web-components/p-K7DvMlRo.system.js +1 -0
- package/dist/boreal-web-components/{p-DYlZcFrB.system.js → p-UEj9YHof.system.js} +1 -1
- package/dist/boreal-web-components/{p-147d6652.system.entry.js → p-b54fe67f.system.entry.js} +1 -1
- package/dist/boreal-web-components/p-bbcd3a30.system.entry.js +1 -0
- package/dist/boreal-web-components/p-bea25d3d.system.entry.js +1 -0
- package/dist/boreal-web-components/p-bed506d3.entry.js +1 -0
- package/dist/boreal-web-components/p-bfd62034.system.entry.js +1 -0
- package/dist/boreal-web-components/p-c07d6b82.system.entry.js +1 -0
- package/dist/boreal-web-components/{p-7d3a8f61.entry.js → p-cc5c359f.entry.js} +1 -1
- package/dist/boreal-web-components/p-cgdh1LO-.js +1 -0
- package/dist/boreal-web-components/p-d2b6ae79.entry.js +1 -0
- package/dist/boreal-web-components/p-e21b8416.entry.js +1 -0
- package/dist/boreal-web-components/p-e4364a44.system.entry.js +1 -0
- package/dist/boreal-web-components/p-e51407b2.system.entry.js +1 -0
- package/dist/boreal-web-components/p-e8cde179.system.entry.js +1 -0
- package/dist/boreal-web-components/p-eecc3028.system.entry.js +1 -0
- package/dist/boreal-web-components/p-f3bd824d.system.entry.js +1 -0
- package/dist/boreal-web-components/p-f6eabb16.entry.js +1 -0
- package/dist/boreal-web-components/p-f7acf6e5.system.entry.js +1 -0
- package/dist/boreal-web-components/{p-6629be14.entry.js → p-f9560509.entry.js} +1 -1
- package/dist/boreal-web-components/p-fa128cad.system.entry.js +1 -0
- package/dist/boreal-web-components/p-fab1a01d.entry.js +1 -0
- package/dist/boreal-web-components/p-fb9ba833.entry.js +1 -0
- package/dist/boreal-web-components/p-fbe0c9f2.entry.js +1 -0
- package/dist/boreal-web-components/p-fbe88555.entry.js +1 -0
- package/dist/boreal-web-components/p-fc1fa966.system.entry.js +1 -0
- package/dist/boreal-web-components/p-fc4ffa0e.entry.js +1 -0
- package/dist/boreal-web-components/p-fef13445.entry.js +1 -0
- package/dist/boreal-web-components/p-qGhMe8Hk.js +1 -0
- package/dist/boreal-web-components/p-vzZJGcYF.system.js +1 -1
- package/dist/boreal-web-components/scss/maps/_theme-connect.scss +16 -1
- package/dist/boreal-web-components/scss/maps/_theme-engage.scss +16 -1
- package/dist/boreal-web-components/scss/maps/_theme-protect.scss +16 -1
- package/dist/boreal-web-components/scss/maps/_theme-proximus.scss +16 -1
- package/dist/boreal-web-components/scss/variables/_theme-connect.scss +16 -1
- package/dist/boreal-web-components/scss/variables/_theme-engage.scss +16 -1
- package/dist/boreal-web-components/scss/variables/_theme-protect.scss +16 -1
- package/dist/boreal-web-components/scss/variables/_theme-proximus.scss +16 -1
- package/dist/cjs/KeyboardController-B_g3peyB.js +1067 -0
- package/dist/cjs/Keys-DXn16dlA.js +34 -0
- package/dist/cjs/bds-avatar.cjs.entry.js +1 -1
- package/dist/cjs/bds-breadcrumb-item.cjs.entry.js +106 -0
- package/dist/cjs/bds-breadcrumb.cjs.entry.js +127 -0
- package/dist/cjs/bds-button-group.cjs.entry.js +23 -2
- package/dist/cjs/bds-button.cjs.entry.js +33 -6
- package/dist/cjs/bds-checkbox-button.cjs.entry.js +119 -0
- package/dist/cjs/bds-checkbox-card.cjs.entry.js +37 -23
- package/dist/cjs/bds-checkbox-group.cjs.entry.js +292 -0
- package/dist/cjs/bds-checkbox.cjs.entry.js +62 -31
- package/dist/cjs/bds-dialog.cjs.entry.js +3 -3
- package/dist/cjs/bds-divider.cjs.entry.js +1 -1
- package/dist/cjs/bds-flag.cjs.entry.js +1 -1
- package/dist/cjs/bds-grid-item.cjs.entry.js +1 -1
- package/dist/cjs/bds-grid.cjs.entry.js +1 -1
- package/dist/cjs/bds-list-menu-item.cjs.entry.js +19 -8
- package/dist/cjs/bds-list-menu.cjs.entry.js +42 -7
- package/dist/cjs/bds-popover.cjs.entry.js +13 -5
- package/dist/cjs/bds-radio-button.cjs.entry.js +2 -2
- package/dist/cjs/bds-radio-card.cjs.entry.js +2 -2
- package/dist/cjs/bds-radio-group.cjs.entry.js +14 -8
- package/dist/cjs/bds-radio.cjs.entry.js +2 -2
- package/dist/cjs/bds-select.cjs.entry.js +394 -0
- package/dist/cjs/bds-slider.cjs.entry.js +655 -0
- package/dist/cjs/bds-tag.cjs.entry.js +1 -1
- package/dist/cjs/bds-text-field.cjs.entry.js +8 -3
- package/dist/cjs/bds-toggle.cjs.entry.js +1 -1
- package/dist/cjs/bds-tooltip_2.cjs.entry.js +7 -5
- package/dist/cjs/boreal-web-components.cjs.js +1 -1
- package/dist/cjs/checkbox-form-association-DTEpHXUD.js +43 -0
- package/dist/cjs/{getOffset-k4ezB-eT.js → getOffset-CsDHFjPW.js} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +16 -10
- package/dist/collection/components/actions/bds-button/bds-button.css +36 -36
- package/dist/collection/components/actions/bds-button/bds-button.js +29 -5
- package/dist/collection/components/actions/bds-button-group/bds-button-group.css +1 -1
- package/dist/collection/components/actions/bds-button-group/bds-button-group.js +21 -2
- package/dist/collection/components/actions/bds-list-menu/bds-list-menu/bds-list-menu.js +136 -3
- package/dist/collection/components/actions/bds-list-menu/bds-list-menu-item/bds-list-menu-item.css +5 -2
- package/dist/collection/components/actions/bds-list-menu/bds-list-menu-item/bds-list-menu-item.js +20 -7
- package/dist/collection/components/actions/bds-toggle/bds-toggle.css +3 -3
- package/dist/collection/components/feedback/bds-tag/bds-tag.css +6 -6
- package/dist/collection/components/forms/bds-checkbox/bds-checkbox/bds-checkbox.css +132 -0
- package/dist/collection/components/forms/bds-checkbox/{bds-checkbox.js → bds-checkbox/bds-checkbox.js} +135 -38
- package/dist/collection/components/forms/bds-checkbox/bds-checkbox-button/bds-checkbox-button.css +113 -0
- package/dist/collection/components/forms/bds-checkbox/bds-checkbox-button/bds-checkbox-button.js +382 -0
- package/dist/collection/components/forms/{bds-checkbox-card → bds-checkbox/bds-checkbox-card}/bds-checkbox-card.css +15 -3
- package/dist/collection/components/forms/{bds-checkbox-card → bds-checkbox/bds-checkbox-card}/bds-checkbox-card.js +97 -51
- package/dist/collection/components/forms/bds-checkbox/bds-checkbox-group/bds-checkbox-group.css +55 -0
- package/dist/collection/components/forms/bds-checkbox/bds-checkbox-group/bds-checkbox-group.js +648 -0
- package/dist/collection/components/forms/bds-checkbox/bds-checkbox-group/types/enum.js +5 -0
- package/dist/collection/components/forms/bds-checkbox/bds-checkbox-group/types/index.js +3 -0
- package/dist/collection/components/forms/bds-checkbox/utils/checkbox-form-association.js +39 -0
- package/dist/collection/components/forms/bds-checkbox/utils/index.js +1 -0
- package/dist/collection/components/forms/bds-flag/bds-flag.js +1 -1
- package/dist/collection/components/forms/bds-radio/{bds-radio.css → bds-radio/bds-radio.css} +3 -3
- package/dist/collection/components/forms/bds-radio/{bds-radio.js → bds-radio/bds-radio.js} +2 -2
- package/dist/collection/components/forms/{bds-radio-button → bds-radio/bds-radio-button}/bds-radio-button.css +12 -8
- package/dist/collection/components/forms/{bds-radio-button → bds-radio/bds-radio-button}/bds-radio-button.js +2 -2
- package/dist/collection/components/forms/{bds-radio-card → bds-radio/bds-radio-card}/bds-radio-card.css +2 -2
- package/dist/collection/components/forms/{bds-radio-card → bds-radio/bds-radio-card}/bds-radio-card.js +9 -9
- package/dist/collection/components/forms/{bds-radio-group → bds-radio/bds-radio-group}/bds-radio-group.js +51 -23
- package/dist/collection/components/forms/bds-select/bds-select.css +23 -0
- package/dist/collection/components/forms/bds-select/bds-select.js +431 -0
- package/dist/collection/components/forms/bds-slider/bds-slider.css +213 -0
- package/dist/collection/components/forms/bds-slider/bds-slider.js +847 -0
- package/dist/collection/components/forms/bds-slider/helpers/SliderDOMController.js +61 -0
- package/dist/collection/components/forms/bds-slider/helpers/SliderService.js +93 -0
- package/dist/collection/components/forms/bds-slider/helpers/index.js +3 -0
- package/dist/collection/components/forms/bds-slider/helpers/parseValues.js +43 -0
- package/dist/collection/components/forms/bds-slider/types/ISlider.js +1 -0
- package/dist/collection/components/forms/bds-slider/types/ISliderOptions.js +1 -0
- package/dist/collection/components/forms/bds-slider/types/enum.js +16 -0
- package/dist/collection/components/forms/bds-slider/types/index.js +5 -0
- package/dist/collection/components/forms/bds-slider/types/types.js +1 -0
- package/dist/collection/components/forms/bds-text-field/bds-text-field.css +10 -3
- package/dist/collection/components/forms/bds-text-field/bds-text-field.js +47 -2
- package/dist/collection/components/helpers/bds-divider/bds-divider.js +1 -1
- package/dist/collection/components/images-icons/bds-avatar/bds-avatar.js +1 -1
- package/dist/collection/components/layouts/bds-grid/{grid → bds-grid}/bds-grid.js +3 -3
- package/dist/collection/components/layouts/bds-grid/bds-grid/types/IGrid.js +1 -0
- package/dist/collection/components/layouts/bds-grid/bds-grid/types/types.js +1 -0
- package/dist/collection/components/layouts/bds-grid/{grid-item → bds-grid-item}/bds-grid-item.js +9 -9
- package/dist/collection/components/layouts/bds-grid/bds-grid-item/types/IGridItem.js +1 -0
- package/dist/collection/components/layouts/bds-grid/bds-grid-item/types/types.js +1 -0
- package/dist/collection/components/navigation/bds-breadcrumb/bds-breadcrumb.css +21 -0
- package/dist/collection/components/navigation/bds-breadcrumb/bds-breadcrumb.js +292 -0
- package/dist/collection/components/navigation/bds-breadcrumb/types/IBreadcrumb.js +1 -0
- package/dist/collection/components/navigation/bds-breadcrumb-item/bds-breadcrumb-item.css +64 -0
- package/dist/collection/components/navigation/bds-breadcrumb-item/bds-breadcrumb-item.js +369 -0
- package/dist/collection/components/navigation/bds-breadcrumb-item/types/IBreadcrumbItem.js +1 -0
- package/dist/collection/components/overlays/bds-dialog/bds-dialog.css +1 -1
- package/dist/collection/components/overlays/bds-dialog/bds-dialog.js +2 -2
- package/dist/collection/components/overlays/bds-popover/bds-popover.js +49 -3
- package/dist/collection/components/overlays/bds-tooltip/bds-tooltip.js +1 -1
- package/dist/collection/components/titles-text/bds-typography/bds-typography.js +30 -47
- package/dist/collection/components/titles-text/bds-typography/utils/bds-typography-utils.js +1 -1
- package/dist/collection/css/boreal.css +60 -0
- package/dist/collection/css/theme-connect.css +15 -0
- package/dist/collection/css/theme-engage.css +15 -0
- package/dist/collection/css/theme-protect.css +15 -0
- package/dist/collection/css/theme-proximus.css +15 -0
- package/dist/collection/mixins/menu-behavior.mixin.js +1 -1
- package/dist/collection/scss/maps/_theme-connect.scss +16 -1
- package/dist/collection/scss/maps/_theme-engage.scss +16 -1
- package/dist/collection/scss/maps/_theme-protect.scss +16 -1
- package/dist/collection/scss/maps/_theme-proximus.scss +16 -1
- package/dist/collection/scss/variables/_theme-connect.scss +16 -1
- package/dist/collection/scss/variables/_theme-engage.scss +16 -1
- package/dist/collection/scss/variables/_theme-protect.scss +16 -1
- package/dist/collection/scss/variables/_theme-proximus.scss +16 -1
- package/dist/collection/types/index.js +0 -1
- package/dist/collection/utils/a11y/index.js +4 -0
- package/dist/collection/utils/a11y/keyboard/KeyboardController.js +566 -0
- package/dist/collection/utils/a11y/keyboard/_constants.js +30 -0
- package/dist/collection/utils/a11y/keyboard/focus/aria-activedescendant.js +41 -0
- package/dist/collection/utils/a11y/keyboard/focus/resolve.js +48 -0
- package/dist/collection/utils/a11y/keyboard/focus/roving-tabindex.js +55 -0
- package/dist/collection/utils/a11y/keyboard/navigation/grid-navigation.js +194 -0
- package/dist/collection/utils/a11y/keyboard/navigation/linear-navigation.js +137 -0
- package/dist/collection/utils/a11y/keyboard/types/IKeyboardController.js +1 -0
- package/dist/collection/utils/a11y/keyboard/types/index.js +2 -0
- package/dist/collection/utils/a11y/keyboard/types/types.js +1 -0
- package/dist/collection/utils/constants/common/Keys.js +25 -6
- package/dist/collection/utils/dom/elements.js +63 -0
- package/dist/css/boreal.css +60 -0
- package/dist/css/theme-connect.css +15 -0
- package/dist/css/theme-engage.css +15 -0
- package/dist/css/theme-protect.css +15 -0
- package/dist/css/theme-proximus.css +15 -0
- package/dist/esm/KeyboardController-DcnXb5F5.js +1064 -0
- package/dist/esm/Keys-7G4h4DI7.js +31 -0
- package/dist/esm/bds-avatar.entry.js +1 -1
- package/dist/esm/bds-breadcrumb-item.entry.js +104 -0
- package/dist/esm/bds-breadcrumb.entry.js +125 -0
- package/dist/esm/bds-button-group.entry.js +23 -2
- package/dist/esm/bds-button.entry.js +33 -6
- package/dist/esm/bds-checkbox-button.entry.js +117 -0
- package/dist/esm/bds-checkbox-card.entry.js +37 -23
- package/dist/esm/bds-checkbox-group.entry.js +290 -0
- package/dist/esm/bds-checkbox.entry.js +62 -31
- package/dist/esm/bds-dialog.entry.js +3 -3
- package/dist/esm/bds-divider.entry.js +1 -1
- package/dist/esm/bds-flag.entry.js +1 -1
- package/dist/esm/bds-grid-item.entry.js +1 -1
- package/dist/esm/bds-grid.entry.js +1 -1
- package/dist/esm/bds-list-menu-item.entry.js +19 -8
- package/dist/esm/bds-list-menu.entry.js +38 -3
- package/dist/esm/bds-popover.entry.js +13 -5
- package/dist/esm/bds-radio-button.entry.js +2 -2
- package/dist/esm/bds-radio-card.entry.js +2 -2
- package/dist/esm/bds-radio-group.entry.js +14 -8
- package/dist/esm/bds-radio.entry.js +2 -2
- package/dist/esm/bds-select.entry.js +392 -0
- package/dist/esm/bds-slider.entry.js +653 -0
- package/dist/esm/bds-tag.entry.js +1 -1
- package/dist/esm/bds-text-field.entry.js +8 -3
- package/dist/esm/bds-toggle.entry.js +1 -1
- package/dist/esm/bds-tooltip_2.entry.js +7 -5
- package/dist/esm/boreal-web-components.js +1 -1
- package/dist/esm/checkbox-form-association-cgdh1LO-.js +41 -0
- package/dist/esm/{getOffset-BYS3c13B.js → getOffset-DCLpJBcp.js} +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm-es5/KeyboardController-DcnXb5F5.js +1 -0
- package/dist/esm-es5/Keys-7G4h4DI7.js +1 -0
- package/dist/esm-es5/bds-avatar.entry.js +1 -1
- package/dist/esm-es5/bds-breadcrumb-item.entry.js +1 -0
- package/dist/esm-es5/bds-breadcrumb.entry.js +1 -0
- package/dist/esm-es5/bds-button-group.entry.js +1 -1
- package/dist/esm-es5/bds-button.entry.js +1 -1
- package/dist/esm-es5/bds-checkbox-button.entry.js +1 -0
- package/dist/esm-es5/bds-checkbox-card.entry.js +1 -1
- package/dist/esm-es5/bds-checkbox-group.entry.js +1 -0
- package/dist/esm-es5/bds-checkbox.entry.js +1 -1
- package/dist/esm-es5/bds-dialog.entry.js +1 -1
- package/dist/esm-es5/bds-divider.entry.js +1 -1
- package/dist/esm-es5/bds-flag.entry.js +1 -1
- package/dist/esm-es5/bds-grid-item.entry.js +1 -1
- package/dist/esm-es5/bds-grid.entry.js +1 -1
- package/dist/esm-es5/bds-list-menu-item.entry.js +1 -1
- package/dist/esm-es5/bds-list-menu.entry.js +1 -1
- package/dist/esm-es5/bds-popover.entry.js +1 -1
- package/dist/esm-es5/bds-radio-button.entry.js +1 -1
- package/dist/esm-es5/bds-radio-card.entry.js +1 -1
- package/dist/esm-es5/bds-radio-group.entry.js +1 -1
- package/dist/esm-es5/bds-radio.entry.js +1 -1
- package/dist/esm-es5/bds-select.entry.js +1 -0
- package/dist/esm-es5/bds-slider.entry.js +1 -0
- package/dist/esm-es5/bds-tag.entry.js +1 -1
- package/dist/esm-es5/bds-text-field.entry.js +1 -1
- package/dist/esm-es5/bds-toggle.entry.js +1 -1
- package/dist/esm-es5/bds-tooltip_2.entry.js +1 -1
- package/dist/esm-es5/boreal-web-components.js +1 -1
- package/dist/esm-es5/checkbox-form-association-cgdh1LO-.js +1 -0
- package/dist/esm-es5/{getOffset-BYS3c13B.js → getOffset-DCLpJBcp.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/scss/maps/_theme-connect.scss +16 -1
- package/dist/scss/maps/_theme-engage.scss +16 -1
- package/dist/scss/maps/_theme-protect.scss +16 -1
- package/dist/scss/maps/_theme-proximus.scss +16 -1
- package/dist/scss/variables/_theme-connect.scss +16 -1
- package/dist/scss/variables/_theme-engage.scss +16 -1
- package/dist/scss/variables/_theme-protect.scss +16 -1
- package/dist/scss/variables/_theme-proximus.scss +16 -1
- package/dist/types/components/actions/bds-button/bds-button.d.ts +4 -0
- package/dist/types/components/actions/bds-button-group/bds-button-group.d.ts +4 -0
- package/dist/types/components/actions/bds-list-menu/bds-list-menu/bds-list-menu.d.ts +13 -0
- package/dist/types/components/actions/bds-list-menu/bds-list-menu/types/IListMenu.d.ts +3 -0
- package/dist/types/components/actions/bds-list-menu/bds-list-menu-item/bds-list-menu-item.d.ts +4 -1
- package/dist/types/components/actions/bds-list-menu/bds-list-menu-item/types/IListMenuItem.d.ts +1 -0
- package/dist/types/components/actions/bds-toggle/types/IToggle.d.ts +1 -1
- package/dist/types/components/forms/bds-checkbox/{bds-checkbox.d.ts → bds-checkbox/bds-checkbox.d.ts} +23 -10
- package/dist/types/components/forms/bds-checkbox/bds-checkbox-button/bds-checkbox-button.d.ts +68 -0
- package/dist/types/components/forms/bds-checkbox/bds-checkbox-button/types/ICheckboxButton.d.ts +15 -0
- package/dist/types/components/forms/{bds-checkbox-card → bds-checkbox/bds-checkbox-card}/bds-checkbox-card.d.ts +15 -22
- package/dist/types/components/forms/bds-checkbox/bds-checkbox-card/types/ICheckboxCard.d.ts +9 -0
- package/dist/types/components/forms/bds-checkbox/bds-checkbox-group/bds-checkbox-group.d.ts +86 -0
- package/dist/types/components/forms/bds-checkbox/bds-checkbox-group/types/ICheckboxGroup.d.ts +27 -0
- package/dist/types/components/forms/bds-checkbox/bds-checkbox-group/types/enum.d.ts +6 -0
- package/dist/types/components/forms/bds-checkbox/bds-checkbox-group/types/index.d.ts +4 -0
- package/dist/types/components/forms/bds-checkbox/bds-checkbox-group/types/types.d.ts +4 -0
- package/dist/types/components/forms/bds-checkbox/types/ICheckbox.d.ts +7 -22
- package/dist/types/components/forms/bds-checkbox/utils/checkbox-form-association.d.ts +10 -0
- package/dist/types/components/forms/bds-checkbox/utils/index.d.ts +2 -0
- package/dist/types/components/forms/bds-radio/{bds-radio.d.ts → bds-radio/bds-radio.d.ts} +1 -1
- package/dist/types/components/forms/{bds-radio-button → bds-radio/bds-radio-button}/bds-radio-button.d.ts +1 -1
- package/dist/types/components/forms/{bds-radio-button → bds-radio/bds-radio-button}/types/IRadioButton.d.ts +1 -0
- package/dist/types/components/forms/{bds-radio-card → bds-radio/bds-radio-card}/bds-radio-card.d.ts +1 -1
- package/dist/types/components/forms/{bds-radio-group → bds-radio/bds-radio-group}/bds-radio-group.d.ts +13 -10
- package/dist/types/components/forms/bds-radio/bds-radio-group/types/IRadioGroup.d.ts +20 -0
- package/dist/types/components/forms/bds-select/bds-select.d.ts +98 -0
- package/dist/types/components/forms/bds-select/types/ISelect.d.ts +6 -0
- package/dist/types/components/forms/bds-slider/bds-slider.d.ts +176 -0
- package/dist/types/components/forms/bds-slider/helpers/SliderDOMController.d.ts +38 -0
- package/dist/types/components/forms/bds-slider/helpers/SliderService.d.ts +44 -0
- package/dist/types/components/forms/bds-slider/helpers/index.d.ts +4 -0
- package/dist/types/components/forms/bds-slider/helpers/parseValues.d.ts +18 -0
- package/dist/types/components/forms/bds-slider/types/ChangeDetail.d.ts +9 -0
- package/dist/types/components/forms/bds-slider/types/ISlider.d.ts +17 -0
- package/dist/types/components/forms/bds-slider/types/ISliderOptions.d.ts +31 -0
- package/dist/types/components/forms/bds-slider/types/enum.d.ts +17 -0
- package/dist/types/components/forms/bds-slider/types/index.d.ts +6 -0
- package/dist/types/components/forms/bds-slider/types/types.d.ts +5 -0
- package/dist/types/components/forms/bds-text-field/bds-text-field.d.ts +4 -0
- package/dist/types/components/navigation/bds-breadcrumb/bds-breadcrumb.d.ts +57 -0
- package/dist/types/components/navigation/bds-breadcrumb/types/IBreadcrumb.d.ts +17 -0
- package/dist/types/components/navigation/bds-breadcrumb-item/bds-breadcrumb-item.d.ts +83 -0
- package/dist/types/components/navigation/bds-breadcrumb-item/types/IBreadcrumbItem.d.ts +20 -0
- package/dist/types/components/overlays/bds-popover/bds-popover.d.ts +4 -0
- package/dist/types/components/titles-text/bds-typography/bds-typography.d.ts +2 -46
- package/dist/types/components/titles-text/bds-typography/types/ITypography.d.ts +1 -0
- package/dist/types/components.d.ts +1136 -277
- package/dist/types/types/form.d.ts +24 -0
- package/dist/types/types/index.d.ts +0 -1
- package/dist/types/utils/a11y/index.d.ts +4 -0
- package/dist/types/utils/a11y/keyboard/KeyboardController.d.ts +321 -0
- package/dist/types/utils/a11y/keyboard/_constants.d.ts +28 -0
- package/dist/types/utils/a11y/keyboard/focus/aria-activedescendant.d.ts +17 -0
- package/dist/types/utils/a11y/keyboard/focus/resolve.d.ts +23 -0
- package/dist/types/utils/a11y/keyboard/focus/roving-tabindex.d.ts +20 -0
- package/dist/types/utils/a11y/keyboard/navigation/grid-navigation.d.ts +9 -0
- package/dist/types/utils/a11y/keyboard/navigation/linear-navigation.d.ts +13 -0
- package/dist/types/utils/a11y/keyboard/types/IKeyboardController.d.ts +125 -0
- package/dist/types/utils/a11y/keyboard/types/index.d.ts +3 -0
- package/dist/types/utils/a11y/keyboard/types/types.d.ts +6 -0
- package/dist/types/utils/constants/common/Keys.d.ts +23 -6
- package/dist/types/utils/dom/elements.d.ts +41 -0
- package/package.json +1 -1
- package/components-build/p-Cbibqaz0.js +0 -1
- package/components-build/p-ClR-wgiT.js +0 -1
- package/components-build/p-N_tqtRV2.js +0 -1
- package/components-build/p-bAMuJ4Jx.js +0 -1
- package/components-build/p-c2z3tneT.js +0 -1
- package/components-build/p-dz9-Q2N8.js +0 -1
- package/components-build/p-iq2UuV7c.js +0 -1
- package/dist/boreal-web-components/p-06DrzEMB.system.js +0 -1
- package/dist/boreal-web-components/p-11e4c0ec.system.entry.js +0 -1
- package/dist/boreal-web-components/p-148d510f.entry.js +0 -1
- package/dist/boreal-web-components/p-277f142e.system.entry.js +0 -1
- package/dist/boreal-web-components/p-2be4aa3a.system.entry.js +0 -1
- package/dist/boreal-web-components/p-340896b2.entry.js +0 -1
- package/dist/boreal-web-components/p-3d4ce8eb.system.entry.js +0 -1
- package/dist/boreal-web-components/p-44a8fde5.entry.js +0 -1
- package/dist/boreal-web-components/p-5681b294.system.entry.js +0 -1
- package/dist/boreal-web-components/p-5ed75075.entry.js +0 -1
- package/dist/boreal-web-components/p-635f676b.system.entry.js +0 -1
- package/dist/boreal-web-components/p-68b83680.system.entry.js +0 -1
- package/dist/boreal-web-components/p-6a60d134.system.entry.js +0 -1
- package/dist/boreal-web-components/p-7e672cce.entry.js +0 -1
- package/dist/boreal-web-components/p-81401e2a.system.entry.js +0 -1
- package/dist/boreal-web-components/p-8289e506.entry.js +0 -1
- package/dist/boreal-web-components/p-82d15372.entry.js +0 -1
- package/dist/boreal-web-components/p-851c06f2.entry.js +0 -1
- package/dist/boreal-web-components/p-8a3716ec.entry.js +0 -1
- package/dist/boreal-web-components/p-8f4f8af0.system.entry.js +0 -1
- package/dist/boreal-web-components/p-DlYG-OVB.js +0 -1
- package/dist/boreal-web-components/p-DpnBDSUm.system.js +0 -1
- package/dist/boreal-web-components/p-a73659ac.system.entry.js +0 -1
- package/dist/boreal-web-components/p-b2ad9535.system.entry.js +0 -1
- package/dist/boreal-web-components/p-d4c30d2b.entry.js +0 -1
- package/dist/boreal-web-components/p-db0c10b9.system.entry.js +0 -1
- package/dist/boreal-web-components/p-dca16a3d.entry.js +0 -1
- package/dist/boreal-web-components/p-de846c43.system.entry.js +0 -1
- package/dist/boreal-web-components/p-df087e23.system.entry.js +0 -1
- package/dist/boreal-web-components/p-dfb4854e.entry.js +0 -1
- package/dist/boreal-web-components/p-dz9-Q2N8.js +0 -1
- package/dist/boreal-web-components/p-e09b4d14.system.entry.js +0 -1
- package/dist/boreal-web-components/p-e7af1e1a.entry.js +0 -1
- package/dist/boreal-web-components/p-f792aa74.entry.js +0 -1
- package/dist/cjs/Keys-rKl2za5q.js +0 -18
- package/dist/cjs/menu-BxKaEajh.js +0 -8
- package/dist/collection/components/forms/bds-checkbox/bds-checkbox.css +0 -91
- package/dist/esm/Keys-DlYG-OVB.js +0 -16
- package/dist/esm/menu-dz9-Q2N8.js +0 -6
- package/dist/esm-es5/Keys-DlYG-OVB.js +0 -1
- package/dist/esm-es5/menu-dz9-Q2N8.js +0 -1
- package/dist/types/components/forms/bds-checkbox-card/types/ICheckboxCard.d.ts +0 -8
- package/dist/types/components/forms/bds-radio-group/types/IRadioGroup.d.ts +0 -19
- package/dist/types/types/IFormProps.d.ts +0 -25
- /package/dist/collection/components/forms/{bds-checkbox-card/types/ICheckboxCard.js → bds-checkbox/bds-checkbox-button/types/ICheckboxButton.js} +0 -0
- /package/dist/collection/components/forms/{bds-radio-button/types/IRadioButton.js → bds-checkbox/bds-checkbox-card/types/ICheckboxCard.js} +0 -0
- /package/dist/collection/components/forms/{bds-radio-card/types/IRadioCard.js → bds-checkbox/bds-checkbox-group/types/ICheckboxGroup.js} +0 -0
- /package/dist/collection/components/forms/{bds-radio-group → bds-checkbox/bds-checkbox-group}/types/types.js +0 -0
- /package/dist/collection/components/{layouts/bds-grid/grid/types/IGrid.js → forms/bds-radio/bds-radio/types/IRadio.js} +0 -0
- /package/dist/collection/components/forms/{bds-radio-group/types/IRadioGroup.js → bds-radio/bds-radio-button/types/IRadioButton.js} +0 -0
- /package/dist/collection/components/forms/bds-radio/{types/IRadio.js → bds-radio-card/types/IRadioCard.js} +0 -0
- /package/dist/collection/components/forms/{bds-radio-group → bds-radio/bds-radio-group}/bds-radio-group.css +0 -0
- /package/dist/collection/components/{layouts/bds-grid/grid-item/types/IGridItem.js → forms/bds-radio/bds-radio-group/types/IRadioGroup.js} +0 -0
- /package/dist/collection/components/forms/{bds-radio-group → bds-radio/bds-radio-group}/types/enum.js +0 -0
- /package/dist/collection/components/{layouts/bds-grid/grid-item → forms/bds-radio/bds-radio-group}/types/types.js +0 -0
- /package/dist/collection/components/{layouts/bds-grid/grid/types/types.js → forms/bds-select/types/ISelect.js} +0 -0
- /package/dist/collection/{types/IFormProps.js → components/forms/bds-slider/types/ChangeDetail.js} +0 -0
- /package/dist/collection/components/layouts/bds-grid/{grid → bds-grid}/bds-grid.css +0 -0
- /package/dist/collection/components/layouts/bds-grid/{grid → bds-grid}/types/enum.js +0 -0
- /package/dist/collection/components/layouts/bds-grid/{grid → bds-grid}/types/index.js +0 -0
- /package/dist/collection/components/layouts/bds-grid/{grid-item → bds-grid-item}/bds-grid-item.css +0 -0
- /package/dist/collection/components/layouts/bds-grid/{grid-item → bds-grid-item}/types/enum.js +0 -0
- /package/dist/collection/components/layouts/bds-grid/{grid-item → bds-grid-item}/types/index.js +0 -0
- /package/dist/types/components/forms/bds-radio/{types → bds-radio/types}/IRadio.d.ts +0 -0
- /package/dist/types/components/forms/{bds-radio-card → bds-radio/bds-radio-card}/types/IRadioCard.d.ts +0 -0
- /package/dist/types/components/forms/{bds-radio-group → bds-radio/bds-radio-group}/types/enum.d.ts +0 -0
- /package/dist/types/components/forms/{bds-radio-group → bds-radio/bds-radio-group}/types/types.d.ts +0 -0
- /package/dist/types/components/layouts/bds-grid/{grid → bds-grid}/bds-grid.d.ts +0 -0
- /package/dist/types/components/layouts/bds-grid/{grid → bds-grid}/types/IGrid.d.ts +0 -0
- /package/dist/types/components/layouts/bds-grid/{grid → bds-grid}/types/enum.d.ts +0 -0
- /package/dist/types/components/layouts/bds-grid/{grid → bds-grid}/types/index.d.ts +0 -0
- /package/dist/types/components/layouts/bds-grid/{grid → bds-grid}/types/types.d.ts +0 -0
- /package/dist/types/components/layouts/bds-grid/{grid-item → bds-grid-item}/bds-grid-item.d.ts +0 -0
- /package/dist/types/components/layouts/bds-grid/{grid-item → bds-grid-item}/types/IGridItem.d.ts +0 -0
- /package/dist/types/components/layouts/bds-grid/{grid-item → bds-grid-item}/types/enum.d.ts +0 -0
- /package/dist/types/components/layouts/bds-grid/{grid-item → bds-grid-item}/types/index.d.ts +0 -0
- /package/dist/types/components/layouts/bds-grid/{grid-item → bds-grid-item}/types/types.d.ts +0 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
function isHTMLElement(cell) {
|
|
2
|
+
return cell != null;
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* Applies the **roving tabindex** technique with real DOM focus.
|
|
6
|
+
*
|
|
7
|
+
* Order matters for key-repeat: set `tabindex="0"` and call `.focus()` on the
|
|
8
|
+
* new item first, then demote the previous item. This ensures focus is never
|
|
9
|
+
* momentarily absent between steps.
|
|
10
|
+
*/
|
|
11
|
+
export function applyRovingTabindex(items, activeIndex) {
|
|
12
|
+
const next = items[activeIndex];
|
|
13
|
+
if (next == null)
|
|
14
|
+
return;
|
|
15
|
+
const prevIndex = items.findIndex(item => item.getAttribute('tabindex') === '0');
|
|
16
|
+
next.setAttribute('tabindex', '0');
|
|
17
|
+
next.focus();
|
|
18
|
+
if (prevIndex !== -1 && prevIndex !== activeIndex) {
|
|
19
|
+
items[prevIndex].setAttribute('tabindex', '-1');
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Initializes the **roving tabindex** technique without stealing focus.
|
|
24
|
+
* Only sets tabindex attributes; use during component initialization to
|
|
25
|
+
* avoid moving DOM focus away from the previously focused element.
|
|
26
|
+
*/
|
|
27
|
+
export function initRovingTabindex(items, activeIndex) {
|
|
28
|
+
const activeItem = items[activeIndex];
|
|
29
|
+
if (activeItem == null)
|
|
30
|
+
return;
|
|
31
|
+
items.forEach(item => item.setAttribute('tabindex', '-1'));
|
|
32
|
+
activeItem.setAttribute('tabindex', '0');
|
|
33
|
+
}
|
|
34
|
+
/** Applies roving tabindex to a 2D grid. Moves real DOM focus to `(row, col)`. */
|
|
35
|
+
export function applyGridRovingTabindex(items, row, col) {
|
|
36
|
+
items
|
|
37
|
+
.flat()
|
|
38
|
+
.filter(isHTMLElement)
|
|
39
|
+
.forEach(item => item.setAttribute('tabindex', '-1'));
|
|
40
|
+
const cell = items[row]?.[col];
|
|
41
|
+
if (cell != null) {
|
|
42
|
+
cell.setAttribute('tabindex', '0');
|
|
43
|
+
cell.focus();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/** Sets tabindex attributes on a 2D grid without stealing focus; use during initialization. */
|
|
47
|
+
export function initGridRovingTabindex(items, row, col) {
|
|
48
|
+
items
|
|
49
|
+
.flat()
|
|
50
|
+
.filter(isHTMLElement)
|
|
51
|
+
.forEach(item => item.setAttribute('tabindex', '-1'));
|
|
52
|
+
const cell = items[row]?.[col];
|
|
53
|
+
if (cell != null)
|
|
54
|
+
cell.setAttribute('tabindex', '0');
|
|
55
|
+
}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { KEYBOARD } from "../../../constants/index";
|
|
2
|
+
import { FOCUS_STRATEGY } from "../_constants";
|
|
3
|
+
import { applyGridRovingTabindex, initGridRovingTabindex } from "../focus/roving-tabindex";
|
|
4
|
+
import { applyGridAriaActiveDescendant } from "../focus/aria-activedescendant";
|
|
5
|
+
import { resolveGridCurrentPos } from "../focus/resolve";
|
|
6
|
+
function isHTMLElement(cell) {
|
|
7
|
+
return cell != null;
|
|
8
|
+
}
|
|
9
|
+
function getPositions(items) {
|
|
10
|
+
const positions = [];
|
|
11
|
+
items.forEach((rowItems, row) => {
|
|
12
|
+
rowItems.forEach((cell, col) => {
|
|
13
|
+
if (isHTMLElement(cell))
|
|
14
|
+
positions.push({ row, col, cell });
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
return positions;
|
|
18
|
+
}
|
|
19
|
+
function getRowPositions(items, row) {
|
|
20
|
+
return (items[row]
|
|
21
|
+
?.map((cell, col) => (isHTMLElement(cell) ? { row, col, cell } : null))
|
|
22
|
+
.filter((pos) => pos != null) ?? []);
|
|
23
|
+
}
|
|
24
|
+
function getCell(items, row, col) {
|
|
25
|
+
if (row < 0 || col < 0)
|
|
26
|
+
return null;
|
|
27
|
+
const cell = items.at(row)?.at(col);
|
|
28
|
+
return isHTMLElement(cell) ? cell : null;
|
|
29
|
+
}
|
|
30
|
+
function closestColumn(positions, col) {
|
|
31
|
+
return positions.reduce((closest, position) => {
|
|
32
|
+
if (closest == null)
|
|
33
|
+
return position;
|
|
34
|
+
return Math.abs(position.col - col) < Math.abs(closest.col - col) ? position : closest;
|
|
35
|
+
}, null);
|
|
36
|
+
}
|
|
37
|
+
function findRowWithCells(items, startRow, step, wrap) {
|
|
38
|
+
const rowCount = items.length;
|
|
39
|
+
let row = startRow;
|
|
40
|
+
for (let checked = 0; checked < rowCount; checked++) {
|
|
41
|
+
if (row < 0 || row >= rowCount) {
|
|
42
|
+
if (!wrap)
|
|
43
|
+
return -1;
|
|
44
|
+
row = row < 0 ? rowCount - 1 : 0;
|
|
45
|
+
}
|
|
46
|
+
if (getRowPositions(items, row).length > 0)
|
|
47
|
+
return row;
|
|
48
|
+
row += step;
|
|
49
|
+
}
|
|
50
|
+
return -1;
|
|
51
|
+
}
|
|
52
|
+
export function setupGridNavigation(config, ctrl) {
|
|
53
|
+
const { wrap = false, focusStrategy = { type: FOCUS_STRATEGY.ROVING_TABINDEX }, initialActiveSelector, onNavigate, onActivate, activateKeys = [KEYBOARD.Enter, KEYBOARD.Space], onPageUp, onPageDown, onEscape, repeatThrottleMs = 100, } = config;
|
|
54
|
+
const strategyType = focusStrategy.type;
|
|
55
|
+
const idPrefix = focusStrategy.type === FOCUS_STRATEGY.ARIA_ACTIVE_DESCENDANT
|
|
56
|
+
? (focusStrategy.idPrefix ?? `${ctrl.root?.tagName.toLowerCase() ?? 'bds-grid'}-item`)
|
|
57
|
+
: 'bds-grid-item';
|
|
58
|
+
ctrl.onStrategyResolved(strategyType, idPrefix);
|
|
59
|
+
const resolveItems = typeof config.items === 'function' ? config.items : () => config.items;
|
|
60
|
+
const applyFocus = (items, row, col) => {
|
|
61
|
+
const cell = items[row]?.[col];
|
|
62
|
+
if (cell == null)
|
|
63
|
+
return;
|
|
64
|
+
if (onNavigate != null) {
|
|
65
|
+
onNavigate(row, col, items);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
if (strategyType === FOCUS_STRATEGY.ARIA_ACTIVE_DESCENDANT) {
|
|
69
|
+
if (ctrl.root != null)
|
|
70
|
+
applyGridAriaActiveDescendant(items, row, col, ctrl.root, idPrefix);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
applyGridRovingTabindex(items, row, col);
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
const move = (dRow, dCol) => {
|
|
77
|
+
const items = resolveItems();
|
|
78
|
+
const positions = getPositions(items);
|
|
79
|
+
if (positions.length === 0)
|
|
80
|
+
return;
|
|
81
|
+
let { row, col } = resolveGridCurrentPos(items, strategyType, ctrl.root);
|
|
82
|
+
const currentCell = getCell(items, row, col);
|
|
83
|
+
if (!isHTMLElement(currentCell)) {
|
|
84
|
+
row = positions[0].row;
|
|
85
|
+
col = positions[0].col;
|
|
86
|
+
}
|
|
87
|
+
if (dRow !== 0) {
|
|
88
|
+
const nextRow = findRowWithCells(items, row + dRow, dRow > 0 ? 1 : -1, wrap);
|
|
89
|
+
if (nextRow === -1)
|
|
90
|
+
return;
|
|
91
|
+
const nextCell = closestColumn(getRowPositions(items, nextRow), col);
|
|
92
|
+
if (nextCell != null)
|
|
93
|
+
applyFocus(items, nextCell.row, nextCell.col);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
const rowPositions = getRowPositions(items, row);
|
|
97
|
+
const currentRowIndex = rowPositions.findIndex(position => position.col === col);
|
|
98
|
+
const nextRowIndex = currentRowIndex + dCol;
|
|
99
|
+
if (nextRowIndex >= 0 && nextRowIndex < rowPositions.length) {
|
|
100
|
+
const nextCell = rowPositions[nextRowIndex];
|
|
101
|
+
applyFocus(items, nextCell.row, nextCell.col);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
if (wrap && items.length > 1) {
|
|
105
|
+
const nextRow = findRowWithCells(items, row + dCol, dCol > 0 ? 1 : -1, true);
|
|
106
|
+
if (nextRow === -1)
|
|
107
|
+
return;
|
|
108
|
+
const nextRowPositions = getRowPositions(items, nextRow);
|
|
109
|
+
const nextCell = dCol > 0 ? nextRowPositions[0] : nextRowPositions[nextRowPositions.length - 1];
|
|
110
|
+
applyFocus(items, nextCell.row, nextCell.col);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
const edgeCell = dCol > 0 ? rowPositions[rowPositions.length - 1] : rowPositions[0];
|
|
114
|
+
applyFocus(items, edgeCell.row, edgeCell.col);
|
|
115
|
+
};
|
|
116
|
+
const moveToEdge = (boundary) => {
|
|
117
|
+
const items = resolveItems();
|
|
118
|
+
const positions = getPositions(items);
|
|
119
|
+
if (positions.length === 0)
|
|
120
|
+
return;
|
|
121
|
+
let { row } = resolveGridCurrentPos(items, strategyType, ctrl.root);
|
|
122
|
+
if (row === -1 || getRowPositions(items, row).length === 0)
|
|
123
|
+
row = positions[0].row;
|
|
124
|
+
switch (boundary) {
|
|
125
|
+
case 'row-start': {
|
|
126
|
+
const first = getRowPositions(items, row)[0];
|
|
127
|
+
applyFocus(items, first.row, first.col);
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
case 'row-end': {
|
|
131
|
+
const rowPositions = getRowPositions(items, row);
|
|
132
|
+
const last = rowPositions[rowPositions.length - 1];
|
|
133
|
+
applyFocus(items, last.row, last.col);
|
|
134
|
+
break;
|
|
135
|
+
}
|
|
136
|
+
case 'grid-start':
|
|
137
|
+
applyFocus(items, positions[0].row, positions[0].col);
|
|
138
|
+
break;
|
|
139
|
+
case 'grid-end': {
|
|
140
|
+
const last = positions[positions.length - 1];
|
|
141
|
+
applyFocus(items, last.row, last.col);
|
|
142
|
+
break;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
let lastRepeatTime = 0;
|
|
147
|
+
const withThrottle = (fn) => (e) => {
|
|
148
|
+
if (e.repeat && repeatThrottleMs > 0) {
|
|
149
|
+
const now = Date.now();
|
|
150
|
+
if (now - lastRepeatTime < repeatThrottleMs)
|
|
151
|
+
return;
|
|
152
|
+
lastRepeatTime = now;
|
|
153
|
+
}
|
|
154
|
+
fn();
|
|
155
|
+
};
|
|
156
|
+
ctrl.register(KEYBOARD.ArrowLeft, withThrottle(() => move(0, -1)), { repeat: true });
|
|
157
|
+
ctrl.register(KEYBOARD.ArrowRight, withThrottle(() => move(0, +1)), { repeat: true });
|
|
158
|
+
ctrl.register(KEYBOARD.ArrowUp, withThrottle(() => move(-1, 0)), { repeat: true });
|
|
159
|
+
ctrl.register(KEYBOARD.ArrowDown, withThrottle(() => move(+1, 0)), { repeat: true });
|
|
160
|
+
ctrl.register(KEYBOARD.Home, () => moveToEdge('row-start'));
|
|
161
|
+
ctrl.register(KEYBOARD.End, () => moveToEdge('row-end'));
|
|
162
|
+
ctrl.register(['control', KEYBOARD.Home], () => moveToEdge('grid-start'));
|
|
163
|
+
ctrl.register(['control', KEYBOARD.End], () => moveToEdge('grid-end'));
|
|
164
|
+
if (onActivate != null && activateKeys.length > 0)
|
|
165
|
+
ctrl.register(activateKeys, onActivate);
|
|
166
|
+
if (onPageUp != null)
|
|
167
|
+
ctrl.register(KEYBOARD.PageUp, onPageUp);
|
|
168
|
+
if (onPageDown != null)
|
|
169
|
+
ctrl.register(KEYBOARD.PageDown, onPageDown);
|
|
170
|
+
if (onEscape != null)
|
|
171
|
+
ctrl.register(KEYBOARD.Escape, onEscape);
|
|
172
|
+
if (ctrl.root != null && ctrl.abortController != null) {
|
|
173
|
+
const items = resolveItems();
|
|
174
|
+
const positions = getPositions(items);
|
|
175
|
+
if (positions.length > 0) {
|
|
176
|
+
const selected = initialActiveSelector != null
|
|
177
|
+
? positions.find(position => position.cell.matches(initialActiveSelector))
|
|
178
|
+
: undefined;
|
|
179
|
+
const initial = selected ?? positions[0];
|
|
180
|
+
if (strategyType === FOCUS_STRATEGY.ARIA_ACTIVE_DESCENDANT) {
|
|
181
|
+
applyGridAriaActiveDescendant(items, initial.row, initial.col, ctrl.root, idPrefix);
|
|
182
|
+
const root = ctrl.root;
|
|
183
|
+
const { signal } = ctrl.abortController;
|
|
184
|
+
root.addEventListener('mousedown', (e) => {
|
|
185
|
+
e.preventDefault();
|
|
186
|
+
root.focus();
|
|
187
|
+
}, { signal });
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
initGridRovingTabindex(items, initial.row, initial.col);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { KEYBOARD } from "../../../constants/index";
|
|
2
|
+
import { KEYBOARD_ORIENTATIONS, NAV_BOUNDARY, FOCUS_STRATEGY } from "../_constants";
|
|
3
|
+
import { applyRovingTabindex, initRovingTabindex } from "../focus/roving-tabindex";
|
|
4
|
+
import { applyAriaActiveDescendant } from "../focus/aria-activedescendant";
|
|
5
|
+
import { resolveCurrentIndex } from "../focus/resolve";
|
|
6
|
+
// ─── Setup ────────────────────────────────────────────────────────────────────
|
|
7
|
+
/**
|
|
8
|
+
* Registers all key bindings for linear list navigation on the given controller.
|
|
9
|
+
* Called internally by `KeyboardController.setLinearNavigation`.
|
|
10
|
+
*/
|
|
11
|
+
export function setupLinearNavigation(config, ctrl) {
|
|
12
|
+
const { orientation = KEYBOARD_ORIENTATIONS.BOTH, wrap = true, focusStrategy = { type: FOCUS_STRATEGY.ROVING_TABINDEX }, initialActiveSelector, onNavigate, onItemActive, onActivate, activateKeys = [KEYBOARD.Enter, KEYBOARD.Space], onEscape, repeatThrottleMs = 100, } = config;
|
|
13
|
+
const strategyType = focusStrategy.type;
|
|
14
|
+
const idPrefix = focusStrategy.type === FOCUS_STRATEGY.ARIA_ACTIVE_DESCENDANT
|
|
15
|
+
? (focusStrategy.idPrefix ?? `${ctrl.root?.tagName.toLowerCase() ?? 'bds-nav'}-item`)
|
|
16
|
+
: 'bds-nav-item';
|
|
17
|
+
ctrl.onStrategyResolved(strategyType, idPrefix);
|
|
18
|
+
const resolveItems = typeof config.items === 'function'
|
|
19
|
+
? config.items
|
|
20
|
+
: () => Array.from(ctrl.root?.querySelectorAll(config.items) ?? []);
|
|
21
|
+
let prevIndex = -1;
|
|
22
|
+
const move = (delta, eventTarget) => {
|
|
23
|
+
const items = resolveItems();
|
|
24
|
+
if (items.length === 0)
|
|
25
|
+
return;
|
|
26
|
+
let current = resolveCurrentIndex(items, strategyType, ctrl.root);
|
|
27
|
+
// Fallback: in test environments document.activeElement may not reflect
|
|
28
|
+
// the dispatched event target, so use the event target when current is unresolved.
|
|
29
|
+
if (current === -1 && eventTarget != null) {
|
|
30
|
+
current = items.indexOf(eventTarget);
|
|
31
|
+
}
|
|
32
|
+
let next;
|
|
33
|
+
if (delta === NAV_BOUNDARY.FIRST) {
|
|
34
|
+
next = 0;
|
|
35
|
+
}
|
|
36
|
+
else if (delta === NAV_BOUNDARY.LAST) {
|
|
37
|
+
next = items.length - 1;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
// When current is -1 (nothing active yet), treat as position -1 so
|
|
41
|
+
// +1 lands on 0 and -1 lands on the last item (with wrap) or 0 (no wrap).
|
|
42
|
+
const raw = (current === -1 ? (delta === 1 ? -1 : 0) : current) + delta;
|
|
43
|
+
if (raw < 0)
|
|
44
|
+
next = wrap ? items.length - 1 : 0;
|
|
45
|
+
else if (raw >= items.length)
|
|
46
|
+
next = wrap ? 0 : items.length - 1;
|
|
47
|
+
else
|
|
48
|
+
next = raw;
|
|
49
|
+
}
|
|
50
|
+
// Call onItemActive before focus strategies (so component can update state).
|
|
51
|
+
// Only used with aria-activedescendant since roving-tabindex uses :focus-visible.
|
|
52
|
+
if (onItemActive != null && strategyType === FOCUS_STRATEGY.ARIA_ACTIVE_DESCENDANT) {
|
|
53
|
+
const prevItem = prevIndex >= 0 ? items[prevIndex] : null;
|
|
54
|
+
onItemActive(items[next], prevItem);
|
|
55
|
+
}
|
|
56
|
+
if (onNavigate != null) {
|
|
57
|
+
onNavigate(next, items);
|
|
58
|
+
}
|
|
59
|
+
else if (strategyType === FOCUS_STRATEGY.ARIA_ACTIVE_DESCENDANT) {
|
|
60
|
+
if (ctrl.root != null)
|
|
61
|
+
applyAriaActiveDescendant(items, next, ctrl.root, idPrefix);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
applyRovingTabindex(items, next);
|
|
65
|
+
}
|
|
66
|
+
prevIndex = next;
|
|
67
|
+
};
|
|
68
|
+
const target = (e) => e.target;
|
|
69
|
+
// Throttle for key-repeat: the browser fires repeat events every ~50 ms
|
|
70
|
+
// (20/sec), which is too fast for smooth visual navigation. We limit repeat
|
|
71
|
+
// events to at most one per `repeatThrottleMs` (default 100 ms ≈ 10/sec).
|
|
72
|
+
let lastRepeatTime = 0;
|
|
73
|
+
const withThrottle = (fn) => (e) => {
|
|
74
|
+
if (e.repeat && repeatThrottleMs > 0) {
|
|
75
|
+
const now = Date.now();
|
|
76
|
+
if (now - lastRepeatTime < repeatThrottleMs)
|
|
77
|
+
return;
|
|
78
|
+
lastRepeatTime = now;
|
|
79
|
+
}
|
|
80
|
+
fn(e);
|
|
81
|
+
};
|
|
82
|
+
// Arrow keys always repeat — holding a key navigates continuously.
|
|
83
|
+
if (orientation === KEYBOARD_ORIENTATIONS.HORIZONTAL || orientation === KEYBOARD_ORIENTATIONS.BOTH) {
|
|
84
|
+
ctrl.register(KEYBOARD.ArrowLeft, withThrottle(e => move(-1, target(e))), { repeat: true });
|
|
85
|
+
ctrl.register(KEYBOARD.ArrowRight, withThrottle(e => move(+1, target(e))), { repeat: true });
|
|
86
|
+
}
|
|
87
|
+
if (orientation === KEYBOARD_ORIENTATIONS.VERTICAL || orientation === KEYBOARD_ORIENTATIONS.BOTH) {
|
|
88
|
+
ctrl.register(KEYBOARD.ArrowUp, withThrottle(e => move(-1, target(e))), { repeat: true });
|
|
89
|
+
ctrl.register(KEYBOARD.ArrowDown, withThrottle(e => move(+1, target(e))), { repeat: true });
|
|
90
|
+
}
|
|
91
|
+
ctrl.register(KEYBOARD.Home, () => move(NAV_BOUNDARY.FIRST));
|
|
92
|
+
ctrl.register(KEYBOARD.End, () => move(NAV_BOUNDARY.LAST));
|
|
93
|
+
if (onActivate != null && activateKeys.length > 0)
|
|
94
|
+
ctrl.register(activateKeys, onActivate);
|
|
95
|
+
if (onEscape != null)
|
|
96
|
+
ctrl.register(KEYBOARD.Escape, onEscape);
|
|
97
|
+
if (ctrl.root != null && ctrl.abortController != null) {
|
|
98
|
+
const root = ctrl.root;
|
|
99
|
+
const { signal } = ctrl.abortController;
|
|
100
|
+
if (strategyType === FOCUS_STRATEGY.ARIA_ACTIVE_DESCENDANT) {
|
|
101
|
+
// Keep DOM focus on the container at all times (ARIA APG listbox pattern).
|
|
102
|
+
root.addEventListener('mousedown', (e) => {
|
|
103
|
+
e.preventDefault();
|
|
104
|
+
root.focus();
|
|
105
|
+
}, { signal });
|
|
106
|
+
}
|
|
107
|
+
// Auto-initialize focus state so the component doesn't need to manage
|
|
108
|
+
// tabIndex or aria-activedescendant manually after setLinearNavigation.
|
|
109
|
+
const items = resolveItems();
|
|
110
|
+
if (items.length > 0) {
|
|
111
|
+
let initial = resolveCurrentIndex(items, strategyType, root);
|
|
112
|
+
if (initial === -1 && initialActiveSelector != null) {
|
|
113
|
+
initial = items.findIndex(item => item.matches(initialActiveSelector));
|
|
114
|
+
}
|
|
115
|
+
// For roving-tabindex: always fall back to 0 — something must have tabindex="0".
|
|
116
|
+
// For aria-activedescendant: only initialize if a match was found.
|
|
117
|
+
const initialIndex = initial !== -1 ? initial : strategyType === FOCUS_STRATEGY.ROVING_TABINDEX ? 0 : -1;
|
|
118
|
+
if (initialIndex !== -1) {
|
|
119
|
+
if (onItemActive != null && strategyType === FOCUS_STRATEGY.ARIA_ACTIVE_DESCENDANT) {
|
|
120
|
+
onItemActive(items[initialIndex], null);
|
|
121
|
+
}
|
|
122
|
+
prevIndex = initialIndex;
|
|
123
|
+
if (strategyType === FOCUS_STRATEGY.ARIA_ACTIVE_DESCENDANT) {
|
|
124
|
+
applyAriaActiveDescendant(items, initialIndex, root, idPrefix);
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
initRovingTabindex(items, initialIndex);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
// aria-activedescendant with no pre-selected item: ensure items are not
|
|
132
|
+
// directly focusable (container holds focus via tabindex="0").
|
|
133
|
+
items.forEach(item => item.setAttribute('tabindex', '-1'));
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,14 +1,33 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* Use
|
|
4
|
-
* Each value matches the `KeyboardEvent.key` string as defined by the W3C UI Events specification.
|
|
2
|
+
* Keyboard key values matching `KeyboardEvent.key` exactly (W3C UI Events spec).
|
|
3
|
+
* Use in direct `event.key` comparisons and `.set()` bindings.
|
|
5
4
|
*/
|
|
6
5
|
export const KEYBOARD = {
|
|
7
|
-
|
|
8
|
-
Escape: 'Escape',
|
|
9
|
-
Space: ' ',
|
|
6
|
+
// Navigation
|
|
10
7
|
ArrowUp: 'ArrowUp',
|
|
11
8
|
ArrowDown: 'ArrowDown',
|
|
12
9
|
ArrowLeft: 'ArrowLeft',
|
|
13
10
|
ArrowRight: 'ArrowRight',
|
|
11
|
+
Home: 'Home',
|
|
12
|
+
End: 'End',
|
|
13
|
+
// Action
|
|
14
|
+
Enter: 'Enter',
|
|
15
|
+
Escape: 'Escape',
|
|
16
|
+
Space: ' ',
|
|
17
|
+
Delete: 'Delete',
|
|
18
|
+
Backspace: 'Backspace',
|
|
19
|
+
// Paging
|
|
20
|
+
PageUp: 'PageUp',
|
|
21
|
+
PageDown: 'PageDown',
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Modifier key identifiers in lowercase — match `event.key.toLowerCase()`.
|
|
25
|
+
* Never compared against `event.key` directly; detected via `event.altKey`, `event.ctrlKey`, etc.
|
|
26
|
+
* Use in `.set()` chord bindings: `.set([KEYBOARD_MODIFIERS.Control, KEYBOARD.ArrowRight], handler)`.
|
|
27
|
+
*/
|
|
28
|
+
export const KEYBOARD_MODIFIERS = {
|
|
29
|
+
Alt: 'alt',
|
|
30
|
+
Control: 'control',
|
|
31
|
+
Meta: 'meta',
|
|
32
|
+
Shift: 'shift',
|
|
14
33
|
};
|
|
@@ -20,3 +20,66 @@ export function hasSlotContent(el, slotName) {
|
|
|
20
20
|
return false;
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Method to return clean text from html element, removing extra spaces and line breaks.
|
|
25
|
+
* Removing tags and getting only the text content.
|
|
26
|
+
*
|
|
27
|
+
* @param el - HTML element to extract text from.
|
|
28
|
+
* @returns string with the clean text content of the element.
|
|
29
|
+
*/
|
|
30
|
+
export function getCleanText(el) {
|
|
31
|
+
const textContent = el;
|
|
32
|
+
if (textContent !== null) {
|
|
33
|
+
return textContent.textContent?.trim() || '';
|
|
34
|
+
}
|
|
35
|
+
return '';
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Method to update a property of an HTML element, checking if the element is not null before updating.
|
|
39
|
+
*
|
|
40
|
+
* @param el - HTML element to update.
|
|
41
|
+
* @param prop - Property name to update.
|
|
42
|
+
* @param value - Value to set for the property.
|
|
43
|
+
*/
|
|
44
|
+
export function updateElementProp(el, prop, value) {
|
|
45
|
+
if (el !== null) {
|
|
46
|
+
el[prop] = value;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Method to update an attribute of an HTML element, checking if the element is not null before updating.
|
|
51
|
+
* This method is used to update attributes that are not reflected as properties in the DOM, such as ARIA attributes.
|
|
52
|
+
*
|
|
53
|
+
* @param el - HTML element to update.
|
|
54
|
+
* @param attr - Attribute name to update.
|
|
55
|
+
* @param value - Value to set for the attribute.
|
|
56
|
+
*/
|
|
57
|
+
export function updateElementAttr(el, attr, value) {
|
|
58
|
+
if (el !== null && el !== undefined) {
|
|
59
|
+
el.setAttribute(attr, value);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Method to add an event listener to an HTML element, checking if the element is not null before adding the listener.
|
|
64
|
+
*
|
|
65
|
+
* @param el - HTML element to add the event listener to.
|
|
66
|
+
* @param event - Event name to listen for.
|
|
67
|
+
* @param handler - Event handler function or object to handle the event.
|
|
68
|
+
*/
|
|
69
|
+
export function addElementListener(el, event, handler) {
|
|
70
|
+
if (el !== null && el !== undefined) {
|
|
71
|
+
el.addEventListener(event, handler);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Method to remove an event listener from an HTML element, checking if the element is not null before removing the listener.
|
|
76
|
+
*
|
|
77
|
+
* @param el - HTML element to remove the event listener from.
|
|
78
|
+
* @param event - Event name to stop listening for.
|
|
79
|
+
* @param handler - Event handler function or object that was used to handle the event.
|
|
80
|
+
*/
|
|
81
|
+
export function removeElementListener(el, event, handler) {
|
|
82
|
+
if (el !== null && el !== undefined) {
|
|
83
|
+
el.removeEventListener(event, handler);
|
|
84
|
+
}
|
|
85
|
+
}
|
package/dist/css/boreal.css
CHANGED
|
@@ -507,6 +507,7 @@
|
|
|
507
507
|
--boreal-information-lighter: var(--boreal-color-proximus-cobalt-cobalt-50);
|
|
508
508
|
--boreal-white: var(--boreal-color-proximus-neutral-neutral-50);
|
|
509
509
|
--boreal-black: var(--boreal-color-proximus-onyx-onyx-900);
|
|
510
|
+
--boreal-black-rgb: 28, 31, 34;
|
|
510
511
|
--boreal-focus: var(--boreal-color-proximus-cobalt-cobalt-200);
|
|
511
512
|
--boreal-user-base: var(--boreal-color-proximus-cobalt-cobalt-50);
|
|
512
513
|
--boreal-extended-orange-lighter: var(--boreal-color-engage-orange-orange-5);
|
|
@@ -683,6 +684,20 @@
|
|
|
683
684
|
--boreal-alpha-white-85: #ffffffd9;
|
|
684
685
|
--boreal-alpha-white-90: #ffffffe6;
|
|
685
686
|
--boreal-alpha-white-95: #ffffffe6;
|
|
687
|
+
--boreal-depth-box-shadow-xs: 0 1px 2px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
688
|
+
--boreal-depth-box-shadow-xs-inverse: 0 -1px 2px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
689
|
+
--boreal-depth-box-shadow-s: 0 2px 4px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
690
|
+
--boreal-depth-box-shadow-s-inverse: 0 -2px 4px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
691
|
+
--boreal-depth-box-shadow-m: 0 4px 8px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
692
|
+
--boreal-depth-box-shadow-m-inverse: 0 -4px 8px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
693
|
+
--boreal-depth-box-shadow-l: 0 8px 12px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
694
|
+
--boreal-depth-box-shadow-l-inverse: 0 -8px 12px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
695
|
+
--boreal-depth-box-shadow-xl: 0 12px 16px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
696
|
+
--boreal-depth-box-shadow-xl-inverse: 0 -12px 16px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
697
|
+
--boreal-depth-box-shadow-inset: inset 0 1px 2px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
698
|
+
--boreal-depth-box-shadow-focus: 0 0 0 1px var(--boreal-white), 0 0 0 3px var(--boreal-focus);
|
|
699
|
+
--boreal-depth-box-shadow-active: 0 0 0 1px var(--boreal-white), 0 0 0 3px var(--boreal-focus), inset 0 1px 2px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
700
|
+
--boreal-depth-box-shadow-plain: 0 0 0 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
686
701
|
}
|
|
687
702
|
|
|
688
703
|
[data-theme="engage"] {
|
|
@@ -734,6 +749,7 @@
|
|
|
734
749
|
--boreal-information-lighter: var(--boreal-color-engage-blue-blue-5);
|
|
735
750
|
--boreal-white: var(--boreal-color-engage-ink-ink-0);
|
|
736
751
|
--boreal-black: var(--boreal-color-engage-ink-ink-90);
|
|
752
|
+
--boreal-black-rgb: 19, 19, 22;
|
|
737
753
|
--boreal-focus: var(--boreal-color-engage-blue-blue-20);
|
|
738
754
|
--boreal-user-base: var(--boreal-color-engage-green-green-40);
|
|
739
755
|
--boreal-extended-orange-lighter: var(--boreal-color-engage-orange-orange-5);
|
|
@@ -910,6 +926,20 @@
|
|
|
910
926
|
--boreal-alpha-white-85: #ffffffd9;
|
|
911
927
|
--boreal-alpha-white-90: #ffffffe6;
|
|
912
928
|
--boreal-alpha-white-95: #ffffffe6;
|
|
929
|
+
--boreal-depth-box-shadow-xs: 0 1px 2px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
930
|
+
--boreal-depth-box-shadow-xs-inverse: 0 -1px 2px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
931
|
+
--boreal-depth-box-shadow-s: 0 2px 4px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
932
|
+
--boreal-depth-box-shadow-s-inverse: 0 -2px 4px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
933
|
+
--boreal-depth-box-shadow-m: 0 4px 8px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
934
|
+
--boreal-depth-box-shadow-m-inverse: 0 -4px 8px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
935
|
+
--boreal-depth-box-shadow-l: 0 8px 12px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
936
|
+
--boreal-depth-box-shadow-l-inverse: 0 -8px 12px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
937
|
+
--boreal-depth-box-shadow-xl: 0 12px 16px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
938
|
+
--boreal-depth-box-shadow-xl-inverse: 0 -12px 16px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
939
|
+
--boreal-depth-box-shadow-inset: inset 0 1px 2px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
940
|
+
--boreal-depth-box-shadow-focus: 0 0 0 1px var(--boreal-white), 0 0 0 3px var(--boreal-focus);
|
|
941
|
+
--boreal-depth-box-shadow-active: 0 0 0 1px var(--boreal-white), 0 0 0 3px var(--boreal-focus), inset 0 1px 2px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
942
|
+
--boreal-depth-box-shadow-plain: 0 0 0 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
913
943
|
}
|
|
914
944
|
|
|
915
945
|
[data-theme="protect"] {
|
|
@@ -961,6 +991,7 @@
|
|
|
961
991
|
--boreal-information-lighter: var(--boreal-color-protect-cyan-cyan-50);
|
|
962
992
|
--boreal-white: var(--boreal-color-protect-onyx-onyx-5);
|
|
963
993
|
--boreal-black: var(--boreal-color-protect-onyx-onyx-900);
|
|
994
|
+
--boreal-black-rgb: 14, 14, 44;
|
|
964
995
|
--boreal-focus: var(--boreal-color-protect-cobalt-cobalt-400);
|
|
965
996
|
--boreal-user-base: var(--boreal-color-protect-indigo-indigo-400);
|
|
966
997
|
--boreal-extended-orange-lighter: var(--boreal-color-engage-orange-orange-5);
|
|
@@ -1137,6 +1168,20 @@
|
|
|
1137
1168
|
--boreal-alpha-white-85: #ffffffd9;
|
|
1138
1169
|
--boreal-alpha-white-90: #ffffffe6;
|
|
1139
1170
|
--boreal-alpha-white-95: #ffffffe6;
|
|
1171
|
+
--boreal-depth-box-shadow-xs: 0 1px 2px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1172
|
+
--boreal-depth-box-shadow-xs-inverse: 0 -1px 2px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1173
|
+
--boreal-depth-box-shadow-s: 0 2px 4px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1174
|
+
--boreal-depth-box-shadow-s-inverse: 0 -2px 4px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1175
|
+
--boreal-depth-box-shadow-m: 0 4px 8px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1176
|
+
--boreal-depth-box-shadow-m-inverse: 0 -4px 8px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1177
|
+
--boreal-depth-box-shadow-l: 0 8px 12px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1178
|
+
--boreal-depth-box-shadow-l-inverse: 0 -8px 12px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1179
|
+
--boreal-depth-box-shadow-xl: 0 12px 16px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1180
|
+
--boreal-depth-box-shadow-xl-inverse: 0 -12px 16px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1181
|
+
--boreal-depth-box-shadow-inset: inset 0 1px 2px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1182
|
+
--boreal-depth-box-shadow-focus: 0 0 0 1px var(--boreal-white), 0 0 0 3px var(--boreal-focus);
|
|
1183
|
+
--boreal-depth-box-shadow-active: 0 0 0 1px var(--boreal-white), 0 0 0 3px var(--boreal-focus), inset 0 1px 2px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1184
|
+
--boreal-depth-box-shadow-plain: 0 0 0 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1140
1185
|
}
|
|
1141
1186
|
|
|
1142
1187
|
[data-theme="connect"] {
|
|
@@ -1188,6 +1233,7 @@
|
|
|
1188
1233
|
--boreal-information-lighter: var(--boreal-color-protect-cobalt-cobalt-50);
|
|
1189
1234
|
--boreal-white: var(--boreal-color-connect-black-black-8);
|
|
1190
1235
|
--boreal-black: var(--boreal-color-connect-black-black-1);
|
|
1236
|
+
--boreal-black-rgb: 26, 26, 26;
|
|
1191
1237
|
--boreal-focus: var(--boreal-color-connect-cobalt-cobalt-4);
|
|
1192
1238
|
--boreal-user-base: var(--boreal-color-connect-petrol-petrol-3);
|
|
1193
1239
|
--boreal-extended-orange-lighter: var(--boreal-color-engage-orange-orange-5);
|
|
@@ -1364,6 +1410,20 @@
|
|
|
1364
1410
|
--boreal-alpha-white-85: #ffffffd9;
|
|
1365
1411
|
--boreal-alpha-white-90: #ffffffe6;
|
|
1366
1412
|
--boreal-alpha-white-95: #ffffffe6;
|
|
1413
|
+
--boreal-depth-box-shadow-xs: 0 1px 2px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1414
|
+
--boreal-depth-box-shadow-xs-inverse: 0 -1px 2px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1415
|
+
--boreal-depth-box-shadow-s: 0 2px 4px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1416
|
+
--boreal-depth-box-shadow-s-inverse: 0 -2px 4px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1417
|
+
--boreal-depth-box-shadow-m: 0 4px 8px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1418
|
+
--boreal-depth-box-shadow-m-inverse: 0 -4px 8px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1419
|
+
--boreal-depth-box-shadow-l: 0 8px 12px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1420
|
+
--boreal-depth-box-shadow-l-inverse: 0 -8px 12px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1421
|
+
--boreal-depth-box-shadow-xl: 0 12px 16px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1422
|
+
--boreal-depth-box-shadow-xl-inverse: 0 -12px 16px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1423
|
+
--boreal-depth-box-shadow-inset: inset 0 1px 2px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1424
|
+
--boreal-depth-box-shadow-focus: 0 0 0 1px var(--boreal-white), 0 0 0 3px var(--boreal-focus);
|
|
1425
|
+
--boreal-depth-box-shadow-active: 0 0 0 1px var(--boreal-white), 0 0 0 3px var(--boreal-focus), inset 0 1px 2px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1426
|
+
--boreal-depth-box-shadow-plain: 0 0 0 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
1367
1427
|
}
|
|
1368
1428
|
|
|
1369
1429
|
/* _fonts.scss */
|
|
@@ -47,6 +47,7 @@
|
|
|
47
47
|
--boreal-information-lighter: var(--boreal-color-protect-cobalt-cobalt-50);
|
|
48
48
|
--boreal-white: var(--boreal-color-connect-black-black-8);
|
|
49
49
|
--boreal-black: var(--boreal-color-connect-black-black-1);
|
|
50
|
+
--boreal-black-rgb: 26, 26, 26;
|
|
50
51
|
--boreal-focus: var(--boreal-color-connect-cobalt-cobalt-4);
|
|
51
52
|
--boreal-user-base: var(--boreal-color-connect-petrol-petrol-3);
|
|
52
53
|
--boreal-extended-orange-lighter: var(--boreal-color-engage-orange-orange-5);
|
|
@@ -223,4 +224,18 @@
|
|
|
223
224
|
--boreal-alpha-white-85: #ffffffd9;
|
|
224
225
|
--boreal-alpha-white-90: #ffffffe6;
|
|
225
226
|
--boreal-alpha-white-95: #ffffffe6;
|
|
227
|
+
--boreal-depth-box-shadow-xs: 0 1px 2px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
228
|
+
--boreal-depth-box-shadow-xs-inverse: 0 -1px 2px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
229
|
+
--boreal-depth-box-shadow-s: 0 2px 4px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
230
|
+
--boreal-depth-box-shadow-s-inverse: 0 -2px 4px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
231
|
+
--boreal-depth-box-shadow-m: 0 4px 8px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
232
|
+
--boreal-depth-box-shadow-m-inverse: 0 -4px 8px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
233
|
+
--boreal-depth-box-shadow-l: 0 8px 12px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
234
|
+
--boreal-depth-box-shadow-l-inverse: 0 -8px 12px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
235
|
+
--boreal-depth-box-shadow-xl: 0 12px 16px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
236
|
+
--boreal-depth-box-shadow-xl-inverse: 0 -12px 16px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
237
|
+
--boreal-depth-box-shadow-inset: inset 0 1px 2px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
238
|
+
--boreal-depth-box-shadow-focus: 0 0 0 1px var(--boreal-white), 0 0 0 3px var(--boreal-focus);
|
|
239
|
+
--boreal-depth-box-shadow-active: 0 0 0 1px var(--boreal-white), 0 0 0 3px var(--boreal-focus), inset 0 1px 2px 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
240
|
+
--boreal-depth-box-shadow-plain: 0 0 0 0px rgba(var(--boreal-black-rgb), 0.15);
|
|
226
241
|
}
|