@telesign/boreal-web-components 0.1.0-alpha.3 → 0.1.0-alpha.4
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.d.ts +11 -0
- package/components-build/bds-avatar.js +1 -0
- package/components-build/bds-badge.d.ts +11 -0
- package/components-build/bds-badge.js +1 -0
- package/components-build/bds-banner.js +1 -1
- package/components-build/bds-button.js +1 -1
- package/components-build/bds-checkbox.js +1 -1
- package/components-build/bds-dialog.js +1 -1
- package/components-build/bds-divider.d.ts +11 -0
- package/components-build/bds-divider.js +1 -0
- package/components-build/bds-flag.js +1 -1
- package/components-build/bds-grid-item.d.ts +11 -0
- package/components-build/bds-grid-item.js +1 -0
- package/components-build/bds-grid.d.ts +11 -0
- package/components-build/bds-grid.js +1 -0
- package/components-build/bds-list-menu-item.d.ts +11 -0
- package/components-build/bds-list-menu-item.js +1 -0
- package/components-build/bds-list-menu.d.ts +11 -0
- package/components-build/bds-list-menu.js +1 -0
- package/components-build/bds-popover.js +1 -1
- package/components-build/bds-spinner.js +1 -1
- package/components-build/bds-status.d.ts +11 -0
- package/components-build/bds-status.js +1 -0
- package/components-build/bds-tag.d.ts +11 -0
- package/components-build/bds-tag.js +1 -0
- package/components-build/bds-text-field.js +1 -1
- package/components-build/bds-toggle.d.ts +11 -0
- package/components-build/bds-toggle.js +1 -0
- package/components-build/bds-tooltip.js +1 -1
- package/components-build/bds-typography.js +1 -1
- package/components-build/index.js +1 -1
- package/components-build/p-B8n1ru5i.js +1 -0
- package/components-build/p-Bfazyxqi.js +1 -0
- package/components-build/p-CGdxFth9.js +1 -0
- package/components-build/p-CrAt6pGl.js +1 -0
- package/components-build/p-DCwT43Kz.js +1 -0
- package/components-build/p-DIY3CDNL.js +1 -0
- package/components-build/p-DhSchGPI.js +1 -0
- package/components-build/p-kGnB15Lz.js +1 -0
- package/custom-elements.json +2588 -540
- package/dist/boreal-web-components/boreal-web-components.esm.js +1 -1
- package/dist/boreal-web-components/boreal-web-components.js +1 -1
- package/dist/boreal-web-components/css/boreal.css +1066 -1074
- package/dist/boreal-web-components/css/global.css +403 -407
- package/dist/boreal-web-components/css/theme-connect.css +163 -164
- package/dist/boreal-web-components/css/theme-engage.css +163 -164
- package/dist/boreal-web-components/css/theme-protect.css +163 -164
- package/dist/boreal-web-components/css/theme-proximus.css +164 -165
- package/dist/boreal-web-components/p-0028481c.entry.js +1 -0
- package/dist/boreal-web-components/p-127a4134.entry.js +1 -0
- package/dist/boreal-web-components/p-1466de58.system.entry.js +1 -0
- package/dist/boreal-web-components/p-1d1bb9d2.entry.js +1 -0
- package/dist/boreal-web-components/p-2158a7cd.entry.js +1 -0
- package/dist/boreal-web-components/{p-8c57e06a.entry.js → p-251b3002.entry.js} +1 -1
- package/dist/boreal-web-components/p-251d35df.system.entry.js +1 -0
- package/dist/boreal-web-components/{p-fc2cb919.entry.js → p-2b8bd1dd.entry.js} +1 -1
- package/dist/boreal-web-components/p-32c23246.system.entry.js +1 -0
- package/dist/boreal-web-components/p-3fbcc233.entry.js +1 -0
- package/dist/boreal-web-components/p-401f1aee.system.entry.js +1 -0
- package/dist/boreal-web-components/p-41b48701.system.entry.js +1 -0
- package/dist/boreal-web-components/p-41cac1b8.system.entry.js +1 -0
- package/dist/boreal-web-components/p-44ceff4e.system.entry.js +1 -0
- package/dist/boreal-web-components/{p-efe57901.system.entry.js → p-52600375.system.entry.js} +1 -1
- package/dist/boreal-web-components/p-627b19a5.system.entry.js +1 -0
- package/dist/boreal-web-components/p-649737e5.entry.js +1 -0
- package/dist/boreal-web-components/p-64cb5825.entry.js +1 -0
- package/dist/boreal-web-components/p-66360e63.entry.js +1 -0
- package/dist/boreal-web-components/p-695d0830.entry.js +1 -0
- package/dist/boreal-web-components/p-6a99f4c6.system.entry.js +1 -0
- package/dist/boreal-web-components/p-731b88cc.entry.js +1 -0
- package/dist/boreal-web-components/{p-22378341.system.entry.js → p-74c13bed.system.entry.js} +1 -1
- package/dist/boreal-web-components/p-7a4efddd.system.entry.js +1 -0
- package/dist/boreal-web-components/p-7db870b7.entry.js +1 -0
- package/dist/boreal-web-components/p-7f7ac40f.entry.js +1 -0
- package/dist/boreal-web-components/p-80822731.system.entry.js +1 -0
- package/dist/boreal-web-components/p-82d49661.entry.js +1 -0
- package/dist/boreal-web-components/p-83ca193e.entry.js +1 -0
- package/dist/boreal-web-components/p-871c9a9f.system.entry.js +1 -0
- package/dist/boreal-web-components/p-BQ_zoZa2.js +1 -0
- package/dist/boreal-web-components/p-Bfazyxqi.js +1 -0
- package/dist/boreal-web-components/{p-D4EFsvs1.js → p-BqJlOB6b.js} +2 -2
- package/dist/boreal-web-components/p-BsZkk4oK.system.js +1 -0
- package/dist/boreal-web-components/p-CXz1RLGi.system.js +1 -0
- package/dist/boreal-web-components/p-CtknSula.system.js +1 -0
- package/dist/boreal-web-components/p-CvK2d92c.js +1 -0
- package/dist/boreal-web-components/p-CzYQb3pP.js +1 -0
- package/dist/boreal-web-components/p-DCKg5Cg_.system.js +2 -0
- package/dist/boreal-web-components/p-DZcx75cy.system.js +1 -0
- package/dist/boreal-web-components/p-DhSchGPI.js +1 -0
- package/dist/boreal-web-components/{p-BkDQsB4R.system.js → p-Dme-NuTD.system.js} +1 -1
- package/dist/boreal-web-components/p-RhSdMyWk.system.js +1 -0
- package/dist/boreal-web-components/{p-5fa53a80.system.entry.js → p-ab5ffa15.system.entry.js} +1 -1
- package/dist/boreal-web-components/p-b12d4788.system.entry.js +1 -0
- package/dist/boreal-web-components/p-ba2b625a.system.entry.js +1 -0
- package/dist/boreal-web-components/p-bf2ef10b.entry.js +1 -0
- package/dist/boreal-web-components/{p-6de2b44c.system.entry.js → p-c7aee9f4.system.entry.js} +1 -1
- package/dist/boreal-web-components/p-e0bf8a6e.entry.js +1 -0
- package/dist/boreal-web-components/p-edca16b6.system.entry.js +1 -0
- package/dist/boreal-web-components/p-fc24d963.entry.js +1 -0
- package/dist/boreal-web-components/p-kGnB15Lz.js +1 -0
- package/dist/boreal-web-components/p-vzZJGcYF.system.js +1 -0
- package/dist/boreal-web-components/scss/maps/_primitives.scss +404 -408
- package/dist/boreal-web-components/scss/maps/_theme-connect.scss +164 -165
- package/dist/boreal-web-components/scss/maps/_theme-engage.scss +164 -165
- package/dist/boreal-web-components/scss/maps/_theme-protect.scss +164 -165
- package/dist/boreal-web-components/scss/maps/_theme-proximus.scss +165 -166
- package/dist/boreal-web-components/scss/variables/_primitives.scss +404 -408
- package/dist/boreal-web-components/scss/variables/_theme-connect.scss +164 -165
- package/dist/boreal-web-components/scss/variables/_theme-engage.scss +164 -165
- package/dist/boreal-web-components/scss/variables/_theme-protect.scss +164 -165
- package/dist/boreal-web-components/scss/variables/_theme-proximus.scss +165 -166
- package/dist/cjs/BaseAttributes-DBBhKt7O.js +14 -0
- package/dist/cjs/Keys-DbIXSJF2.js +22 -0
- package/dist/cjs/bds-avatar.cjs.entry.js +89 -0
- package/dist/cjs/bds-badge.cjs.entry.js +50 -0
- package/dist/cjs/bds-banner.cjs.entry.js +12 -5
- package/dist/cjs/bds-button.cjs.entry.js +5 -5
- package/dist/cjs/bds-checkbox.cjs.entry.js +6 -6
- package/dist/cjs/bds-dialog.cjs.entry.js +7 -6
- package/dist/cjs/bds-divider.cjs.entry.js +46 -0
- package/dist/cjs/bds-flag.cjs.entry.js +3 -3
- package/dist/cjs/bds-grid-item.cjs.entry.js +93 -0
- package/dist/cjs/bds-grid.cjs.entry.js +37 -0
- package/dist/cjs/bds-list-menu-item.cjs.entry.js +468 -0
- package/dist/cjs/bds-list-menu.cjs.entry.js +130 -0
- package/dist/cjs/bds-popover.cjs.entry.js +17 -8
- package/dist/cjs/bds-spinner.cjs.entry.js +4 -4
- package/dist/cjs/bds-status.cjs.entry.js +59 -0
- package/dist/cjs/bds-tag.cjs.entry.js +140 -0
- package/dist/cjs/bds-text-field.cjs.entry.js +12 -22
- package/dist/cjs/bds-toggle.cjs.entry.js +186 -0
- package/dist/cjs/bds-tooltip_2.cjs.entry.js +320 -0
- package/dist/cjs/boreal-web-components.cjs.js +2 -2
- package/dist/cjs/{anchored.mixin-CnIwkaUi.js → getOffset-m4hBgyVP.js} +42 -26
- package/dist/cjs/{index-BcSjvXJk.js → index-CwYIVC9N.js} +64 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{states-iIYiazaM.js → states-BweP5Vpu.js} +8 -0
- package/dist/cjs/validateProps-CJe9X5x8.js +42 -0
- package/dist/collection/collection-manifest.json +10 -0
- package/dist/collection/components/actions/bds-button/bds-button.js +2 -2
- package/dist/collection/components/actions/bds-list-menu/bds-list-menu/bds-list-menu.css +25 -0
- package/dist/collection/components/actions/bds-list-menu/bds-list-menu/bds-list-menu.js +301 -0
- package/dist/collection/components/actions/bds-list-menu/bds-list-menu-item/bds-list-menu-item.css +71 -0
- package/dist/collection/components/actions/bds-list-menu/bds-list-menu-item/bds-list-menu-item.js +437 -0
- package/dist/collection/components/actions/bds-list-menu/bds-list-menu-item/types/IListMenuItem.js +1 -0
- package/dist/collection/components/actions/bds-list-menu/bds-list-menu-item/types/enum.js +4 -0
- package/dist/collection/components/actions/bds-list-menu/bds-list-menu-item/types/types.js +1 -0
- package/dist/collection/components/actions/bds-toggle/bds-toggle.css +120 -0
- package/dist/collection/components/actions/bds-toggle/bds-toggle.js +544 -0
- package/dist/collection/components/actions/bds-toggle/types/IEventChange.js +1 -0
- package/dist/collection/components/actions/bds-toggle/types/IToggle.js +1 -0
- package/dist/collection/components/actions/bds-toggle/types/enum.js +4 -0
- package/dist/collection/components/actions/bds-toggle/types/index.js +4 -0
- package/dist/collection/components/actions/bds-toggle/types/types.js +1 -0
- package/dist/collection/components/feedback/bds-badge/bds-badge.css +76 -0
- package/dist/collection/components/feedback/bds-badge/bds-badge.js +120 -0
- package/dist/collection/components/feedback/bds-badge/types/IBadge.js +1 -0
- package/dist/collection/components/feedback/bds-badge/types/enum.js +5 -0
- package/dist/collection/components/feedback/bds-banner/bds-banner.css +1 -2
- package/dist/collection/components/feedback/bds-banner/bds-banner.js +30 -6
- package/dist/collection/components/feedback/bds-spinner/bds-spinner.css +7 -8
- package/dist/collection/components/feedback/bds-spinner/bds-spinner.js +1 -1
- package/dist/collection/components/feedback/bds-status/bds-status.css +101 -0
- package/dist/collection/components/feedback/bds-status/bds-status.js +122 -0
- package/dist/collection/components/feedback/bds-status/types/IStatus.js +1 -0
- package/dist/collection/components/feedback/bds-status/types/enum.js +5 -0
- package/dist/collection/components/feedback/bds-status/types/types.js +1 -0
- package/dist/collection/components/feedback/bds-tag/bds-tag.css +202 -0
- package/dist/collection/components/feedback/bds-tag/bds-tag.js +375 -0
- package/dist/collection/components/feedback/bds-tag/types/ITag.js +1 -0
- package/dist/collection/components/feedback/bds-tag/types/enum.js +10 -0
- package/dist/collection/components/feedback/bds-tag/types/index.js +3 -0
- package/dist/collection/components/feedback/bds-tag/types/types.js +1 -0
- package/dist/collection/components/forms/bds-checkbox/bds-checkbox.js +1 -1
- package/dist/collection/components/forms/bds-flag/bds-flag.js +1 -1
- package/dist/collection/components/forms/bds-text-field/bds-text-field.js +1 -1
- package/dist/collection/components/helpers/bds-divider.css +36 -0
- package/dist/collection/components/helpers/bds-divider.js +88 -0
- package/dist/collection/components/helpers/types/IDivider.js +1 -0
- package/dist/collection/components/helpers/types/enum.js +4 -0
- package/dist/collection/components/helpers/types/types.js +1 -0
- package/dist/collection/components/images-icons/bds-avatar/bds-avatar.css +52 -0
- package/dist/collection/components/images-icons/bds-avatar/bds-avatar.js +219 -0
- package/dist/collection/components/images-icons/bds-avatar/types/IAvatar.js +1 -0
- package/dist/collection/components/images-icons/bds-avatar/types/enum.js +5 -0
- package/dist/collection/components/images-icons/bds-avatar/types/index.js +3 -0
- package/dist/collection/components/images-icons/bds-avatar/types/types.js +1 -0
- package/dist/collection/components/layouts/bds-grid/grid/bds-grid.css +57 -0
- package/dist/collection/components/layouts/bds-grid/grid/bds-grid.js +100 -0
- package/dist/collection/components/layouts/bds-grid/grid/types/IGrid.js +1 -0
- package/dist/collection/components/layouts/bds-grid/grid/types/enum.js +4 -0
- package/dist/collection/components/layouts/bds-grid/grid/types/index.js +3 -0
- package/dist/collection/components/layouts/bds-grid/grid/types/types.js +1 -0
- package/dist/collection/components/layouts/bds-grid/grid-item/bds-grid-item.css +70 -0
- package/dist/collection/components/layouts/bds-grid/grid-item/bds-grid-item.js +306 -0
- package/dist/collection/components/layouts/bds-grid/grid-item/types/IGridItem.js +1 -0
- package/dist/collection/components/layouts/bds-grid/grid-item/types/enum.js +10 -0
- package/dist/collection/components/layouts/bds-grid/grid-item/types/index.js +3 -0
- package/dist/collection/components/layouts/bds-grid/grid-item/types/types.js +1 -0
- package/dist/collection/components/overlays/bds-dialog/bds-dialog.js +4 -3
- package/dist/collection/components/overlays/bds-popover/bds-popover.css +16 -2
- package/dist/collection/components/overlays/bds-popover/bds-popover.js +12 -4
- package/dist/collection/components/overlays/bds-popover/constants/Offset.js +1 -0
- package/dist/collection/components/overlays/bds-tooltip/bds-tooltip.css +2 -13
- package/dist/collection/components/overlays/bds-tooltip/bds-tooltip.js +4 -2
- package/dist/collection/components/overlays/bds-tooltip/constants/Offset.js +1 -0
- package/dist/collection/components/titles-text/bds-typography/bds-typography.css +4 -0
- package/dist/collection/components/titles-text/bds-typography/bds-typography.js +20 -19
- package/dist/collection/components/titles-text/bds-typography/utils/bds-typography-utils.js +2 -2
- package/dist/collection/css/boreal.css +1066 -1074
- package/dist/collection/css/global.css +403 -407
- package/dist/collection/css/theme-connect.css +163 -164
- package/dist/collection/css/theme-engage.css +163 -164
- package/dist/collection/css/theme-protect.css +163 -164
- package/dist/collection/css/theme-proximus.css +164 -165
- package/dist/collection/mixins/anchored.mixin.js +14 -1
- package/dist/collection/mixins/index.js +2 -0
- package/dist/collection/mixins/links.mixin.js +153 -0
- package/dist/collection/mixins/menu-behavior.mixin.js +113 -0
- package/dist/collection/scss/maps/_primitives.scss +404 -408
- package/dist/collection/scss/maps/_theme-connect.scss +164 -165
- package/dist/collection/scss/maps/_theme-engage.scss +164 -165
- package/dist/collection/scss/maps/_theme-protect.scss +164 -165
- package/dist/collection/scss/maps/_theme-proximus.scss +165 -166
- package/dist/collection/scss/variables/_primitives.scss +404 -408
- package/dist/collection/scss/variables/_theme-connect.scss +164 -165
- package/dist/collection/scss/variables/_theme-engage.scss +164 -165
- package/dist/collection/scss/variables/_theme-protect.scss +164 -165
- package/dist/collection/scss/variables/_theme-proximus.scss +165 -166
- package/dist/collection/services/floating/positioning.service.js +1 -1
- package/dist/collection/types/IFormProps.js +1 -0
- package/dist/collection/types/index.js +3 -0
- package/dist/collection/types/links.js +1 -0
- package/dist/collection/types/menu.js +8 -0
- package/dist/collection/types/position.js +6 -2
- package/dist/collection/utils/constants/common/Keys.js +12 -0
- package/dist/collection/utils/helpers/overlays/getOffset.js +13 -0
- package/dist/collection/utils/helpers/validateProps.js +21 -0
- package/dist/collection/utils/index.js +2 -1
- package/dist/collection/utils/menu/index.js +1 -0
- package/dist/collection/utils/menu/menu-item.utils.js +81 -0
- package/dist/collection/utils/{__test__ → testing}/index.js +0 -2
- package/dist/collection/utils/testing/mocks/console.js +30 -0
- package/dist/collection/utils/testing/mocks/index.js +4 -0
- package/dist/css/boreal.css +1066 -1074
- package/dist/css/global.css +403 -407
- package/dist/css/theme-connect.css +163 -164
- package/dist/css/theme-engage.css +163 -164
- package/dist/css/theme-protect.css +163 -164
- package/dist/css/theme-proximus.css +164 -165
- package/dist/esm/BaseAttributes-DhSchGPI.js +12 -0
- package/dist/esm/Keys-CzYQb3pP.js +20 -0
- package/dist/esm/bds-avatar.entry.js +87 -0
- package/dist/esm/bds-badge.entry.js +48 -0
- package/dist/esm/bds-banner.entry.js +12 -5
- package/dist/esm/bds-button.entry.js +5 -5
- package/dist/esm/bds-checkbox.entry.js +3 -3
- package/dist/esm/bds-dialog.entry.js +7 -6
- package/dist/esm/bds-divider.entry.js +44 -0
- package/dist/esm/bds-flag.entry.js +3 -3
- package/dist/esm/bds-grid-item.entry.js +91 -0
- package/dist/esm/bds-grid.entry.js +35 -0
- package/dist/esm/bds-list-menu-item.entry.js +466 -0
- package/dist/esm/bds-list-menu.entry.js +128 -0
- package/dist/esm/bds-popover.entry.js +16 -7
- package/dist/esm/bds-spinner.entry.js +4 -4
- package/dist/esm/bds-status.entry.js +57 -0
- package/dist/esm/bds-tag.entry.js +138 -0
- package/dist/esm/bds-text-field.entry.js +5 -15
- package/dist/esm/bds-toggle.entry.js +184 -0
- package/dist/esm/bds-tooltip_2.entry.js +317 -0
- package/dist/esm/boreal-web-components.js +3 -3
- package/dist/esm/{anchored.mixin-Y3MkGc2X.js → getOffset-DKPjeBHi.js} +40 -25
- package/dist/esm/{index-D4EFsvs1.js → index-BqJlOB6b.js} +64 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{states-BhTPNsBb.js → states-Bfazyxqi.js} +8 -1
- package/dist/esm/validateProps-kGnB15Lz.js +39 -0
- package/dist/esm-es5/BaseAttributes-DhSchGPI.js +1 -0
- package/dist/esm-es5/Keys-CzYQb3pP.js +1 -0
- package/dist/esm-es5/bds-avatar.entry.js +1 -0
- package/dist/esm-es5/bds-badge.entry.js +1 -0
- package/dist/esm-es5/bds-banner.entry.js +1 -1
- package/dist/esm-es5/bds-button.entry.js +1 -1
- 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 -0
- package/dist/esm-es5/bds-flag.entry.js +1 -1
- package/dist/esm-es5/bds-grid-item.entry.js +1 -0
- package/dist/esm-es5/bds-grid.entry.js +1 -0
- package/dist/esm-es5/bds-list-menu-item.entry.js +1 -0
- package/dist/esm-es5/bds-list-menu.entry.js +1 -0
- package/dist/esm-es5/bds-popover.entry.js +1 -1
- package/dist/esm-es5/bds-spinner.entry.js +1 -1
- package/dist/esm-es5/bds-status.entry.js +1 -0
- package/dist/esm-es5/bds-tag.entry.js +1 -0
- package/dist/esm-es5/bds-text-field.entry.js +1 -1
- package/dist/esm-es5/bds-toggle.entry.js +1 -0
- package/dist/esm-es5/bds-tooltip_2.entry.js +1 -0
- package/dist/esm-es5/boreal-web-components.js +1 -1
- package/dist/esm-es5/form-associated.mixin-CvK2d92c.js +1 -0
- package/dist/esm-es5/getOffset-DKPjeBHi.js +1 -0
- package/dist/esm-es5/index-BqJlOB6b.js +2 -0
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/states-Bfazyxqi.js +1 -0
- package/dist/esm-es5/validateProps-kGnB15Lz.js +1 -0
- package/dist/scss/maps/_primitives.scss +404 -408
- package/dist/scss/maps/_theme-connect.scss +164 -165
- package/dist/scss/maps/_theme-engage.scss +164 -165
- package/dist/scss/maps/_theme-protect.scss +164 -165
- package/dist/scss/maps/_theme-proximus.scss +165 -166
- package/dist/scss/variables/_primitives.scss +404 -408
- package/dist/scss/variables/_theme-connect.scss +164 -165
- package/dist/scss/variables/_theme-engage.scss +164 -165
- package/dist/scss/variables/_theme-protect.scss +164 -165
- package/dist/scss/variables/_theme-proximus.scss +165 -166
- package/dist/types/components/actions/bds-list-menu/bds-list-menu/bds-list-menu.d.ts +70 -0
- package/dist/types/components/actions/bds-list-menu/bds-list-menu-item/bds-list-menu-item.d.ts +116 -0
- package/dist/types/components/actions/bds-list-menu/bds-list-menu-item/types/IListMenuItem.d.ts +12 -0
- package/dist/types/components/actions/bds-list-menu/bds-list-menu-item/types/enum.d.ts +5 -0
- package/dist/types/components/actions/bds-list-menu/bds-list-menu-item/types/types.d.ts +3 -0
- package/dist/types/components/actions/bds-toggle/bds-toggle.d.ts +91 -0
- package/dist/types/components/actions/bds-toggle/types/IEventChange.d.ts +5 -0
- package/dist/types/components/actions/bds-toggle/types/IToggle.d.ts +12 -0
- package/dist/types/components/actions/bds-toggle/types/enum.d.ts +5 -0
- package/dist/types/components/actions/bds-toggle/types/index.d.ts +5 -0
- package/dist/types/components/actions/bds-toggle/types/types.d.ts +3 -0
- package/dist/types/components/feedback/bds-badge/bds-badge.d.ts +31 -0
- package/dist/types/components/feedback/bds-badge/types/IBadge.d.ts +6 -0
- package/dist/types/components/feedback/bds-badge/types/enum.d.ts +9 -0
- package/dist/types/components/feedback/bds-banner/bds-banner.d.ts +8 -4
- package/dist/types/components/feedback/bds-status/bds-status.d.ts +26 -0
- package/dist/types/components/feedback/bds-status/types/IStatus.d.ts +7 -0
- package/dist/types/components/feedback/bds-status/types/enum.d.ts +6 -0
- package/dist/types/components/feedback/bds-status/types/types.d.ts +3 -0
- package/dist/types/components/feedback/bds-tag/bds-tag.d.ts +71 -0
- package/dist/types/components/feedback/bds-tag/types/ITag.d.ts +13 -0
- package/dist/types/components/feedback/bds-tag/types/enum.d.ts +11 -0
- package/dist/types/components/feedback/bds-tag/types/index.d.ts +4 -0
- package/dist/types/components/feedback/bds-tag/types/types.d.ts +8 -0
- package/dist/types/components/forms/bds-flag/bds-flag.d.ts +3 -4
- package/dist/types/components/helpers/bds-divider.d.ts +26 -0
- package/dist/types/components/helpers/types/IDivider.d.ts +5 -0
- package/dist/types/components/helpers/types/enum.d.ts +5 -0
- package/dist/types/components/helpers/types/types.d.ts +3 -0
- package/dist/types/components/images-icons/bds-avatar/bds-avatar.d.ts +51 -0
- package/dist/types/components/images-icons/bds-avatar/types/IAvatar.d.ts +9 -0
- package/dist/types/components/images-icons/bds-avatar/types/enum.d.ts +6 -0
- package/dist/types/components/images-icons/bds-avatar/types/index.d.ts +4 -0
- package/dist/types/components/images-icons/bds-avatar/types/types.d.ts +3 -0
- package/dist/types/components/layouts/bds-grid/grid/bds-grid.d.ts +19 -0
- package/dist/types/components/layouts/bds-grid/grid/types/IGrid.d.ts +6 -0
- package/dist/types/components/layouts/bds-grid/grid/types/enum.d.ts +5 -0
- package/dist/types/components/layouts/bds-grid/grid/types/index.d.ts +4 -0
- package/dist/types/components/layouts/bds-grid/grid/types/types.d.ts +3 -0
- package/dist/types/components/layouts/bds-grid/grid-item/bds-grid-item.d.ts +31 -0
- package/dist/types/components/layouts/bds-grid/grid-item/types/IGridItem.d.ts +12 -0
- package/dist/types/components/layouts/bds-grid/grid-item/types/enum.d.ts +11 -0
- package/dist/types/components/layouts/bds-grid/grid-item/types/index.d.ts +4 -0
- package/dist/types/components/layouts/bds-grid/grid-item/types/types.d.ts +3 -0
- package/dist/types/components/overlays/bds-dialog/bds-dialog.d.ts +2 -2
- package/dist/types/components/overlays/bds-popover/bds-popover.d.ts +1 -0
- package/dist/types/components/overlays/bds-popover/constants/Offset.d.ts +2 -0
- package/dist/types/components/overlays/bds-tooltip/bds-tooltip.d.ts +1 -0
- package/dist/types/components/overlays/bds-tooltip/constants/Offset.d.ts +2 -0
- package/dist/types/components/titles-text/bds-typography/bds-typography.d.ts +9 -9
- package/dist/types/components/titles-text/bds-typography/types/ITypography.d.ts +2 -2
- package/dist/types/components/titles-text/bds-typography/utils/bds-typography-utils.d.ts +1 -1
- package/dist/types/components.d.ts +1268 -54
- package/dist/types/mixins/anchored.mixin.d.ts +5 -0
- package/dist/types/mixins/index.d.ts +2 -0
- package/dist/types/mixins/links.mixin.d.ts +85 -0
- package/dist/types/mixins/menu-behavior.mixin.d.ts +91 -0
- package/dist/types/types/IFormProps.d.ts +25 -0
- package/dist/types/types/index.d.ts +3 -0
- package/dist/types/types/links.d.ts +14 -0
- package/dist/types/types/menu.d.ts +16 -0
- package/dist/types/types/position.d.ts +6 -2
- package/dist/types/utils/constants/common/Keys.d.ts +7 -6
- package/dist/types/utils/helpers/overlays/getOffset.d.ts +9 -0
- package/dist/types/utils/helpers/validateProps.d.ts +11 -0
- package/dist/types/utils/index.d.ts +2 -1
- package/dist/types/utils/menu/index.d.ts +2 -0
- package/dist/types/utils/menu/menu-item.utils.d.ts +50 -0
- package/dist/types/utils/{__test__ → testing}/index.d.ts +0 -2
- package/dist/types/utils/{__test__/backdrop-mock.d.ts → testing/mocks/backdrop.d.ts} +1 -1
- package/dist/types/utils/testing/mocks/console.d.ts +17 -0
- package/dist/types/utils/{__test__/mocks/ElementInternals.d.ts → testing/mocks/elementInternals.d.ts} +1 -1
- package/dist/types/utils/testing/mocks/index.d.ts +5 -0
- package/dist/types/utils/{__test__/popover-mock.d.ts → testing/mocks/popover.d.ts} +1 -1
- package/package.json +1 -1
- package/components-build/p-B6R9EVXK.js +0 -1
- package/components-build/p-BSpJ_e9f.js +0 -1
- package/components-build/p-BYEAJCas.js +0 -1
- package/components-build/p-BhTPNsBb.js +0 -1
- package/components-build/p-CYojP4vI.js +0 -1
- package/components-build/p-D5omSME4.js +0 -1
- package/components-build/p-vfAIdwy0.js +0 -1
- package/dist/boreal-web-components/p-07a933df.entry.js +0 -1
- package/dist/boreal-web-components/p-1bb2b33f.entry.js +0 -1
- package/dist/boreal-web-components/p-1fccea3f.system.entry.js +0 -1
- package/dist/boreal-web-components/p-20af732b.system.entry.js +0 -1
- package/dist/boreal-web-components/p-39c26e58.entry.js +0 -1
- package/dist/boreal-web-components/p-6210d025.entry.js +0 -1
- package/dist/boreal-web-components/p-91b9e94e.entry.js +0 -1
- package/dist/boreal-web-components/p-9e06910d.system.entry.js +0 -1
- package/dist/boreal-web-components/p-BIJhHSAt.system.js +0 -1
- package/dist/boreal-web-components/p-BKRyWlfr.js +0 -1
- package/dist/boreal-web-components/p-BhTPNsBb.js +0 -1
- package/dist/boreal-web-components/p-DoDeP7KR.system.js +0 -1
- package/dist/boreal-web-components/p-Dtp4O0H2.system.js +0 -1
- package/dist/boreal-web-components/p-Dy7QKP9e.js +0 -1
- package/dist/boreal-web-components/p-GjKJvOVG.system.js +0 -2
- package/dist/boreal-web-components/p-ac64d4a5.system.entry.js +0 -1
- package/dist/boreal-web-components/p-b61fe06c.entry.js +0 -1
- package/dist/boreal-web-components/p-cdc87437.entry.js +0 -1
- package/dist/boreal-web-components/p-d8ec8557.system.entry.js +0 -1
- package/dist/boreal-web-components/p-ea889727.entry.js +0 -1
- package/dist/boreal-web-components/p-fa327346.system.entry.js +0 -1
- package/dist/boreal-web-components/p-sDZFaZMN.system.js +0 -1
- package/dist/boreal-web-components/p-vfAIdwy0.js +0 -1
- package/dist/cjs/bds-tooltip.cjs.entry.js +0 -152
- package/dist/cjs/bds-typography.cjs.entry.js +0 -168
- package/dist/cjs/validateProps-BNOBk1Xs.js +0 -20
- package/dist/collection/utils/__test__/mocks/index.js +0 -1
- package/dist/esm/bds-tooltip.entry.js +0 -150
- package/dist/esm/bds-typography.entry.js +0 -166
- package/dist/esm/validateProps-vfAIdwy0.js +0 -18
- package/dist/esm-es5/anchored.mixin-Y3MkGc2X.js +0 -1
- package/dist/esm-es5/bds-tooltip.entry.js +0 -1
- package/dist/esm-es5/bds-typography.entry.js +0 -1
- package/dist/esm-es5/index-D4EFsvs1.js +0 -2
- package/dist/esm-es5/internals-Dy7QKP9e.js +0 -1
- package/dist/esm-es5/states-BhTPNsBb.js +0 -1
- package/dist/esm-es5/validateProps-vfAIdwy0.js +0 -1
- package/dist/types/utils/__test__/mocks/index.d.ts +0 -2
- package/dist/cjs/{internals-X77qKxsK.js → form-associated.mixin-DXwvF_vW.js} +30 -30
- package/dist/collection/utils/{__test__ → testing}/constants.js +0 -0
- package/dist/collection/utils/{__test__ → testing}/fixtures.js +0 -0
- package/dist/collection/utils/{__test__ → testing}/helpers.js +0 -0
- package/dist/collection/utils/{__test__/backdrop-mock.js → testing/mocks/backdrop.js} +0 -0
- package/dist/collection/utils/{__test__/mocks/ElementInternals.js → testing/mocks/elementInternals.js} +0 -0
- package/dist/collection/utils/{__test__/popover-mock.js → testing/mocks/popover.js} +0 -0
- package/dist/esm/{internals-Dy7QKP9e.js → form-associated.mixin-CvK2d92c.js} +30 -30
- /package/dist/types/utils/{__test__ → testing}/constants.d.ts +0 -0
- /package/dist/types/utils/{__test__ → testing}/fixtures.d.ts +0 -0
- /package/dist/types/utils/{__test__ → testing}/helpers.d.ts +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { r as registerInstance, h, a as Host, g as getElement } from './index-
|
|
2
|
-
import { v as validatePropValue } from './validateProps-
|
|
1
|
+
import { r as registerInstance, h, a as Host, g as getElement } from './index-BqJlOB6b.js';
|
|
2
|
+
import { v as validatePropValue } from './validateProps-kGnB15Lz.js';
|
|
3
3
|
|
|
4
4
|
const SPINNER_SIZES = {
|
|
5
5
|
SMALL: 'sm',
|
|
@@ -7,7 +7,7 @@ const SPINNER_SIZES = {
|
|
|
7
7
|
LARGE: 'lg',
|
|
8
8
|
};
|
|
9
9
|
|
|
10
|
-
const bdsSpinnerCss = () => `@charset "UTF-8"
|
|
10
|
+
const bdsSpinnerCss = () => `@charset "UTF-8";bds-spinner{display:inline-block;position:relative;width:1em;height:1em}bds-spinner::before,bds-spinner::after{content:"";position:absolute;border-color:transparent transparent var(--boreal-primary-base) transparent;border-radius:50%;border-width:3px;border-style:solid;top:0;left:0;width:100%;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box}bds-spinner::before{opacity:0.2;border-style:dashed;-webkit-animation:spin 0.8s linear infinite;animation:spin 0.8s linear infinite}bds-spinner::after{-webkit-animation:draw-arc 0.8s linear infinite;animation:draw-arc 0.8s linear infinite}.bds-spinner--small{width:var(--boreal-layout-m);height:var(--boreal-layout-m)}.bds-spinner--medium{width:var(--boreal-layout-ml);height:var(--boreal-layout-ml)}.bds-spinner--large{width:var(--boreal-layout-xl);height:var(--boreal-layout-xl)}.bds-spinner__sr-only{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip:rect(0, 0, 0, 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;border:0}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes draw-arc{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}60%{-webkit-transform:rotate(330deg);transform:rotate(330deg)}65%{-webkit-transform:rotate(335deg);transform:rotate(335deg)}90%{-webkit-transform:rotate(350deg);transform:rotate(350deg)}95%{-webkit-transform:rotate(355deg);transform:rotate(355deg)}98%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes draw-arc{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}60%{-webkit-transform:rotate(330deg);transform:rotate(330deg)}65%{-webkit-transform:rotate(335deg);transform:rotate(335deg)}90%{-webkit-transform:rotate(350deg);transform:rotate(350deg)}95%{-webkit-transform:rotate(355deg);transform:rotate(355deg)}98%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}`;
|
|
11
11
|
|
|
12
12
|
const BdsSpinner = class {
|
|
13
13
|
constructor(hostRef) {
|
|
@@ -38,7 +38,7 @@ const BdsSpinner = class {
|
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
40
|
render() {
|
|
41
|
-
return (h(Host, { key: '
|
|
41
|
+
return (h(Host, { key: 'd114eb6445b81a4e7beafd0ff08b8aaf6e1a96e7', class: this.getClassMap, role: "status", "aria-label": this.label, "aria-live": "polite", "aria-busy": "true" }, h("span", { key: 'fa45675b2e258eca9c44a9374a65f26c781343d5', class: "bds-spinner__sr-only" }, this.label)));
|
|
42
42
|
}
|
|
43
43
|
get el() { return getElement(this); }
|
|
44
44
|
static get watchers() { return {
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { r as registerInstance, h, a as Host, g as getElement } from './index-BqJlOB6b.js';
|
|
2
|
+
import { P as PROCESS_STATUS } from './states-Bfazyxqi.js';
|
|
3
|
+
import { v as validatePropValue } from './validateProps-kGnB15Lz.js';
|
|
4
|
+
|
|
5
|
+
const INDICATOR_TYPES = {
|
|
6
|
+
NONE: 'none',
|
|
7
|
+
DOT: 'dot',
|
|
8
|
+
ICON: 'icon',
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const bdsStatusCss = () => `@charset "UTF-8";.bds-status{color:var(--boreal-text-default-ink);text-align:center;font-family:var(--boreal-typography-font-family-primary);font-size:var(--boreal-typography-font-size-xs);font-style:normal;font-weight:var(--boreal-typography-font-weight-semibold);line-height:var(--boreal-typography-line-height-xs);display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;gap:var(--boreal-spacing-3xs);padding:var(--boreal-spacing-3xs) var(--boreal-spacing-xs);min-height:var(--boreal-spacing-ml);border-radius:var(--boreal-radius-xs)}.bds-status>[slot=icon]{display:none}.bds-status--icon>[slot=icon]{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:var(--boreal-layout-s);height:var(--boreal-layout-s)}.bds-status__dot{background-color:var(--boreal-icon-default-light);width:var(--boreal-spacing-xs);height:var(--boreal-spacing-xs);border-radius:var(--boreal-radius-full)}.bds-status--neutral{color:var(--boreal-text-default-ink);background-color:var(--boreal-ui-default-lighter)}.bds-status--neutral>.bds-status__dot{background-color:var(--boreal-icon-default-lighter)}.bds-status--neutral>[slot=icon]{color:var(--boreal-icon-default-lighter)}.bds-status--neutral>.bds-status__dot{background-color:var(--boreal-icon-default-light)}.bds-status--pending{color:var(--boreal-text-warning-dark);background-color:var(--boreal-ui-warning-lighter)}.bds-status--pending>.bds-status__dot{background-color:var(--boreal-icon-warning-base)}.bds-status--pending>[slot=icon]{color:var(--boreal-icon-warning-base)}.bds-status--in-progress{color:var(--boreal-text-information-dark);background-color:var(--boreal-ui-info-lighter)}.bds-status--in-progress>.bds-status__dot{background-color:var(--boreal-icon-info-base)}.bds-status--in-progress>[slot=icon]{color:var(--boreal-icon-info-base)}.bds-status--complete{color:var(--boreal-text-success-dark);background-color:var(--boreal-ui-success-lighter)}.bds-status--complete>.bds-status__dot{background-color:var(--boreal-icon-success-base)}.bds-status--complete>[slot=icon]{color:var(--boreal-icon-success-base)}.bds-status--cancel{color:var(--boreal-text-danger-dark);background-color:var(--boreal-ui-danger-lighter)}.bds-status--cancel>.bds-status__dot{background-color:var(--boreal-icon-danger-base)}.bds-status--cancel>[slot=icon]{color:var(--boreal-icon-danger-base)}`;
|
|
12
|
+
|
|
13
|
+
const BdsStatus = class {
|
|
14
|
+
constructor(hostRef) {
|
|
15
|
+
registerInstance(this, hostRef);
|
|
16
|
+
/** state is a string attribute. Controls the visual state variant of the status badge.
|
|
17
|
+
* Determines the background, accent, and text colors applied to the element.
|
|
18
|
+
* An invalid value falls back to `"neutral"` and a warning is set on the host element. */
|
|
19
|
+
this.state = PROCESS_STATUS.NEUTRAL;
|
|
20
|
+
/** indicator is a string attribute. Controls the type of indicator rendered before the slotted label.
|
|
21
|
+
* An invalid value falls back to `"none"` and a warning is set on the host element. */
|
|
22
|
+
this.indicator = INDICATOR_TYPES.NONE;
|
|
23
|
+
}
|
|
24
|
+
/** Validates the `state` prop against the set of allowed values.
|
|
25
|
+
* Falls back to `"neutral"` when an invalid value is detected. */
|
|
26
|
+
checkPropValues() {
|
|
27
|
+
validatePropValue(Object.values(PROCESS_STATUS), PROCESS_STATUS.NEUTRAL, this.el, 'state');
|
|
28
|
+
validatePropValue(Object.values(INDICATOR_TYPES), INDICATOR_TYPES.NONE, this.el, 'indicator');
|
|
29
|
+
}
|
|
30
|
+
/** Before component rendered */
|
|
31
|
+
componentWillLoad() {
|
|
32
|
+
this.checkPropValues();
|
|
33
|
+
}
|
|
34
|
+
/* Method to get the class map based on the status prop */
|
|
35
|
+
get classMap() {
|
|
36
|
+
return {
|
|
37
|
+
'bds-status': true,
|
|
38
|
+
[`bds-status--${this.state}`]: true,
|
|
39
|
+
[`bds-status--${this.indicator}`]: true,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
render() {
|
|
43
|
+
return (h(Host, { key: '36cf2dfe777002b02d126d38cb9ed2bce3f828a6', class: this.classMap, role: "status" }, this.indicator === INDICATOR_TYPES.DOT ? h("div", { class: "bds-status__dot", "aria-hidden": "true" }) : '', h("slot", { key: '99ab1fa89dc28f3ffca617508b5c577abf874d7a', name: "icon" }), h("slot", { key: '8ff726d294fc524950ac0255c71f4ba65b3c9b96' })));
|
|
44
|
+
}
|
|
45
|
+
get el() { return getElement(this); }
|
|
46
|
+
static get watchers() { return {
|
|
47
|
+
"state": [{
|
|
48
|
+
"checkPropValues": 0
|
|
49
|
+
}],
|
|
50
|
+
"indicator": [{
|
|
51
|
+
"checkPropValues": 0
|
|
52
|
+
}]
|
|
53
|
+
}; }
|
|
54
|
+
};
|
|
55
|
+
BdsStatus.style = bdsStatusCss();
|
|
56
|
+
|
|
57
|
+
export { BdsStatus as bds_status };
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, F as Fragment, a as Host, g as getElement } from './index-BqJlOB6b.js';
|
|
2
|
+
import { c as createId } from './BaseAttributes-DhSchGPI.js';
|
|
3
|
+
import { v as validatePropValue } from './validateProps-kGnB15Lz.js';
|
|
4
|
+
|
|
5
|
+
const TAG_COLORS = {
|
|
6
|
+
GRAY: 'gray',
|
|
7
|
+
CYAN: 'cyan',
|
|
8
|
+
TEAL: 'teal',
|
|
9
|
+
LIME: 'lime',
|
|
10
|
+
ORANGE: 'orange',
|
|
11
|
+
COBALT: 'cobalt',
|
|
12
|
+
ROSE: 'rose',
|
|
13
|
+
PURPLE: 'purple',
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const bdsTagCss = () => `@charset "UTF-8";.bds-tag{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;vertical-align:middle;gap:var(--boreal-spacing-3xs);padding:var(--boreal-spacing-3xs) var(--boreal-spacing-3xs) var(--boreal-spacing-3xs) var(--boreal-spacing-2xs);border-radius:var(--boreal-radius-m);cursor:default;max-width:100%;min-width:0;font-family:var(--boreal-typography-font-family-primary);font-size:var(--boreal-typography-font-size-xs);font-weight:var(--boreal-typography-font-weight-semibold);line-height:var(--boreal-typography-line-height-xs)}.bds-tag:hover:not(.bds-tag--selected):not(.bds-tag--disabled){-webkit-box-shadow:0 1px 2px 0 rgba(19, 19, 22, 0.15);box-shadow:0 1px 2px 0 rgba(19, 19, 22, 0.15)}.bds-tag:focus:not(.bds-tag--selected){outline:none;-webkit-box-shadow:0 0 0 1px var(--boreal-ui-inverse), 0 0 0 3px var(--boreal-stroke-focus);box-shadow:0 0 0 1px var(--boreal-ui-inverse), 0 0 0 3px var(--boreal-stroke-focus)}.bds-tag--selected{outline:none;-webkit-box-shadow:0 0 0 1px var(--boreal-ui-inverse), 0 0 0 3px var(--boreal-stroke-focus), 0 1px 2px 0 rgba(19, 19, 22, 0.15) inset;box-shadow:0 0 0 1px var(--boreal-ui-inverse), 0 0 0 3px var(--boreal-stroke-focus), 0 1px 2px 0 rgba(19, 19, 22, 0.15) inset}.bds-tag__icon{font-size:var(--boreal-typography-font-size-md);max-height:var(--boreal-spacing-m)}.bds-tag__icon:empty{display:none}.bds-tag__text{margin-right:var(--boreal-spacing-2xs);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bds-tag__close-button{display:-ms-flexbox;display:flex;padding:var(--boreal-spacing-3xs);width:var(--boreal-spacing-s);height:var(--boreal-spacing-s);-webkit-box-sizing:content-box;box-sizing:content-box;border-radius:var(--boreal-radius-full);border:0px solid transparent;background-color:transparent;opacity:0.5;cursor:pointer}.bds-tag__close-button:hover{-webkit-box-shadow:0 1px 2px 0 rgba(19, 19, 22, 0.15);box-shadow:0 1px 2px 0 rgba(19, 19, 22, 0.15);background-color:var(--boreal-ui-inverse);opacity:0.5}.bds-tag__close-button:focus{background-color:var(--boreal-ui-inverse);opacity:0.5;outline:none;-webkit-box-shadow:0 0 0 1px var(--boreal-ui-inverse), 0 0 0 3px var(--boreal-stroke-focus), 0 1px 2px 0 rgba(19, 19, 22, 0.15) inset;box-shadow:0 0 0 1px var(--boreal-ui-inverse), 0 0 0 3px var(--boreal-stroke-focus), 0 1px 2px 0 rgba(19, 19, 22, 0.15) inset}.bds-tag__close-button:active{background-color:var(--boreal-ui-inverse);opacity:0.5;-webkit-box-shadow:0 0 0 1px var(--boreal-ui-inverse), 0 0 0 3px var(--boreal-stroke-focus), 0 1px 2px 0 rgba(19, 19, 22, 0.15) inset, 0 1px 2px 0 rgba(19, 19, 22, 0.15) inset;box-shadow:0 0 0 1px var(--boreal-ui-inverse), 0 0 0 3px var(--boreal-stroke-focus), 0 1px 2px 0 rgba(19, 19, 22, 0.15) inset, 0 1px 2px 0 rgba(19, 19, 22, 0.15) inset}.bds-tag--disabled{cursor:not-allowed}.bds-tag--disabled .bds-tag__close-button{pointer-events:none}.bds-tag--gray{background-color:var(--boreal-extended-onyx-light);color:var(--boreal-extended-onyx-dark)}.bds-tag--gray .bds-tag__close-button{color:var(--boreal-extended-onyx-dark)}.bds-tag--gray.bds-tag--disabled{color:var(--boreal-extended-onyx-base);background-color:var(--boreal-extended-onyx-lighter)}.bds-tag--gray.bds-tag--disabled .bds-tag__close-button{color:var(--boreal-extended-onyx-base)}.bds-tag--purple{background-color:var(--boreal-extended-purple-light);color:var(--boreal-extended-purple-dark)}.bds-tag--purple .bds-tag__close-button{color:var(--boreal-extended-purple-dark)}.bds-tag--purple.bds-tag--disabled{color:var(--boreal-extended-purple-light);background-color:var(--boreal-extended-purple-lighter)}.bds-tag--purple.bds-tag--disabled .bds-tag__close-button{color:var(--boreal-extended-purple-light)}.bds-tag--rose{background-color:var(--boreal-extended-rose-light);color:var(--boreal-extended-rose-dark)}.bds-tag--rose .bds-tag__close-button{color:var(--boreal-extended-rose-dark)}.bds-tag--rose.bds-tag--disabled{color:var(--boreal-extended-rose-light);background-color:var(--boreal-extended-rose-lighter)}.bds-tag--rose.bds-tag--disabled .bds-tag__close-button{color:var(--boreal-extended-rose-light)}.bds-tag--lime{background-color:var(--boreal-extended-lime-light);color:var(--boreal-extended-lime-dark)}.bds-tag--lime .bds-tag__close-button{color:var(--boreal-extended-lime-dark)}.bds-tag--lime.bds-tag--disabled{color:var(--boreal-extended-lime-light);background-color:var(--boreal-extended-lime-lighter)}.bds-tag--lime.bds-tag--disabled .bds-tag__close-button{color:var(--boreal-extended-lime-light)}.bds-tag--cobalt{background-color:var(--boreal-extended-cobalt-light);color:var(--boreal-extended-cobalt-dark)}.bds-tag--cobalt .bds-tag__close-button{color:var(--boreal-extended-cobalt-dark)}.bds-tag--cobalt.bds-tag--disabled{color:var(--boreal-extended-cobalt-light);background-color:var(--boreal-extended-cobalt-lighter)}.bds-tag--cobalt.bds-tag--disabled .bds-tag__close-button{color:var(--boreal-extended-cobalt-light)}.bds-tag--orange{background-color:var(--boreal-extended-orange-light);color:var(--boreal-extended-orange-dark)}.bds-tag--orange .bds-tag__close-button{color:var(--boreal-extended-orange-dark)}.bds-tag--orange.bds-tag--disabled{color:var(--boreal-extended-orange-light);background-color:var(--boreal-extended-orange-lighter)}.bds-tag--orange.bds-tag--disabled .bds-tag__close-button{color:var(--boreal-extended-orange-light)}.bds-tag--teal{background-color:var(--boreal-extended-teal-light);color:var(--boreal-extended-teal-dark)}.bds-tag--teal .bds-tag__close-button{color:var(--boreal-extended-teal-dark)}.bds-tag--teal.bds-tag--disabled{color:var(--boreal-extended-teal-light);background-color:var(--boreal-extended-teal-lighter)}.bds-tag--teal.bds-tag--disabled .bds-tag__close-button{color:var(--boreal-extended-teal-light)}.bds-tag--cyan{background-color:var(--boreal-extended-cyan-light);color:var(--boreal-extended-cyan-dark)}.bds-tag--cyan .bds-tag__close-button{color:var(--boreal-extended-cyan-dark)}.bds-tag--cyan.bds-tag--disabled{color:var(--boreal-extended-cyan-light);background-color:var(--boreal-extended-cyan-lighter)}.bds-tag--cyan.bds-tag--disabled .bds-tag__close-button{color:var(--boreal-extended-cyan-light)}`;
|
|
17
|
+
|
|
18
|
+
const BdsTag = class {
|
|
19
|
+
constructor(hostRef) {
|
|
20
|
+
registerInstance(this, hostRef);
|
|
21
|
+
this.bdsClose = createEvent(this, "bdsClose");
|
|
22
|
+
this.bdsSelect = createEvent(this, "bdsSelect");
|
|
23
|
+
this._id = createId('bds-tag');
|
|
24
|
+
this.internalSelected = false;
|
|
25
|
+
/**
|
|
26
|
+
* Whether the tag is selectable or not.
|
|
27
|
+
* @default false
|
|
28
|
+
*/
|
|
29
|
+
this.multiselect = false;
|
|
30
|
+
/**
|
|
31
|
+
* Whether the tag is selected or not.
|
|
32
|
+
* @default false
|
|
33
|
+
*/
|
|
34
|
+
this.selected = false;
|
|
35
|
+
/**
|
|
36
|
+
* Aria label for the close button when visible.
|
|
37
|
+
*/
|
|
38
|
+
this.closeButtonLabel = 'Close tag';
|
|
39
|
+
/**
|
|
40
|
+
* Visual color variant: 'gray', 'cyan', 'cobalt', 'teal', 'lime', 'orange', 'rose', or 'purple'.
|
|
41
|
+
* @default "gray"
|
|
42
|
+
*/
|
|
43
|
+
this.color = TAG_COLORS.GRAY;
|
|
44
|
+
/**
|
|
45
|
+
* Hides the close button that allows users to dismiss the tag.
|
|
46
|
+
* @default false
|
|
47
|
+
*/
|
|
48
|
+
this.readonly = false;
|
|
49
|
+
/**
|
|
50
|
+
* Disables interaction with the tag. Reduces opacity and prevents interactions.
|
|
51
|
+
* @default false
|
|
52
|
+
*/
|
|
53
|
+
this.disabled = false;
|
|
54
|
+
this.handleClose = (e) => {
|
|
55
|
+
if (this.disabled)
|
|
56
|
+
return;
|
|
57
|
+
if (e !== undefined) {
|
|
58
|
+
e.preventDefault();
|
|
59
|
+
e.stopPropagation();
|
|
60
|
+
}
|
|
61
|
+
this.bdsClose.emit({ id: this._id, selected: this.internalSelected, el: this.el });
|
|
62
|
+
};
|
|
63
|
+
this.handleKeyDown = (e) => {
|
|
64
|
+
if (this.disabled)
|
|
65
|
+
return;
|
|
66
|
+
const selectionKeys = [' ', 'Enter'];
|
|
67
|
+
const closeKeys = ['Delete', 'Backspace'];
|
|
68
|
+
if (!this.readonly && closeKeys.includes(e.key)) {
|
|
69
|
+
this.handleClose(e);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (selectionKeys.includes(e.key) && e.target === this.el) {
|
|
73
|
+
e.preventDefault();
|
|
74
|
+
this.handleSelection();
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
this.handleSelection = () => {
|
|
78
|
+
if (this.disabled)
|
|
79
|
+
return;
|
|
80
|
+
if (this.multiselect) {
|
|
81
|
+
this.internalSelected = !this.internalSelected;
|
|
82
|
+
this.bdsSelect.emit({ id: this._id, selected: this.internalSelected, el: this.el });
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
componentWillLoad() {
|
|
87
|
+
this.syncSelectedFromProp(this.selected);
|
|
88
|
+
this.checkPropValues();
|
|
89
|
+
this.validateMultiselectRole();
|
|
90
|
+
}
|
|
91
|
+
checkPropValues() {
|
|
92
|
+
validatePropValue(Object.values(TAG_COLORS), TAG_COLORS.GRAY, this.el, 'color');
|
|
93
|
+
}
|
|
94
|
+
syncSelectedFromProp(newValue) {
|
|
95
|
+
this.internalSelected = newValue;
|
|
96
|
+
}
|
|
97
|
+
validateMultiselectRole() {
|
|
98
|
+
if (!this.multiselect)
|
|
99
|
+
return;
|
|
100
|
+
const VALID_TAG_PARENTS = '[role="listbox"], [role="group"], bds-tag-group';
|
|
101
|
+
const el = this.el;
|
|
102
|
+
if (el.closest(VALID_TAG_PARENTS) === null) {
|
|
103
|
+
console.warn('[BorealDS Tag] Missing required ARIA parent. Expected role="listbox", role="group", or <bds-tag-group> when multiselect=true.');
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
getClasses() {
|
|
107
|
+
return {
|
|
108
|
+
'bds-tag': true,
|
|
109
|
+
[`bds-tag--${this.color}`]: true,
|
|
110
|
+
'bds-tag--disabled': this.disabled,
|
|
111
|
+
'bds-tag--selected': this.internalSelected,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
renderTag() {
|
|
115
|
+
return (h(Fragment, null, h("span", { "aria-hidden": "true", class: "bds-tag__icon" }, h("slot", { name: "icon" })), h("span", { class: "bds-tag__text" }, h("slot", null))));
|
|
116
|
+
}
|
|
117
|
+
renderCloseIcon() {
|
|
118
|
+
return (h("button", { class: "bds-tag__close-button", "aria-label": this.closeButtonLabel, onClick: e => this.handleClose(e), disabled: this.disabled, type: "button" }, h("em", { class: "bds-icon-close", "aria-hidden": "true" })));
|
|
119
|
+
}
|
|
120
|
+
render() {
|
|
121
|
+
const classes = this.getClasses();
|
|
122
|
+
const hasCloseButton = !this.readonly;
|
|
123
|
+
const isSelectable = this.multiselect;
|
|
124
|
+
return (h(Host, { key: '0864f3764aef3354e5b2c7494a5c9c2cb261582f', class: classes, role: isSelectable ? 'option' : undefined, tabIndex: isSelectable && !this.disabled ? 0 : -1, "aria-disabled": this.disabled ? 'true' : undefined, "aria-selected": isSelectable ? `${this.internalSelected}` : undefined, onKeyDown: !this.disabled ? (e) => this.handleKeyDown(e) : undefined, onClick: !this.disabled ? this.handleSelection : undefined, id: this._id }, this.renderTag(), hasCloseButton && this.renderCloseIcon()));
|
|
125
|
+
}
|
|
126
|
+
get el() { return getElement(this); }
|
|
127
|
+
static get watchers() { return {
|
|
128
|
+
"color": [{
|
|
129
|
+
"checkPropValues": 0
|
|
130
|
+
}],
|
|
131
|
+
"selected": [{
|
|
132
|
+
"syncSelectedFromProp": 0
|
|
133
|
+
}]
|
|
134
|
+
}; }
|
|
135
|
+
};
|
|
136
|
+
BdsTag.style = bdsTagCss();
|
|
137
|
+
|
|
138
|
+
export { BdsTag as bds_tag };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { M as Mixin, r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-
|
|
2
|
-
import { f as formAssociatedMixin, s as setFormValue, r as runValidators } from './
|
|
3
|
-
import {
|
|
1
|
+
import { M as Mixin, r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-BqJlOB6b.js';
|
|
2
|
+
import { f as formAssociatedMixin, s as setFormValue, r as runValidators } from './form-associated.mixin-CvK2d92c.js';
|
|
3
|
+
import { c as createId } from './BaseAttributes-DhSchGPI.js';
|
|
4
|
+
import { v as validatePropValue } from './validateProps-kGnB15Lz.js';
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Centralized list of `aria-label` values used by interactive elements.
|
|
@@ -24,17 +25,6 @@ const ICONS = {
|
|
|
24
25
|
SightOff: 'bds-icon-sight-off',
|
|
25
26
|
};
|
|
26
27
|
|
|
27
|
-
/**
|
|
28
|
-
* Generates a stable random ID for internal ARIA linkage.
|
|
29
|
-
* Used by components to wire labels, descriptions, and controls
|
|
30
|
-
* without exposing the ID as a public prop.
|
|
31
|
-
*
|
|
32
|
-
* @param prefix - Component-specific prefix for readability in DevTools.
|
|
33
|
-
*/
|
|
34
|
-
function createId(prefix = 'bds') {
|
|
35
|
-
return `${prefix}-${Math.random().toString(36).substr(2, 9)}`;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
28
|
const TEXT_FIELD_TYPES = {
|
|
39
29
|
TEXT: 'text',
|
|
40
30
|
PASSWORD: 'password',
|
|
@@ -341,7 +331,7 @@ const BdsTextField = class extends Mixin(formAssociatedMixin) {
|
|
|
341
331
|
: this.helperText;
|
|
342
332
|
const showFooter = helperContent !== '' || (this.counter && this.charCount > 0);
|
|
343
333
|
const typographyState = this.isDisabled ? 'disabled' : effectiveError ? 'error' : 'default';
|
|
344
|
-
return (h(Host, { key: '
|
|
334
|
+
return (h(Host, { key: '96b7e057fa7f25e8f7d13b7de0fd17f12de602bb', class: this.classMap, style: this.hostStyle, tabIndex: -1, onFocus: () => !this.readOnly && this.el.querySelector('input')?.focus() }, this.label !== '' && (h("bds-typography", { key: 'e827b43ea347037ff2d404229aaefdd258d2ad22', id: labelId, variant: "label", htmlFor: this._id, required: this.required, tooltipText: this.info !== '' ? this.info : undefined, state: typographyState }, this.label)), h("div", { key: 'f579762db25f65031917874dbb4c2347b5d9f027', class: "bds-text-field__container" }, (this.icon !== '' || this.sublabel !== '') && (h("span", { key: '191d2ccec9baf8b739163eea112dce9a1073f4bd', class: "bds-text-field__sublabel" }, this.icon !== '' && h("em", { key: '1cc1b1b7ece610b2a18ba872c4b7035d2239731b', class: this.icon }), this.sublabel)), h("slot", { key: 'ba7b08573b6ae35c10649125991a2bbed15f31f3', name: "prefix" }), h("input", { key: '6391338c4f636382cf19f888dc810baaf6820c80', id: this._id, class: "bds-text-field__control", "aria-labelledby": this.label !== '' ? labelId : undefined, "aria-describedby": showFooter && helperContent !== '' ? helperId : undefined, "aria-invalid": this.error || this.validationError ? 'true' : undefined, "aria-required": this.required ? 'true' : undefined, type: this.type === TEXT_FIELD_TYPES.PASSWORD && this.showPassword ? TEXT_FIELD_TYPES.TEXT : this.type, value: this.value, disabled: this.isDisabled, readOnly: this.readOnly, tabIndex: this.readOnly ? -1 : undefined, placeholder: this.placeholder, autocomplete: this.autocomplete, pattern: this.pattern !== '' ? this.pattern : undefined, minLength: this.minLength !== 0 ? this.minLength : undefined, maxLength: this.effectiveMaxLength, onMouseDown: (e) => this.handleMouseDown(e), onInput: (e) => this.handleInput(e), onChange: (e) => this.handleChange(e), onFocus: (e) => this.handleFocus(e), onBlur: (e) => this.handleBlur(e) }), (showClear || this.type === TEXT_FIELD_TYPES.PASSWORD) && (h("div", { key: 'e5dc4cab3d536ef09eaeae96ca68a7d4b4e15d92', class: "bds-text-field__actions" }, showClear && (h("button", { key: 'b18d06de000c3ea465be221dcbb77ab49bb3949f', class: "bds-text-field__action bds-text-field__action--clear", type: "button", "aria-label": ARIA_LABELS.Clear, onClick: () => this.handleClear() }, h("em", { key: '0aa5d75c5214b7832a2a2e80a1cd2c42af5bea9a', class: this.iconClear }))), this.type === TEXT_FIELD_TYPES.PASSWORD && (h("button", { key: 'fd97135cca8d32178461bf7109c9b6a7eec543e9', class: "bds-text-field__action bds-text-field__action--password", type: "button", "aria-label": this.showPassword ? ARIA_LABELS.HidePassword : ARIA_LABELS.ShowPassword, onClick: () => this.handleShowPassword() }, h("em", { key: '0de72e7756ad62bbe4fb5f925526071720f358db', class: this.showPasswordIcon })))))), showFooter && (h("div", { key: '9d1c0e8920511650ab6711f2f813c01491d52414', class: "bds-text-field__footer" }, helperContent !== '' && (h("bds-typography", { key: 'f27235a7a38f34b9a9f7bae762c3c6be12acd8b0', id: helperId, variant: "helper", state: typographyState }, helperContent)), this.counter && this.charCount > 0 && (h("span", { key: '3aa43ea8bd6a35963f0983ec8814e0ce19ee71ce', class: "bds-text-field__char-count" }, this.currentCharCount, "/", this.charCount))))));
|
|
345
335
|
}
|
|
346
336
|
static get formAssociated() { return true; }
|
|
347
337
|
get el() { return getElement(this); }
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { M as Mixin, r as registerInstance, c as createEvent, h, a as Host, g as getElement } from './index-BqJlOB6b.js';
|
|
2
|
+
import { f as formAssociatedMixin, s as setFormValue } from './form-associated.mixin-CvK2d92c.js';
|
|
3
|
+
import { a as inheritAriaAttributes } from './attributes-CaHOghy5.js';
|
|
4
|
+
import { c as createId } from './BaseAttributes-DhSchGPI.js';
|
|
5
|
+
|
|
6
|
+
const TOGGLE_PLACEMENT = {
|
|
7
|
+
LEFT: 'left',
|
|
8
|
+
RIGHT: 'right',
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const bdsToggleCss = () => `@charset "UTF-8";.bds-toggle{font-family:var(--boreal-typography-font-family-primary);display:inline-block}.bds-toggle__container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:var(--boreal-spacing-2xs);outline:none;width:-webkit-max-content;width:-moz-max-content;width:max-content}.bds-toggle__container:focus{outline:none}.bds-toggle__container--inverse{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.bds-toggle:active,.bds-toggle:focus-visible{outline:none}.bds-toggle:active .bds-toggle__input:not([disabled])+.bds-toggle__slider,.bds-toggle:focus-visible .bds-toggle__input:not([disabled])+.bds-toggle__slider{-webkit-box-shadow:0 0 0 1px var(--boreal-ui-inverse), 0 0 0 3px var(--boreal-stroke-focus);box-shadow:0 0 0 1px var(--boreal-ui-inverse), 0 0 0 3px var(--boreal-stroke-focus)}.bds-toggle .bds-toggle__input:active:not([disabled])+.bds-toggle__slider,.bds-toggle .bds-toggle__input:focus-visible:not([disabled])+.bds-toggle__slider{-webkit-box-shadow:0 0 0 1px var(--boreal-ui-inverse), 0 0 0 3px var(--boreal-stroke-focus);box-shadow:0 0 0 1px var(--boreal-ui-inverse), 0 0 0 3px var(--boreal-stroke-focus)}.bds-toggle:hover:not(:active):not([checked]):not([disabled]) .bds-toggle__slider,.bds-toggle:hover:not(:active):focus-within:not([checked]) .bds-toggle__slider{-webkit-box-shadow:0 1px 2px 0 var(--boreal-stroke-default-light);box-shadow:0 1px 2px 0 var(--boreal-stroke-default-light)}.bds-toggle__switch{position:relative;display:inline-block;width:var(--boreal-spacing-3xl);height:var(--boreal-spacing-l)}.bds-toggle__input{opacity:0;width:0;height:0}.bds-toggle__input:not(:checked)+.bds-toggle__slider{border:1px solid var(--boreal-stroke-default-light)}.bds-toggle__input:checked+.bds-toggle__slider{background-color:var(--boreal-ui-primary-base)}.bds-toggle__input:checked+.bds-toggle__slider::before{-webkit-transform:translateX(var(--boreal-spacing-l));-ms-transform:translateX(var(--boreal-spacing-l));transform:translateX(var(--boreal-spacing-l))}.bds-toggle__input:disabled+.bds-toggle__slider{background-color:var(--boreal-ui-disabled);cursor:default}.bds-toggle__input:disabled+.bds-toggle__slider::before{background-color:var(--boreal-icon-default-light)}.bds-toggle__input:disabled:checked+.bds-toggle__slider{background-color:var(--boreal-ui-primary-light)}.bds-toggle__input:disabled:checked+.bds-toggle__slider::before{background-color:var(--boreal-icon-inverse)}.bds-toggle__slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--boreal-ui-base-light);-webkit-transition:all 0.4s, border-color 0s;transition:all 0.4s, border-color 0s}.bds-toggle__slider::before{position:absolute;content:"";height:var(--boreal-typography-font-size-md);width:var(--boreal-typography-font-size-md);left:var(--boreal-spacing-2xs);background-color:var(--boreal-text-inverse);bottom:0;top:0;margin:auto;-webkit-transition:0.3s;transition:0.3s}.bds-toggle__slider--round{border-radius:var(--boreal-radius-m)}.bds-toggle__slider--round::before{border-radius:var(--boreal-radius-full)}.bds-toggle__label{font-size:var(--boreal-typography-font-size-sm);color:var(--boreal-text-default)}.bds-toggle__helper-text{display:-ms-flexbox;display:flex;position:relative;color:var(--boreal-text-default-light);font-size:var(--boreal-typography-font-size-xs);margin-top:var(--boreal-spacing-2xs)}`;
|
|
12
|
+
|
|
13
|
+
const BdsToggle = class extends Mixin(formAssociatedMixin) {
|
|
14
|
+
constructor(hostRef) {
|
|
15
|
+
super();
|
|
16
|
+
registerInstance(this, hostRef);
|
|
17
|
+
this.valueChange = createEvent(this, "valueChange");
|
|
18
|
+
this.bdsChange = createEvent(this, "bdsChange");
|
|
19
|
+
if (hostRef.$hostElement$["s-ei"]) {
|
|
20
|
+
this.internals = hostRef.$hostElement$["s-ei"];
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
this.internals = hostRef.$hostElement$.attachInternals();
|
|
24
|
+
hostRef.$hostElement$["s-ei"] = this.internals;
|
|
25
|
+
}
|
|
26
|
+
this.inheritedAttributes = {};
|
|
27
|
+
/** Disables the control. Defaults to `false`. */
|
|
28
|
+
this.disabled = false;
|
|
29
|
+
/** Marks the control as required for form submission. Defaults to `false`. */
|
|
30
|
+
this.required = false;
|
|
31
|
+
/** Tooltip content attached to the label. Rendered via `bds-typography` `tooltipText` prop. */
|
|
32
|
+
this.info = '';
|
|
33
|
+
/** When `true`, applies the error visual state. */
|
|
34
|
+
this.error = false;
|
|
35
|
+
/** Message shown below the input when `error` is `true`. Replaces `helperText`. */
|
|
36
|
+
this.errorMessage = '';
|
|
37
|
+
// ---------------------------------------------------------------------------
|
|
38
|
+
// Props
|
|
39
|
+
// ---------------------------------------------------------------------------
|
|
40
|
+
/** Whether the toggle is on. Defaults to `false`. */
|
|
41
|
+
this.checked = false;
|
|
42
|
+
/**
|
|
43
|
+
* Position of the label relative to the switch.
|
|
44
|
+
* Accepts `TOGGLE_PLACEMENT` values. Defaults to `TOGGLE_PLACEMENT.LEFT`.
|
|
45
|
+
*/
|
|
46
|
+
this.placement = TOGGLE_PLACEMENT.LEFT;
|
|
47
|
+
/** Label displayed next to the toggle. Defaults to `""`. */
|
|
48
|
+
this.label = '';
|
|
49
|
+
/** Help text displayed below the toggle. Defaults to `""`. */
|
|
50
|
+
this.helperText = '';
|
|
51
|
+
/**
|
|
52
|
+
* Value submitted with the form data when checked.
|
|
53
|
+
* Behaves like the `value` attribute of a native `<input type="checkbox">`. Defaults to `"on"`.
|
|
54
|
+
*/
|
|
55
|
+
this.value = 'on';
|
|
56
|
+
this._id = createId('bds-toggle');
|
|
57
|
+
// ---------------------------------------------------------------------------
|
|
58
|
+
// State
|
|
59
|
+
// ---------------------------------------------------------------------------
|
|
60
|
+
/** Internal mirror of the `disabled` prop, kept in sync via `@Watch` and `formDisabledCallback`. */
|
|
61
|
+
this.isDisabled = false;
|
|
62
|
+
/** `true` when the last triggered validation run returned invalid. Drives the error visual state. */
|
|
63
|
+
this.validationError = false;
|
|
64
|
+
/** Error message from the last failed validator. Shown in the footer when `validationError` is `true`. */
|
|
65
|
+
this.validationMessage = '';
|
|
66
|
+
/** Local mirror of the `checked` prop, kept in sync via `@Watch` and `formStateRestoreCallback`. */
|
|
67
|
+
this.isChecked = false;
|
|
68
|
+
this.handleClick = () => this.toggle();
|
|
69
|
+
this.handleKeyDown = (e) => {
|
|
70
|
+
if (e.key === ' ' || e.key === 'Enter') {
|
|
71
|
+
e.preventDefault();
|
|
72
|
+
this.toggle();
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
this.handleInvalid = (e) => {
|
|
76
|
+
e.preventDefault();
|
|
77
|
+
this.validate();
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
// ---------------------------------------------------------------------------
|
|
81
|
+
// Lifecycle
|
|
82
|
+
// ---------------------------------------------------------------------------
|
|
83
|
+
componentWillLoad() {
|
|
84
|
+
this.isChecked = this.checked || false;
|
|
85
|
+
this.isDisabled = this.disabled || false;
|
|
86
|
+
this.inheritedAttributes = { ...inheritAriaAttributes(this.el) };
|
|
87
|
+
this.syncFormValue();
|
|
88
|
+
}
|
|
89
|
+
// ---------------------------------------------------------------------------
|
|
90
|
+
// Watchers
|
|
91
|
+
// ---------------------------------------------------------------------------
|
|
92
|
+
onCheckedChange(newValue) {
|
|
93
|
+
this.isChecked = newValue;
|
|
94
|
+
this.syncFormValue();
|
|
95
|
+
}
|
|
96
|
+
onDisabledChange(next) {
|
|
97
|
+
this.isDisabled = next;
|
|
98
|
+
}
|
|
99
|
+
// ---------------------------------------------------------------------------
|
|
100
|
+
// Form-associated callbacks
|
|
101
|
+
// ---------------------------------------------------------------------------
|
|
102
|
+
formAssociatedCallback() {
|
|
103
|
+
this.syncFormValue();
|
|
104
|
+
}
|
|
105
|
+
formDisabledCallback(disabled) {
|
|
106
|
+
this.isDisabled = disabled;
|
|
107
|
+
}
|
|
108
|
+
formResetCallback() {
|
|
109
|
+
this.isChecked = false;
|
|
110
|
+
this.internals.setValidity({});
|
|
111
|
+
setFormValue(this.internals, null);
|
|
112
|
+
}
|
|
113
|
+
formStateRestoreCallback(state, _mode) {
|
|
114
|
+
this.isChecked = state === this.value;
|
|
115
|
+
this.internals.setValidity({});
|
|
116
|
+
this.syncFormValue();
|
|
117
|
+
}
|
|
118
|
+
// ---------------------------------------------------------------------------
|
|
119
|
+
// Private helpers
|
|
120
|
+
// ---------------------------------------------------------------------------
|
|
121
|
+
syncFormValue() {
|
|
122
|
+
setFormValue(this.internals, this.isChecked ? this.value : null);
|
|
123
|
+
}
|
|
124
|
+
validate() {
|
|
125
|
+
if (!this.isDisabled && this.required && !this.isChecked) {
|
|
126
|
+
const input = this.el.querySelector('input');
|
|
127
|
+
this.validationError = true;
|
|
128
|
+
this.validationMessage = 'This field is required';
|
|
129
|
+
this.internals.setValidity({ valueMissing: true }, this.validationMessage, input ?? this.el);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
this.validationError = false;
|
|
133
|
+
this.validationMessage = '';
|
|
134
|
+
this.internals.setValidity({});
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
toggle() {
|
|
138
|
+
if (this.isDisabled)
|
|
139
|
+
return;
|
|
140
|
+
this.isChecked = !this.isChecked;
|
|
141
|
+
this.syncFormValue();
|
|
142
|
+
this.validate();
|
|
143
|
+
this.valueChange.emit(this.isChecked);
|
|
144
|
+
this.bdsChange.emit({ checked: this.isChecked, value: this.value });
|
|
145
|
+
}
|
|
146
|
+
get containerClasses() {
|
|
147
|
+
return {
|
|
148
|
+
[`bds-toggle__container`]: true,
|
|
149
|
+
[`bds-toggle__container--inverse`]: this.placement === TOGGLE_PLACEMENT.RIGHT,
|
|
150
|
+
[`bds-toggle__container--checked`]: this.isChecked,
|
|
151
|
+
[`bds-toggle__container--disabled`]: this.isDisabled,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
get canShowLabel() {
|
|
155
|
+
return this.label !== undefined && this.label.trim() !== '' && this.label !== undefined && this.label !== null;
|
|
156
|
+
}
|
|
157
|
+
// ---------------------------------------------------------------------------
|
|
158
|
+
// Render
|
|
159
|
+
// ---------------------------------------------------------------------------
|
|
160
|
+
render() {
|
|
161
|
+
const blockClass = 'bds-toggle';
|
|
162
|
+
const effectiveError = this.error || this.validationError;
|
|
163
|
+
const typographyState = this.isDisabled ? 'disabled' : effectiveError ? 'error' : 'default';
|
|
164
|
+
const helperContent = this.error && this.errorMessage !== ''
|
|
165
|
+
? this.errorMessage
|
|
166
|
+
: this.validationError && this.validationMessage !== ''
|
|
167
|
+
? this.validationMessage
|
|
168
|
+
: this.helperText;
|
|
169
|
+
return (h(Host, { key: '8aa5ec26708ce8eb834020353e2e01e882cefad6', ...this.inheritedAttributes, onClick: this.handleClick, onKeyDown: this.handleKeyDown, class: blockClass }, h("div", { key: 'a62ae102ba2167be5e03758c5bfc6197e8f3b73c', part: "container", class: this.containerClasses }, this.canShowLabel && (h("bds-typography", { key: 'c6129d113b083f9db5bad181f5a8cf1ae161b593', variant: "label", class: `${blockClass}__label`, htmlFor: this._id, required: this.required, tooltipText: this.info }, this.label)), h("label", { key: '570a0637d106b24823d39945e1b7a68a4cec4f36', class: `${blockClass}__switch`, htmlFor: this._id, onClick: e => e.preventDefault() }, h("input", { key: '197a94215e42e7a8a9d5a5652ad1163b501799ab', class: `${blockClass}__input`, "aria-invalid": this.error || this.validationError ? 'true' : undefined, "aria-label": this.label || null, id: this._id, type: "checkbox", name: this.name, required: this.required, disabled: this.isDisabled, checked: this.isChecked, onInvalid: this.handleInvalid }), h("span", { key: '09ac81f91f9dc92c4e4cac593db4be4697243ce0', class: `${blockClass}__slider ${blockClass}__slider--round` }))), helperContent !== '' && (h("bds-typography", { key: '4a35755ec9e280dfedb839826683f1272c76223d', class: `${blockClass}__helper-text`, variant: "helper", state: typographyState, onClick: e => e.stopPropagation() }, helperContent))));
|
|
170
|
+
}
|
|
171
|
+
static get formAssociated() { return true; }
|
|
172
|
+
get el() { return getElement(this); }
|
|
173
|
+
static get watchers() { return {
|
|
174
|
+
"checked": [{
|
|
175
|
+
"onCheckedChange": 0
|
|
176
|
+
}],
|
|
177
|
+
"disabled": [{
|
|
178
|
+
"onDisabledChange": 0
|
|
179
|
+
}]
|
|
180
|
+
}; }
|
|
181
|
+
};
|
|
182
|
+
BdsToggle.style = bdsToggleCss();
|
|
183
|
+
|
|
184
|
+
export { BdsToggle as bds_toggle };
|