@beeq/core 1.8.0-beta.4 → 1.8.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/beeq/beeq.esm.js +1 -1
- package/dist/beeq/beeq.esm.js.map +1 -1
- package/dist/beeq/index.esm.js +12 -12
- package/dist/beeq/{p-7ea146b8.entry.js → p-01fe8efb.entry.js} +1 -3
- package/dist/beeq/{p-7ea146b8.entry.js.map → p-01fe8efb.entry.js.map} +1 -1
- package/dist/beeq/{p-d9bcaeed.entry.js → p-03373320.entry.js} +1 -3
- package/dist/beeq/{p-d9bcaeed.entry.js.map → p-03373320.entry.js.map} +1 -1
- package/dist/beeq/{p-b877d662.entry.js → p-06faf55b.entry.js} +127 -84
- package/dist/beeq/p-06faf55b.entry.js.map +1 -0
- package/dist/beeq/{p-a94d15f9.entry.js → p-0a981080.entry.js} +1 -3
- package/dist/beeq/{p-a94d15f9.entry.js.map → p-0a981080.entry.js.map} +1 -1
- package/dist/beeq/{p-03e23dca.entry.js → p-0ce76c54.entry.js} +1 -3
- package/dist/beeq/{p-03e23dca.entry.js.map → p-0ce76c54.entry.js.map} +1 -1
- package/dist/beeq/{p-f5eb8fff.entry.js → p-2bb049ae.entry.js} +2 -4
- package/dist/beeq/{p-f5eb8fff.entry.js.map → p-2bb049ae.entry.js.map} +1 -1
- package/dist/beeq/{p-e06c8398.entry.js → p-2fe5f338.entry.js} +20 -22
- package/dist/beeq/p-2fe5f338.entry.js.map +1 -0
- package/dist/beeq/{p-8b6fc3ef.entry.js → p-3043c826.entry.js} +5 -7
- package/dist/beeq/{p-8b6fc3ef.entry.js.map → p-3043c826.entry.js.map} +1 -1
- package/dist/beeq/{p-fe57aa48.entry.js → p-38e70f78.entry.js} +1 -3
- package/dist/beeq/{p-fe57aa48.entry.js.map → p-38e70f78.entry.js.map} +1 -1
- package/dist/beeq/{p-818cd6d7.entry.js → p-398bfb48.entry.js} +1 -3
- package/dist/beeq/{p-818cd6d7.entry.js.map → p-398bfb48.entry.js.map} +1 -1
- package/dist/beeq/{p-27974392.entry.js → p-41ac1d84.entry.js} +2 -4
- package/dist/beeq/{p-27974392.entry.js.map → p-41ac1d84.entry.js.map} +1 -1
- package/dist/beeq/{p-908c57e9.entry.js → p-4eabcd51.entry.js} +1 -3
- package/dist/beeq/{p-908c57e9.entry.js.map → p-4eabcd51.entry.js.map} +1 -1
- package/dist/beeq/{p-f5d59aba.entry.js → p-5ff6621d.entry.js} +2 -4
- package/dist/beeq/{p-f5d59aba.entry.js.map → p-5ff6621d.entry.js.map} +1 -1
- package/dist/beeq/{p-3e3fd7b5.entry.js → p-60cbc966.entry.js} +1 -3
- package/dist/beeq/{p-3e3fd7b5.entry.js.map → p-60cbc966.entry.js.map} +1 -1
- package/dist/beeq/{p-98de0101.entry.js → p-68ff188d.entry.js} +1 -3
- package/dist/beeq/{p-98de0101.entry.js.map → p-68ff188d.entry.js.map} +1 -1
- package/dist/beeq/{p-7aa47927.entry.js → p-69c766a3.entry.js} +9 -11
- package/dist/beeq/p-69c766a3.entry.js.map +1 -0
- package/dist/beeq/{p-89665044.entry.js → p-76486949.entry.js} +2 -4
- package/dist/beeq/{p-89665044.entry.js.map → p-76486949.entry.js.map} +1 -1
- package/dist/beeq/{p-bb14b231.entry.js → p-8275d147.entry.js} +3 -5
- package/dist/beeq/{p-bb14b231.entry.js.map → p-8275d147.entry.js.map} +1 -1
- package/dist/beeq/{p-0fce4de9.js → p-83d6d9ad.js} +2 -4
- package/dist/beeq/{p-0fce4de9.js.map → p-83d6d9ad.js.map} +1 -1
- package/dist/beeq/{p-03749fbf.entry.js → p-8b16f130.entry.js} +1 -3
- package/dist/beeq/{p-03749fbf.entry.js.map → p-8b16f130.entry.js.map} +1 -1
- package/dist/beeq/p-8f1c68c0.js +71 -0
- package/dist/beeq/p-8f1c68c0.js.map +1 -0
- package/dist/beeq/{p-5d51cadd.entry.js → p-9cab14ee.entry.js} +1 -3
- package/dist/beeq/{p-5d51cadd.entry.js.map → p-9cab14ee.entry.js.map} +1 -1
- package/dist/beeq/{p-7695fc8d.entry.js → p-a23b23c4.entry.js} +1 -3
- package/dist/beeq/{p-7695fc8d.entry.js.map → p-a23b23c4.entry.js.map} +1 -1
- package/dist/beeq/{p-2b2d8b0c.entry.js → p-a608a4fb.entry.js} +2 -4
- package/dist/beeq/{p-2b2d8b0c.entry.js.map → p-a608a4fb.entry.js.map} +1 -1
- package/dist/beeq/{p-bc60faa1.entry.js → p-aacaaa35.entry.js} +1 -3
- package/dist/beeq/{p-bc60faa1.entry.js.map → p-aacaaa35.entry.js.map} +1 -1
- package/dist/beeq/{p-5d8d6717.entry.js → p-b77b52f2.entry.js} +2 -4
- package/dist/beeq/{p-5d8d6717.entry.js.map → p-b77b52f2.entry.js.map} +1 -1
- package/dist/beeq/{p-d2f682a9.entry.js → p-bbf4aad4.entry.js} +3 -5
- package/dist/beeq/{p-d2f682a9.entry.js.map → p-bbf4aad4.entry.js.map} +1 -1
- package/dist/beeq/{p-5fcbf15f.entry.js → p-c83bc7fd.entry.js} +10 -11
- package/dist/beeq/p-c83bc7fd.entry.js.map +1 -0
- package/dist/beeq/{p-e6911710.entry.js → p-cb2b0014.entry.js} +1 -3
- package/dist/beeq/{p-e6911710.entry.js.map → p-cb2b0014.entry.js.map} +1 -1
- package/dist/beeq/{p-60ab652b.entry.js → p-cfb8829b.entry.js} +1 -3
- package/dist/beeq/{p-60ab652b.entry.js.map → p-cfb8829b.entry.js.map} +1 -1
- package/dist/beeq/{p-3ed73068.entry.js → p-d7067dae.entry.js} +1 -3
- package/dist/beeq/{p-3ed73068.entry.js.map → p-d7067dae.entry.js.map} +1 -1
- package/dist/beeq/{p-f69d2900.entry.js → p-d7dc7086.entry.js} +1 -3
- package/dist/beeq/{p-f69d2900.entry.js.map → p-d7dc7086.entry.js.map} +1 -1
- package/dist/beeq/{p-d8f7bf11.entry.js → p-df9ce322.entry.js} +2 -4
- package/dist/beeq/{p-d8f7bf11.entry.js.map → p-df9ce322.entry.js.map} +1 -1
- package/dist/beeq/{p-5a9a73a0.js → p-edfd9767.js} +2 -2
- package/dist/beeq/p-edfd9767.js.map +1 -0
- package/dist/beeq/{p-ac0d84a6.entry.js → p-f979d79a.entry.js} +1 -3
- package/dist/beeq/{p-ac0d84a6.entry.js.map → p-f979d79a.entry.js.map} +1 -1
- package/dist/beeq/{p-5a12011a.entry.js → p-faa3be41.entry.js} +1 -3
- package/dist/beeq/{p-5a12011a.entry.js.map → p-faa3be41.entry.js.map} +1 -1
- package/dist/beeq/{p-cdd5b425.entry.js → p-fb809932.entry.js} +2 -4
- package/dist/beeq/{p-cdd5b425.entry.js.map → p-fb809932.entry.js.map} +1 -1
- package/dist/beeq/{p-be746e37.entry.js → p-fe278ecc.entry.js} +2 -4
- package/dist/beeq/{p-be746e37.entry.js.map → p-fe278ecc.entry.js.map} +1 -1
- package/dist/cjs/assetsPath-8bd8d221.js +77 -0
- package/dist/cjs/assetsPath-8bd8d221.js.map +1 -0
- package/dist/cjs/beeq.cjs.js +1 -1
- package/dist/cjs/bq-accordion-group.cjs.entry.js +0 -1
- package/dist/cjs/bq-accordion-group.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-accordion.cjs.entry.js +0 -1
- package/dist/cjs/bq-accordion.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-alert.cjs.entry.js +1 -2
- package/dist/cjs/bq-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-avatar.cjs.entry.js +0 -1
- package/dist/cjs/bq-avatar.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-badge.cjs.entry.js +1 -2
- package/dist/cjs/bq-badge.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-breadcrumb-item.cjs.entry.js +1 -2
- package/dist/cjs/bq-breadcrumb-item.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-breadcrumb.cjs.entry.js +0 -1
- package/dist/cjs/bq-breadcrumb.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-button_2.cjs.entry.js +100 -53
- package/dist/cjs/bq-button_2.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-card.cjs.entry.js +0 -1
- package/dist/cjs/bq-card.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-checkbox.cjs.entry.js +0 -1
- package/dist/cjs/bq-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-date-picker.cjs.entry.js +2 -3
- package/dist/cjs/bq-date-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-dialog.cjs.entry.js +1 -2
- package/dist/cjs/bq-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-divider.cjs.entry.js +1 -2
- package/dist/cjs/bq-divider.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-drawer.cjs.entry.js +1 -2
- package/dist/cjs/bq-drawer.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-empty-state.cjs.entry.js +0 -1
- package/dist/cjs/bq-empty-state.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-input.cjs.entry.js +1 -2
- package/dist/cjs/bq-input.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-notification.cjs.entry.js +5 -6
- package/dist/cjs/bq-notification.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-option-list_2.cjs.entry.js +1 -2
- package/dist/cjs/bq-option-list_2.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-option.cjs.entry.js +0 -1
- package/dist/cjs/bq-option.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-page-title.cjs.entry.js +0 -1
- package/dist/cjs/bq-page-title.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-progress.cjs.entry.js +0 -1
- package/dist/cjs/bq-progress.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-radio-group.cjs.entry.js +0 -1
- package/dist/cjs/bq-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-select.cjs.entry.js +2 -3
- package/dist/cjs/bq-select.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-side-menu-item.cjs.entry.js +0 -1
- package/dist/cjs/bq-side-menu-item.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-side-menu.cjs.entry.js +4 -4
- package/dist/cjs/bq-side-menu.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-slider.cjs.entry.js +0 -1
- package/dist/cjs/bq-slider.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-spinner.cjs.entry.js +1 -2
- package/dist/cjs/bq-spinner.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-status.cjs.entry.js +0 -1
- package/dist/cjs/bq-status.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-step-item.cjs.entry.js +0 -1
- package/dist/cjs/bq-step-item.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-steps.cjs.entry.js +0 -1
- package/dist/cjs/bq-steps.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-switch.cjs.entry.js +0 -1
- package/dist/cjs/bq-switch.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-tab-group.cjs.entry.js +0 -1
- package/dist/cjs/bq-tab-group.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-tab.cjs.entry.js +0 -1
- package/dist/cjs/bq-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-textarea.cjs.entry.js +0 -1
- package/dist/cjs/bq-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/bq-toast.cjs.entry.js +3 -4
- package/dist/cjs/bq-toast.cjs.entry.js.map +1 -1
- package/dist/cjs/{cssVariables-a0e1e906.js → cssVariables-dd190bc2.js} +2 -2
- package/dist/cjs/cssVariables-dd190bc2.js.map +1 -0
- package/dist/cjs/index.cjs.js +3 -3
- package/dist/cjs/{isDefined-ee0026ed.js → isDefined-f3968296.js} +1 -2
- package/dist/cjs/isDefined-f3968296.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/alert/scss/bq-alert.css +1 -1
- package/dist/collection/components/button/bq-button.js +41 -16
- package/dist/collection/components/button/bq-button.js.map +1 -1
- package/dist/collection/components/date-picker/scss/bq-date-picker.css +1 -1
- package/dist/collection/components/dialog/scss/bq-dialog.css +1 -1
- package/dist/collection/components/drawer/scss/bq-drawer.css +1 -1
- package/dist/collection/components/icon/helper/request.js +50 -34
- package/dist/collection/components/icon/helper/request.js.map +1 -1
- package/dist/collection/components/notification/bq-notification.js +4 -4
- package/dist/collection/components/notification/bq-notification.js.map +1 -1
- package/dist/collection/components/notification/scss/bq-notification.css +1 -1
- package/dist/collection/components/select/scss/bq-select.css +1 -1
- package/dist/collection/components/side-menu/bq-side-menu.js +9 -3
- package/dist/collection/components/side-menu/bq-side-menu.js.map +1 -1
- package/dist/collection/components/toast/bq-toast.js +3 -3
- package/dist/collection/components/toast/bq-toast.js.map +1 -1
- package/dist/collection/shared/utils/assetsPath.js +47 -35
- package/dist/collection/shared/utils/assetsPath.js.map +1 -1
- package/dist/collection/shared/utils/cssVariables.js +1 -1
- package/dist/collection/shared/utils/cssVariables.js.map +1 -1
- package/dist/components/bq-accordion-group.js +0 -1
- package/dist/components/bq-accordion-group.js.map +1 -1
- package/dist/components/bq-accordion.js +0 -1
- package/dist/components/bq-accordion.js.map +1 -1
- package/dist/components/bq-alert.js +1 -2
- package/dist/components/bq-alert.js.map +1 -1
- package/dist/components/bq-avatar.js +0 -1
- package/dist/components/bq-avatar.js.map +1 -1
- package/dist/components/bq-badge2.js +0 -1
- package/dist/components/bq-badge2.js.map +1 -1
- package/dist/components/bq-breadcrumb-item.js +0 -1
- package/dist/components/bq-breadcrumb-item.js.map +1 -1
- package/dist/components/bq-breadcrumb.js +0 -1
- package/dist/components/bq-breadcrumb.js.map +1 -1
- package/dist/components/bq-button2.js +42 -18
- package/dist/components/bq-button2.js.map +1 -1
- package/dist/components/bq-card.js +0 -1
- package/dist/components/bq-card.js.map +1 -1
- package/dist/components/bq-checkbox.js +0 -1
- package/dist/components/bq-checkbox.js.map +1 -1
- package/dist/components/bq-date-picker.js +1 -2
- package/dist/components/bq-date-picker.js.map +1 -1
- package/dist/components/bq-dialog.js +1 -2
- package/dist/components/bq-dialog.js.map +1 -1
- package/dist/components/bq-divider2.js +0 -1
- package/dist/components/bq-divider2.js.map +1 -1
- package/dist/components/bq-drawer.js +1 -2
- package/dist/components/bq-drawer.js.map +1 -1
- package/dist/components/bq-empty-state.js +0 -1
- package/dist/components/bq-empty-state.js.map +1 -1
- package/dist/components/bq-icon2.js +118 -36
- package/dist/components/bq-icon2.js.map +1 -1
- package/dist/components/bq-input.js +0 -1
- package/dist/components/bq-input.js.map +1 -1
- package/dist/components/bq-notification.js +5 -6
- package/dist/components/bq-notification.js.map +1 -1
- package/dist/components/bq-option-list2.js +0 -1
- package/dist/components/bq-option-list2.js.map +1 -1
- package/dist/components/bq-option.js +0 -1
- package/dist/components/bq-option.js.map +1 -1
- package/dist/components/bq-page-title.js +0 -1
- package/dist/components/bq-page-title.js.map +1 -1
- package/dist/components/bq-progress.js +0 -1
- package/dist/components/bq-progress.js.map +1 -1
- package/dist/components/bq-radio-group.js +0 -1
- package/dist/components/bq-radio-group.js.map +1 -1
- package/dist/components/bq-select.js +1 -2
- package/dist/components/bq-select.js.map +1 -1
- package/dist/components/bq-side-menu-item.js +0 -1
- package/dist/components/bq-side-menu-item.js.map +1 -1
- package/dist/components/bq-side-menu.js +5 -4
- package/dist/components/bq-side-menu.js.map +1 -1
- package/dist/components/bq-slider.js +0 -1
- package/dist/components/bq-slider.js.map +1 -1
- package/dist/components/bq-spinner.js +0 -1
- package/dist/components/bq-spinner.js.map +1 -1
- package/dist/components/bq-status.js +0 -1
- package/dist/components/bq-status.js.map +1 -1
- package/dist/components/bq-step-item.js +0 -1
- package/dist/components/bq-step-item.js.map +1 -1
- package/dist/components/bq-steps.js +0 -1
- package/dist/components/bq-steps.js.map +1 -1
- package/dist/components/bq-switch.js +0 -1
- package/dist/components/bq-switch.js.map +1 -1
- package/dist/components/bq-tab-group.js +0 -1
- package/dist/components/bq-tab-group.js.map +1 -1
- package/dist/components/bq-tab.js +0 -1
- package/dist/components/bq-tab.js.map +1 -1
- package/dist/components/bq-tag2.js +0 -1
- package/dist/components/bq-tag2.js.map +1 -1
- package/dist/components/bq-textarea.js +0 -1
- package/dist/components/bq-textarea.js.map +1 -1
- package/dist/components/bq-toast.js +3 -4
- package/dist/components/bq-toast.js.map +1 -1
- package/dist/components/cssVariables.js +1 -1
- package/dist/components/cssVariables.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/isDefined.js +0 -1
- package/dist/components/isDefined.js.map +1 -1
- package/dist/esm/assetsPath-beeee241.js +74 -0
- package/dist/esm/assetsPath-beeee241.js.map +1 -0
- package/dist/esm/beeq.js +1 -1
- package/dist/esm/bq-accordion-group.entry.js +0 -1
- package/dist/esm/bq-accordion-group.entry.js.map +1 -1
- package/dist/esm/bq-accordion.entry.js +0 -1
- package/dist/esm/bq-accordion.entry.js.map +1 -1
- package/dist/esm/bq-alert.entry.js +1 -2
- package/dist/esm/bq-alert.entry.js.map +1 -1
- package/dist/esm/bq-avatar.entry.js +0 -1
- package/dist/esm/bq-avatar.entry.js.map +1 -1
- package/dist/esm/bq-badge.entry.js +1 -2
- package/dist/esm/bq-badge.entry.js.map +1 -1
- package/dist/esm/bq-breadcrumb-item.entry.js +1 -2
- package/dist/esm/bq-breadcrumb-item.entry.js.map +1 -1
- package/dist/esm/bq-breadcrumb.entry.js +0 -1
- package/dist/esm/bq-breadcrumb.entry.js.map +1 -1
- package/dist/esm/bq-button_2.entry.js +100 -53
- package/dist/esm/bq-button_2.entry.js.map +1 -1
- package/dist/esm/bq-card.entry.js +0 -1
- package/dist/esm/bq-card.entry.js.map +1 -1
- package/dist/esm/bq-checkbox.entry.js +0 -1
- package/dist/esm/bq-checkbox.entry.js.map +1 -1
- package/dist/esm/bq-date-picker.entry.js +2 -3
- package/dist/esm/bq-date-picker.entry.js.map +1 -1
- package/dist/esm/bq-dialog.entry.js +1 -2
- package/dist/esm/bq-dialog.entry.js.map +1 -1
- package/dist/esm/bq-divider.entry.js +1 -2
- package/dist/esm/bq-divider.entry.js.map +1 -1
- package/dist/esm/bq-drawer.entry.js +1 -2
- package/dist/esm/bq-drawer.entry.js.map +1 -1
- package/dist/esm/bq-empty-state.entry.js +0 -1
- package/dist/esm/bq-empty-state.entry.js.map +1 -1
- package/dist/esm/bq-input.entry.js +1 -2
- package/dist/esm/bq-input.entry.js.map +1 -1
- package/dist/esm/bq-notification.entry.js +5 -6
- package/dist/esm/bq-notification.entry.js.map +1 -1
- package/dist/esm/bq-option-list_2.entry.js +1 -2
- package/dist/esm/bq-option-list_2.entry.js.map +1 -1
- package/dist/esm/bq-option.entry.js +0 -1
- package/dist/esm/bq-option.entry.js.map +1 -1
- package/dist/esm/bq-page-title.entry.js +0 -1
- package/dist/esm/bq-page-title.entry.js.map +1 -1
- package/dist/esm/bq-progress.entry.js +0 -1
- package/dist/esm/bq-progress.entry.js.map +1 -1
- package/dist/esm/bq-radio-group.entry.js +0 -1
- package/dist/esm/bq-radio-group.entry.js.map +1 -1
- package/dist/esm/bq-select.entry.js +2 -3
- package/dist/esm/bq-select.entry.js.map +1 -1
- package/dist/esm/bq-side-menu-item.entry.js +0 -1
- package/dist/esm/bq-side-menu-item.entry.js.map +1 -1
- package/dist/esm/bq-side-menu.entry.js +4 -4
- package/dist/esm/bq-side-menu.entry.js.map +1 -1
- package/dist/esm/bq-slider.entry.js +0 -1
- package/dist/esm/bq-slider.entry.js.map +1 -1
- package/dist/esm/bq-spinner.entry.js +1 -2
- package/dist/esm/bq-spinner.entry.js.map +1 -1
- package/dist/esm/bq-status.entry.js +0 -1
- package/dist/esm/bq-status.entry.js.map +1 -1
- package/dist/esm/bq-step-item.entry.js +0 -1
- package/dist/esm/bq-step-item.entry.js.map +1 -1
- package/dist/esm/bq-steps.entry.js +0 -1
- package/dist/esm/bq-steps.entry.js.map +1 -1
- package/dist/esm/bq-switch.entry.js +0 -1
- package/dist/esm/bq-switch.entry.js.map +1 -1
- package/dist/esm/bq-tab-group.entry.js +0 -1
- package/dist/esm/bq-tab-group.entry.js.map +1 -1
- package/dist/esm/bq-tab.entry.js +0 -1
- package/dist/esm/bq-tab.entry.js.map +1 -1
- package/dist/esm/bq-textarea.entry.js +0 -1
- package/dist/esm/bq-textarea.entry.js.map +1 -1
- package/dist/esm/bq-toast.entry.js +3 -4
- package/dist/esm/bq-toast.entry.js.map +1 -1
- package/dist/esm/{cssVariables-23e3ca0d.js → cssVariables-000c23ad.js} +2 -2
- package/dist/esm/cssVariables-000c23ad.js.map +1 -0
- package/dist/esm/index.js +4 -4
- package/dist/esm/{isDefined-650befc3.js → isDefined-0cb07ee6.js} +1 -2
- package/dist/esm/isDefined-0cb07ee6.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/hydrate/index.js +164 -103
- package/dist/hydrate/index.mjs +164 -103
- package/dist/types/components/button/bq-button.d.ts +5 -0
- package/dist/types/components/icon/helper/request.d.ts +17 -1
- package/dist/types/shared/utils/assetsPath.d.ts +5 -9
- package/package.json +1 -1
- package/dist/beeq/p-5a9a73a0.js.map +0 -1
- package/dist/beeq/p-5fcbf15f.entry.js.map +0 -1
- package/dist/beeq/p-7aa47927.entry.js.map +0 -1
- package/dist/beeq/p-a84d4562.js +0 -64
- package/dist/beeq/p-a84d4562.js.map +0 -1
- package/dist/beeq/p-b877d662.entry.js.map +0 -1
- package/dist/beeq/p-e06c8398.entry.js.map +0 -1
- package/dist/cjs/assetsPath-6ac8935a.js +0 -65
- package/dist/cjs/assetsPath-6ac8935a.js.map +0 -1
- package/dist/cjs/cssVariables-a0e1e906.js.map +0 -1
- package/dist/cjs/isDefined-ee0026ed.js.map +0 -1
- package/dist/components/assetsPath.js +0 -62
- package/dist/components/assetsPath.js.map +0 -1
- package/dist/esm/assetsPath-e2f1ceb9.js +0 -62
- package/dist/esm/assetsPath-e2f1ceb9.js.map +0 -1
- package/dist/esm/cssVariables-23e3ca0d.js.map +0 -1
- package/dist/esm/isDefined-650befc3.js.map +0 -1
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { r as a, c as r, g as e, h as b, a as n } from "./p-01df4baa.js";
|
|
6
6
|
|
|
7
|
-
import "./p-a84d4562.js";
|
|
8
|
-
|
|
9
7
|
import { d as t } from "./p-1defeea3.js";
|
|
10
8
|
|
|
11
9
|
import { g as q } from "./p-115ed5b2.js";
|
|
@@ -209,4 +207,4 @@ const g = class {
|
|
|
209
207
|
g.style = u;
|
|
210
208
|
|
|
211
209
|
export { g as bq_tab_group };
|
|
212
|
-
//# sourceMappingURL=p-
|
|
210
|
+
//# sourceMappingURL=p-8b16f130.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["bqTabGroupCss","BqTabGroupStyle0","BqTabGroup","debouncedBqChange","checkDebounceChange","this","debounceTime","Math","max","cancel","debounce","event","bqChange","emit","checkPropValues","validatePropValue","TAB_SIZE","el","TAB_ORIENTATION","TAB_PLACEMENT","bqTabElements","forEach","bqTabElement","size","orientation","placement","active","isNil","value","tabId","componentWillLoad","componentDidLoad","onKeyUp","target","isHTMLElement","makeTabsFocusable","onBqClick","detail","selectTab","onBqKeyDown","keyActions","ArrowDown","ArrowRight","ArrowUp","ArrowLeft","direction","key","focusTabSibling","onBqBlur","restoreTabsFocus","async","currentTarget","index","elements","getNextElement","vFocus","disabled","enableFocus","Array","from","querySelectorAll","render","h","Host","class","disableDivider","part","role"],"sources":["../../packages/beeq/src/components/tab-group/scss/bq-tab-group.scss?tag=bq-tab-group&encapsulation=shadow","../../packages/beeq/src/components/tab-group/bq-tab-group.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Tab styles */\n/* -------------------------------------------------------------------------- */\n\n:host {\n @apply block;\n}\n\n.bq-tab-group {\n @apply relative;\n\n &::after {\n @apply absolute flex border-0 border-solid border-bg-tertiary content-empty;\n }\n\n &--horizontal-start,\n &--horizontal-end {\n &::after {\n @apply is-full inset-be-0 [border-block-end-width:--bq-stroke-s];\n }\n }\n\n &--horizontal-start {\n @apply justify-start;\n }\n\n &--horizontal-end {\n @apply justify-end;\n }\n\n &--vertical-start::after {\n @apply end-0 bs-full is-0 [border-block-end-width:0px] [border-inline-end-width:--bq-stroke-s];\n }\n\n &--vertical-end::after {\n @apply start-0 bs-full is-0 [border-block-end-width:0px] [border-inline-start-width:--bq-stroke-s];\n }\n}\n\n.bq-tab-group.no-divider {\n &::after {\n @apply content-none;\n }\n}\n\n.bq-tab-group--container {\n @include hide-scrollbar;\n @apply gap-xs2 p-xs2; // This will avoid cutting the outline focus style\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Prop, Watch } from '@stencil/core';\n\nimport { debounce, getNextElement, isHTMLElement, isNil, TDebounce, validatePropValue } from '../../shared/utils';\nimport {\n TAB_ORIENTATION,\n TAB_PLACEMENT,\n TAB_SIZE,\n TTabOrientation,\n TTabPlacement,\n TTabSize,\n} from '../tab/bq-tab.types';\n\n/**\n * @part base - The HTML div wrapper inside the shadow DOM.\n * @part tabs - The HTML div used to hold the tab buttons.\n */\n@Component({\n tag: 'bq-tab-group',\n styleUrl: './scss/bq-tab-group.scss',\n shadow: true,\n})\nexport class BqTabGroup {\n // Own Properties\n // ====================\n\n private debouncedBqChange: TDebounce<{ value: string; target: HTMLBqTabElement }>;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqTabGroupElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** A string representing the id of the selected tab. */\n @Prop({ reflect: true, mutable: true }) value: string;\n\n /** The size of the tab */\n @Prop({ reflect: true }) size: TTabSize = 'medium';\n\n /** The direction that tab should be render */\n @Prop({ reflect: true }) orientation?: TTabOrientation = 'horizontal';\n\n /** The placement that tab should be render */\n @Prop({ reflect: true }) placement?: TTabPlacement = 'start';\n\n /** A number representing the delay value applied to bqChange event handler */\n @Prop({ reflect: true, mutable: true }) debounceTime = 0;\n\n /** If true, the underline divider below the tabs won't be shown */\n @Prop({ reflect: true }) disableDivider = false;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('debounceTime')\n checkDebounceChange() {\n if (this.debounceTime < 0) {\n this.debounceTime = Math.max(0, this.debounceTime);\n }\n\n if (this.debouncedBqChange) {\n this.debouncedBqChange.cancel();\n }\n\n this.debouncedBqChange = debounce((event: Parameters<typeof this.debouncedBqChange>[0]) => {\n this.bqChange.emit(event);\n }, this.debounceTime);\n }\n\n @Watch('size')\n @Watch('value')\n @Watch('orientation')\n @Watch('placement')\n checkPropValues() {\n validatePropValue(TAB_SIZE, 'medium', this.el, 'size');\n validatePropValue(TAB_ORIENTATION, 'horizontal', this.el, 'orientation');\n validatePropValue(TAB_PLACEMENT, 'start', this.el, 'placement');\n\n this.bqTabElements.forEach((bqTabElement) => {\n bqTabElement.size = this.size;\n bqTabElement.orientation = this.orientation;\n bqTabElement.placement = this.placement;\n bqTabElement.active = !isNil(this.value) ? bqTabElement.tabId === this.value : false;\n });\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when the tab value changes */\n @Event() bqChange: EventEmitter<{ target: HTMLBqTabElement; value: string }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.checkDebounceChange();\n this.checkPropValues();\n }\n\n componentDidLoad() {\n this.checkPropValues();\n }\n\n // Listeners\n // ==============\n\n @Listen('keyup', { target: 'body', passive: true, capture: true })\n onKeyUp(event: KeyboardEvent) {\n const { target } = event;\n if (!isHTMLElement(target, 'bq-tab')) return;\n\n this.makeTabsFocusable();\n }\n\n @Listen('bqClick', { passive: true })\n onBqClick(event: CustomEvent<HTMLBqTabElement>) {\n const { detail: target } = event;\n this.bqTabElements.forEach((bqTabElement) => (bqTabElement.active = bqTabElement === target));\n this.debouncedBqChange({ value: target.tabId, target });\n this.selectTab(target);\n }\n\n @Listen('bqKeyDown', { passive: true })\n async onBqKeyDown(event: CustomEvent<KeyboardEvent>) {\n const { target } = event;\n\n // NOTE: ensures the target is an HTML element with the tag name 'bq-tab'\n if (!isHTMLElement(target, 'bq-tab')) return;\n\n const keyActions: { [key: string]: 'forward' | 'backward' } = {\n ArrowDown: 'forward',\n ArrowRight: 'forward',\n ArrowUp: 'backward',\n ArrowLeft: 'backward',\n };\n\n // NOTE: gets the direction based on key pressed\n const direction = keyActions[event.detail.key];\n\n if (!direction) return;\n\n await this.focusTabSibling(target, direction);\n }\n\n @Listen('bqBlur', { capture: true, passive: true })\n onBqBlur() {\n this.restoreTabsFocus();\n }\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private focusTabSibling = async (\n currentTarget: HTMLBqTabElement,\n direction: 'forward' | 'backward',\n ): Promise<void> => {\n let target: HTMLBqTabElement | null = null;\n\n this.bqTabElements.forEach((bqTabElement, index, elements) => {\n bqTabElement.active = false;\n\n if (bqTabElement === currentTarget) {\n target = getNextElement(elements, index, direction);\n }\n });\n\n if (target) {\n await target.vFocus();\n this.selectTab(target);\n }\n };\n\n private makeTabsFocusable = (): void => {\n this.bqTabElements.forEach((bqTabElement) => {\n if (bqTabElement.disabled) return;\n\n /**\n * This is a \"fire and forget\" operation. The callback itself doesn't do anything special\n * with the asynchronous code (doesn't await it or do anything with the result)\n * Details: https://stackoverflow.com/a/63488201\n */\n (async () => {\n await bqTabElement.enableFocus(true);\n })();\n });\n };\n\n private restoreTabsFocus = (): void => {\n this.bqTabElements.forEach((bqTabElement) => {\n if (bqTabElement.disabled || bqTabElement.active) return;\n\n /** @See line #173 */\n (async () => {\n await bqTabElement.enableFocus(false);\n })();\n });\n };\n\n private get bqTabElements(): HTMLBqTabElement[] {\n return Array.from(this.el.querySelectorAll('bq-tab'));\n }\n\n private selectTab = (target: HTMLBqTabElement): void => {\n const { tabId } = target;\n target.active = true;\n this.value = tabId;\n this.debouncedBqChange({ value: tabId, target });\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <Host class={{ 'inline-block': this.orientation === 'vertical' }}>\n <div\n class={{\n [`bq-tab-group bq-tab-group--${this.orientation}-${this.placement} flex is-full`]: true,\n 'no-divider': this.disableDivider,\n }}\n part=\"base\"\n >\n <div\n class={{\n 'bq-tab-group--container flex overflow-x-auto': true,\n 'flex-col': this.orientation !== 'horizontal',\n }}\n role=\"tablist\"\n part=\"tabs\"\n >\n <slot />\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["bqTabGroupCss","BqTabGroupStyle0","BqTabGroup","debouncedBqChange","checkDebounceChange","this","debounceTime","Math","max","cancel","debounce","event","bqChange","emit","checkPropValues","validatePropValue","TAB_SIZE","el","TAB_ORIENTATION","TAB_PLACEMENT","bqTabElements","forEach","bqTabElement","size","orientation","placement","active","isNil","value","tabId","componentWillLoad","componentDidLoad","onKeyUp","target","isHTMLElement","makeTabsFocusable","onBqClick","detail","selectTab","onBqKeyDown","keyActions","ArrowDown","ArrowRight","ArrowUp","ArrowLeft","direction","key","focusTabSibling","onBqBlur","restoreTabsFocus","async","currentTarget","index","elements","getNextElement","vFocus","disabled","enableFocus","Array","from","querySelectorAll","render","h","Host","class","disableDivider","part","role"],"sources":["../../packages/beeq/src/components/tab-group/scss/bq-tab-group.scss?tag=bq-tab-group&encapsulation=shadow","../../packages/beeq/src/components/tab-group/bq-tab-group.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Tab styles */\n/* -------------------------------------------------------------------------- */\n\n:host {\n @apply block;\n}\n\n.bq-tab-group {\n @apply relative;\n\n &::after {\n @apply absolute flex border-0 border-solid border-bg-tertiary content-empty;\n }\n\n &--horizontal-start,\n &--horizontal-end {\n &::after {\n @apply is-full inset-be-0 [border-block-end-width:--bq-stroke-s];\n }\n }\n\n &--horizontal-start {\n @apply justify-start;\n }\n\n &--horizontal-end {\n @apply justify-end;\n }\n\n &--vertical-start::after {\n @apply end-0 bs-full is-0 [border-block-end-width:0px] [border-inline-end-width:--bq-stroke-s];\n }\n\n &--vertical-end::after {\n @apply start-0 bs-full is-0 [border-block-end-width:0px] [border-inline-start-width:--bq-stroke-s];\n }\n}\n\n.bq-tab-group.no-divider {\n &::after {\n @apply content-none;\n }\n}\n\n.bq-tab-group--container {\n @include hide-scrollbar;\n @apply gap-xs2 p-xs2; // This will avoid cutting the outline focus style\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Prop, Watch } from '@stencil/core';\n\nimport { debounce, getNextElement, isHTMLElement, isNil, TDebounce, validatePropValue } from '../../shared/utils';\nimport {\n TAB_ORIENTATION,\n TAB_PLACEMENT,\n TAB_SIZE,\n TTabOrientation,\n TTabPlacement,\n TTabSize,\n} from '../tab/bq-tab.types';\n\n/**\n * @part base - The HTML div wrapper inside the shadow DOM.\n * @part tabs - The HTML div used to hold the tab buttons.\n */\n@Component({\n tag: 'bq-tab-group',\n styleUrl: './scss/bq-tab-group.scss',\n shadow: true,\n})\nexport class BqTabGroup {\n // Own Properties\n // ====================\n\n private debouncedBqChange: TDebounce<{ value: string; target: HTMLBqTabElement }>;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqTabGroupElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** A string representing the id of the selected tab. */\n @Prop({ reflect: true, mutable: true }) value: string;\n\n /** The size of the tab */\n @Prop({ reflect: true }) size: TTabSize = 'medium';\n\n /** The direction that tab should be render */\n @Prop({ reflect: true }) orientation?: TTabOrientation = 'horizontal';\n\n /** The placement that tab should be render */\n @Prop({ reflect: true }) placement?: TTabPlacement = 'start';\n\n /** A number representing the delay value applied to bqChange event handler */\n @Prop({ reflect: true, mutable: true }) debounceTime = 0;\n\n /** If true, the underline divider below the tabs won't be shown */\n @Prop({ reflect: true }) disableDivider = false;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('debounceTime')\n checkDebounceChange() {\n if (this.debounceTime < 0) {\n this.debounceTime = Math.max(0, this.debounceTime);\n }\n\n if (this.debouncedBqChange) {\n this.debouncedBqChange.cancel();\n }\n\n this.debouncedBqChange = debounce((event: Parameters<typeof this.debouncedBqChange>[0]) => {\n this.bqChange.emit(event);\n }, this.debounceTime);\n }\n\n @Watch('size')\n @Watch('value')\n @Watch('orientation')\n @Watch('placement')\n checkPropValues() {\n validatePropValue(TAB_SIZE, 'medium', this.el, 'size');\n validatePropValue(TAB_ORIENTATION, 'horizontal', this.el, 'orientation');\n validatePropValue(TAB_PLACEMENT, 'start', this.el, 'placement');\n\n this.bqTabElements.forEach((bqTabElement) => {\n bqTabElement.size = this.size;\n bqTabElement.orientation = this.orientation;\n bqTabElement.placement = this.placement;\n bqTabElement.active = !isNil(this.value) ? bqTabElement.tabId === this.value : false;\n });\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when the tab value changes */\n @Event() bqChange: EventEmitter<{ target: HTMLBqTabElement; value: string }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.checkDebounceChange();\n this.checkPropValues();\n }\n\n componentDidLoad() {\n this.checkPropValues();\n }\n\n // Listeners\n // ==============\n\n @Listen('keyup', { target: 'body', passive: true, capture: true })\n onKeyUp(event: KeyboardEvent) {\n const { target } = event;\n if (!isHTMLElement(target, 'bq-tab')) return;\n\n this.makeTabsFocusable();\n }\n\n @Listen('bqClick', { passive: true })\n onBqClick(event: CustomEvent<HTMLBqTabElement>) {\n const { detail: target } = event;\n this.bqTabElements.forEach((bqTabElement) => (bqTabElement.active = bqTabElement === target));\n this.debouncedBqChange({ value: target.tabId, target });\n this.selectTab(target);\n }\n\n @Listen('bqKeyDown', { passive: true })\n async onBqKeyDown(event: CustomEvent<KeyboardEvent>) {\n const { target } = event;\n\n // NOTE: ensures the target is an HTML element with the tag name 'bq-tab'\n if (!isHTMLElement(target, 'bq-tab')) return;\n\n const keyActions: { [key: string]: 'forward' | 'backward' } = {\n ArrowDown: 'forward',\n ArrowRight: 'forward',\n ArrowUp: 'backward',\n ArrowLeft: 'backward',\n };\n\n // NOTE: gets the direction based on key pressed\n const direction = keyActions[event.detail.key];\n\n if (!direction) return;\n\n await this.focusTabSibling(target, direction);\n }\n\n @Listen('bqBlur', { capture: true, passive: true })\n onBqBlur() {\n this.restoreTabsFocus();\n }\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private focusTabSibling = async (\n currentTarget: HTMLBqTabElement,\n direction: 'forward' | 'backward',\n ): Promise<void> => {\n let target: HTMLBqTabElement | null = null;\n\n this.bqTabElements.forEach((bqTabElement, index, elements) => {\n bqTabElement.active = false;\n\n if (bqTabElement === currentTarget) {\n target = getNextElement(elements, index, direction);\n }\n });\n\n if (target) {\n await target.vFocus();\n this.selectTab(target);\n }\n };\n\n private makeTabsFocusable = (): void => {\n this.bqTabElements.forEach((bqTabElement) => {\n if (bqTabElement.disabled) return;\n\n /**\n * This is a \"fire and forget\" operation. The callback itself doesn't do anything special\n * with the asynchronous code (doesn't await it or do anything with the result)\n * Details: https://stackoverflow.com/a/63488201\n */\n (async () => {\n await bqTabElement.enableFocus(true);\n })();\n });\n };\n\n private restoreTabsFocus = (): void => {\n this.bqTabElements.forEach((bqTabElement) => {\n if (bqTabElement.disabled || bqTabElement.active) return;\n\n /** @See line #173 */\n (async () => {\n await bqTabElement.enableFocus(false);\n })();\n });\n };\n\n private get bqTabElements(): HTMLBqTabElement[] {\n return Array.from(this.el.querySelectorAll('bq-tab'));\n }\n\n private selectTab = (target: HTMLBqTabElement): void => {\n const { tabId } = target;\n target.active = true;\n this.value = tabId;\n this.debouncedBqChange({ value: tabId, target });\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <Host class={{ 'inline-block': this.orientation === 'vertical' }}>\n <div\n class={{\n [`bq-tab-group bq-tab-group--${this.orientation}-${this.placement} flex is-full`]: true,\n 'no-divider': this.disableDivider,\n }}\n part=\"base\"\n >\n <div\n class={{\n 'bq-tab-group--container flex overflow-x-auto': true,\n 'flex-col': this.orientation !== 'horizontal',\n }}\n role=\"tablist\"\n part=\"tabs\"\n >\n <slot />\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,MAAMA,IAAgB;;AACtB,MAAAC,IAAeD;;MCoBFE,IAAU;;;;;gBAsBqB;uBAGe;qBAGJ;wBAGE;0BAGb;;;;EA9BlCC;;;;;;EAoCR,mBAAAC;IACE,IAAIC,KAAKC,eAAe,GAAG;MACzBD,KAAKC,eAAeC,KAAKC,IAAI,GAAGH,KAAKC;;IAGvC,IAAID,KAAKF,mBAAmB;MAC1BE,KAAKF,kBAAkBM;;IAGzBJ,KAAKF,oBAAoBO,GAAUC;MACjCN,KAAKO,SAASC,KAAKF;AAAM,QACxBN,KAAKC;;EAOV,eAAAQ;IACEC,EAAkBC,GAAU,UAAUX,KAAKY,IAAI;IAC/CF,EAAkBG,GAAiB,cAAcb,KAAKY,IAAI;IAC1DF,EAAkBI,GAAe,SAASd,KAAKY,IAAI;IAEnDZ,KAAKe,cAAcC,SAASC;MAC1BA,EAAaC,OAAOlB,KAAKkB;MACzBD,EAAaE,cAAcnB,KAAKmB;MAChCF,EAAaG,YAAYpB,KAAKoB;MAC9BH,EAAaI,UAAUC,EAAMtB,KAAKuB,SAASN,EAAaO,UAAUxB,KAAKuB,QAAQ;AAAK;;;;;;EAS/EhB;;;;EAMT,iBAAAkB;IACEzB,KAAKD;IACLC,KAAKS;;EAGP,gBAAAiB;IACE1B,KAAKS;;;;EAOP,OAAAkB,CAAQrB;IACN,OAAMsB,QAAEA,KAAWtB;IACnB,KAAKuB,EAAcD,GAAQ,WAAW;IAEtC5B,KAAK8B;;EAIP,SAAAC,CAAUzB;IACR,OAAQ0B,QAAQJ,KAAWtB;IAC3BN,KAAKe,cAAcC,SAASC,KAAkBA,EAAaI,SAASJ,MAAiBW;IACrF5B,KAAKF,kBAAkB;MAAEyB,OAAOK,EAAOJ;MAAOI;;IAC9C5B,KAAKiC,UAAUL;;EAIjB,iBAAMM,CAAY5B;IAChB,OAAMsB,QAAEA,KAAWtB;;QAGnB,KAAKuB,EAAcD,GAAQ,WAAW;IAEtC,MAAMO,IAAwD;MAC5DC,WAAW;MACXC,YAAY;MACZC,SAAS;MACTC,WAAW;;;QAIb,MAAMC,IAAYL,EAAW7B,EAAM0B,OAAOS;IAE1C,KAAKD,GAAW;UAEVxC,KAAK0C,gBAAgBd,GAAQY;;EAIrC,QAAAG;IACE3C,KAAK4C;;;;;;;;;;;;EAeCF,gBAAkBG,OACxBC,GACAN;IAEA,IAAIZ,IAAkC;IAEtC5B,KAAKe,cAAcC,SAAQ,CAACC,GAAc8B,GAAOC;MAC/C/B,EAAaI,SAAS;MAEtB,IAAIJ,MAAiB6B,GAAe;QAClClB,IAASqB,EAAeD,GAAUD,GAAOP;;;IAI7C,IAAIZ,GAAQ;YACJA,EAAOsB;MACblD,KAAKiC,UAAUL;;;EAIXE,kBAAoB;IAC1B9B,KAAKe,cAAcC,SAASC;MAC1B,IAAIA,EAAakC,UAAU;;;;;qBAO3B;cACQlC,EAAamC,YAAY;AAChC,QAFD;AAEI;AACJ;EAGIR,iBAAmB;IACzB5C,KAAKe,cAAcC,SAASC;MAC1B,IAAIA,EAAakC,YAAYlC,EAAaI,QAAQ;iCAGlD;cACQJ,EAAamC,YAAY;AAChC,QAFD;AAEI;AACJ;EAGJ,iBAAYrC;IACV,OAAOsC,MAAMC,KAAKtD,KAAKY,GAAG2C,iBAAiB;;EAGrCtB,UAAaL;IACnB,OAAMJ,OAAEA,KAAUI;IAClBA,EAAOP,SAAS;IAChBrB,KAAKuB,QAAQC;IACbxB,KAAKF,kBAAkB;MAAEyB,OAAOC;MAAOI;;AAAS;;;;EAOlD,MAAA4B;IACE,OACEC,EAACC,GAAI;MAAAjB,KAAA;MAACkB,OAAO;QAAE,gBAAgB3D,KAAKmB,gBAAgB;;OAClDsC,EAAA;MAAAhB,KAAA;MACEkB,OAAO;QACL,CAAC,8BAA8B3D,KAAKmB,eAAenB,KAAKoB,2BAA2B;QACnF,cAAcpB,KAAK4D;;MAErBC,MAAK;OAELJ,EAAA;MAAAhB,KAAA;MACEkB,OAAO;QACL,gDAAgD;QAChD,YAAY3D,KAAKmB,gBAAgB;;MAEnC2C,MAAK;MACLD,MAAK;OAELJ,EAAA;MAAAhB,KAAA","ignoreList":[]}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Built by Endavans
|
|
3
|
+
* © https://beeq.design - Apache 2 License.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Inspired by Shoelace's `getBasePath` and `setBasePath` functions.
|
|
7
|
+
* https://github.com/shoelace-style/shoelace/blob/next/src/utilities/base-path.ts
|
|
8
|
+
*/
|
|
9
|
+
let n;
|
|
10
|
+
|
|
11
|
+
const t = "data-beeq";
|
|
12
|
+
|
|
13
|
+
const e = "svg";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Sets the base path for the assets.
|
|
17
|
+
* @param {string} path - The base path to set.
|
|
18
|
+
*/ const setBasePath = t => {
|
|
19
|
+
n = t;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Gets the base path for the assets.
|
|
24
|
+
* @param {string} subpath - An optional subpath to append to the base path.
|
|
25
|
+
* @returns {string} The base path of the assets.
|
|
26
|
+
*/ const getBasePath = (s = "") => {
|
|
27
|
+
if (!n) {
|
|
28
|
+
const n = findConfigScript();
|
|
29
|
+
const s = n ? null : findFallbackScript();
|
|
30
|
+
const o = n || s;
|
|
31
|
+
if (o) {
|
|
32
|
+
const s = n ? o.getAttribute(t) : getScriptPath(o);
|
|
33
|
+
setBasePath(`${s}/${e}`);
|
|
34
|
+
} else {
|
|
35
|
+
// Fallback: use an environment variable (if set) or the default path
|
|
36
|
+
setBasePath(process.env.ASSETS_BASE_PATH || `./${e}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// Return the base path without a trailing slash. If one exists, append the subpath separated by a slash.
|
|
40
|
+
const o = s ? `/${s.replace(/^\//, "")}` : "";
|
|
41
|
+
return n.replace(/\/$/, "") + o;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Finds the configuration script element.
|
|
46
|
+
* @returns The configuration script element or null if not found.
|
|
47
|
+
*/ const findConfigScript = () => {
|
|
48
|
+
if (typeof window === "undefined") return null;
|
|
49
|
+
return document.querySelector(`script[${t}]`);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Finds the fallback script element.
|
|
54
|
+
* @returns The fallback script element or null if not found.
|
|
55
|
+
*/ const findFallbackScript = () => {
|
|
56
|
+
if (typeof window === "undefined") return null;
|
|
57
|
+
return document.querySelector(`script[src*="beeq"]`);
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Gets the path of a script element.
|
|
62
|
+
* @param {HTMLScriptElement} script - The script element.
|
|
63
|
+
* @returns The path of the script element.
|
|
64
|
+
*/ const getScriptPath = n => {
|
|
65
|
+
if (typeof window === "undefined") return "";
|
|
66
|
+
const t = n.getAttribute("src");
|
|
67
|
+
return t ? t.substring(0, t.lastIndexOf("/")) : "";
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
export { getBasePath as g, setBasePath as s };
|
|
71
|
+
//# sourceMappingURL=p-8f1c68c0.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["basePath","DATA_BEEQ_ATTRIBUTE","DEFAULT_SVG_PATH","setBasePath","path","getBasePath","subpath","configScript","findConfigScript","fallbackScript","findFallbackScript","script","getAttribute","getScriptPath","process","env","ASSETS_BASE_PATH","formattedSubpath","replace","window","document","querySelector","src","substring","lastIndexOf"],"sources":["../../packages/beeq/src/shared/utils/assetsPath.ts"],"sourcesContent":["/**\n * Inspired by Shoelace's `getBasePath` and `setBasePath` functions.\n * https://github.com/shoelace-style/shoelace/blob/next/src/utilities/base-path.ts\n */\n\nlet basePath: string | undefined;\nconst DATA_BEEQ_ATTRIBUTE = 'data-beeq';\nconst DEFAULT_SVG_PATH = 'svg';\n\n/**\n * Sets the base path for the assets.\n * @param {string} path - The base path to set.\n */\nexport const setBasePath = (path: string): void => {\n basePath = path;\n};\n\n/**\n * Gets the base path for the assets.\n * @param {string} subpath - An optional subpath to append to the base path.\n * @returns {string} The base path of the assets.\n */\nexport const getBasePath = (subpath: string = ''): string => {\n if (!basePath) {\n const configScript = findConfigScript();\n const fallbackScript = configScript ? null : findFallbackScript();\n\n const script = configScript || fallbackScript;\n if (script) {\n const path = configScript ? script.getAttribute(DATA_BEEQ_ATTRIBUTE) : getScriptPath(script);\n setBasePath(`${path}/${DEFAULT_SVG_PATH}`);\n } else {\n // Fallback: use an environment variable (if set) or the default path\n setBasePath(process.env.ASSETS_BASE_PATH || `./${DEFAULT_SVG_PATH}`);\n }\n }\n\n // Return the base path without a trailing slash. If one exists, append the subpath separated by a slash.\n const formattedSubpath = subpath ? `/${subpath.replace(/^\\//, '')}` : '';\n return basePath.replace(/\\/$/, '') + formattedSubpath;\n};\n\n/**\n * Finds the configuration script element.\n * @returns The configuration script element or null if not found.\n */\nconst findConfigScript = (): HTMLScriptElement | null => {\n if (typeof window === 'undefined') return null;\n\n return document.querySelector(`script[${DATA_BEEQ_ATTRIBUTE}]`);\n};\n\n/**\n * Finds the fallback script element.\n * @returns The fallback script element or null if not found.\n */\nconst findFallbackScript = (): HTMLScriptElement | null => {\n if (typeof window === 'undefined') return null;\n\n return document.querySelector(`script[src*=\"beeq\"]`);\n};\n\n/**\n * Gets the path of a script element.\n * @param {HTMLScriptElement} script - The script element.\n * @returns The path of the script element.\n */\nconst getScriptPath = (script: HTMLScriptElement): string => {\n if (typeof window === 'undefined') return '';\n\n const src = script.getAttribute('src');\n return src ? src.substring(0, src.lastIndexOf('/')) : '';\n};\n"],"mappings":";;;;;;;;AAKA,IAAIA;;AACJ,MAAMC,IAAsB;;AAC5B,MAAMC,IAAmB;;;;;UAMZC,cAAeC;EAC1BJ,IAAWI;AAAI;;;;;;UAQJC,cAAc,CAACC,IAAkB;EAC5C,KAAKN,GAAU;IACb,MAAMO,IAAeC;IACrB,MAAMC,IAAiBF,IAAe,OAAOG;IAE7C,MAAMC,IAASJ,KAAgBE;IAC/B,IAAIE,GAAQ;MACV,MAAMP,IAAOG,IAAeI,EAAOC,aAAaX,KAAuBY,cAAcF;MACrFR,YAAY,GAAGC,KAAQF;WAClB;;MAELC,YAAYW,QAAQC,IAAIC,oBAAoB,KAAKd;;;;IAKrD,MAAMe,IAAmBX,IAAU,IAAIA,EAAQY,QAAQ,OAAO,QAAQ;EACtE,OAAOlB,EAASkB,QAAQ,OAAO,MAAMD;AAAgB;;;;;GAOvD,OAAMT,mBAAmB;EACvB,WAAWW,WAAW,aAAa,OAAO;EAE1C,OAAOC,SAASC,cAAc,UAAUpB;AAAuB;;;;;GAOjE,OAAMS,qBAAqB;EACzB,WAAWS,WAAW,aAAa,OAAO;EAE1C,OAAOC,SAASC,cAAc;AAAsB;;;;;;GAQtD,OAAMR,gBAAiBF;EACrB,WAAWQ,WAAW,aAAa,OAAO;EAE1C,MAAMG,IAAMX,EAAOC,aAAa;EAChC,OAAOU,IAAMA,EAAIC,UAAU,GAAGD,EAAIE,YAAY,QAAQ;AAAE","ignoreList":[]}
|
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { r as a, c as r, g as b, h as e, a as q } from "./p-01df4baa.js";
|
|
6
6
|
|
|
7
|
-
import "./p-a84d4562.js";
|
|
8
|
-
|
|
9
7
|
import { i as n } from "./p-57621be1.js";
|
|
10
8
|
|
|
11
9
|
const t = '::backdrop,:root{--bq-blue-100:#e7f0fd;--bq-blue-200:#d0e2fb;--bq-blue-300:#a1c5f7;--bq-blue-400:#73a8f3;--bq-blue-500:#448bef;--bq-blue-600:#156eeb;--bq-blue-700:#1158bc;--bq-blue-800:#0d428d;--bq-blue-900:#082c5e;--bq-blue-1000:#04162f;--bq-corai-100:#fff2f2;--bq-corai-200:#ffe6e6;--bq-corai-300:#ffccce;--bq-corai-400:#ffb3b5;--bq-corai-500:#ff999d;--bq-corai-600:#ff8084;--bq-corai-700:#cc666a;--bq-corai-800:#994d4f;--bq-corai-900:#663335;--bq-corai-1000:#331a1a;--bq-cyan-100:#e8f7fb;--bq-cyan-200:#d2f0f8;--bq-cyan-300:#a5e1f1;--bq-cyan-400:#78d1e9;--bq-cyan-500:#4bc2e2;--bq-cyan-600:#1eb3db;--bq-cyan-700:#188faf;--bq-cyan-800:#126b83;--bq-cyan-900:#0c4858;--bq-cyan-1000:#06242c;--bq-gold-100:#fbf4ec;--bq-gold-200:#f7e9da;--bq-gold-300:#f0d3b6;--bq-gold-400:#e8bc91;--bq-gold-500:#e1a66d;--bq-gold-600:#d99048;--bq-gold-700:#ae733a;--bq-gold-800:#82562b;--bq-gold-900:#573a1d;--bq-gold-1000:#2b1d0e;--bq-green-100:#e8f8ef;--bq-green-200:#d2f1e0;--bq-green-300:#a5e3c1;--bq-green-400:#78d5a1;--bq-green-500:#4bc782;--bq-green-600:#1eb963;--bq-green-700:#18944f;--bq-green-800:#126f3b;--bq-green-900:#0c4a28;--bq-green-1000:#062514;--bq-grey-100:#f1f2f4;--bq-grey-200:#e7e8eb;--bq-grey-300:#caccd2;--bq-grey-400:#a6aab3;--bq-grey-50:#f6f6f8;--bq-grey-500:#898e99;--bq-grey-600:#646a77;--bq-grey-700:#3f4350;--bq-grey-800:#2a2c35;--bq-grey-900:#1c1d23;--bq-grey-950:#15161a;--bq-grey-1000:#0d0e11;--bq-indigo-100:#edecfc;--bq-indigo-200:#dcdafa;--bq-indigo-300:#b9b5f5;--bq-indigo-400:#9590ef;--bq-indigo-500:#726bea;--bq-indigo-600:#4f46e5;--bq-indigo-700:#3f38b7;--bq-indigo-800:#2f2a89;--bq-indigo-900:#201c5c;--bq-indigo-1000:#100e2e;--bq-iris-100:#e9f0ff;--bq-iris-200:#d6e0ff;--bq-iris-300:#b2c0fe;--bq-iris-400:#8691f8;--bq-iris-500:#6061ee;--bq-iris-600:#4f46e5;--bq-iris-700:#413abd;--bq-iris-800:#332e95;--bq-iris-900:#26216d;--bq-iris-1000:#181545;--bq-lime-100:#f5fae8;--bq-lime-200:#ecf6d2;--bq-lime-300:#d9eda5;--bq-lime-400:#c5e379;--bq-lime-500:#b2da4c;--bq-lime-600:#9fd11f;--bq-lime-700:#7fa719;--bq-lime-800:#5f7d13;--bq-lime-900:#40540c;--bq-lime-1000:#202a06;--bq-magenta-100:#fce7f4;--bq-magenta-200:#f9cfea;--bq-magenta-300:#f39fd6;--bq-magenta-400:#ee6fbf;--bq-magenta-500:#e83fab;--bq-magenta-600:#de1395;--bq-magenta-700:#b20f77;--bq-magenta-800:#850c59;--bq-magenta-900:#58083c;--bq-magenta-1000:#2c041e;--bq-neutral-white:#fbfbfc;--bq-neutral-black:#060708;--bq-orange-100:#fbf0e9;--bq-orange-200:#f8e1d4;--bq-orange-300:#f1c2a8;--bq-orange-400:#eaa47d;--bq-orange-500:#e38551;--bq-orange-600:#dc6726;--bq-orange-700:#b0521e;--bq-orange-800:#843e17;--bq-orange-900:#58290f;--bq-orange-1000:#2c1508;--bq-purple-100:#efebf8;--bq-purple-200:#e0d7f2;--bq-purple-300:#c1afe5;--bq-purple-400:#a388d8;--bq-purple-500:#8460cb;--bq-purple-600:#6538be;--bq-purple-700:#512d98;--bq-purple-800:#3d2272;--bq-purple-900:#28164c;--bq-purple-1000:#140b26;--bq-red-100:#fce7ea;--bq-red-200:#f9d1d5;--bq-red-300:#f3a2ac;--bq-red-400:#ed7482;--bq-red-500:#e74559;--bq-red-600:#e1172f;--bq-red-700:#b41226;--bq-red-800:#870e1c;--bq-red-900:#5a0913;--bq-red-1000:#2d0509;--bq-sky-100:#eff4fb;--bq-sky-200:#dfeaf8;--bq-sky-300:#bfd5f1;--bq-sky-400:#9ec1e9;--bq-sky-500:#7eace2;--bq-sky-600:#5e97db;--bq-sky-700:#4b79af;--bq-sky-800:#385b83;--bq-sky-900:#263c58;--bq-sky-1000:#131e2c;--bq-teal-100:#e5f7f5;--bq-teal-200:#ccf0eb;--bq-teal-300:#99e1d8;--bq-teal-400:#66d2c4;--bq-teal-500:#33c3b1;--bq-teal-600:#00b49d;--bq-teal-700:#00907e;--bq-teal-800:#006c5e;--bq-teal-900:#00483f;--bq-teal-1000:#00241f;--bq-volcano-100:#feede7;--bq-volcano-200:#fddbd1;--bq-volcano-300:#fbb8a3;--bq-volcano-400:#fa9474;--bq-volcano-500:#f87146;--bq-volcano-600:#f64d18;--bq-volcano-700:#c53e13;--bq-volcano-800:#942e0e;--bq-volcano-900:#621f0a;--bq-volcano-1000:#310f05;--bq-yellow-100:#fefbe7;--bq-yellow-200:#fcf6d0;--bq-yellow-300:#faeea0;--bq-yellow-400:#f7e571;--bq-yellow-500:#f5dd41;--bq-yellow-600:#f2d412;--bq-yellow-700:#c2aa0e;--bq-yellow-800:#917f0b;--bq-yellow-900:#615507;--bq-yellow-1000:#302a04;--bq-endava-grey-50:#f7f7f8;--bq-endava-grey-100:#e4e6e7;--bq-endava-grey-200:#b5babe;--bq-endava-grey-300:#949ca1;--bq-endava-grey-400:#737d84;--bq-endava-grey-500:#525f67;--bq-endava-grey-600:#30404b;--bq-endava-grey-700:#2b3942;--bq-endava-grey-800:#263139;--bq-endava-grey-900:#192b37;--bq-endava-grey-950:#151b1e;--bq-endava-grey-1000:#0f1316;--bq-endava-neutral-white:#fafbfb;--bq-endava-neutral-black:#060708;--bq-endava-orange-100:#fef3f1;--bq-endava-orange-200:#fbd6d1;--bq-endava-orange-300:#fab7af;--bq-endava-orange-400:#fa988b;--bq-endava-orange-500:#fc7866;--bq-endava-orange-600:#ff5640;--bq-endava-orange-700:#ce4a39;--bq-endava-orange-800:#a03d30;--bq-endava-orange-900:#722e25;--bq-endava-orange-1000:#471e19}*,:after,:before{box-sizing:border-box}*{font:inherit;margin:0}ol[role=list],ul[role=list]{list-style-type:none}html{font-size:var(--bq-font-size--m)}html:focus-within{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bq-background--primary);color:var(--bq-text--primary);font-family:var(--bq-font-family);line-height:var(--bq-font-line-height--regular);min-height:100vh;text-rendering:optimizeSpeed}a:not([class]){text-decoration-skip-ink:auto}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto;transition-duration:.01ms!important}}:root{--bq-white:#fff;--bq-black:#060708;--bq-neutral-50:var(--bq-grey-50);--bq-neutral-100:var(--bq-grey-100);--bq-neutral-200:var(--bq-grey-200);--bq-neutral-300:var(--bq-grey-300);--bq-neutral-400:var(--bq-grey-400);--bq-neutral-500:var(--bq-grey-500);--bq-neutral-600:var(--bq-grey-600);--bq-neutral-700:var(--bq-grey-700);--bq-neutral-800:var(--bq-grey-800);--bq-neutral-900:var(--bq-grey-900);--bq-neutral-950:var(--bq-grey-950);--bq-neutral-1000:var(--bq-grey-1000);--bq-brand-light:var(--bq-iris-100);--bq-brand:var(--bq-iris-600);--bq-brand-dark:var(--bq-iris-1000);--bq-accent-light:var(--bq-purple-100);--bq-accent:var(--bq-purple-600);--bq-accent-dark:var(--bq-purple-1000);--bq-success-light:var(--bq-teal-100);--bq-success:var(--bq-teal-600);--bq-success-dark:var(--bq-teal-1000);--bq-danger-light:var(--bq-red-100);--bq-danger:var(--bq-red-600);--bq-danger-dark:var(--bq-red-1000);--bq-warning-light:var(--bq-gold-100);--bq-warning:var(--bq-gold-600);--bq-warning-dark:var(--bq-gold-1000);--bq-info-light:var(--bq-iris-100);--bq-info:var(--bq-iris-600);--bq-info-dark:var(--bq-iris-1000);--bq-focus:var(--bq-iris-600);--bq-data-01:var(--bq-brand);--bq-data-02:var(--bq-purple-600);--bq-data-03:var(--bq-magenta-600);--bq-data-04:var(--bq-cyan-600);--bq-data-05:var(--bq-teal-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-yellow-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-blue-600);--bq-data-10:var(--bq-grey-600);--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white);--bq-radius--none:0;--bq-radius--xs2:0.125rem;--bq-radius--xs:0.25rem;--bq-radius--s:0.5rem;--bq-radius--m:0.75rem;--bq-radius--l:1.5rem;--bq-radius--full:9999px;--bq-box-shadow--xs:0 2px 0 rgba(0,0,0,.016);--bq-box-shadow--s:0 8px 24px rgba(0,0,0,.04);--bq-box-shadow--m:0 10px 48px -16px rgba(0,0,0,.12);--bq-box-shadow--l:0 20px 58px -16px rgba(0,0,0,.16);--bq-font-family:"Outfit",sans-serif;--bq-font-size--xs:0.75rem;--bq-font-size--s:0.875rem;--bq-font-size--m:1rem;--bq-font-size--l:1.125rem;--bq-font-size--xl:1.5rem;--bq-font-size--xxl:2rem;--bq-font-size--xxl2:2.5rem;--bq-font-size--xxl3:3rem;--bq-font-size--xxl4:3.5rem;--bq-font-size--xxl5:4rem;--bq-font-weight--thin:100;--bq-font-weight--light:300;--bq-font-weight--regular:400;--bq-font-weight--medium:500;--bq-font-weight--semibold:600;--bq-font-weight--bold:700;--bq-font-line-height--small:1.2;--bq-font-line-height--regular:1.5;--bq-font-line-height--large:1.5;--bq-spacing-xs3:0.125rem;--bq-spacing-xs2:0.25rem;--bq-spacing-xs:0.5rem;--bq-spacing-s:0.75rem;--bq-spacing-m:1rem;--bq-spacing-l:1.5rem;--bq-spacing-xl:2rem;--bq-spacing-xxl:2.5rem;--bq-spacing-xxl2:3.5rem;--bq-spacing-xxl3:4rem;--bq-spacing-xxl4:4.5rem;--bq-stroke-s:1px;--bq-stroke-m:2px;--bq-stroke-l:3px}.beeq.light,.light,:root,[bq-mode=light]{--bq-background--primary:var(--bq-white);--bq-background--secondary:var(--bq-neutral-100);--bq-background--tertiary:var(--bq-neutral-200);--bq-background--alt:var(--bq-neutral-300);--bq-background--inverse:var(--bq-neutral-900);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-800);--bq-icon--alt:var(--bq-white);--bq-icon--secondary:var(--bq-neutral-600);--bq-icon--inverse:var(--bq-neutral-50);--bq-icon--brand:var(--bq-brand);--bq-icon--info:var(--bq-brand);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-200);--bq-stroke--secondary:var(--bq-neutral-600);--bq-stroke--tertiary:var(--bq-neutral-900);--bq-stroke--inverse:var(--bq-white);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-50);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-brand);--bq-text--primary:var(--bq-neutral-800);--bq-text--secondary:var(--bq-neutral-600);--bq-text--inverse:var(--bq-neutral-50);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-brand);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-white);--bq-ui--secondary:var(--bq-neutral-200);--bq-ui--tertiary:var(--bq-neutral-500);--bq-ui--inverse:var(--bq-neutral-900);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-light);--bq-ui--alt:var(--bq-neutral-50);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-light);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-light);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-light);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-light);--bq-hover:#bcbfc5;--bq-active:#444546}.beeq.dark,.dark,[bq-mode=dark]{--bq-background--primary:var(--bq-neutral-1000);--bq-background--secondary:var(--bq-neutral-950);--bq-background--tertiary:var(--bq-neutral-800);--bq-background--alt:var(--bq-neutral-700);--bq-background--inverse:var(--bq-neutral-600);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-100);--bq-icon--secondary:var(--bq-neutral-400);--bq-icon--inverse:var(--bq-neutral-800);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-brand);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-900);--bq-stroke--secondary:var(--bq-neutral-700);--bq-stroke--tertiary:var(--bq-neutral-400);--bq-stroke--inverse:var(--bq-neutral-950);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-1000);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-brand);--bq-text--primary:var(--bq-neutral-100);--bq-text--secondary:var(--bq-neutral-400);--bq-text--inverse:var(--bq-neutral-800);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-brand);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-neutral-900);--bq-ui--secondary:var(--bq-neutral-800);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-brand);--bq-ui--info-alt:var(--bq-brand-dark);--bq-hover:#444546;--bq-active:#1f2026}.endava,[bq-theme=endava]{--bq-font-family:"Poppins",sans-serif;--bq-white:#fafbfb;--bq-black:#030406;--bq-neutral-50:var(--bq-endava-grey-50);--bq-neutral-100:var(--bq-endava-grey-100);--bq-neutral-200:var(--bq-endava-grey-200);--bq-neutral-300:var(--bq-endava-grey-300);--bq-neutral-400:var(--bq-endava-grey-400);--bq-neutral-500:var(--bq-endava-grey-500);--bq-neutral-600:var(--bq-endava-grey-600);--bq-neutral-700:var(--bq-endava-grey-700);--bq-neutral-800:var(--bq-endava-grey-800);--bq-neutral-900:var(--bq-endava-grey-900);--bq-neutral-950:var(--bq-endava-grey-950);--bq-neutral-1000:var(--bq-endava-grey-1000);--bq-brand-light:var(--bq-endava-orange-100);--bq-brand:var(--bq-endava-orange-600);--bq-brand-dark:var(--bq-endava-orange-1000);--bq-accent-light:var(--bq-endava-orange-100);--bq-accent:var(--bq-endava-orange-600);--bq-accent-dark:var(--bq-endava-orange-1000);--bq-success-light:var(--bq-green-100);--bq-success:var(--bq-green-600);--bq-success-dark:var(--bq-green-1000);--bq-danger-light:var(--bq-corai-100);--bq-danger:var(--bq-corai-600);--bq-danger-dark:var(--bq-corai-1000);--bq-warning-light:var(--bq-yellow-100);--bq-warning:var(--bq-yellow-600);--bq-warning-dark:var(--bq-yellow-1000);--bq-info-light:var(--bq-blue-100);--bq-info:var(--bq-blue-600);--bq-info-dark:var(--bq-blue-1000);--bq-focus:var(--bq-endava-orange-600);--bq-data-01:var(--bq-brand);--bq-data-02:#af0cd8;--bq-data-03:#0ca8d8;--bq-data-04:var(--bq-teal-600);--bq-data-05:var(--bq-yellow-600);--bq-data-06:var(--bq-orange-600);--bq-data-07:var(--bq-blue-600);--bq-data-08:var(--bq-red-600);--bq-data-09:var(--bq-purple-600);--bq-data-10:#394b56;--bq-data-11:var(--bq-black);--bq-data-12:var(--bq-white)}.endava.light,[bq-theme=endava][bq-mode=light]{--bq-background--primary:var(--bq-white);--bq-background--secondary:var(--bq-neutral-100);--bq-background--tertiary:var(--bq-neutral-200);--bq-background--alt:var(--bq-neutral-300);--bq-background--inverse:var(--bq-neutral-900);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-800);--bq-icon--secondary:var(--bq-neutral-600);--bq-icon--inverse:var(--bq-neutral-50);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-info);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-200);--bq-stroke--secondary:var(--bq-neutral-600);--bq-stroke--tertiary:var(--bq-neutral-900);--bq-stroke--inverse:var(--bq-white);--bq-stroke--brand:var(--bq-brand);--bq-stroke--alt:var(--bq-neutral-50);--bq-stroke--brand-alt:var(--bq-brand-light);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-info);--bq-text--primary:var(--bq-neutral-800);--bq-text--secondary:var(--bq-neutral-600);--bq-text--inverse:var(--bq-neutral-50);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-white);--bq-text--info:var(--bq-info);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-white);--bq-ui--secondary:var(--bq-neutral-200);--bq-ui--tertiary:var(--bq-neutral-500);--bq-ui--inverse:var(--bq-neutral-900);--bq-ui--alt:var(--bq-neutral-50);--bq-ui--brand-alt:var(--bq-brand-light);--bq-ui--brand:var(--bq-brand);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-light);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-light);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-light);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-light);--bq-hover:#444546;--bq-active:#1f2026}.endava.dark,[bq-theme=endava][bq-mode=dark]{--bq-background--primary:var(--bq-neutral-1000);--bq-background--secondary:var(--bq-neutral-900);--bq-background--tertiary:var(--bq-neutral-800);--bq-background--alt:var(--bq-neutral-700);--bq-background--inverse:var(--bq-neutral-600);--bq-background--brand:var(--bq-brand);--bq-background--overlay:var(--bq-neutral-900);--bq-icon--primary:var(--bq-neutral-100);--bq-icon--secondary:var(--bq-neutral-400);--bq-icon--inverse:var(--bq-neutral-800);--bq-icon--brand:var(--bq-brand);--bq-icon--alt:var(--bq-white);--bq-icon--info:var(--bq-info);--bq-icon--success:var(--bq-success);--bq-icon--warning:var(--bq-warning);--bq-icon--danger:var(--bq-danger);--bq-stroke--primary:var(--bq-neutral-900);--bq-stroke--secondary:var(--bq-neutral-700);--bq-stroke--tertiary:var(--bq-neutral-400);--bq-stroke--inverse:var(--bq-neutral-950);--bq-stroke--brand:var(--bq-brand);--bq-stroke--brand-alt:var(--bq-brand-dark);--bq-stroke--alt:var(--bq-neutral-1000);--bq-stroke--success:var(--bq-success);--bq-stroke--warning:var(--bq-warning);--bq-stroke--danger:var(--bq-danger);--bq-stroke--info:var(--bq-info);--bq-text--primary:var(--bq-neutral-100);--bq-text--secondary:var(--bq-neutral-400);--bq-text--inverse:var(--bq-neutral-800);--bq-text--brand:var(--bq-brand);--bq-text--alt:var(--bq-neutral-white);--bq-text--info:var(--bq-info);--bq-text--success:var(--bq-success);--bq-text--warning:var(--bq-warning);--bq-text--danger:var(--bq-danger);--bq-ui--primary:var(--bq-neutral-900);--bq-ui--secondary:var(--bq-neutral-800);--bq-ui--tertiary:var(--bq-neutral-700);--bq-ui--inverse:var(--bq-neutral-100);--bq-ui--brand:var(--bq-brand);--bq-ui--brand-alt:var(--bq-brand-dark);--bq-ui--alt:var(--bq-neutral-950);--bq-ui--success:var(--bq-success);--bq-ui--success-alt:var(--bq-success-dark);--bq-ui--warning:var(--bq-warning);--bq-ui--warning-alt:var(--bq-warning-dark);--bq-ui--danger:var(--bq-danger);--bq-ui--danger-alt:var(--bq-danger-dark);--bq-ui--info:var(--bq-info);--bq-ui--info-alt:var(--bq-info-dark);--bq-hover:#444546;--bq-active:#1f2026}.block{display:block}@-webkit-keyframes fade-in{0%{opacity:0}}@keyframes fade-in{0%{opacity:0}}@-webkit-keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@keyframes slide-in{0%{-webkit-transform:translateY(10px);transform:translateY(10px)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}:host{display:block}.static{position:static}.flex{display:flex}.hidden{display:none}.items-center{align-items:center}.justify-center{justify-content:center}.is-3{inline-size:.75rem}.focus{outline:var(--bq-ring-width,2px) solid var(--bq-ring-color-focus,var(--bq-focus));outline-offset:var(--bq-ring-offset-width,1px)}';
|
|
@@ -118,4 +116,4 @@ const o = class {
|
|
|
118
116
|
o.style = i;
|
|
119
117
|
|
|
120
118
|
export { o as bq_breadcrumb };
|
|
121
|
-
//# sourceMappingURL=p-
|
|
119
|
+
//# sourceMappingURL=p-9cab14ee.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["bqBreadcrumbCss","BqBreadcrumbStyle0","BqBreadcrumb","spanElem","bqBreadcrumbBlur","bqBreadcrumbFocus","bqBreadcrumbClick","onBlur","event","isHTMLElement","detail","this","emit","onFocus","onClick","setSeparator","breadcrumbItems","forEach","item","index","arr","isLastItem","length","append","getSeparatorElem","clone","separatorFromSlot","cloneNode","slot","Array","from","el","querySelectorAll","querySelector","assignedElements","flatten","render","h","Host","key","class","ariaLabel","part","onSlotchange","hidden","ref","element","name"],"sources":["../../packages/beeq/src/components/breadcrumb/scss/bq-breadcrumb.scss?tag=bq-breadcrumb&encapsulation=shadow","../../packages/beeq/src/components/breadcrumb/bq-breadcrumb.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Breadcrumb styles */\n/* -------------------------------------------------------------------------- */\n\n:host {\n @apply block;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Prop } from '@stencil/core';\n\nimport { isHTMLElement } from '../../shared/utils';\n\n/**\n * @part navigation - The `nav` tag that loads the breadcrumb items\n */\n@Component({\n tag: 'bq-breadcrumb',\n styleUrl: './scss/bq-breadcrumb.scss',\n shadow: true,\n})\nexport class BqBreadcrumb {\n // Own Properties\n // ====================\n\n private spanElem: HTMLElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqBreadcrumbElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** The `aria-label` attribute to describe the type of navigation */\n @Prop({ reflect: true }) ariaLabel: string = 'Breadcrumbs';\n\n // Prop lifecycle events\n // =======================\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when `bq-breadcrumb-item` item loses focus. */\n @Event() bqBreadcrumbBlur: EventEmitter<HTMLBqBreadcrumbItemElement>;\n\n /** Handler to be called when `bq-breadcrumb-item` item gets focus. */\n @Event() bqBreadcrumbFocus: EventEmitter<HTMLBqBreadcrumbItemElement>;\n\n /** Handler to be called when `bq-breadcrumb-item` is selected (on click/enter press). */\n @Event() bqBreadcrumbClick: EventEmitter<HTMLBqBreadcrumbItemElement>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n // Listeners\n // ==============\n\n @Listen('bqBlur', { passive: true })\n onBlur(event: CustomEvent<HTMLElement>) {\n if (isHTMLElement(event.detail, 'bq-breadcrumb-item')) this.bqBreadcrumbBlur.emit(event.detail);\n }\n\n @Listen('bqFocus', { passive: true })\n onFocus(event: CustomEvent<HTMLElement>) {\n if (isHTMLElement(event.detail, 'bq-breadcrumb-item')) this.bqBreadcrumbFocus.emit(event.detail);\n }\n\n @Listen('bqClick', { passive: true })\n onClick(event: CustomEvent<HTMLElement>) {\n if (isHTMLElement(event.detail, 'bq-breadcrumb-item')) this.bqBreadcrumbClick.emit(event.detail);\n }\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private setSeparator = (): void => {\n this.breadcrumbItems.forEach((item, index, arr) => {\n item.isLastItem = index === arr.length - 1;\n if (!item.isLastItem) {\n item.append(this.getSeparatorElem());\n }\n });\n };\n\n /**\n * clone original element and add slot attr\n * @returns cloned separator element\n */\n private getSeparatorElem = (): HTMLElement => {\n const clone = this.separatorFromSlot.cloneNode(true) as HTMLElement;\n clone.slot = 'separator';\n\n return clone;\n };\n\n private get breadcrumbItems(): HTMLBqBreadcrumbItemElement[] {\n return Array.from(this.el.querySelectorAll('bq-breadcrumb-item'));\n }\n\n private get separatorFromSlot() {\n return this.spanElem\n .querySelector<HTMLSlotElement>('slot[name=\"separator\"]')\n .assignedElements({ flatten: true })[0] as HTMLElement;\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <Host>\n <nav class=\"flex items-center\" aria-label={this.ariaLabel} part=\"navigation\">\n <slot onSlotchange={this.setSeparator}></slot>\n </nav>\n\n <span hidden aria-hidden=\"true\" ref={(element) => (this.spanElem = element)}>\n <slot name=\"separator\">\n <span class=\"flex items-center justify-center is-3\">/</span>\n </slot>\n </span>\n </Host>\n );\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["bqBreadcrumbCss","BqBreadcrumbStyle0","BqBreadcrumb","spanElem","bqBreadcrumbBlur","bqBreadcrumbFocus","bqBreadcrumbClick","onBlur","event","isHTMLElement","detail","this","emit","onFocus","onClick","setSeparator","breadcrumbItems","forEach","item","index","arr","isLastItem","length","append","getSeparatorElem","clone","separatorFromSlot","cloneNode","slot","Array","from","el","querySelectorAll","querySelector","assignedElements","flatten","render","h","Host","key","class","ariaLabel","part","onSlotchange","hidden","ref","element","name"],"sources":["../../packages/beeq/src/components/breadcrumb/scss/bq-breadcrumb.scss?tag=bq-breadcrumb&encapsulation=shadow","../../packages/beeq/src/components/breadcrumb/bq-breadcrumb.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Breadcrumb styles */\n/* -------------------------------------------------------------------------- */\n\n:host {\n @apply block;\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Listen, Prop } from '@stencil/core';\n\nimport { isHTMLElement } from '../../shared/utils';\n\n/**\n * @part navigation - The `nav` tag that loads the breadcrumb items\n */\n@Component({\n tag: 'bq-breadcrumb',\n styleUrl: './scss/bq-breadcrumb.scss',\n shadow: true,\n})\nexport class BqBreadcrumb {\n // Own Properties\n // ====================\n\n private spanElem: HTMLElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqBreadcrumbElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** The `aria-label` attribute to describe the type of navigation */\n @Prop({ reflect: true }) ariaLabel: string = 'Breadcrumbs';\n\n // Prop lifecycle events\n // =======================\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when `bq-breadcrumb-item` item loses focus. */\n @Event() bqBreadcrumbBlur: EventEmitter<HTMLBqBreadcrumbItemElement>;\n\n /** Handler to be called when `bq-breadcrumb-item` item gets focus. */\n @Event() bqBreadcrumbFocus: EventEmitter<HTMLBqBreadcrumbItemElement>;\n\n /** Handler to be called when `bq-breadcrumb-item` is selected (on click/enter press). */\n @Event() bqBreadcrumbClick: EventEmitter<HTMLBqBreadcrumbItemElement>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n // Listeners\n // ==============\n\n @Listen('bqBlur', { passive: true })\n onBlur(event: CustomEvent<HTMLElement>) {\n if (isHTMLElement(event.detail, 'bq-breadcrumb-item')) this.bqBreadcrumbBlur.emit(event.detail);\n }\n\n @Listen('bqFocus', { passive: true })\n onFocus(event: CustomEvent<HTMLElement>) {\n if (isHTMLElement(event.detail, 'bq-breadcrumb-item')) this.bqBreadcrumbFocus.emit(event.detail);\n }\n\n @Listen('bqClick', { passive: true })\n onClick(event: CustomEvent<HTMLElement>) {\n if (isHTMLElement(event.detail, 'bq-breadcrumb-item')) this.bqBreadcrumbClick.emit(event.detail);\n }\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private setSeparator = (): void => {\n this.breadcrumbItems.forEach((item, index, arr) => {\n item.isLastItem = index === arr.length - 1;\n if (!item.isLastItem) {\n item.append(this.getSeparatorElem());\n }\n });\n };\n\n /**\n * clone original element and add slot attr\n * @returns cloned separator element\n */\n private getSeparatorElem = (): HTMLElement => {\n const clone = this.separatorFromSlot.cloneNode(true) as HTMLElement;\n clone.slot = 'separator';\n\n return clone;\n };\n\n private get breadcrumbItems(): HTMLBqBreadcrumbItemElement[] {\n return Array.from(this.el.querySelectorAll('bq-breadcrumb-item'));\n }\n\n private get separatorFromSlot() {\n return this.spanElem\n .querySelector<HTMLSlotElement>('slot[name=\"separator\"]')\n .assignedElements({ flatten: true })[0] as HTMLElement;\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <Host>\n <nav class=\"flex items-center\" aria-label={this.ariaLabel} part=\"navigation\">\n <slot onSlotchange={this.setSeparator}></slot>\n </nav>\n\n <span hidden aria-hidden=\"true\" ref={(element) => (this.spanElem = element)}>\n <slot name=\"separator\">\n <span class=\"flex items-center justify-center is-3\">/</span>\n </slot>\n </span>\n </Host>\n );\n }\n}\n"],"mappings":";;;;;;;;AAAA,MAAMA,IAAkB;;AACxB,MAAAC,IAAeD;;MCWFE,IAAY;;;;;;qBAmBsB;;;;EAfrCC;;;;;;;;;;EAyBCC;;EAGAC;;EAGAC;;;;;;EAUT,MAAAC,CAAOC;IACL,IAAIC,EAAcD,EAAME,QAAQ,uBAAuBC,KAAKP,iBAAiBQ,KAAKJ,EAAME;;EAI1F,OAAAG,CAAQL;IACN,IAAIC,EAAcD,EAAME,QAAQ,uBAAuBC,KAAKN,kBAAkBO,KAAKJ,EAAME;;EAI3F,OAAAI,CAAQN;IACN,IAAIC,EAAcD,EAAME,QAAQ,uBAAuBC,KAAKL,kBAAkBM,KAAKJ,EAAME;;;;;;;;;;;;EAenFK,aAAe;IACrBJ,KAAKK,gBAAgBC,SAAQ,CAACC,GAAMC,GAAOC;MACzCF,EAAKG,aAAaF,MAAUC,EAAIE,SAAS;MACzC,KAAKJ,EAAKG,YAAY;QACpBH,EAAKK,OAAOZ,KAAKa;;;AAEnB;;;;;EAOIA,iBAAmB;IACzB,MAAMC,IAAQd,KAAKe,kBAAkBC,UAAU;IAC/CF,EAAMG,OAAO;IAEb,OAAOH;AAAK;EAGd,mBAAYT;IACV,OAAOa,MAAMC,KAAKnB,KAAKoB,GAAGC,iBAAiB;;EAG7C,qBAAYN;IACV,OAAOf,KAAKR,SACT8B,cAA+B,0BAC/BC,iBAAiB;MAAEC,SAAS;OAAQ;;;;;EAOzC,MAAAC;IACE,OACEC,EAACC,GAAI;MAAAC,KAAA;OACHF,EAAA;MAAAE,KAAA;MAAKC,OAAM;MAAmB,cAAa7B,KAAK8B;MAAWC,MAAK;OAC9DL,EAAA;MAAAE,KAAA;MAAMI,cAAchC,KAAKI;SAG3BsB,EAAA;MAAAE,KAAA;MAAMK,QAAM;MAAA,eAAa;MAAOC,KAAMC,KAAanC,KAAKR,WAAW2C;OACjET,EAAA;MAAAE,KAAA;MAAMQ,MAAK;OACTV,EAAA;MAAAE,KAAA;MAAMC,OAAM;OAAuC","ignoreList":[]}
|
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { r as a, c as r, g as e, h as b, a as t } from "./p-01df4baa.js";
|
|
6
6
|
|
|
7
|
-
import "./p-a84d4562.js";
|
|
8
|
-
|
|
9
7
|
import { i as n } from "./p-99829fc7.js";
|
|
10
8
|
|
|
11
9
|
import { a as i } from "./p-d7ce7165.js";
|
|
@@ -212,4 +210,4 @@ const s = class {
|
|
|
212
210
|
s.style = o;
|
|
213
211
|
|
|
214
212
|
export { s as bq_switch };
|
|
215
|
-
//# sourceMappingURL=p-
|
|
213
|
+
//# sourceMappingURL=p-a23b23c4.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["bqSwitchCss","BqSwitchStyle0","BqSwitch","labelElem","inputElem","prevCheckedValue","bqChange","bqFocus","bqBlur","componentWillLoad","this","checked","componentDidLoad","handleSlotChange","componentDidUpdate","emit","vClick","click","vFocus","focus","vBlur","blur","handleChange","setAttribute","handleOnFocus","el","handleOnBlur","slot","querySelector","isNil","hasLabel","getTextContent","recurse","length","render","hostStyle","justifyContent","labelCssClasses","backgroundOnHover","disabled","reverseOrder","h","Host","key","class","fullWidth","style","part","type","required","name","undefined","onBlur","onChange","onFocus","ref","input","role","value","innerLabel","color","title","span","onSlotchange"],"sources":["../../packages/beeq/src/components/switch/scss/bq-switch.scss?tag=bq-switch&encapsulation=shadow","../../packages/beeq/src/components/switch/bq-switch.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Switch styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-switch.variables';\n\n:host {\n @apply inline-block;\n}\n\n:host(.full-width) {\n @apply is-full;\n}\n\n.bq-switch {\n @apply flex cursor-pointer select-none items-center rounded-s transition-colors duration-300 p-b-2 p-i-2;\n\n justify-content: var(--bq-switch--justify-content);\n\n // Display background on hover (if enabled)\n &.has-background:not(.is-disabled):hover {\n @apply bg-hover-ui-primary;\n }\n\n &.is-disabled {\n @apply cursor-not-allowed opacity-60;\n }\n}\n\n.bq-switch--input:not(:disabled):focus-visible {\n ~ .bq-switch--control {\n @apply focus;\n }\n}\n\n.bq-switch--control__dot {\n @apply absolute start-xs2 rounded-full bg-icon-inverse bs-[--bq-switch--dot-size] is-[--bq-switch--dot-size];\n @apply group-[&.is-checked]:start-[calc(100%_-_var(--bq-switch--dot-size)_-_var(--bq-spacing-xs2))] group-[&.is-checked]:bg-[--bq-icon--alt];\n @apply transition-all duration-300;\n}\n\n.bq-switch--control__icon {\n --bq-icon--size: var(--bq-switch--dot-size) !important;\n\n &::part(base) {\n @apply flex;\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core';\n\nimport { TSwitchInnerLabel, TSwitchJustifyContent } from './bq-switch.types';\nimport { getTextContent, isNil } from '../../shared/utils';\n\n/**\n * Toggle switches are digital on/off switches.\n * They should provide immediate results, giving users the freedom to control their preferences as needed.\n *\n * @part base - HTML `<label>` root container\n * @part control - HTML `<div>` element for the custom control\n * @part dot - HTML `<div>` element that acts as changing dot\n * @part icon-off - HTMLBqIcon `<pk-icon>` element used as the `OFF` mark inner label\n * @part icon-on - HTMLBqIcon `<pk-icon>` element used as the `ON` mark inner label\n * @part label - HTML `<span>` element that holds the label text\n */\n@Component({\n tag: 'bq-switch',\n styleUrl: './scss/bq-switch.scss',\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class BqSwitch {\n // Own Properties\n // ====================\n\n private labelElem: HTMLSpanElement;\n private inputElem: HTMLInputElement;\n private prevCheckedValue: boolean;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqSwitchElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() hasLabel = false;\n\n // Public Property API\n // ========================\n\n /** If true, a background will be displayed on hover */\n @Prop({ reflect: true }) backgroundOnHover?: boolean = false;\n\n /** It indicates whether if the switch is `ON` by default (when the page loads) */\n @Prop({ reflect: true, mutable: true }) checked?: boolean = false;\n\n /** If true, the switch control will be disabled and no interaction will be allowed */\n @Prop({ reflect: true }) disabled?: boolean = false;\n\n /** If true, the component will take the full width space available on the parent container */\n @Prop({ reflect: true }) fullWidth?: boolean = false;\n\n /** It indicates how to to display the on/off marks inside the control, with icons or none (default) */\n @Prop({ reflect: true }) innerLabel?: TSwitchInnerLabel = 'default';\n\n /**\n * It defines how to distribute the space between and around the control and the label text\n * (https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content)\n */\n @Prop({ reflect: true }) justifyContent?: TSwitchJustifyContent = 'start';\n\n /** Name of the form control. Submitted with the form as part of a name/value pair */\n @Prop({ reflect: true }) name!: string;\n\n /** If `true`, it will indicate that the user must switch `ON` the element before the owning form can be submitted */\n @Prop({ reflect: true }) required?: boolean = false;\n\n /** If true, the order of the control and the label text will be changed */\n @Prop({ reflect: true }) reverseOrder?: boolean = false;\n\n /** The input control's value, submitted as a name/value pair with form data. */\n @Prop({ reflect: true }) value?: string;\n\n // Prop lifecycle events\n // =======================\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when the switch state changes */\n @Event() bqChange: EventEmitter<{ checked: boolean }>;\n\n /** Handler to be called when the switch gets focus */\n @Event() bqFocus: EventEmitter<HTMLBqSwitchElement>;\n\n /** Handler to be called when the switch loses focus */\n @Event() bqBlur: EventEmitter<HTMLBqSwitchElement>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.prevCheckedValue = this.checked;\n }\n\n componentDidLoad() {\n this.handleSlotChange();\n }\n\n componentDidUpdate() {\n /**\n * We need to trigger the `bqChange` immediately after the first update happens\n * so the checked attribute get applied, otherwise, a delay will happen\n * between the event emits and when the checked attribute value gets reflected in the element host.\n */\n if (this.checked !== this.prevCheckedValue) {\n this.bqChange.emit({ checked: this.checked });\n this.prevCheckedValue = this.checked;\n }\n }\n\n // Listeners\n // ==============\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n /**\n * Simulate a click event on the native `<input>` HTML element used under the hood.\n * Use this method instead of the global `element.click()`.\n */\n @Method()\n async vClick() {\n this.inputElem?.click();\n }\n\n /**\n * Sets focus on the native `<input>` HTML element used under the hood.\n * Use this method instead of the global `element.focus()`.\n */\n @Method()\n async vFocus() {\n this.inputElem?.focus();\n }\n\n /**\n * Remove focus from the native `<input>` HTML element used under the hood.\n * Use this method instead of the global `element.blur()`.\n */\n @Method()\n async vBlur() {\n this.inputElem?.blur();\n }\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private handleChange = () => {\n this.checked = !this.checked;\n this.inputElem.setAttribute('checked', `${this.checked}`);\n };\n\n private handleOnFocus = () => {\n this.bqFocus.emit(this.el);\n };\n\n private handleOnBlur = () => {\n this.bqBlur.emit(this.el);\n };\n\n private handleSlotChange = () => {\n const slot = this.labelElem?.querySelector('slot') ?? null;\n if (isNil(slot)) return;\n\n this.hasLabel = !!getTextContent(slot, { recurse: true }).length;\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const hostStyle = {\n ...(this.justifyContent && { '--bq-switch--justify-content': this.justifyContent }),\n };\n\n const labelCssClasses = {\n 'has-background': this.backgroundOnHover,\n 'is-checked': this.checked,\n 'is-disabled': this.disabled,\n 'flex-row-reverse': this.reverseOrder,\n };\n\n return (\n <Host class={{ 'full-width': this.fullWidth }} style={hostStyle}>\n <label class={{ 'bq-switch group': true, ...labelCssClasses }} part=\"base\">\n {/* Hidden native HTML input */}\n <input\n class=\"bq-switch--input peer sr-only peer-checked:invisible\"\n type=\"checkbox\"\n checked={this.checked}\n disabled={this.disabled}\n required={this.required}\n name={!isNil(this.name) ? this.name : undefined}\n aria-label={this.name}\n aria-checked={this.checked ? 'true' : 'false'}\n aria-disabled={this.disabled ? 'true' : 'false'}\n onBlur={this.handleOnBlur}\n onChange={this.handleChange}\n onFocus={this.handleOnFocus}\n ref={(input) => (this.inputElem = input)}\n role=\"switch\"\n value={this.value}\n />\n {/* Control */}\n <div\n class=\"bq-switch--control relative box-border flex justify-between rounded-full bg-ui-tertiary transition duration-300 bs-[--bq-switch--height] is-[--bq-switch--width] p-b-xs2 p-i-xs2 group-[&.is-checked]:bg-ui-brand\"\n part=\"control\"\n >\n {this.innerLabel === 'icon' && (\n <bq-icon\n class=\"bq-switch--control__icon on\"\n name=\"check\"\n color=\"icon--alt\"\n role=\"img\"\n title=\"On\"\n part=\"icon-on\"\n />\n )}\n {/* Dot */}\n <div class=\"bq-switch--control__dot\" part=\"dot\" />\n {this.innerLabel === 'icon' && (\n <bq-icon\n class=\"bq-switch--control__icon off\"\n name=\"x\"\n color=\"icon--inverse\"\n role=\"img\"\n title=\"Off\"\n part=\"icon-off\"\n />\n )}\n </div>\n {/* Label */}\n <span\n class={{\n 'bq-switch--label text-m font-medium leading-regular text-text-primary transition-colors duration-300':\n true,\n 'ms-s': this.hasLabel && !this.reverseOrder,\n 'me-s': this.hasLabel && this.reverseOrder,\n }}\n ref={(span) => (this.labelElem = span)}\n part=\"label\"\n >\n <slot onSlotchange={this.handleSlotChange} />\n </span>\n </label>\n </Host>\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;AAAA,MAAMA,IAAc;;AACpB,MAAAC,IAAeD;;MCsBFE,IAAQ;;;;;;oBAiBC;6BAMmC;mBAGK;oBAGd;qBAGC;sBAGW;0BAMQ;;oBAMpB;wBAGI;;;;;EA9C1CC;EACAC;EACAC;;;;;;;;;;EAyDCC;;EAGAC;;EAGAC;;;;EAMT,iBAAAC;IACEC,KAAKL,mBAAmBK,KAAKC;;EAG/B,gBAAAC;IACEF,KAAKG;;EAGP,kBAAAC;;;;;;IAME,IAAIJ,KAAKC,YAAYD,KAAKL,kBAAkB;MAC1CK,KAAKJ,SAASS,KAAK;QAAEJ,SAASD,KAAKC;;MACnCD,KAAKL,mBAAmBK,KAAKC;;;;;;;;;;;;;;;EAmBjC,YAAMK;IACJN,KAAKN,WAAWa;;;;;SAQlB,YAAMC;IACJR,KAAKN,WAAWe;;;;;SAQlB,WAAMC;IACJV,KAAKN,WAAWiB;;;;;;EAQVC,aAAe;IACrBZ,KAAKC,WAAWD,KAAKC;IACrBD,KAAKN,UAAUmB,aAAa,WAAW,GAAGb,KAAKC;AAAU;EAGnDa,cAAgB;IACtBd,KAAKH,QAAQQ,KAAKL,KAAKe;AAAG;EAGpBC,aAAe;IACrBhB,KAAKF,OAAOO,KAAKL,KAAKe;AAAG;EAGnBZ,iBAAmB;IACzB,MAAMc,IAAOjB,KAAKP,WAAWyB,cAAc,WAAW;IACtD,IAAIC,EAAMF,IAAO;IAEjBjB,KAAKoB,aAAaC,EAAeJ,GAAM;MAAEK,SAAS;OAAQC;AAAM;;;;EAOlE,MAAAC;IACE,MAAMC,IAAY;SACZzB,KAAK0B,kBAAkB;QAAE,gCAAgC1B,KAAK0B;;;IAGpE,MAAMC,IAAkB;MACtB,kBAAkB3B,KAAK4B;MACvB,cAAc5B,KAAKC;MACnB,eAAeD,KAAK6B;MACpB,oBAAoB7B,KAAK8B;;IAG3B,OACEC,EAACC,GAAI;MAAAC,KAAA;MAACC,OAAO;QAAE,cAAclC,KAAKmC;;MAAaC,OAAOX;OACpDM,EAAA;MAAAE,KAAA;MAAOC,OAAO;QAAE,mBAAmB;WAASP;;MAAmBU,MAAK;OAElEN,EAAA;MAAAE,KAAA;MACEC,OAAM;MACNI,MAAK;MACLrC,SAASD,KAAKC;MACd4B,UAAU7B,KAAK6B;MACfU,UAAUvC,KAAKuC;MACfC,OAAOrB,EAAMnB,KAAKwC,QAAQxC,KAAKwC,OAAOC;MAAS,cACnCzC,KAAKwC;MAAI,gBACPxC,KAAKC,UAAU,SAAS;MAAO,iBAC9BD,KAAK6B,WAAW,SAAS;MACxCa,QAAQ1C,KAAKgB;MACb2B,UAAU3C,KAAKY;MACfgC,SAAS5C,KAAKc;MACd+B,KAAMC,KAAW9C,KAAKN,YAAYoD;MAClCC,MAAK;MACLC,OAAOhD,KAAKgD;QAGdjB,EAAA;MAAAE,KAAA;MACEC,OAAM;MACNG,MAAK;OAEJrC,KAAKiD,eAAe,UACnBlB,EAAA;MAAAE,KAAA;MACEC,OAAM;MACNM,MAAK;MACLU,OAAM;MACNH,MAAK;MACLI,OAAM;MACNd,MAAK;QAITN,EAAA;MAAAE,KAAA;MAAKC,OAAM;MAA0BG,MAAK;QACzCrC,KAAKiD,eAAe,UACnBlB,EAAA;MAAAE,KAAA;MACEC,OAAM;MACNM,MAAK;MACLU,OAAM;MACNH,MAAK;MACLI,OAAM;MACNd,MAAK;SAKXN,EAAA;MAAAE,KAAA;MACEC,OAAO;QACL,wGACE;QACF,QAAQlC,KAAKoB,aAAapB,KAAK8B;QAC/B,QAAQ9B,KAAKoB,YAAYpB,KAAK8B;;MAEhCe,KAAMO,KAAUpD,KAAKP,YAAY2D;MACjCf,MAAK;OAELN,EAAA;MAAAE,KAAA;MAAMoB,cAAcrD,KAAKG","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["bqSwitchCss","BqSwitchStyle0","BqSwitch","labelElem","inputElem","prevCheckedValue","bqChange","bqFocus","bqBlur","componentWillLoad","this","checked","componentDidLoad","handleSlotChange","componentDidUpdate","emit","vClick","click","vFocus","focus","vBlur","blur","handleChange","setAttribute","handleOnFocus","el","handleOnBlur","slot","querySelector","isNil","hasLabel","getTextContent","recurse","length","render","hostStyle","justifyContent","labelCssClasses","backgroundOnHover","disabled","reverseOrder","h","Host","key","class","fullWidth","style","part","type","required","name","undefined","onBlur","onChange","onFocus","ref","input","role","value","innerLabel","color","title","span","onSlotchange"],"sources":["../../packages/beeq/src/components/switch/scss/bq-switch.scss?tag=bq-switch&encapsulation=shadow","../../packages/beeq/src/components/switch/bq-switch.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Switch styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-switch.variables';\n\n:host {\n @apply inline-block;\n}\n\n:host(.full-width) {\n @apply is-full;\n}\n\n.bq-switch {\n @apply flex cursor-pointer select-none items-center rounded-s transition-colors duration-300 p-b-2 p-i-2;\n\n justify-content: var(--bq-switch--justify-content);\n\n // Display background on hover (if enabled)\n &.has-background:not(.is-disabled):hover {\n @apply bg-hover-ui-primary;\n }\n\n &.is-disabled {\n @apply cursor-not-allowed opacity-60;\n }\n}\n\n.bq-switch--input:not(:disabled):focus-visible {\n ~ .bq-switch--control {\n @apply focus;\n }\n}\n\n.bq-switch--control__dot {\n @apply absolute start-xs2 rounded-full bg-icon-inverse bs-[--bq-switch--dot-size] is-[--bq-switch--dot-size];\n @apply group-[&.is-checked]:start-[calc(100%_-_var(--bq-switch--dot-size)_-_var(--bq-spacing-xs2))] group-[&.is-checked]:bg-[--bq-icon--alt];\n @apply transition-all duration-300;\n}\n\n.bq-switch--control__icon {\n --bq-icon--size: var(--bq-switch--dot-size) !important;\n\n &::part(base) {\n @apply flex;\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Host, Method, Prop, State } from '@stencil/core';\n\nimport { TSwitchInnerLabel, TSwitchJustifyContent } from './bq-switch.types';\nimport { getTextContent, isNil } from '../../shared/utils';\n\n/**\n * Toggle switches are digital on/off switches.\n * They should provide immediate results, giving users the freedom to control their preferences as needed.\n *\n * @part base - HTML `<label>` root container\n * @part control - HTML `<div>` element for the custom control\n * @part dot - HTML `<div>` element that acts as changing dot\n * @part icon-off - HTMLBqIcon `<pk-icon>` element used as the `OFF` mark inner label\n * @part icon-on - HTMLBqIcon `<pk-icon>` element used as the `ON` mark inner label\n * @part label - HTML `<span>` element that holds the label text\n */\n@Component({\n tag: 'bq-switch',\n styleUrl: './scss/bq-switch.scss',\n shadow: {\n delegatesFocus: true,\n },\n})\nexport class BqSwitch {\n // Own Properties\n // ====================\n\n private labelElem: HTMLSpanElement;\n private inputElem: HTMLInputElement;\n private prevCheckedValue: boolean;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqSwitchElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() hasLabel = false;\n\n // Public Property API\n // ========================\n\n /** If true, a background will be displayed on hover */\n @Prop({ reflect: true }) backgroundOnHover?: boolean = false;\n\n /** It indicates whether if the switch is `ON` by default (when the page loads) */\n @Prop({ reflect: true, mutable: true }) checked?: boolean = false;\n\n /** If true, the switch control will be disabled and no interaction will be allowed */\n @Prop({ reflect: true }) disabled?: boolean = false;\n\n /** If true, the component will take the full width space available on the parent container */\n @Prop({ reflect: true }) fullWidth?: boolean = false;\n\n /** It indicates how to to display the on/off marks inside the control, with icons or none (default) */\n @Prop({ reflect: true }) innerLabel?: TSwitchInnerLabel = 'default';\n\n /**\n * It defines how to distribute the space between and around the control and the label text\n * (https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content)\n */\n @Prop({ reflect: true }) justifyContent?: TSwitchJustifyContent = 'start';\n\n /** Name of the form control. Submitted with the form as part of a name/value pair */\n @Prop({ reflect: true }) name!: string;\n\n /** If `true`, it will indicate that the user must switch `ON` the element before the owning form can be submitted */\n @Prop({ reflect: true }) required?: boolean = false;\n\n /** If true, the order of the control and the label text will be changed */\n @Prop({ reflect: true }) reverseOrder?: boolean = false;\n\n /** The input control's value, submitted as a name/value pair with form data. */\n @Prop({ reflect: true }) value?: string;\n\n // Prop lifecycle events\n // =======================\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when the switch state changes */\n @Event() bqChange: EventEmitter<{ checked: boolean }>;\n\n /** Handler to be called when the switch gets focus */\n @Event() bqFocus: EventEmitter<HTMLBqSwitchElement>;\n\n /** Handler to be called when the switch loses focus */\n @Event() bqBlur: EventEmitter<HTMLBqSwitchElement>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.prevCheckedValue = this.checked;\n }\n\n componentDidLoad() {\n this.handleSlotChange();\n }\n\n componentDidUpdate() {\n /**\n * We need to trigger the `bqChange` immediately after the first update happens\n * so the checked attribute get applied, otherwise, a delay will happen\n * between the event emits and when the checked attribute value gets reflected in the element host.\n */\n if (this.checked !== this.prevCheckedValue) {\n this.bqChange.emit({ checked: this.checked });\n this.prevCheckedValue = this.checked;\n }\n }\n\n // Listeners\n // ==============\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n /**\n * Simulate a click event on the native `<input>` HTML element used under the hood.\n * Use this method instead of the global `element.click()`.\n */\n @Method()\n async vClick() {\n this.inputElem?.click();\n }\n\n /**\n * Sets focus on the native `<input>` HTML element used under the hood.\n * Use this method instead of the global `element.focus()`.\n */\n @Method()\n async vFocus() {\n this.inputElem?.focus();\n }\n\n /**\n * Remove focus from the native `<input>` HTML element used under the hood.\n * Use this method instead of the global `element.blur()`.\n */\n @Method()\n async vBlur() {\n this.inputElem?.blur();\n }\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private handleChange = () => {\n this.checked = !this.checked;\n this.inputElem.setAttribute('checked', `${this.checked}`);\n };\n\n private handleOnFocus = () => {\n this.bqFocus.emit(this.el);\n };\n\n private handleOnBlur = () => {\n this.bqBlur.emit(this.el);\n };\n\n private handleSlotChange = () => {\n const slot = this.labelElem?.querySelector('slot') ?? null;\n if (isNil(slot)) return;\n\n this.hasLabel = !!getTextContent(slot, { recurse: true }).length;\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const hostStyle = {\n ...(this.justifyContent && { '--bq-switch--justify-content': this.justifyContent }),\n };\n\n const labelCssClasses = {\n 'has-background': this.backgroundOnHover,\n 'is-checked': this.checked,\n 'is-disabled': this.disabled,\n 'flex-row-reverse': this.reverseOrder,\n };\n\n return (\n <Host class={{ 'full-width': this.fullWidth }} style={hostStyle}>\n <label class={{ 'bq-switch group': true, ...labelCssClasses }} part=\"base\">\n {/* Hidden native HTML input */}\n <input\n class=\"bq-switch--input peer sr-only peer-checked:invisible\"\n type=\"checkbox\"\n checked={this.checked}\n disabled={this.disabled}\n required={this.required}\n name={!isNil(this.name) ? this.name : undefined}\n aria-label={this.name}\n aria-checked={this.checked ? 'true' : 'false'}\n aria-disabled={this.disabled ? 'true' : 'false'}\n onBlur={this.handleOnBlur}\n onChange={this.handleChange}\n onFocus={this.handleOnFocus}\n ref={(input) => (this.inputElem = input)}\n role=\"switch\"\n value={this.value}\n />\n {/* Control */}\n <div\n class=\"bq-switch--control relative box-border flex justify-between rounded-full bg-ui-tertiary transition duration-300 bs-[--bq-switch--height] is-[--bq-switch--width] p-b-xs2 p-i-xs2 group-[&.is-checked]:bg-ui-brand\"\n part=\"control\"\n >\n {this.innerLabel === 'icon' && (\n <bq-icon\n class=\"bq-switch--control__icon on\"\n name=\"check\"\n color=\"icon--alt\"\n role=\"img\"\n title=\"On\"\n part=\"icon-on\"\n />\n )}\n {/* Dot */}\n <div class=\"bq-switch--control__dot\" part=\"dot\" />\n {this.innerLabel === 'icon' && (\n <bq-icon\n class=\"bq-switch--control__icon off\"\n name=\"x\"\n color=\"icon--inverse\"\n role=\"img\"\n title=\"Off\"\n part=\"icon-off\"\n />\n )}\n </div>\n {/* Label */}\n <span\n class={{\n 'bq-switch--label text-m font-medium leading-regular text-text-primary transition-colors duration-300':\n true,\n 'ms-s': this.hasLabel && !this.reverseOrder,\n 'me-s': this.hasLabel && this.reverseOrder,\n }}\n ref={(span) => (this.labelElem = span)}\n part=\"label\"\n >\n <slot onSlotchange={this.handleSlotChange} />\n </span>\n </label>\n </Host>\n );\n }\n}\n"],"mappings":";;;;;;;;;;AAAA,MAAMA,IAAc;;AACpB,MAAAC,IAAeD;;MCsBFE,IAAQ;;;;;;oBAiBC;6BAMmC;mBAGK;oBAGd;qBAGC;sBAGW;0BAMQ;;oBAMpB;wBAGI;;;;;EA9C1CC;EACAC;EACAC;;;;;;;;;;EAyDCC;;EAGAC;;EAGAC;;;;EAMT,iBAAAC;IACEC,KAAKL,mBAAmBK,KAAKC;;EAG/B,gBAAAC;IACEF,KAAKG;;EAGP,kBAAAC;;;;;;IAME,IAAIJ,KAAKC,YAAYD,KAAKL,kBAAkB;MAC1CK,KAAKJ,SAASS,KAAK;QAAEJ,SAASD,KAAKC;;MACnCD,KAAKL,mBAAmBK,KAAKC;;;;;;;;;;;;;;;EAmBjC,YAAMK;IACJN,KAAKN,WAAWa;;;;;SAQlB,YAAMC;IACJR,KAAKN,WAAWe;;;;;SAQlB,WAAMC;IACJV,KAAKN,WAAWiB;;;;;;EAQVC,aAAe;IACrBZ,KAAKC,WAAWD,KAAKC;IACrBD,KAAKN,UAAUmB,aAAa,WAAW,GAAGb,KAAKC;AAAU;EAGnDa,cAAgB;IACtBd,KAAKH,QAAQQ,KAAKL,KAAKe;AAAG;EAGpBC,aAAe;IACrBhB,KAAKF,OAAOO,KAAKL,KAAKe;AAAG;EAGnBZ,iBAAmB;IACzB,MAAMc,IAAOjB,KAAKP,WAAWyB,cAAc,WAAW;IACtD,IAAIC,EAAMF,IAAO;IAEjBjB,KAAKoB,aAAaC,EAAeJ,GAAM;MAAEK,SAAS;OAAQC;AAAM;;;;EAOlE,MAAAC;IACE,MAAMC,IAAY;SACZzB,KAAK0B,kBAAkB;QAAE,gCAAgC1B,KAAK0B;;;IAGpE,MAAMC,IAAkB;MACtB,kBAAkB3B,KAAK4B;MACvB,cAAc5B,KAAKC;MACnB,eAAeD,KAAK6B;MACpB,oBAAoB7B,KAAK8B;;IAG3B,OACEC,EAACC,GAAI;MAAAC,KAAA;MAACC,OAAO;QAAE,cAAclC,KAAKmC;;MAAaC,OAAOX;OACpDM,EAAA;MAAAE,KAAA;MAAOC,OAAO;QAAE,mBAAmB;WAASP;;MAAmBU,MAAK;OAElEN,EAAA;MAAAE,KAAA;MACEC,OAAM;MACNI,MAAK;MACLrC,SAASD,KAAKC;MACd4B,UAAU7B,KAAK6B;MACfU,UAAUvC,KAAKuC;MACfC,OAAOrB,EAAMnB,KAAKwC,QAAQxC,KAAKwC,OAAOC;MAAS,cACnCzC,KAAKwC;MAAI,gBACPxC,KAAKC,UAAU,SAAS;MAAO,iBAC9BD,KAAK6B,WAAW,SAAS;MACxCa,QAAQ1C,KAAKgB;MACb2B,UAAU3C,KAAKY;MACfgC,SAAS5C,KAAKc;MACd+B,KAAMC,KAAW9C,KAAKN,YAAYoD;MAClCC,MAAK;MACLC,OAAOhD,KAAKgD;QAGdjB,EAAA;MAAAE,KAAA;MACEC,OAAM;MACNG,MAAK;OAEJrC,KAAKiD,eAAe,UACnBlB,EAAA;MAAAE,KAAA;MACEC,OAAM;MACNM,MAAK;MACLU,OAAM;MACNH,MAAK;MACLI,OAAM;MACNd,MAAK;QAITN,EAAA;MAAAE,KAAA;MAAKC,OAAM;MAA0BG,MAAK;QACzCrC,KAAKiD,eAAe,UACnBlB,EAAA;MAAAE,KAAA;MACEC,OAAM;MACNM,MAAK;MACLU,OAAM;MACNH,MAAK;MACLI,OAAM;MACNd,MAAK;SAKXN,EAAA;MAAAE,KAAA;MACEC,OAAO;QACL,wGACE;QACF,QAAQlC,KAAKoB,aAAapB,KAAK8B;QAC/B,QAAQ9B,KAAKoB,YAAYpB,KAAK8B;;MAEhCe,KAAMO,KAAUpD,KAAKP,YAAY2D;MACjCf,MAAK;OAELN,EAAA;MAAAE,KAAA;MAAMoB,cAAcrD,KAAKG","ignoreList":[]}
|
|
@@ -4,9 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { r, c as a, g as b, h as e } from "./p-01df4baa.js";
|
|
6
6
|
|
|
7
|
-
import "./p-
|
|
8
|
-
|
|
9
|
-
import { i as t } from "./p-0fce4de9.js";
|
|
7
|
+
import { i as t } from "./p-83d6d9ad.js";
|
|
10
8
|
|
|
11
9
|
import "./p-ecd27cf2.js";
|
|
12
10
|
|
|
@@ -111,4 +109,4 @@ const i = class {
|
|
|
111
109
|
i.style = q;
|
|
112
110
|
|
|
113
111
|
export { i as bq_breadcrumb_item };
|
|
114
|
-
//# sourceMappingURL=p-
|
|
112
|
+
//# sourceMappingURL=p-a608a4fb.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["bqBreadcrumbItemCss","BqBreadcrumbItemStyle0","BqBreadcrumbItem","bqBlur","bqFocus","bqClick","onBlur","this","emit","el","onFocus","onClick","render","isLink","isDefined","href","TagElem","h","key","class","ariaLabel","part","undefined","rel","target","isLastItem","name"],"sources":["../../packages/beeq/src/components/breadcrumb-item/scss/bq-breadcrumb-item.scss?tag=bq-breadcrumb-item&encapsulation=shadow","../../packages/beeq/src/components/breadcrumb-item/bq-breadcrumb-item.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Breadcrumb item styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-breadcrumb-item.variables';\n\n.breadcrumb-item {\n @apply border-[length:--bq-breadcrumb-item--border-width] border-[color:--bq-breadcrumb-item--border-color];\n @apply rounded-[--bq-breadcrumb-item--border-radius] bg-[--bq-breadcrumb-item--background] shadow-[shadow:--bq-breadcrumb-item--box-shadow];\n @apply pe-[--bq-breadcrumb-item--padding-end] ps-[--bq-breadcrumb-item--padding-start] p-b-[--bq-breadcrumb-item--paddingY];\n @apply text-[length:--bq-breadcrumb-item--text-size] font-regular leading-[--bq-breadcrumb-item--line-height] text-[color:--bq-breadcrumb-item--text-color];\n @apply focus-visible:focus hover:text-hover-text-brand active:outline-none;\n @apply transition-colors duration-300 ease-in-out;\n @apply cursor-pointer no-underline;\n\n border-style: var(--bq-avatar--border-style);\n}\n\n.breadcrumb-separator {\n @apply flex items-center text-[length:--bq-breadcrumb-item--text-size-separator];\n @apply pe-[--bq-breadcrumb-item--padding-end-separator] ps-[--bq-breadcrumb-item--padding-start-separator];\n}\n","import { Component, Element, Event, EventEmitter, h, Prop } from '@stencil/core';\n\nimport { isDefined } from '../../shared/utils';\n\n/**\n * @part base - The component wrapper container\n * @part base - The breadcrumb item wrapper (`button` or `a`)\n * @part content - The `span` tag that loads the content item\n * @part separator - The `span` tag that loads the separator\n */\n@Component({\n tag: 'bq-breadcrumb-item',\n styleUrl: './scss/bq-breadcrumb-item.scss',\n shadow: true,\n})\nexport class BqBreadcrumbItem {\n // Own Properties\n // ====================\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqBreadcrumbItemElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /**\n * The aria-label that corresponds to the full title of the destination page.\n * This won't be shown in the page, but it will be used by screen readers and other assistive devices.\n */\n @Prop() ariaLabel: string;\n\n /** If true, the item is the last element inside breadcrumb */\n @Prop() isLastItem: boolean = false;\n\n /** If set, the breadcrumb item will be rendered as an `<a>` with this `href`, otherwise, a `<button>` will be rendered. */\n @Prop({ reflect: true }) href: string;\n\n /** Where to display the link in the browser context. Relevant only if `href` is set. */\n @Prop({ reflect: true }) target: '_blank' | '_parent' | '_self' | '_top';\n\n /** Where to display the link in the browser context. Relevant only if `href` is set. */\n @Prop({ reflect: true }) rel: string = 'noreferrer noopener';\n\n // Prop lifecycle events\n // =======================\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when item loses focus */\n @Event() bqBlur: EventEmitter<HTMLBqBreadcrumbItemElement>;\n\n /** Handler to be called when item is focused */\n @Event() bqFocus: EventEmitter<HTMLBqBreadcrumbItemElement>;\n\n /** Handler to be called when item is clicked */\n @Event() bqClick: EventEmitter<HTMLBqBreadcrumbItemElement>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n // Listeners\n // ==============\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private onBlur = () => {\n this.bqBlur.emit(this.el);\n };\n\n private onFocus = () => {\n this.bqFocus.emit(this.el);\n };\n\n private onClick = () => {\n this.bqClick.emit(this.el);\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const isLink = isDefined(this.href);\n const TagElem = isLink ? 'a' : 'button';\n\n return (\n <div class=\"flex items-center\" aria-label={this.ariaLabel} part=\"base\">\n <TagElem\n class=\"breadcrumb-item\"\n href={isLink ? this.href : undefined}\n rel={isLink && this.target ? 'noreferrer noopener' : undefined}\n target={isLink ? this.target : undefined}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onClick={this.onClick}\n aria-current={isLink && this.isLastItem ? 'location' : undefined} // indicates the last link as the current page\n part=\"item\"\n >\n <span\n class={{\n 'flex items-center gap-xs2': true,\n 'text-text-brand': this.isLastItem,\n }}\n part=\"content\"\n >\n <slot></slot>\n </span>\n </TagElem>\n <span\n class={{\n 'breadcrumb-separator': true,\n }}\n part=\"separator\"\n >\n <slot name=\"separator\"></slot>\n </span>\n </div>\n );\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["bqBreadcrumbItemCss","BqBreadcrumbItemStyle0","BqBreadcrumbItem","bqBlur","bqFocus","bqClick","onBlur","this","emit","el","onFocus","onClick","render","isLink","isDefined","href","TagElem","h","key","class","ariaLabel","part","undefined","rel","target","isLastItem","name"],"sources":["../../packages/beeq/src/components/breadcrumb-item/scss/bq-breadcrumb-item.scss?tag=bq-breadcrumb-item&encapsulation=shadow","../../packages/beeq/src/components/breadcrumb-item/bq-breadcrumb-item.tsx"],"sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Breadcrumb item styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-breadcrumb-item.variables';\n\n.breadcrumb-item {\n @apply border-[length:--bq-breadcrumb-item--border-width] border-[color:--bq-breadcrumb-item--border-color];\n @apply rounded-[--bq-breadcrumb-item--border-radius] bg-[--bq-breadcrumb-item--background] shadow-[shadow:--bq-breadcrumb-item--box-shadow];\n @apply pe-[--bq-breadcrumb-item--padding-end] ps-[--bq-breadcrumb-item--padding-start] p-b-[--bq-breadcrumb-item--paddingY];\n @apply text-[length:--bq-breadcrumb-item--text-size] font-regular leading-[--bq-breadcrumb-item--line-height] text-[color:--bq-breadcrumb-item--text-color];\n @apply focus-visible:focus hover:text-hover-text-brand active:outline-none;\n @apply transition-colors duration-300 ease-in-out;\n @apply cursor-pointer no-underline;\n\n border-style: var(--bq-avatar--border-style);\n}\n\n.breadcrumb-separator {\n @apply flex items-center text-[length:--bq-breadcrumb-item--text-size-separator];\n @apply pe-[--bq-breadcrumb-item--padding-end-separator] ps-[--bq-breadcrumb-item--padding-start-separator];\n}\n","import { Component, Element, Event, EventEmitter, h, Prop } from '@stencil/core';\n\nimport { isDefined } from '../../shared/utils';\n\n/**\n * @part base - The component wrapper container\n * @part base - The breadcrumb item wrapper (`button` or `a`)\n * @part content - The `span` tag that loads the content item\n * @part separator - The `span` tag that loads the separator\n */\n@Component({\n tag: 'bq-breadcrumb-item',\n styleUrl: './scss/bq-breadcrumb-item.scss',\n shadow: true,\n})\nexport class BqBreadcrumbItem {\n // Own Properties\n // ====================\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqBreadcrumbItemElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /**\n * The aria-label that corresponds to the full title of the destination page.\n * This won't be shown in the page, but it will be used by screen readers and other assistive devices.\n */\n @Prop() ariaLabel: string;\n\n /** If true, the item is the last element inside breadcrumb */\n @Prop() isLastItem: boolean = false;\n\n /** If set, the breadcrumb item will be rendered as an `<a>` with this `href`, otherwise, a `<button>` will be rendered. */\n @Prop({ reflect: true }) href: string;\n\n /** Where to display the link in the browser context. Relevant only if `href` is set. */\n @Prop({ reflect: true }) target: '_blank' | '_parent' | '_self' | '_top';\n\n /** Where to display the link in the browser context. Relevant only if `href` is set. */\n @Prop({ reflect: true }) rel: string = 'noreferrer noopener';\n\n // Prop lifecycle events\n // =======================\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when item loses focus */\n @Event() bqBlur: EventEmitter<HTMLBqBreadcrumbItemElement>;\n\n /** Handler to be called when item is focused */\n @Event() bqFocus: EventEmitter<HTMLBqBreadcrumbItemElement>;\n\n /** Handler to be called when item is clicked */\n @Event() bqClick: EventEmitter<HTMLBqBreadcrumbItemElement>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n // Listeners\n // ==============\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private onBlur = () => {\n this.bqBlur.emit(this.el);\n };\n\n private onFocus = () => {\n this.bqFocus.emit(this.el);\n };\n\n private onClick = () => {\n this.bqClick.emit(this.el);\n };\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const isLink = isDefined(this.href);\n const TagElem = isLink ? 'a' : 'button';\n\n return (\n <div class=\"flex items-center\" aria-label={this.ariaLabel} part=\"base\">\n <TagElem\n class=\"breadcrumb-item\"\n href={isLink ? this.href : undefined}\n rel={isLink && this.target ? 'noreferrer noopener' : undefined}\n target={isLink ? this.target : undefined}\n onBlur={this.onBlur}\n onFocus={this.onFocus}\n onClick={this.onClick}\n aria-current={isLink && this.isLastItem ? 'location' : undefined} // indicates the last link as the current page\n part=\"item\"\n >\n <span\n class={{\n 'flex items-center gap-xs2': true,\n 'text-text-brand': this.isLastItem,\n }}\n part=\"content\"\n >\n <slot></slot>\n </span>\n </TagElem>\n <span\n class={{\n 'breadcrumb-separator': true,\n }}\n part=\"separator\"\n >\n <slot name=\"separator\"></slot>\n </span>\n </div>\n );\n }\n}\n"],"mappings":";;;;;;;;;;AAAA,MAAMA,IAAsB;;AAC5B,MAAAC,IAAeD;;MCcFE,IAAgB;;;;;;;sBAuBG;;;eASS;;;;;;;;;;;EAU9BC;;EAGAC;;EAGAC;;;;;;;;;;;;;;;;EAqBDC,OAAS;IACfC,KAAKJ,OAAOK,KAAKD,KAAKE;AAAG;EAGnBC,QAAU;IAChBH,KAAKH,QAAQI,KAAKD,KAAKE;AAAG;EAGpBE,QAAU;IAChBJ,KAAKF,QAAQG,KAAKD,KAAKE;AAAG;;;;EAO5B,MAAAG;IACE,MAAMC,IAASC,EAAUP,KAAKQ;IAC9B,MAAMC,IAAUH,IAAS,MAAM;IAE/B,OACEI,EAAA;MAAAC,KAAA;MAAKC,OAAM;MAAmB,cAAaZ,KAAKa;MAAWC,MAAK;OAC9DJ,EAACD,GAAO;MAAAE,KAAA;MACNC,OAAM;MACNJ,MAAMF,IAASN,KAAKQ,OAAOO;MAC3BC,KAAKV,KAAUN,KAAKiB,SAAS,wBAAwBF;MACrDE,QAAQX,IAASN,KAAKiB,SAASF;MAC/BhB,QAAQC,KAAKD;MACbI,SAASH,KAAKG;MACdC,SAASJ,KAAKI;MAAO,gBACPE,KAAUN,KAAKkB,aAAa,aAAaH;MACvDD,MAAK;OAELJ,EAAA;MAAAC,KAAA;MACEC,OAAO;QACL,6BAA6B;QAC7B,mBAAmBZ,KAAKkB;;MAE1BJ,MAAK;OAELJ,EAAA;MAAAC,KAAA;UAGJD,EAAA;MAAAC,KAAA;MACEC,OAAO;QACL,wBAAwB;;MAE1BE,MAAK;OAELJ,EAAA;MAAAC,KAAA;MAAMQ,MAAK","ignoreList":[]}
|
|
@@ -4,8 +4,6 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { r as a, c as r, g as b, h as e } from "./p-01df4baa.js";
|
|
6
6
|
|
|
7
|
-
import "./p-a84d4562.js";
|
|
8
|
-
|
|
9
7
|
import { d as q } from "./p-1defeea3.js";
|
|
10
8
|
|
|
11
9
|
import { i as n } from "./p-57621be1.js";
|
|
@@ -208,4 +206,4 @@ const l = class {
|
|
|
208
206
|
l.style = s;
|
|
209
207
|
|
|
210
208
|
export { l as bq_radio_group };
|
|
211
|
-
//# sourceMappingURL=p-
|
|
209
|
+
//# sourceMappingURL=p-aacaaa35.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["RADIO_GROUP_ORIENTATION","bqRadioGroupCss","BqRadioGroupStyle0","BqRadioGroup","focusedBqRadio","debouncedBqChange","handleGroupProperties","this","bqRadioElements","forEach","bqRadio","backgroundOnHover","disabled","name","checked","isNil","value","checkPropValues","validatePropValue","el","checkDebounceChange","debounceTime","Math","max","cancel","debounce","event","bqChange","emit","componentWillLoad","componentDidLoad","onMouseDown","isHTMLElement","target","contains","onBqClick","detail","bqRadioElement","checkRadioInput","onBqKeyDown","key","focusRadioInputSibbling","onBqFocus","stopPropagation","onBqBlur","Array","from","querySelectorAll","currentTarget","next","index","elements","getNextRadioElement","vFocus","forward","element","elementIndex","length","render","h","class","fieldset","role","part","orientation"],"sources":["../../packages/beeq/src/components/radio-group/bq-radio-group.types.ts","../../packages/beeq/src/components/radio-group/scss/bq-radio-group.scss?tag=bq-radio-group&encapsulation=shadow","../../packages/beeq/src/components/radio-group/bq-radio-group.tsx"],"sourcesContent":["export const RADIO_GROUP_ORIENTATION = ['horizontal', 'vertical'] as const;\nexport type TRadioGroupOrientation = (typeof RADIO_GROUP_ORIENTATION)[number];\n","/* -------------------------------------------------------------------------- */\n/* Radio group styles */\n/* -------------------------------------------------------------------------- */\n\n:host {\n @apply inline-block;\n}\n\n.bq-radio-group {\n @apply m-b-0 m-i-0;\n\n &:not(.has-fieldset) {\n @apply border-0 m-b-0 m-i-0 p-b-0 p-i-0;\n }\n\n &--horizontal {\n @apply flex;\n }\n\n &--vertical {\n @apply flex flex-col;\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Listen, Prop, Watch } from '@stencil/core';\n\nimport { RADIO_GROUP_ORIENTATION, TRadioGroupOrientation } from './bq-radio-group.types';\nimport { debounce, isHTMLElement, isNil, TDebounce, validatePropValue } from '../../shared/utils';\n/**\n * @part base - The component's internal wrapper of the radio components.\n * @part label - The `<legend>` element that holds the text content.\n * @part group - The `<div>` element that holds the radio inputs.\n */\n@Component({\n tag: 'bq-radio-group',\n styleUrl: './scss/bq-radio-group.scss',\n shadow: true,\n})\nexport class BqRadioGroup {\n // Own Properties\n // ====================\n\n private focusedBqRadio: HTMLBqRadioElement | null = null;\n\n private debouncedBqChange: TDebounce<{ value: string; target: HTMLBqRadioElement }>;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqRadioGroupElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** If true, all radio inputs in the group will display a background on hover */\n @Prop({ reflect: true }) backgroundOnHover? = false;\n\n /** Name of the HTML input form control. Submitted with the form as part of a name/value pair. */\n @Prop({ reflect: true }) name!: string;\n\n /** A string representing the value of the radio. */\n @Prop({ reflect: true, mutable: true }) value?: string;\n\n /** If true radio inputs are disabled */\n @Prop({ reflect: true }) disabled? = false;\n\n /** If true displays fieldset */\n @Prop({ reflect: true }) fieldset? = false;\n\n /** The display orientation of the radio inputs */\n @Prop({ reflect: true, mutable: true }) orientation: TRadioGroupOrientation = 'vertical';\n\n /** A number representing the delay time (in milliseconds) that `bqChange` event handler gets triggered once the value change */\n @Prop({ reflect: true, mutable: true }) debounceTime = 0;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('backgroundOnHover')\n @Watch('disabled')\n @Watch('name')\n @Watch('value')\n handleGroupProperties() {\n if (!this.bqRadioElements) return;\n\n this.bqRadioElements.forEach((bqRadio) => {\n bqRadio.backgroundOnHover = this.backgroundOnHover;\n bqRadio.disabled = this.disabled;\n bqRadio.name = this.name;\n bqRadio.checked = !isNil(this.value) ? bqRadio.value === this.value : false;\n });\n }\n\n @Watch('orientation')\n checkPropValues() {\n validatePropValue(RADIO_GROUP_ORIENTATION, 'vertical', this.el, 'orientation');\n }\n\n @Watch('debounceTime')\n checkDebounceChange() {\n if (this.debounceTime < 0) {\n this.debounceTime = Math.max(0, this.debounceTime);\n }\n\n if (this.debouncedBqChange) {\n this.debouncedBqChange.cancel();\n }\n\n this.debouncedBqChange = debounce((event: Parameters<typeof this.debouncedBqChange>[0]) => {\n this.bqChange.emit(event);\n }, this.debounceTime);\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when the radio state changes */\n @Event() bqChange: EventEmitter<{ value: string; target: HTMLBqRadioElement }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.checkPropValues();\n this.checkDebounceChange();\n }\n\n componentDidLoad() {\n this.handleGroupProperties();\n }\n\n // Listeners\n // ==============\n\n @Listen('mousedown', { target: 'body', passive: true })\n onMouseDown(event: MouseEvent) {\n if (!isNil(this.focusedBqRadio) && isHTMLElement(event.target, 'bq-radio') && this.el.contains(event.target)) {\n this.focusedBqRadio = event.target;\n }\n }\n\n @Listen('bqClick')\n onBqClick(event: CustomEvent<HTMLBqRadioElement>) {\n if (isNil(this.focusedBqRadio)) {\n this.focusedBqRadio = event.detail;\n }\n\n if (event.detail.value === this.value) return;\n\n const target = event.detail;\n this.bqRadioElements.forEach((bqRadioElement) => (bqRadioElement.checked = bqRadioElement === target));\n this.checkRadioInput(event.detail);\n }\n\n @Listen('bqKeyDown')\n onBqKeyDown(event: CustomEvent<KeyboardEvent>) {\n const { target } = event;\n\n if (!isHTMLElement(target, 'bq-radio')) return;\n\n switch (event.detail.key) {\n case 'ArrowDown':\n case 'ArrowRight': {\n this.focusRadioInputSibbling(target, true);\n break;\n }\n\n case 'ArrowUp':\n case 'ArrowLeft': {\n this.focusRadioInputSibbling(target, false);\n break;\n }\n\n default:\n }\n }\n\n @Listen('bqFocus', { capture: true })\n onBqFocus(event: CustomEvent<HTMLBqRadioElement>) {\n if (event.detail !== this.focusedBqRadio) return;\n\n event.stopPropagation();\n }\n\n @Listen('bqBlur', { capture: true })\n onBqBlur(event: CustomEvent<HTMLBqRadioElement>) {\n if (!isNil(this.focusedBqRadio) && event.detail !== this.focusedBqRadio) {\n event.stopPropagation();\n } else {\n this.focusedBqRadio = null;\n }\n }\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private get bqRadioElements(): HTMLBqRadioElement[] {\n return Array.from(this.el.querySelectorAll('bq-radio'));\n }\n\n private focusRadioInputSibbling(currentTarget: HTMLBqRadioElement, next: boolean): void {\n this.bqRadioElements.forEach((bqRadioElement, index, elements) => {\n if (bqRadioElement === currentTarget) {\n const target = this.getNextRadioElement(elements, index, next);\n\n currentTarget.checked = false;\n\n target.vFocus();\n this.checkRadioInput(target);\n }\n });\n }\n\n private getNextRadioElement(elements: HTMLBqRadioElement[], index: number, forward = true): HTMLBqRadioElement {\n let element = null;\n let elementIndex = index;\n\n do {\n elementIndex = (elements.length + (elementIndex + (forward ? 1 : -1))) % elements.length;\n element = elements[elementIndex];\n } while (element.disabled);\n\n return element;\n }\n\n private checkRadioInput(target: HTMLBqRadioElement): void {\n const { value } = target;\n target.checked = true;\n this.value = value;\n this.focusedBqRadio = target;\n this.debouncedBqChange({ value, target });\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <fieldset class={{ 'bq-radio-group': true, 'has-fieldset': this.fieldset }} role=\"radiogroup\" part=\"base\">\n <legend part=\"label\">\n <slot name=\"label\" />\n </legend>\n <div class={`bq-radio-group--${this.orientation}`} part=\"group\">\n <slot />\n </div>\n </fieldset>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["RADIO_GROUP_ORIENTATION","bqRadioGroupCss","BqRadioGroupStyle0","BqRadioGroup","focusedBqRadio","debouncedBqChange","handleGroupProperties","this","bqRadioElements","forEach","bqRadio","backgroundOnHover","disabled","name","checked","isNil","value","checkPropValues","validatePropValue","el","checkDebounceChange","debounceTime","Math","max","cancel","debounce","event","bqChange","emit","componentWillLoad","componentDidLoad","onMouseDown","isHTMLElement","target","contains","onBqClick","detail","bqRadioElement","checkRadioInput","onBqKeyDown","key","focusRadioInputSibbling","onBqFocus","stopPropagation","onBqBlur","Array","from","querySelectorAll","currentTarget","next","index","elements","getNextRadioElement","vFocus","forward","element","elementIndex","length","render","h","class","fieldset","role","part","orientation"],"sources":["../../packages/beeq/src/components/radio-group/bq-radio-group.types.ts","../../packages/beeq/src/components/radio-group/scss/bq-radio-group.scss?tag=bq-radio-group&encapsulation=shadow","../../packages/beeq/src/components/radio-group/bq-radio-group.tsx"],"sourcesContent":["export const RADIO_GROUP_ORIENTATION = ['horizontal', 'vertical'] as const;\nexport type TRadioGroupOrientation = (typeof RADIO_GROUP_ORIENTATION)[number];\n","/* -------------------------------------------------------------------------- */\n/* Radio group styles */\n/* -------------------------------------------------------------------------- */\n\n:host {\n @apply inline-block;\n}\n\n.bq-radio-group {\n @apply m-b-0 m-i-0;\n\n &:not(.has-fieldset) {\n @apply border-0 m-b-0 m-i-0 p-b-0 p-i-0;\n }\n\n &--horizontal {\n @apply flex;\n }\n\n &--vertical {\n @apply flex flex-col;\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Listen, Prop, Watch } from '@stencil/core';\n\nimport { RADIO_GROUP_ORIENTATION, TRadioGroupOrientation } from './bq-radio-group.types';\nimport { debounce, isHTMLElement, isNil, TDebounce, validatePropValue } from '../../shared/utils';\n/**\n * @part base - The component's internal wrapper of the radio components.\n * @part label - The `<legend>` element that holds the text content.\n * @part group - The `<div>` element that holds the radio inputs.\n */\n@Component({\n tag: 'bq-radio-group',\n styleUrl: './scss/bq-radio-group.scss',\n shadow: true,\n})\nexport class BqRadioGroup {\n // Own Properties\n // ====================\n\n private focusedBqRadio: HTMLBqRadioElement | null = null;\n\n private debouncedBqChange: TDebounce<{ value: string; target: HTMLBqRadioElement }>;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqRadioGroupElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n // Public Property API\n // ========================\n\n /** If true, all radio inputs in the group will display a background on hover */\n @Prop({ reflect: true }) backgroundOnHover? = false;\n\n /** Name of the HTML input form control. Submitted with the form as part of a name/value pair. */\n @Prop({ reflect: true }) name!: string;\n\n /** A string representing the value of the radio. */\n @Prop({ reflect: true, mutable: true }) value?: string;\n\n /** If true radio inputs are disabled */\n @Prop({ reflect: true }) disabled? = false;\n\n /** If true displays fieldset */\n @Prop({ reflect: true }) fieldset? = false;\n\n /** The display orientation of the radio inputs */\n @Prop({ reflect: true, mutable: true }) orientation: TRadioGroupOrientation = 'vertical';\n\n /** A number representing the delay time (in milliseconds) that `bqChange` event handler gets triggered once the value change */\n @Prop({ reflect: true, mutable: true }) debounceTime = 0;\n\n // Prop lifecycle events\n // =======================\n\n @Watch('backgroundOnHover')\n @Watch('disabled')\n @Watch('name')\n @Watch('value')\n handleGroupProperties() {\n if (!this.bqRadioElements) return;\n\n this.bqRadioElements.forEach((bqRadio) => {\n bqRadio.backgroundOnHover = this.backgroundOnHover;\n bqRadio.disabled = this.disabled;\n bqRadio.name = this.name;\n bqRadio.checked = !isNil(this.value) ? bqRadio.value === this.value : false;\n });\n }\n\n @Watch('orientation')\n checkPropValues() {\n validatePropValue(RADIO_GROUP_ORIENTATION, 'vertical', this.el, 'orientation');\n }\n\n @Watch('debounceTime')\n checkDebounceChange() {\n if (this.debounceTime < 0) {\n this.debounceTime = Math.max(0, this.debounceTime);\n }\n\n if (this.debouncedBqChange) {\n this.debouncedBqChange.cancel();\n }\n\n this.debouncedBqChange = debounce((event: Parameters<typeof this.debouncedBqChange>[0]) => {\n this.bqChange.emit(event);\n }, this.debounceTime);\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n /** Handler to be called when the radio state changes */\n @Event() bqChange: EventEmitter<{ value: string; target: HTMLBqRadioElement }>;\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n componentWillLoad() {\n this.checkPropValues();\n this.checkDebounceChange();\n }\n\n componentDidLoad() {\n this.handleGroupProperties();\n }\n\n // Listeners\n // ==============\n\n @Listen('mousedown', { target: 'body', passive: true })\n onMouseDown(event: MouseEvent) {\n if (!isNil(this.focusedBqRadio) && isHTMLElement(event.target, 'bq-radio') && this.el.contains(event.target)) {\n this.focusedBqRadio = event.target;\n }\n }\n\n @Listen('bqClick')\n onBqClick(event: CustomEvent<HTMLBqRadioElement>) {\n if (isNil(this.focusedBqRadio)) {\n this.focusedBqRadio = event.detail;\n }\n\n if (event.detail.value === this.value) return;\n\n const target = event.detail;\n this.bqRadioElements.forEach((bqRadioElement) => (bqRadioElement.checked = bqRadioElement === target));\n this.checkRadioInput(event.detail);\n }\n\n @Listen('bqKeyDown')\n onBqKeyDown(event: CustomEvent<KeyboardEvent>) {\n const { target } = event;\n\n if (!isHTMLElement(target, 'bq-radio')) return;\n\n switch (event.detail.key) {\n case 'ArrowDown':\n case 'ArrowRight': {\n this.focusRadioInputSibbling(target, true);\n break;\n }\n\n case 'ArrowUp':\n case 'ArrowLeft': {\n this.focusRadioInputSibbling(target, false);\n break;\n }\n\n default:\n }\n }\n\n @Listen('bqFocus', { capture: true })\n onBqFocus(event: CustomEvent<HTMLBqRadioElement>) {\n if (event.detail !== this.focusedBqRadio) return;\n\n event.stopPropagation();\n }\n\n @Listen('bqBlur', { capture: true })\n onBqBlur(event: CustomEvent<HTMLBqRadioElement>) {\n if (!isNil(this.focusedBqRadio) && event.detail !== this.focusedBqRadio) {\n event.stopPropagation();\n } else {\n this.focusedBqRadio = null;\n }\n }\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private get bqRadioElements(): HTMLBqRadioElement[] {\n return Array.from(this.el.querySelectorAll('bq-radio'));\n }\n\n private focusRadioInputSibbling(currentTarget: HTMLBqRadioElement, next: boolean): void {\n this.bqRadioElements.forEach((bqRadioElement, index, elements) => {\n if (bqRadioElement === currentTarget) {\n const target = this.getNextRadioElement(elements, index, next);\n\n currentTarget.checked = false;\n\n target.vFocus();\n this.checkRadioInput(target);\n }\n });\n }\n\n private getNextRadioElement(elements: HTMLBqRadioElement[], index: number, forward = true): HTMLBqRadioElement {\n let element = null;\n let elementIndex = index;\n\n do {\n elementIndex = (elements.length + (elementIndex + (forward ? 1 : -1))) % elements.length;\n element = elements[elementIndex];\n } while (element.disabled);\n\n return element;\n }\n\n private checkRadioInput(target: HTMLBqRadioElement): void {\n const { value } = target;\n target.checked = true;\n this.value = value;\n this.focusedBqRadio = target;\n this.debouncedBqChange({ value, target });\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n return (\n <fieldset class={{ 'bq-radio-group': true, 'has-fieldset': this.fieldset }} role=\"radiogroup\" part=\"base\">\n <legend part=\"label\">\n <slot name=\"label\" />\n </legend>\n <div class={`bq-radio-group--${this.orientation}`} part=\"group\">\n <slot />\n </div>\n </fieldset>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,9 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { r as a, g as r, h as e, a as b } from "./p-01df4baa.js";
|
|
6
6
|
|
|
7
|
-
import "./p-
|
|
8
|
-
|
|
9
|
-
import { g as q } from "./p-5a9a73a0.js";
|
|
7
|
+
import { g as q } from "./p-edfd9767.js";
|
|
10
8
|
|
|
11
9
|
import { i as t } from "./p-99829fc7.js";
|
|
12
10
|
|
|
@@ -187,4 +185,4 @@ const u = class {
|
|
|
187
185
|
u.style = g;
|
|
188
186
|
|
|
189
187
|
export { u as bq_divider };
|
|
190
|
-
//# sourceMappingURL=p-
|
|
188
|
+
//# sourceMappingURL=p-b77b52f2.entry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DIVIDER_ORIENTATION","DIVIDER_ORIENTATION_ENUM","HORIZONTAL","VERTICAL","DIVIDER_TITLE_ALIGNMENT","DIVIDER_STROKE_LINECAP","bqDividerCss","BqDividerStyle0","BqDivider","titleElem","checkPropValues","validatePropValue","this","el","connectedCallback","componentWillLoad","componentDidLoad","handleSlotChange","hasTitle","hasSlotContent","getTextContent","querySelector","strokeAttributes","strokeDrawPositions","dashed","strokeDasharray","strokeLinecap","strokeThickness","drawOffset","x1","x2","y1","y2","orientationMap","Map","Object","entries","get","orientation","strokeDashWidth","strokeDashGap","render","styles","strokeColor","getColorCSSVariable","isNil","strokeBasis","h","Host","key","style","class","titleAlignment","part","ref","div","role","onSlotchange"],"sources":["../../packages/beeq/src/components/divider/bq-divider.types.ts","../../packages/beeq/src/components/divider/scss/bq-divider.scss?tag=bq-divider&encapsulation=shadow","../../packages/beeq/src/components/divider/bq-divider.tsx"],"sourcesContent":["export const DIVIDER_ORIENTATION = ['horizontal', 'vertical'] as const;\nexport type TDividerOrientation = (typeof DIVIDER_ORIENTATION)[number];\n\nexport const DIVIDER_ORIENTATION_ENUM = {\n HORIZONTAL: 'horizontal',\n VERTICAL: 'vertical',\n} as const;\n\nexport const DIVIDER_TITLE_ALIGNMENT = ['start', 'middle', 'end'] as const;\nexport type TDividerTitleAlignment = (typeof DIVIDER_TITLE_ALIGNMENT)[number];\n\nexport const DIVIDER_STROKE_LINECAP = ['square', 'round', 'butt'] as const;\nexport type TDividerStrokeLinecap = (typeof DIVIDER_STROKE_LINECAP)[number];\n","/* -------------------------------------------------------------------------- */\n/* Button styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-divider.variables';\n\n:host {\n @apply block is-full;\n}\n\n:host([orientation='vertical']) {\n @apply flex bs-full;\n}\n\n.bq-divider {\n @apply flex items-center gap-[var(--bq-divider--title-marginX)];\n}\n\n.bq-divider--stroke {\n @apply flex-grow stroke-[color:var(--bq-divider--stroke-color)] bs-[var(--bq-divider--stroke-thickness)] is-full;\n\n &.end {\n @apply rotate-180;\n }\n}\n\n.bq-divider--title__start .bq-divider--stroke.start,\n.bq-divider--title__end .bq-divider--stroke.end {\n @apply flex-grow-0 basis-[var(--bq-divider--stroke-basis)];\n}\n\n.bq-divider--vertical {\n @apply flex-col items-center gap-[var(--bq-divider--title-marginX)] is-full;\n\n .bq-divider--stroke {\n @apply bs-full is-[var(--bq-divider--stroke-thickness)];\n }\n}\n","import { Component, Element, h, Host, Prop, State, Watch } from '@stencil/core';\n\nimport {\n DIVIDER_ORIENTATION,\n DIVIDER_ORIENTATION_ENUM,\n DIVIDER_STROKE_LINECAP,\n DIVIDER_TITLE_ALIGNMENT,\n TDividerOrientation,\n TDividerStrokeLinecap,\n TDividerTitleAlignment,\n} from './bq-divider.types';\nimport { getColorCSSVariable, getTextContent, hasSlotContent, isNil, validatePropValue } from '../../shared/utils';\n\n/**\n * @part base - The component's internal wrapper.\n * @part dash-start - The component's internal svg wrapper for the start line of the divider's stroke\n * @part dash-end - The component's internal svg wrapper for the end line of the divider's stroke\n * @part dash-start-line - The component's internal line component of the divider's stroke\n * @part dash-end-line - The component's internal line component of the divider's stroke\n */\n@Component({\n tag: 'bq-divider',\n styleUrl: './scss/bq-divider.scss',\n shadow: true,\n})\nexport class BqDivider {\n // Own Properties\n // ====================\n\n private titleElem: HTMLDivElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqDividerElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() private hasTitle: boolean;\n\n // Public Property API\n // ========================\n\n /** If true, the divider has a dashed pattern */\n @Prop() dashed = false;\n\n /** The default orientation of the divider */\n @Prop({ reflect: true }) orientation: TDividerOrientation = 'horizontal';\n\n /** Set the stroke color of the divider. The value should be a valid value of the palette color */\n @Prop({ reflect: true }) strokeColor?: string = 'stroke--primary';\n\n /** Set the alignment of the title on the main axis of the divider (horizontal / vertical) */\n @Prop({ reflect: true }) titleAlignment?: TDividerTitleAlignment = 'middle';\n\n /** Set the width of each dash of the divider's stroke. This is applicable when the stroke is dashed */\n @Prop({ reflect: true }) strokeDashWidth?: number = 12;\n\n /** Set the gap of the divider's stroke. This is applicable when the stroke is dashed */\n @Prop({ reflect: true }) strokeDashGap?: number = 7;\n\n /** Set the thickness of the divider's stroke. Value expressed in px*/\n @Prop({ reflect: true }) strokeThickness?: number = 1;\n\n /** Set the min width of the divider's stroke when text is not centered. Value expressed in px */\n @Prop({ reflect: true }) strokeBasis?: number = 0;\n\n /** Set the line of the divider's stroke. This is applicable when the stroke is dashed */\n @Prop({ reflect: true }) strokeLinecap?: TDividerStrokeLinecap = 'butt';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('orientation')\n @Watch('titleAlignment')\n @Watch('strokeLinecap')\n checkPropValues() {\n validatePropValue(DIVIDER_ORIENTATION, 'horizontal', this.el, 'orientation');\n validatePropValue(DIVIDER_TITLE_ALIGNMENT, 'middle', this.el, 'titleAlignment');\n validatePropValue(DIVIDER_STROKE_LINECAP, 'butt', this.el, 'strokeLinecap');\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n connectedCallback() {\n this.checkPropValues();\n }\n\n componentWillLoad() {\n this.checkPropValues();\n }\n\n componentDidLoad() {\n this.handleSlotChange();\n }\n\n // Listeners\n // ==============\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private handleSlotChange = () => {\n this.hasTitle = hasSlotContent(this.titleElem) || !!getTextContent(this.titleElem.querySelector('slot'));\n };\n\n private get strokeAttributes() {\n return {\n ...this.strokeDrawPositions,\n ...(this.dashed && { 'stroke-dasharray': this.strokeDasharray }),\n 'stroke-linecap': this.strokeLinecap,\n 'stroke-width': this.strokeThickness,\n };\n }\n\n private get strokeDrawPositions() {\n const drawOffset = this.strokeThickness / 2;\n const strokeDrawPositions = {\n [DIVIDER_ORIENTATION_ENUM.HORIZONTAL]: { x1: drawOffset, x2: '100%', y1: drawOffset, y2: drawOffset },\n [DIVIDER_ORIENTATION_ENUM.VERTICAL]: { x1: drawOffset, x2: drawOffset, y1: drawOffset, y2: '100%' },\n };\n const orientationMap = new Map(Object.entries(strokeDrawPositions));\n\n return orientationMap.get(this.orientation);\n }\n\n private get strokeDasharray() {\n return `${this.strokeDashWidth}, ${this.strokeDashGap}`;\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const styles = {\n ...(this.strokeColor && { '--bq-divider--stroke-color': getColorCSSVariable(this.strokeColor) }),\n ...(this.strokeThickness && { '--bq-divider--stroke-thickness': `${this.strokeThickness}px` }),\n ...(!isNil(this.strokeBasis) && { '--bq-divider--stroke-basis': `${this.strokeBasis}px` }),\n };\n\n return (\n <Host style={styles}>\n <div\n class={{\n 'bq-divider': true,\n [`bq-divider--${this.orientation}`]: true,\n [`bq-divider--title__${this.titleAlignment}`]: true,\n 'gap-0': !this.hasTitle,\n }}\n part=\"base\"\n ref={(div) => (this.titleElem = div)}\n role=\"separator\"\n aria-orientation={this.orientation}\n >\n <svg\n class={{\n 'bq-divider--stroke start': true,\n '!hidden': this.strokeBasis === 0 && this.titleAlignment === 'start',\n }}\n part=\"dash-start\"\n >\n <line {...this.strokeAttributes} part=\"dash-start-line\" />\n </svg>\n <slot onSlotchange={this.handleSlotChange} />\n <svg\n class={{\n 'bq-divider--stroke end': true,\n '!hidden': !this.hasTitle || (this.strokeBasis === 0 && this.titleAlignment === 'end'),\n }}\n part=\"dash-end\"\n >\n <line {...this.strokeAttributes} part=\"dash-end-line\" />\n </svg>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAO,MAAMA,IAAsB,EAAC,cAAc;;AAG3C,MAAMC,IAA2B;EACtCC,YAAY;EACZC,UAAU;;;AAGL,MAAMC,IAA0B,EAAC,SAAS,UAAU;;AAGpD,MAAMC,IAAyB,EAAC,UAAU,SAAS;;ACX1D,MAAMC,IAAe;;AACrB,MAAAC,IAAeD;;MCwBFE,IAAS;;;;kBAqBH;uBAG2C;uBAGZ;0BAGmB;2BAGf;yBAGF;2BAGE;uBAGJ;yBAGiB;;;;EAzCzDC;;;;;;EAiDR,eAAAC;IACEC,EAAkBX,GAAqB,cAAcY,KAAKC,IAAI;IAC9DF,EAAkBP,GAAyB,UAAUQ,KAAKC,IAAI;IAC9DF,EAAkBN,GAAwB,QAAQO,KAAKC,IAAI;;;;;;;;EAW7D,iBAAAC;IACEF,KAAKF;;EAGP,iBAAAK;IACEH,KAAKF;;EAGP,gBAAAM;IACEJ,KAAKK;;;;;;;;;;;;;;EAkBCA,iBAAmB;IACzBL,KAAKM,WAAWC,EAAeP,KAAKH,gBAAgBW,EAAeR,KAAKH,UAAUY,cAAc;AAAQ;EAG1G,oBAAYC;IACV,OAAO;SACFV,KAAKW;SACJX,KAAKY,UAAU;QAAE,oBAAoBZ,KAAKa;;MAC9C,kBAAkBb,KAAKc;MACvB,gBAAgBd,KAAKe;;;EAIzB,uBAAYJ;IACV,MAAMK,IAAahB,KAAKe,kBAAkB;IAC1C,MAAMJ,IAAsB;MAC1B,CAACtB,EAAyBC,aAAa;QAAE2B,IAAID;QAAYE,IAAI;QAAQC,IAAIH;QAAYI,IAAIJ;;MACzF,CAAC3B,EAAyBE,WAAW;QAAE0B,IAAID;QAAYE,IAAIF;QAAYG,IAAIH;QAAYI,IAAI;;;IAE7F,MAAMC,IAAiB,IAAIC,IAAIC,OAAOC,QAAQb;IAE9C,OAAOU,EAAeI,IAAIzB,KAAK0B;;EAGjC,mBAAYb;IACV,OAAO,GAAGb,KAAK2B,oBAAoB3B,KAAK4B;;;;;EAO1C,MAAAC;IACE,MAAMC,IAAS;SACT9B,KAAK+B,eAAe;QAAE,8BAA8BC,EAAoBhC,KAAK+B;;SAC7E/B,KAAKe,mBAAmB;QAAE,kCAAkC,GAAGf,KAAKe;;UACnEkB,EAAMjC,KAAKkC,gBAAgB;QAAE,8BAA8B,GAAGlC,KAAKkC;;;IAG1E,OACEC,EAACC,GAAI;MAAAC,KAAA;MAACC,OAAOR;OACXK,EAAA;MAAAE,KAAA;MACEE,OAAO;QACL,cAAc;QACd,CAAC,eAAevC,KAAK0B,gBAAgB;QACrC,CAAC,sBAAsB1B,KAAKwC,mBAAmB;QAC/C,UAAUxC,KAAKM;;MAEjBmC,MAAK;MACLC,KAAMC,KAAS3C,KAAKH,YAAY8C;MAChCC,MAAK;MAAW,oBACE5C,KAAK0B;OAEvBS,EAAA;MAAAE,KAAA;MACEE,OAAO;QACL,4BAA4B;QAC5B,WAAWvC,KAAKkC,gBAAgB,KAAKlC,KAAKwC,mBAAmB;;MAE/DC,MAAK;OAELN,EAAA;MAAAE,KAAA;SAAUrC,KAAKU;MAAkB+B,MAAK;SAExCN,EAAA;MAAAE,KAAA;MAAMQ,cAAc7C,KAAKK;QACzB8B,EAAA;MAAAE,KAAA;MACEE,OAAO;QACL,0BAA0B;QAC1B,YAAYvC,KAAKM,YAAaN,KAAKkC,gBAAgB,KAAKlC,KAAKwC,mBAAmB;;MAElFC,MAAK;OAELN,EAAA;MAAAE,KAAA;SAAUrC,KAAKU;MAAkB+B,MAAK","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["DIVIDER_ORIENTATION","DIVIDER_ORIENTATION_ENUM","HORIZONTAL","VERTICAL","DIVIDER_TITLE_ALIGNMENT","DIVIDER_STROKE_LINECAP","bqDividerCss","BqDividerStyle0","BqDivider","titleElem","checkPropValues","validatePropValue","this","el","connectedCallback","componentWillLoad","componentDidLoad","handleSlotChange","hasTitle","hasSlotContent","getTextContent","querySelector","strokeAttributes","strokeDrawPositions","dashed","strokeDasharray","strokeLinecap","strokeThickness","drawOffset","x1","x2","y1","y2","orientationMap","Map","Object","entries","get","orientation","strokeDashWidth","strokeDashGap","render","styles","strokeColor","getColorCSSVariable","isNil","strokeBasis","h","Host","key","style","class","titleAlignment","part","ref","div","role","onSlotchange"],"sources":["../../packages/beeq/src/components/divider/bq-divider.types.ts","../../packages/beeq/src/components/divider/scss/bq-divider.scss?tag=bq-divider&encapsulation=shadow","../../packages/beeq/src/components/divider/bq-divider.tsx"],"sourcesContent":["export const DIVIDER_ORIENTATION = ['horizontal', 'vertical'] as const;\nexport type TDividerOrientation = (typeof DIVIDER_ORIENTATION)[number];\n\nexport const DIVIDER_ORIENTATION_ENUM = {\n HORIZONTAL: 'horizontal',\n VERTICAL: 'vertical',\n} as const;\n\nexport const DIVIDER_TITLE_ALIGNMENT = ['start', 'middle', 'end'] as const;\nexport type TDividerTitleAlignment = (typeof DIVIDER_TITLE_ALIGNMENT)[number];\n\nexport const DIVIDER_STROKE_LINECAP = ['square', 'round', 'butt'] as const;\nexport type TDividerStrokeLinecap = (typeof DIVIDER_STROKE_LINECAP)[number];\n","/* -------------------------------------------------------------------------- */\n/* Button styles */\n/* -------------------------------------------------------------------------- */\n\n@import './bq-divider.variables';\n\n:host {\n @apply block is-full;\n}\n\n:host([orientation='vertical']) {\n @apply flex bs-full;\n}\n\n.bq-divider {\n @apply flex items-center gap-[var(--bq-divider--title-marginX)];\n}\n\n.bq-divider--stroke {\n @apply flex-grow stroke-[color:var(--bq-divider--stroke-color)] bs-[var(--bq-divider--stroke-thickness)] is-full;\n\n &.end {\n @apply rotate-180;\n }\n}\n\n.bq-divider--title__start .bq-divider--stroke.start,\n.bq-divider--title__end .bq-divider--stroke.end {\n @apply flex-grow-0 basis-[var(--bq-divider--stroke-basis)];\n}\n\n.bq-divider--vertical {\n @apply flex-col items-center gap-[var(--bq-divider--title-marginX)] is-full;\n\n .bq-divider--stroke {\n @apply bs-full is-[var(--bq-divider--stroke-thickness)];\n }\n}\n","import { Component, Element, h, Host, Prop, State, Watch } from '@stencil/core';\n\nimport {\n DIVIDER_ORIENTATION,\n DIVIDER_ORIENTATION_ENUM,\n DIVIDER_STROKE_LINECAP,\n DIVIDER_TITLE_ALIGNMENT,\n TDividerOrientation,\n TDividerStrokeLinecap,\n TDividerTitleAlignment,\n} from './bq-divider.types';\nimport { getColorCSSVariable, getTextContent, hasSlotContent, isNil, validatePropValue } from '../../shared/utils';\n\n/**\n * @part base - The component's internal wrapper.\n * @part dash-start - The component's internal svg wrapper for the start line of the divider's stroke\n * @part dash-end - The component's internal svg wrapper for the end line of the divider's stroke\n * @part dash-start-line - The component's internal line component of the divider's stroke\n * @part dash-end-line - The component's internal line component of the divider's stroke\n */\n@Component({\n tag: 'bq-divider',\n styleUrl: './scss/bq-divider.scss',\n shadow: true,\n})\nexport class BqDivider {\n // Own Properties\n // ====================\n\n private titleElem: HTMLDivElement;\n\n // Reference to host HTML element\n // ===================================\n\n @Element() el!: HTMLBqDividerElement;\n\n // State() variables\n // Inlined decorator, alphabetical order\n // =======================================\n\n @State() private hasTitle: boolean;\n\n // Public Property API\n // ========================\n\n /** If true, the divider has a dashed pattern */\n @Prop() dashed = false;\n\n /** The default orientation of the divider */\n @Prop({ reflect: true }) orientation: TDividerOrientation = 'horizontal';\n\n /** Set the stroke color of the divider. The value should be a valid value of the palette color */\n @Prop({ reflect: true }) strokeColor?: string = 'stroke--primary';\n\n /** Set the alignment of the title on the main axis of the divider (horizontal / vertical) */\n @Prop({ reflect: true }) titleAlignment?: TDividerTitleAlignment = 'middle';\n\n /** Set the width of each dash of the divider's stroke. This is applicable when the stroke is dashed */\n @Prop({ reflect: true }) strokeDashWidth?: number = 12;\n\n /** Set the gap of the divider's stroke. This is applicable when the stroke is dashed */\n @Prop({ reflect: true }) strokeDashGap?: number = 7;\n\n /** Set the thickness of the divider's stroke. Value expressed in px*/\n @Prop({ reflect: true }) strokeThickness?: number = 1;\n\n /** Set the min width of the divider's stroke when text is not centered. Value expressed in px */\n @Prop({ reflect: true }) strokeBasis?: number = 0;\n\n /** Set the line of the divider's stroke. This is applicable when the stroke is dashed */\n @Prop({ reflect: true }) strokeLinecap?: TDividerStrokeLinecap = 'butt';\n\n // Prop lifecycle events\n // =======================\n\n @Watch('orientation')\n @Watch('titleAlignment')\n @Watch('strokeLinecap')\n checkPropValues() {\n validatePropValue(DIVIDER_ORIENTATION, 'horizontal', this.el, 'orientation');\n validatePropValue(DIVIDER_TITLE_ALIGNMENT, 'middle', this.el, 'titleAlignment');\n validatePropValue(DIVIDER_STROKE_LINECAP, 'butt', this.el, 'strokeLinecap');\n }\n\n // Events section\n // Requires JSDocs for public API documentation\n // ==============================================\n\n // Component lifecycle events\n // Ordered by their natural call order\n // =====================================\n\n connectedCallback() {\n this.checkPropValues();\n }\n\n componentWillLoad() {\n this.checkPropValues();\n }\n\n componentDidLoad() {\n this.handleSlotChange();\n }\n\n // Listeners\n // ==============\n\n // Public methods API\n // These methods are exposed on the host element.\n // Always use two lines.\n // Public Methods must be async.\n // Requires JSDocs for public API documentation.\n // ===============================================\n\n // Local methods\n // Internal business logic.\n // These methods cannot be called from the host element.\n // =======================================================\n\n private handleSlotChange = () => {\n this.hasTitle = hasSlotContent(this.titleElem) || !!getTextContent(this.titleElem.querySelector('slot'));\n };\n\n private get strokeAttributes() {\n return {\n ...this.strokeDrawPositions,\n ...(this.dashed && { 'stroke-dasharray': this.strokeDasharray }),\n 'stroke-linecap': this.strokeLinecap,\n 'stroke-width': this.strokeThickness,\n };\n }\n\n private get strokeDrawPositions() {\n const drawOffset = this.strokeThickness / 2;\n const strokeDrawPositions = {\n [DIVIDER_ORIENTATION_ENUM.HORIZONTAL]: { x1: drawOffset, x2: '100%', y1: drawOffset, y2: drawOffset },\n [DIVIDER_ORIENTATION_ENUM.VERTICAL]: { x1: drawOffset, x2: drawOffset, y1: drawOffset, y2: '100%' },\n };\n const orientationMap = new Map(Object.entries(strokeDrawPositions));\n\n return orientationMap.get(this.orientation);\n }\n\n private get strokeDasharray() {\n return `${this.strokeDashWidth}, ${this.strokeDashGap}`;\n }\n\n // render() function\n // Always the last one in the class.\n // ===================================\n\n render() {\n const styles = {\n ...(this.strokeColor && { '--bq-divider--stroke-color': getColorCSSVariable(this.strokeColor) }),\n ...(this.strokeThickness && { '--bq-divider--stroke-thickness': `${this.strokeThickness}px` }),\n ...(!isNil(this.strokeBasis) && { '--bq-divider--stroke-basis': `${this.strokeBasis}px` }),\n };\n\n return (\n <Host style={styles}>\n <div\n class={{\n 'bq-divider': true,\n [`bq-divider--${this.orientation}`]: true,\n [`bq-divider--title__${this.titleAlignment}`]: true,\n 'gap-0': !this.hasTitle,\n }}\n part=\"base\"\n ref={(div) => (this.titleElem = div)}\n role=\"separator\"\n aria-orientation={this.orientation}\n >\n <svg\n class={{\n 'bq-divider--stroke start': true,\n '!hidden': this.strokeBasis === 0 && this.titleAlignment === 'start',\n }}\n part=\"dash-start\"\n >\n <line {...this.strokeAttributes} part=\"dash-start-line\" />\n </svg>\n <slot onSlotchange={this.handleSlotChange} />\n <svg\n class={{\n 'bq-divider--stroke end': true,\n '!hidden': !this.hasTitle || (this.strokeBasis === 0 && this.titleAlignment === 'end'),\n }}\n part=\"dash-end\"\n >\n <line {...this.strokeAttributes} part=\"dash-end-line\" />\n </svg>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAO,MAAMA,IAAsB,EAAC,cAAc;;AAG3C,MAAMC,IAA2B;EACtCC,YAAY;EACZC,UAAU;;;AAGL,MAAMC,IAA0B,EAAC,SAAS,UAAU;;AAGpD,MAAMC,IAAyB,EAAC,UAAU,SAAS;;ACX1D,MAAMC,IAAe;;AACrB,MAAAC,IAAeD;;MCwBFE,IAAS;;;;kBAqBH;uBAG2C;uBAGZ;0BAGmB;2BAGf;yBAGF;2BAGE;uBAGJ;yBAGiB;;;;EAzCzDC;;;;;;EAiDR,eAAAC;IACEC,EAAkBX,GAAqB,cAAcY,KAAKC,IAAI;IAC9DF,EAAkBP,GAAyB,UAAUQ,KAAKC,IAAI;IAC9DF,EAAkBN,GAAwB,QAAQO,KAAKC,IAAI;;;;;;;;EAW7D,iBAAAC;IACEF,KAAKF;;EAGP,iBAAAK;IACEH,KAAKF;;EAGP,gBAAAM;IACEJ,KAAKK;;;;;;;;;;;;;;EAkBCA,iBAAmB;IACzBL,KAAKM,WAAWC,EAAeP,KAAKH,gBAAgBW,EAAeR,KAAKH,UAAUY,cAAc;AAAQ;EAG1G,oBAAYC;IACV,OAAO;SACFV,KAAKW;SACJX,KAAKY,UAAU;QAAE,oBAAoBZ,KAAKa;;MAC9C,kBAAkBb,KAAKc;MACvB,gBAAgBd,KAAKe;;;EAIzB,uBAAYJ;IACV,MAAMK,IAAahB,KAAKe,kBAAkB;IAC1C,MAAMJ,IAAsB;MAC1B,CAACtB,EAAyBC,aAAa;QAAE2B,IAAID;QAAYE,IAAI;QAAQC,IAAIH;QAAYI,IAAIJ;;MACzF,CAAC3B,EAAyBE,WAAW;QAAE0B,IAAID;QAAYE,IAAIF;QAAYG,IAAIH;QAAYI,IAAI;;;IAE7F,MAAMC,IAAiB,IAAIC,IAAIC,OAAOC,QAAQb;IAE9C,OAAOU,EAAeI,IAAIzB,KAAK0B;;EAGjC,mBAAYb;IACV,OAAO,GAAGb,KAAK2B,oBAAoB3B,KAAK4B;;;;;EAO1C,MAAAC;IACE,MAAMC,IAAS;SACT9B,KAAK+B,eAAe;QAAE,8BAA8BC,EAAoBhC,KAAK+B;;SAC7E/B,KAAKe,mBAAmB;QAAE,kCAAkC,GAAGf,KAAKe;;UACnEkB,EAAMjC,KAAKkC,gBAAgB;QAAE,8BAA8B,GAAGlC,KAAKkC;;;IAG1E,OACEC,EAACC,GAAI;MAAAC,KAAA;MAACC,OAAOR;OACXK,EAAA;MAAAE,KAAA;MACEE,OAAO;QACL,cAAc;QACd,CAAC,eAAevC,KAAK0B,gBAAgB;QACrC,CAAC,sBAAsB1B,KAAKwC,mBAAmB;QAC/C,UAAUxC,KAAKM;;MAEjBmC,MAAK;MACLC,KAAMC,KAAS3C,KAAKH,YAAY8C;MAChCC,MAAK;MAAW,oBACE5C,KAAK0B;OAEvBS,EAAA;MAAAE,KAAA;MACEE,OAAO;QACL,4BAA4B;QAC5B,WAAWvC,KAAKkC,gBAAgB,KAAKlC,KAAKwC,mBAAmB;;MAE/DC,MAAK;OAELN,EAAA;MAAAE,KAAA;SAAUrC,KAAKU;MAAkB+B,MAAK;SAExCN,EAAA;MAAAE,KAAA;MAAMQ,cAAc7C,KAAKK;QACzB8B,EAAA;MAAAE,KAAA;MACEE,OAAO;QACL,0BAA0B;QAC1B,YAAYvC,KAAKM,YAAaN,KAAKkC,gBAAgB,KAAKlC,KAAKwC,mBAAmB;;MAElFC,MAAK;OAELN,EAAA;MAAAE,KAAA;SAAUrC,KAAKU;MAAkB+B,MAAK","ignoreList":[]}
|