@telesign/boreal-web-components 0.1.0-alpha.4 → 0.1.0-alpha.5
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-badge.js +1 -1
- package/components-build/bds-banner.js +1 -1
- package/components-build/bds-button-group.d.ts +11 -0
- package/components-build/bds-button-group.js +1 -0
- package/components-build/bds-button.js +1 -1
- package/components-build/bds-checkbox-card.d.ts +11 -0
- package/components-build/bds-checkbox-card.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.d.ts +11 -0
- package/components-build/bds-radio-button.js +1 -0
- package/components-build/bds-radio-card.d.ts +11 -0
- package/components-build/bds-radio-card.js +1 -0
- package/components-build/bds-radio-group.d.ts +11 -0
- package/components-build/bds-radio-group.js +1 -0
- package/components-build/bds-radio.d.ts +11 -0
- package/components-build/bds-radio.js +1 -0
- package/components-build/bds-spinner.js +1 -1
- package/components-build/bds-status.js +1 -1
- 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/index.js +1 -1
- package/components-build/p-BSlaf0ff.js +1 -0
- package/components-build/p-CPvuMm5C.js +1 -0
- package/components-build/p-Cbibqaz0.js +1 -0
- package/components-build/p-ClR-wgiT.js +1 -0
- package/components-build/p-DfaYciGa.js +1 -0
- package/components-build/p-Dh8DSJs_.js +1 -0
- package/components-build/p-N_tqtRV2.js +1 -0
- package/components-build/p-bAMuJ4Jx.js +1 -0
- package/components-build/p-c2z3tneT.js +1 -0
- package/components-build/p-dz9-Q2N8.js +1 -0
- package/{dist/boreal-web-components/p-CaHOghy5.js → components-build/p-fUK0GCeC.js} +1 -1
- package/components-build/p-iq2UuV7c.js +1 -0
- package/components-build/p-nxYzL9uu.js +1 -0
- package/custom-elements.json +2603 -931
- package/dist/boreal-web-components/boreal-web-components.esm.js +1 -1
- package/dist/boreal-web-components/{p-7a4efddd.system.entry.js → p-024d90b0.system.entry.js} +1 -1
- package/dist/boreal-web-components/p-06DrzEMB.system.js +1 -0
- package/dist/boreal-web-components/p-11e4c0ec.system.entry.js +1 -0
- package/dist/boreal-web-components/p-147d6652.system.entry.js +1 -0
- package/dist/boreal-web-components/p-148d510f.entry.js +1 -0
- package/dist/boreal-web-components/{p-2158a7cd.entry.js → p-19f9352d.entry.js} +1 -1
- package/dist/boreal-web-components/{p-41b48701.system.entry.js → p-277f142e.system.entry.js} +1 -1
- package/dist/boreal-web-components/{p-251b3002.entry.js → p-2adf2cd5.entry.js} +1 -1
- package/dist/boreal-web-components/p-2be4aa3a.system.entry.js +1 -0
- package/dist/boreal-web-components/p-340896b2.entry.js +1 -0
- package/dist/boreal-web-components/{p-251d35df.system.entry.js → p-365e8e5c.system.entry.js} +1 -1
- package/dist/boreal-web-components/p-3d4ce8eb.system.entry.js +1 -0
- package/dist/boreal-web-components/p-44a8fde5.entry.js +1 -0
- package/dist/boreal-web-components/{p-52600375.system.entry.js → p-48ebbfbe.system.entry.js} +1 -1
- package/dist/boreal-web-components/{p-ab5ffa15.system.entry.js → p-4dc01078.system.entry.js} +1 -1
- package/dist/boreal-web-components/p-5681b294.system.entry.js +1 -0
- package/dist/boreal-web-components/p-5ed75075.entry.js +1 -0
- package/dist/boreal-web-components/p-635f676b.system.entry.js +1 -0
- package/dist/boreal-web-components/{p-7db870b7.entry.js → p-6629be14.entry.js} +1 -1
- package/dist/boreal-web-components/p-68b83680.system.entry.js +1 -0
- package/dist/boreal-web-components/p-6a60d134.system.entry.js +1 -0
- package/dist/boreal-web-components/{p-66360e63.entry.js → p-71ed1e1d.entry.js} +1 -1
- package/dist/boreal-web-components/{p-b12d4788.system.entry.js → p-732e98f1.system.entry.js} +1 -1
- package/dist/boreal-web-components/{p-80822731.system.entry.js → p-77658a5b.system.entry.js} +1 -1
- package/dist/boreal-web-components/p-7aff4c78.entry.js +1 -0
- package/dist/boreal-web-components/p-7bb88855.entry.js +1 -0
- package/dist/boreal-web-components/p-7d3a8f61.entry.js +1 -0
- package/dist/boreal-web-components/p-7e672cce.entry.js +1 -0
- package/dist/boreal-web-components/{p-1d1bb9d2.entry.js → p-7ebc67c9.entry.js} +1 -1
- package/dist/boreal-web-components/p-81401e2a.system.entry.js +1 -0
- package/dist/boreal-web-components/p-8289e506.entry.js +1 -0
- package/dist/boreal-web-components/p-82d15372.entry.js +1 -0
- package/dist/boreal-web-components/p-851c06f2.entry.js +1 -0
- package/dist/boreal-web-components/p-8a3716ec.entry.js +1 -0
- package/dist/boreal-web-components/p-8f4f8af0.system.entry.js +1 -0
- package/dist/boreal-web-components/{p-871c9a9f.system.entry.js → p-93066db4.system.entry.js} +1 -1
- package/dist/boreal-web-components/p-C-g3hhl_.system.js +1 -0
- package/dist/boreal-web-components/p-C0P3gzq5.system.js +1 -0
- package/dist/boreal-web-components/p-C4HM8wQe.js +1 -0
- package/dist/boreal-web-components/p-CPvuMm5C.js +1 -0
- package/dist/boreal-web-components/p-CRMH6mfq.system.js +1 -0
- package/dist/boreal-web-components/p-CU_dRLdk.system.js +1 -0
- package/dist/boreal-web-components/p-CW4-dkCF.system.js +1 -0
- package/dist/boreal-web-components/{p-BuxZeJbu.system.js → p-DSU8tkVw.system.js} +1 -1
- package/dist/boreal-web-components/p-DYlZcFrB.system.js +1 -0
- package/dist/boreal-web-components/p-DfaYciGa.js +1 -0
- package/dist/boreal-web-components/p-DlVzZK7o.js +1 -0
- package/dist/boreal-web-components/p-DlYG-OVB.js +1 -0
- package/dist/boreal-web-components/p-DnIhjwCH.system.js +1 -0
- package/dist/boreal-web-components/p-DpnBDSUm.system.js +1 -0
- package/dist/boreal-web-components/p-Dwo1hcd9.js +1 -0
- package/{components-build/p-CaHOghy5.js → dist/boreal-web-components/p-U9yfbs7i.js} +1 -1
- package/dist/boreal-web-components/p-a73659ac.system.entry.js +1 -0
- package/dist/boreal-web-components/p-b2ad9535.system.entry.js +1 -0
- package/dist/boreal-web-components/{p-731b88cc.entry.js → p-d4c30d2b.entry.js} +1 -1
- package/dist/boreal-web-components/p-db0c10b9.system.entry.js +1 -0
- package/dist/boreal-web-components/{p-695d0830.entry.js → p-dc7d429c.entry.js} +1 -1
- package/dist/boreal-web-components/p-dca16a3d.entry.js +1 -0
- package/dist/boreal-web-components/p-de846c43.system.entry.js +1 -0
- package/dist/boreal-web-components/p-df087e23.system.entry.js +1 -0
- package/dist/boreal-web-components/p-dfb4854e.entry.js +1 -0
- package/dist/boreal-web-components/p-dz9-Q2N8.js +1 -0
- package/dist/boreal-web-components/p-e09b4d14.system.entry.js +1 -0
- package/dist/boreal-web-components/{p-edca16b6.system.entry.js → p-e0a41cab.system.entry.js} +1 -1
- package/dist/boreal-web-components/{p-127a4134.entry.js → p-e55f2a8b.entry.js} +1 -1
- package/dist/boreal-web-components/p-e7af1e1a.entry.js +1 -0
- package/dist/boreal-web-components/{p-e0bf8a6e.entry.js → p-efe159aa.entry.js} +1 -1
- package/dist/boreal-web-components/{p-44ceff4e.system.entry.js → p-f65e9d0c.system.entry.js} +1 -1
- package/dist/boreal-web-components/p-f792aa74.entry.js +1 -0
- package/dist/boreal-web-components/{p-fc24d963.entry.js → p-fb9a0e94.entry.js} +1 -1
- package/dist/boreal-web-components/p-iq2UuV7c.js +1 -0
- package/dist/boreal-web-components/p-vzZJGcYF.system.js +1 -1
- package/dist/boreal-web-components/p-wREMI3WA.js +1 -0
- package/dist/cjs/Keys-rKl2za5q.js +18 -0
- package/dist/cjs/Logger-DnziItRH.js +51 -0
- package/dist/cjs/{attributes-wIHueigW.js → attributes-CgRFplrN.js} +3 -0
- package/dist/cjs/bds-avatar.cjs.entry.js +2 -2
- package/dist/cjs/bds-badge.cjs.entry.js +1 -1
- package/dist/cjs/bds-banner.cjs.entry.js +2 -2
- package/dist/cjs/bds-button-group.cjs.entry.js +95 -0
- package/dist/cjs/bds-button.cjs.entry.js +7 -13
- package/dist/cjs/bds-checkbox-card.cjs.entry.js +121 -0
- package/dist/cjs/bds-checkbox.cjs.entry.js +13 -6
- package/dist/cjs/bds-dialog.cjs.entry.js +3 -3
- package/dist/cjs/bds-divider.cjs.entry.js +2 -2
- 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 +47 -22
- package/dist/cjs/bds-list-menu.cjs.entry.js +90 -21
- package/dist/cjs/bds-popover.cjs.entry.js +5 -4
- package/dist/cjs/bds-radio-button.cjs.entry.js +60 -0
- package/dist/cjs/bds-radio-card.cjs.entry.js +76 -0
- package/dist/cjs/bds-radio-group.cjs.entry.js +285 -0
- package/dist/cjs/bds-radio.cjs.entry.js +60 -0
- package/dist/cjs/bds-spinner.cjs.entry.js +1 -1
- package/dist/cjs/bds-status.cjs.entry.js +1 -1
- package/dist/cjs/bds-tag.cjs.entry.js +1 -1
- package/dist/cjs/bds-text-field.cjs.entry.js +8 -7
- package/dist/cjs/bds-toggle.cjs.entry.js +6 -5
- package/dist/cjs/bds-tooltip_2.cjs.entry.js +9 -8
- package/dist/cjs/boreal-web-components.cjs.js +1 -1
- package/dist/cjs/coreColors-CQGojc0l.js +10 -0
- package/dist/cjs/{enum-DLblRCkQ.js → enum-DeTWfR0D.js} +3 -3
- package/dist/cjs/form-associated.mixin-BCR6bj29.js +33 -0
- package/dist/cjs/{getOffset-m4hBgyVP.js → getOffset-k4ezB-eT.js} +6 -53
- package/dist/cjs/{form-associated.mixin-DXwvF_vW.js → internals-D8x7GMfR.js} +0 -31
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/menu-BxKaEajh.js +8 -0
- package/dist/cjs/orientation-DQAIleEJ.js +8 -0
- package/dist/collection/collection-manifest.json +7 -1
- package/dist/collection/components/actions/bds-button/bds-button.css +19 -19
- package/dist/collection/components/actions/bds-button/bds-button.js +7 -7
- package/dist/collection/components/actions/bds-button/types/enum.js +3 -3
- package/dist/collection/components/actions/bds-button-group/bds-button-group.css +77 -0
- package/dist/collection/components/actions/bds-button-group/bds-button-group.js +245 -0
- package/dist/collection/components/actions/bds-list-menu/bds-list-menu/bds-list-menu.css +27 -1
- package/dist/collection/components/actions/bds-list-menu/bds-list-menu/bds-list-menu.js +148 -49
- package/dist/collection/components/actions/bds-list-menu/bds-list-menu/types/enum.js +4 -0
- package/dist/collection/components/actions/bds-list-menu/bds-list-menu/types/types.js +1 -0
- package/dist/collection/components/actions/bds-list-menu/bds-list-menu-item/bds-list-menu-item.css +25 -9
- package/dist/collection/components/actions/bds-list-menu/bds-list-menu-item/bds-list-menu-item.js +53 -8
- package/dist/collection/components/actions/bds-toggle/bds-toggle.js +1 -1
- package/dist/collection/components/feedback/bds-badge/bds-badge.js +1 -1
- package/dist/collection/components/feedback/bds-banner/bds-banner.js +1 -1
- package/dist/collection/components/feedback/bds-spinner/bds-spinner.js +1 -1
- package/dist/collection/components/feedback/bds-status/bds-status.js +1 -1
- package/dist/collection/components/feedback/bds-tag/bds-tag.js +1 -1
- package/dist/collection/components/forms/bds-checkbox/bds-checkbox.css +9 -8
- package/dist/collection/components/forms/bds-checkbox/bds-checkbox.js +7 -1
- package/dist/collection/components/forms/bds-checkbox-card/bds-checkbox-card.css +127 -0
- package/dist/collection/components/forms/bds-checkbox-card/bds-checkbox-card.js +397 -0
- package/dist/collection/components/forms/bds-checkbox-card/types/ICheckboxCard.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 +121 -0
- package/dist/collection/components/forms/bds-radio/bds-radio.js +238 -0
- package/dist/collection/components/forms/bds-radio/types/IRadio.js +1 -0
- package/dist/collection/components/forms/bds-radio-button/bds-radio-button.css +109 -0
- package/dist/collection/components/forms/bds-radio-button/bds-radio-button.js +238 -0
- package/dist/collection/components/forms/bds-radio-button/types/IRadioButton.js +1 -0
- package/dist/collection/components/forms/bds-radio-card/bds-radio-card.css +156 -0
- package/dist/collection/components/forms/bds-radio-card/bds-radio-card.js +307 -0
- package/dist/collection/components/forms/bds-radio-card/types/IRadioCard.js +1 -0
- package/dist/collection/components/forms/bds-radio-group/bds-radio-group.css +55 -0
- package/dist/collection/components/forms/bds-radio-group/bds-radio-group.js +620 -0
- package/dist/collection/components/forms/bds-radio-group/types/IRadioGroup.js +1 -0
- package/dist/collection/components/forms/bds-radio-group/types/enum.js +5 -0
- package/dist/collection/components/forms/bds-radio-group/types/types.js +1 -0
- package/dist/collection/components/forms/bds-text-field/bds-text-field.js +1 -1
- package/dist/collection/components/helpers/{bds-divider.css → bds-divider/bds-divider.css} +12 -4
- package/dist/collection/components/helpers/{bds-divider.js → bds-divider/bds-divider.js} +3 -3
- package/dist/collection/components/helpers/bds-divider/types/IDivider.js +1 -0
- package/dist/collection/components/helpers/bds-divider/types/types.js +1 -0
- package/dist/collection/components/images-icons/bds-avatar/bds-avatar.js +1 -1
- package/dist/collection/components/layouts/bds-grid/grid/bds-grid.js +1 -1
- package/dist/collection/components/layouts/bds-grid/grid-item/bds-grid-item.js +1 -1
- package/dist/collection/components/overlays/bds-dialog/bds-dialog.js +2 -2
- package/dist/collection/components/overlays/bds-popover/bds-popover.js +1 -1
- package/dist/collection/components/overlays/bds-tooltip/bds-tooltip.js +3 -3
- package/dist/collection/components/titles-text/bds-typography/bds-typography.css +5 -0
- package/dist/collection/components/titles-text/bds-typography/bds-typography.js +1 -1
- package/dist/collection/mixins/anchored.mixin.js +2 -2
- package/dist/collection/mixins/links.mixin.js +1 -2
- package/dist/collection/mixins/menu-behavior.mixin.js +11 -5
- package/dist/collection/types/index.js +2 -0
- package/dist/collection/types/orientation.js +4 -0
- package/dist/collection/utils/constants/common/Keys.js +10 -24
- package/dist/collection/utils/menu/menu-item.utils.js +9 -8
- package/dist/collection/utils/testing/helpers.js +10 -0
- package/dist/esm/Keys-DlYG-OVB.js +16 -0
- package/dist/esm/Logger-iq2UuV7c.js +49 -0
- package/dist/esm/{attributes-CaHOghy5.js → attributes-U9yfbs7i.js} +3 -0
- package/dist/esm/bds-avatar.entry.js +2 -2
- package/dist/esm/bds-badge.entry.js +1 -1
- package/dist/esm/bds-banner.entry.js +2 -2
- package/dist/esm/bds-button-group.entry.js +93 -0
- package/dist/esm/bds-button.entry.js +5 -11
- package/dist/esm/bds-checkbox-card.entry.js +119 -0
- package/dist/esm/bds-checkbox.entry.js +11 -4
- package/dist/esm/bds-dialog.entry.js +3 -3
- package/dist/esm/bds-divider.entry.js +2 -2
- 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 +47 -22
- package/dist/esm/bds-list-menu.entry.js +90 -21
- package/dist/esm/bds-popover.entry.js +5 -4
- package/dist/esm/bds-radio-button.entry.js +58 -0
- package/dist/esm/bds-radio-card.entry.js +74 -0
- package/dist/esm/bds-radio-group.entry.js +283 -0
- package/dist/esm/bds-radio.entry.js +58 -0
- package/dist/esm/bds-spinner.entry.js +1 -1
- package/dist/esm/bds-status.entry.js +1 -1
- package/dist/esm/bds-tag.entry.js +1 -1
- package/dist/esm/bds-text-field.entry.js +3 -2
- package/dist/esm/bds-toggle.entry.js +4 -3
- package/dist/esm/bds-tooltip_2.entry.js +9 -8
- package/dist/esm/boreal-web-components.js +1 -1
- package/dist/esm/coreColors-Dwo1hcd9.js +8 -0
- package/dist/esm/{enum-C8mRvnTA.js → enum-DlVzZK7o.js} +4 -4
- package/dist/esm/form-associated.mixin-C4HM8wQe.js +31 -0
- package/dist/esm/{getOffset-DKPjeBHi.js → getOffset-BYS3c13B.js} +4 -51
- package/dist/esm/{form-associated.mixin-CvK2d92c.js → internals-DfaYciGa.js} +1 -31
- package/dist/esm/loader.js +1 -1
- package/dist/esm/menu-dz9-Q2N8.js +6 -0
- package/dist/esm/orientation-CPvuMm5C.js +6 -0
- package/dist/esm-es5/Keys-DlYG-OVB.js +1 -0
- package/dist/esm-es5/Logger-iq2UuV7c.js +1 -0
- package/dist/esm-es5/{attributes-CaHOghy5.js → attributes-U9yfbs7i.js} +1 -1
- package/dist/esm-es5/bds-avatar.entry.js +1 -1
- package/dist/esm-es5/bds-badge.entry.js +1 -1
- package/dist/esm-es5/bds-banner.entry.js +1 -1
- package/dist/esm-es5/bds-button-group.entry.js +1 -0
- package/dist/esm-es5/bds-button.entry.js +1 -1
- package/dist/esm-es5/bds-checkbox-card.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 -0
- package/dist/esm-es5/bds-radio-card.entry.js +1 -0
- package/dist/esm-es5/bds-radio-group.entry.js +1 -0
- package/dist/esm-es5/bds-radio.entry.js +1 -0
- package/dist/esm-es5/bds-spinner.entry.js +1 -1
- package/dist/esm-es5/bds-status.entry.js +1 -1
- 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/coreColors-Dwo1hcd9.js +1 -0
- package/dist/esm-es5/enum-DlVzZK7o.js +1 -0
- package/dist/esm-es5/form-associated.mixin-C4HM8wQe.js +1 -0
- package/dist/esm-es5/getOffset-BYS3c13B.js +1 -0
- package/dist/esm-es5/internals-DfaYciGa.js +1 -0
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/menu-dz9-Q2N8.js +1 -0
- package/dist/esm-es5/orientation-CPvuMm5C.js +1 -0
- package/dist/types/components/actions/bds-button/bds-button.d.ts +4 -4
- package/dist/types/components/actions/bds-button/types/enum.d.ts +3 -3
- package/dist/types/components/actions/bds-button-group/bds-button-group.d.ts +36 -0
- package/dist/types/components/actions/bds-button-group/types/IButtonGroup.d.ts +11 -0
- package/dist/types/components/actions/bds-list-menu/bds-list-menu/bds-list-menu.d.ts +19 -15
- package/dist/types/components/actions/bds-list-menu/bds-list-menu/types/IListMenu.d.ts +14 -0
- package/dist/types/components/actions/bds-list-menu/bds-list-menu/types/enum.d.ts +5 -0
- package/dist/types/components/actions/bds-list-menu/bds-list-menu/types/types.d.ts +3 -0
- package/dist/types/components/actions/bds-list-menu/bds-list-menu-item/bds-list-menu-item.d.ts +8 -2
- package/dist/types/components/actions/bds-list-menu/bds-list-menu-item/types/IListMenuItem.d.ts +1 -0
- package/dist/types/components/forms/bds-checkbox/bds-checkbox.d.ts +2 -0
- package/dist/types/components/forms/bds-checkbox-card/bds-checkbox-card.d.ts +70 -0
- package/dist/types/components/forms/bds-checkbox-card/types/ICheckboxCard.d.ts +8 -0
- package/dist/types/components/forms/bds-radio/bds-radio.d.ts +36 -0
- package/dist/types/components/forms/bds-radio/types/IRadio.d.ts +13 -0
- package/dist/types/components/forms/bds-radio-button/bds-radio-button.d.ts +36 -0
- package/dist/types/components/forms/bds-radio-button/types/IRadioButton.d.ts +13 -0
- package/dist/types/components/forms/bds-radio-card/bds-radio-card.d.ts +57 -0
- package/dist/types/components/forms/bds-radio-card/types/IRadioCard.d.ts +14 -0
- package/dist/types/components/forms/bds-radio-group/bds-radio-group.d.ts +82 -0
- package/dist/types/components/forms/bds-radio-group/types/IRadioGroup.d.ts +19 -0
- package/dist/types/components/forms/bds-radio-group/types/enum.d.ts +6 -0
- package/dist/types/components/forms/bds-radio-group/types/types.d.ts +3 -0
- package/dist/types/components.d.ts +941 -63
- package/dist/types/mixins/menu-behavior.mixin.d.ts +5 -1
- package/dist/types/types/index.d.ts +2 -0
- package/dist/types/types/orientation.d.ts +6 -0
- package/dist/types/utils/constants/common/Keys.d.ts +13 -16
- package/dist/types/utils/menu/menu-item.utils.d.ts +2 -2
- package/dist/types/utils/testing/helpers.d.ts +8 -0
- package/package.json +1 -1
- package/components-build/p-B8n1ru5i.js +0 -1
- package/components-build/p-CGdxFth9.js +0 -1
- package/components-build/p-CrAt6pGl.js +0 -1
- package/components-build/p-DCwT43Kz.js +0 -1
- package/components-build/p-DIY3CDNL.js +0 -1
- package/dist/boreal-web-components/p-0028481c.entry.js +0 -1
- package/dist/boreal-web-components/p-1466de58.system.entry.js +0 -1
- package/dist/boreal-web-components/p-2b8bd1dd.entry.js +0 -1
- package/dist/boreal-web-components/p-32c23246.system.entry.js +0 -1
- package/dist/boreal-web-components/p-3fbcc233.entry.js +0 -1
- package/dist/boreal-web-components/p-401f1aee.system.entry.js +0 -1
- package/dist/boreal-web-components/p-41cac1b8.system.entry.js +0 -1
- package/dist/boreal-web-components/p-627b19a5.system.entry.js +0 -1
- package/dist/boreal-web-components/p-649737e5.entry.js +0 -1
- package/dist/boreal-web-components/p-64cb5825.entry.js +0 -1
- package/dist/boreal-web-components/p-6a99f4c6.system.entry.js +0 -1
- package/dist/boreal-web-components/p-74c13bed.system.entry.js +0 -1
- package/dist/boreal-web-components/p-7f7ac40f.entry.js +0 -1
- package/dist/boreal-web-components/p-82d49661.entry.js +0 -1
- package/dist/boreal-web-components/p-83ca193e.entry.js +0 -1
- package/dist/boreal-web-components/p-BQ_zoZa2.js +0 -1
- package/dist/boreal-web-components/p-C8mRvnTA.js +0 -1
- package/dist/boreal-web-components/p-CdKFZYxk.system.js +0 -1
- package/dist/boreal-web-components/p-CtknSula.system.js +0 -1
- package/dist/boreal-web-components/p-CvK2d92c.js +0 -1
- package/dist/boreal-web-components/p-CzYQb3pP.js +0 -1
- package/dist/boreal-web-components/p-DZcx75cy.system.js +0 -1
- package/dist/boreal-web-components/p-Dme-NuTD.system.js +0 -1
- package/dist/boreal-web-components/p-ba2b625a.system.entry.js +0 -1
- package/dist/boreal-web-components/p-bf2ef10b.entry.js +0 -1
- package/dist/boreal-web-components/p-c7aee9f4.system.entry.js +0 -1
- package/dist/cjs/Keys-DbIXSJF2.js +0 -22
- package/dist/esm/Keys-CzYQb3pP.js +0 -20
- package/dist/esm-es5/Keys-CzYQb3pP.js +0 -1
- package/dist/esm-es5/enum-C8mRvnTA.js +0 -1
- package/dist/esm-es5/form-associated.mixin-CvK2d92c.js +0 -1
- package/dist/esm-es5/getOffset-DKPjeBHi.js +0 -1
- /package/dist/collection/components/{helpers/types/IDivider.js → actions/bds-button-group/types/IButtonGroup.js} +0 -0
- /package/dist/collection/components/{helpers/types/types.js → actions/bds-list-menu/bds-list-menu/types/IListMenu.js} +0 -0
- /package/dist/collection/components/helpers/{types → bds-divider/types}/enum.js +0 -0
- /package/dist/types/components/helpers/{bds-divider.d.ts → bds-divider/bds-divider.d.ts} +0 -0
- /package/dist/types/components/helpers/{types → bds-divider/types}/IDivider.d.ts +0 -0
- /package/dist/types/components/helpers/{types → bds-divider/types}/enum.d.ts +0 -0
- /package/dist/types/components/helpers/{types → bds-divider/types}/types.d.ts +0 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index-CwYIVC9N.js');
|
|
4
|
+
|
|
5
|
+
const bdsRadioButtonCss = () => `@charset "UTF-8";.bds-radio-button__info{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}.bds-radio-button{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;gap:var(--boreal-spacing-2xs);padding:var(--boreal-spacing-2xs) var(--boreal-spacing-s);border:1px solid transparent;border-radius:var(--boreal-radius-s);background-color:var(--boreal-ui-default-base);color:var(--boreal-text-default);cursor:pointer;outline:none;-webkit-transition:background-color 0.3s ease, border-color 0.3s ease, -webkit-box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, -webkit-box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, -webkit-box-shadow 0.3s ease}.bds-radio-button input[type=radio]{position:absolute;opacity:0;width:0;height:0;margin:0;pointer-events:none}.bds-radio-button:hover:not(.bds-radio-button--disabled):not(.bds-radio-button--checked):not(.bds-radio-button--error){background-color:var(--boreal-ui-default-lighter);-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-radio-button:focus-visible,.bds-radio-button:focus{z-index:1;background-color:var(--boreal-ui-default-lighter);-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);outline:none}.bds-radio-button:active:not(.bds-radio-button--disabled):not(.bds-radio-button--checked):not(.bds-radio-button--error){z-index:1;background-color:var(--boreal-ui-default-lighter);-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-radio-button--checked{background-color:var(--boreal-ui-inverse);border-color:var(--boreal-stroke-primary-base);color:var(--boreal-text-primary-base)}.bds-radio-button--checked:hover,.bds-radio-button--checked:focus-visible,.bds-radio-button--checked:focus,.bds-radio-button--checked:active{background-color:var(--boreal-ui-primary-lighter)}.bds-radio-button--error{background-color:var(--boreal-ui-inverse);color:var(--boreal-text-danger-base)}.bds-radio-button--error:hover,.bds-radio-button--error:focus-visible,.bds-radio-button--error:focus,.bds-radio-button--error:active{background-color:var(--boreal-ui-danger-lighter)}.bds-radio-button--error.bds-radio-button--checked{border-color:var(--boreal-stroke-danger-base)}.bds-radio-button--disabled{cursor:not-allowed;pointer-events:none;background-color:var(--boreal-ui-inverse);color:var(--boreal-text-disabled)}.bds-radio-button--disabled.bds-radio-button--checked{border-color:var(--boreal-stroke-primary-light);color:var(--boreal-text-primary-light)}.bds-radio-button__label{font-family:var(--boreal-typography-font-family-primary);font-size:var(--boreal-typography-font-size-sm);font-weight:var(--boreal-typography-font-weight-semibold);line-height:var(--boreal-typography-line-height-sm)}.bds-radio-button__icon{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.bds-radio-button__icon:empty{display:none}.bds-radio-button__info-icon{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;font-size:var(--boreal-typography-font-size-sm);line-height:1;color:var(--boreal-icon-default-ink)}`;
|
|
6
|
+
|
|
7
|
+
const BdsRadioButton = class {
|
|
8
|
+
constructor(hostRef) {
|
|
9
|
+
index.registerInstance(this, hostRef);
|
|
10
|
+
this.bdsChange = index.createEvent(this, "bdsChange");
|
|
11
|
+
/** Whether this button is selected. Managed by bds-radio-group; can be set directly when used standalone. */
|
|
12
|
+
this.checked = false;
|
|
13
|
+
/** Disables the button, preventing interaction and selection. */
|
|
14
|
+
this.disabled = false;
|
|
15
|
+
/** Shows error styling on the button. Propagated by bds-radio-group. */
|
|
16
|
+
this.error = false;
|
|
17
|
+
/** Value submitted with the form when this button is selected. */
|
|
18
|
+
this.value = 'on';
|
|
19
|
+
/** Name attribute stamped by the parent bds-radio-group via setAttribute. Set directly when used standalone. */
|
|
20
|
+
this.name = '';
|
|
21
|
+
/** Label text displayed inside the button. Falls back to the default slot when empty. */
|
|
22
|
+
this.label = '';
|
|
23
|
+
/** Tooltip text shown on an info icon next to the label. */
|
|
24
|
+
this.info = '';
|
|
25
|
+
this.handleClick = () => this.select();
|
|
26
|
+
this.handleKeyDown = (event) => {
|
|
27
|
+
if (event.key === ' ') {
|
|
28
|
+
event.preventDefault();
|
|
29
|
+
this.select();
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
componentDidLoad() {
|
|
34
|
+
this.el.setAttribute('role', 'radio');
|
|
35
|
+
this.el.setAttribute('aria-checked', String(this.checked));
|
|
36
|
+
this.el.setAttribute('tabindex', '-1');
|
|
37
|
+
}
|
|
38
|
+
select() {
|
|
39
|
+
if (this.disabled || this.checked)
|
|
40
|
+
return;
|
|
41
|
+
this.checked = true;
|
|
42
|
+
this.el.setAttribute('aria-checked', 'true');
|
|
43
|
+
this.bdsChange.emit({ checked: true, value: this.value });
|
|
44
|
+
}
|
|
45
|
+
get classMap() {
|
|
46
|
+
return {
|
|
47
|
+
'bds-radio-button': true,
|
|
48
|
+
'bds-radio-button--checked': this.checked,
|
|
49
|
+
'bds-radio-button--error': this.error,
|
|
50
|
+
'bds-radio-button--disabled': this.disabled,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
render() {
|
|
54
|
+
return (index.h(index.Host, { key: '63fe01baf9bf2318441f3a742ba857a540f4d7d0', class: this.classMap, onClick: this.handleClick, onKeyDown: this.handleKeyDown }, index.h("input", { key: '19fd44e41ef583131da77206f9e0c987132a5cc4', type: "radio", name: this.name, value: this.value, checked: this.checked, disabled: this.disabled, "aria-hidden": "true", tabIndex: -1, onFocus: () => this.el.focus() }), index.h("span", { key: 'cfbe81b25b71aeda4786b6073c9b16bcc819bf7b', class: "bds-radio-button__icon" }, index.h("slot", { key: 'ffa28a8602ea92c990b3e365d6cd421975f896fc', name: "icon" })), index.h("span", { key: 'c0a6512f836a00718ee71d5542b714900357ac82', class: "bds-radio-button__label" }, this.label || index.h("slot", { key: '29c89fa661270a7cc5ee69eb5c7cbc594af05d40' })), this.info && (index.h("span", { key: '74c3d43733ac679427e1b4fdbfcb4e72dae335a8', class: "bds-radio-button__info" }, index.h("span", { key: '567d225444acc5384df916a16a35867592327895', class: "bds-radio-button__info-icon bds-icon-info-circle", "aria-hidden": "true" }), index.h("bds-tooltip", { key: '8120fe06d5a0f85d03205abc54f3e8112946ad4f' }, this.info)))));
|
|
55
|
+
}
|
|
56
|
+
get el() { return index.getElement(this); }
|
|
57
|
+
};
|
|
58
|
+
BdsRadioButton.style = bdsRadioButtonCss();
|
|
59
|
+
|
|
60
|
+
exports.bds_radio_button = BdsRadioButton;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index-CwYIVC9N.js');
|
|
4
|
+
|
|
5
|
+
const bdsRadioCardCss = () => `@charset "UTF-8";.bds-radio-card--transition{-webkit-transition:background-color 0.3s ease, border-color 0.3s ease, -webkit-box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, -webkit-box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, -webkit-box-shadow 0.3s ease}.bds-radio-card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;cursor:pointer;font-family:var(--boreal-typography-font-family-primary);background-color:var(--boreal-ui-inverse);padding:var(--boreal-spacing-xs) var(--boreal-spacing-s) var(--boreal-spacing-s);border-radius:var(--boreal-radius-xs);border:var(--boreal-spacing-4xs) solid var(--boreal-stroke-default-light)}.bds-radio-card:hover{background-color:var(--boreal-ui-default-lighter);-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-radio-card:focus-within,.bds-radio-card:focus{background-color:var(--boreal-ui-default-lighter);-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-radio-card:focus-visible{outline:none}.bds-radio-card input[type=radio]{position:absolute;opacity:0;width:0;height:0;margin:0;pointer-events:none}.bds-radio-card__container{display:-ms-inline-flexbox;display:inline-flex;gap:var(--boreal-spacing-xs);-ms-flex-align:start;align-items:flex-start}.bds-radio-card__button{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-ms-flex-negative:0;flex-shrink:0;width:var(--bds-radio-button-size, 18px);height:var(--bds-radio-button-size, 18px);margin-top:var(--boreal-spacing-2xs);border-radius:var(--boreal-radius-full);border:var(--boreal-spacing-4xs) solid var(--boreal-stroke-default-light);background-color:var(--boreal-ui-inverse);-webkit-transition:background-color 0.3s ease, border-color 0.3s ease, -webkit-box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, -webkit-box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, -webkit-box-shadow 0.3s ease}.bds-radio-card__dot{width:var(--bds-radio-dot-size, 10px);height:var(--bds-radio-dot-size, 10px);border-radius:var(--boreal-radius-full);background-color:transparent;-webkit-transition:background-color 0.3s ease, border-color 0.3s ease, -webkit-box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, -webkit-box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, -webkit-box-shadow 0.3s ease}.bds-radio-card__header{display:-ms-inline-flexbox;display:inline-flex;gap:var(--boreal-spacing-3xs);color:var(--boreal-text-default)}.bds-radio-card__title{font-weight:var(--boreal-typography-font-weight-semibold);font-size:var(--boreal-typography-font-size-md);line-height:var(--boreal-typography-line-height-md)}.bds-radio-card__info-icon{font-size:var(--boreal-typography-font-size-xs);color:var(--boreal-icon-default-light)}.bds-radio-card__icon:empty{display:none}.bds-radio-card:has(.bds-radio-card__description:empty) .bds-radio-card__container{-ms-flex-align:center;align-items:center}.bds-radio-card:has(.bds-radio-card__description:empty) .bds-radio-card__content{height:var(--boreal-spacing-l)}.bds-radio-card:has(.bds-radio-card__description:empty) .bds-radio-card__button{margin-top:0}.bds-radio-card--checked{border-color:var(--boreal-stroke-primary-base)}.bds-radio-card--checked:hover,.bds-radio-card--checked:focus,.bds-radio-card--checked:focus-within,.bds-radio-card--checked:active{background-color:var(--boreal-ui-primary-lighter)}.bds-radio-card--checked .bds-radio-card__button{border-color:var(--boreal-stroke-primary-base)}.bds-radio-card--checked .bds-radio-card__dot{background-color:var(--boreal-ui-primary-base)}.bds-radio-card--checked .bds-radio-card__header,.bds-radio-card--checked .bds-radio-card__description{color:var(--boreal-text-primary-base)}.bds-radio-card--disabled{pointer-events:none}.bds-radio-card--disabled .bds-radio-card__header,.bds-radio-card--disabled .bds-radio-card__description{color:var(--boreal-text-disabled)}.bds-radio-card--disabled:not(.bds-radio-card--checked) .bds-radio-card__button{background-color:var(--boreal-ui-disabled)}.bds-radio-card--disabled.bds-radio-card--checked,.bds-radio-card--disabled.bds-radio-card--checked .bds-radio-card__button{border-color:var(--boreal-ui-primary-light)}.bds-radio-card--disabled.bds-radio-card--checked .bds-radio-card__dot{background-color:var(--boreal-ui-primary-light)}.bds-radio-card--disabled.bds-radio-card--checked .bds-radio-card__header,.bds-radio-card--disabled.bds-radio-card--checked .bds-radio-card__description{color:var(--boreal-ui-primary-light)}.bds-radio-card--error{border-color:var(--boreal-stroke-danger-base)}.bds-radio-card--error:hover,.bds-radio-card--error:focus,.bds-radio-card--error:focus-within,.bds-radio-card--error:active{background-color:var(--boreal-ui-danger-lighter)}.bds-radio-card--error .bds-radio-card__header,.bds-radio-card--error .bds-radio-card__description{color:var(--boreal-text-danger-base)}.bds-radio-card--error .bds-radio-card__button{border-color:var(--boreal-stroke-danger-base)}.bds-radio-card--error.bds-radio-card--checked .bds-radio-card__dot{background-color:var(--boreal-ui-danger-base)}`;
|
|
6
|
+
|
|
7
|
+
const BdsRadioCard = class {
|
|
8
|
+
constructor(hostRef) {
|
|
9
|
+
index.registerInstance(this, hostRef);
|
|
10
|
+
this.bdsChange = index.createEvent(this, "bdsChange");
|
|
11
|
+
/**
|
|
12
|
+
* Value submitted with the form when this radio is selected.
|
|
13
|
+
*/
|
|
14
|
+
this.value = 'on';
|
|
15
|
+
/**
|
|
16
|
+
* Tooltip content attached to the radio card content. If empty, the info icon will not be rendered.
|
|
17
|
+
*/
|
|
18
|
+
this.info = '';
|
|
19
|
+
/**
|
|
20
|
+
* Name attribute stamped by the parent bds-radio-group. Set directly when used standalone.
|
|
21
|
+
*/
|
|
22
|
+
this.name = '';
|
|
23
|
+
/**
|
|
24
|
+
* Label text displayed next to the radio indicator. Falls back to the default slot when empty.
|
|
25
|
+
*/
|
|
26
|
+
this.label = '';
|
|
27
|
+
/**
|
|
28
|
+
* Whether this radio card is selected. Managed by bds-radio-group; can be set directly when used standalone.
|
|
29
|
+
*/
|
|
30
|
+
this.checked = false;
|
|
31
|
+
/**
|
|
32
|
+
* Disables the radio card, preventing it from being selected and interacted with.
|
|
33
|
+
*/
|
|
34
|
+
this.disabled = false;
|
|
35
|
+
/**
|
|
36
|
+
* Whether the radio card is in an error state.
|
|
37
|
+
*/
|
|
38
|
+
this.error = false;
|
|
39
|
+
this.handleClick = () => this.select();
|
|
40
|
+
this.handleKeyDown = (event) => {
|
|
41
|
+
if (event.key === ' ') {
|
|
42
|
+
event.preventDefault();
|
|
43
|
+
this.select();
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
select() {
|
|
48
|
+
if (this.disabled || this.checked)
|
|
49
|
+
return;
|
|
50
|
+
this.checked = true;
|
|
51
|
+
this.bdsChange.emit({ checked: true, value: this.value });
|
|
52
|
+
}
|
|
53
|
+
componentDidLoad() {
|
|
54
|
+
requestAnimationFrame(() => {
|
|
55
|
+
this.el.classList.add('bds-radio-card--transition');
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
get isError() {
|
|
59
|
+
return this.error && !this.disabled;
|
|
60
|
+
}
|
|
61
|
+
get hostClasses() {
|
|
62
|
+
return {
|
|
63
|
+
'bds-radio-card': true,
|
|
64
|
+
'bds-radio-card--disabled': this.disabled,
|
|
65
|
+
'bds-radio-card--checked': this.checked,
|
|
66
|
+
'bds-radio-card--error': this.isError,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
render() {
|
|
70
|
+
return (index.h(index.Host, { key: '4cdff470403b54e66ad92434ab229406d8e8ef2b', class: this.hostClasses, role: "radio", "aria-checked": `${this.checked}`, "aria-disabled": this.disabled ? 'true' : 'false', "aria-invalid": this.isError ? 'true' : 'false', tabIndex: this.disabled ? -1 : 0, onClick: this.handleClick, onKeyDown: this.handleKeyDown }, index.h("div", { key: '2019eb2a3aa666c3115dfe0c9fd1fed2a18e02de', class: "bds-radio-card__container" }, index.h("input", { key: 'd3e47807abff5bfe0ae1d61e8cdda12d047449e5', class: "bds-radio-card__input", type: "radio", name: this.name, value: this.value, checked: this.checked, disabled: this.disabled, tabIndex: -1, onFocus: () => this.el.focus() }), index.h("span", { key: '091b3ad34ffc7335c07e899645ebb944e0629fe6', class: "bds-radio-card__button" }, index.h("span", { key: '1e717309877f85d8c8d3d635714664c997ab4097', class: "bds-radio-card__dot" })), index.h("div", { key: 'dfc0604e2acbb5db112e410029d057f66e23d71f', class: "bds-radio-card__content" }, index.h("div", { key: '8206a03a6095600fafbc70e1ce43ed85b4204441', class: "bds-radio-card__header" }, index.h("div", { key: 'a93dc203f940d4b03622f4896f2799d6379e3e01', class: "bds-radio-card__icon" }, index.h("slot", { key: 'a410dff923959aef7695fa4e72b2cb8d4a551ba1', name: "icon" })), index.h("div", { key: 'fb598d2bc0e231171454974041998eea8ee9c1b3', class: "bds-radio-card__title" }, this.label || index.h("slot", { key: '98d45578384b5132140c4ff1db0964f4f19a6faa' }))), index.h("bds-typography", { key: 'ff6f0f7b6d293f73b1d2beb3d1f6998889dbb868', variant: "helper" }, index.h("slot", { key: '73529f1e31f946f0da04334cbf65ff439b74c0d4', name: "description" })))), this.info && (index.h("span", { key: '7bf6f3803b50675cc9dec6256a938dfb45bbdee1', class: "bds-radio-card__info-icon", "aria-label": this.info }, index.h("em", { key: 'f472d256e753650c94739c0fb2218e5cf62f0543', class: "bds-icon-info-circle" }, index.h("bds-tooltip", { key: '3e2fe945dbe4a7b9cac470c9e497725937eaabd0' }, this.info))))));
|
|
71
|
+
}
|
|
72
|
+
get el() { return index.getElement(this); }
|
|
73
|
+
};
|
|
74
|
+
BdsRadioCard.style = bdsRadioCardCss();
|
|
75
|
+
|
|
76
|
+
exports.bds_radio_card = BdsRadioCard;
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index-CwYIVC9N.js');
|
|
4
|
+
var formAssociated_mixin = require('./form-associated.mixin-BCR6bj29.js');
|
|
5
|
+
var orientation = require('./orientation-DQAIleEJ.js');
|
|
6
|
+
var BaseAttributes = require('./BaseAttributes-DBBhKt7O.js');
|
|
7
|
+
var validateProps = require('./validateProps-CJe9X5x8.js');
|
|
8
|
+
var Keys = require('./Keys-rKl2za5q.js');
|
|
9
|
+
|
|
10
|
+
const RADIO_GROUP_TYPES = {
|
|
11
|
+
RADIO: 'radio'};
|
|
12
|
+
|
|
13
|
+
const bdsRadioGroupCss = () => `@charset "UTF-8";.bds-radio-group{--bds-divider-gap:var(--boreal-spacing-3xs);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--boreal-spacing-2xs)}.bds-radio-group__options{display:grid;grid-template-columns:1fr;gap:var(--boreal-spacing-xs)}.bds-radio-group[orientation=horizontal] .bds-radio-group__options{grid-template-columns:repeat(var(--layout-count, 1), auto);-ms-flex-pack:start;justify-content:start}.bds-radio-group[type=radiobutton] .bds-radio-group__options{display:-ms-inline-flexbox;display:inline-flex;gap:0;padding:var(--boreal-spacing-3xs);border:1px solid var(--boreal-stroke-default-light);background-color:var(--boreal-ui-inverse);border-radius:var(--boreal-radius-xs);overflow:hidden}.bds-radio-group[type=radiobutton][orientation=vertical] .bds-radio-group__options{-ms-flex-direction:column;flex-direction:column}.bds-radio-group[type=radiobutton].bds-radio-group--error .bds-radio-group__options{border-color:var(--boreal-stroke-danger-base)}.bds-radio-group[type=radiobutton].bds-radio-group--error bds-radio-button.bds-radio-button--error{color:var(--boreal-stroke-danger-base)}.bds-radio-group[type=radiobutton].bds-radio-group--error bds-divider[data-injected]{--bds-divider-color:var(--boreal-stroke-danger-base)}`;
|
|
14
|
+
|
|
15
|
+
const LEAF_TAGS = ['BDS-RADIO', 'BDS-RADIO-BUTTON', 'BDS-RADIO-CARD'];
|
|
16
|
+
const BdsRadioGroup = class extends index.Mixin(formAssociated_mixin.formAssociatedMixin) {
|
|
17
|
+
constructor(hostRef) {
|
|
18
|
+
super();
|
|
19
|
+
index.registerInstance(this, hostRef);
|
|
20
|
+
this.bdsChange = index.createEvent(this, "bdsChange");
|
|
21
|
+
this.valueChange = index.createEvent(this, "valueChange");
|
|
22
|
+
if (hostRef.$hostElement$["s-ei"]) {
|
|
23
|
+
this.internals = hostRef.$hostElement$["s-ei"];
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
this.internals = hostRef.$hostElement$.attachInternals();
|
|
27
|
+
hostRef.$hostElement$["s-ei"] = this.internals;
|
|
28
|
+
}
|
|
29
|
+
this._id = BaseAttributes.createId('bds-radio-group');
|
|
30
|
+
/** Internal mirror of the `disabled` prop, kept in sync via `@Watch` and `formDisabledCallback`. */
|
|
31
|
+
this.isDisabled = false;
|
|
32
|
+
/** Set to true when native form validation fires the `invalid` event; cleared on reset or when value becomes valid. */
|
|
33
|
+
this.isInvalid = false;
|
|
34
|
+
/** Disables all child radios and prevents selection. Also mirrored to isDisabled @State for form-level disable support. */
|
|
35
|
+
this.disabled = false;
|
|
36
|
+
/** Shows error styling on the group helper text. Propagated to all child radios. */
|
|
37
|
+
this.error = false;
|
|
38
|
+
/** Error message rendered below the radio options when error is true. Replaces helperText. */
|
|
39
|
+
this.errorMessage = '';
|
|
40
|
+
/** Helper text rendered below the radio options. Shown in default state; replaced by errorMessage in error state. */
|
|
41
|
+
this.helperText = '';
|
|
42
|
+
/** Tooltip text shown on the group label info icon. */
|
|
43
|
+
this.info = '';
|
|
44
|
+
/** Group label rendered above the radio options. */
|
|
45
|
+
this.label = '';
|
|
46
|
+
/** Layout direction of the radio options. */
|
|
47
|
+
this.orientation = orientation.ORIENTATIONS.VERTICAL;
|
|
48
|
+
/** Marks the group as required for form submission. Triggers validity error when no radio is selected. */
|
|
49
|
+
this.required = false;
|
|
50
|
+
/** Identifies this group variant. 'radio' renders circular bds-radio children; 'radiobutton' renders bds-radio-button segmented control; 'radiocard' renders bds-radio-card element. */
|
|
51
|
+
this.type = RADIO_GROUP_TYPES.RADIO;
|
|
52
|
+
/** Currently selected radio value. Synced to children on change. */
|
|
53
|
+
this.value = '';
|
|
54
|
+
this.handleKeyDown = (event) => {
|
|
55
|
+
const target = event.target;
|
|
56
|
+
if (!LEAF_TAGS.includes(target.tagName))
|
|
57
|
+
return;
|
|
58
|
+
switch (event.key) {
|
|
59
|
+
case Keys.KEYBOARD.ArrowDown:
|
|
60
|
+
case Keys.KEYBOARD.ArrowRight:
|
|
61
|
+
this.navigateTo(target, true);
|
|
62
|
+
event.preventDefault();
|
|
63
|
+
break;
|
|
64
|
+
case Keys.KEYBOARD.ArrowUp:
|
|
65
|
+
case Keys.KEYBOARD.ArrowLeft:
|
|
66
|
+
this.navigateTo(target, false);
|
|
67
|
+
event.preventDefault();
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
this.handleSlotChange = () => {
|
|
72
|
+
this.updateLayoutCount();
|
|
73
|
+
};
|
|
74
|
+
this._buttonCount = 0;
|
|
75
|
+
}
|
|
76
|
+
checkPropValues() {
|
|
77
|
+
validateProps.validatePropValue(Object.values(orientation.ORIENTATIONS), orientation.ORIENTATIONS.VERTICAL, this.el, 'orientation');
|
|
78
|
+
}
|
|
79
|
+
onDisabledChange(next) {
|
|
80
|
+
this.isDisabled = next;
|
|
81
|
+
this.radioElements.forEach(el => (el.disabled = next));
|
|
82
|
+
}
|
|
83
|
+
onErrorChange(val) {
|
|
84
|
+
this.radioElements.forEach(el => (el.error = val));
|
|
85
|
+
}
|
|
86
|
+
onValueChange(val) {
|
|
87
|
+
this.radioElements.forEach(el => {
|
|
88
|
+
el.checked = el.value === val;
|
|
89
|
+
el.setAttribute('aria-checked', String(el.value === val));
|
|
90
|
+
});
|
|
91
|
+
const checked = this.radioElements.find(el => el.checked);
|
|
92
|
+
this.updateTabIndexes(checked ?? null);
|
|
93
|
+
}
|
|
94
|
+
componentWillLoad() {
|
|
95
|
+
this.checkPropValues();
|
|
96
|
+
this.isDisabled = this.disabled;
|
|
97
|
+
if (this.value === '') {
|
|
98
|
+
const lastChecked = Array.from(this.el.querySelectorAll('bds-radio[checked], bds-radio-button[checked], bds-radio-card[checked]')).at(-1);
|
|
99
|
+
if (lastChecked !== undefined) {
|
|
100
|
+
this.value = lastChecked.getAttribute('value') ?? '';
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
componentDidLoad() {
|
|
105
|
+
const checkedChildren = this.radioElements.filter(el => el.checked);
|
|
106
|
+
if (checkedChildren.length > 1) {
|
|
107
|
+
checkedChildren.slice(0, -1).forEach(el => (el.checked = false));
|
|
108
|
+
}
|
|
109
|
+
this.onValueChange(this.value);
|
|
110
|
+
if (this.error)
|
|
111
|
+
this.radioElements.forEach(el => (el.error = true));
|
|
112
|
+
this.updateLayoutCount();
|
|
113
|
+
this.updateTabIndexes(this.radioElements.find(el => el.checked) ?? this.radioElements.find(el => !el.disabled) ?? null);
|
|
114
|
+
this.updateFormValidity();
|
|
115
|
+
}
|
|
116
|
+
formAssociatedCallback() {
|
|
117
|
+
this.syncFormValue();
|
|
118
|
+
}
|
|
119
|
+
formResetCallback() {
|
|
120
|
+
this.value = '';
|
|
121
|
+
this.isInvalid = false;
|
|
122
|
+
this.radioElements.forEach(radio => {
|
|
123
|
+
radio.checked = false;
|
|
124
|
+
radio.setAttribute('aria-checked', 'false');
|
|
125
|
+
if (!this.error)
|
|
126
|
+
radio.error = false;
|
|
127
|
+
});
|
|
128
|
+
this.internals.setFormValue(null);
|
|
129
|
+
this.updateFormValidity();
|
|
130
|
+
const first = this.radioElements.find(el => !el.disabled);
|
|
131
|
+
this.updateTabIndexes(first ?? null);
|
|
132
|
+
}
|
|
133
|
+
formStateRestoreCallback(state, _mode) {
|
|
134
|
+
const val = typeof state === 'string' ? state : '';
|
|
135
|
+
this.value = val;
|
|
136
|
+
this.internals.setFormValue(val !== '' ? val : null);
|
|
137
|
+
}
|
|
138
|
+
formDisabledCallback(disabled) {
|
|
139
|
+
this.isDisabled = disabled;
|
|
140
|
+
this.radioElements.forEach(el => (el.disabled = disabled));
|
|
141
|
+
}
|
|
142
|
+
handleRadioChange(event) {
|
|
143
|
+
const target = event.target;
|
|
144
|
+
if (!LEAF_TAGS.includes(target.tagName))
|
|
145
|
+
return;
|
|
146
|
+
this.radioElements
|
|
147
|
+
.filter(el => el !== target)
|
|
148
|
+
.forEach(el => {
|
|
149
|
+
el.checked = false;
|
|
150
|
+
el.setAttribute('aria-checked', 'false');
|
|
151
|
+
});
|
|
152
|
+
this.value = event.detail.value;
|
|
153
|
+
this.internals.setFormValue(this.value);
|
|
154
|
+
this.updateTabIndexes(target);
|
|
155
|
+
this.updateFormValidity();
|
|
156
|
+
this.bdsChange.emit({ value: this.value });
|
|
157
|
+
this.valueChange.emit(this.value);
|
|
158
|
+
}
|
|
159
|
+
handleInvalid(event) {
|
|
160
|
+
if (this.errorMessage !== '') {
|
|
161
|
+
event.preventDefault();
|
|
162
|
+
this.isInvalid = true;
|
|
163
|
+
this.radioElements.forEach(el => (el.error = true));
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/** Returns whether the group's current value satisfies the browser's built-in constraint validation. */
|
|
167
|
+
async checkValidity() {
|
|
168
|
+
return this.internals.checkValidity();
|
|
169
|
+
}
|
|
170
|
+
/** Reports the group's validity state to the user, showing native validation UI if invalid. */
|
|
171
|
+
async reportValidity() {
|
|
172
|
+
return this.internals.reportValidity();
|
|
173
|
+
}
|
|
174
|
+
navigateTo(current, forward) {
|
|
175
|
+
const elements = this.radioElements.filter(el => !el.disabled);
|
|
176
|
+
if (elements.length === 0)
|
|
177
|
+
return;
|
|
178
|
+
const idx = elements.indexOf(current);
|
|
179
|
+
const newIndex = (elements.length + idx + (forward ? 1 : -1)) % elements.length;
|
|
180
|
+
const next = elements[newIndex];
|
|
181
|
+
next.checked = true;
|
|
182
|
+
next.setAttribute('aria-checked', 'true');
|
|
183
|
+
this.radioElements
|
|
184
|
+
.filter(el => el !== next)
|
|
185
|
+
.forEach(el => {
|
|
186
|
+
el.checked = false;
|
|
187
|
+
el.setAttribute('aria-checked', 'false');
|
|
188
|
+
});
|
|
189
|
+
this.value = next.value;
|
|
190
|
+
this.internals.setFormValue(this.value);
|
|
191
|
+
this.updateTabIndexes(next);
|
|
192
|
+
this.updateFormValidity();
|
|
193
|
+
this.bdsChange.emit({ value: this.value });
|
|
194
|
+
this.valueChange.emit(this.value);
|
|
195
|
+
next.focus();
|
|
196
|
+
}
|
|
197
|
+
insertDividers() {
|
|
198
|
+
this.el.querySelectorAll('bds-divider[data-injected]').forEach(d => d.remove());
|
|
199
|
+
if (this.type !== 'radiobutton')
|
|
200
|
+
return;
|
|
201
|
+
const dividerOrientation = this.orientation === orientation.ORIENTATIONS.HORIZONTAL ? orientation.ORIENTATIONS.VERTICAL : orientation.ORIENTATIONS.HORIZONTAL;
|
|
202
|
+
const buttons = this.radioElements.filter((el) => el.tagName === 'BDS-RADIO-BUTTON');
|
|
203
|
+
buttons.forEach((btn, i) => {
|
|
204
|
+
if (i === 0)
|
|
205
|
+
return;
|
|
206
|
+
const divider = document.createElement('bds-divider');
|
|
207
|
+
divider.setAttribute('orientation', dividerOrientation);
|
|
208
|
+
divider.setAttribute('data-injected', '');
|
|
209
|
+
btn.parentNode?.insertBefore(divider, btn);
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
get radioElements() {
|
|
213
|
+
return Array.from(this.el.querySelectorAll('bds-radio, bds-radio-button, bds-radio-card'));
|
|
214
|
+
}
|
|
215
|
+
syncFormValue() {
|
|
216
|
+
this.internals.setFormValue(this.value !== '' ? this.value : null);
|
|
217
|
+
this.updateFormValidity();
|
|
218
|
+
}
|
|
219
|
+
updateFormValidity() {
|
|
220
|
+
if (this.required && this.value === '') {
|
|
221
|
+
const anchor = this.radioElements.find(el => !el.disabled);
|
|
222
|
+
this.internals.setValidity({ valueMissing: true }, this.errorMessage !== '' ? this.errorMessage : 'Please select an option.', anchor);
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
this.internals.setValidity({});
|
|
226
|
+
if (this.isInvalid) {
|
|
227
|
+
this.isInvalid = false;
|
|
228
|
+
if (!this.error)
|
|
229
|
+
this.radioElements.forEach(el => (el.error = false));
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
updateLayoutCount() {
|
|
234
|
+
const count = this.radioElements.length;
|
|
235
|
+
this.el.style.setProperty('--layout-count', `${count}`);
|
|
236
|
+
if (count !== this._buttonCount) {
|
|
237
|
+
this._buttonCount = count;
|
|
238
|
+
this.insertDividers();
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
updateTabIndexes(active) {
|
|
242
|
+
this.radioElements.forEach(el => el.setAttribute('tabindex', '-1'));
|
|
243
|
+
if (active !== null)
|
|
244
|
+
active.setAttribute('tabindex', '0');
|
|
245
|
+
}
|
|
246
|
+
get isError() {
|
|
247
|
+
const error = this.error && !this.disabled;
|
|
248
|
+
return error || this.isInvalid;
|
|
249
|
+
}
|
|
250
|
+
get classMap() {
|
|
251
|
+
return {
|
|
252
|
+
'bds-radio-group': true,
|
|
253
|
+
'bds-radio-group--disabled': this.isDisabled,
|
|
254
|
+
'bds-radio-group--error': this.isError,
|
|
255
|
+
'bds-radio-group--required': this.required,
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
render() {
|
|
259
|
+
const labelId = `${this._id}-label`;
|
|
260
|
+
const helperId = `${this._id}-helper`;
|
|
261
|
+
const showError = this.isError;
|
|
262
|
+
const typographyState = this.isDisabled ? 'disabled' : showError ? 'error' : 'default';
|
|
263
|
+
const helperContent = showError && this.errorMessage !== '' ? this.errorMessage : this.helperText;
|
|
264
|
+
return (index.h(index.Host, { key: 'ab755f253ab7096e8ed0efa7196cedd96cdc7ca8', class: this.classMap, role: "radiogroup", "aria-labelledby": this.label !== '' ? labelId : undefined, "aria-describedby": helperContent !== '' ? helperId : undefined, "aria-invalid": showError ? 'true' : undefined, "aria-required": this.required ? 'true' : undefined, onKeyDown: this.handleKeyDown }, this.label && (index.h("bds-typography", { key: '85bc7d114efabd92930c6c934c19e4ba887a3663', id: labelId, variant: "label", state: typographyState, required: this.required, tooltipText: this.info !== '' ? this.info : undefined }, this.label)), index.h("div", { key: '3f1670875353369c608c9cf064ccb1b7beede19a', class: "bds-radio-group__options" }, index.h("slot", { key: 'b0d52880c82dec9557c10bcf7ef8930299bdf7a6', onSlotchange: this.handleSlotChange })), helperContent && (index.h("bds-typography", { key: 'f0a17de329944c3fe63cf7cb586ec85016693208', id: helperId, variant: "helper", state: typographyState }, helperContent))));
|
|
265
|
+
}
|
|
266
|
+
static get formAssociated() { return true; }
|
|
267
|
+
get el() { return index.getElement(this); }
|
|
268
|
+
static get watchers() { return {
|
|
269
|
+
"orientation": [{
|
|
270
|
+
"checkPropValues": 0
|
|
271
|
+
}],
|
|
272
|
+
"disabled": [{
|
|
273
|
+
"onDisabledChange": 0
|
|
274
|
+
}],
|
|
275
|
+
"error": [{
|
|
276
|
+
"onErrorChange": 0
|
|
277
|
+
}],
|
|
278
|
+
"value": [{
|
|
279
|
+
"onValueChange": 0
|
|
280
|
+
}]
|
|
281
|
+
}; }
|
|
282
|
+
};
|
|
283
|
+
BdsRadioGroup.style = bdsRadioGroupCss();
|
|
284
|
+
|
|
285
|
+
exports.bds_radio_group = BdsRadioGroup;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index-CwYIVC9N.js');
|
|
4
|
+
|
|
5
|
+
const bdsRadioCss = () => `@charset "UTF-8";.bds-radio__content,.bds-radio__icon{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.bds-radio__info{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}.bds-radio{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;gap:var(--boreal-spacing-2xs);cursor:pointer;outline:none}.bds-radio input[type=radio]{position:absolute;opacity:0;width:0;height:0;margin:0;pointer-events:none}.bds-radio__content{gap:var(--boreal-spacing-3xs)}.bds-radio__icon{-ms-flex-negative:0;flex-shrink:0;line-height:1}.bds-radio__label{font-family:var(--boreal-typography-font-family-primary);font-size:var(--boreal-typography-font-size-sm);font-weight:var(--boreal-typography-font-weight-regular);line-height:var(--boreal-typography-line-height-sm);color:var(--boreal-text-default)}.bds-radio__button{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-ms-flex-negative:0;flex-shrink:0;width:18px;height:18px;border-radius:var(--boreal-radius-full);border:1px solid var(--boreal-stroke-default-light);background-color:var(--boreal-ui-inverse);-webkit-transition:background-color 0.3s ease, border-color 0.3s ease, -webkit-box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, -webkit-box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, -webkit-box-shadow 0.3s ease}.bds-radio__dot{width:10px;height:10px;border-radius:var(--boreal-radius-full);background-color:transparent;-webkit-transition:background-color 0.3s ease, border-color 0.3s ease, -webkit-box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, -webkit-box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;transition:background-color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, -webkit-box-shadow 0.3s ease}.bds-radio__info-icon{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;font-size:var(--boreal-typography-font-size-sm);line-height:1;color:var(--boreal-icon-default-ink)}.bds-radio:hover:not(.bds-radio--disabled):not(.bds-radio--checked) .bds-radio__button{border-color:var(--boreal-stroke-default-light);-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-radio:hover:not(.bds-radio--disabled):not(.bds-radio--checked) .bds-radio__dot{background-color:var(--boreal-ui-base-light)}.bds-radio:is(:focus-visible,:focus) .bds-radio__button{-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-radio:active:not(.bds-radio--disabled):not(.bds-radio--checked) .bds-radio__button{-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-radio--checked .bds-radio__button{border-color:var(--boreal-stroke-primary-base)}.bds-radio--checked .bds-radio__dot{background-color:var(--boreal-ui-primary-base)}.bds-radio--error .bds-radio__button{border-color:var(--boreal-stroke-danger-base)}.bds-radio--disabled{cursor:not-allowed;pointer-events:none}.bds-radio--disabled .bds-radio__button{border-color:var(--boreal-stroke-default-light);background-color:var(--boreal-ui-disabled)}.bds-radio--disabled .bds-radio__label{color:var(--boreal-text-disabled)}.bds-radio--disabled.bds-radio--checked .bds-radio__button{border-color:var(--boreal-ui-primary-light)}.bds-radio--disabled.bds-radio--checked .bds-radio__dot{background-color:var(--boreal-ui-primary-light)}`;
|
|
6
|
+
|
|
7
|
+
const BdsRadio = class {
|
|
8
|
+
constructor(hostRef) {
|
|
9
|
+
index.registerInstance(this, hostRef);
|
|
10
|
+
this.bdsChange = index.createEvent(this, "bdsChange");
|
|
11
|
+
/** Whether this radio is selected. Managed by bds-radio-group; can be set directly when used standalone. */
|
|
12
|
+
this.checked = false;
|
|
13
|
+
/** Disables the radio, preventing interaction and selection. */
|
|
14
|
+
this.disabled = false;
|
|
15
|
+
/** Value submitted with the form when this radio is selected. */
|
|
16
|
+
this.value = 'on';
|
|
17
|
+
/** Name attribute stamped by the parent bds-radio-group via setAttribute. Set directly when used standalone. */
|
|
18
|
+
this.name = '';
|
|
19
|
+
/** Label text displayed next to the radio indicator. Falls back to the default slot when empty. */
|
|
20
|
+
this.label = '';
|
|
21
|
+
/** Shows error styling on the radio indicator. Propagated by bds-radio-group. */
|
|
22
|
+
this.error = false;
|
|
23
|
+
/** Tooltip text shown on an info icon next to the label. */
|
|
24
|
+
this.info = '';
|
|
25
|
+
this.handleClick = () => this.select();
|
|
26
|
+
this.handleKeyDown = (event) => {
|
|
27
|
+
if (event.key === ' ') {
|
|
28
|
+
event.preventDefault();
|
|
29
|
+
this.select();
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
componentDidLoad() {
|
|
34
|
+
this.el.setAttribute('role', 'radio');
|
|
35
|
+
this.el.setAttribute('aria-checked', String(this.checked));
|
|
36
|
+
this.el.setAttribute('tabindex', '-1');
|
|
37
|
+
}
|
|
38
|
+
select() {
|
|
39
|
+
if (this.disabled || this.checked)
|
|
40
|
+
return;
|
|
41
|
+
this.checked = true;
|
|
42
|
+
this.el.setAttribute('aria-checked', 'true');
|
|
43
|
+
this.bdsChange.emit({ checked: true, value: this.value });
|
|
44
|
+
}
|
|
45
|
+
get classMap() {
|
|
46
|
+
return {
|
|
47
|
+
'bds-radio': true,
|
|
48
|
+
'bds-radio--checked': this.checked,
|
|
49
|
+
'bds-radio--error': this.error,
|
|
50
|
+
'bds-radio--disabled': this.disabled,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
render() {
|
|
54
|
+
return (index.h(index.Host, { key: '1d68465b5124471bda9fb1e4f3dc022d4f22be6d', class: this.classMap, onClick: this.handleClick, onKeyDown: this.handleKeyDown }, index.h("input", { key: '8c820cf327a9978f6f098794e26a4ec0394e99c3', type: "radio", name: this.name, value: this.value, checked: this.checked, disabled: this.disabled, "aria-hidden": "true", tabIndex: -1, onFocus: () => this.el.focus() }), index.h("span", { key: '6de9fcb7657842b81b4bf803e3e60b6891fef27e', class: "bds-radio__button" }, index.h("span", { key: '660c57e990abc4f6f1288f93c198e9bb60be6c29', class: "bds-radio__dot" })), index.h("span", { key: 'ec3879d0edb42cdbc7b4257d563d9c298fd3b89d', class: "bds-radio__content" }, index.h("span", { key: '430b04fd6f836cf2881fecf9df56bee70486da85', class: "bds-radio__icon" }, index.h("slot", { key: '30dcf8837cd50a9e48a6c061576f7b9d53eeabd9', name: "icon" })), index.h("span", { key: 'dbb139d87c4689a64e2860b365d7c261c56b638b', class: "bds-radio__label" }, this.label || index.h("slot", { key: 'a7d985fa9773a8f285c36f3deaeb7112adf20f95' })), this.info && (index.h("span", { key: '36958330fd1ed9fa6f64bcf757c9be113fae5daf', class: "bds-radio__info" }, index.h("span", { key: 'ea5a415943c9f67f027a4b241d024ea61321a8a1', class: "bds-radio__info-icon bds-icon-info-circle", "aria-hidden": "true" }), index.h("bds-tooltip", { key: '875105c226c6d1fb90d62fe275ed544f043a1c19' }, this.info))))));
|
|
55
|
+
}
|
|
56
|
+
get el() { return index.getElement(this); }
|
|
57
|
+
};
|
|
58
|
+
BdsRadio.style = bdsRadioCss();
|
|
59
|
+
|
|
60
|
+
exports.bds_radio = BdsRadio;
|
|
@@ -40,7 +40,7 @@ const BdsSpinner = class {
|
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
42
|
render() {
|
|
43
|
-
return (index.h(index.Host, { key: '
|
|
43
|
+
return (index.h(index.Host, { key: '7e7846adadb6224abfcaaf2478768b72ec712659', class: this.getClassMap, role: "status", "aria-label": this.label, "aria-live": "polite", "aria-busy": "true" }, index.h("span", { key: '1c6aad446ed35a3adcb4e4f28fd4a3e7b9b7cb3a', class: "bds-spinner__sr-only" }, this.label)));
|
|
44
44
|
}
|
|
45
45
|
get el() { return index.getElement(this); }
|
|
46
46
|
static get watchers() { return {
|
|
@@ -42,7 +42,7 @@ const BdsStatus = class {
|
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
44
|
render() {
|
|
45
|
-
return (index.h(index.Host, { key: '
|
|
45
|
+
return (index.h(index.Host, { key: '9a952b22de8565fcca464d045f71ea86c92c8632', class: this.classMap, role: "status" }, this.indicator === INDICATOR_TYPES.DOT ? index.h("div", { class: "bds-status__dot", "aria-hidden": "true" }) : '', index.h("slot", { key: '47e03b139fcb4da8b15fe115518856c54d02a320', name: "icon" }), index.h("slot", { key: 'e512e975c2df8fa3e3380f27808eec96be5ad455' })));
|
|
46
46
|
}
|
|
47
47
|
get el() { return index.getElement(this); }
|
|
48
48
|
static get watchers() { return {
|
|
@@ -123,7 +123,7 @@ const BdsTag = class {
|
|
|
123
123
|
const classes = this.getClasses();
|
|
124
124
|
const hasCloseButton = !this.readonly;
|
|
125
125
|
const isSelectable = this.multiselect;
|
|
126
|
-
return (index.h(index.Host, { key: '
|
|
126
|
+
return (index.h(index.Host, { key: 'bd62a05fccbfa4aed3b7f72b9edf800c3ab05362', 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()));
|
|
127
127
|
}
|
|
128
128
|
get el() { return index.getElement(this); }
|
|
129
129
|
static get watchers() { return {
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var index = require('./index-CwYIVC9N.js');
|
|
4
|
-
var formAssociated_mixin = require('./form-associated.mixin-
|
|
4
|
+
var formAssociated_mixin = require('./form-associated.mixin-BCR6bj29.js');
|
|
5
|
+
var internals = require('./internals-D8x7GMfR.js');
|
|
5
6
|
var BaseAttributes = require('./BaseAttributes-DBBhKt7O.js');
|
|
6
7
|
var validateProps = require('./validateProps-CJe9X5x8.js');
|
|
7
8
|
|
|
@@ -182,13 +183,13 @@ const BdsTextField = class extends index.Mixin(formAssociated_mixin.formAssociat
|
|
|
182
183
|
this.updateValidity();
|
|
183
184
|
}
|
|
184
185
|
onValueChange(next) {
|
|
185
|
-
|
|
186
|
+
internals.setFormValue(this.internals, next);
|
|
186
187
|
this.currentCharCount = next.length;
|
|
187
188
|
this.updateValidity();
|
|
188
189
|
this.valueChange.emit(next);
|
|
189
190
|
}
|
|
190
191
|
formAssociatedCallback() {
|
|
191
|
-
|
|
192
|
+
internals.setFormValue(this.internals, this.value);
|
|
192
193
|
this.updateValidity();
|
|
193
194
|
}
|
|
194
195
|
formResetCallback() {
|
|
@@ -198,16 +199,16 @@ const BdsTextField = class extends index.Mixin(formAssociated_mixin.formAssociat
|
|
|
198
199
|
this.currentCharCount = 0;
|
|
199
200
|
this.validationError = false;
|
|
200
201
|
this.validationMessage = '';
|
|
201
|
-
|
|
202
|
+
internals.setFormValue(this.internals, null);
|
|
202
203
|
this.updateValidity();
|
|
203
204
|
}
|
|
204
205
|
formStateRestoreCallback(state, _mode) {
|
|
205
206
|
this.value = typeof state === 'string' ? state : '';
|
|
206
|
-
|
|
207
|
+
internals.setFormValue(this.internals, this.value);
|
|
207
208
|
this.updateValidity();
|
|
208
209
|
}
|
|
209
210
|
updateValidity(emitEvent = false) {
|
|
210
|
-
const valid =
|
|
211
|
+
const valid = internals.runValidators(this.internals, [...this.validators, ...this.customValidators], this.el);
|
|
211
212
|
if (emitEvent) {
|
|
212
213
|
this.validationError = !valid;
|
|
213
214
|
this.validationMessage = valid ? '' : this.internals.validationMessage;
|
|
@@ -333,7 +334,7 @@ const BdsTextField = class extends index.Mixin(formAssociated_mixin.formAssociat
|
|
|
333
334
|
: this.helperText;
|
|
334
335
|
const showFooter = helperContent !== '' || (this.counter && this.charCount > 0);
|
|
335
336
|
const typographyState = this.isDisabled ? 'disabled' : effectiveError ? 'error' : 'default';
|
|
336
|
-
return (index.h(index.Host, { key: '
|
|
337
|
+
return (index.h(index.Host, { key: '5f52a0a9553efa1ec140b9edc4d3d332b9b306bc', class: this.classMap, style: this.hostStyle, tabIndex: -1, onFocus: () => !this.readOnly && this.el.querySelector('input')?.focus() }, this.label !== '' && (index.h("bds-typography", { key: 'eea2b4211cb13cc24baa650239ceca1168933eb5', id: labelId, variant: "label", htmlFor: this._id, required: this.required, tooltipText: this.info !== '' ? this.info : undefined, state: typographyState }, this.label)), index.h("div", { key: '17d9e4b5f7e0d64a7e6e73200073db9e2d89b601', class: "bds-text-field__container" }, (this.icon !== '' || this.sublabel !== '') && (index.h("span", { key: '5557471fd0b5b49a1bb856ea4c1b901ca96039e6', class: "bds-text-field__sublabel" }, this.icon !== '' && index.h("em", { key: 'e213979d268b2fce51a0a090b82dff0552515a8c', class: this.icon }), this.sublabel)), index.h("slot", { key: '828b889037a40e562bf45a4b502988542b815701', name: "prefix" }), index.h("input", { key: 'b842de768f53b095b65fc60da7a0cfabfbcc87d1', 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) && (index.h("div", { key: '19ffb36c88f72645969fed69eb8368647ea8071c', class: "bds-text-field__actions" }, showClear && (index.h("button", { key: '1adbe2d791fa48cbc6d0b9d71bda40f01f77efe4', class: "bds-text-field__action bds-text-field__action--clear", type: "button", "aria-label": ARIA_LABELS.Clear, onClick: () => this.handleClear() }, index.h("em", { key: '72e94a903896a8f0d04569ffb4b692c5fe37c621', class: this.iconClear }))), this.type === TEXT_FIELD_TYPES.PASSWORD && (index.h("button", { key: '795a85ad395254a8dbac151eb225aeb0d0d9266a', 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() }, index.h("em", { key: 'e84632218e25422ce5ba64ad6efc40a94310a0c5', class: this.showPasswordIcon })))))), showFooter && (index.h("div", { key: 'ef98f783b7cd1ccf37d04a209d1bcf4b87ca048a', class: "bds-text-field__footer" }, helperContent !== '' && (index.h("bds-typography", { key: 'c560b15810400be0710368c089294a6ee51746b1', id: helperId, variant: "helper", state: typographyState }, helperContent)), this.counter && this.charCount > 0 && (index.h("span", { key: 'e4f7d33f2e3bf588f30ccb7165a9b385d8f5a8e3', class: "bds-text-field__char-count" }, this.currentCharCount, "/", this.charCount))))));
|
|
337
338
|
}
|
|
338
339
|
static get formAssociated() { return true; }
|
|
339
340
|
get el() { return index.getElement(this); }
|