@diwacopilot/components 1.1.1 → 1.2.1
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/cjs/{checkbox-mark-06d56fe2.js → checkbox-mark-CtRWZxo8.js} +0 -2
- package/dist/cjs/diwa-accordion.cjs.entry.js +2 -6
- package/dist/cjs/diwa-badge.cjs.entry.js +47 -9
- package/dist/cjs/diwa-button-pure.cjs.entry.js +3 -7
- package/dist/cjs/diwa-button.cjs.entry.js +3 -7
- package/dist/cjs/diwa-checkbox.cjs.entry.js +7 -9
- package/dist/cjs/diwa-components.cjs.js +7 -10
- package/dist/cjs/diwa-divider.cjs.entry.js +2 -6
- package/dist/cjs/diwa-flyout.cjs.entry.js +6 -8
- package/dist/cjs/diwa-heading.cjs.entry.js +2 -6
- package/dist/cjs/diwa-icon.cjs.entry.js +554 -558
- package/dist/cjs/diwa-inline-notification.cjs.entry.js +2 -6
- package/dist/cjs/diwa-input-date.cjs.entry.js +4 -8
- package/dist/cjs/diwa-input-email.cjs.entry.js +4 -8
- package/dist/cjs/diwa-input-month.cjs.entry.js +4 -8
- package/dist/cjs/diwa-input-number.cjs.entry.js +4 -8
- package/dist/cjs/diwa-input-password.cjs.entry.js +4 -8
- package/dist/cjs/diwa-input-search.cjs.entry.js +4 -8
- package/dist/cjs/diwa-input-tel.cjs.entry.js +4 -8
- package/dist/cjs/diwa-input-text.cjs.entry.js +4 -8
- package/dist/cjs/diwa-input-time.cjs.entry.js +4 -8
- package/dist/cjs/diwa-input-url.cjs.entry.js +4 -8
- package/dist/cjs/diwa-input-week.cjs.entry.js +4 -8
- package/dist/cjs/diwa-input.cjs.entry.js +3 -7
- package/dist/cjs/diwa-link-pure.cjs.entry.js +3 -7
- package/dist/cjs/diwa-link.cjs.entry.js +3 -7
- package/dist/cjs/diwa-modal.cjs.entry.js +6 -8
- package/dist/cjs/diwa-multi-select-option.cjs.entry.js +13 -11
- package/dist/cjs/diwa-multi-select.cjs.entry.js +16 -12
- package/dist/cjs/diwa-pagination.cjs.entry.js +3 -7
- package/dist/cjs/diwa-pin-code.cjs.entry.js +4 -8
- package/dist/cjs/diwa-popover.cjs.entry.js +3 -7
- package/dist/cjs/diwa-radio-group-item.cjs.entry.js +6 -8
- package/dist/cjs/diwa-radio-group.cjs.entry.js +2 -6
- package/dist/cjs/diwa-scroller.cjs.entry.js +3 -7
- package/dist/cjs/diwa-segmented-control-item.cjs.entry.js +3 -7
- package/dist/cjs/diwa-segmented-control.cjs.entry.js +2 -6
- package/dist/cjs/diwa-select-option.cjs.entry.js +3 -7
- package/dist/cjs/diwa-select.cjs.entry.js +15 -11
- package/dist/cjs/diwa-spinner.cjs.entry.js +4 -8
- package/dist/cjs/diwa-stepper-horizontal-item.cjs.entry.js +2 -6
- package/dist/cjs/diwa-stepper-horizontal.cjs.entry.js +5 -7
- package/dist/cjs/diwa-switch.cjs.entry.js +3 -7
- package/dist/cjs/diwa-table-body.cjs.entry.js +2 -6
- package/dist/cjs/diwa-table-cell.cjs.entry.js +2 -6
- package/dist/cjs/diwa-table-head-cell.cjs.entry.js +5 -9
- package/dist/cjs/diwa-table-head.cjs.entry.js +2 -6
- package/dist/cjs/diwa-table-row.cjs.entry.js +2 -6
- package/dist/cjs/diwa-table.cjs.entry.js +2 -6
- package/dist/cjs/diwa-tabs-bar.cjs.entry.js +6 -8
- package/dist/cjs/diwa-tabs-item.cjs.entry.js +2 -6
- package/dist/cjs/diwa-tabs.cjs.entry.js +6 -8
- package/dist/cjs/diwa-tag-dismissible.cjs.entry.js +3 -7
- package/dist/cjs/diwa-tag.cjs.entry.js +2 -6
- package/dist/cjs/diwa-text-list-item.cjs.entry.js +2 -6
- package/dist/cjs/diwa-text-list.cjs.entry.js +2 -6
- package/dist/cjs/diwa-text.cjs.entry.js +2 -6
- package/dist/cjs/diwa-textarea.cjs.entry.js +3 -7
- package/dist/cjs/diwa-toast-item.cjs.entry.js +3 -7
- package/dist/cjs/diwa-toast.cjs.entry.js +2 -6
- package/dist/cjs/index-Bq2UsXlc.js +1633 -0
- package/dist/cjs/index.cjs.js +0 -2
- package/dist/cjs/{input-styles-bac68ebc.js → input-styles-6kXkwbQg.js} +1 -3
- package/dist/cjs/{loader-circle-938f782b.js → loader-circle-ffvGKJXL.js} +0 -2
- package/dist/cjs/loader.cjs.js +3 -8
- package/dist/cjs/{styles-6342300d.js → styles-5PsdHYbv.js} +0 -2
- package/dist/collection/collection-manifest.json +3 -2
- package/dist/collection/components/diwa-accordion/diwa-accordion-styles.js +0 -1
- package/dist/collection/components/diwa-accordion/diwa-accordion.js +9 -8
- package/dist/collection/components/diwa-accordion/types.js +0 -1
- package/dist/collection/components/diwa-badge/diwa-badge-styles.js +39 -3
- package/dist/collection/components/diwa-badge/diwa-badge.js +43 -13
- package/dist/collection/components/diwa-badge/types.js +0 -1
- package/dist/collection/components/diwa-button/diwa-button-styles.js +0 -1
- package/dist/collection/components/diwa-button/diwa-button-utils.js +0 -1
- package/dist/collection/components/diwa-button/diwa-button.js +27 -24
- package/dist/collection/components/diwa-button/types.js +0 -1
- package/dist/collection/components/diwa-button-pure/diwa-button-pure-styles.js +0 -1
- package/dist/collection/components/diwa-button-pure/diwa-button-pure-utils.js +0 -1
- package/dist/collection/components/diwa-button-pure/diwa-button-pure.js +30 -27
- package/dist/collection/components/diwa-button-pure/types.js +0 -1
- package/dist/collection/components/diwa-checkbox/diwa-checkbox-styles.js +0 -1
- package/dist/collection/components/diwa-checkbox/diwa-checkbox.js +17 -16
- package/dist/collection/components/diwa-checkbox/types.js +0 -1
- package/dist/collection/components/diwa-divider/diwa-divider-styles.js +0 -1
- package/dist/collection/components/diwa-divider/diwa-divider.js +7 -6
- package/dist/collection/components/diwa-divider/types.js +0 -1
- package/dist/collection/components/diwa-flyout/diwa-flyout-styles.js +0 -1
- package/dist/collection/components/diwa-flyout/diwa-flyout.js +12 -10
- package/dist/collection/components/diwa-flyout/types.js +0 -1
- package/dist/collection/components/diwa-heading/diwa-heading-styles.js +0 -1
- package/dist/collection/components/diwa-heading/diwa-heading-utils.js +0 -1
- package/dist/collection/components/diwa-heading/diwa-heading.js +21 -16
- package/dist/collection/components/diwa-heading/types.js +0 -1
- package/dist/collection/components/diwa-icon/diwa-icon-styles.js +0 -1
- package/dist/collection/components/diwa-icon/diwa-icon.js +9 -9
- package/dist/collection/components/diwa-icon/types.js +0 -1
- package/dist/collection/components/diwa-inline-notification/diwa-inline-notification-styles.js +0 -1
- package/dist/collection/components/diwa-inline-notification/diwa-inline-notification.js +13 -12
- package/dist/collection/components/diwa-inline-notification/types.js +0 -1
- package/dist/collection/components/diwa-input/diwa-input-styles.js +0 -1
- package/dist/collection/components/diwa-input/diwa-input.js +26 -24
- package/dist/collection/components/diwa-input/input-styles.js +0 -1
- package/dist/collection/components/diwa-input/types.js +0 -1
- package/dist/collection/components/diwa-input-date/diwa-input-date-styles.js +0 -1
- package/dist/collection/components/diwa-input-date/diwa-input-date.js +24 -23
- package/dist/collection/components/diwa-input-email/diwa-input-email-styles.js +0 -1
- package/dist/collection/components/diwa-input-email/diwa-input-email.js +20 -19
- package/dist/collection/components/diwa-input-month/diwa-input-month-styles.js +0 -1
- package/dist/collection/components/diwa-input-month/diwa-input-month.js +24 -23
- package/dist/collection/components/diwa-input-number/diwa-input-number-styles.js +0 -1
- package/dist/collection/components/diwa-input-number/diwa-input-number.js +26 -25
- package/dist/collection/components/diwa-input-password/diwa-input-password-styles.js +0 -1
- package/dist/collection/components/diwa-input-password/diwa-input-password.js +21 -20
- package/dist/collection/components/diwa-input-search/diwa-input-search-styles.js +0 -1
- package/dist/collection/components/diwa-input-search/diwa-input-search.js +21 -20
- package/dist/collection/components/diwa-input-tel/diwa-input-tel-styles.js +0 -1
- package/dist/collection/components/diwa-input-tel/diwa-input-tel.js +20 -19
- package/dist/collection/components/diwa-input-text/diwa-input-text-styles.js +0 -1
- package/dist/collection/components/diwa-input-text/diwa-input-text.js +26 -25
- package/dist/collection/components/diwa-input-time/diwa-input-time-styles.js +0 -1
- package/dist/collection/components/diwa-input-time/diwa-input-time.js +26 -25
- package/dist/collection/components/diwa-input-url/diwa-input-url-styles.js +0 -1
- package/dist/collection/components/diwa-input-url/diwa-input-url.js +20 -19
- package/dist/collection/components/diwa-input-week/diwa-input-week-styles.js +0 -1
- package/dist/collection/components/diwa-input-week/diwa-input-week.js +24 -23
- package/dist/collection/components/diwa-link/diwa-link-styles.js +0 -1
- package/dist/collection/components/diwa-link/diwa-link.js +22 -20
- package/dist/collection/components/diwa-link/types.js +0 -1
- package/dist/collection/components/diwa-link-pure/diwa-link-pure-styles.js +0 -1
- package/dist/collection/components/diwa-link-pure/diwa-link-pure.js +26 -23
- package/dist/collection/components/diwa-link-pure/types.js +0 -1
- package/dist/collection/components/diwa-modal/diwa-modal-styles.js +0 -1
- package/dist/collection/components/diwa-modal/diwa-modal-utils.js +0 -1
- package/dist/collection/components/diwa-modal/diwa-modal.js +12 -11
- package/dist/collection/components/diwa-modal/types.js +0 -1
- package/dist/collection/components/diwa-multi-select/diwa-multi-select-styles.js +0 -1
- package/dist/collection/components/diwa-multi-select/diwa-multi-select.js +26 -22
- package/dist/collection/components/diwa-multi-select/types.js +0 -1
- package/dist/collection/components/diwa-multi-select-option/diwa-multi-select-option-styles.js +0 -1
- package/dist/collection/components/diwa-multi-select-option/diwa-multi-select-option.js +10 -10
- package/dist/collection/components/diwa-multi-select-option/types.js +0 -1
- package/dist/collection/components/diwa-pagination/diwa-pagination-styles.js +0 -1
- package/dist/collection/components/diwa-pagination/diwa-pagination-utils.js +0 -1
- package/dist/collection/components/diwa-pagination/diwa-pagination.js +13 -11
- package/dist/collection/components/diwa-pagination/types.js +0 -1
- package/dist/collection/components/diwa-pin-code/diwa-pin-code-styles.js +0 -1
- package/dist/collection/components/diwa-pin-code/diwa-pin-code.js +22 -19
- package/dist/collection/components/diwa-pin-code/types.js +0 -1
- package/dist/collection/components/diwa-popover/diwa-popover-styles.js +0 -1
- package/dist/collection/components/diwa-popover/diwa-popover.js +9 -8
- package/dist/collection/components/diwa-popover/types.js +0 -1
- package/dist/collection/components/diwa-radio-group/diwa-radio-group-styles.js +0 -1
- package/dist/collection/components/diwa-radio-group/diwa-radio-group.js +21 -18
- package/dist/collection/components/diwa-radio-group/types.js +0 -1
- package/dist/collection/components/diwa-radio-group-item/diwa-radio-group-item-styles.js +0 -1
- package/dist/collection/components/diwa-radio-group-item/diwa-radio-group-item.js +9 -9
- package/dist/collection/components/diwa-scroller/diwa-scroller-styles.js +0 -1
- package/dist/collection/components/diwa-scroller/diwa-scroller.js +8 -7
- package/dist/collection/components/diwa-scroller/types.js +0 -1
- package/dist/collection/components/diwa-segmented-control/diwa-segmented-control-styles.js +0 -1
- package/dist/collection/components/diwa-segmented-control/diwa-segmented-control.js +9 -8
- package/dist/collection/components/diwa-segmented-control/types.js +0 -1
- package/dist/collection/components/diwa-segmented-control-item/diwa-segmented-control-item-styles.js +0 -1
- package/dist/collection/components/diwa-segmented-control-item/diwa-segmented-control-item.js +8 -8
- package/dist/collection/components/diwa-select/diwa-select-styles.js +0 -1
- package/dist/collection/components/diwa-select/diwa-select.js +27 -23
- package/dist/collection/components/diwa-select/types.js +0 -1
- package/dist/collection/components/diwa-select-option/diwa-select-option-styles.js +0 -1
- package/dist/collection/components/diwa-select-option/diwa-select-option.js +10 -10
- package/dist/collection/components/diwa-select-option/types.js +0 -1
- package/dist/collection/components/diwa-spinner/diwa-spinner-styles.js +0 -1
- package/dist/collection/components/diwa-spinner/diwa-spinner.js +8 -7
- package/dist/collection/components/diwa-spinner/types.js +0 -1
- package/dist/collection/components/diwa-stepper-horizontal/diwa-stepper-horizontal-styles.js +0 -1
- package/dist/collection/components/diwa-stepper-horizontal/diwa-stepper-horizontal.js +7 -6
- package/dist/collection/components/diwa-stepper-horizontal/types.js +0 -1
- package/dist/collection/components/diwa-stepper-horizontal-item/diwa-stepper-horizontal-item-styles.js +0 -1
- package/dist/collection/components/diwa-stepper-horizontal-item/diwa-stepper-horizontal-item.js +11 -10
- package/dist/collection/components/diwa-stepper-horizontal-item/types.js +0 -1
- package/dist/collection/components/diwa-switch/diwa-switch-styles.js +0 -1
- package/dist/collection/components/diwa-switch/diwa-switch.js +13 -11
- package/dist/collection/components/diwa-switch/types.js +0 -1
- package/dist/collection/components/diwa-table/diwa-table-styles.js +0 -1
- package/dist/collection/components/diwa-table/diwa-table.js +11 -10
- package/dist/collection/components/diwa-table-body/diwa-table-body-styles.js +0 -1
- package/dist/collection/components/diwa-table-body/diwa-table-body.js +4 -4
- package/dist/collection/components/diwa-table-cell/diwa-table-cell-styles.js +0 -1
- package/dist/collection/components/diwa-table-cell/diwa-table-cell.js +5 -5
- package/dist/collection/components/diwa-table-head/diwa-table-head-styles.js +0 -1
- package/dist/collection/components/diwa-table-head/diwa-table-head.js +4 -4
- package/dist/collection/components/diwa-table-head-cell/diwa-table-head-cell-styles.js +0 -1
- package/dist/collection/components/diwa-table-head-cell/diwa-table-head-cell.js +11 -10
- package/dist/collection/components/diwa-table-head-cell/types.js +0 -1
- package/dist/collection/components/diwa-table-row/diwa-table-row-styles.js +0 -1
- package/dist/collection/components/diwa-table-row/diwa-table-row.js +4 -4
- package/dist/collection/components/diwa-tabs/diwa-tabs-styles.js +0 -1
- package/dist/collection/components/diwa-tabs/diwa-tabs.js +7 -6
- package/dist/collection/components/diwa-tabs/types.js +0 -1
- package/dist/collection/components/diwa-tabs-bar/diwa-tabs-bar-styles.js +0 -1
- package/dist/collection/components/diwa-tabs-bar/diwa-tabs-bar.js +7 -6
- package/dist/collection/components/diwa-tabs-bar/types.js +0 -1
- package/dist/collection/components/diwa-tabs-item/diwa-tabs-item-styles.js +0 -1
- package/dist/collection/components/diwa-tabs-item/diwa-tabs-item.js +6 -6
- package/dist/collection/components/diwa-tag/diwa-tag-styles.js +0 -1
- package/dist/collection/components/diwa-tag/diwa-tag.js +10 -9
- package/dist/collection/components/diwa-tag/types.js +0 -1
- package/dist/collection/components/diwa-tag-dismissible/diwa-tag-dismissible-styles.js +0 -1
- package/dist/collection/components/diwa-tag-dismissible/diwa-tag-dismissible.js +9 -8
- package/dist/collection/components/diwa-tag-dismissible/types.js +0 -1
- package/dist/collection/components/diwa-text/diwa-text-styles.js +0 -1
- package/dist/collection/components/diwa-text/diwa-text.js +20 -15
- package/dist/collection/components/diwa-text/types.js +0 -1
- package/dist/collection/components/diwa-text-list/diwa-text-list-styles.js +0 -1
- package/dist/collection/components/diwa-text-list/diwa-text-list.js +7 -6
- package/dist/collection/components/diwa-text-list/types.js +0 -1
- package/dist/collection/components/diwa-text-list-item/diwa-text-list-item-styles.js +0 -1
- package/dist/collection/components/diwa-text-list-item/diwa-text-list-item.js +4 -4
- package/dist/collection/components/diwa-textarea/diwa-textarea-styles.js +0 -1
- package/dist/collection/components/diwa-textarea/diwa-textarea.js +26 -24
- package/dist/collection/components/diwa-textarea/types.js +0 -1
- package/dist/collection/components/diwa-toast/diwa-toast-manager.js +0 -1
- package/dist/collection/components/diwa-toast/diwa-toast-styles.js +0 -1
- package/dist/collection/components/diwa-toast/diwa-toast.js +6 -5
- package/dist/collection/components/diwa-toast/types.js +0 -1
- package/dist/collection/components/diwa-toast-item/diwa-toast-item-styles.js +0 -1
- package/dist/collection/components/diwa-toast-item/diwa-toast-item.js +8 -7
- package/dist/collection/components/diwa-toast-item/types.js +0 -1
- package/dist/collection/styles/index.js +0 -1
- package/dist/collection/utils/checkbox-mark.js +0 -1
- package/dist/collection/utils/styles.js +0 -1
- package/dist/diwa-components/diwa-components.esm.js +1 -2
- package/dist/diwa-components/index.esm.js +0 -2
- package/dist/diwa-components/p-0464bec9.entry.js +1 -0
- package/dist/diwa-components/p-0b64284f.entry.js +1 -0
- package/dist/diwa-components/p-1444a9ab.entry.js +1 -0
- package/dist/diwa-components/p-1477c011.entry.js +1 -0
- package/dist/diwa-components/p-1fd1e80f.entry.js +1 -0
- package/dist/diwa-components/p-2c91a89f.entry.js +1 -0
- package/dist/diwa-components/p-2df54c74.entry.js +1 -0
- package/dist/diwa-components/p-31a1a9d0.entry.js +1 -0
- package/dist/diwa-components/p-32f6f60f.entry.js +1 -0
- package/dist/diwa-components/p-3470cacf.entry.js +1 -0
- package/dist/diwa-components/p-3646d89c.entry.js +1 -0
- package/dist/diwa-components/p-381a9636.entry.js +1 -0
- package/dist/diwa-components/p-42c2e78f.entry.js +1 -0
- package/dist/diwa-components/p-441b5572.entry.js +20 -0
- package/dist/diwa-components/p-4eb10d53.entry.js +1 -0
- package/dist/diwa-components/p-56065aae.entry.js +1 -0
- package/dist/diwa-components/p-5ac35f24.entry.js +1 -0
- package/dist/diwa-components/p-5f3eb06c.entry.js +1 -0
- package/dist/diwa-components/p-5f6acee8.entry.js +1 -0
- package/dist/diwa-components/p-60b7d800.entry.js +1 -0
- package/dist/diwa-components/p-62ceff1c.entry.js +1 -0
- package/dist/diwa-components/p-64eba4ff.entry.js +1 -0
- package/dist/diwa-components/p-666a454d.entry.js +1 -0
- package/dist/diwa-components/p-66e52853.entry.js +1 -0
- package/dist/diwa-components/p-6854dbc2.entry.js +1 -0
- package/dist/diwa-components/p-705e3591.entry.js +1 -0
- package/dist/diwa-components/p-751c1cec.entry.js +1 -0
- package/dist/diwa-components/p-75fc7b78.entry.js +1 -0
- package/dist/diwa-components/p-7685a36c.entry.js +1 -0
- package/dist/diwa-components/p-79285ede.entry.js +1 -0
- package/dist/diwa-components/p-7f8b0415.entry.js +1 -0
- package/dist/diwa-components/p-8382b5c1.entry.js +1 -0
- package/dist/diwa-components/p-83f30c46.entry.js +1 -0
- package/dist/diwa-components/p-8935224c.entry.js +1 -0
- package/dist/diwa-components/p-8dc451e9.entry.js +1 -0
- package/dist/diwa-components/{p-87932af2.entry.js → p-90908708.entry.js} +1 -2
- package/dist/diwa-components/p-93c272e7.entry.js +1 -0
- package/dist/diwa-components/p-BwlWwC6a.js +1 -0
- package/dist/diwa-components/p-Bxp9mYAq.js +1 -0
- package/dist/{esm/loader-circle-300f00a4.js → diwa-components/p-C2RYv3Oc.js} +1 -6
- package/dist/diwa-components/p-C8h0Vfqp.js +1 -0
- package/dist/diwa-components/p-aca3021c.entry.js +1 -0
- package/dist/diwa-components/p-af3c7852.entry.js +1 -0
- package/dist/diwa-components/p-af5ea6ca.entry.js +1 -0
- package/dist/diwa-components/p-b6ac25e9.entry.js +1 -0
- package/dist/diwa-components/p-b703e5ba.entry.js +1 -0
- package/dist/diwa-components/p-b731e0ff.entry.js +1 -0
- package/dist/diwa-components/p-b8033105.entry.js +1 -0
- package/dist/diwa-components/p-b9405336.entry.js +1 -0
- package/dist/diwa-components/p-beddaf7c.entry.js +1 -0
- package/dist/diwa-components/p-c3f84fe0.entry.js +1 -0
- package/dist/diwa-components/p-c976a4f6.entry.js +1 -0
- package/dist/diwa-components/p-cf210625.entry.js +1 -0
- package/dist/diwa-components/p-d2bbb7e5.entry.js +1 -0
- package/dist/diwa-components/p-d5854ff6.entry.js +1 -0
- package/dist/diwa-components/p-da77bfd3.entry.js +1 -0
- package/dist/diwa-components/p-e4899408.entry.js +1 -0
- package/dist/diwa-components/p-e9087552.entry.js +1 -0
- package/dist/diwa-components/p-eecd810e.entry.js +1 -0
- package/dist/diwa-components/p-f1f5912b.entry.js +1 -0
- package/dist/diwa-components/p-f3d75c79.entry.js +1 -0
- package/dist/diwa-components/p-faa007fa.entry.js +1 -0
- package/dist/diwa-components/p-rIMpxxZG.js +2 -0
- package/{dist-custom-elements/p-332838f8.js → dist/esm/checkbox-mark-Bxp9mYAq.js} +0 -2
- package/dist/esm/diwa-accordion.entry.js +2 -4
- package/dist/esm/diwa-badge.entry.js +47 -7
- package/dist/esm/diwa-button-pure.entry.js +3 -5
- package/dist/esm/diwa-button.entry.js +3 -5
- package/dist/esm/diwa-checkbox.entry.js +7 -7
- package/dist/esm/diwa-components.js +5 -7
- package/dist/esm/diwa-divider.entry.js +2 -4
- package/dist/esm/diwa-flyout.entry.js +6 -6
- package/dist/esm/diwa-heading.entry.js +2 -4
- package/dist/esm/diwa-icon.entry.js +554 -556
- package/dist/esm/diwa-inline-notification.entry.js +2 -4
- package/dist/esm/diwa-input-date.entry.js +4 -6
- package/dist/esm/diwa-input-email.entry.js +4 -6
- package/dist/esm/diwa-input-month.entry.js +4 -6
- package/dist/esm/diwa-input-number.entry.js +4 -6
- package/dist/esm/diwa-input-password.entry.js +4 -6
- package/dist/esm/diwa-input-search.entry.js +4 -6
- package/dist/esm/diwa-input-tel.entry.js +4 -6
- package/dist/esm/diwa-input-text.entry.js +4 -6
- package/dist/esm/diwa-input-time.entry.js +4 -6
- package/dist/esm/diwa-input-url.entry.js +4 -6
- package/dist/esm/diwa-input-week.entry.js +4 -6
- package/dist/esm/diwa-input.entry.js +3 -5
- package/dist/esm/diwa-link-pure.entry.js +3 -5
- package/dist/esm/diwa-link.entry.js +3 -5
- package/dist/esm/diwa-modal.entry.js +6 -6
- package/dist/esm/diwa-multi-select-option.entry.js +13 -9
- package/dist/esm/diwa-multi-select.entry.js +16 -10
- package/dist/esm/diwa-pagination.entry.js +3 -5
- package/dist/esm/diwa-pin-code.entry.js +4 -6
- package/dist/esm/diwa-popover.entry.js +3 -5
- package/dist/esm/diwa-radio-group-item.entry.js +6 -6
- package/dist/esm/diwa-radio-group.entry.js +2 -4
- package/dist/esm/diwa-scroller.entry.js +3 -5
- package/dist/esm/diwa-segmented-control-item.entry.js +3 -5
- package/dist/esm/diwa-segmented-control.entry.js +2 -4
- package/dist/esm/diwa-select-option.entry.js +3 -5
- package/dist/esm/diwa-select.entry.js +15 -9
- package/dist/esm/diwa-spinner.entry.js +4 -6
- package/dist/esm/diwa-stepper-horizontal-item.entry.js +2 -4
- package/dist/esm/diwa-stepper-horizontal.entry.js +5 -5
- package/dist/esm/diwa-switch.entry.js +3 -5
- package/dist/esm/diwa-table-body.entry.js +2 -4
- package/dist/esm/diwa-table-cell.entry.js +2 -4
- package/dist/esm/diwa-table-head-cell.entry.js +5 -7
- package/dist/esm/diwa-table-head.entry.js +2 -4
- package/dist/esm/diwa-table-row.entry.js +2 -4
- package/dist/esm/diwa-table.entry.js +2 -4
- package/dist/esm/diwa-tabs-bar.entry.js +6 -6
- package/dist/esm/diwa-tabs-item.entry.js +2 -4
- package/dist/esm/diwa-tabs.entry.js +6 -6
- package/dist/esm/diwa-tag-dismissible.entry.js +3 -5
- package/dist/esm/diwa-tag.entry.js +2 -4
- package/dist/esm/diwa-text-list-item.entry.js +2 -4
- package/dist/esm/diwa-text-list.entry.js +2 -4
- package/dist/esm/diwa-text.entry.js +2 -4
- package/dist/esm/diwa-textarea.entry.js +3 -5
- package/dist/esm/diwa-toast-item.entry.js +3 -5
- package/dist/esm/diwa-toast.entry.js +2 -4
- package/dist/esm/index-rIMpxxZG.js +1622 -0
- package/dist/esm/index.js +0 -2
- package/{dist-custom-elements/p-35c7c864.js → dist/esm/input-styles-C-F9Vg7B.js} +1 -3
- package/{dist-custom-elements/p-ac8e14be.js → dist/esm/loader-circle-C2RYv3Oc.js} +0 -2
- package/dist/esm/loader.js +3 -6
- package/{dist-custom-elements/p-70bbb21a.js → dist/esm/styles-C8h0Vfqp.js} +1 -3
- package/dist/types/components/diwa-badge/diwa-badge.d.ts +11 -3
- package/dist/types/components.d.ts +2123 -128
- package/dist/types/stencil-public-runtime.d.ts +192 -12
- package/dist-custom-elements/diwa-accordion.js +1 -244
- package/dist-custom-elements/diwa-badge.js +1 -123
- package/dist-custom-elements/diwa-button-pure.js +1 -8
- package/dist-custom-elements/diwa-button.js +1 -455
- package/dist-custom-elements/diwa-checkbox.js +1 -315
- package/dist-custom-elements/diwa-divider.js +1 -85
- package/dist-custom-elements/diwa-flyout.js +1 -238
- package/dist-custom-elements/diwa-heading.js +1 -149
- package/dist-custom-elements/diwa-icon.js +1 -8
- package/dist-custom-elements/diwa-inline-notification.js +1 -214
- package/dist-custom-elements/diwa-input-date.js +1 -91
- package/dist-custom-elements/diwa-input-email.js +1 -89
- package/dist-custom-elements/diwa-input-month.js +1 -91
- package/dist-custom-elements/diwa-input-number.js +1 -92
- package/dist-custom-elements/diwa-input-password.js +1 -105
- package/dist-custom-elements/diwa-input-search.js +1 -104
- package/dist-custom-elements/diwa-input-tel.js +1 -89
- package/dist-custom-elements/diwa-input-text.js +1 -94
- package/dist-custom-elements/diwa-input-time.js +1 -92
- package/dist-custom-elements/diwa-input-url.js +1 -89
- package/dist-custom-elements/diwa-input-week.js +1 -91
- package/dist-custom-elements/diwa-input.js +1 -268
- package/dist-custom-elements/diwa-link-pure.js +1 -217
- package/dist-custom-elements/diwa-link.js +1 -258
- package/dist-custom-elements/diwa-modal.js +1 -431
- package/dist-custom-elements/diwa-multi-select-option.js +1 -199
- package/dist-custom-elements/diwa-multi-select.js +1 -683
- package/dist-custom-elements/diwa-pagination.js +1 -329
- package/dist-custom-elements/diwa-pin-code.js +1 -220
- package/dist-custom-elements/diwa-popover.js +1 -122
- package/dist-custom-elements/diwa-radio-group-item.js +1 -160
- package/dist-custom-elements/diwa-radio-group.js +1 -178
- package/dist-custom-elements/diwa-scroller.js +1 -185
- package/dist-custom-elements/diwa-segmented-control-item.js +1 -98
- package/dist-custom-elements/diwa-segmented-control.js +1 -88
- package/dist-custom-elements/diwa-select-option.js +1 -185
- package/dist-custom-elements/diwa-select.js +1 -614
- package/dist-custom-elements/diwa-spinner.js +1 -8
- package/dist-custom-elements/diwa-stepper-horizontal-item.js +1 -140
- package/dist-custom-elements/diwa-stepper-horizontal.js +1 -98
- package/dist-custom-elements/diwa-switch.js +1 -162
- package/dist-custom-elements/diwa-table-body.js +1 -44
- package/dist-custom-elements/diwa-table-cell.js +1 -54
- package/dist-custom-elements/diwa-table-head-cell.js +1 -131
- package/dist-custom-elements/diwa-table-head.js +1 -53
- package/dist-custom-elements/diwa-table-row.js +1 -48
- package/dist-custom-elements/diwa-table.js +1 -135
- package/dist-custom-elements/diwa-tabs-bar.js +1 -251
- package/dist-custom-elements/diwa-tabs-item.js +1 -56
- package/dist-custom-elements/diwa-tabs.js +1 -137
- package/dist-custom-elements/diwa-tag-dismissible.js +1 -132
- package/dist-custom-elements/diwa-tag.js +1 -118
- package/dist-custom-elements/diwa-text-list-item.js +1 -51
- package/dist-custom-elements/diwa-text-list.js +1 -67
- package/dist-custom-elements/diwa-text.js +1 -110
- package/dist-custom-elements/diwa-textarea.js +1 -191
- package/dist-custom-elements/diwa-toast-item.js +1 -8
- package/dist-custom-elements/diwa-toast.js +1 -191
- package/dist-custom-elements/index.js +1 -3
- package/dist-custom-elements/p--KdL_8_k.js +1 -0
- package/dist-custom-elements/p-BwlWwC6a.js +1 -0
- package/dist-custom-elements/p-Bxp9mYAq.js +1 -0
- package/{dist/diwa-components/p-ac8e14be.js → dist-custom-elements/p-C2RYv3Oc.js} +1 -2
- package/dist-custom-elements/p-C3hNpgqg.js +1 -0
- package/dist-custom-elements/p-C8h0Vfqp.js +1 -0
- package/dist-custom-elements/p-DOo0FY37.js +20 -0
- package/dist-custom-elements/p-DzqnTNg7.js +1 -0
- package/package.json +3 -3
- package/dist/cjs/app-globals-3a1e7e63.js +0 -7
- package/dist/cjs/app-globals-3a1e7e63.js.map +0 -1
- package/dist/cjs/checkbox-mark-06d56fe2.js.map +0 -1
- package/dist/cjs/diwa-accordion.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-badge.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-button-pure.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-button.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-checkbox.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-components.cjs.js.map +0 -1
- package/dist/cjs/diwa-divider.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-flyout.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-heading.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-icon.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-inline-notification.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-input-date.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-input-email.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-input-month.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-input-number.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-input-password.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-input-search.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-input-tel.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-input-text.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-input-time.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-input-url.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-input-week.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-input.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-link-pure.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-link.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-modal.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-multi-select-option.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-multi-select.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-pagination.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-pin-code.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-popover.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-radio-group-item.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-radio-group.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-scroller.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-segmented-control-item.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-segmented-control.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-select-option.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-select.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-spinner.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-stepper-horizontal-item.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-stepper-horizontal.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-switch.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-table-body.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-table-cell.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-table-head-cell.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-table-head.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-table-row.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-table.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-tabs-bar.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-tabs-item.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-tabs.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-tag-dismissible.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-tag.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-text-list-item.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-text-list.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-text.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-textarea.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-toast-item.cjs.entry.js.map +0 -1
- package/dist/cjs/diwa-toast.cjs.entry.js.map +0 -1
- package/dist/cjs/index-d665fd57.js +0 -1409
- package/dist/cjs/index-d665fd57.js.map +0 -1
- package/dist/cjs/index.cjs.js.map +0 -1
- package/dist/cjs/input-styles-bac68ebc.js.map +0 -1
- package/dist/cjs/loader-circle-938f782b.js.map +0 -1
- package/dist/cjs/loader.cjs.js.map +0 -1
- package/dist/cjs/styles-6342300d.js.map +0 -1
- package/dist/collection/components/diwa-accordion/diwa-accordion-styles.js.map +0 -1
- package/dist/collection/components/diwa-accordion/diwa-accordion.js.map +0 -1
- package/dist/collection/components/diwa-accordion/types.js.map +0 -1
- package/dist/collection/components/diwa-badge/diwa-badge-styles.js.map +0 -1
- package/dist/collection/components/diwa-badge/diwa-badge.js.map +0 -1
- package/dist/collection/components/diwa-badge/types.js.map +0 -1
- package/dist/collection/components/diwa-button/diwa-button-styles.js.map +0 -1
- package/dist/collection/components/diwa-button/diwa-button-utils.js.map +0 -1
- package/dist/collection/components/diwa-button/diwa-button.js.map +0 -1
- package/dist/collection/components/diwa-button/types.js.map +0 -1
- package/dist/collection/components/diwa-button-pure/diwa-button-pure-styles.js.map +0 -1
- package/dist/collection/components/diwa-button-pure/diwa-button-pure-utils.js.map +0 -1
- package/dist/collection/components/diwa-button-pure/diwa-button-pure.js.map +0 -1
- package/dist/collection/components/diwa-button-pure/types.js.map +0 -1
- package/dist/collection/components/diwa-checkbox/diwa-checkbox-styles.js.map +0 -1
- package/dist/collection/components/diwa-checkbox/diwa-checkbox.js.map +0 -1
- package/dist/collection/components/diwa-checkbox/types.js.map +0 -1
- package/dist/collection/components/diwa-divider/diwa-divider-styles.js.map +0 -1
- package/dist/collection/components/diwa-divider/diwa-divider.js.map +0 -1
- package/dist/collection/components/diwa-divider/types.js.map +0 -1
- package/dist/collection/components/diwa-flyout/diwa-flyout-styles.js.map +0 -1
- package/dist/collection/components/diwa-flyout/diwa-flyout.js.map +0 -1
- package/dist/collection/components/diwa-flyout/types.js.map +0 -1
- package/dist/collection/components/diwa-heading/diwa-heading-styles.js.map +0 -1
- package/dist/collection/components/diwa-heading/diwa-heading-utils.js.map +0 -1
- package/dist/collection/components/diwa-heading/diwa-heading.js.map +0 -1
- package/dist/collection/components/diwa-heading/types.js.map +0 -1
- package/dist/collection/components/diwa-icon/diwa-icon-styles.js.map +0 -1
- package/dist/collection/components/diwa-icon/diwa-icon.js.map +0 -1
- package/dist/collection/components/diwa-icon/types.js.map +0 -1
- package/dist/collection/components/diwa-inline-notification/diwa-inline-notification-styles.js.map +0 -1
- package/dist/collection/components/diwa-inline-notification/diwa-inline-notification.js.map +0 -1
- package/dist/collection/components/diwa-inline-notification/types.js.map +0 -1
- package/dist/collection/components/diwa-input/diwa-input-styles.js.map +0 -1
- package/dist/collection/components/diwa-input/diwa-input.js.map +0 -1
- package/dist/collection/components/diwa-input/input-styles.js.map +0 -1
- package/dist/collection/components/diwa-input/types.js.map +0 -1
- package/dist/collection/components/diwa-input-date/diwa-input-date-styles.js.map +0 -1
- package/dist/collection/components/diwa-input-date/diwa-input-date.js.map +0 -1
- package/dist/collection/components/diwa-input-email/diwa-input-email-styles.js.map +0 -1
- package/dist/collection/components/diwa-input-email/diwa-input-email.js.map +0 -1
- package/dist/collection/components/diwa-input-month/diwa-input-month-styles.js.map +0 -1
- package/dist/collection/components/diwa-input-month/diwa-input-month.js.map +0 -1
- package/dist/collection/components/diwa-input-number/diwa-input-number-styles.js.map +0 -1
- package/dist/collection/components/diwa-input-number/diwa-input-number.js.map +0 -1
- package/dist/collection/components/diwa-input-password/diwa-input-password-styles.js.map +0 -1
- package/dist/collection/components/diwa-input-password/diwa-input-password.js.map +0 -1
- package/dist/collection/components/diwa-input-search/diwa-input-search-styles.js.map +0 -1
- package/dist/collection/components/diwa-input-search/diwa-input-search.js.map +0 -1
- package/dist/collection/components/diwa-input-tel/diwa-input-tel-styles.js.map +0 -1
- package/dist/collection/components/diwa-input-tel/diwa-input-tel.js.map +0 -1
- package/dist/collection/components/diwa-input-text/diwa-input-text-styles.js.map +0 -1
- package/dist/collection/components/diwa-input-text/diwa-input-text.js.map +0 -1
- package/dist/collection/components/diwa-input-time/diwa-input-time-styles.js.map +0 -1
- package/dist/collection/components/diwa-input-time/diwa-input-time.js.map +0 -1
- package/dist/collection/components/diwa-input-url/diwa-input-url-styles.js.map +0 -1
- package/dist/collection/components/diwa-input-url/diwa-input-url.js.map +0 -1
- package/dist/collection/components/diwa-input-week/diwa-input-week-styles.js.map +0 -1
- package/dist/collection/components/diwa-input-week/diwa-input-week.js.map +0 -1
- package/dist/collection/components/diwa-link/diwa-link-styles.js.map +0 -1
- package/dist/collection/components/diwa-link/diwa-link.js.map +0 -1
- package/dist/collection/components/diwa-link/types.js.map +0 -1
- package/dist/collection/components/diwa-link-pure/diwa-link-pure-styles.js.map +0 -1
- package/dist/collection/components/diwa-link-pure/diwa-link-pure.js.map +0 -1
- package/dist/collection/components/diwa-link-pure/types.js.map +0 -1
- package/dist/collection/components/diwa-modal/diwa-modal-styles.js.map +0 -1
- package/dist/collection/components/diwa-modal/diwa-modal-utils.js.map +0 -1
- package/dist/collection/components/diwa-modal/diwa-modal.js.map +0 -1
- package/dist/collection/components/diwa-modal/types.js.map +0 -1
- package/dist/collection/components/diwa-multi-select/diwa-multi-select-styles.js.map +0 -1
- package/dist/collection/components/diwa-multi-select/diwa-multi-select.js.map +0 -1
- package/dist/collection/components/diwa-multi-select/types.js.map +0 -1
- package/dist/collection/components/diwa-multi-select-option/diwa-multi-select-option-styles.js.map +0 -1
- package/dist/collection/components/diwa-multi-select-option/diwa-multi-select-option.js.map +0 -1
- package/dist/collection/components/diwa-multi-select-option/types.js.map +0 -1
- package/dist/collection/components/diwa-pagination/diwa-pagination-styles.js.map +0 -1
- package/dist/collection/components/diwa-pagination/diwa-pagination-utils.js.map +0 -1
- package/dist/collection/components/diwa-pagination/diwa-pagination.js.map +0 -1
- package/dist/collection/components/diwa-pagination/types.js.map +0 -1
- package/dist/collection/components/diwa-pin-code/diwa-pin-code-styles.js.map +0 -1
- package/dist/collection/components/diwa-pin-code/diwa-pin-code.js.map +0 -1
- package/dist/collection/components/diwa-pin-code/types.js.map +0 -1
- package/dist/collection/components/diwa-popover/diwa-popover-styles.js.map +0 -1
- package/dist/collection/components/diwa-popover/diwa-popover.js.map +0 -1
- package/dist/collection/components/diwa-popover/types.js.map +0 -1
- package/dist/collection/components/diwa-radio-group/diwa-radio-group-styles.js.map +0 -1
- package/dist/collection/components/diwa-radio-group/diwa-radio-group.js.map +0 -1
- package/dist/collection/components/diwa-radio-group/types.js.map +0 -1
- package/dist/collection/components/diwa-radio-group-item/diwa-radio-group-item-styles.js.map +0 -1
- package/dist/collection/components/diwa-radio-group-item/diwa-radio-group-item.js.map +0 -1
- package/dist/collection/components/diwa-radio-group-item/types.js.map +0 -1
- package/dist/collection/components/diwa-scroller/diwa-scroller-styles.js.map +0 -1
- package/dist/collection/components/diwa-scroller/diwa-scroller.js.map +0 -1
- package/dist/collection/components/diwa-scroller/types.js.map +0 -1
- package/dist/collection/components/diwa-segmented-control/diwa-segmented-control-styles.js.map +0 -1
- package/dist/collection/components/diwa-segmented-control/diwa-segmented-control.js.map +0 -1
- package/dist/collection/components/diwa-segmented-control/types.js.map +0 -1
- package/dist/collection/components/diwa-segmented-control-item/diwa-segmented-control-item-styles.js.map +0 -1
- package/dist/collection/components/diwa-segmented-control-item/diwa-segmented-control-item.js.map +0 -1
- package/dist/collection/components/diwa-segmented-control-item/types.js.map +0 -1
- package/dist/collection/components/diwa-select/diwa-select-styles.js.map +0 -1
- package/dist/collection/components/diwa-select/diwa-select.js.map +0 -1
- package/dist/collection/components/diwa-select/types.js.map +0 -1
- package/dist/collection/components/diwa-select-option/diwa-select-option-styles.js.map +0 -1
- package/dist/collection/components/diwa-select-option/diwa-select-option.js.map +0 -1
- package/dist/collection/components/diwa-select-option/types.js.map +0 -1
- package/dist/collection/components/diwa-spinner/diwa-spinner-styles.js.map +0 -1
- package/dist/collection/components/diwa-spinner/diwa-spinner.js.map +0 -1
- package/dist/collection/components/diwa-spinner/types.js.map +0 -1
- package/dist/collection/components/diwa-stepper-horizontal/diwa-stepper-horizontal-styles.js.map +0 -1
- package/dist/collection/components/diwa-stepper-horizontal/diwa-stepper-horizontal.js.map +0 -1
- package/dist/collection/components/diwa-stepper-horizontal/types.js.map +0 -1
- package/dist/collection/components/diwa-stepper-horizontal-item/diwa-stepper-horizontal-item-styles.js.map +0 -1
- package/dist/collection/components/diwa-stepper-horizontal-item/diwa-stepper-horizontal-item.js.map +0 -1
- package/dist/collection/components/diwa-stepper-horizontal-item/types.js.map +0 -1
- package/dist/collection/components/diwa-switch/diwa-switch-styles.js.map +0 -1
- package/dist/collection/components/diwa-switch/diwa-switch.js.map +0 -1
- package/dist/collection/components/diwa-switch/types.js.map +0 -1
- package/dist/collection/components/diwa-table/diwa-table-styles.js.map +0 -1
- package/dist/collection/components/diwa-table/diwa-table.js.map +0 -1
- package/dist/collection/components/diwa-table-body/diwa-table-body-styles.js.map +0 -1
- package/dist/collection/components/diwa-table-body/diwa-table-body.js.map +0 -1
- package/dist/collection/components/diwa-table-cell/diwa-table-cell-styles.js.map +0 -1
- package/dist/collection/components/diwa-table-cell/diwa-table-cell.js.map +0 -1
- package/dist/collection/components/diwa-table-head/diwa-table-head-styles.js.map +0 -1
- package/dist/collection/components/diwa-table-head/diwa-table-head.js.map +0 -1
- package/dist/collection/components/diwa-table-head-cell/diwa-table-head-cell-styles.js.map +0 -1
- package/dist/collection/components/diwa-table-head-cell/diwa-table-head-cell.js.map +0 -1
- package/dist/collection/components/diwa-table-head-cell/types.js.map +0 -1
- package/dist/collection/components/diwa-table-row/diwa-table-row-styles.js.map +0 -1
- package/dist/collection/components/diwa-table-row/diwa-table-row.js.map +0 -1
- package/dist/collection/components/diwa-tabs/diwa-tabs-styles.js.map +0 -1
- package/dist/collection/components/diwa-tabs/diwa-tabs.js.map +0 -1
- package/dist/collection/components/diwa-tabs/types.js.map +0 -1
- package/dist/collection/components/diwa-tabs-bar/diwa-tabs-bar-styles.js.map +0 -1
- package/dist/collection/components/diwa-tabs-bar/diwa-tabs-bar.js.map +0 -1
- package/dist/collection/components/diwa-tabs-bar/types.js.map +0 -1
- package/dist/collection/components/diwa-tabs-item/diwa-tabs-item-styles.js.map +0 -1
- package/dist/collection/components/diwa-tabs-item/diwa-tabs-item.js.map +0 -1
- package/dist/collection/components/diwa-tabs-item/types.js.map +0 -1
- package/dist/collection/components/diwa-tag/diwa-tag-styles.js.map +0 -1
- package/dist/collection/components/diwa-tag/diwa-tag.js.map +0 -1
- package/dist/collection/components/diwa-tag/types.js.map +0 -1
- package/dist/collection/components/diwa-tag-dismissible/diwa-tag-dismissible-styles.js.map +0 -1
- package/dist/collection/components/diwa-tag-dismissible/diwa-tag-dismissible.js.map +0 -1
- package/dist/collection/components/diwa-tag-dismissible/types.js.map +0 -1
- package/dist/collection/components/diwa-text/diwa-text-styles.js.map +0 -1
- package/dist/collection/components/diwa-text/diwa-text.js.map +0 -1
- package/dist/collection/components/diwa-text/types.js.map +0 -1
- package/dist/collection/components/diwa-text-list/diwa-text-list-styles.js.map +0 -1
- package/dist/collection/components/diwa-text-list/diwa-text-list.js.map +0 -1
- package/dist/collection/components/diwa-text-list/types.js.map +0 -1
- package/dist/collection/components/diwa-text-list-item/diwa-text-list-item-styles.js.map +0 -1
- package/dist/collection/components/diwa-text-list-item/diwa-text-list-item.js.map +0 -1
- package/dist/collection/components/diwa-text-list-item/types.js.map +0 -1
- package/dist/collection/components/diwa-textarea/diwa-textarea-styles.js.map +0 -1
- package/dist/collection/components/diwa-textarea/diwa-textarea.js.map +0 -1
- package/dist/collection/components/diwa-textarea/types.js.map +0 -1
- package/dist/collection/components/diwa-toast/diwa-toast-manager.js.map +0 -1
- package/dist/collection/components/diwa-toast/diwa-toast-styles.js.map +0 -1
- package/dist/collection/components/diwa-toast/diwa-toast.js.map +0 -1
- package/dist/collection/components/diwa-toast/types.js.map +0 -1
- package/dist/collection/components/diwa-toast-item/diwa-toast-item-styles.js.map +0 -1
- package/dist/collection/components/diwa-toast-item/diwa-toast-item.js.map +0 -1
- package/dist/collection/components/diwa-toast-item/types.js.map +0 -1
- package/dist/collection/styles/index.js.map +0 -1
- package/dist/collection/utils/checkbox-mark.js.map +0 -1
- package/dist/collection/utils/styles.js.map +0 -1
- package/dist/diwa-components/diwa-components.esm.js.map +0 -1
- package/dist/diwa-components/index.esm.js.map +0 -1
- package/dist/diwa-components/p-084204ab.entry.js +0 -2
- package/dist/diwa-components/p-084204ab.entry.js.map +0 -1
- package/dist/diwa-components/p-09f2e643.entry.js +0 -2
- package/dist/diwa-components/p-09f2e643.entry.js.map +0 -1
- package/dist/diwa-components/p-117dc41d.entry.js +0 -2
- package/dist/diwa-components/p-117dc41d.entry.js.map +0 -1
- package/dist/diwa-components/p-1250d0c7.entry.js +0 -2
- package/dist/diwa-components/p-1250d0c7.entry.js.map +0 -1
- package/dist/diwa-components/p-13e71247.entry.js +0 -2
- package/dist/diwa-components/p-13e71247.entry.js.map +0 -1
- package/dist/diwa-components/p-1830772d.entry.js +0 -2
- package/dist/diwa-components/p-1830772d.entry.js.map +0 -1
- package/dist/diwa-components/p-1d708e1e.entry.js +0 -2
- package/dist/diwa-components/p-1d708e1e.entry.js.map +0 -1
- package/dist/diwa-components/p-230692aa.entry.js +0 -2
- package/dist/diwa-components/p-230692aa.entry.js.map +0 -1
- package/dist/diwa-components/p-238da82a.entry.js +0 -2
- package/dist/diwa-components/p-238da82a.entry.js.map +0 -1
- package/dist/diwa-components/p-29419c9a.entry.js +0 -2
- package/dist/diwa-components/p-29419c9a.entry.js.map +0 -1
- package/dist/diwa-components/p-3269a4b7.entry.js +0 -10220
- package/dist/diwa-components/p-3269a4b7.entry.js.map +0 -1
- package/dist/diwa-components/p-332838f8.js +0 -2
- package/dist/diwa-components/p-332838f8.js.map +0 -1
- package/dist/diwa-components/p-35b69160.entry.js +0 -2
- package/dist/diwa-components/p-35b69160.entry.js.map +0 -1
- package/dist/diwa-components/p-35c7c864.js +0 -2
- package/dist/diwa-components/p-35c7c864.js.map +0 -1
- package/dist/diwa-components/p-3660b09a.entry.js +0 -2
- package/dist/diwa-components/p-3660b09a.entry.js.map +0 -1
- package/dist/diwa-components/p-36b004e9.entry.js +0 -2
- package/dist/diwa-components/p-36b004e9.entry.js.map +0 -1
- package/dist/diwa-components/p-37e1bea3.entry.js +0 -2
- package/dist/diwa-components/p-37e1bea3.entry.js.map +0 -1
- package/dist/diwa-components/p-3b38fa01.entry.js +0 -2
- package/dist/diwa-components/p-3b38fa01.entry.js.map +0 -1
- package/dist/diwa-components/p-3fb5cc30.entry.js +0 -2
- package/dist/diwa-components/p-3fb5cc30.entry.js.map +0 -1
- package/dist/diwa-components/p-429c596d.entry.js +0 -2
- package/dist/diwa-components/p-429c596d.entry.js.map +0 -1
- package/dist/diwa-components/p-50866c5a.entry.js +0 -2
- package/dist/diwa-components/p-50866c5a.entry.js.map +0 -1
- package/dist/diwa-components/p-5a597e27.entry.js +0 -2
- package/dist/diwa-components/p-5a597e27.entry.js.map +0 -1
- package/dist/diwa-components/p-5f9139bc.entry.js +0 -2
- package/dist/diwa-components/p-5f9139bc.entry.js.map +0 -1
- package/dist/diwa-components/p-66c15f66.entry.js +0 -2
- package/dist/diwa-components/p-66c15f66.entry.js.map +0 -1
- package/dist/diwa-components/p-66c53adc.entry.js +0 -2
- package/dist/diwa-components/p-66c53adc.entry.js.map +0 -1
- package/dist/diwa-components/p-70bbb21a.js +0 -2
- package/dist/diwa-components/p-70bbb21a.js.map +0 -1
- package/dist/diwa-components/p-71c45961.entry.js +0 -2
- package/dist/diwa-components/p-71c45961.entry.js.map +0 -1
- package/dist/diwa-components/p-78b16866.entry.js +0 -2
- package/dist/diwa-components/p-78b16866.entry.js.map +0 -1
- package/dist/diwa-components/p-7a99a2aa.entry.js +0 -2
- package/dist/diwa-components/p-7a99a2aa.entry.js.map +0 -1
- package/dist/diwa-components/p-7dc7291f.entry.js +0 -2
- package/dist/diwa-components/p-7dc7291f.entry.js.map +0 -1
- package/dist/diwa-components/p-8369c48e.entry.js +0 -2
- package/dist/diwa-components/p-8369c48e.entry.js.map +0 -1
- package/dist/diwa-components/p-8506ea0c.entry.js +0 -2
- package/dist/diwa-components/p-8506ea0c.entry.js.map +0 -1
- package/dist/diwa-components/p-863c88a4.entry.js +0 -2
- package/dist/diwa-components/p-863c88a4.entry.js.map +0 -1
- package/dist/diwa-components/p-87932af2.entry.js.map +0 -1
- package/dist/diwa-components/p-8afa6931.entry.js +0 -2
- package/dist/diwa-components/p-8afa6931.entry.js.map +0 -1
- package/dist/diwa-components/p-926e283b.entry.js +0 -2
- package/dist/diwa-components/p-926e283b.entry.js.map +0 -1
- package/dist/diwa-components/p-952af214.entry.js +0 -2
- package/dist/diwa-components/p-952af214.entry.js.map +0 -1
- package/dist/diwa-components/p-95b0fdea.entry.js +0 -2
- package/dist/diwa-components/p-95b0fdea.entry.js.map +0 -1
- package/dist/diwa-components/p-9910d570.entry.js +0 -2
- package/dist/diwa-components/p-9910d570.entry.js.map +0 -1
- package/dist/diwa-components/p-998dd88e.entry.js +0 -2
- package/dist/diwa-components/p-998dd88e.entry.js.map +0 -1
- package/dist/diwa-components/p-9ade0403.entry.js +0 -2
- package/dist/diwa-components/p-9ade0403.entry.js.map +0 -1
- package/dist/diwa-components/p-9c89e586.entry.js +0 -2
- package/dist/diwa-components/p-9c89e586.entry.js.map +0 -1
- package/dist/diwa-components/p-9eef4779.entry.js +0 -2
- package/dist/diwa-components/p-9eef4779.entry.js.map +0 -1
- package/dist/diwa-components/p-ac8e14be.js.map +0 -1
- package/dist/diwa-components/p-b072ff72.entry.js +0 -2
- package/dist/diwa-components/p-b072ff72.entry.js.map +0 -1
- package/dist/diwa-components/p-bbede25d.entry.js +0 -2
- package/dist/diwa-components/p-bbede25d.entry.js.map +0 -1
- package/dist/diwa-components/p-bd501daa.entry.js +0 -2
- package/dist/diwa-components/p-bd501daa.entry.js.map +0 -1
- package/dist/diwa-components/p-c6ca8d8b.entry.js +0 -2
- package/dist/diwa-components/p-c6ca8d8b.entry.js.map +0 -1
- package/dist/diwa-components/p-c78591ce.entry.js +0 -2
- package/dist/diwa-components/p-c78591ce.entry.js.map +0 -1
- package/dist/diwa-components/p-cc0e1662.entry.js +0 -2
- package/dist/diwa-components/p-cc0e1662.entry.js.map +0 -1
- package/dist/diwa-components/p-d25377eb.entry.js +0 -2
- package/dist/diwa-components/p-d25377eb.entry.js.map +0 -1
- package/dist/diwa-components/p-d917625e.entry.js +0 -2
- package/dist/diwa-components/p-d917625e.entry.js.map +0 -1
- package/dist/diwa-components/p-db70e030.entry.js +0 -2
- package/dist/diwa-components/p-db70e030.entry.js.map +0 -1
- package/dist/diwa-components/p-def36bc4.entry.js +0 -2
- package/dist/diwa-components/p-def36bc4.entry.js.map +0 -1
- package/dist/diwa-components/p-e1255160.js +0 -2
- package/dist/diwa-components/p-e1255160.js.map +0 -1
- package/dist/diwa-components/p-e137afc9.entry.js +0 -2
- package/dist/diwa-components/p-e137afc9.entry.js.map +0 -1
- package/dist/diwa-components/p-e1935375.entry.js +0 -2
- package/dist/diwa-components/p-e1935375.entry.js.map +0 -1
- package/dist/diwa-components/p-e19ad9fa.entry.js +0 -2
- package/dist/diwa-components/p-e19ad9fa.entry.js.map +0 -1
- package/dist/diwa-components/p-e602c199.entry.js +0 -2
- package/dist/diwa-components/p-e602c199.entry.js.map +0 -1
- package/dist/diwa-components/p-e9673253.entry.js +0 -2
- package/dist/diwa-components/p-e9673253.entry.js.map +0 -1
- package/dist/diwa-components/p-ed4017f0.js +0 -3
- package/dist/diwa-components/p-ed4017f0.js.map +0 -1
- package/dist/diwa-components/p-f44d4091.entry.js +0 -2
- package/dist/diwa-components/p-f44d4091.entry.js.map +0 -1
- package/dist/diwa-components/p-f60f1d81.entry.js +0 -2
- package/dist/diwa-components/p-f60f1d81.entry.js.map +0 -1
- package/dist/diwa-components/p-fae653f7.entry.js +0 -2
- package/dist/diwa-components/p-fae653f7.entry.js.map +0 -1
- package/dist/esm/app-globals-0f993ce5.js +0 -5
- package/dist/esm/app-globals-0f993ce5.js.map +0 -1
- package/dist/esm/checkbox-mark-37be8b2e.js +0 -26
- package/dist/esm/checkbox-mark-37be8b2e.js.map +0 -1
- package/dist/esm/diwa-accordion.entry.js.map +0 -1
- package/dist/esm/diwa-badge.entry.js.map +0 -1
- package/dist/esm/diwa-button-pure.entry.js.map +0 -1
- package/dist/esm/diwa-button.entry.js.map +0 -1
- package/dist/esm/diwa-checkbox.entry.js.map +0 -1
- package/dist/esm/diwa-components.js.map +0 -1
- package/dist/esm/diwa-divider.entry.js.map +0 -1
- package/dist/esm/diwa-flyout.entry.js.map +0 -1
- package/dist/esm/diwa-heading.entry.js.map +0 -1
- package/dist/esm/diwa-icon.entry.js.map +0 -1
- package/dist/esm/diwa-inline-notification.entry.js.map +0 -1
- package/dist/esm/diwa-input-date.entry.js.map +0 -1
- package/dist/esm/diwa-input-email.entry.js.map +0 -1
- package/dist/esm/diwa-input-month.entry.js.map +0 -1
- package/dist/esm/diwa-input-number.entry.js.map +0 -1
- package/dist/esm/diwa-input-password.entry.js.map +0 -1
- package/dist/esm/diwa-input-search.entry.js.map +0 -1
- package/dist/esm/diwa-input-tel.entry.js.map +0 -1
- package/dist/esm/diwa-input-text.entry.js.map +0 -1
- package/dist/esm/diwa-input-time.entry.js.map +0 -1
- package/dist/esm/diwa-input-url.entry.js.map +0 -1
- package/dist/esm/diwa-input-week.entry.js.map +0 -1
- package/dist/esm/diwa-input.entry.js.map +0 -1
- package/dist/esm/diwa-link-pure.entry.js.map +0 -1
- package/dist/esm/diwa-link.entry.js.map +0 -1
- package/dist/esm/diwa-modal.entry.js.map +0 -1
- package/dist/esm/diwa-multi-select-option.entry.js.map +0 -1
- package/dist/esm/diwa-multi-select.entry.js.map +0 -1
- package/dist/esm/diwa-pagination.entry.js.map +0 -1
- package/dist/esm/diwa-pin-code.entry.js.map +0 -1
- package/dist/esm/diwa-popover.entry.js.map +0 -1
- package/dist/esm/diwa-radio-group-item.entry.js.map +0 -1
- package/dist/esm/diwa-radio-group.entry.js.map +0 -1
- package/dist/esm/diwa-scroller.entry.js.map +0 -1
- package/dist/esm/diwa-segmented-control-item.entry.js.map +0 -1
- package/dist/esm/diwa-segmented-control.entry.js.map +0 -1
- package/dist/esm/diwa-select-option.entry.js.map +0 -1
- package/dist/esm/diwa-select.entry.js.map +0 -1
- package/dist/esm/diwa-spinner.entry.js.map +0 -1
- package/dist/esm/diwa-stepper-horizontal-item.entry.js.map +0 -1
- package/dist/esm/diwa-stepper-horizontal.entry.js.map +0 -1
- package/dist/esm/diwa-switch.entry.js.map +0 -1
- package/dist/esm/diwa-table-body.entry.js.map +0 -1
- package/dist/esm/diwa-table-cell.entry.js.map +0 -1
- package/dist/esm/diwa-table-head-cell.entry.js.map +0 -1
- package/dist/esm/diwa-table-head.entry.js.map +0 -1
- package/dist/esm/diwa-table-row.entry.js.map +0 -1
- package/dist/esm/diwa-table.entry.js.map +0 -1
- package/dist/esm/diwa-tabs-bar.entry.js.map +0 -1
- package/dist/esm/diwa-tabs-item.entry.js.map +0 -1
- package/dist/esm/diwa-tabs.entry.js.map +0 -1
- package/dist/esm/diwa-tag-dismissible.entry.js.map +0 -1
- package/dist/esm/diwa-tag.entry.js.map +0 -1
- package/dist/esm/diwa-text-list-item.entry.js.map +0 -1
- package/dist/esm/diwa-text-list.entry.js.map +0 -1
- package/dist/esm/diwa-text.entry.js.map +0 -1
- package/dist/esm/diwa-textarea.entry.js.map +0 -1
- package/dist/esm/diwa-toast-item.entry.js.map +0 -1
- package/dist/esm/diwa-toast.entry.js.map +0 -1
- package/dist/esm/index-3fa02c74.js +0 -1379
- package/dist/esm/index-3fa02c74.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/input-styles-c4f4fa96.js +0 -222
- package/dist/esm/input-styles-c4f4fa96.js.map +0 -1
- package/dist/esm/loader-circle-300f00a4.js.map +0 -1
- package/dist/esm/loader.js.map +0 -1
- package/dist/esm/styles-e5a47a2d.js +0 -73
- package/dist/esm/styles-e5a47a2d.js.map +0 -1
- package/dist-custom-elements/diwa-accordion.js.map +0 -1
- package/dist-custom-elements/diwa-badge.js.map +0 -1
- package/dist-custom-elements/diwa-button-pure.js.map +0 -1
- package/dist-custom-elements/diwa-button.js.map +0 -1
- package/dist-custom-elements/diwa-checkbox.js.map +0 -1
- package/dist-custom-elements/diwa-divider.js.map +0 -1
- package/dist-custom-elements/diwa-flyout.js.map +0 -1
- package/dist-custom-elements/diwa-heading.js.map +0 -1
- package/dist-custom-elements/diwa-icon.js.map +0 -1
- package/dist-custom-elements/diwa-inline-notification.js.map +0 -1
- package/dist-custom-elements/diwa-input-date.js.map +0 -1
- package/dist-custom-elements/diwa-input-email.js.map +0 -1
- package/dist-custom-elements/diwa-input-month.js.map +0 -1
- package/dist-custom-elements/diwa-input-number.js.map +0 -1
- package/dist-custom-elements/diwa-input-password.js.map +0 -1
- package/dist-custom-elements/diwa-input-search.js.map +0 -1
- package/dist-custom-elements/diwa-input-tel.js.map +0 -1
- package/dist-custom-elements/diwa-input-text.js.map +0 -1
- package/dist-custom-elements/diwa-input-time.js.map +0 -1
- package/dist-custom-elements/diwa-input-url.js.map +0 -1
- package/dist-custom-elements/diwa-input-week.js.map +0 -1
- package/dist-custom-elements/diwa-input.js.map +0 -1
- package/dist-custom-elements/diwa-link-pure.js.map +0 -1
- package/dist-custom-elements/diwa-link.js.map +0 -1
- package/dist-custom-elements/diwa-modal.js.map +0 -1
- package/dist-custom-elements/diwa-multi-select-option.js.map +0 -1
- package/dist-custom-elements/diwa-multi-select.js.map +0 -1
- package/dist-custom-elements/diwa-pagination.js.map +0 -1
- package/dist-custom-elements/diwa-pin-code.js.map +0 -1
- package/dist-custom-elements/diwa-popover.js.map +0 -1
- package/dist-custom-elements/diwa-radio-group-item.js.map +0 -1
- package/dist-custom-elements/diwa-radio-group.js.map +0 -1
- package/dist-custom-elements/diwa-scroller.js.map +0 -1
- package/dist-custom-elements/diwa-segmented-control-item.js.map +0 -1
- package/dist-custom-elements/diwa-segmented-control.js.map +0 -1
- package/dist-custom-elements/diwa-select-option.js.map +0 -1
- package/dist-custom-elements/diwa-select.js.map +0 -1
- package/dist-custom-elements/diwa-spinner.js.map +0 -1
- package/dist-custom-elements/diwa-stepper-horizontal-item.js.map +0 -1
- package/dist-custom-elements/diwa-stepper-horizontal.js.map +0 -1
- package/dist-custom-elements/diwa-switch.js.map +0 -1
- package/dist-custom-elements/diwa-table-body.js.map +0 -1
- package/dist-custom-elements/diwa-table-cell.js.map +0 -1
- package/dist-custom-elements/diwa-table-head-cell.js.map +0 -1
- package/dist-custom-elements/diwa-table-head.js.map +0 -1
- package/dist-custom-elements/diwa-table-row.js.map +0 -1
- package/dist-custom-elements/diwa-table.js.map +0 -1
- package/dist-custom-elements/diwa-tabs-bar.js.map +0 -1
- package/dist-custom-elements/diwa-tabs-item.js.map +0 -1
- package/dist-custom-elements/diwa-tabs.js.map +0 -1
- package/dist-custom-elements/diwa-tag-dismissible.js.map +0 -1
- package/dist-custom-elements/diwa-tag.js.map +0 -1
- package/dist-custom-elements/diwa-text-list-item.js.map +0 -1
- package/dist-custom-elements/diwa-text-list.js.map +0 -1
- package/dist-custom-elements/diwa-text.js.map +0 -1
- package/dist-custom-elements/diwa-textarea.js.map +0 -1
- package/dist-custom-elements/diwa-toast-item.js.map +0 -1
- package/dist-custom-elements/diwa-toast.js.map +0 -1
- package/dist-custom-elements/index.js.map +0 -1
- package/dist-custom-elements/p-105f3f97.js +0 -321
- package/dist-custom-elements/p-105f3f97.js.map +0 -1
- package/dist-custom-elements/p-332838f8.js.map +0 -1
- package/dist-custom-elements/p-35c7c864.js.map +0 -1
- package/dist-custom-elements/p-5eacc7d0.js +0 -1187
- package/dist-custom-elements/p-5eacc7d0.js.map +0 -1
- package/dist-custom-elements/p-70bbb21a.js.map +0 -1
- package/dist-custom-elements/p-7c951f7f.js +0 -141
- package/dist-custom-elements/p-7c951f7f.js.map +0 -1
- package/dist-custom-elements/p-8972ae69.js +0 -29213
- package/dist-custom-elements/p-8972ae69.js.map +0 -1
- package/dist-custom-elements/p-ac8e14be.js.map +0 -1
- package/dist-custom-elements/p-b7255dc4.js +0 -117
- package/dist-custom-elements/p-b7255dc4.js.map +0 -1
- package/loader/package.json +0 -11
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as n,c as e,h as i,H as t,g as a}from"./p-ed4017f0.js";import{g as s,a as o}from"./p-70bbb21a.js";const d=()=>`\n /* ── Host ──────────────────────────────────────────────────────────── */\n\n :host {\n display: block;\n font-family: var(--diwa-font-family-base);\n outline: none;\n }\n\n :host([hidden]) {\n display: none;\n }\n\n /* ── Option row ─────────────────────────────────────────────────────── */\n\n .option {\n display: flex;\n align-items: center;\n gap: var(--diwa-space-3);\n padding: var(--diwa-space-2) var(--diwa-space-3);\n min-height: var(--diwa-select-option-min-height);\n box-sizing: border-box;\n cursor: pointer;\n user-select: none;\n -webkit-font-smoothing: antialiased;\n color: var(--diwa-text-primary);\n font-size: var(--diwa-font-size-base);\n font-weight: var(--diwa-font-weight-normal);\n line-height: 1.4;\n border-radius: var(--diwa-radius-sm);\n transition: background-color var(--diwa-transition-fast);\n }\n\n ${s(".option")}\n\n /* ── Check mark ─────────────────────────────────────────────────────── */\n\n .check {\n flex-shrink: 0;\n width: var(--diwa-icon-size-md);\n height: var(--diwa-icon-size-md);\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--diwa-accent);\n font-size: var(--diwa-font-size-base);\n line-height: 1;\n visibility: hidden;\n }\n\n /* ── Selected state ─────────────────────────────────────────────────── */\n\n :host([selected]) .check {\n visibility: visible;\n }\n\n /* ── Highlighted (keyboard / hover) ─────────────────────────────────── */\n\n :host([highlighted]) .option {\n background-color: var(--diwa-bg-hover);\n }\n\n @media (hover: hover) and (pointer: fine) {\n .option:hover {\n background-color: var(--diwa-bg-hover);\n }\n }\n\n /* ── Label text ─────────────────────────────────────────────────────── */\n\n .label {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n /* ── Compact ────────────────────────────────────────────────────────── */\n\n :host([compact]) .option {\n padding: var(--diwa-space-1) var(--diwa-space-2);\n font-size: var(--diwa-font-size-md);\n min-height: 0;\n }\n\n :host([compact]) .check {\n font-size: var(--diwa-font-size-md);\n }\n\n /* ── Disabled ───────────────────────────────────────────────────────── */\n\n :host([disabled]) {\n pointer-events: none;\n }\n\n :host([disabled]) .option {\n opacity: var(--diwa-opacity-disabled);\n cursor: not-allowed;\n }\n\n /* ── Reduced motion ─────────────────────────────────────────────────── */\n\n ${o(".option")}\n`;const r=class{constructor(i){n(this,i);this.diwaSelectOptionUpdate=e(this,"diwaSelectOptionUpdate",7);this.disabled=false;this.selected=false;this.highlighted=false;this.theme="dark";this.compact=false;this.handleClick=()=>{if(this.disabled)return;this.diwaSelectOptionUpdate.emit({value:this.value})};this.handleKeyDown=n=>{if(this.disabled)return;if(n.key==="Enter"||n.key===" "){n.preventDefault();this.diwaSelectOptionUpdate.emit({value:this.value})}}}async setFocus(){var n;(n=this.optionEl)===null||n===void 0?void 0:n.focus()}render(){return i(t,{key:"86c5dd52dbfc96056c5031be22e751c4c741527f","data-theme":this.theme},i("style",{key:"903154a75ff36b77647ee2c769717e5f1df574e6",innerHTML:d()}),i("div",{key:"c95e357baac1fd10642383cb4259d29dd356825e",class:"option",role:"option","aria-selected":this.selected?"true":"false","aria-disabled":this.disabled?"true":undefined,tabIndex:this.disabled?-1:0,onClick:this.handleClick,onKeyDown:this.handleKeyDown,ref:n=>this.optionEl=n,part:"option"},i("span",{key:"902e2a17f8bbff2e450349f5e2ef1df3d5b54df7",class:"check","aria-hidden":"true",part:"check"},"✓"),i("span",{key:"535f939bb208a6dad985b803ef18ebb240cd2c30",class:"label",part:"label"},i("slot",{key:"055c66f037f5783f2aad7256a15dbfae034b5796"}))))}static get delegatesFocus(){return true}get host(){return a(this)}};export{r as diwa_select_option};
|
|
2
|
-
//# sourceMappingURL=p-117dc41d.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["getComponentCss","getFocusStyle","getReducedMotionStyle","DiwaSelectOption","constructor","hostRef","this","disabled","selected","highlighted","theme","compact","handleClick","diwaSelectOptionUpdate","emit","value","handleKeyDown","e","key","preventDefault","setFocus","_a","optionEl","focus","render","h","Host","innerHTML","class","role","undefined","tabIndex","onClick","onKeyDown","ref","el","part"],"sources":["src/components/diwa-select-option/diwa-select-option-styles.ts","src/components/diwa-select-option/diwa-select-option.tsx"],"sourcesContent":["import { getFocusStyle, getReducedMotionStyle } from '../../utils/styles';\r\n\r\nexport const getComponentCss = (): string => `\r\n /* ── Host ──────────────────────────────────────────────────────────── */\r\n\r\n :host {\r\n display: block;\r\n font-family: var(--diwa-font-family-base);\r\n outline: none;\r\n }\r\n\r\n :host([hidden]) {\r\n display: none;\r\n }\r\n\r\n /* ── Option row ─────────────────────────────────────────────────────── */\r\n\r\n .option {\r\n display: flex;\r\n align-items: center;\r\n gap: var(--diwa-space-3);\r\n padding: var(--diwa-space-2) var(--diwa-space-3);\r\n min-height: var(--diwa-select-option-min-height);\r\n box-sizing: border-box;\r\n cursor: pointer;\r\n user-select: none;\r\n -webkit-font-smoothing: antialiased;\r\n color: var(--diwa-text-primary);\r\n font-size: var(--diwa-font-size-base);\r\n font-weight: var(--diwa-font-weight-normal);\r\n line-height: 1.4;\r\n border-radius: var(--diwa-radius-sm);\r\n transition: background-color var(--diwa-transition-fast);\r\n }\r\n\r\n ${getFocusStyle('.option')}\r\n\r\n /* ── Check mark ─────────────────────────────────────────────────────── */\r\n\r\n .check {\r\n flex-shrink: 0;\r\n width: var(--diwa-icon-size-md);\r\n height: var(--diwa-icon-size-md);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n color: var(--diwa-accent);\r\n font-size: var(--diwa-font-size-base);\r\n line-height: 1;\r\n visibility: hidden;\r\n }\r\n\r\n /* ── Selected state ─────────────────────────────────────────────────── */\r\n\r\n :host([selected]) .check {\r\n visibility: visible;\r\n }\r\n\r\n /* ── Highlighted (keyboard / hover) ─────────────────────────────────── */\r\n\r\n :host([highlighted]) .option {\r\n background-color: var(--diwa-bg-hover);\r\n }\r\n\r\n @media (hover: hover) and (pointer: fine) {\r\n .option:hover {\r\n background-color: var(--diwa-bg-hover);\r\n }\r\n }\r\n\r\n /* ── Label text ─────────────────────────────────────────────────────── */\r\n\r\n .label {\r\n flex: 1;\r\n min-width: 0;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n }\r\n\r\n /* ── Compact ────────────────────────────────────────────────────────── */\r\n\r\n :host([compact]) .option {\r\n padding: var(--diwa-space-1) var(--diwa-space-2);\r\n font-size: var(--diwa-font-size-md);\r\n min-height: 0;\r\n }\r\n\r\n :host([compact]) .check {\r\n font-size: var(--diwa-font-size-md);\r\n }\r\n\r\n /* ── Disabled ───────────────────────────────────────────────────────── */\r\n\r\n :host([disabled]) {\r\n pointer-events: none;\r\n }\r\n\r\n :host([disabled]) .option {\r\n opacity: var(--diwa-opacity-disabled);\r\n cursor: not-allowed;\r\n }\r\n\r\n /* ── Reduced motion ─────────────────────────────────────────────────── */\r\n\r\n ${getReducedMotionStyle('.option')}\r\n`;\r\n","import { Component, Element, Event, type EventEmitter, Host, Method, Prop, h } from '@stencil/core';\r\nimport type { Theme } from '../../utils/styles';\r\nimport { getComponentCss } from './diwa-select-option-styles';\r\n\r\n/**\r\n * @component diwa-select-option\r\n *\r\n * Individual option element for use inside <diwa-select>.\r\n * Renders a row with a checkmark indicator and label text.\r\n *\r\n * Not intended for standalone use — must be slotted into <diwa-select>.\r\n *\r\n * Provide an option without a value to allow deselection / show a placeholder:\r\n * <diwa-select-option>Please select…</diwa-select-option>\r\n *\r\n * @slot default — Option label text (plain text or inline phrasing content)\r\n */\r\n@Component({\r\n tag: 'diwa-select-option',\r\n shadow: { delegatesFocus: true },\r\n})\r\nexport class DiwaSelectOption {\r\n @Element() host!: HTMLDiwaSelectOptionElement;\r\n\r\n /** The value submitted/emitted when this option is selected. */\r\n @Prop({ reflect: true }) value?: string;\r\n\r\n /** Disables the option — it cannot be selected. */\r\n @Prop({ reflect: true }) disabled: boolean = false;\r\n\r\n /**\r\n * Whether the option is currently selected.\r\n * Maintained by the parent <diwa-select>.\r\n */\r\n @Prop({ mutable: true, reflect: true }) selected: boolean = false;\r\n\r\n /**\r\n * Whether the option is currently keyboard-highlighted.\r\n * Set exclusively by the parent component.\r\n */\r\n @Prop({ mutable: true, reflect: true }) highlighted: boolean = false;\r\n\r\n /** Theme — inherited from the parent diwa-select. */\r\n @Prop({ mutable: true }) theme: Theme = 'dark';\r\n\r\n /** Compact mode — inherited from the parent diwa-select. */\r\n @Prop({ mutable: true, reflect: true }) compact: boolean = false;\r\n\r\n /**\r\n * Emitted when the user clicks or presses Enter on the option.\r\n * Bubbles and crosses Shadow DOM so the parent can catch it via @Listen.\r\n */\r\n @Event({ bubbles: true, composed: true })\r\n diwaSelectOptionUpdate!: EventEmitter<{ value: string | undefined }>;\r\n\r\n /** Focuses the inner option element. */\r\n @Method()\r\n async setFocus(): Promise<void> {\r\n this.optionEl?.focus();\r\n }\r\n\r\n private optionEl?: HTMLDivElement;\r\n\r\n private handleClick = (): void => {\r\n if (this.disabled) return;\r\n this.diwaSelectOptionUpdate.emit({ value: this.value });\r\n };\r\n\r\n private handleKeyDown = (e: KeyboardEvent): void => {\r\n if (this.disabled) return;\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n this.diwaSelectOptionUpdate.emit({ value: this.value });\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n <Host data-theme={this.theme}>\r\n <style innerHTML={getComponentCss()} />\r\n <div\r\n class=\"option\"\r\n role=\"option\"\r\n aria-selected={this.selected ? 'true' : 'false'}\r\n aria-disabled={this.disabled ? 'true' : undefined}\r\n tabIndex={this.disabled ? -1 : 0}\r\n onClick={this.handleClick}\r\n onKeyDown={this.handleKeyDown}\r\n ref={(el) => (this.optionEl = el as HTMLDivElement)}\r\n part=\"option\"\r\n >\r\n <span class=\"check\" aria-hidden=\"true\" part=\"check\">✓</span>\r\n <span class=\"label\" part=\"label\">\r\n <slot />\r\n </span>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"2GAEO,MAAMA,EAAkB,IAAc,44BAiCzCC,EAAc,2qDAsEdC,EAAsB,e,MCpFbC,EAAgB,MAJ7B,WAAAC,CAAAC,G,yEAW2BC,KAAAC,SAAoB,MAMLD,KAAAE,SAAoB,MAMpBF,KAAAG,YAAuB,MAGtCH,KAAAI,MAAe,OAGAJ,KAAAK,QAAmB,MAiBnDL,KAAAM,YAAc,KACpB,GAAIN,KAAKC,SAAU,OACnBD,KAAKO,uBAAuBC,KAAK,CAAEC,MAAOT,KAAKS,OAAQ,EAGjDT,KAAAU,cAAiBC,IACvB,GAAIX,KAAKC,SAAU,OACnB,GAAIU,EAAEC,MAAQ,SAAWD,EAAEC,MAAQ,IAAK,CACtCD,EAAEE,iBACFb,KAAKO,uBAAuBC,KAAK,CAAEC,MAAOT,KAAKS,O,GAfnD,cAAMK,G,OACJC,EAAAf,KAAKgB,YAAQ,MAAAD,SAAA,SAAAA,EAAEE,O,CAkBjB,MAAAC,GACE,OACEC,EAACC,EAAI,CAAAR,IAAA,wDAAaZ,KAAKI,OACrBe,EAAA,SAAAP,IAAA,2CAAOS,UAAW3B,MAClByB,EAAA,OAAAP,IAAA,2CACEU,MAAM,SACNC,KAAK,SAAQ,gBACEvB,KAAKE,SAAW,OAAS,QAAO,gBAChCF,KAAKC,SAAW,OAASuB,UACxCC,SAAUzB,KAAKC,UAAY,EAAI,EAC/ByB,QAAS1B,KAAKM,YACdqB,UAAW3B,KAAKU,cAChBkB,IAAMC,GAAQ7B,KAAKgB,SAAWa,EAC9BC,KAAK,UAELX,EAAA,QAAAP,IAAA,2CAAMU,MAAM,QAAO,cAAa,OAAOQ,KAAK,SAAO,KACnDX,EAAA,QAAAP,IAAA,2CAAMU,MAAM,QAAQQ,KAAK,SACvBX,EAAA,QAAAP,IAAA,+C","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as t,c as n,h as e,H as a,g as i}from"./p-ed4017f0.js";import{a as r}from"./p-70bbb21a.js";const o=()=>`\n :host {\n display: block;\n font-family: var(--diwa-font-family-base);\n color: var(--diwa-text-primary);\n }\n\n :host([hidden]) {\n display: none;\n }\n\n .bar {\n display: flex;\n align-items: stretch;\n gap: 0;\n border-bottom: var(--diwa-border-width-thin) solid var(--diwa-border);\n overflow-x: auto;\n scrollbar-width: none;\n }\n\n .bar::-webkit-scrollbar {\n display: none;\n }\n\n ::slotted(a),\n ::slotted(button) {\n /* !important guards against light-DOM author styles (e.g. Tailwind preflight\n padding: 0 on button) overriding ::slotted() rules per the CSS shadow-DOM\n cascade spec where light-DOM author styles win over ::slotted(). */\n display: inline-flex !important;\n align-items: center;\n min-height: var(--diwa-touch-target-min-size, 44px) !important;\n gap: var(--diwa-space-2);\n padding: var(--diwa-space-4) var(--diwa-space-7) !important;\n border: none !important;\n border-bottom: var(--diwa-border-width-base) solid transparent !important;\n background: transparent !important;\n color: var(--diwa-text-secondary) !important;\n font-size: var(--diwa-font-size-base) !important;\n font-family: inherit !important;\n font-weight: var(--diwa-font-weight-medium) !important;\n text-decoration: none !important;\n white-space: nowrap !important;\n cursor: pointer !important;\n transition:\n color var(--diwa-transition-base),\n border-color var(--diwa-transition-base);\n margin-bottom: -1px;\n outline: none;\n }\n\n @media (hover: hover) and (pointer: fine) {\n ::slotted(a:hover),\n ::slotted(button:hover) {\n color: var(--diwa-text-primary) !important;\n }\n }\n\n ::slotted(a[data-active]),\n ::slotted(button[data-active]),\n ::slotted(a.active),\n ::slotted(button.active),\n ::slotted([aria-selected="true"]) {\n color: var(--diwa-accent) !important;\n border-bottom-color: var(--diwa-accent) !important;\n font-weight: var(--diwa-font-weight-medium) !important;\n }\n\n ::slotted(a:focus-visible),\n ::slotted(button:focus-visible) {\n outline: var(--diwa-focus-ring-width) solid var(--diwa-border-focus);\n outline-offset: var(--diwa-focus-ring-offset);\n }\n\n ::slotted(a:focus:not(:focus-visible)),\n ::slotted(button:focus:not(:focus-visible)) {\n outline: none;\n }\n\n ::slotted(button:disabled) {\n background: transparent !important;\n color: var(--diwa-text-muted) !important;\n opacity: 0.5 !important;\n cursor: not-allowed !important;\n pointer-events: none !important;\n }\n\n ${r("::slotted(a)","::slotted(button)")}\n`;const s=class{constructor(e){t(this,e);this.update=n(this,"update",1);this.theme="dark";this.activeTabIndex=0}handleIndexChange(){this.syncTabs()}componentDidLoad(){this.syncTabs()}handleClick(t){const n=this.getTabElements();const e=this.getTabIndexFromEventTarget(t.target,n);if(e===-1||e===this.activeTabIndex||this.isTabDisabled(n[e])){return}this.setActiveTab(e)}handleKeydown(t){var n;const e=this.getTabElements();const a=this.getTabIndexFromEventTarget(t.target,e);if(a===-1){return}let i=-1;switch(t.key){case"ArrowLeft":case"ArrowUp":i=this.getNextEnabledIndex(a,-1,e);break;case"ArrowRight":case"ArrowDown":i=this.getNextEnabledIndex(a,1,e);break;case"Home":i=this.getBoundaryEnabledIndex("start",e);break;case"End":i=this.getBoundaryEnabledIndex("end",e);break;default:return}if(i===-1){return}t.preventDefault();this.setActiveTab(i);(n=e[i])===null||n===void 0?void 0:n.focus()}getTabElements(){var t;const n=(t=this.host.shadowRoot)===null||t===void 0?void 0:t.querySelector("slot");if(!n)return[];return n.assignedElements({flatten:true}).filter((t=>t instanceof HTMLElement))}getTabIndexFromEventTarget(t,n){if(!(t instanceof Node)){return-1}return n.findIndex((n=>n===t||n.contains(t)))}isTabDisabled(t){if(!t){return true}return t.hasAttribute("disabled")||t.getAttribute("aria-disabled")==="true"}getNextEnabledIndex(t,n,e){for(let a=1;a<=e.length;a+=1){const i=(t+n*a+e.length)%e.length;if(!this.isTabDisabled(e[i])){return i}}return-1}getBoundaryEnabledIndex(t,n){const e=t==="start"?n:[...n].reverse();const a=e.find((t=>!this.isTabDisabled(t)));if(!a){return-1}return n.indexOf(a)}setActiveTab(t){this.activeTabIndex=t;this.update.emit({activeTabIndex:this.activeTabIndex});this.syncTabs()}syncTabs(){const t=this.getTabElements();t.forEach(((t,n)=>{const e=n===this.activeTabIndex;t.setAttribute("role","tab");t.setAttribute("aria-selected",e?"true":"false");if(this.isTabDisabled(t)){t.setAttribute("aria-disabled","true");t.setAttribute("tabindex","-1");t.removeAttribute("data-active");return}t.removeAttribute("aria-disabled");if(e){t.setAttribute("data-active","");t.setAttribute("tabindex","0")}else{t.removeAttribute("data-active");t.setAttribute("tabindex","-1")}}))}render(){return e(a,{key:"0dc13736a3b995d469880639e2af554544c5e5ea",role:"tablist","data-theme":this.theme},e("style",{key:"7792f75ccf668f4ab60ad8817bd504507b025797",innerHTML:o()}),e("div",{key:"728725f33c758c38a6e99335d4b7741ea4064b76",class:"bar"},e("slot",{key:"87f09b4877890425b2b2c5187d62f9fc41ecd5d7"})))}get host(){return i(this)}static get watchers(){return{activeTabIndex:["handleIndexChange"]}}};export{s as diwa_tabs_bar};
|
|
2
|
-
//# sourceMappingURL=p-1250d0c7.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["getComponentCss","getReducedMotionStyle","DiwaTabsBar","constructor","hostRef","this","theme","activeTabIndex","handleIndexChange","syncTabs","componentDidLoad","handleClick","event","tabs","getTabElements","idx","getTabIndexFromEventTarget","target","isTabDisabled","setActiveTab","handleKeydown","currentIndex","nextIndex","key","getNextEnabledIndex","getBoundaryEnabledIndex","preventDefault","_a","focus","slot","host","shadowRoot","querySelector","assignedElements","flatten","filter","el","HTMLElement","Node","findIndex","tab","contains","hasAttribute","getAttribute","direction","step","length","candidateIndex","edge","candidates","reverse","match","find","indexOf","index","update","emit","forEach","i","isActive","setAttribute","removeAttribute","render","h","Host","role","innerHTML","class"],"sources":["src/components/diwa-tabs-bar/diwa-tabs-bar-styles.ts","src/components/diwa-tabs-bar/diwa-tabs-bar.tsx"],"sourcesContent":["import { getReducedMotionStyle } from '../../utils/styles';\r\n\r\nexport const getComponentCss = (): string => `\r\n :host {\r\n display: block;\r\n font-family: var(--diwa-font-family-base);\r\n color: var(--diwa-text-primary);\r\n }\r\n\r\n :host([hidden]) {\r\n display: none;\r\n }\r\n\r\n .bar {\r\n display: flex;\r\n align-items: stretch;\r\n gap: 0;\r\n border-bottom: var(--diwa-border-width-thin) solid var(--diwa-border);\r\n overflow-x: auto;\r\n scrollbar-width: none;\r\n }\r\n\r\n .bar::-webkit-scrollbar {\r\n display: none;\r\n }\r\n\r\n ::slotted(a),\n ::slotted(button) {\n /* !important guards against light-DOM author styles (e.g. Tailwind preflight\r\n padding: 0 on button) overriding ::slotted() rules per the CSS shadow-DOM\r\n cascade spec where light-DOM author styles win over ::slotted(). */\r\n display: inline-flex !important;\n align-items: center;\n min-height: var(--diwa-touch-target-min-size, 44px) !important;\n gap: var(--diwa-space-2);\n padding: var(--diwa-space-4) var(--diwa-space-7) !important;\r\n border: none !important;\r\n border-bottom: var(--diwa-border-width-base) solid transparent !important;\r\n background: transparent !important;\r\n color: var(--diwa-text-secondary) !important;\r\n font-size: var(--diwa-font-size-base) !important;\r\n font-family: inherit !important;\r\n font-weight: var(--diwa-font-weight-medium) !important;\r\n text-decoration: none !important;\r\n white-space: nowrap !important;\r\n cursor: pointer !important;\r\n transition:\r\n color var(--diwa-transition-base),\r\n border-color var(--diwa-transition-base);\r\n margin-bottom: -1px;\r\n outline: none;\r\n }\r\n\r\n @media (hover: hover) and (pointer: fine) {\n ::slotted(a:hover),\n ::slotted(button:hover) {\n color: var(--diwa-text-primary) !important;\n }\n }\n\r\n ::slotted(a[data-active]),\r\n ::slotted(button[data-active]),\r\n ::slotted(a.active),\r\n ::slotted(button.active),\r\n ::slotted([aria-selected=\"true\"]) {\r\n color: var(--diwa-accent) !important;\r\n border-bottom-color: var(--diwa-accent) !important;\r\n font-weight: var(--diwa-font-weight-medium) !important;\r\n }\r\n\r\n ::slotted(a:focus-visible),\r\n ::slotted(button:focus-visible) {\r\n outline: var(--diwa-focus-ring-width) solid var(--diwa-border-focus);\r\n outline-offset: var(--diwa-focus-ring-offset);\r\n }\r\n\r\n ::slotted(a:focus:not(:focus-visible)),\r\n ::slotted(button:focus:not(:focus-visible)) {\r\n outline: none;\r\n }\r\n\r\n ::slotted(button:disabled) {\r\n background: transparent !important;\r\n color: var(--diwa-text-muted) !important;\r\n opacity: 0.5 !important;\r\n cursor: not-allowed !important;\r\n pointer-events: none !important;\r\n }\r\n\r\n ${getReducedMotionStyle('::slotted(a)', '::slotted(button)')}\r\n`;\r\n","import { Component, Element, Event, type EventEmitter, Host, Listen, Prop, Watch, h } from '@stencil/core';\r\nimport type { TabsBarUpdateEventDetail } from './types';\r\nimport type { Theme } from '../../utils/styles';\r\nimport { getComponentCss } from './diwa-tabs-bar-styles';\r\n\r\n/**\r\n * @component diwa-tabs-bar\r\n *\r\n * A styled tab navigation bar. Accepts `<a>` or `<button>` elements in the\r\n * default slot and tracks the active index. Mark the active tab with the\r\n * `data-active` attribute or the `active` CSS class, or let the component\r\n * manage it by providing `activeTabIndex`.\r\n *\r\n * Usage:\r\n * <diwa-tabs-bar active-tab-index={1} onupdate={e => setTab(e.detail.activeTabIndex)}>\r\n * <button>Tab 1</button>\r\n * <button>Tab 2</button>\r\n * <button>Tab 3</button>\r\n * </diwa-tabs-bar>\r\n */\r\n@Component({\r\n tag: 'diwa-tabs-bar',\r\n shadow: true,\r\n})\r\nexport class DiwaTabsBar {\r\n @Element() host!: HTMLDiwaTabsBarElement;\r\n\r\n /** Per-component theme override. */\r\n @Prop({ reflect: true }) theme: Theme = 'dark';\r\n\r\n /** Zero-based index of the active tab. */\r\n @Prop({ mutable: true, attribute: 'active-tab-index' })\r\n activeTabIndex: number = 0;\r\n\r\n /**\r\n * Emitted when the active tab changes.\r\n */\r\n @Event({ bubbles: false, composed: false })\r\n update!: EventEmitter<TabsBarUpdateEventDetail>;\r\n\r\n @Watch('activeTabIndex')\r\n handleIndexChange() {\r\n this.syncTabs();\r\n }\r\n\r\n componentDidLoad() {\r\n this.syncTabs();\r\n }\r\n\r\n @Listen('click')\r\n handleClick(event: Event) {\r\n const tabs = this.getTabElements();\r\n const idx = this.getTabIndexFromEventTarget(event.target, tabs);\r\n\r\n if (idx === -1 || idx === this.activeTabIndex || this.isTabDisabled(tabs[idx])) {\r\n return;\r\n }\r\n\r\n this.setActiveTab(idx);\r\n }\r\n\r\n @Listen('keydown')\r\n handleKeydown(event: KeyboardEvent) {\r\n const tabs = this.getTabElements();\r\n const currentIndex = this.getTabIndexFromEventTarget(event.target, tabs);\r\n\r\n if (currentIndex === -1) {\r\n return;\r\n }\r\n\r\n let nextIndex = -1;\r\n\r\n switch (event.key) {\r\n case 'ArrowLeft':\r\n case 'ArrowUp':\r\n nextIndex = this.getNextEnabledIndex(currentIndex, -1, tabs);\r\n break;\r\n case 'ArrowRight':\r\n case 'ArrowDown':\r\n nextIndex = this.getNextEnabledIndex(currentIndex, 1, tabs);\r\n break;\r\n case 'Home':\r\n nextIndex = this.getBoundaryEnabledIndex('start', tabs);\r\n break;\r\n case 'End':\r\n nextIndex = this.getBoundaryEnabledIndex('end', tabs);\r\n break;\r\n default:\r\n return;\r\n }\r\n\r\n if (nextIndex === -1) {\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n this.setActiveTab(nextIndex);\r\n tabs[nextIndex]?.focus();\r\n }\r\n\r\n private getTabElements(): HTMLElement[] {\r\n const slot = this.host.shadowRoot?.querySelector('slot') as HTMLSlotElement | null;\r\n if (!slot) return [];\r\n return slot\r\n .assignedElements({ flatten: true })\r\n .filter((el): el is HTMLElement => el instanceof HTMLElement);\r\n }\r\n\r\n private getTabIndexFromEventTarget(target: EventTarget | null, tabs: HTMLElement[]): number {\r\n if (!(target instanceof Node)) {\r\n return -1;\r\n }\r\n\r\n return tabs.findIndex((tab) => tab === target || tab.contains(target));\r\n }\r\n\r\n private isTabDisabled(tab: HTMLElement | undefined): boolean {\r\n if (!tab) {\r\n return true;\r\n }\r\n\r\n return tab.hasAttribute('disabled') || tab.getAttribute('aria-disabled') === 'true';\r\n }\r\n\r\n private getNextEnabledIndex(\r\n currentIndex: number,\r\n direction: -1 | 1,\r\n tabs: HTMLElement[],\r\n ): number {\r\n for (let step = 1; step <= tabs.length; step += 1) {\r\n const candidateIndex = (currentIndex + direction * step + tabs.length) % tabs.length;\r\n if (!this.isTabDisabled(tabs[candidateIndex])) {\r\n return candidateIndex;\r\n }\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n private getBoundaryEnabledIndex(edge: 'start' | 'end', tabs: HTMLElement[]): number {\r\n const candidates = edge === 'start' ? tabs : [...tabs].reverse();\r\n const match = candidates.find((tab) => !this.isTabDisabled(tab));\r\n\r\n if (!match) {\r\n return -1;\r\n }\r\n\r\n return tabs.indexOf(match);\r\n }\r\n\r\n private setActiveTab(index: number) {\r\n this.activeTabIndex = index;\r\n this.update.emit({ activeTabIndex: this.activeTabIndex });\r\n this.syncTabs();\r\n }\r\n\r\n private syncTabs() {\r\n const tabs = this.getTabElements();\r\n tabs.forEach((tab, i) => {\r\n const isActive = i === this.activeTabIndex;\r\n tab.setAttribute('role', 'tab');\r\n tab.setAttribute('aria-selected', isActive ? 'true' : 'false');\r\n\r\n if (this.isTabDisabled(tab)) {\r\n tab.setAttribute('aria-disabled', 'true');\r\n tab.setAttribute('tabindex', '-1');\r\n tab.removeAttribute('data-active');\r\n return;\r\n }\r\n\r\n tab.removeAttribute('aria-disabled');\r\n\r\n if (isActive) {\r\n tab.setAttribute('data-active', '');\r\n tab.setAttribute('tabindex', '0');\r\n } else {\r\n tab.removeAttribute('data-active');\r\n tab.setAttribute('tabindex', '-1');\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n <Host role=\"tablist\" data-theme={this.theme}>\r\n <style innerHTML={getComponentCss()} />\r\n <div class=\"bar\">\r\n <slot />\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as a,c as e,h as n,H as t,g as i}from"./p-ed4017f0.js";import{g as s,a as r}from"./p-70bbb21a.js";const d=(a,e,n)=>`\n :host {\n display: inline-block;\n font-family: var(--diwa-font-family-base);\n outline: none;\n }\n\n :host([hidden]) {\n display: none;\n }\n\n .btn {\n display: inline-flex;\n align-items: center;\n gap: var(--diwa-space-2);\n padding: ${n?"var(--diwa-space-1) var(--diwa-space-3)":"var(--diwa-space-2) var(--diwa-space-4)"};\n border: none;\n border-radius: calc(var(--diwa-radius-md) - var(--diwa-border-width-base));\n background: ${a?"var(--diwa-bg-elevated)":"transparent"};\n color: ${a?"var(--diwa-text-primary)":"var(--diwa-text-secondary)"};\n font-size: ${n?"var(--diwa-font-size-sm)":"var(--diwa-font-size-base)"};\n font-weight: ${a?"var(--diwa-font-weight-medium)":"var(--diwa-font-weight-normal, 400)"};\n font-family: inherit;\n cursor: ${e?"not-allowed":"pointer"};\n opacity: ${e?.4:1};\n white-space: nowrap;\n transition: background 150ms ease, color 150ms ease;\n box-shadow: ${a?"var(--diwa-shadow-sm)":"none"};\n }\n\n ${s(".btn")}\n\n .btn:hover:not(:disabled) {\n color: var(--diwa-text-primary);\n background: ${a?"var(--diwa-bg-elevated)":"var(--diwa-bg-input)"};\n }\n\n ${r(".btn")}\n`;const o=class{constructor(n){a(this,n);this.segmentSelect=e(this,"diwa-segment-select",7);this.theme="dark";this.value="";this.selected=false;this.disabled=false;this.compact=false;this.handleClick=()=>{if(this.disabled||this.selected)return;this.segmentSelect.emit({value:this.value})}}render(){return n(t,{key:"2a0ee21e2203bc962d2cb1156ebe70b0cbc30d1e"},n("style",{key:"e8ff2c5b70860cc872cad97d689e16cf9c82c064",innerHTML:d(this.selected,this.disabled,this.compact)}),n("button",{key:"112f93b906318888f5113417fdfddf0ce1aad3a8",class:"btn",type:"button",disabled:this.disabled,"aria-pressed":this.selected?"true":"false",onClick:this.handleClick},n("slot",{key:"bd6ef60d2fc09a59cfd8108377f1981aaefc991c"})))}static get delegatesFocus(){return true}get host(){return i(this)}};export{o as diwa_segmented_control_item};
|
|
2
|
-
//# sourceMappingURL=p-13e71247.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["getComponentCss","selected","disabled","compact","getFocusStyle","getReducedMotionStyle","DiwaSegmentedControlItem","constructor","hostRef","this","theme","value","handleClick","segmentSelect","emit","render","h","Host","key","innerHTML","class","type","onClick"],"sources":["src/components/diwa-segmented-control-item/diwa-segmented-control-item-styles.ts","src/components/diwa-segmented-control-item/diwa-segmented-control-item.tsx"],"sourcesContent":["import { getFocusStyle, getReducedMotionStyle } from '../../utils/styles';\r\n\r\nexport const getComponentCss = (selected: boolean, disabled: boolean, compact: boolean): string => `\r\n :host {\r\n display: inline-block;\r\n font-family: var(--diwa-font-family-base);\r\n outline: none;\r\n }\r\n\r\n :host([hidden]) {\r\n display: none;\r\n }\r\n\r\n .btn {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: var(--diwa-space-2);\r\n padding: ${compact ? 'var(--diwa-space-1) var(--diwa-space-3)' : 'var(--diwa-space-2) var(--diwa-space-4)'};\r\n border: none;\r\n border-radius: calc(var(--diwa-radius-md) - var(--diwa-border-width-base));\r\n background: ${selected ? 'var(--diwa-bg-elevated)' : 'transparent'};\r\n color: ${selected ? 'var(--diwa-text-primary)' : 'var(--diwa-text-secondary)'};\r\n font-size: ${compact ? 'var(--diwa-font-size-sm)' : 'var(--diwa-font-size-base)'};\r\n font-weight: ${selected ? 'var(--diwa-font-weight-medium)' : 'var(--diwa-font-weight-normal, 400)'};\r\n font-family: inherit;\r\n cursor: ${disabled ? 'not-allowed' : 'pointer'};\r\n opacity: ${disabled ? 0.4 : 1};\r\n white-space: nowrap;\r\n transition: background 150ms ease, color 150ms ease;\r\n box-shadow: ${selected ? 'var(--diwa-shadow-sm)' : 'none'};\r\n }\r\n\r\n ${getFocusStyle('.btn')}\r\n\r\n .btn:hover:not(:disabled) {\r\n color: var(--diwa-text-primary);\r\n background: ${selected ? 'var(--diwa-bg-elevated)' : 'var(--diwa-bg-input)'};\r\n }\r\n\r\n ${getReducedMotionStyle('.btn')}\r\n`;\r\n","import { Component, Element, Event, type EventEmitter, Host, Prop, Watch, h } from '@stencil/core';\r\nimport type { Theme } from '../../utils/styles';\r\nimport { getComponentCss } from './diwa-segmented-control-item-styles';\r\n\r\n/**\r\n * @component diwa-segmented-control-item\r\n *\r\n * A single segment used inside `diwa-segmented-control`.\r\n * The parent manages `selected`, `disabled`, and `compact` automatically.\r\n * You only need to supply `value` and label content via the default slot.\r\n *\r\n * Usage:\r\n * <diwa-segmented-control-item value=\"week\">Week</diwa-segmented-control-item>\r\n */\r\n@Component({\r\n tag: 'diwa-segmented-control-item',\r\n shadow: { delegatesFocus: true },\r\n})\r\nexport class DiwaSegmentedControlItem {\r\n @Element() host!: HTMLDiwaSegmentedControlItemElement;\r\n\r\n /** Per-component theme override. */\r\n @Prop({ reflect: true }) theme: Theme = 'dark';\r\n\r\n /** The value emitted when this segment is activated. */\r\n @Prop({ reflect: true }) value: string = '';\r\n\r\n /** Whether this segment is currently selected. Set by the parent. */\r\n @Prop({ mutable: true, reflect: true }) selected: boolean = false;\r\n\r\n /** Whether this segment is disabled. Also set by the parent when the group is disabled. */\r\n @Prop({ reflect: true }) disabled: boolean = false;\r\n\r\n /** Smaller sizing. Also set by the parent when compact is enabled. */\r\n @Prop({ reflect: true }) compact: boolean = false;\r\n\r\n /**\r\n * Internal event — dispatched to the parent control when clicked.\r\n * Consumers should listen to the parent's `update` event.\r\n */\r\n @Event({ bubbles: true, composed: true, eventName: 'diwa-segment-select' })\r\n segmentSelect!: EventEmitter<{ value: string }>;\r\n\r\n private handleClick = () => {\r\n if (this.disabled || this.selected) return;\r\n this.segmentSelect.emit({ value: this.value });\r\n };\r\n\r\n render() {\r\n return (\r\n <Host>\r\n <style innerHTML={getComponentCss(this.selected, this.disabled, this.compact)} />\r\n <button\r\n class=\"btn\"\r\n type=\"button\"\r\n disabled={this.disabled}\r\n aria-pressed={this.selected ? 'true' : 'false'}\r\n onClick={this.handleClick}\r\n >\r\n <slot />\r\n </button>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"2GAEO,MAAMA,EAAkB,CAACC,EAAmBC,EAAmBC,IAA6B,kRAepFA,EAAU,0CAA4C,mKAGnDF,EAAW,0BAA4B,8BAC5CA,EAAW,2BAA6B,iDACpCE,EAAU,2BAA6B,mDACrCF,EAAW,iCAAmC,kFAEnDC,EAAW,cAAgB,4BAC1BA,EAAW,GAAM,2GAGdD,EAAW,wBAA0B,qBAGnDG,EAAc,mGAIAH,EAAW,0BAA4B,qCAGrDI,EAAsB,Y,MCrBbC,EAAwB,MAJrC,WAAAC,CAAAC,G,6DAQ2BC,KAAAC,MAAe,OAGfD,KAAAE,MAAgB,GAGDF,KAAAR,SAAoB,MAGnCQ,KAAAP,SAAoB,MAGpBO,KAAAN,QAAmB,MASpCM,KAAAG,YAAc,KACpB,GAAIH,KAAKP,UAAYO,KAAKR,SAAU,OACpCQ,KAAKI,cAAcC,KAAK,CAAEH,MAAOF,KAAKE,OAAQ,C,CAGhD,MAAAI,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,SAAAE,IAAA,2CAAOC,UAAWnB,EAAgBS,KAAKR,SAAUQ,KAAKP,SAAUO,KAAKN,WACrEa,EAAA,UAAAE,IAAA,2CACEE,MAAM,MACNC,KAAK,SACLnB,SAAUO,KAAKP,SAAQ,eACTO,KAAKR,SAAW,OAAS,QACvCqB,QAASb,KAAKG,aAEdI,EAAA,QAAAE,IAAA,8C","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as s,c as t,h as e,H as i,g as a}from"./p-ed4017f0.js";import{g as h}from"./p-35c7c864.js";import"./p-70bbb21a.js";const d=class{constructor(e){s(this,e);this.change=t(this,"change",7);this.input=t(this,"input",7);this.blur=t(this,"blur",3);this.focus=t(this,"focus",3);this._hasStart=false;this._hasEnd=false;this.label="";this.description="";this.message="";this.state="none";this.name="";this.value="";this.placeholder="";this.disabled=false;this.required=false;this.readonly=false;this.hideLabel=false;this.compact=false;this.theme="dark";this.handleInput=s=>{this.value=s.target.value;this.input.emit(this.value)};this.handleChange=s=>{this.value=s.target.value;this.change.emit(this.value)};this.handleBlur=s=>{this.blur.emit(s)};this.handleFocus=s=>{this.focus.emit(s)}}connectedCallback(){this._hasStart=!!this.el.querySelector('[slot="start"]');this._hasEnd=!!this.el.querySelector('[slot="end"]')}render(){const s="input";const t="desc";const a="msg";return e(i,{key:"b58c9b32c94117b172cfa28f7b156650b70087f7","data-theme":this.theme},e("style",{key:"ddf17006665bc7eaa8a1f4310d0a1cc240b5e2a2",innerHTML:h(this.state,this.disabled,this.readonly,this.compact,this._hasStart,this._hasEnd,false)}),e("div",{key:"05d5d42c977eb975d9d66c6f2849553cf3030c84",class:"root"},!this.hideLabel&&this.label&&e("div",{key:"988b49a445bb8352b772312a71f09ad8a74ac085",class:"label-row"},e("label",{key:"b377a77badf65a2a3690aa71cc6e0dc02fece8f8",class:"label",htmlFor:s},this.label,this.required&&e("span",{key:"194a617bc1959c34b9624e5863bf63e1b57e1bd6",class:"required","aria-hidden":"true"}," *")),e("slot",{key:"6a8b5dab9bd2c53f912612142a2429a481e9ca0c",name:"label-after"})),e("div",{key:"87d8863bbd02048faffbd83fd0326a160d834eb5",class:"input-wrapper"},this._hasStart&&e("div",{key:"f1f09a5f3f3db887ee379e1e8dc736422e677c62",class:"slot-start"},e("slot",{key:"99b41cac365685c4387cb24e4c5ba082eb3c9891",name:"start"})),e("input",{key:"7009d405ffd077b44b7f05f1c92364bf6eb3e199",id:s,class:"input",type:"date",name:this.name||undefined,value:this.value,disabled:this.disabled,required:this.required,readOnly:this.readonly,min:this.min,max:this.max,autocomplete:this.autoComplete,"aria-label":this.hideLabel&&this.label?this.label:undefined,"aria-invalid":this.state==="error"?"true":undefined,"aria-required":this.required?"true":undefined,"aria-describedby":this.message?a:this.description?t:undefined,onInput:this.handleInput,onChange:this.handleChange,onBlur:this.handleBlur,onFocus:this.handleFocus}),this._hasEnd&&e("div",{key:"f525f4eb53efefbfe224f27162372f7bddcde580",class:"slot-end"},e("slot",{key:"c4b75e8f245b62142b27ada1f6109a201ee95297",name:"end"}))),!this.message&&this.description&&e("p",{key:"c45c7d9b10e31b7234b5d275f118dd07b5f9717a",id:t,class:"description"},this.description),this.message&&e("p",{key:"6f45b19c1e16797f063f5c8bb404dc2c4469f9f3",id:a,class:"message"},this.message)))}static get delegatesFocus(){return true}get el(){return a(this)}};export{d as diwa_input_date};
|
|
2
|
-
//# sourceMappingURL=p-1830772d.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["DiwaInputDate","constructor","hostRef","this","_hasStart","_hasEnd","label","description","message","state","name","value","placeholder","disabled","required","readonly","hideLabel","compact","theme","handleInput","e","target","input","emit","handleChange","change","handleBlur","blur","handleFocus","focus","connectedCallback","el","querySelector","render","inputId","descId","msgId","h","Host","key","innerHTML","getComponentCss","class","htmlFor","id","type","undefined","readOnly","min","max","autocomplete","autoComplete","onInput","onChange","onBlur","onFocus"],"sources":["src/components/diwa-input-date/diwa-input-date.tsx"],"sourcesContent":["import { Component, Element, Event, EventEmitter, Host, Prop, State, h } from '@stencil/core';\r\nimport type { InputFieldState } from '../diwa-input/types';\r\nimport type { Theme } from '../../utils/styles';\r\nimport { getComponentCss } from './diwa-input-date-styles';\r\n\r\n@Component({\r\n tag: 'diwa-input-date',\r\n shadow: { delegatesFocus: true },\r\n})\r\nexport class DiwaInputDate {\r\n @Element() el!: HTMLElement;\r\n @State() private _hasStart = false;\r\n @State() private _hasEnd = false;\r\n\r\n @Prop() label: string = '';\r\n @Prop() description: string = '';\r\n @Prop() message: string = '';\r\n @Prop() state: InputFieldState = 'none';\r\n @Prop() name: string = '';\r\n @Prop({ mutable: true, reflect: false }) value: string = '';\r\n @Prop() placeholder: string = '';\r\n @Prop({ reflect: true }) disabled: boolean = false;\r\n @Prop({ reflect: true }) required: boolean = false;\r\n @Prop({ reflect: true }) readonly: boolean = false;\r\n @Prop() hideLabel: boolean = false;\r\n @Prop() compact: boolean = false;\r\n @Prop() autoComplete?: string;\r\n @Prop() theme: Theme = 'dark';\r\n\r\n /** ISO 8601 date string (YYYY-MM-DD) for the minimum allowed date. */\r\n @Prop() min?: string;\r\n /** ISO 8601 date string (YYYY-MM-DD) for the maximum allowed date. */\r\n @Prop() max?: string;\r\n\r\n @Event({ bubbles: true }) change!: EventEmitter<string>;\r\n @Event({ bubbles: true }) input!: EventEmitter<string>;\r\n @Event({ bubbles: false }) blur!: EventEmitter<FocusEvent>;\r\n @Event({ bubbles: false }) focus!: EventEmitter<FocusEvent>;\r\n\r\n connectedCallback(): void {\r\n this._hasStart = !!this.el.querySelector('[slot=\"start\"]');\r\n this._hasEnd = !!this.el.querySelector('[slot=\"end\"]');\r\n }\r\n\r\n private handleInput = (e: Event): void => {\r\n this.value = (e.target as HTMLInputElement).value;\r\n this.input.emit(this.value);\r\n };\r\n\r\n private handleChange = (e: Event): void => {\r\n this.value = (e.target as HTMLInputElement).value;\r\n this.change.emit(this.value);\r\n };\r\n\r\n private handleBlur = (e: FocusEvent): void => { this.blur.emit(e); };\r\n private handleFocus = (e: FocusEvent): void => { this.focus.emit(e); };\r\n\r\n render() {\r\n const inputId = 'input';\r\n const descId = 'desc';\r\n const msgId = 'msg';\r\n\r\n return (\r\n <Host data-theme={this.theme}>\r\n <style innerHTML={getComponentCss(this.state, this.disabled, this.readonly, this.compact, this._hasStart, this._hasEnd, false)} />\r\n <div class=\"root\">\r\n {!this.hideLabel && this.label && (\r\n <div class=\"label-row\">\r\n <label class=\"label\" htmlFor={inputId}>\r\n {this.label}\r\n {this.required && <span class=\"required\" aria-hidden=\"true\"> *</span>}\r\n </label>\r\n <slot name=\"label-after\" />\r\n </div>\r\n )}\r\n <div class=\"input-wrapper\">\r\n {this._hasStart && <div class=\"slot-start\"><slot name=\"start\" /></div>}\r\n <input\r\n id={inputId}\r\n class=\"input\"\r\n type=\"date\"\r\n name={this.name || undefined}\r\n value={this.value}\r\n disabled={this.disabled}\r\n required={this.required}\r\n readOnly={this.readonly}\r\n min={this.min}\r\n max={this.max}\r\n autocomplete={this.autoComplete}\r\n aria-label={this.hideLabel && this.label ? this.label : undefined}\r\n aria-invalid={this.state === 'error' ? 'true' : undefined}\r\n aria-required={this.required ? 'true' : undefined}\r\n aria-describedby={this.message ? msgId : this.description ? descId : undefined}\r\n onInput={this.handleInput}\r\n onChange={this.handleChange}\r\n onBlur={this.handleBlur}\r\n onFocus={this.handleFocus}\r\n />\r\n {this._hasEnd && <div class=\"slot-end\"><slot name=\"end\" /></div>}\r\n </div>\r\n {!this.message && this.description && (\r\n <p id={descId} class=\"description\">{this.description}</p>\r\n )}\r\n {this.message && (\r\n <p id={msgId} class=\"message\">{this.message}</p>\r\n )}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e,c as i,h as n,H as a,g as s}from"./p-ed4017f0.js";const t=(e,i,n,a)=>{const s=e==="error"?"var(--diwa-notification-error)":e==="success"?"var(--diwa-notification-success)":"var(--diwa-text-secondary)";return`\n :host {\n display: block;\n font-family: var(--diwa-font-family-base);\n }\n\n :host([hidden]) {\n display: none;\n }\n\n .root {\n display: flex;\n flex-direction: column;\n gap: var(--diwa-space-1);\n }\n\n .label {\n display: block;\n font-size: var(--diwa-font-size-base);\n font-weight: var(--diwa-font-weight-medium);\n color: var(--diwa-text-primary);\n line-height: 1.4;\n }\n\n :host([disabled]) .label {\n color: var(--diwa-text-muted);\n cursor: not-allowed;\n }\n\n .label-required {\n color: var(--diwa-notification-error);\n margin-inline-start: 2px;\n }\n\n .label-visually-hidden {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n\n .description {\n font-size: var(--diwa-font-size-sm);\n color: var(--diwa-text-secondary);\n line-height: 1.4;\n }\n\n .options {\n display: flex;\n flex-direction: ${i==="row"?"row":"column"};\n flex-wrap: wrap;\n gap: ${i==="row"?a?"var(--diwa-space-2)":"var(--diwa-space-4)":a?"var(--diwa-space-1)":"var(--diwa-space-2)"};\n }\n\n .message {\n font-size: var(--diwa-font-size-sm);\n color: ${s};\n line-height: 1.4;\n }\n\n .message[hidden] {\n display: none;\n }\n `};const d=class{constructor(n){e(this,n);this.update=i(this,"update",1);this.theme="dark";this.label="";this.description="";this.value="";this.direction="column";this.required=false;this.disabled=false;this.state="none";this.message="";this.compact=false;this.hideLabel=false;this.name=""}handleItemSelect(e){this.value=e.detail.value;this.update.emit({value:this.value});this.syncChildren()}componentDidLoad(){this.syncChildren()}componentDidUpdate(){this.syncChildren()}syncChildren(){const e=Array.from(this.host.querySelectorAll("diwa-radio-group-item"));const i=this.name||`diwa-radio-group-${Math.random().toString(36).slice(2,7)}`;e.forEach((e=>{e.checked=e.value===this.value;if(!e.name){e.name=i}e.disabled=this.disabled;e.compact=this.compact}))}render(){const e=`diwa-rg-${this.host.id||Math.random().toString(36).slice(2,7)}`;const i=this.description?`${e}-desc`:undefined;const s=this.message&&this.state!=="none"?`${e}-msg`:undefined;return n(a,{key:"32637e2660123b9ab13929e9f6bf72ecd1c62ea3","data-theme":this.theme},n("style",{key:"56e3db8486007a85e2c6c2541247f5c95ce5d000",innerHTML:t(this.state,this.direction,this.disabled,this.compact)}),n("div",{key:"2353868f8aa1d4c507e7b9a39abc80a42e43a746",class:"root",role:"radiogroup","aria-labelledby":this.label?`${e}-label`:undefined,"aria-describedby":[i,s].filter(Boolean).join(" ")||undefined,"aria-required":this.required?"true":undefined},this.label&&n("span",{key:"be82c40317e75d25bf7a301b0c558fbae3462197",id:`${e}-label`,class:`label${this.hideLabel?" label-visually-hidden":""}`},this.label,this.required&&n("span",{key:"a971a5fa7153287a91b7f5285963b5d209e90a20",class:"label-required","aria-hidden":"true"}," *")),this.description&&n("span",{key:"cc429975145668e59143f3eb8418b9e0e18bf9a7",id:i,class:"description"},this.description),n("div",{key:"df706b4c3265b81adc189299a3745d024c584622",class:"options"},n("slot",{key:"ce4b20e7f9a24885887d0b6b660da8a3a6440e25"})),n("span",{key:"84182d0942ee8b3561b943e940053da9e8f756d5",id:s,class:"message",hidden:!s},this.message)))}get host(){return s(this)}};export{d as diwa_radio_group};
|
|
2
|
-
//# sourceMappingURL=p-1d708e1e.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["getComponentCss","state","direction","_disabled","compact","messageColor","DiwaRadioGroup","constructor","hostRef","this","theme","label","description","value","required","disabled","message","hideLabel","name","handleItemSelect","event","detail","update","emit","syncChildren","componentDidLoad","componentDidUpdate","items","Array","from","host","querySelectorAll","groupName","Math","random","toString","slice","forEach","item","checked","render","id","descId","undefined","msgId","h","Host","key","innerHTML","class","role","filter","Boolean","join","hidden"],"sources":["src/components/diwa-radio-group/diwa-radio-group-styles.ts","src/components/diwa-radio-group/diwa-radio-group.tsx"],"sourcesContent":["import type { RadioGroupState, RadioGroupDirection } from './types';\r\n\r\nexport const getComponentCss = (\r\n state: RadioGroupState,\r\n direction: RadioGroupDirection,\r\n _disabled: boolean,\r\n compact: boolean,\r\n): string => {\r\n const messageColor =\r\n state === 'error'\r\n ? 'var(--diwa-notification-error)'\r\n : state === 'success'\r\n ? 'var(--diwa-notification-success)'\r\n : 'var(--diwa-text-secondary)';\r\n\r\n return `\r\n :host {\r\n display: block;\r\n font-family: var(--diwa-font-family-base);\r\n }\r\n\r\n :host([hidden]) {\r\n display: none;\r\n }\r\n\r\n .root {\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--diwa-space-1);\r\n }\r\n\r\n .label {\r\n display: block;\r\n font-size: var(--diwa-font-size-base);\r\n font-weight: var(--diwa-font-weight-medium);\r\n color: var(--diwa-text-primary);\r\n line-height: 1.4;\r\n }\r\n\r\n :host([disabled]) .label {\r\n color: var(--diwa-text-muted);\r\n cursor: not-allowed;\r\n }\r\n\r\n .label-required {\r\n color: var(--diwa-notification-error);\r\n margin-inline-start: 2px;\r\n }\r\n\r\n .label-visually-hidden {\r\n position: absolute;\r\n width: 1px;\r\n height: 1px;\r\n padding: 0;\r\n margin: -1px;\r\n overflow: hidden;\r\n clip: rect(0, 0, 0, 0);\r\n white-space: nowrap;\r\n border: 0;\r\n }\r\n\r\n .description {\r\n font-size: var(--diwa-font-size-sm);\r\n color: var(--diwa-text-secondary);\r\n line-height: 1.4;\r\n }\r\n\r\n .options {\r\n display: flex;\r\n flex-direction: ${direction === 'row' ? 'row' : 'column'};\r\n flex-wrap: wrap;\r\n gap: ${direction === 'row'\r\n ? (compact ? 'var(--diwa-space-2)' : 'var(--diwa-space-4)')\r\n : (compact ? 'var(--diwa-space-1)' : 'var(--diwa-space-2)')};\r\n }\r\n\r\n .message {\r\n font-size: var(--diwa-font-size-sm);\r\n color: ${messageColor};\r\n line-height: 1.4;\r\n }\r\n\r\n .message[hidden] {\r\n display: none;\r\n }\r\n `;\r\n};\r\n","import { Component, Element, Event, type EventEmitter, Host, Listen, Prop, h } from '@stencil/core';\r\nimport type { RadioGroupDirection, RadioGroupState, RadioGroupUpdateEventDetail } from './types';\r\nimport type { Theme } from '../../utils/styles';\r\nimport { getComponentCss } from './diwa-radio-group-styles';\r\n\r\n/**\r\n * @component diwa-radio-group\r\n *\r\n * Container for a set of `diwa-radio-group-item` children. Manages the\r\n * selected value, label, description, validation state, and layout direction.\r\n *\r\n * Usage:\r\n * <diwa-radio-group label=\"Size\" value=\"m\" onupdate={e => setValue(e.detail.value)}>\r\n * <diwa-radio-group-item value=\"s\">Small</diwa-radio-group-item>\r\n * <diwa-radio-group-item value=\"m\">Medium</diwa-radio-group-item>\r\n * <diwa-radio-group-item value=\"l\">Large</diwa-radio-group-item>\r\n * </diwa-radio-group>\r\n */\r\n@Component({\r\n tag: 'diwa-radio-group',\r\n shadow: true,\r\n})\r\nexport class DiwaRadioGroup {\r\n @Element() host!: HTMLDiwaRadioGroupElement;\r\n\r\n /** Per-component theme override. */\r\n @Prop({ reflect: true }) theme: Theme = 'dark';\r\n\r\n /** Group label rendered above the options. */\r\n @Prop() label: string = '';\r\n\r\n /** Supplementary description rendered below the label. */\r\n @Prop() description: string = '';\r\n\r\n /** Currently selected value. Synced down to child items. */\r\n @Prop({ mutable: true, reflect: true }) value: string = '';\r\n\r\n /** Layout direction for the radio options. */\r\n @Prop({ reflect: true }) direction: RadioGroupDirection = 'column';\r\n\r\n /** Whether selecting a value is required. */\r\n @Prop() required: boolean = false;\r\n\r\n /** Disables all child items. */\r\n @Prop({ reflect: true }) disabled: boolean = false;\r\n\r\n /** Validation state. */\r\n @Prop({ reflect: true }) state: RadioGroupState = 'none';\r\n\r\n /** Feedback message shown when state is error or success. */\r\n @Prop() message: string = '';\r\n\r\n /** Reduces size for denser layouts. */\r\n @Prop({ reflect: true }) compact: boolean = false;\r\n\r\n /** Hides the label visually while keeping it accessible. */\r\n @Prop({ reflect: true, attribute: 'hide-label' }) hideLabel: boolean = false;\r\n\r\n /** Native name attribute shared by all radio inputs in the group. */\r\n @Prop() name: string = '';\r\n\r\n /**\r\n * Emitted when the selected value changes.\r\n * `event.detail.value` is the newly selected value.\r\n */\r\n @Event({ bubbles: false, composed: false })\r\n update!: EventEmitter<RadioGroupUpdateEventDetail>;\r\n\r\n /** Listen for item selection bubbling up from slotted children. */\r\n @Listen('diwa-radio-select')\r\n handleItemSelect(event: CustomEvent<{ value: string }>) {\r\n this.value = event.detail.value;\r\n this.update.emit({ value: this.value });\r\n this.syncChildren();\r\n }\r\n\r\n componentDidLoad() {\r\n this.syncChildren();\r\n }\r\n\r\n componentDidUpdate() {\r\n this.syncChildren();\r\n }\r\n\r\n private syncChildren() {\r\n const items = Array.from(\r\n this.host.querySelectorAll('diwa-radio-group-item'),\r\n ) as HTMLDiwaRadioGroupItemElement[];\r\n const groupName = this.name || `diwa-radio-group-${Math.random().toString(36).slice(2, 7)}`;\r\n items.forEach((item) => {\r\n (item as any).checked = item.value === this.value;\r\n if (!(item as any).name) {\r\n (item as any).name = groupName;\r\n }\r\n (item as any).disabled = this.disabled;\r\n (item as any).compact = this.compact;\r\n });\r\n }\r\n\r\n render() {\r\n const id = `diwa-rg-${this.host.id || Math.random().toString(36).slice(2, 7)}`;\r\n const descId = this.description ? `${id}-desc` : undefined;\r\n const msgId = this.message && this.state !== 'none' ? `${id}-msg` : undefined;\r\n\r\n return (\r\n <Host data-theme={this.theme}>\r\n <style innerHTML={getComponentCss(this.state, this.direction, this.disabled, this.compact)} />\r\n <div\r\n class=\"root\"\r\n role=\"radiogroup\"\r\n aria-labelledby={this.label ? `${id}-label` : undefined}\r\n aria-describedby={[descId, msgId].filter(Boolean).join(' ') || undefined}\r\n aria-required={this.required ? 'true' : undefined}\r\n >\r\n {this.label && (\r\n <span id={`${id}-label`} class={`label${this.hideLabel ? ' label-visually-hidden' : ''}`}>\r\n {this.label}\r\n {this.required && <span class=\"label-required\" aria-hidden=\"true\"> *</span>}\r\n </span>\r\n )}\r\n {this.description && (\r\n <span id={descId} class=\"description\">\r\n {this.description}\r\n </span>\r\n )}\r\n <div class=\"options\">\r\n <slot />\r\n </div>\r\n <span id={msgId} class=\"message\" hidden={!msgId}>\r\n {this.message}\r\n </span>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"gEAEO,MAAMA,EAAkB,CAC7BC,EACAC,EACAC,EACAC,KAEA,MAAMC,EACJJ,IAAU,QACN,iCACAA,IAAU,UACR,mCACA,6BAER,MAAO,ohCAsDaC,IAAc,MAAQ,MAAQ,6CAEzCA,IAAc,MAChBE,EAAU,sBAAwB,sBAClCA,EAAU,sBAAwB,qGAK9BC,qFAOV,E,MC/DUC,EAAc,MAJ3B,WAAAC,CAAAC,G,yCAQ2BC,KAAAC,MAAe,OAGhCD,KAAAE,MAAgB,GAGhBF,KAAAG,YAAsB,GAGUH,KAAAI,MAAgB,GAG/BJ,KAAAP,UAAiC,SAGlDO,KAAAK,SAAoB,MAGHL,KAAAM,SAAoB,MAGpBN,KAAAR,MAAyB,OAG1CQ,KAAAO,QAAkB,GAGDP,KAAAL,QAAmB,MAGMK,KAAAQ,UAAqB,MAG/DR,KAAAS,KAAe,E,CAWvB,gBAAAC,CAAiBC,GACfX,KAAKI,MAAQO,EAAMC,OAAOR,MAC1BJ,KAAKa,OAAOC,KAAK,CAAEV,MAAOJ,KAAKI,QAC/BJ,KAAKe,c,CAGP,gBAAAC,GACEhB,KAAKe,c,CAGP,kBAAAE,GACEjB,KAAKe,c,CAGC,YAAAA,GACN,MAAMG,EAAQC,MAAMC,KAClBpB,KAAKqB,KAAKC,iBAAiB,0BAE7B,MAAMC,EAAYvB,KAAKS,MAAQ,oBAAoBe,KAAKC,SAASC,SAAS,IAAIC,MAAM,EAAG,KACvFT,EAAMU,SAASC,IACZA,EAAaC,QAAUD,EAAKzB,QAAUJ,KAAKI,MAC5C,IAAMyB,EAAapB,KAAM,CACtBoB,EAAapB,KAAOc,C,CAEtBM,EAAavB,SAAWN,KAAKM,SAC7BuB,EAAalC,QAAUK,KAAKL,OAAO,G,CAIxC,MAAAoC,GACE,MAAMC,EAAK,WAAWhC,KAAKqB,KAAKW,IAAMR,KAAKC,SAASC,SAAS,IAAIC,MAAM,EAAG,KAC1E,MAAMM,EAASjC,KAAKG,YAAc,GAAG6B,SAAYE,UACjD,MAAMC,EAAQnC,KAAKO,SAAWP,KAAKR,QAAU,OAAS,GAAGwC,QAAWE,UAEpE,OACEE,EAACC,EAAI,CAAAC,IAAA,wDAAatC,KAAKC,OACrBmC,EAAA,SAAAE,IAAA,2CAAOC,UAAWhD,EAAgBS,KAAKR,MAAOQ,KAAKP,UAAWO,KAAKM,SAAUN,KAAKL,WAClFyC,EAAA,OAAAE,IAAA,2CACEE,MAAM,OACNC,KAAK,aAAY,kBACAzC,KAAKE,MAAQ,GAAG8B,UAAaE,UAAS,mBACrC,CAACD,EAAQE,GAAOO,OAAOC,SAASC,KAAK,MAAQV,UAAS,gBACzDlC,KAAKK,SAAW,OAAS6B,WAEvClC,KAAKE,OACJkC,EAAA,QAAAE,IAAA,2CAAMN,GAAI,GAAGA,UAAYQ,MAAO,QAAQxC,KAAKQ,UAAY,yBAA2B,MACjFR,KAAKE,MACLF,KAAKK,UAAY+B,EAAA,QAAAE,IAAA,2CAAME,MAAM,iBAAgB,cAAa,QAAM,OAGpExC,KAAKG,aACJiC,EAAA,QAAAE,IAAA,2CAAMN,GAAIC,EAAQO,MAAM,eACrBxC,KAAKG,aAGViC,EAAA,OAAAE,IAAA,2CAAKE,MAAM,WACTJ,EAAA,QAAAE,IAAA,8CAEFF,EAAA,QAAAE,IAAA,2CAAMN,GAAIG,EAAOK,MAAM,UAAUK,QAASV,GACvCnC,KAAKO,U","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as n,h as a,H as e,g as t}from"./p-ed4017f0.js";import{g as i,a as r}from"./p-70bbb21a.js";const o=(n,a,e,t)=>`\n /* ── Host ──────────────────────────────────────────────────────────── */\n\n :host {\n display: inline-flex;\n position: relative;\n font-family: var(--diwa-font-family-base);\n outline: none;\n }\n\n :host([hidden]) {\n display: none;\n }\n\n /* ── Inner element (the real <button> or <a> in Shadow DOM) ─────────── */\n\n .inner {\n /* Layout */\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--diwa-space-2);\n\n /* Sizing defaults (md) */\n height: var(--diwa-button-height, 40px);\n padding: 0 var(--diwa-button-padding-x, 16px);\n box-sizing: border-box;\n width: 100%;\n\n /* Shape */\n border-radius: var(--diwa-button-radius, var(--diwa-radius-md));\n border: var(--diwa-border-width-thin) solid transparent;\n font-size: var(--diwa-font-size-base);\n font-weight: var(--diwa-button-font-weight, var(--diwa-font-weight-medium));\n font-family: inherit;\n line-height: 1;\n white-space: nowrap;\n text-decoration: none;\n\n /* Interaction */\n cursor: pointer;\n user-select: none;\n -webkit-font-smoothing: antialiased;\n position: relative;\n\n /* Motion */\n transition: var(--diwa-transition-colors), box-shadow var(--diwa-transition-fast);\n\n /* Reset native button styles */\n appearance: none;\n -webkit-appearance: none;\n }\n\n /* ── Focus ring ─────────────────────────────────────────────────────── */\n\n ${i(".inner")}\n\n /* ── Variant: primary ───────────────────────────────────────────────── */\n\n :host([variant="primary"]) .inner {\n background-color: var(--diwa-button-bg, var(--diwa-accent));\n color: var(--diwa-button-color, var(--diwa-text-inverse));\n border-color: transparent;\n }\n\n :host([variant="primary"]) .inner:hover:not(:disabled) {\n background-color: var(--diwa-button-bg-hover, var(--diwa-accent-hover));\n }\n\n :host([variant="primary"]) .inner:active:not(:disabled) {\n background-color: var(--diwa-accent-active);\n transform: translateY(1px);\n }\n\n /* ── Variant: secondary ─────────────────────────────────────────────── */\n\n :host([variant="secondary"]) .inner {\n background-color: transparent;\n color: var(--diwa-accent);\n border-color: var(--diwa-accent);\n }\n\n :host([variant="secondary"]) .inner:hover:not(:disabled) {\n background-color: var(--diwa-accent-bg);\n border-color: var(--diwa-accent-hover);\n }\n\n :host([variant="secondary"]) .inner:active:not(:disabled) {\n background-color: var(--diwa-accent-muted);\n transform: translateY(1px);\n }\n\n /* ── Variant: ghost ─────────────────────────────────────────────────── */\n\n :host([variant="ghost"]) .inner {\n background-color: transparent;\n color: var(--diwa-text-secondary);\n border-color: transparent;\n }\n\n :host([variant="ghost"]) .inner:hover:not(:disabled) {\n background-color: var(--diwa-bg-hover);\n color: var(--diwa-text-primary);\n }\n\n :host([variant="ghost"]) .inner:active:not(:disabled) {\n background-color: var(--diwa-bg-active);\n transform: translateY(1px);\n }\n\n /* ── Variant: danger ────────────────────────────────────────────────── */\n\n :host([variant="danger"]) .inner {\n background-color: var(--diwa-danger);\n color: var(--diwa-text-inverse);\n border-color: transparent;\n }\n\n :host([variant="danger"]) .inner:hover:not(:disabled) {\n background-color: var(--diwa-danger-hover);\n }\n\n :host([variant="danger"]) .inner:active:not(:disabled) {\n background-color: var(--diwa-danger-active);\n transform: translateY(1px);\n }\n\n /* ── Size: sm ───────────────────────────────────────────────────────── */\n\n :host([size="sm"]) .inner {\n height: var(--diwa-button-height-sm, 32px);\n padding: 0 var(--diwa-button-padding-x-sm, 10px);\n font-size: var(--diwa-font-size-md);\n }\n\n /* ── Size: lg ───────────────────────────────────────────────────────── */\n\n :host([size="lg"]) .inner {\n height: var(--diwa-button-height-lg, 44px);\n padding: 0 var(--diwa-space-10);\n font-size: var(--diwa-font-size-lg);\n }\n\n /* ── State: disabled ────────────────────────────────────────────────── */\n\n :host([disabled]) .inner,\n .inner:disabled {\n opacity: var(--diwa-opacity-disabled);\n cursor: not-allowed;\n pointer-events: none;\n }\n\n /* ── State: loading ─────────────────────────────────────────────────── */\n\n :host([loading]) .inner {\n cursor: wait;\n pointer-events: none;\n }\n\n /* ── Spinner ────────────────────────────────────────────────────────── */\n\n .spinner {\n width: var(--diwa-spinner-size-sm);\n height: var(--diwa-spinner-size-sm);\n flex-shrink: 0;\n border: var(--diwa-border-width-base) solid currentColor;\n border-top-color: transparent;\n border-radius: 50%;\n animation: diwa-spin var(--diwa-spinner-duration, 0.7s) linear infinite;\n }\n\n @keyframes diwa-spin {\n to { transform: rotate(360deg); }\n }\n\n /* ── Icon slots ─────────────────────────────────────────────────────── */\n\n .icon-start,\n .icon-end {\n display: contents;\n flex-shrink: 0;\n line-height: 0;\n }\n\n /* ── Label: visually hidden (sr-only / icon-only mode) ──────────────── */\n\n .label--hidden {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n }\n\n /* ── Icon-only mode ─────────────────────────────────────────────────── */\n\n :host([hide-label]) .inner {\n width: var(--diwa-button-height, 40px);\n padding: 0;\n }\n\n :host([hide-label][size="sm"]) .inner {\n width: var(--diwa-button-height-sm, 32px);\n }\n\n :host([hide-label][size="lg"]) .inner {\n width: var(--diwa-button-height-lg, 44px);\n }\n\n /* ── Reduced motion ─────────────────────────────────────────────────── */\n\n ${r(".inner",".label",".spinner")}\n`;const d=(n,a,e,t)=>{const i={};if(e){i["aria-label"]=e}if(a){i["aria-busy"]="true"}if(t&&(n||a)){i["aria-disabled"]="true"}return i};const s=class{constructor(a){n(this,a);this.theme="dark";this.variant="primary";this.size="md";this.type="button";this.disabled=false;this.loading=false;this.hideLabel=false;this.icon="none";this.handleClick=n=>{if(!this.isInteractive){n.preventDefault();n.stopPropagation()}}}get isInteractive(){return!this.disabled&&!this.loading}get iconSize(){return this.size==="sm"?16:this.size==="lg"?24:20}render(){const n=!!this.href;const t=n?"a":"button";const i=d(this.disabled,this.loading,this.label,n);const r=Object.assign({class:"inner",onClick:this.handleClick},i);const s=n?{href:this.href,target:this.target,rel:this.target==="_blank"?"noopener noreferrer":undefined,tabIndex:this.disabled||this.loading?-1:undefined}:{type:this.type,name:this.name,value:this.value,disabled:this.disabled||this.loading};return a(e,{key:"9182fd6e2a9ccce76a67596d99c5ef080dbdc219","data-theme":this.theme,role:n?undefined:"button","aria-disabled":(this.disabled||this.loading)&&n?"true":undefined},a("style",{key:"349d3b828df53f57b23192854929f921a479146a",innerHTML:o()}),a(t,Object.assign({key:"ffc8b04d99d508c5de77d07757ab362c57420132"},r,s,{part:"base"}),this.loading&&a("span",{key:"226b226efdd671e9494b6db3c83d09e609a08ae6",class:"spinner","aria-hidden":"true",part:"spinner"}),a("span",{key:"571b34bc8dd3e712bb0702d35283c99c57dee34e",class:"icon-start",part:"icon-start","aria-hidden":"true"},this.icon!=="none"&&!this.loading&&a("diwa-icon",{key:"b4304efd1423d517b5aee0a079b6f17993700398",name:this.icon,size:this.iconSize}),a("slot",{key:"1262b1411d2e2faadbabdf6a05cdfa6863b4f53d",name:"icon-start"})),a("span",{key:"6da505ff94ceb539c2f5c063b0aa364ef62c0923",class:`label${this.hideLabel?" label--hidden":""}`,part:"label"},a("slot",{key:"055841a5c87793d21d7f2f02ce895326889fa887"})),a("span",{key:"d6f33edb88b49bde1ca50968e3a4f6ac45b2ae77",class:"icon-end",part:"icon-end","aria-hidden":"true"},a("slot",{key:"6239635e5cbbfed9a064095b66fb77a466d77aa8",name:"icon-end"}))))}static get delegatesFocus(){return true}get host(){return t(this)}};export{s as diwa_button};
|
|
2
|
-
//# sourceMappingURL=p-230692aa.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["getComponentCss","_variant","_size","_disabled","_loading","getFocusStyle","getReducedMotionStyle","getButtonAriaAttributes","disabled","loading","label","isLink","attrs","DiwaButton","constructor","hostRef","this","theme","variant","size","type","hideLabel","icon","handleClick","e","isInteractive","preventDefault","stopPropagation","iconSize","render","href","Tag","ariaAttrs","commonProps","Object","assign","class","onClick","buttonProps","target","rel","undefined","tabIndex","name","value","h","Host","key","role","innerHTML","part"],"sources":["src/components/diwa-button/diwa-button-styles.ts","src/components/diwa-button/diwa-button-utils.ts","src/components/diwa-button/diwa-button.tsx"],"sourcesContent":["/**\r\n * diwa-button-styles.ts\r\n * ======================\r\n * CSS-in-JS style function for <diwa-button>.\r\n *\r\n * Returns a complete, scoped CSS string injected into the component's Shadow DOM\r\n * via a <style innerHTML={...}> element in render(). This follows the shared\n * Diwa component styling architecture used across web components.\n *\r\n * All colour values use CSS custom properties (--diwa-*) — raw values are never\r\n * hardcoded. This means theming is entirely handled by the token cascade: when the\r\n * host element carries data-theme=\"light\", the [data-theme=\"light\"] overrides\r\n * defined in app.css cascade into the Shadow DOM via custom property inheritance.\r\n *\r\n * The function accepts the full prop surface for future conditional optimisation\r\n * (e.g. generating only variant- or size-specific CSS to reduce payload), but\r\n * currently outputs the complete ruleset regardless of prop values.\r\n */\r\n\r\nimport type { ButtonSize, ButtonVariant } from './types';\r\nimport { getFocusStyle, getReducedMotionStyle } from '../../utils/styles';\r\n\r\n/**\r\n * Generates scoped CSS for the <diwa-button> shadow tree.\r\n *\r\n * @param _variant — current ButtonVariant (reserved for conditional CSS)\r\n * @param _size — current ButtonSize (reserved for conditional CSS)\r\n * @param _disabled — disabled state (reserved for conditional CSS)\r\n * @param _loading — loading state (reserved for conditional CSS)\r\n */\r\nexport const getComponentCss = (\r\n _variant: ButtonVariant,\r\n _size: ButtonSize,\r\n _disabled: boolean,\r\n _loading: boolean,\r\n): string => `\r\n /* ── Host ──────────────────────────────────────────────────────────── */\r\n\r\n :host {\r\n display: inline-flex;\r\n position: relative;\r\n font-family: var(--diwa-font-family-base);\r\n outline: none;\r\n }\r\n\r\n :host([hidden]) {\r\n display: none;\r\n }\r\n\r\n /* ── Inner element (the real <button> or <a> in Shadow DOM) ─────────── */\r\n\r\n .inner {\r\n /* Layout */\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: var(--diwa-space-2);\r\n\r\n /* Sizing defaults (md) */\r\n height: var(--diwa-button-height, 40px);\r\n padding: 0 var(--diwa-button-padding-x, 16px);\r\n box-sizing: border-box;\r\n width: 100%;\r\n\r\n /* Shape */\r\n border-radius: var(--diwa-button-radius, var(--diwa-radius-md));\r\n border: var(--diwa-border-width-thin) solid transparent;\r\n font-size: var(--diwa-font-size-base);\r\n font-weight: var(--diwa-button-font-weight, var(--diwa-font-weight-medium));\r\n font-family: inherit;\r\n line-height: 1;\r\n white-space: nowrap;\r\n text-decoration: none;\r\n\r\n /* Interaction */\r\n cursor: pointer;\r\n user-select: none;\r\n -webkit-font-smoothing: antialiased;\r\n position: relative;\r\n\r\n /* Motion */\r\n transition: var(--diwa-transition-colors), box-shadow var(--diwa-transition-fast);\r\n\r\n /* Reset native button styles */\r\n appearance: none;\r\n -webkit-appearance: none;\r\n }\r\n\r\n /* ── Focus ring ─────────────────────────────────────────────────────── */\r\n\r\n ${getFocusStyle('.inner')}\r\n\r\n /* ── Variant: primary ───────────────────────────────────────────────── */\r\n\r\n :host([variant=\"primary\"]) .inner {\r\n background-color: var(--diwa-button-bg, var(--diwa-accent));\r\n color: var(--diwa-button-color, var(--diwa-text-inverse));\r\n border-color: transparent;\r\n }\r\n\r\n :host([variant=\"primary\"]) .inner:hover:not(:disabled) {\r\n background-color: var(--diwa-button-bg-hover, var(--diwa-accent-hover));\r\n }\r\n\r\n :host([variant=\"primary\"]) .inner:active:not(:disabled) {\r\n background-color: var(--diwa-accent-active);\r\n transform: translateY(1px);\r\n }\r\n\r\n /* ── Variant: secondary ─────────────────────────────────────────────── */\r\n\r\n :host([variant=\"secondary\"]) .inner {\r\n background-color: transparent;\r\n color: var(--diwa-accent);\r\n border-color: var(--diwa-accent);\r\n }\r\n\r\n :host([variant=\"secondary\"]) .inner:hover:not(:disabled) {\r\n background-color: var(--diwa-accent-bg);\r\n border-color: var(--diwa-accent-hover);\r\n }\r\n\r\n :host([variant=\"secondary\"]) .inner:active:not(:disabled) {\r\n background-color: var(--diwa-accent-muted);\r\n transform: translateY(1px);\r\n }\r\n\r\n /* ── Variant: ghost ─────────────────────────────────────────────────── */\r\n\r\n :host([variant=\"ghost\"]) .inner {\r\n background-color: transparent;\r\n color: var(--diwa-text-secondary);\r\n border-color: transparent;\r\n }\r\n\r\n :host([variant=\"ghost\"]) .inner:hover:not(:disabled) {\r\n background-color: var(--diwa-bg-hover);\r\n color: var(--diwa-text-primary);\r\n }\r\n\r\n :host([variant=\"ghost\"]) .inner:active:not(:disabled) {\r\n background-color: var(--diwa-bg-active);\r\n transform: translateY(1px);\r\n }\r\n\r\n /* ── Variant: danger ────────────────────────────────────────────────── */\r\n\r\n :host([variant=\"danger\"]) .inner {\r\n background-color: var(--diwa-danger);\r\n color: var(--diwa-text-inverse);\r\n border-color: transparent;\r\n }\r\n\r\n :host([variant=\"danger\"]) .inner:hover:not(:disabled) {\r\n background-color: var(--diwa-danger-hover);\r\n }\r\n\r\n :host([variant=\"danger\"]) .inner:active:not(:disabled) {\r\n background-color: var(--diwa-danger-active);\r\n transform: translateY(1px);\r\n }\r\n\r\n /* ── Size: sm ───────────────────────────────────────────────────────── */\r\n\r\n :host([size=\"sm\"]) .inner {\r\n height: var(--diwa-button-height-sm, 32px);\r\n padding: 0 var(--diwa-button-padding-x-sm, 10px);\r\n font-size: var(--diwa-font-size-md);\r\n }\r\n\r\n /* ── Size: lg ───────────────────────────────────────────────────────── */\r\n\r\n :host([size=\"lg\"]) .inner {\r\n height: var(--diwa-button-height-lg, 44px);\r\n padding: 0 var(--diwa-space-10);\r\n font-size: var(--diwa-font-size-lg);\r\n }\r\n\r\n /* ── State: disabled ────────────────────────────────────────────────── */\r\n\r\n :host([disabled]) .inner,\r\n .inner:disabled {\r\n opacity: var(--diwa-opacity-disabled);\r\n cursor: not-allowed;\r\n pointer-events: none;\r\n }\r\n\r\n /* ── State: loading ─────────────────────────────────────────────────── */\r\n\r\n :host([loading]) .inner {\r\n cursor: wait;\r\n pointer-events: none;\r\n }\r\n\r\n /* ── Spinner ────────────────────────────────────────────────────────── */\r\n\r\n .spinner {\r\n width: var(--diwa-spinner-size-sm);\r\n height: var(--diwa-spinner-size-sm);\r\n flex-shrink: 0;\r\n border: var(--diwa-border-width-base) solid currentColor;\r\n border-top-color: transparent;\r\n border-radius: 50%;\r\n animation: diwa-spin var(--diwa-spinner-duration, 0.7s) linear infinite;\r\n }\r\n\r\n @keyframes diwa-spin {\r\n to { transform: rotate(360deg); }\r\n }\r\n\r\n /* ── Icon slots ─────────────────────────────────────────────────────── */\r\n\r\n .icon-start,\r\n .icon-end {\r\n display: contents;\r\n flex-shrink: 0;\r\n line-height: 0;\r\n }\r\n\r\n /* ── Label: visually hidden (sr-only / icon-only mode) ──────────────── */\r\n\r\n .label--hidden {\r\n border: 0;\r\n clip: rect(0, 0, 0, 0);\r\n height: 1px;\r\n margin: -1px;\r\n overflow: hidden;\r\n padding: 0;\r\n position: absolute;\r\n white-space: nowrap;\r\n width: 1px;\r\n }\r\n\r\n /* ── Icon-only mode ─────────────────────────────────────────────────── */\r\n\r\n :host([hide-label]) .inner {\r\n width: var(--diwa-button-height, 40px);\r\n padding: 0;\r\n }\r\n\r\n :host([hide-label][size=\"sm\"]) .inner {\r\n width: var(--diwa-button-height-sm, 32px);\r\n }\r\n\r\n :host([hide-label][size=\"lg\"]) .inner {\r\n width: var(--diwa-button-height-lg, 44px);\r\n }\r\n\r\n /* ── Reduced motion ─────────────────────────────────────────────────── */\r\n\r\n ${getReducedMotionStyle('.inner', '.label', '.spinner')}\r\n`;\r\n","/**\r\n * diwa-button-utils.ts\r\n * =====================\r\n * Utility types and helper functions for <diwa-button>.\r\n *\r\n * Mirrors the PDS pattern used in:\r\n * packages/components/src/components/button/button-utils.ts\r\n *\r\n * Separating ARIA logic into a dedicated utility file keeps the main component\r\n * lean and makes the accessibility mapping independently testable.\r\n */\r\n\r\n/**\r\n * ARIA attributes applied to the inner interactive element (<button> or <a>).\r\n * All keys are optional — only set when semantically appropriate.\r\n */\r\nexport interface ButtonAriaAttributes {\r\n /** Accessible text label — overrides slot content for AT. */\r\n 'aria-label'?: string;\r\n /** Signals that the button is performing an async operation. */\r\n 'aria-busy'?: 'true';\r\n /** Used on <a> elements (which have no native disabled attribute). */\r\n 'aria-disabled'?: 'true';\r\n}\r\n\r\n/**\r\n * Assembles ARIA attributes for the inner interactive element.\r\n *\r\n * Decision table:\r\n * - `aria-label` → set when `label` prop is provided (icon-only or supplemental name)\r\n * - `aria-busy` → set when `loading` is true (announces async activity to AT)\r\n * - `aria-disabled` → set when disabled **and** the element is an <a> (links have no\r\n * native disabled — we simulate it with aria + tabIndex=-1)\r\n *\r\n * For native <button>: disabled/loading are expressed via the `disabled` HTML attribute\r\n * (handled in the calling component's render), so `aria-disabled` is not needed there.\r\n *\r\n * @param disabled — whether the button interaction is blocked\r\n * @param loading — whether the button is performing an async operation\r\n * @param label — accessible label string (optional)\r\n * @param isLink — true when the component renders as <a> (href is provided)\r\n */\r\nexport const getButtonAriaAttributes = (\r\n disabled: boolean,\r\n loading: boolean,\r\n label: string | undefined,\r\n isLink: boolean,\r\n): ButtonAriaAttributes => {\r\n const attrs: ButtonAriaAttributes = {};\r\n\r\n if (label) {\r\n attrs['aria-label'] = label;\r\n }\r\n\r\n if (loading) {\r\n attrs['aria-busy'] = 'true';\r\n }\r\n\r\n // <a> elements have no native `disabled` attribute — express it via ARIA.\r\n if (isLink && (disabled || loading)) {\r\n attrs['aria-disabled'] = 'true';\r\n }\r\n\r\n return attrs;\r\n};\r\n","import { Component, Element, Host, Prop, h } from \"@stencil/core\";\r\nimport type { ButtonSize, ButtonType, ButtonVariant } from \"./types\";\r\nimport type { Theme } from \"../../utils/styles\";\r\nimport { getComponentCss } from \"./diwa-button-styles\";\r\nimport { getButtonAriaAttributes } from \"./diwa-button-utils\";\r\n\r\n/**\r\n * @component diwa-button\r\n *\r\n * A fully encapsulated, accessible button primitive.\r\n * Renders as a native <button> (or <a> when `href` is supplied).\r\n *\r\n * Design token override API (set on :root or any ancestor):\r\n * --diwa-button-bg Background color (primary variant default)\r\n * --diwa-button-bg-hover Hover background\r\n * --diwa-button-color Foreground / text color\r\n * --diwa-button-radius Border radius\r\n * --diwa-button-height Height for md size\r\n * --diwa-button-height-sm Height for sm size\r\n * --diwa-button-height-lg Height for lg size\r\n * --diwa-button-padding-x Horizontal padding for md/lg\r\n * --diwa-button-padding-x-sm Horizontal padding for sm\r\n *\r\n * Usage:\r\n * <diwa-button variant=\"primary\">Get Started</diwa-button>\r\n * <diwa-button variant=\"secondary\" size=\"sm\" disabled>Cancel</diwa-button>\r\n * <diwa-button href=\"/dashboard\" target=\"_blank\">Open Panel</diwa-button>\r\n *\r\n * @slot default — Button label content (text, icons, or mixed)\r\n */\r\n@Component({\r\n tag: \"diwa-button\",\r\n /**\r\n * No styleUrl — styles are injected dynamically via getComponentCss().\r\n * This follows the PDS CSS-in-JS pattern, enabling per-component theming\r\n * and keeping style logic co-located with the component.\r\n *\r\n * shadow.delegatesFocus = true:\r\n * Forwards focus from the host element (<diwa-button>) to the first\r\n * focusable element inside the Shadow DOM (<button> or <a>).\r\n * This ensures keyboard navigation and :focus-visible work correctly\r\n * when host-app code calls .focus() on the custom element.\r\n */\r\n shadow: { delegatesFocus: true },\r\n})\r\nexport class DiwaButton {\r\n @Element() host!: HTMLDiwaButtonElement;\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Props — each @Prop generates a corresponding argType in Storybook\r\n // and an HTML attribute on the custom element.\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n /**\r\n * Per-component theme override.\r\n *\r\n * Setting this reflects data-theme onto the host element, causing the light/dark\r\n * token overrides in app.css to cascade into the Shadow DOM automatically.\r\n * Mirrors the `theme` prop on every PDS component.\r\n */\r\n @Prop({ reflect: true }) theme: Theme = \"dark\";\r\n\r\n /** Visual style variant. */\r\n @Prop({ reflect: true }) variant: ButtonVariant = \"primary\";\r\n\r\n /** Size tier — controls height and padding. */\r\n @Prop({ reflect: true }) size: ButtonSize = \"md\";\r\n\r\n /**\r\n * Native button type. Only applies when rendered as <button>\r\n * (i.e., no `href` prop is set).\r\n */\r\n @Prop() type: ButtonType = \"button\";\r\n\r\n /**\r\n * Disabled state. Blocks all pointer and keyboard interaction.\r\n * When rendered as <a>, sets aria-disabled instead of disabled\r\n * (the `disabled` attribute is not valid on anchor elements).\r\n */\r\n @Prop({ reflect: true }) disabled: boolean = false;\r\n\r\n /**\r\n * Loading state. Shows an inline spinner, disables the button,\r\n * and sets aria-busy=\"true\" to communicate async activity to\r\n * screen readers.\r\n */\r\n @Prop({ reflect: true }) loading: boolean = false;\r\n\r\n /**\r\n * When set, the button renders as an <a> element (link semantics).\r\n * Pair with `target` for external links.\r\n */\r\n @Prop() href?: string;\r\n\r\n /** Link target — only meaningful when `href` is set. */\r\n @Prop() target?: \"_blank\" | \"_self\" | \"_parent\" | \"_top\";\r\n\r\n /** Native button name — submitted with form data. */\r\n @Prop() name?: string;\r\n\r\n /** Native button value — submitted with form data. */\r\n @Prop() value?: string;\r\n\r\n /**\r\n * Accessible label. Use when the visible slot content is not\r\n * descriptive enough (e.g., icon-only buttons).\r\n */\r\n @Prop() label?: string;\r\n\r\n /**\r\n * When `true`, the default label slot is visually hidden so the button\r\n * renders as a compact square (icon-only mode). The slot text is kept in\r\n * the DOM for screen-reader accessible-name calculation.\r\n *\r\n * For best accessibility, always pair with the `label` prop **or** ensure\r\n * the default slot contains descriptive text, so the button has a name.\r\n *\r\n * Usage:\r\n * <diwa-button hide-label label=\"Save\">\r\n * <svg slot=\"icon-start\">…</svg>\r\n * </diwa-button>\r\n */\r\n @Prop({ reflect: true }) hideLabel: boolean = false;\r\n\r\n /**\r\n * Lucide icon name in kebab-case (e.g. `\"star\"`, `\"arrow-right\"`), or `'none'`\r\n * to show no icon. When set to any value other than `'none'`, renders a\r\n * `<diwa-icon>` in the leading (icon-start) position.\r\n *\r\n * The `icon-start` slot still works alongside this prop — the prop-rendered\r\n * icon comes first, followed by any slotted content.\r\n */\r\n @Prop() icon: string = 'none';\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Private helpers\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n private get isInteractive(): boolean {\r\n return !this.disabled && !this.loading;\r\n }\r\n\r\n private get iconSize(): number {\r\n return this.size === 'sm' ? 16 : this.size === 'lg' ? 24 : 20;\r\n }\r\n\r\n private handleClick = (e: MouseEvent): void => {\r\n if (!this.isInteractive) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n // When interactive, allow the native click to retarget to the host element.\r\n // Framework wrappers expose it as onClick (React) / @click (Vue) / (click) (Angular).\r\n };\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Render\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n render() {\r\n /**\r\n * Render as <a> when href is provided (link semantics).\r\n * Render as <button> for all interactive / form scenarios.\r\n */\r\n const isLink = !!this.href;\r\n const Tag = isLink ? \"a\" : \"button\";\r\n\r\n // Consolidate all ARIA attributes via the utility — mirrors PDS getButtonAriaAttributes()\r\n const ariaAttrs = getButtonAriaAttributes(this.disabled, this.loading, this.label, isLink);\r\n\r\n const commonProps = {\r\n class: \"inner\",\r\n onClick: this.handleClick,\r\n ...ariaAttrs,\r\n };\r\n\r\n const buttonProps = isLink\r\n ? {\r\n href: this.href,\r\n target: this.target,\r\n rel: this.target === \"_blank\" ? \"noopener noreferrer\" : undefined,\r\n // Disabled links have no native mechanism — suppress tab stop too\r\n tabIndex: this.disabled || this.loading ? -1 : undefined,\r\n }\r\n : {\r\n type: this.type,\r\n name: this.name,\r\n value: this.value,\r\n disabled: this.disabled || this.loading,\r\n };\r\n\r\n return (\r\n /**\r\n * <Host> renders the outer custom element tag itself.\r\n *\r\n * data-theme is set from the `theme` prop so that the [data-theme=\"light\"]\r\n * CSS variable overrides in app.css cascade into this Shadow DOM tree via\r\n * custom property inheritance — no colour values are hardcoded here.\r\n *\r\n * Reflecting `variant` and `size` as attributes allows CSS consumers to\r\n * target the host from outside: diwa-button[variant=\"primary\"] { ... }\r\n *\r\n * The part=\"base\" exposes internals for ::part() in host-app stylesheets.\r\n */\r\n <Host\r\n data-theme={this.theme}\r\n role={isLink ? undefined : \"button\"}\r\n aria-disabled={\r\n (this.disabled || this.loading) && isLink ? \"true\" : undefined\r\n }\r\n >\r\n {/* CSS-in-JS styles — injected into Shadow DOM, scoped automatically */}\r\n <style innerHTML={getComponentCss(this.variant, this.size, this.disabled, this.loading)} />\r\n\r\n <Tag\r\n {...commonProps}\r\n {...buttonProps}\r\n part=\"base\" /* ::part(base) hook for consumers */\r\n >\r\n {/* Loading spinner — visually hidden from AT via aria-hidden */}\r\n {this.loading && (\r\n <span class=\"spinner\" aria-hidden=\"true\" part=\"spinner\" />\r\n )}\r\n\r\n {/* Leading icon slot — decorative; aria-hidden keeps AT focused on label */}\r\n <span class=\"icon-start\" part=\"icon-start\" aria-hidden=\"true\">\r\n {this.icon !== 'none' && !this.loading && <diwa-icon name={this.icon} size={this.iconSize} />}\r\n <slot name=\"icon-start\" />\r\n </span>\r\n\r\n {/* Slot — content projection. Text, icons, or mixed content. */}\r\n <span class={`label${this.hideLabel ? \" label--hidden\" : \"\"}`} part=\"label\">\r\n <slot />\r\n </span>\r\n\r\n {/* Trailing icon slot */}\r\n <span class=\"icon-end\" part=\"icon-end\" aria-hidden=\"true\">\r\n <slot name=\"icon-end\" />\r\n </span>\r\n </Tag>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"oGA8BO,MAAMA,EAAkB,CAC7BC,EACAC,EACAC,EACAC,IACW,48CAuDTC,EAAc,k6IAgKdC,EAAsB,SAAU,SAAU,gBChNvC,MAAMC,EAA0B,CACrCC,EACAC,EACAC,EACAC,KAEA,MAAMC,EAA8B,GAEpC,GAAIF,EAAO,CACTE,EAAM,cAAgBF,C,CAGxB,GAAID,EAAS,CACXG,EAAM,aAAe,M,CAIvB,GAAID,IAAWH,GAAYC,GAAU,CACnCG,EAAM,iBAAmB,M,CAG3B,OAAOA,CAAK,E,MClBDC,EAAU,MAfvB,WAAAC,CAAAC,G,UA8B2BC,KAAAC,MAAe,OAGfD,KAAAE,QAAyB,UAGzBF,KAAAG,KAAmB,KAMpCH,KAAAI,KAAmB,SAOFJ,KAAAR,SAAoB,MAOpBQ,KAAAP,QAAmB,MAoCnBO,KAAAK,UAAqB,MAUtCL,KAAAM,KAAe,OAcfN,KAAAO,YAAeC,IACrB,IAAKR,KAAKS,cAAe,CACvBD,EAAEE,iBACFF,EAAEG,iB,GAXN,iBAAYF,GACV,OAAQT,KAAKR,WAAaQ,KAAKP,O,CAGjC,YAAYmB,GACV,OAAOZ,KAAKG,OAAS,KAAO,GAAKH,KAAKG,OAAS,KAAO,GAAK,E,CAgB7D,MAAAU,GAKE,MAAMlB,IAAWK,KAAKc,KACtB,MAAMC,EAAMpB,EAAS,IAAM,SAG3B,MAAMqB,EAAYzB,EAAwBS,KAAKR,SAAUQ,KAAKP,QAASO,KAAKN,MAAOC,GAEnF,MAAMsB,EAAWC,OAAAC,OAAA,CACfC,MAAO,QACPC,QAASrB,KAAKO,aACXS,GAGL,MAAMM,EAAc3B,EAChB,CACEmB,KAAMd,KAAKc,KACXS,OAAQvB,KAAKuB,OACbC,IAAKxB,KAAKuB,SAAW,SAAW,sBAAwBE,UAExDC,SAAU1B,KAAKR,UAAYQ,KAAKP,SAAW,EAAIgC,WAEjD,CACErB,KAAMJ,KAAKI,KACXuB,KAAM3B,KAAK2B,KACXC,MAAO5B,KAAK4B,MACZpC,SAAUQ,KAAKR,UAAYQ,KAAKP,SAGtC,OAaEoC,EAACC,EAAI,CAAAC,IAAA,wDACS/B,KAAKC,MACjB+B,KAAMrC,EAAS8B,UAAY,SAAQ,iBAEhCzB,KAAKR,UAAYQ,KAAKP,UAAYE,EAAS,OAAS8B,WAIvDI,EAAA,SAAAE,IAAA,2CAAOE,UAAWjD,MAElB6C,EAACd,EAAGG,OAAAC,OAAA,CAAAY,IAAA,4CACEd,EACAK,EAAW,CACfY,KAAK,SAGJlC,KAAKP,SACJoC,EAAA,QAAAE,IAAA,2CAAMX,MAAM,UAAS,cAAa,OAAOc,KAAK,YAIhDL,EAAA,QAAAE,IAAA,2CAAMX,MAAM,aAAac,KAAK,aAAY,cAAa,QACpDlC,KAAKM,OAAS,SAAWN,KAAKP,SAAWoC,EAAA,aAAAE,IAAA,2CAAWJ,KAAM3B,KAAKM,KAAMH,KAAMH,KAAKY,WACjFiB,EAAA,QAAAE,IAAA,2CAAMJ,KAAK,gBAIbE,EAAA,QAAAE,IAAA,2CAAMX,MAAO,QAAQpB,KAAKK,UAAY,iBAAmB,KAAM6B,KAAK,SAClEL,EAAA,QAAAE,IAAA,8CAIFF,EAAA,QAAAE,IAAA,2CAAMX,MAAM,WAAWc,KAAK,WAAU,cAAa,QACjDL,EAAA,QAAAE,IAAA,2CAAMJ,KAAK,e","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as i,c as n,f as t,h as e,H as a,g as r}from"./p-ed4017f0.js";import{g as s,a as o}from"./p-70bbb21a.js";const d=(i,n,t,e,a=false)=>`\n /* ── Host ──────────────────────────────────────────────────────────── */\n\n :host {\n display: block;\n position: relative;\n width: 100%;\n min-width: 0;\n font-family: var(--diwa-font-family-base);\n outline: none;\n }\n\n :host([hidden]) {\n display: none;\n }\n\n /* ── Label ──────────────────────────────────────────────────────────── */\n\n .label {\n display: block;\n margin-bottom: var(--diwa-space-1);\n font-size: var(--diwa-font-size-sm);\n font-weight: var(--diwa-font-weight-semibold);\n color: var(--diwa-text-secondary);\n line-height: var(--diwa-line-height-normal);\n cursor: default;\n }\n\n :host([hide-label]) .label {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n }\n\n .label__required {\n color: var(--diwa-notification-error);\n font-weight: var(--diwa-font-weight-semibold);\n margin-left: var(--diwa-space-1);\n }\n\n /* ── Description ────────────────────────────────────────────────────── */\n\n .description {\n display: block;\n margin-bottom: var(--diwa-space-2);\n font-size: var(--diwa-font-size-sm);\n color: var(--diwa-text-secondary);\n line-height: var(--diwa-line-height-normal);\n }\n\n /* ── Trigger button ─────────────────────────────────────────────────── */\n\n .trigger {\n display: flex;\n align-items: center;\n width: 100%;\n min-height: var(--diwa-input-height, var(--diwa-touch-target-min-size, 44px));\n padding: 0 var(--diwa-space-3);\n box-sizing: border-box;\n gap: var(--diwa-space-2);\n\n background: var(--diwa-input-bg, var(--diwa-bg-input));\n border: var(--diwa-border-width-thin) solid var(--diwa-input-border);\n border-radius: var(--diwa-input-radius, var(--diwa-radius-md));\n\n font-size: var(--diwa-font-size-base);\n font-weight: var(--diwa-font-weight-normal);\n font-family: inherit;\n color: var(--diwa-text-primary);\n text-align: left;\n line-height: 1;\n\n cursor: pointer;\n user-select: none;\n -webkit-font-smoothing: antialiased;\n\n transition: border-color var(--diwa-transition-fast), background var(--diwa-transition-fast);\n appearance: none;\n -webkit-appearance: none;\n }\n\n @media (hover: hover) and (pointer: fine) {\n :host(:not([disabled])) .trigger:hover {\n border-color: var(--diwa-border-hover);\n }\n }\n\n ${i&&!a?".trigger { border-color: var(--diwa-border-focus); border-radius: var(--diwa-input-radius, var(--diwa-radius-md)) var(--diwa-input-radius, var(--diwa-radius-md)) 0 0; }":""}\n ${i&&a?".trigger { border-color: var(--diwa-border-focus); border-radius: 0 0 var(--diwa-input-radius, var(--diwa-radius-md)) var(--diwa-input-radius, var(--diwa-radius-md)); }":""}\n\n /* ── Focus ring on trigger itself (not when a shadow descendant is focused) ─ */\n\n ${s(".trigger")}\n\n /* ── Selected text ──────────────────────────────────────────────────── */\n\n .trigger__value {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .trigger__placeholder {\n color: var(--diwa-text-secondary);\n }\n\n /* ── Reset button ───────────────────────────────────────────────────── */\n\n .trigger__reset {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--diwa-touch-target-min-size, 44px);\n height: var(--diwa-touch-target-min-size, 44px);\n padding: 0;\n border: none;\n background: none;\n color: var(--diwa-text-secondary);\n cursor: pointer;\n border-radius: var(--diwa-radius-sm);\n line-height: 0;\n font-size: var(--diwa-font-size-base);\n }\n\n @media (hover: hover) and (pointer: fine) {\n .trigger__reset:hover {\n color: var(--diwa-text-primary);\n }\n }\n\n .trigger__reset:focus-visible {\n outline: var(--diwa-focus-ring-width) solid var(--diwa-border-focus);\n outline-offset: -2px;\n }\n\n .trigger__reset:focus:not(:focus-visible) {\n outline: none;\n }\n\n /* ── Chevron icon ───────────────────────────────────────────────────── */\n\n .trigger__chevron {\n flex-shrink: 0;\n width: var(--diwa-icon-size-md);\n height: var(--diwa-icon-size-md);\n color: var(--diwa-text-secondary);\n transition: transform var(--diwa-transition-fast);\n ${i?"transform: rotate(180deg);":""}\n }\n\n .trigger__chevron svg {\n display: block;\n width: 100%;\n height: 100%;\n }\n\n /* ── Dropdown panel ─────────────────────────────────────────────────── */\n\n .dropdown {\n position: absolute;\n left: 0;\n right: 0;\n z-index: var(--diwa-z-dropdown);\n background-color: var(--diwa-bg-elevated);\n border: var(--diwa-border-width-thin) solid var(--diwa-border-focus);\n border-top: none;\n border-radius: 0 0 var(--diwa-input-radius, var(--diwa-radius-md)) var(--diwa-input-radius, var(--diwa-radius-md));\n overflow: hidden;\n box-shadow: var(--diwa-shadow-lg);\n display: ${i?"block":"none"};\n }\n\n .dropdown--up {\n top: auto;\n bottom: 100%;\n border-top: var(--diwa-border-width-thin) solid var(--diwa-border-focus);\n border-bottom: none;\n border-radius: var(--diwa-input-radius, var(--diwa-radius-md)) var(--diwa-input-radius, var(--diwa-radius-md)) 0 0;\n margin-bottom: -1px;\n }\n\n /* ── Filter input ───────────────────────────────────────────────────── */\n\n .filter {\n padding: var(--diwa-space-2) var(--diwa-space-2) var(--diwa-space-1);\n border-bottom: var(--diwa-border-width-thin) solid var(--diwa-input-border);\n }\n\n .filter__input {\n width: 100%;\n box-sizing: border-box;\n padding: var(--diwa-space-2) var(--diwa-space-3);\n background: var(--diwa-input-bg, var(--diwa-bg-input));\n border: var(--diwa-border-width-thin) solid var(--diwa-input-border);\n border-radius: var(--diwa-radius-sm);\n color: var(--diwa-text-primary);\n font-size: var(--diwa-font-size-sm);\n font-family: inherit;\n outline: none;\n transition: border-color var(--diwa-transition-fast);\n }\n\n .filter__input::placeholder {\n color: var(--diwa-text-secondary);\n }\n\n .filter__input:focus-visible {\n outline: var(--diwa-focus-ring-width) solid var(--diwa-border-focus);\n outline-offset: var(--diwa-focus-ring-offset);\n }\n\n .filter__input:focus:not(:focus-visible) {\n outline: none;\n }\n\n /* ── Options list ───────────────────────────────────────────────────── */\n\n .options {\n max-height: var(--diwa-select-dropdown-max-height);\n overflow-y: auto;\n padding: var(--diwa-space-1);\n }\n\n .options::-webkit-scrollbar {\n width: var(--diwa-scrollbar-width);\n }\n\n .options::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .options::-webkit-scrollbar-thumb {\n background-color: var(--diwa-border);\n border-radius: var(--diwa-radius-sm);\n }\n\n /* ── Compact ────────────────────────────────────────────────────────── */\n\n :host([compact]) .trigger {\n min-height: var(--diwa-touch-target-min-size-compact, 32px);\n font-size: var(--diwa-font-size-md);\n padding: 0 var(--diwa-space-2);\n }\n\n /* ── States: error / success ────────────────────────────────────────── */\n\n :host([state="error"]) .trigger {\n border-color: var(--diwa-notification-error);\n }\n\n :host([state="success"]) .trigger {\n border-color: var(--diwa-notification-success);\n }\n\n /* ── Message ────────────────────────────────────────────────────────── */\n\n .message {\n display: block;\n margin-top: var(--diwa-space-1);\n font-size: var(--diwa-font-size-sm);\n line-height: var(--diwa-line-height-normal);\n color: var(--diwa-text-secondary);\n }\n\n :host([state="error"]) .message {\n color: var(--diwa-notification-error);\n }\n\n :host([state="success"]) .message {\n color: var(--diwa-notification-success);\n }\n\n /* ── Disabled ───────────────────────────────────────────────────────── */\n\n :host([disabled]) .trigger {\n opacity: var(--diwa-opacity-disabled);\n cursor: not-allowed;\n pointer-events: none;\n }\n\n :host([disabled]) .label {\n opacity: var(--diwa-opacity-disabled);\n }\n\n /* ── Reduced motion ─────────────────────────────────────────────────── */\n\n ${o(".trigger",".trigger__chevron",".filter__input")}\n`;let h=0;const l=class{constructor(e){i(this,e);this.change=n(this,"change",7);this.toggle=n(this,"toggle",3);this.blur=n(this,"blur",3);this.theme="dark";this.name="";this.value=[];this.state="none";this.hideLabel=false;this.disabled=false;this.required=false;this.compact=false;this.dropdownDirection="auto";this.isOpen=false;this.filterText="";this.hasFilterResults=true;this.dropdownClass="dropdown";this.internalId=`diwa-ms-${++h}`;this.options=[];this.highlightedIndex=-1;this.hasCustomFilterSlot=false;this.hasCustomSelectedSlot=false;this.onClickOutside=i=>{if(!this.isOpen)return;const n=i.composedPath();if(!n.includes(this.host)){this.isOpen=false;this.blur.emit()}};this.onTriggerClick=()=>{if(this.disabled)return;this.isOpen=!this.isOpen};this.onTriggerKeyDown=i=>{if(this.disabled)return;if(!this.isOpen){if(i.key==="ArrowDown"||i.key==="ArrowUp"||i.key==="Enter"||i.key===" "){i.preventDefault();this.isOpen=true}return}switch(i.key){case"Escape":case"Tab":{i.preventDefault();this.isOpen=false;this.triggerEl.focus();break}case"ArrowDown":{i.preventDefault();const n=this.getVisibleOptions();this.highlightedIndex=Math.min(this.highlightedIndex+1,n.length-1);this.applyHighlight();break}case"ArrowUp":{i.preventDefault();this.highlightedIndex=Math.max(this.highlightedIndex-1,0);this.applyHighlight();break}case"Home":{i.preventDefault();this.highlightedIndex=0;this.applyHighlight();break}case"End":{i.preventDefault();const n=this.getVisibleOptions();this.highlightedIndex=n.length-1;this.applyHighlight();break}case"Enter":case" ":{i.preventDefault();const n=this.getVisibleOptions()[this.highlightedIndex];if(n&&!n.disabled){n.dispatchEvent(new MouseEvent("click",{bubbles:true,composed:true}))}break}}};this.onFilterInput=i=>{var n;const t=i.target.value.toLowerCase();this.filterText=t;let e=false;for(const i of this.options){const a=((n=i.textContent)!==null&&n!==void 0?n:"").toLowerCase();const r=a.includes(t);i.style.display=r?"":"none";if(r)e=true}this.hasFilterResults=e;this.highlightedIndex=0;this.applyHighlight()};this.onResetClick=i=>{i.stopPropagation();this.value=[];this.syncSelectionFromValue();this.change.emit({name:this.name,value:[]});t(this.host);this.triggerEl.focus()}}onThemeChange(){this.syncChildThemes()}onCompactChange(){this.syncChildCompact()}onValueChange(){this.syncSelectionFromValue()}onIsOpenChange(i){this.toggle.emit({open:i});if(i){this.updateDropdownDirection();this.highlightedIndex=this.getFirstHighlightIndex();this.applyHighlight();requestAnimationFrame((()=>{var i;if(!this.hasCustomFilterSlot){(i=this.filterInputEl)===null||i===void 0?void 0:i.focus()}}))}else{this.clearHighlight();this.highlightedIndex=-1;if(!this.hasCustomFilterSlot){this.resetFilter()}}}connectedCallback(){document.addEventListener("mousedown",this.onClickOutside,true)}disconnectedCallback(){document.removeEventListener("mousedown",this.onClickOutside,true)}componentWillLoad(){this.hasCustomFilterSlot=this.host.querySelector('[slot="filter"]')!==null;this.hasCustomSelectedSlot=this.host.querySelector('[slot="selected"]')!==null}componentDidLoad(){this.collectOptions();this.syncSelectionFromValue();this.syncChildThemes();this.syncChildCompact()}async open(){this.isOpen=true}async close(){this.isOpen=false}onOptionUpdate(i){i.stopPropagation();const{value:n,selected:e}=i.detail;if(e){if(!this.value.includes(n)){this.value=[...this.value,n]}}else{this.value=this.value.filter((i=>i!==n))}this.syncSelectionFromValue();this.change.emit({name:this.name,value:this.value});t(this.host)}onSlotChange(){this.collectOptions();this.syncSelectionFromValue();this.syncChildThemes();this.syncChildCompact()}collectOptions(){this.options=Array.from(this.host.querySelectorAll("diwa-multi-select-option"))}syncSelectionFromValue(){const i=new Set(this.value);for(const n of this.options){const e=i.has(n.value);if(n.selected!==e){n.selected=e;t(n)}}}syncChildThemes(){for(const i of this.options){if(i.theme!==this.theme){i.theme=this.theme;t(i)}}}syncChildCompact(){for(const i of this.options){if(i.compact!==this.compact){i.compact=this.compact;t(i)}}}getVisibleOptions(){return this.options.filter((i=>!i.disabled&&i.style.display!=="none"))}getFirstHighlightIndex(){const i=this.getVisibleOptions();const n=i.findIndex((i=>i.selected));return n>=0?n:0}applyHighlight(){const i=this.getVisibleOptions();i.forEach(((i,n)=>{i.highlighted=n===this.highlightedIndex}))}clearHighlight(){for(const i of this.options){if(i.highlighted)i.highlighted=false}this.highlightedIndex=-1}updateDropdownDirection(){if(this.dropdownDirection!=="auto"){this.dropdownClass=this.dropdownDirection==="up"?"dropdown dropdown--up":"dropdown";return}const i=this.triggerEl.getBoundingClientRect();const n=window.innerHeight-i.bottom;this.dropdownClass=n<260?"dropdown dropdown--up":"dropdown"}resetFilter(){this.filterText="";if(this.filterInputEl)this.filterInputEl.value="";this.hasFilterResults=true;for(const i of this.options){i.style.display=""}}get selectedLabels(){return this.options.filter((i=>this.value.includes(i.value))).map((i=>{var n;return((n=i.textContent)!==null&&n!==void 0?n:"").trim()})).filter(Boolean).join(", ")}render(){const i=`${this.internalId}-label`;const n=`${this.internalId}-listbox`;const t=`${this.internalId}-hint`;const r=!!this.message&&this.state!=="none";const s=this.value.length>0;return e(a,{key:"d1870eb6329fdced85adc9165c58e7060370c5ac","data-theme":this.theme},e("style",{key:"f7c5db3277aab64cdfb0457133ed1d6da7a345c7",innerHTML:d(this.isOpen,this.disabled,this.state,this.compact,this.dropdownClass.includes("--up"))}),(this.label||this.host.querySelector('[slot="label"]'))&&e("span",{key:"07d54b9aff11c23e21f656b0d2d045bdd0998e60",class:"label",id:i,part:"label"},e("slot",{key:"8bf102a8b193fd0273726309615ea722fcce0b14",name:"label"},this.label),this.required&&e("span",{key:"07ac8efaae3785897ca2537961acb4bded9e8d40",class:"label__required","aria-hidden":"true"},"*")),(this.description||this.host.querySelector('[slot="description"]'))&&e("span",{key:"9f105c5c644b0d9c5c8f560e2bc7f28b76adc944",class:"description",part:"description"},e("slot",{key:"f90b49ec602ed3b50ecbdadd51860d08a71878cb",name:"description"},this.description)),e("div",{key:"32b0d40cfd3ff3704a2133ddb49b19f2e65fea0c",class:"trigger",role:"combobox","aria-haspopup":"listbox","aria-expanded":this.isOpen?"true":"false","aria-controls":n,"aria-labelledby":this.label?i:undefined,"aria-required":this.required?"true":undefined,"aria-invalid":this.state==="error"?"true":undefined,"aria-describedby":r?t:undefined,tabIndex:this.disabled?-1:0,onClick:this.onTriggerClick,onKeyDown:this.onTriggerKeyDown,ref:i=>this.triggerEl=i,part:"trigger"},e("span",{key:"746b9ef493c0d06da003282805cb5dfee6526761",class:`trigger__value${!s?" trigger__placeholder":""}`,part:"value"},this.hasCustomSelectedSlot?e("slot",{name:"selected"}):s?this.selectedLabels:this.label||"Select options"),s&&e("button",{key:"482962199782f1b35ee38cded409ca99592a314d",class:"trigger__reset",type:"button","aria-label":"Reset selection",onClick:this.onResetClick,onKeyDown:i=>{if(i.key==="Tab")this.isOpen=false},part:"reset"},"✕"),e("span",{key:"d045c0e7d87ae202687241504a0544047e68f986",class:"trigger__chevron","aria-hidden":"true",part:"chevron"},e("svg",{key:"987e79ae7ef8f316dd50513e3cc6b910596fdc33",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e("path",{key:"8c38ce669650bdb480c242a9c7ea0aa2a1926207",d:"M4 6L8 10L12 6",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})))),e("div",{key:"bdeeca7bb9bb54446af37bbf83a64bdacac380cb",class:this.dropdownClass,role:"dialog","aria-label":this.label,"aria-hidden":this.isOpen?undefined:"true",part:"dropdown"},this.hasCustomFilterSlot?e("div",{class:"filter"},e("slot",{name:"filter"})):e("div",{class:"filter"},e("input",{class:"filter__input",type:"text",placeholder:"Filter options…","aria-label":"Filter options",autocomplete:"off",value:this.filterText,onInput:this.onFilterInput,onKeyDown:this.onTriggerKeyDown,ref:i=>this.filterInputEl=i,part:"filter-input"})),e("div",{key:"4073abc69ecf2e4204aae127fc07662d4f6d663a",class:"options",id:n,role:"listbox","aria-label":this.label,"aria-multiselectable":"true",part:"options"},!this.hasFilterResults&&e("div",{key:"b4415ca3b2e043bab5a01835bb6097c15ecada81",class:"no-results",role:"alert","aria-live":"polite"},"No results found"),e("slot",{key:"9362401ed428d356b65d4506d38ea23470b8ab0c",name:"options-status"}),e("slot",{key:"3aa042ec8c156478053fa1dd36c7cecf09ff2151",onSlotchange:()=>this.onSlotChange()}))),r&&e("span",{key:"07652c69895dbbd71f4cab8fa05122a74ddc2be5",id:t,class:"message",part:"message","aria-live":this.state==="error"?"polite":undefined},e("slot",{key:"9e0180e1cc8f2757371a3a10e1e12d236e4c07ed",name:"message"},this.message)))}static get delegatesFocus(){return true}get host(){return r(this)}static get watchers(){return{theme:["onThemeChange"],compact:["onCompactChange"],value:["onValueChange"],isOpen:["onIsOpenChange"]}}};export{l as diwa_multi_select};
|
|
2
|
-
//# sourceMappingURL=p-238da82a.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["getComponentCss","isOpen","_disabled","_state","_compact","isUp","getFocusStyle","getReducedMotionStyle","multiSelectIdCounter","DiwaMultiSelect","constructor","hostRef","this","theme","name","value","state","hideLabel","disabled","required","compact","dropdownDirection","filterText","hasFilterResults","dropdownClass","internalId","options","highlightedIndex","hasCustomFilterSlot","hasCustomSelectedSlot","onClickOutside","e","path","composedPath","includes","host","blur","emit","onTriggerClick","onTriggerKeyDown","key","preventDefault","triggerEl","focus","visible","getVisibleOptions","Math","min","length","applyHighlight","max","vis","current","dispatchEvent","MouseEvent","bubbles","composed","onFilterInput","term","target","toLowerCase","anyVisible","opt","text","_a","textContent","match","style","display","onResetClick","stopPropagation","syncSelectionFromValue","change","forceUpdate","onThemeChange","syncChildThemes","onCompactChange","syncChildCompact","onValueChange","onIsOpenChange","open","toggle","updateDropdownDirection","getFirstHighlightIndex","requestAnimationFrame","filterInputEl","clearHighlight","resetFilter","connectedCallback","document","addEventListener","disconnectedCallback","removeEventListener","componentWillLoad","querySelector","componentDidLoad","collectOptions","close","onOptionUpdate","selected","detail","filter","v","onSlotChange","Array","from","querySelectorAll","valueSet","Set","shouldBeSelected","has","o","firstSelected","findIndex","forEach","i","highlighted","rect","getBoundingClientRect","spaceBelow","window","innerHeight","bottom","selectedLabels","map","trim","Boolean","join","render","labelId","listboxId","hintId","hasMessage","message","hasValue","h","Host","innerHTML","label","class","id","part","description","role","undefined","tabIndex","onClick","onKeyDown","ref","el","type","viewBox","fill","xmlns","d","stroke","placeholder","autocomplete","onInput","onSlotchange"],"sources":["src/components/diwa-multi-select/diwa-multi-select-styles.ts","src/components/diwa-multi-select/diwa-multi-select.tsx"],"sourcesContent":["import { getFocusStyle, getReducedMotionStyle } from '../../utils/styles';\nimport type { MultiSelectState } from './types';\r\n\r\nexport const getComponentCss = (\r\n isOpen: boolean,\r\n _disabled: boolean,\r\n _state: MultiSelectState,\r\n _compact: boolean,\r\n isUp: boolean = false,\r\n): string => `\r\n /* ── Host ──────────────────────────────────────────────────────────── */\r\n\r\n :host {\r\n display: block;\r\n position: relative;\r\n width: 100%;\r\n min-width: 0;\r\n font-family: var(--diwa-font-family-base);\r\n outline: none;\r\n }\r\n\r\n :host([hidden]) {\r\n display: none;\r\n }\r\n\r\n /* ── Label ──────────────────────────────────────────────────────────── */\r\n\r\n .label {\r\n display: block;\r\n margin-bottom: var(--diwa-space-1);\r\n font-size: var(--diwa-font-size-sm);\r\n font-weight: var(--diwa-font-weight-semibold);\r\n color: var(--diwa-text-secondary);\r\n line-height: var(--diwa-line-height-normal);\r\n cursor: default;\r\n }\r\n\r\n :host([hide-label]) .label {\r\n border: 0;\r\n clip: rect(0, 0, 0, 0);\r\n height: 1px;\r\n margin: -1px;\r\n overflow: hidden;\r\n padding: 0;\r\n position: absolute;\r\n white-space: nowrap;\r\n width: 1px;\r\n }\r\n\r\n .label__required {\r\n color: var(--diwa-notification-error);\r\n font-weight: var(--diwa-font-weight-semibold);\r\n margin-left: var(--diwa-space-1);\r\n }\r\n\r\n /* ── Description ────────────────────────────────────────────────────── */\r\n\r\n .description {\r\n display: block;\r\n margin-bottom: var(--diwa-space-2);\r\n font-size: var(--diwa-font-size-sm);\r\n color: var(--diwa-text-secondary);\r\n line-height: var(--diwa-line-height-normal);\r\n }\r\n\r\n /* ── Trigger button ─────────────────────────────────────────────────── */\r\n\r\n .trigger {\n display: flex;\r\n align-items: center;\r\n width: 100%;\r\n min-height: var(--diwa-input-height, var(--diwa-touch-target-min-size, 44px));\n padding: 0 var(--diwa-space-3);\r\n box-sizing: border-box;\r\n gap: var(--diwa-space-2);\r\n\r\n background: var(--diwa-input-bg, var(--diwa-bg-input));\r\n border: var(--diwa-border-width-thin) solid var(--diwa-input-border);\r\n border-radius: var(--diwa-input-radius, var(--diwa-radius-md));\r\n\r\n font-size: var(--diwa-font-size-base);\r\n font-weight: var(--diwa-font-weight-normal);\r\n font-family: inherit;\r\n color: var(--diwa-text-primary);\r\n text-align: left;\r\n line-height: 1;\r\n\r\n cursor: pointer;\r\n user-select: none;\r\n -webkit-font-smoothing: antialiased;\r\n\r\n transition: border-color var(--diwa-transition-fast), background var(--diwa-transition-fast);\r\n appearance: none;\r\n -webkit-appearance: none;\r\n }\r\n\r\n @media (hover: hover) and (pointer: fine) {\n :host(:not([disabled])) .trigger:hover {\n border-color: var(--diwa-border-hover);\n }\n }\n\r\n ${isOpen && !isUp ? '.trigger { border-color: var(--diwa-border-focus); border-radius: var(--diwa-input-radius, var(--diwa-radius-md)) var(--diwa-input-radius, var(--diwa-radius-md)) 0 0; }' : ''}\r\n ${isOpen && isUp ? '.trigger { border-color: var(--diwa-border-focus); border-radius: 0 0 var(--diwa-input-radius, var(--diwa-radius-md)) var(--diwa-input-radius, var(--diwa-radius-md)); }' : ''}\r\n\r\n /* ── Focus ring on trigger itself (not when a shadow descendant is focused) ─ */\r\n\r\n ${getFocusStyle('.trigger')}\n\r\n /* ── Selected text ──────────────────────────────────────────────────── */\r\n\r\n .trigger__value {\r\n flex: 1;\r\n min-width: 0;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n white-space: nowrap;\r\n }\r\n\r\n .trigger__placeholder {\r\n color: var(--diwa-text-secondary);\r\n }\r\n\r\n /* ── Reset button ───────────────────────────────────────────────────── */\r\n\r\n .trigger__reset {\n flex-shrink: 0;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--diwa-touch-target-min-size, 44px);\n height: var(--diwa-touch-target-min-size, 44px);\n padding: 0;\r\n border: none;\r\n background: none;\r\n color: var(--diwa-text-secondary);\r\n cursor: pointer;\r\n border-radius: var(--diwa-radius-sm);\r\n line-height: 0;\r\n font-size: var(--diwa-font-size-base);\r\n }\n\n @media (hover: hover) and (pointer: fine) {\n .trigger__reset:hover {\n color: var(--diwa-text-primary);\n }\n }\n\n .trigger__reset:focus-visible {\n outline: var(--diwa-focus-ring-width) solid var(--diwa-border-focus);\n outline-offset: -2px;\n }\n\n .trigger__reset:focus:not(:focus-visible) {\n outline: none;\n }\n\r\n /* ── Chevron icon ───────────────────────────────────────────────────── */\r\n\r\n .trigger__chevron {\r\n flex-shrink: 0;\r\n width: var(--diwa-icon-size-md);\r\n height: var(--diwa-icon-size-md);\r\n color: var(--diwa-text-secondary);\r\n transition: transform var(--diwa-transition-fast);\r\n ${isOpen ? 'transform: rotate(180deg);' : ''}\r\n }\r\n\r\n .trigger__chevron svg {\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n /* ── Dropdown panel ─────────────────────────────────────────────────── */\r\n\r\n .dropdown {\r\n position: absolute;\r\n left: 0;\r\n right: 0;\r\n z-index: var(--diwa-z-dropdown);\r\n background-color: var(--diwa-bg-elevated);\r\n border: var(--diwa-border-width-thin) solid var(--diwa-border-focus);\r\n border-top: none;\r\n border-radius: 0 0 var(--diwa-input-radius, var(--diwa-radius-md)) var(--diwa-input-radius, var(--diwa-radius-md));\r\n overflow: hidden;\r\n box-shadow: var(--diwa-shadow-lg);\r\n display: ${isOpen ? 'block' : 'none'};\r\n }\r\n\r\n .dropdown--up {\r\n top: auto;\r\n bottom: 100%;\r\n border-top: var(--diwa-border-width-thin) solid var(--diwa-border-focus);\r\n border-bottom: none;\r\n border-radius: var(--diwa-input-radius, var(--diwa-radius-md)) var(--diwa-input-radius, var(--diwa-radius-md)) 0 0;\r\n margin-bottom: -1px;\r\n }\r\n\r\n /* ── Filter input ───────────────────────────────────────────────────── */\r\n\r\n .filter {\r\n padding: var(--diwa-space-2) var(--diwa-space-2) var(--diwa-space-1);\r\n border-bottom: var(--diwa-border-width-thin) solid var(--diwa-input-border);\r\n }\r\n\r\n .filter__input {\r\n width: 100%;\r\n box-sizing: border-box;\r\n padding: var(--diwa-space-2) var(--diwa-space-3);\r\n background: var(--diwa-input-bg, var(--diwa-bg-input));\r\n border: var(--diwa-border-width-thin) solid var(--diwa-input-border);\r\n border-radius: var(--diwa-radius-sm);\r\n color: var(--diwa-text-primary);\r\n font-size: var(--diwa-font-size-sm);\r\n font-family: inherit;\r\n outline: none;\r\n transition: border-color var(--diwa-transition-fast);\r\n }\r\n\r\n .filter__input::placeholder {\n color: var(--diwa-text-secondary);\n }\n\n .filter__input:focus-visible {\n outline: var(--diwa-focus-ring-width) solid var(--diwa-border-focus);\n outline-offset: var(--diwa-focus-ring-offset);\n }\n\n .filter__input:focus:not(:focus-visible) {\n outline: none;\n }\n\r\n /* ── Options list ───────────────────────────────────────────────────── */\r\n\r\n .options {\r\n max-height: var(--diwa-select-dropdown-max-height);\r\n overflow-y: auto;\r\n padding: var(--diwa-space-1);\r\n }\r\n\r\n .options::-webkit-scrollbar {\r\n width: var(--diwa-scrollbar-width);\r\n }\r\n\r\n .options::-webkit-scrollbar-track {\r\n background: transparent;\r\n }\r\n\r\n .options::-webkit-scrollbar-thumb {\r\n background-color: var(--diwa-border);\r\n border-radius: var(--diwa-radius-sm);\r\n }\r\n\r\n /* ── Compact ────────────────────────────────────────────────────────── */\r\n\r\n :host([compact]) .trigger {\n min-height: var(--diwa-touch-target-min-size-compact, 32px);\n font-size: var(--diwa-font-size-md);\n padding: 0 var(--diwa-space-2);\n }\n\r\n /* ── States: error / success ────────────────────────────────────────── */\r\n\r\n :host([state=\"error\"]) .trigger {\r\n border-color: var(--diwa-notification-error);\r\n }\r\n\r\n :host([state=\"success\"]) .trigger {\r\n border-color: var(--diwa-notification-success);\r\n }\r\n\r\n /* ── Message ────────────────────────────────────────────────────────── */\r\n\r\n .message {\r\n display: block;\r\n margin-top: var(--diwa-space-1);\r\n font-size: var(--diwa-font-size-sm);\r\n line-height: var(--diwa-line-height-normal);\r\n color: var(--diwa-text-secondary);\r\n }\r\n\r\n :host([state=\"error\"]) .message {\r\n color: var(--diwa-notification-error);\r\n }\r\n\r\n :host([state=\"success\"]) .message {\r\n color: var(--diwa-notification-success);\r\n }\r\n\r\n /* ── Disabled ───────────────────────────────────────────────────────── */\r\n\r\n :host([disabled]) .trigger {\r\n opacity: var(--diwa-opacity-disabled);\r\n cursor: not-allowed;\r\n pointer-events: none;\r\n }\r\n\r\n :host([disabled]) .label {\r\n opacity: var(--diwa-opacity-disabled);\r\n }\r\n\r\n /* ── Reduced motion ─────────────────────────────────────────────────── */\r\n\r\n ${getReducedMotionStyle('.trigger', '.trigger__chevron', '.filter__input')}\r\n`;\r\n\r\n\r\n","import {\r\n Component,\r\n Element,\r\n Event,\r\n type EventEmitter,\r\n Host,\r\n Listen,\r\n Method,\r\n Prop,\r\n State,\r\n Watch,\r\n forceUpdate,\r\n h,\r\n} from '@stencil/core';\r\nimport type {\r\n MultiSelectChangeEventDetail,\r\n MultiSelectDropdownDirection,\r\n MultiSelectState,\r\n MultiSelectTheme,\r\n MultiSelectToggleEventDetail,\r\n} from './types';\r\nimport { getComponentCss } from './diwa-multi-select-styles';\r\n\r\n/** Module-level counter for unique IDs. */\r\nlet multiSelectIdCounter = 0;\r\n\r\n/**\r\n * @component diwa-multi-select\r\n *\r\n * A fully accessible multi-select dropdown with built-in text filter,\r\n * keyboard navigation, and form integration.\r\n *\r\n * Based on the Diwa multi-select API contract.\n *\r\n * Design token override API:\r\n * --diwa-multi-select-height Trigger button height (default 40px)\r\n * --diwa-multi-select-height-sm Trigger height when compact (default 32px)\r\n *\r\n * Usage:\r\n * <diwa-multi-select name=\"fruits\" label=\"Fruits\">\r\n * <diwa-multi-select-option value=\"apple\">Apple</diwa-multi-select-option>\r\n * <diwa-multi-select-option value=\"banana\">Banana</diwa-multi-select-option>\r\n * </diwa-multi-select>\r\n *\r\n * @slot default — diwa-multi-select-option elements\r\n * @slot label — Custom label content (overrides the label prop)\r\n * @slot description — Custom description content\r\n * @slot message — Custom message content\r\n * @slot selected — Custom selected-value display in the trigger button\r\n * @slot filter — Custom filter input; disables the built-in filter\r\n * @slot options-status — Loading / no-results / error content for async patterns\r\n */\r\n@Component({\r\n tag: 'diwa-multi-select',\r\n shadow: { delegatesFocus: true },\r\n})\r\nexport class DiwaMultiSelect {\r\n @Element() host!: HTMLElement;\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Props\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n /** Theme — cascades down to child options. */\r\n @Prop({ reflect: true }) theme: MultiSelectTheme = 'dark';\r\n\r\n /** Visible label text. */\r\n @Prop() label?: string;\r\n\r\n /** Optional description shown below the label. */\r\n @Prop() description?: string;\r\n\r\n /** HTML name attribute — identifies the field in form submissions. */\r\n @Prop() name: string = '';\r\n\r\n /** Currently selected values. Mutable — updated on user interaction. */\r\n @Prop({ mutable: true }) value: string[] = [];\r\n\r\n /** Validation state. */\r\n @Prop({ reflect: true }) state: MultiSelectState = 'none';\r\n\r\n /** Helper / validation message shown below the trigger. */\r\n @Prop() message?: string;\r\n\r\n /** Hides the label visually while keeping it accessible. */\r\n @Prop({ reflect: true, attribute: 'hide-label' }) hideLabel: boolean = false;\r\n\r\n /** Disables interaction. */\r\n @Prop({ reflect: true }) disabled: boolean = false;\r\n\r\n /** Marks the field as required. */\r\n @Prop() required: boolean = false;\r\n\r\n /** Compact variant — reduces the trigger height. */\r\n @Prop({ reflect: true }) compact: boolean = false;\r\n\r\n /**\r\n * Preferred direction for the dropdown panel.\r\n * `'auto'` detects viewport space and flips upward if needed.\r\n */\r\n @Prop() dropdownDirection: MultiSelectDropdownDirection = 'auto';\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Events\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n /** Emitted when the selection changes. */\r\n @Event({ bubbles: true })\r\n change!: EventEmitter<MultiSelectChangeEventDetail>;\r\n\r\n /** Emitted when the dropdown opens or closes. */\r\n @Event({ bubbles: false })\r\n toggle!: EventEmitter<MultiSelectToggleEventDetail>;\r\n\r\n /** Emitted when the component loses focus (dropdown closes via click-outside). */\r\n @Event({ bubbles: false })\r\n blur!: EventEmitter<void>;\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Internal state\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n @State() private isOpen: boolean = false;\r\n @State() private filterText: string = '';\r\n @State() private hasFilterResults: boolean = true;\r\n @State() private dropdownClass: string = 'dropdown';\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Private refs / tracking\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n private internalId: string = `diwa-ms-${++multiSelectIdCounter}`;\r\n private triggerEl!: HTMLDivElement;\r\n private filterInputEl?: HTMLInputElement;\r\n private options: HTMLDiwaMultiSelectOptionElement[] = [];\r\n private highlightedIndex: number = -1;\r\n private hasCustomFilterSlot: boolean = false;\r\n private hasCustomSelectedSlot: boolean = false;\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Watchers\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n @Watch('theme')\r\n onThemeChange(): void {\r\n this.syncChildThemes();\r\n }\r\n\r\n @Watch('compact')\r\n onCompactChange(): void {\r\n this.syncChildCompact();\r\n }\r\n\r\n @Watch('value')\r\n onValueChange(): void {\r\n this.syncSelectionFromValue();\r\n }\r\n\r\n @Watch('isOpen')\r\n onIsOpenChange(open: boolean): void {\r\n this.toggle.emit({ open });\r\n if (open) {\r\n this.updateDropdownDirection();\r\n // Move highlight to first selected option, or first option\r\n this.highlightedIndex = this.getFirstHighlightIndex();\r\n this.applyHighlight();\r\n // Focus filter when opening\r\n requestAnimationFrame(() => {\r\n if (!this.hasCustomFilterSlot) {\r\n this.filterInputEl?.focus();\r\n }\r\n });\r\n } else {\r\n this.clearHighlight();\r\n this.highlightedIndex = -1;\r\n if (!this.hasCustomFilterSlot) {\r\n this.resetFilter();\r\n }\r\n }\r\n }\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Lifecycle\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n connectedCallback(): void {\r\n document.addEventListener('mousedown', this.onClickOutside, true);\r\n }\r\n\r\n disconnectedCallback(): void {\r\n document.removeEventListener('mousedown', this.onClickOutside, true);\r\n }\r\n\r\n componentWillLoad(): void {\r\n this.hasCustomFilterSlot = this.host.querySelector('[slot=\"filter\"]') !== null;\r\n this.hasCustomSelectedSlot = this.host.querySelector('[slot=\"selected\"]') !== null;\r\n }\r\n\r\n componentDidLoad(): void {\r\n this.collectOptions();\r\n this.syncSelectionFromValue();\r\n this.syncChildThemes();\r\n this.syncChildCompact();\r\n }\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Public methods\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n /** Programmatically opens the dropdown. */\r\n @Method()\r\n async open(): Promise<void> {\r\n this.isOpen = true;\r\n }\r\n\r\n /** Programmatically closes the dropdown. */\r\n @Method()\r\n async close(): Promise<void> {\r\n this.isOpen = false;\r\n }\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Event listeners\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n @Listen('diwaMultiSelectOptionUpdate')\r\n onOptionUpdate(e: CustomEvent<{ value: string; selected: boolean }>): void {\r\n e.stopPropagation();\r\n const { value, selected } = e.detail;\r\n if (selected) {\r\n if (!this.value.includes(value)) {\r\n this.value = [...this.value, value];\r\n }\r\n } else {\r\n this.value = this.value.filter((v) => v !== value);\r\n }\r\n this.syncSelectionFromValue();\r\n this.change.emit({ name: this.name, value: this.value });\r\n forceUpdate(this.host);\r\n }\r\n\r\n @Listen('slotchange')\r\n onSlotChange(): void {\r\n this.collectOptions();\r\n this.syncSelectionFromValue();\r\n this.syncChildThemes();\r\n this.syncChildCompact();\r\n }\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Private helpers\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n private collectOptions(): void {\r\n this.options = Array.from(\r\n this.host.querySelectorAll<HTMLDiwaMultiSelectOptionElement>('diwa-multi-select-option'),\r\n );\r\n }\r\n\r\n private syncSelectionFromValue(): void {\r\n const valueSet = new Set(this.value);\r\n for (const opt of this.options) {\r\n const shouldBeSelected = valueSet.has(opt.value);\r\n if (opt.selected !== shouldBeSelected) {\r\n opt.selected = shouldBeSelected;\r\n forceUpdate(opt);\r\n }\r\n }\r\n }\r\n\r\n private syncChildThemes(): void {\r\n for (const opt of this.options) {\r\n if (opt.theme !== this.theme) {\r\n opt.theme = this.theme;\r\n forceUpdate(opt);\r\n }\r\n }\r\n }\r\n\r\n private syncChildCompact(): void {\r\n for (const opt of this.options) {\r\n if (opt.compact !== this.compact) {\r\n opt.compact = this.compact;\r\n forceUpdate(opt);\r\n }\r\n }\r\n }\r\n\r\n private getVisibleOptions(): HTMLDiwaMultiSelectOptionElement[] {\r\n return this.options.filter((o) => !o.disabled && o.style.display !== 'none');\r\n }\r\n\r\n private getFirstHighlightIndex(): number {\r\n const visible = this.getVisibleOptions();\r\n const firstSelected = visible.findIndex((o) => o.selected);\r\n return firstSelected >= 0 ? firstSelected : 0;\r\n }\r\n\r\n private applyHighlight(): void {\r\n const visible = this.getVisibleOptions();\r\n visible.forEach((opt, i) => {\r\n opt.highlighted = i === this.highlightedIndex;\r\n });\r\n }\r\n\r\n private clearHighlight(): void {\r\n for (const opt of this.options) {\r\n if (opt.highlighted) opt.highlighted = false;\r\n }\r\n this.highlightedIndex = -1;\r\n }\r\n\r\n private updateDropdownDirection(): void {\r\n if (this.dropdownDirection !== 'auto') {\r\n this.dropdownClass = this.dropdownDirection === 'up' ? 'dropdown dropdown--up' : 'dropdown';\r\n return;\r\n }\r\n const rect = this.triggerEl.getBoundingClientRect();\r\n const spaceBelow = window.innerHeight - rect.bottom;\r\n this.dropdownClass = spaceBelow < 260 ? 'dropdown dropdown--up' : 'dropdown';\r\n }\r\n\r\n private resetFilter(): void {\r\n this.filterText = '';\r\n if (this.filterInputEl) this.filterInputEl.value = '';\r\n this.hasFilterResults = true;\r\n for (const opt of this.options) {\r\n opt.style.display = '';\r\n }\r\n }\r\n\r\n private onClickOutside = (e: MouseEvent): void => {\r\n if (!this.isOpen) return;\r\n const path = e.composedPath();\r\n if (!path.includes(this.host)) {\r\n this.isOpen = false;\r\n this.blur.emit();\r\n }\r\n };\r\n\r\n private onTriggerClick = (): void => {\r\n if (this.disabled) return;\r\n this.isOpen = !this.isOpen;\r\n };\r\n\r\n private onTriggerKeyDown = (e: KeyboardEvent): void => {\r\n if (this.disabled) return;\r\n\r\n if (!this.isOpen) {\r\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp' || e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n this.isOpen = true;\r\n }\r\n return;\r\n }\r\n\r\n switch (e.key) {\r\n case 'Escape':\r\n case 'Tab': {\r\n e.preventDefault();\r\n this.isOpen = false;\r\n this.triggerEl.focus();\r\n break;\r\n }\r\n case 'ArrowDown': {\r\n e.preventDefault();\r\n const visible = this.getVisibleOptions();\r\n this.highlightedIndex = Math.min(this.highlightedIndex + 1, visible.length - 1);\r\n this.applyHighlight();\r\n break;\r\n }\r\n case 'ArrowUp': {\r\n e.preventDefault();\r\n this.highlightedIndex = Math.max(this.highlightedIndex - 1, 0);\r\n this.applyHighlight();\r\n break;\r\n }\r\n case 'Home': {\r\n e.preventDefault();\r\n this.highlightedIndex = 0;\r\n this.applyHighlight();\r\n break;\r\n }\r\n case 'End': {\r\n e.preventDefault();\r\n const vis = this.getVisibleOptions();\r\n this.highlightedIndex = vis.length - 1;\r\n this.applyHighlight();\r\n break;\r\n }\r\n case 'Enter':\r\n case ' ': {\r\n e.preventDefault();\r\n const current = this.getVisibleOptions()[this.highlightedIndex];\r\n if (current && !current.disabled) {\r\n current.dispatchEvent(new MouseEvent('click', { bubbles: true, composed: true }));\r\n }\r\n break;\r\n }\r\n }\r\n };\r\n\r\n private onFilterInput = (e: Event): void => {\r\n const term = (e.target as HTMLInputElement).value.toLowerCase();\r\n this.filterText = term;\r\n\r\n let anyVisible = false;\r\n for (const opt of this.options) {\r\n const text = (opt.textContent ?? '').toLowerCase();\r\n const match = text.includes(term);\r\n opt.style.display = match ? '' : 'none';\r\n if (match) anyVisible = true;\r\n }\r\n this.hasFilterResults = anyVisible;\r\n // Reset highlight to first visible\r\n this.highlightedIndex = 0;\r\n this.applyHighlight();\r\n };\r\n\r\n private onResetClick = (e: MouseEvent): void => {\r\n e.stopPropagation();\r\n this.value = [];\r\n this.syncSelectionFromValue();\r\n this.change.emit({ name: this.name, value: [] });\r\n forceUpdate(this.host);\r\n this.triggerEl.focus();\r\n };\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Computed display values\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n private get selectedLabels(): string {\r\n return this.options\r\n .filter((o) => this.value.includes(o.value))\r\n .map((o) => (o.textContent ?? '').trim())\r\n .filter(Boolean)\r\n .join(', ');\r\n }\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Render\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n render() {\r\n const labelId = `${this.internalId}-label`;\r\n const listboxId = `${this.internalId}-listbox`;\r\n const hintId = `${this.internalId}-hint`;\r\n const hasMessage = !!this.message && this.state !== 'none';\r\n const hasValue = this.value.length > 0;\r\n\r\n return (\r\n <Host data-theme={this.theme}>\r\n <style innerHTML={getComponentCss(this.isOpen, this.disabled, this.state, this.compact, this.dropdownClass.includes('--up'))} />\r\n\r\n {/* Label */}\r\n {(this.label || this.host.querySelector('[slot=\"label\"]')) && (\r\n <span class=\"label\" id={labelId} part=\"label\">\r\n <slot name=\"label\">{this.label}</slot>\r\n {this.required && <span class=\"label__required\" aria-hidden=\"true\">*</span>}\r\n </span>\r\n )}\r\n\r\n {/* Description */}\r\n {(this.description || this.host.querySelector('[slot=\"description\"]')) && (\r\n <span class=\"description\" part=\"description\">\r\n <slot name=\"description\">{this.description}</slot>\r\n </span>\r\n )}\r\n\r\n {/* Trigger — combobox div; avoids nesting <button> inside <button> */}\r\n <div\r\n class=\"trigger\"\r\n role=\"combobox\"\r\n aria-haspopup=\"listbox\"\r\n aria-expanded={this.isOpen ? 'true' : 'false'}\r\n aria-controls={listboxId}\r\n aria-labelledby={this.label ? labelId : undefined}\r\n aria-required={this.required ? 'true' : undefined}\r\n aria-invalid={this.state === 'error' ? 'true' : undefined}\r\n aria-describedby={hasMessage ? hintId : undefined}\r\n tabIndex={this.disabled ? -1 : 0}\r\n onClick={this.onTriggerClick}\r\n onKeyDown={this.onTriggerKeyDown}\r\n ref={(el) => (this.triggerEl = el as HTMLDivElement)}\r\n part=\"trigger\"\r\n >\r\n {/* Selected display */}\r\n <span class={`trigger__value${!hasValue ? ' trigger__placeholder' : ''}`} part=\"value\">\r\n {this.hasCustomSelectedSlot ? (\r\n <slot name=\"selected\" />\r\n ) : hasValue ? (\r\n this.selectedLabels\r\n ) : (\r\n this.label || 'Select options'\r\n )}\r\n </span>\r\n\r\n {/* Reset button */}\r\n {hasValue && (\r\n <button\r\n class=\"trigger__reset\"\r\n type=\"button\"\r\n aria-label=\"Reset selection\"\r\n onClick={this.onResetClick}\r\n onKeyDown={(e: KeyboardEvent) => {\r\n if (e.key === 'Tab') this.isOpen = false;\r\n }}\r\n part=\"reset\"\r\n >\r\n ✕\r\n </button>\r\n )}\r\n\r\n {/* Chevron */}\r\n <span class=\"trigger__chevron\" aria-hidden=\"true\" part=\"chevron\">\r\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M4 6L8 10L12 6\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n </div>\r\n\r\n {/* Dropdown */}\r\n <div\r\n class={this.dropdownClass}\r\n role=\"dialog\"\r\n aria-label={this.label}\r\n aria-hidden={this.isOpen ? undefined : 'true'}\r\n part=\"dropdown\"\r\n >\r\n {/* Filter */}\r\n {this.hasCustomFilterSlot ? (\r\n <div class=\"filter\">\r\n <slot name=\"filter\" />\r\n </div>\r\n ) : (\r\n <div class=\"filter\">\r\n <input\r\n class=\"filter__input\"\r\n type=\"text\"\r\n placeholder=\"Filter options…\"\r\n aria-label=\"Filter options\"\r\n autocomplete=\"off\"\r\n value={this.filterText}\r\n onInput={this.onFilterInput}\r\n onKeyDown={this.onTriggerKeyDown}\r\n ref={(el) => (this.filterInputEl = el as HTMLInputElement)}\r\n part=\"filter-input\"\r\n />\r\n </div>\r\n )}\r\n\r\n {/* Options list */}\r\n <div\r\n class=\"options\"\r\n id={listboxId}\r\n role=\"listbox\"\r\n aria-label={this.label}\r\n aria-multiselectable=\"true\"\r\n part=\"options\"\r\n >\r\n {!this.hasFilterResults && (\r\n <div class=\"no-results\" role=\"alert\" aria-live=\"polite\">\r\n No results found\r\n </div>\r\n )}\r\n <slot name=\"options-status\" />\r\n <slot onSlotchange={() => this.onSlotChange()} />\r\n </div>\r\n </div>\r\n\r\n {/* Message */}\r\n {hasMessage && (\r\n <span id={hintId} class=\"message\" part=\"message\" aria-live={this.state === 'error' ? 'polite' : undefined}>\r\n <slot name=\"message\">{this.message}</slot>\r\n </span>\r\n )}\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as a,c as d,h as n,H as r}from"./p-ed4017f0.js";const e=(a,d,n,r)=>`\n ${a?`\n :host {\n --diwa-table-padding-y: 6px;\n --diwa-table-padding-y: var(--diwa-space-2, 6px);\n --diwa-table-padding-x: 12px;\n --diwa-table-padding-x: var(--diwa-space-5, 12px);\n }\n `:`\n :host {\n --diwa-table-padding-y: 12px;\n --diwa-table-padding-y: var(--diwa-space-5, 12px);\n --diwa-table-padding-x: 16px;\n --diwa-table-padding-x: var(--diwa-space-7, 16px);\n }\n `}\n\n :host {\n display: block;\n font-family: var(--diwa-font-family-base);\n width: 100%;\n overflow-x: auto;\n background: var(--diwa-bg-surface);\n border-radius: var(--diwa-radius-lg);\n color: var(--diwa-text-primary);\n text-align: start;\n --diwa-table-hover-color: var(--diwa-bg-hover, transparent);\n --diwa-table-border-color: var(--diwa-border, currentColor);\n --diwa-table-row-border-width: var(--diwa-border-width-thin, 1px);\n --diwa-table-column-border: ${n?"var(--diwa-border-width-thin, 1px) solid var(--diwa-border, currentColor)":"none"};\n --diwa-table-stripe-color: ${r?"var(--diwa-bg-elevated, transparent)":"transparent"};\n --diwa-table-header-bg: transparent;\n ${n?`\n border: var(--diwa-border-width-thin, 1px) solid var(--diwa-border, currentColor) !important;\n overflow: hidden;\n `:""}\n }\n\n :host([hidden]) { display: none; }\n\n ::slotted(*) {\n --diwa-table-padding-y: ${a?"6px":"12px"} !important;\n --diwa-table-padding-y: ${a?"var(--diwa-space-2, 6px)":"var(--diwa-space-5, 12px)"} !important;\n --diwa-table-padding-x: ${a?"12px":"16px"} !important;\n --diwa-table-padding-x: ${a?"var(--diwa-space-5, 12px)":"var(--diwa-space-7, 16px)"} !important;\n --diwa-table-hover-color: var(--diwa-bg-hover, transparent);\n --diwa-table-border-color: var(--diwa-border, currentColor);\n --diwa-table-row-border-width: var(--diwa-border-width-thin, 1px);\n --diwa-table-column-border: ${n?"var(--diwa-border-width-thin, 1px) solid var(--diwa-border, currentColor)":"none"};\n --diwa-table-stripe-color: ${r?"var(--diwa-bg-elevated, transparent)":"transparent"};\n --diwa-table-header-bg: transparent;\n }\n\n .table {\n display: table;\n border-collapse: collapse;\n background: var(--diwa-bg-surface);\n font-size: var(--diwa-font-size-base);\n color: var(--diwa-text-primary);\n white-space: nowrap;\n ${d==="fixed"?`\n table-layout: fixed;\n min-width: 100%;\n `:"width: 100%;"}\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n`;const i=class{constructor(n){a(this,n);this.update=d(this,"update",1);this.theme="dark";this.caption="";this.compact=false;this.layout="auto";this.bordered=false;this.striped=false}handleTableUpdate(a){a.stopPropagation();this.update.emit(a.detail)}render(){const a=this.caption||undefined;return n(r,{key:"dcecc9c66f8edbe62c2f7d705ffda0a1f2d76f97","data-theme":this.theme},n("style",{key:"183ada7a6f59ba400c6c6132dfb7685718ee2a40",innerHTML:e(this.compact,this.layout,this.bordered,this.striped)}),n("div",{key:"707f325328eba674677122a67f737bb47843d6ed",class:"table",role:"table","aria-label":a},n("slot",{key:"00a709c094a8a06a85dff9ad388cfdf8c5a8a7cf"})))}};export{i as diwa_table};
|
|
2
|
-
//# sourceMappingURL=p-29419c9a.entry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["getComponentCss","compact","layout","bordered","striped","DiwaTable","constructor","hostRef","this","theme","caption","handleTableUpdate","e","stopPropagation","update","emit","detail","render","tableLabel","undefined","h","Host","key","innerHTML","class","role"],"sources":["src/components/diwa-table/diwa-table-styles.ts","src/components/diwa-table/diwa-table.tsx"],"sourcesContent":["export const getComponentCss = (\n compact: boolean,\n layout: 'auto' | 'fixed',\n bordered: boolean,\n striped: boolean,\n): string => `\n ${compact\n ? `\n :host {\n --diwa-table-padding-y: 6px;\n --diwa-table-padding-y: var(--diwa-space-2, 6px);\n --diwa-table-padding-x: 12px;\n --diwa-table-padding-x: var(--diwa-space-5, 12px);\n }\n `\n : `\n :host {\n --diwa-table-padding-y: 12px;\n --diwa-table-padding-y: var(--diwa-space-5, 12px);\n --diwa-table-padding-x: 16px;\n --diwa-table-padding-x: var(--diwa-space-7, 16px);\n }\n `}\n\n :host {\n display: block;\n font-family: var(--diwa-font-family-base);\n width: 100%;\n overflow-x: auto;\n background: var(--diwa-bg-surface);\n border-radius: var(--diwa-radius-lg);\n color: var(--diwa-text-primary);\n text-align: start;\n --diwa-table-hover-color: var(--diwa-bg-hover, transparent);\n --diwa-table-border-color: var(--diwa-border, currentColor);\n --diwa-table-row-border-width: var(--diwa-border-width-thin, 1px);\n --diwa-table-column-border: ${bordered ? 'var(--diwa-border-width-thin, 1px) solid var(--diwa-border, currentColor)' : 'none'};\n --diwa-table-stripe-color: ${striped ? 'var(--diwa-bg-elevated, transparent)' : 'transparent'};\n --diwa-table-header-bg: transparent;\n ${bordered ? `\n border: var(--diwa-border-width-thin, 1px) solid var(--diwa-border, currentColor) !important;\n overflow: hidden;\n ` : ''}\n }\n\n :host([hidden]) { display: none; }\n\n ::slotted(*) {\n --diwa-table-padding-y: ${compact ? '6px' : '12px'} !important;\n --diwa-table-padding-y: ${compact ? 'var(--diwa-space-2, 6px)' : 'var(--diwa-space-5, 12px)'} !important;\n --diwa-table-padding-x: ${compact ? '12px' : '16px'} !important;\n --diwa-table-padding-x: ${compact ? 'var(--diwa-space-5, 12px)' : 'var(--diwa-space-7, 16px)'} !important;\n --diwa-table-hover-color: var(--diwa-bg-hover, transparent);\n --diwa-table-border-color: var(--diwa-border, currentColor);\n --diwa-table-row-border-width: var(--diwa-border-width-thin, 1px);\n --diwa-table-column-border: ${bordered ? 'var(--diwa-border-width-thin, 1px) solid var(--diwa-border, currentColor)' : 'none'};\n --diwa-table-stripe-color: ${striped ? 'var(--diwa-bg-elevated, transparent)' : 'transparent'};\n --diwa-table-header-bg: transparent;\n }\n\n .table {\n display: table;\n border-collapse: collapse;\n background: var(--diwa-bg-surface);\n font-size: var(--diwa-font-size-base);\n color: var(--diwa-text-primary);\n white-space: nowrap;\n ${layout === 'fixed'\n ? `\n table-layout: fixed;\n min-width: 100%;\n `\n : 'width: 100%;'}\n }\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n`;\n","import { Component, Event, type EventEmitter, Host, Listen, Prop, h } from '@stencil/core';\r\nimport type { Theme } from '../../utils/styles';\r\nimport type { TableUpdateEventDetail } from '../diwa-table-head-cell/types';\r\nimport { getComponentCss } from './diwa-table-styles';\r\n\r\n/**\n * @component diwa-table\n * Wrapper for a data table. Uses CSS table layout with ARIA roles.\n * Structure: diwa-table > diwa-table-head > diwa-table-row > diwa-table-head-cell\n * > diwa-table-body > diwa-table-row > diwa-table-cell\n */\n@Component({ tag: 'diwa-table', shadow: true })\nexport class DiwaTable {\n @Prop({ reflect: true }) theme: Theme = 'dark';\r\n @Prop() caption: string = '';\r\n @Prop() compact: boolean = false;\r\n @Prop() layout: 'auto' | 'fixed' = 'auto';\r\n @Prop() bordered: boolean = false;\r\n @Prop() striped: boolean = false;\r\n\r\n @Event({ bubbles: false, composed: false })\r\n update!: EventEmitter<TableUpdateEventDetail>;\r\n\r\n @Listen('diwaTableUpdate')\r\n protected handleTableUpdate(e: CustomEvent<TableUpdateEventDetail>): void {\r\n e.stopPropagation();\r\n this.update.emit(e.detail);\r\n }\r\n\r\n render() {\n const tableLabel = this.caption || undefined;\n\n return (\n <Host data-theme={this.theme}>\n <style innerHTML={getComponentCss(this.compact, this.layout, this.bordered, this.striped)} />\n <div class=\"table\" role=\"table\" aria-label={tableLabel}>\n <slot />\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"yDAAO,MAAMA,EAAkB,CAC7BC,EACAC,EACAC,EACAC,IACW,OACTH,EACE,2MAQA,0sBAqB4BE,EAAW,4EAA8E,2CAC1FC,EAAU,uCAAyC,iEAE9ED,EAAW,mIAGT,oGAMsBF,EAAU,MAAQ,mDAClBA,EAAU,2BAA6B,wEACvCA,EAAU,OAAS,mDACnBA,EAAU,4BAA8B,wRAIpCE,EAAW,4EAA8E,2CAC1FC,EAAU,uCAAyC,8RAW9EF,IAAW,QACT,yDAIA,2O,MC5DKG,EAAS,MADtB,WAAAC,CAAAC,G,yCAE2BC,KAAAC,MAAe,OAChCD,KAAAE,QAAkB,GAClBF,KAAAP,QAAmB,MACnBO,KAAAN,OAA2B,OAC3BM,KAAAL,SAAoB,MACpBK,KAAAJ,QAAmB,K,CAMjB,iBAAAO,CAAkBC,GAC1BA,EAAEC,kBACFL,KAAKM,OAAOC,KAAKH,EAAEI,O,CAGrB,MAAAC,GACE,MAAMC,EAAaV,KAAKE,SAAWS,UAEnC,OACEC,EAACC,EAAI,CAAAC,IAAA,wDAAad,KAAKC,OACrBW,EAAA,SAAAE,IAAA,2CAAOC,UAAWvB,EAAgBQ,KAAKP,QAASO,KAAKN,OAAQM,KAAKL,SAAUK,KAAKJ,WACjFgB,EAAA,OAAAE,IAAA,2CAAKE,MAAM,QAAQC,KAAK,QAAO,aAAaP,GAC1CE,EAAA,QAAAE,IAAA,8C","ignoreList":[]}
|