@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 +0,0 @@
|
|
|
1
|
-
{"file":"diwa-multi-select.entry.cjs.js","mappings":";;;;;;;AAGO,MAAM,eAAe,GAAG,CAC7B,MAAe,EACf,SAAkB,EAClB,MAAwB,EACxB,QAAiB,EACjB,OAAgB,KAAK,KACV;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA6FT,MAAM,IAAI,CAAC,IAAI,GAAG,0KAA0K,GAAG,EAAE;IACjM,MAAM,IAAI,IAAI,GAAG,0KAA0K,GAAG,EAAE;;;;IAIhMA,oBAAa,CAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA0DvB,MAAM,GAAG,4BAA4B,GAAG,EAAE;;;;;;;;;;;;;;;;;;;;;;eAsBjC,MAAM,GAAG,OAAO,GAAG,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAqHpCC,4BAAqB,CAAC,UAAU,EAAE,mBAAmB,EAAE,gBAAgB,CAAC;CAC3E;;AC1RD;AACA,IAAI,oBAAoB,GAAG,CAAC,CAAC;MAgChB,eAAe;IAJ5B;;;;;;;;;QAY2B,UAAK,GAAqB,MAAM,CAAC;;QASlD,SAAI,GAAW,EAAE,CAAC;;QAGD,UAAK,GAAa,EAAE,CAAC;;QAGrB,UAAK,GAAqB,MAAM,CAAC;;QAMR,cAAS,GAAY,KAAK,CAAC;;QAGpD,aAAQ,GAAY,KAAK,CAAC;;QAG3C,aAAQ,GAAY,KAAK,CAAC;;QAGT,YAAO,GAAY,KAAK,CAAC;;;;;QAM1C,sBAAiB,GAAiC,MAAM,CAAC;;;;QAsBhD,WAAM,GAAY,KAAK,CAAC;QACxB,eAAU,GAAW,EAAE,CAAC;QACxB,qBAAgB,GAAY,IAAI,CAAC;QACjC,kBAAa,GAAW,UAAU,CAAC;;;;QAM5C,eAAU,GAAW,WAAW,EAAE,oBAAoB,EAAE,CAAC;QAGzD,YAAO,GAAuC,EAAE,CAAC;QACjD,qBAAgB,GAAW,CAAC,CAAC,CAAC;QAC9B,wBAAmB,GAAY,KAAK,CAAC;QACrC,0BAAqB,GAAY,KAAK,CAAC;QAkMvC,mBAAc,GAAG,CAAC,CAAa;YACrC,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YACzB,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC7B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAClB;SACF,CAAC;QAEM,mBAAc,GAAG;YACvB,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC1B,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;SAC5B,CAAC;QAEM,qBAAgB,GAAG,CAAC,CAAgB;YAC1C,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAE1B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE;oBACtF,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;iBACpB;gBACD,OAAO;aACR;YAED,QAAQ,CAAC,CAAC,GAAG;gBACX,KAAK,QAAQ,CAAC;gBACd,KAAK,KAAK,EAAE;oBACV,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;oBACpB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;oBACvB,MAAM;iBACP;gBACD,KAAK,WAAW,EAAE;oBAChB,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACzC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAChF,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtB,MAAM;iBACP;gBACD,KAAK,SAAS,EAAE;oBACd,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC/D,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtB,MAAM;iBACP;gBACD,KAAK,MAAM,EAAE;oBACX,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;oBAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtB,MAAM;iBACP;gBACD,KAAK,KAAK,EAAE;oBACV,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACrC,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;oBACvC,IAAI,CAAC,cAAc,EAAE,CAAC;oBACtB,MAAM;iBACP;gBACD,KAAK,OAAO,CAAC;gBACb,KAAK,GAAG,EAAE;oBACR,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBAChE,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;wBAChC,OAAO,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;qBACnF;oBACD,MAAM;iBACP;aACF;SACF,CAAC;QAEM,kBAAa,GAAG,CAAC,CAAQ;;YAC/B,MAAM,IAAI,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAChE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAEvB,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;gBAC9B,MAAM,IAAI,GAAG,CAAC,MAAA,GAAG,CAAC,WAAW,mCAAI,EAAE,EAAE,WAAW,EAAE,CAAC;gBACnD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAClC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,GAAG,EAAE,GAAG,MAAM,CAAC;gBACxC,IAAI,KAAK;oBAAE,UAAU,GAAG,IAAI,CAAC;aAC9B;YACD,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC;;YAEnC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;SACvB,CAAC;QAEM,iBAAY,GAAG,CAAC,CAAa;YACnC,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YACjDC,iBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;SACxB,CAAC;KA0JH;;;;IApbC,aAAa;QACX,IAAI,CAAC,eAAe,EAAE,CAAC;KACxB;IAGD,eAAe;QACb,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAGD,aAAa;QACX,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAGD,cAAc,CAAC,IAAa;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3B,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,uBAAuB,EAAE,CAAC;;YAE/B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACtD,IAAI,CAAC,cAAc,EAAE,CAAC;;YAEtB,qBAAqB,CAAC;;gBACpB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;oBAC7B,MAAA,IAAI,CAAC,aAAa,0CAAE,KAAK,EAAE,CAAC;iBAC7B;aACF,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;SACF;KACF;;;;IAMD,iBAAiB;QACf,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;KACnE;IAED,oBAAoB;QAClB,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;KACtE;IAED,iBAAiB;QACf,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;QAC/E,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAC;KACpF;IAED,gBAAgB;QACd,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;;;;;IAQD,MAAM,IAAI;QACR,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;KACpB;;IAID,MAAM,KAAK;QACT,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACrB;;;;IAOD,cAAc,CAAC,CAAoD;QACjE,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;QACrC,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBAC/B,IAAI,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aACrC;SACF;aAAM;YACL,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC;SACpD;QACD,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACzDA,iBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACxB;IAGD,YAAY;QACV,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;;;;IAMO,cAAc;QACpB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CACvB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAmC,0BAA0B,CAAC,CACzF,CAAC;KACH;IAEO,sBAAsB;QAC5B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;YAC9B,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACjD,IAAI,GAAG,CAAC,QAAQ,KAAK,gBAAgB,EAAE;gBACrC,GAAG,CAAC,QAAQ,GAAG,gBAAgB,CAAC;gBAChCA,iBAAW,CAAC,GAAG,CAAC,CAAC;aAClB;SACF;KACF;IAEO,eAAe;QACrB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;YAC9B,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;gBAC5B,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBACvBA,iBAAW,CAAC,GAAG,CAAC,CAAC;aAClB;SACF;KACF;IAEO,gBAAgB;QACtB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;YAC9B,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE;gBAChC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC3BA,iBAAW,CAAC,GAAG,CAAC,CAAC;aAClB;SACF;KACF;IAEO,iBAAiB;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;KAC9E;IAEO,sBAAsB;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzC,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC3D,OAAO,aAAa,IAAI,CAAC,GAAG,aAAa,GAAG,CAAC,CAAC;KAC/C;IAEO,cAAc;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;YACrB,GAAG,CAAC,WAAW,GAAG,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC;SAC/C,CAAC,CAAC;KACJ;IAEO,cAAc;QACpB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;YAC9B,IAAI,GAAG,CAAC,WAAW;gBAAE,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC;SAC9C;QACD,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;KAC5B;IAEO,uBAAuB;QAC7B,IAAI,IAAI,CAAC,iBAAiB,KAAK,MAAM,EAAE;YACrC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,KAAK,IAAI,GAAG,uBAAuB,GAAG,UAAU,CAAC;YAC5F,OAAO;SACR;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;QACpD,IAAI,CAAC,aAAa,GAAG,UAAU,GAAG,GAAG,GAAG,uBAAuB,GAAG,UAAU,CAAC;KAC9E;IAEO,WAAW;QACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,IAAI,CAAC,aAAa;YAAE,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;QACtD,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE;YAC9B,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;SACxB;KACF;;;;IAuGD,IAAY,cAAc;QACxB,OAAO,IAAI,CAAC,OAAO;aAChB,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aAC3C,GAAG,CAAC,CAAC,CAAC,eAAK,OAAA,CAAC,MAAA,CAAC,CAAC,WAAW,mCAAI,EAAE,EAAE,IAAI,EAAE,CAAA,EAAA,CAAC;aACxC,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC,CAAC;KACf;;;;IAMD,MAAM;QACJ,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,UAAU,QAAQ,CAAC;QAC3C,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,UAAU,UAAU,CAAC;QAC/C,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,OAAO,CAAC;QACzC,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;QAEvC,QACEC,QAACC,UAAI,mEAAa,IAAI,CAAC,KAAK,IAC1BD,oEAAO,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAI,EAG/H,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,MACvDA,mEAAM,KAAK,EAAC,OAAO,EAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAC,OAAO,IAC3CA,mEAAM,IAAI,EAAC,OAAO,IAAE,IAAI,CAAC,KAAK,CAAQ,EACrC,IAAI,CAAC,QAAQ,IAAIA,mEAAM,KAAK,EAAC,iBAAiB,iBAAa,MAAM,QAAS,CACtE,CACR,EAGA,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,MACnEA,mEAAM,KAAK,EAAC,aAAa,EAAC,IAAI,EAAC,aAAa,IAC1CA,mEAAM,IAAI,EAAC,aAAa,IAAE,IAAI,CAAC,WAAW,CAAQ,CAC7C,CACR,EAGDA,kEACE,KAAK,EAAC,SAAS,EACf,IAAI,EAAC,UAAU,mBACD,SAAS,mBACR,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,mBAC9B,SAAS,qBACP,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,SAAS,mBAClC,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,SAAS,kBACnC,IAAI,CAAC,KAAK,KAAK,OAAO,GAAG,MAAM,GAAG,SAAS,sBACvC,UAAU,GAAG,MAAM,GAAG,SAAS,EACjD,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAChC,OAAO,EAAE,IAAI,CAAC,cAAc,EAC5B,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAChC,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,SAAS,GAAG,EAAoB,CAAC,EACpD,IAAI,EAAC,SAAS,IAGdA,mEAAM,KAAK,EAAE,iBAAiB,CAAC,QAAQ,GAAG,uBAAuB,GAAG,EAAE,EAAE,EAAE,IAAI,EAAC,OAAO,IACnF,IAAI,CAAC,qBAAqB,IACzBA,kBAAM,IAAI,EAAC,UAAU,GAAG,IACtB,QAAQ,IACV,IAAI,CAAC,cAAc,KAEnB,IAAI,CAAC,KAAK,IAAI,gBAAgB,CAC/B,CACI,EAGN,QAAQ,KACPA,qEACE,KAAK,EAAC,gBAAgB,EACtB,IAAI,EAAC,QAAQ,gBACF,iBAAiB,EAC5B,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,SAAS,EAAE,CAAC,CAAgB;gBAC1B,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK;oBAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aAC1C,EACD,IAAI,EAAC,OAAO,aAGL,CACV,EAGDA,mEAAM,KAAK,EAAC,kBAAkB,iBAAa,MAAM,EAAC,IAAI,EAAC,SAAS,IAC9DA,kEAAK,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,IACrEA,mEAAM,CAAC,EAAC,gBAAgB,EAAC,MAAM,EAAC,cAAc,kBAAc,KAAK,oBAAgB,OAAO,qBAAiB,OAAO,GAAE,CAC9G,CACD,CACH,EAGNA,kEACE,KAAK,EAAE,IAAI,CAAC,aAAa,EACzB,IAAI,EAAC,QAAQ,gBACD,IAAI,CAAC,KAAK,iBACT,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,MAAM,EAC7C,IAAI,EAAC,UAAU,IAGd,IAAI,CAAC,mBAAmB,IACvBA,iBAAK,KAAK,EAAC,QAAQ,IACjBA,kBAAM,IAAI,EAAC,QAAQ,GAAG,CAClB,KAENA,iBAAK,KAAK,EAAC,QAAQ,IACjBA,mBACE,KAAK,EAAC,eAAe,EACrB,IAAI,EAAC,MAAM,EACX,WAAW,EAAC,sBAAiB,gBAClB,gBAAgB,EAC3B,YAAY,EAAC,KAAK,EAClB,KAAK,EAAE,IAAI,CAAC,UAAU,EACtB,OAAO,EAAE,IAAI,CAAC,aAAa,EAC3B,SAAS,EAAE,IAAI,CAAC,gBAAgB,EAChC,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,aAAa,GAAG,EAAsB,CAAC,EAC1D,IAAI,EAAC,cAAc,GACnB,CACE,CACP,EAGDA,kEACE,KAAK,EAAC,SAAS,EACf,EAAE,EAAE,SAAS,EACb,IAAI,EAAC,SAAS,gBACF,IAAI,CAAC,KAAK,0BACD,MAAM,EAC3B,IAAI,EAAC,SAAS,IAEb,CAAC,IAAI,CAAC,gBAAgB,KACrBA,kEAAK,KAAK,EAAC,YAAY,EAAC,IAAI,EAAC,OAAO,eAAW,QAAQ,uBAEjD,CACP,EACDA,mEAAM,IAAI,EAAC,gBAAgB,GAAG,EAC9BA,mEAAM,YAAY,EAAE,MAAM,IAAI,CAAC,YAAY,EAAE,GAAI,CAC7C,CACF,EAGL,UAAU,KACTA,mEAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAC,SAAS,EAAC,IAAI,EAAC,SAAS,eAAY,IAAI,CAAC,KAAK,KAAK,OAAO,GAAG,QAAQ,GAAG,SAAS,IACvGA,mEAAM,IAAI,EAAC,SAAS,IAAE,IAAI,CAAC,OAAO,CAAQ,CACrC,CACR,CACI,EACP;KACH;;;;;;;;;;;;;","names":["getFocusStyle","getReducedMotionStyle","forceUpdate","h","Host"],"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"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"diwa-pagination.entry.cjs.js","mappings":";;;;;;;AAEO,MAAM,eAAe,GAAG,MAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuGzCA,oBAAa,CAAC,MAAM,CAAC;;;;IAIrBC,4BAAqB,CAAC,MAAM,CAAC;CAChC;;AC9GD;;;;;;;;;;;AA+BA,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,uCAAQ,CAAA;IACR,+CAAY,CAAA;IACZ,+CAAY,CAAA;IACZ,uCAAQ,CAAA;AACV,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB;AAED;AAEA,MAAM,YAAY,GAAmB;IACnC,IAAI,EAAE,QAAQ,CAAC,QAAQ;IACvB,QAAQ,EAAE,KAAK;CAChB,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,OAA0B;IACxD,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IAC/B,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,QAAQ;QACvB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC;QAClC,QAAQ,EAAE,UAAU,GAAG,CAAC;KACzB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,OAA0B;IACpD,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC1C,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,GAAG,CAAC,CAAC;QAC1C,QAAQ,EAAE,UAAU,GAAG,SAAS;KACjC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,EACjC,UAAU,GACQ;IAClB,OAAO,CAAC,UAAU,MAAsB;QACtC,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,KAAK,EAAE,UAAU;QACjB,QAAQ,EAAE,UAAU,KAAK,UAAU;QACnC,eAAe,EAAE,UAAU,KAAK,UAAU,GAAG,CAAC;QAC9C,qBAAqB,EAAE,UAAU,KAAK,UAAU,GAAG,CAAC;QACpD,cAAc,EAAE,UAAU,KAAK,UAAU,GAAG,CAAC;QAC7C,mBAAmB,EAAE,UAAU,KAAK,UAAU,GAAG,CAAC;KACnD,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;AAEO,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,GAAW,KACpD,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AAE9D;;;;;AAKO,MAAM,qBAAqB,GAAG,CAAC,OAA0B;IAC9D,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAExD,MAAM,SAAS,GAAG,CAAC,CAAC;IACpB,MAAM,kBAAkB,GAAG,CAAC,CAAC;IAC7B,MAAM,YAAY,GAAG,CAAC,CAAC;IACvB,MAAM,eAAe,GAAqB,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;IAC5E,MAAM,UAAU,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;;IAGtD,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,kBAAkB,IAAI,SAAS,EAAE;QAC9D,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3D,eAAe,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;KACnC;SAAM;;QAEL,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;;QAGpC,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAC/B,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,SAAS,EAAE,CAAC,GAAG,YAAY,CAAC,EAClD,SAAS,GAAG,YAAY,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,CACtD,CAAC;QACF,MAAM,cAAc,GAAG,gBAAgB,GAAG,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,WAAW,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;;QAGlF,MAAM,uBAAuB,GAAG,gBAAgB,GAAG,CAAC,CAAC;QACrD,MAAM,8BAA8B,GAAG,uBAAuB,KAAK,CAAC,CAAC;QACrE,MAAM,mBAAmB,GAAG,8BAA8B;cACtD,UAAU,CAAC,uBAAuB,CAAC;cACnC,YAAY,CAAC;QAEjB,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAE1C,eAAe,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;;QAGrC,MAAM,sBAAsB,GAAG,cAAc,GAAG,CAAC,CAAC;QAClD,MAAM,6BAA6B,GACjC,sBAAsB,KAAK,SAAS,IAAI,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAChE,MAAM,kBAAkB,GAAG,6BAA6B;cACpD,UAAU,CAAC,sBAAsB,CAAC;cAClC,YAAY,CAAC;QACjB,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAEzC,IAAI,YAAY,EAAE;YAChB,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;SAC7C;KACF;IAED,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC;AAEF;AACO,MAAM,oBAAoB,GAAG,CAAC,UAAkB,EAAE,UAAkB;IACzE,OAAO,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;AAChF,CAAC,CAAC;AAEF;AACO,MAAM,aAAa,GAAG,CAAC,eAAuB,EAAE,YAAoB;IACzE,IAAI,YAAY,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,eAAe,GAAG,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC;IACxD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,CAAC;AACzC,CAAC;;MCpHY,cAAc;IAJ3B;;;;;;;QAY2B,UAAK,GAAU,MAAM,CAAC;;QAGvC,oBAAe,GAAW,CAAC,CAAC;;QAG5B,iBAAY,GAAW,CAAC,CAAC;;;;;QAMR,eAAU,GAAW,CAAC,CAAC;;QAGxC,iBAAY,GAAY,IAAI,CAAC;;;;;;QAO7B,SAAI,GAAmB;YAC7B,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,MAAM;SACb,CAAC;KA4IH;;;;IAvHS,WAAW,CAAC,IAAY;QAC9B,IAAI,IAAI,KAAK,IAAI,CAAC,UAAU,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SACxB;KACF;;;;IAMD,MAAM;;QACJ,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,oBAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACrE,MAAM,KAAK,GAAG,qBAAqB,CAAC;YAClC,UAAU,EAAE,WAAW;YACvB,SAAS;YACT,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,IAAI,mCAAI,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,IAAI,mCAAI,YAAY,CAAC;QAC5C,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,IAAI,mCAAI,eAAe,CAAC;QAC/C,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,IAAI,mCAAI,WAAW,CAAC;QAC3C,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,IAAI,mCAAI,MAAM,CAAC;QAEtC,QACEC,QAACC,UAAI,mEAAa,IAAI,CAAC,KAAK,IAC1BD,oEAAO,SAAS,EAAE,eAAe,EAAE,GAAI,EACvCA,gFAAiB,SAAS,EAAE,KAAK,EAAC,KAAK,IACrCA,iEAAI,KAAK,EAAC,MAAM,IACb,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAEE,OAAK;YACrB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;YAEvC,IAAI,IAAI,KAAK,QAAQ,CAAC,QAAQ,EAAE;gBAC9B,QACEF,gBAAI,GAAG,EAAC,MAAM,IACZA,oBACE,KAAK,EAAC,KAAK,EACX,QAAQ,EAAE,CAAC,QAAQ,gBACP,SAAS,EACrB,OAAO,EAAE,MAAM,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,KAAM,CAAC,IAGnDA,iBACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,kBACR,GAAG,oBACD,OAAO,qBACN,OAAO,iBACX,MAAM,IAElBA,sBAAU,MAAM,EAAC,iBAAiB,GAAG,CACjC,CACC,CACN,EACL;aACH;YAED,IAAI,IAAI,KAAK,QAAQ,CAAC,IAAI,EAAE;gBAC1B,QACEA,gBAAI,GAAG,EAAC,MAAM,IACZA,oBACE,KAAK,EAAC,KAAK,EACX,QAAQ,EAAE,CAAC,QAAQ,gBACP,SAAS,EACrB,OAAO,EAAE,MAAM,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,KAAM,CAAC,IAGnDA,iBACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,kBACR,GAAG,oBACD,OAAO,qBACN,OAAO,iBACX,MAAM,IAElBA,sBAAU,MAAM,EAAC,gBAAgB,GAAG,CAChC,CACC,CACN,EACL;aACH;YAED,IAAI,IAAI,KAAK,QAAQ,CAAC,QAAQ,EAAE;gBAC9B,QACEA,gBAAI,GAAG,EAAE,YAAYE,OAAK,EAAE,IAC1BF,kBAAM,KAAK,EAAC,UAAU,iBAAa,MAAM,aAElC,CACJ,EACL;aACH;;YAGD,QACEA,gBAAI,GAAG,EAAE,KAAK,IACZA,oBACE,KAAK,EAAC,KAAK,gBACC,GAAG,SAAS,IAAI,KAAK,EAAE,kBACrB,QAAQ,GAAG,MAAM,GAAG,SAAS,EAC3C,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,KAAM,CAAC,IAEtC,KAAK,CACC,CACN,EACL;SACH,CAAC,CACC,CACD,CACD,EACP;KACH;;;;;;;","names":["getFocusStyle","getReducedMotionStyle","h","Host","index"],"sources":["src/components/diwa-pagination/diwa-pagination-styles.ts","src/components/diwa-pagination/diwa-pagination-utils.ts","src/components/diwa-pagination/diwa-pagination.tsx"],"sourcesContent":["import { getFocusStyle, getReducedMotionStyle } from '../../utils/styles';\r\n\r\nexport const getComponentCss = (): string => `\r\n\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 /* ── Nav wrapper ──────────────────────────────────────────────────── */\r\n\r\n .nav {\r\n display: flex;\r\n justify-content: center;\r\n user-select: none;\r\n }\r\n\r\n /* ── Item list ────────────────────────────────────────────────────── */\r\n\r\n .list {\r\n display: flex;\r\n align-items: center;\r\n gap: var(--diwa-space-1);\r\n list-style: none;\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n /* Extra breathing room between prev/next and the page number group */\r\n .list > li:first-child {\r\n margin-inline-end: var(--diwa-space-2);\r\n }\r\n\r\n .list > li:last-child {\r\n margin-inline-start: var(--diwa-space-2);\r\n }\r\n\r\n /* ── Shared button base ───────────────────────────────────────────── */\r\n\r\n .btn {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--diwa-pagination-item-size);\r\n height: var(--diwa-pagination-item-size);\r\n box-sizing: border-box;\r\n padding: 0;\r\n border: var(--diwa-border-width-medium) solid transparent;\r\n border-radius: var(--diwa-radius-md);\r\n background: transparent;\r\n color: var(--diwa-text-primary);\r\n font-size: var(--diwa-font-size-sm);\r\n font-family: inherit;\r\n font-weight: var(--diwa-font-weight-normal);\r\n line-height: 1;\r\n cursor: pointer;\r\n transition: background-color var(--diwa-transition-fast),\r\n border-color var(--diwa-transition-fast);\r\n }\r\n\r\n /* ── Hover ────────────────────────────────────────────────────────── */\r\n\r\n .btn:hover:not(:disabled):not([aria-current]) {\r\n background: var(--diwa-bg-hover);\r\n }\r\n\r\n /* ── Active page ──────────────────────────────────────────────────── */\r\n\r\n /* Diwa brand treatment: bottom accent line instead of PDS border box */\r\n .btn[aria-current=\"page\"] {\r\n border-bottom-color: var(--diwa-accent);\r\n cursor: default;\r\n }\r\n\r\n /* ── Disabled (prev/next at boundaries) ──────────────────────────── */\r\n\r\n .btn:disabled {\r\n opacity: 0.38;\r\n cursor: not-allowed;\r\n pointer-events: none;\r\n }\r\n\r\n /* ── Ellipsis ─────────────────────────────────────────────────────── */\r\n\r\n .ellipsis {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--diwa-pagination-item-size);\r\n height: var(--diwa-pagination-item-size);\r\n color: var(--diwa-text-secondary);\r\n font-size: var(--diwa-font-size-sm);\r\n cursor: default;\r\n user-select: none;\r\n }\r\n\r\n /* ── Focus ring ───────────────────────────────────────────────────── */\r\n\r\n ${getFocusStyle('.btn')}\r\n\r\n /* ── Reduced motion ───────────────────────────────────────────────── */\r\n\r\n ${getReducedMotionStyle('.btn')}\r\n`;\r\n","/**\r\n * Universal pagination model generation algorithm.\r\n *\r\n * Ported from an upstream pagination algorithm:\n * packages/components/src/components/pagination/pagination-utils.ts\r\n * (which was itself adapted from ultimate-pagination)\r\n *\r\n * Kept: ItemType, PaginationItem, PaginationOptions, createRange,\r\n * createPaginationItems, getTotalPages, getCurrentActivePage.\r\n * Dropped: deprecated allyLabel* types, maxNumberOfPageLinks.\r\n */\r\n\r\nexport type PaginationOptions = {\r\n activePage: number;\r\n pageTotal: number;\r\n showLastPage: boolean;\r\n};\r\n\r\nexport type PaginationItem = {\r\n /** Page number — relevant for clickable PAGE items; undefined for ELLIPSIS. */\r\n value?: number;\r\n /** True for the active page, and true for prev/next when they are actionable. */\r\n isActive: boolean;\r\n /** Positional flags used for responsive class names (future use). */\r\n isBeforeCurrent?: boolean;\r\n isBeforeBeforeCurrent?: boolean;\r\n isAfterCurrent?: boolean;\r\n isAfterAfterCurrent?: boolean;\r\n type: ItemType;\r\n};\r\n\r\nexport enum ItemType {\r\n PAGE = 0,\r\n ELLIPSIS = 1,\r\n PREVIOUS = 2,\r\n NEXT = 3,\r\n}\r\n\r\n// ── Internal helpers ────────────────────────────────────────────────────────\r\n\r\nconst ellipsisItem: PaginationItem = {\r\n type: ItemType.ELLIPSIS,\r\n isActive: false,\r\n};\r\n\r\nconst createPreviousPageLink = (options: PaginationOptions): PaginationItem => {\r\n const { activePage } = options;\r\n return {\r\n type: ItemType.PREVIOUS,\r\n value: Math.max(1, activePage - 1),\r\n isActive: activePage > 1,\r\n };\r\n};\r\n\r\nconst createNextPageLink = (options: PaginationOptions): PaginationItem => {\r\n const { activePage, pageTotal } = options;\r\n return {\r\n type: ItemType.NEXT,\r\n value: Math.min(pageTotal, activePage + 1),\r\n isActive: activePage < pageTotal,\r\n };\r\n};\r\n\r\nconst createPageFunctionFactory = ({\r\n activePage,\r\n}: PaginationOptions): ((pageNumber: number) => PaginationItem) => {\r\n return (pageNumber): PaginationItem => ({\r\n type: ItemType.PAGE,\r\n value: pageNumber,\r\n isActive: pageNumber === activePage,\r\n isBeforeCurrent: pageNumber === activePage - 1,\r\n isBeforeBeforeCurrent: pageNumber === activePage - 2,\r\n isAfterCurrent: pageNumber === activePage + 1,\r\n isAfterAfterCurrent: pageNumber === activePage + 2,\r\n });\r\n};\r\n\r\n// ── Public API ──────────────────────────────────────────────────────────────\r\n\r\nexport const createRange = (start: number, end: number): number[] =>\r\n Array.from(new Array(end - start + 1), (_, i) => i + start);\r\n\r\n/**\r\n * Builds the ordered list of pagination items (PREVIOUS, PAGE, ELLIPSIS, NEXT)\r\n * for the given options. The caller is responsible for clamping `activePage`\r\n * before passing it in — use `getCurrentActivePage()`.\r\n */\r\nexport const createPaginationItems = (options: PaginationOptions): PaginationItem[] => {\r\n const { pageTotal, activePage, showLastPage } = options;\r\n\r\n const pageRange = 1;\r\n const boundaryPagesRange = 1;\r\n const ellipsisSize = 1;\r\n const paginationItems: PaginationItem[] = [createPreviousPageLink(options)];\r\n const createPage = createPageFunctionFactory(options);\r\n\r\n // All pages fit without ellipsis\r\n if (1 + 2 * ellipsisSize + 2 * boundaryPagesRange >= pageTotal) {\r\n const allPages = createRange(1, pageTotal).map(createPage);\r\n paginationItems.push(...allPages);\r\n } else {\r\n // First page\r\n paginationItems.push(createPage(1));\r\n\r\n // Middle group\r\n const middlePagesStart = Math.min(\r\n Math.max(activePage - pageRange, 2 + ellipsisSize),\r\n pageTotal - ellipsisSize - 2 - (showLastPage ? 1 : 0),\r\n );\r\n const middlePagesEnd = middlePagesStart + 2;\r\n const middlePages = createRange(middlePagesStart, middlePagesEnd).map(createPage);\r\n\r\n // Ellipsis / page before middle group\r\n const firstEllipsisPageNumber = middlePagesStart - 1;\r\n const showPageInsteadOfFirstEllipsis = firstEllipsisPageNumber === 2;\r\n const firstEllipsisOrPage = showPageInsteadOfFirstEllipsis\r\n ? createPage(firstEllipsisPageNumber)\r\n : ellipsisItem;\r\n\r\n paginationItems.push(firstEllipsisOrPage);\r\n\r\n paginationItems.push(...middlePages);\r\n\r\n // Ellipsis / page after middle group\r\n const lastEllipsisPageNumber = middlePagesEnd + 1;\r\n const showPageInsteadOfLastEllipsis =\r\n lastEllipsisPageNumber === pageTotal - (showLastPage ? 1 : 0);\r\n const lastEllipsisOrPage = showPageInsteadOfLastEllipsis\r\n ? createPage(lastEllipsisPageNumber)\r\n : ellipsisItem;\r\n paginationItems.push(lastEllipsisOrPage);\r\n\r\n if (showLastPage) {\r\n paginationItems.push(createPage(pageTotal));\r\n }\r\n }\r\n\r\n paginationItems.push(createNextPageLink(options));\r\n return paginationItems;\r\n};\r\n\r\n/** Clamps activePage to a valid range [1, totalPages]. */\r\nexport const getCurrentActivePage = (activePage: number, totalPages: number): number => {\r\n return activePage < 1 ? 1 : activePage > totalPages ? totalPages : activePage;\r\n};\r\n\r\n/** Derives total page count, guarding against zero/negative inputs. */\r\nexport const getTotalPages = (totalItemsCount: number, itemsPerPage: number): number => {\r\n if (itemsPerPage < 1) return 1;\r\n const total = totalItemsCount < 1 ? 1 : totalItemsCount;\r\n return Math.ceil(total / itemsPerPage);\r\n};\r\n","import { Component, Element, Event, type EventEmitter, Host, Prop, h } from '@stencil/core';\r\nimport type { Theme } from '../../utils/styles';\r\nimport type { PaginationIntl, PaginationUpdateEventDetail } from './types';\r\nimport { getComponentCss } from './diwa-pagination-styles';\r\nimport {\r\n createPaginationItems,\r\n getCurrentActivePage,\r\n getTotalPages,\r\n ItemType,\r\n} from './diwa-pagination-utils';\r\n\r\n/**\r\n * @component diwa-pagination\r\n *\r\n * Splits a large data set across numbered pages with previous and next navigation.\r\n * Renders up to 7 page items (prev + pages/ellipsis + next) matching Diwa's\n * pagination visual and API contract.\n *\r\n * The active page is indicated with a bottom accent line (`--diwa-accent`) rather\r\n * than a border box, keeping Diwa's minimal aesthetic.\r\n *\r\n * Semi-controlled: `activePage` is mutable — it updates internally on click AND\r\n * emits an `update` event so the consumer can sync external state.\r\n *\r\n * Usage:\r\n * <diwa-pagination total-items-count=\"500\" items-per-page=\"25\" active-page=\"1\"\r\n * onupdate={e => setPage(e.detail.page)} />\r\n *\r\n * Source lineage:\n * components/src/components/pagination/pagination.tsx\n */\r\n@Component({\r\n tag: 'diwa-pagination',\r\n shadow: { delegatesFocus: true },\r\n})\r\nexport class DiwaPagination {\r\n @Element() host!: HTMLDiwaPaginationElement;\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Props\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n /** Per-component theme override (`light` / `dark`). */\r\n @Prop({ reflect: true }) theme: Theme = 'dark';\r\n\r\n /** Total number of items in the data set. */\r\n @Prop() totalItemsCount: number = 1;\r\n\r\n /** Number of items shown per page. */\r\n @Prop() itemsPerPage: number = 1;\r\n\r\n /**\r\n * Index of the currently active page (1-based).\r\n * Semi-controlled: mutates internally on click and emits `update`.\r\n */\r\n @Prop({ mutable: true }) activePage: number = 1;\r\n\r\n /** Show a direct link to the last page (in addition to the prev/next buttons). */\r\n @Prop() showLastPage: boolean = true;\r\n\r\n /**\r\n * Override the default aria-label wording for prev/next/page buttons and the nav element.\r\n * Useful for localisation.\r\n * Default: `{ root: 'Pagination', prev: 'Previous page', next: 'Next page', page: 'Page' }`\r\n */\r\n @Prop() intl: PaginationIntl = {\r\n root: 'Pagination',\r\n prev: 'Previous page',\r\n next: 'Next page',\r\n page: 'Page',\r\n };\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Events\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n /**\r\n * Emitted when the user navigates to a different page.\r\n *\r\n * React consumers: use the lowercase `onupdate` prop:\r\n * ```jsx\r\n * <diwa-pagination onupdate={e => setPage(e.detail.page)} />\r\n * ```\r\n */\r\n @Event({ bubbles: false, composed: false })\r\n update!: EventEmitter<PaginationUpdateEventDetail>;\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Private helpers\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n private handleClick(page: number): void {\r\n if (page !== this.activePage) {\r\n this.update.emit({ page, previousPage: this.activePage });\r\n this.activePage = page;\r\n }\r\n }\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Render\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n render() {\r\n const pageTotal = getTotalPages(this.totalItemsCount, this.itemsPerPage);\r\n const currentPage = getCurrentActivePage(this.activePage, pageTotal);\r\n const items = createPaginationItems({\r\n activePage: currentPage,\r\n pageTotal,\r\n showLastPage: this.showLastPage,\r\n });\r\n\r\n const intl = this.intl ?? {};\r\n const rootLabel = intl.root ?? 'Pagination';\r\n const prevLabel = intl.prev ?? 'Previous page';\r\n const nextLabel = intl.next ?? 'Next page';\r\n const pageLabel = intl.page ?? 'Page';\r\n\r\n return (\r\n <Host data-theme={this.theme}>\r\n <style innerHTML={getComponentCss()} />\r\n <nav aria-label={rootLabel} class=\"nav\">\r\n <ul class=\"list\">\r\n {items.map((item, index) => {\r\n const { type, isActive, value } = item;\r\n\r\n if (type === ItemType.PREVIOUS) {\r\n return (\r\n <li key=\"prev\">\r\n <button\r\n class=\"btn\"\r\n disabled={!isActive}\r\n aria-label={prevLabel}\r\n onClick={() => isActive && this.handleClick(value!)}\r\n >\r\n {/* Lucide ChevronLeft 16×16 */}\r\n <svg\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n aria-hidden=\"true\"\r\n >\r\n <polyline points=\"15 18 9 12 15 6\" />\r\n </svg>\r\n </button>\r\n </li>\r\n );\r\n }\r\n\r\n if (type === ItemType.NEXT) {\r\n return (\r\n <li key=\"next\">\r\n <button\r\n class=\"btn\"\r\n disabled={!isActive}\r\n aria-label={nextLabel}\r\n onClick={() => isActive && this.handleClick(value!)}\r\n >\r\n {/* Lucide ChevronRight 16×16 */}\r\n <svg\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n aria-hidden=\"true\"\r\n >\r\n <polyline points=\"9 18 15 12 9 6\" />\r\n </svg>\r\n </button>\r\n </li>\r\n );\r\n }\r\n\r\n if (type === ItemType.ELLIPSIS) {\r\n return (\r\n <li key={`ellipsis-${index}`}>\r\n <span class=\"ellipsis\" aria-hidden=\"true\">\r\n …\r\n </span>\r\n </li>\r\n );\r\n }\r\n\r\n // ItemType.PAGE\r\n return (\r\n <li key={value}>\r\n <button\r\n class=\"btn\"\r\n aria-label={`${pageLabel} ${value}`}\r\n aria-current={isActive ? 'page' : undefined}\r\n onClick={() => this.handleClick(value!)}\r\n >\r\n {value}\r\n </button>\r\n </li>\r\n );\r\n })}\r\n </ul>\r\n </nav>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"diwa-pin-code.entry.cjs.js","mappings":"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","names":["getReducedMotionStyle","h","Host"],"sources":["src/components/diwa-pin-code/diwa-pin-code-styles.ts","src/components/diwa-pin-code/diwa-pin-code.tsx"],"sourcesContent":["import type { InputFieldState } from '../diwa-input/types';\r\nimport { getReducedMotionStyle } from '../../utils/styles';\r\n\r\nexport const getComponentCss = (\r\n state: InputFieldState,\r\n disabled: boolean,\r\n compact: boolean,\r\n): string => {\r\n const borderColor =\r\n state === 'error'\r\n ? 'var(--diwa-notification-error)'\r\n : state === 'success'\r\n ? 'var(--diwa-notification-success)'\r\n : 'var(--diwa-input-border, var(--diwa-border))';\r\n\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 const boxSize = compact ? '36px' : '44px';\r\n\r\n return `\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 :host([hidden]) {\r\n display: none;\r\n }\r\n .root {\r\n display: flex;\r\n flex-direction: column;\r\n gap: var(--diwa-space-2);\r\n }\r\n .label-row {\r\n display: flex;\r\n align-items: baseline;\r\n gap: var(--diwa-space-1);\r\n }\r\n .label {\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 }\r\n .required {\r\n color: var(--diwa-notification-error);\r\n }\r\n .boxes {\r\n display: flex;\r\n gap: var(--diwa-space-3);\r\n }\r\n .box {\r\n width: ${boxSize};\r\n height: ${boxSize};\r\n padding: 0;\r\n text-align: center;\r\n font-family: var(--diwa-font-family-base);\r\n font-size: ${compact ? 'var(--diwa-font-size-base)' : 'var(--diwa-font-size-lg)'};\r\n font-weight: var(--diwa-font-weight-semibold);\r\n color: var(--diwa-text-primary);\r\n background: var(--diwa-bg-input);\r\n border: var(--diwa-border-width-thin) solid ${borderColor};\r\n border-radius: var(--diwa-radius-md);\r\n outline: none;\r\n transition: border-color var(--diwa-transition-base);\r\n box-sizing: border-box;\r\n ${disabled ? 'opacity: 0.5; pointer-events: none;' : ''}\r\n }\r\n .box:focus {\r\n border-color: var(--diwa-input-border-focus, var(--diwa-border-focus));\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: var(--diwa-line-height-normal);\r\n margin: 0;\r\n }\r\n .message {\r\n font-size: var(--diwa-font-size-sm);\r\n color: ${messageColor};\r\n line-height: var(--diwa-line-height-normal);\r\n margin: 0;\r\n }\r\n\r\n ${getReducedMotionStyle('input')}\r\n `;\r\n};\r\n","import { Component, Element, Event, type EventEmitter, Host, Prop, h } from '@stencil/core';\r\nimport type { InputFieldState } from '../diwa-input/types';\r\nimport type { Theme } from '../../utils/styles';\r\nimport type { PinCodeType, PinCodeUpdateEventDetail } from './types';\r\nimport { getComponentCss } from './diwa-pin-code-styles';\r\n\r\n/**\r\n * @controlled {\"props\": [\"value\"], \"event\": \"update\"}\r\n */\r\n@Component({\r\n tag: 'diwa-pin-code',\r\n shadow: { delegatesFocus: true },\r\n})\r\nexport class DiwaPinCode {\r\n @Element() host!: HTMLElement;\r\n\r\n /** Visible label text. */\r\n @Prop() label: string = '';\r\n\r\n /** Supplementary description below the label. */\r\n @Prop() description: string = '';\r\n\r\n /** Validation state. */\r\n @Prop() state: InputFieldState = 'none';\r\n\r\n /** Feedback message. */\r\n @Prop() message: string = '';\r\n\r\n /** Number of input boxes (1–6). */\r\n @Prop() length: number = 4;\r\n\r\n /** Current value string. Length should match the length prop. */\r\n @Prop() value: string = '';\r\n\r\n /** Input type — \"number\" restricts input to digits; \"password\" masks the value. */\r\n @Prop() type: PinCodeType = 'number';\r\n\r\n /** Whether the pin code is required. */\r\n @Prop({ reflect: true }) required: boolean = false;\r\n\r\n /** Disables all input boxes. */\r\n @Prop({ reflect: true }) disabled: boolean = false;\r\n\r\n /** Renders compact input boxes. */\r\n @Prop() compact: boolean = false;\r\n\r\n /** Hides the visible label while preserving it as accessible name. */\r\n @Prop() hideLabel: boolean = false;\r\n\r\n /** Adapts the color when used on a light or dark background. */\r\n @Prop({ reflect: true }) theme: Theme = 'dark';\r\n\r\n /** Emitted when any box value changes. */\r\n @Event({ bubbles: false, composed: false }) update!: EventEmitter<PinCodeUpdateEventDetail>;\r\n\r\n private getBoxes(): HTMLInputElement[] {\r\n return Array.from(this.host.shadowRoot?.querySelectorAll('.box') ?? []) as HTMLInputElement[];\r\n }\r\n\r\n private emitUpdate(): void {\r\n const boxes = this.getBoxes();\r\n const value = boxes.map((b) => b.value).join('');\r\n const isComplete = value.length === this.length && !value.includes('');\r\n this.update.emit({ value, isComplete });\r\n }\r\n\r\n private handleInput = (e: Event, index: number): void => {\r\n const input = e.target as HTMLInputElement;\r\n const char = input.value.slice(-1);\r\n\r\n if (this.type === 'number' && char && !/^\\d$/.test(char)) {\r\n input.value = '';\r\n return;\r\n }\r\n\r\n input.value = char;\r\n\r\n if (char) {\r\n const boxes = this.getBoxes();\r\n if (index < boxes.length - 1) {\r\n boxes[index + 1].focus();\r\n boxes[index + 1].select();\r\n }\r\n }\r\n\r\n this.emitUpdate();\r\n };\r\n\r\n private handleKeyDown = (e: KeyboardEvent, index: number): void => {\r\n const boxes = this.getBoxes();\r\n const input = e.target as HTMLInputElement;\r\n\r\n if (e.key === 'Backspace' && !input.value && index > 0) {\r\n boxes[index - 1].focus();\r\n boxes[index - 1].select();\r\n } else if (e.key === 'ArrowLeft' && index > 0) {\r\n boxes[index - 1].focus();\r\n } else if (e.key === 'ArrowRight' && index < boxes.length - 1) {\r\n boxes[index + 1].focus();\r\n }\r\n };\r\n\r\n private handlePaste = (e: ClipboardEvent): void => {\r\n e.preventDefault();\r\n const text = e.clipboardData?.getData('text') ?? '';\r\n const digits = this.type === 'number' ? text.replace(/\\D/g, '') : text;\r\n const boxes = this.getBoxes();\r\n\r\n digits.slice(0, this.length).split('').forEach((char, i) => {\r\n if (boxes[i]) boxes[i].value = char;\r\n });\r\n\r\n const lastFilled = Math.min(digits.length, this.length) - 1;\r\n if (lastFilled >= 0) {\r\n boxes[lastFilled].focus();\r\n boxes[lastFilled].select();\r\n }\r\n\r\n this.emitUpdate();\r\n };\r\n\r\n render() {\r\n const safeLength = Math.max(1, Math.min(6, this.length));\r\n const valueChars = this.value.padEnd(safeLength, '').slice(0, safeLength);\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.compact)} />\r\n <div class=\"root\">\r\n {!this.hideLabel && this.label && (\r\n <div class=\"label-row\">\r\n <span class=\"label\">\r\n {this.label}\r\n {this.required && <span class=\"required\" aria-hidden=\"true\"> *</span>}\r\n </span>\r\n </div>\r\n )}\r\n <div\r\n class=\"boxes\"\r\n role=\"group\"\r\n aria-label={this.hideLabel && this.label ? this.label : undefined}\r\n >\r\n {Array.from({ length: safeLength }).map((_, i) => (\r\n <input\r\n key={i}\r\n class=\"box\"\r\n type={this.type === 'password' ? 'password' : 'text'}\r\n inputMode={this.type === 'number' ? 'numeric' : 'text'}\r\n maxLength={1}\r\n value={valueChars[i] ?? ''}\r\n disabled={this.disabled}\r\n required={this.required && i === 0}\r\n aria-label={`Digit ${i + 1} of ${safeLength}`}\r\n aria-describedby={i === 0 ? (this.message ? msgId : this.description ? descId : undefined) : undefined}\r\n onInput={(e) => this.handleInput(e, i)}\r\n onKeyDown={(e) => this.handleKeyDown(e, i)}\r\n onPaste={i === 0 ? this.handlePaste : undefined}\r\n onFocus={(e) => (e.target as HTMLInputElement).select()}\r\n autocomplete={i === 0 ? 'one-time-code' : 'off'}\r\n />\r\n ))}\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"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"diwa-popover.entry.cjs.js","mappings":";;;;;;;AAGA,MAAM,cAAc,GAAqC;IACvD,GAAG,EAAE,mEAAmE;IACxE,MAAM,EAAE,gEAAgE;IACxE,KAAK,EAAE,iEAAiE;IACxE,GAAG,EAAE,gEAAgE;CACtE,CAAC;AAEK,MAAM,eAAe,GAAG,CAAC,MAAe,EAAE,SAA2B;IAC1E,MAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE3C,OAAO;;;;;;;;;;;;;;;;;;;;;;;MAuBHA,oBAAa,CAAC,UAAU,CAAC;;iBAEd,MAAM,GAAG,OAAO,GAAG,MAAM;;QAElC,QAAQ;;;;;;;;;;;;;;;;;;;;;MAqBVC,4BAAqB,CAAC,UAAU,CAAC;GACpC,CAAC;AACJ,CAAC;;MClDY,WAAW;IAJxB;;;QAQU,cAAS,GAAqB,QAAQ,CAAC;;QAMtB,UAAK,GAAU,MAAM,CAAC;QAE9B,WAAM,GAAY,KAAK,CAAC;QAoBjC,WAAM,GAAG;YACf,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;SAC5B,CAAC;KA2CH;IA9DC,mBAAmB,CAAC,CAAgB;QAClC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;YACrC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACrB;KACF;IAGD,uBAAuB,CAAC,CAAe;QACrC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,OAAO;SACR;QAED,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACzC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACrB;KACF;IAMD,MAAM;QACJ,QACEC,QAACC,UAAI,mEAAa,IAAI,CAAC,KAAK,IAC1BD,oEAAO,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,GAAI,EAClEA,mEAAM,IAAI,EAAC,QAAQ,IACjBA,qEACE,KAAK,EAAC,SAAS,EACf,IAAI,EAAC,QAAQ,mBACE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,mBACpB,MAAM,EACpB,OAAO,EAAE,IAAI,CAAC,MAAM,IAEpBA,kEACE,KAAK,EAAC,4BAA4B,EAClC,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,kBACR,GAAG,oBACD,OAAO,qBACN,OAAO,iBACX,MAAM,IAElBA,qEAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,GAAG,EACjCA,mEAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,GAAG,EACvCA,mEAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,OAAO,EAAC,EAAE,EAAC,IAAI,GAAG,CACvC,CACC,CACJ,EACPA,kEACE,KAAK,EAAC,OAAO,EACb,IAAI,EAAC,SAAS,iBACD,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAEhC,IAAI,CAAC,WAAW,IAAIA,kEAAI,IAAI,CAAC,WAAW,CAAK,EAC9CA,oEAAQ,CACJ,CACD,EACP;KACH;;;;;;;","names":["getFocusStyle","getReducedMotionStyle","h","Host"],"sources":["src/components/diwa-popover/diwa-popover-styles.ts","src/components/diwa-popover/diwa-popover.tsx"],"sourcesContent":["import type { PopoverDirection } from './types';\r\nimport { getFocusStyle, getReducedMotionStyle } from '../../utils/styles';\r\n\r\nconst PANEL_POSITION: Record<PopoverDirection, string> = {\r\n top: 'bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%);',\r\n bottom: 'top: calc(100% + 6px); left: 50%; transform: translateX(-50%);',\r\n start: 'right: calc(100% + 6px); top: 50%; transform: translateY(-50%);',\r\n end: 'left: calc(100% + 6px); top: 50%; transform: translateY(-50%);',\r\n};\r\n\r\nexport const getComponentCss = (isOpen: boolean, direction: PopoverDirection): string => {\r\n const panelPos = PANEL_POSITION[direction];\r\n\r\n return `\r\n :host {\r\n display: inline-flex;\r\n position: relative;\r\n }\r\n :host([hidden]) {\r\n display: none;\r\n }\r\n .trigger {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--diwa-popover-trigger-size);\r\n height: var(--diwa-popover-trigger-size);\r\n padding: 0;\r\n background: none;\r\n border: none;\r\n border-radius: var(--diwa-radius-sm);\r\n transition: color var(--diwa-transition-base);\r\n }\r\n .trigger:hover {\r\n color: var(--diwa-text-primary);\r\n }\r\n ${getFocusStyle('.trigger')}\r\n .panel {\r\n display: ${isOpen ? 'block' : 'none'};\r\n position: absolute;\r\n ${panelPos}\r\n z-index: 100;\r\n min-width: var(--diwa-popover-panel-min-width);\r\n max-width: var(--diwa-popover-panel-max-width);\r\n padding: var(--diwa-space-5);\r\n background: var(--diwa-bg-elevated);\r\n border: var(--diwa-border-width-thin) solid var(--diwa-border);\r\n border-radius: var(--diwa-radius-lg);\r\n box-shadow: var(--diwa-shadow-lg);\r\n font-family: var(--diwa-font-family-base);\r\n font-size: var(--diwa-font-size-base);\r\n color: var(--diwa-text-primary);\r\n line-height: var(--diwa-line-height-normal);\r\n white-space: normal;\r\n }\r\n\r\n .panel p,\r\n .panel ::slotted(p) {\r\n margin: 0;\r\n }\r\n\r\n ${getReducedMotionStyle('.trigger')}\r\n `;\r\n};\r\n","import { Component, Element, Host, Listen, Prop, State, h } from '@stencil/core';\r\nimport type { Theme } from '../../utils/styles';\r\nimport type { PopoverDirection } from './types';\r\nimport { getComponentCss } from './diwa-popover-styles';\r\n\r\n/**\r\n * @slot default — Content displayed inside the popover panel.\r\n * @slot button — Custom trigger element that replaces the default info button.\r\n */\r\n@Component({\r\n tag: 'diwa-popover',\r\n shadow: { delegatesFocus: true },\r\n})\r\nexport class DiwaPopover {\r\n @Element() host!: HTMLDiwaPopoverElement;\r\n\r\n /** Preferred direction the panel opens relative to the trigger. */\r\n @Prop() direction: PopoverDirection = 'bottom';\r\n\r\n /** Short description text rendered directly inside the panel (alternative to using the default slot). */\r\n @Prop() description?: string;\r\n\r\n /** Adapts the color when used on a light or dark background. */\r\n @Prop({ reflect: true }) theme: Theme = 'dark';\r\n\r\n @State() private isOpen: boolean = false;\r\n\r\n @Listen('keydown', { target: 'window' })\r\n handleGlobalKeydown(e: KeyboardEvent): void {\r\n if (e.key === 'Escape' && this.isOpen) {\r\n this.isOpen = false;\r\n }\r\n }\r\n\r\n @Listen('pointerdown', { target: 'window' })\r\n handleGlobalPointerDown(e: PointerEvent): void {\r\n if (!this.isOpen) {\r\n return;\r\n }\r\n\r\n if (!e.composedPath().includes(this.host)) {\r\n this.isOpen = false;\r\n }\r\n }\r\n\r\n private toggle = (): void => {\r\n this.isOpen = !this.isOpen;\r\n };\r\n\r\n render() {\r\n return (\r\n <Host data-theme={this.theme}>\r\n <style innerHTML={getComponentCss(this.isOpen, this.direction)} />\r\n <slot name=\"button\">\r\n <button\r\n class=\"trigger\"\r\n type=\"button\"\r\n aria-expanded={String(this.isOpen)}\r\n aria-haspopup=\"true\"\r\n onClick={this.toggle}\r\n >\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n aria-hidden=\"true\"\r\n >\r\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\r\n <line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\" />\r\n <line x1=\"12\" y1=\"16\" x2=\"12.01\" y2=\"16\" />\r\n </svg>\r\n </button>\r\n </slot>\r\n <div\r\n class=\"panel\"\r\n role=\"tooltip\"\r\n aria-hidden={String(!this.isOpen)}\r\n >\r\n {this.description && <p>{this.description}</p>}\r\n <slot />\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"diwa-radio-group-item.entry.cjs.js","mappings":";;;;;;;AAEO,MAAM,eAAe,GAAG,CAC7B,OAAgB,EAChB,QAAiB,EACjB,OAAgB;IAEhB,MAAM,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAC1C,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;IAExC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;aAyBI,OAAO;cACN,OAAO;;;;;;;;;;;;;;oDAc+B,OAAO,GAAG,oBAAoB,GAAG,oBAAoB;kBACvF,OAAO,GAAG,oBAAoB,GAAG,aAAa;;;;;;;;;IAS5DA,oBAAa,CAAC,qBAAqB,CAAC;;;;;;;;;aAS3B,OAAO;cACN,OAAO;;;eAGN,OAAO,GAAG,GAAG,GAAG,GAAG;;;;;;;;;;;;;;;;IAgB9BC,4BAAqB,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;GACxE,CAAC;AACJ,CAAC;;MCzEY,kBAAkB;IAJ/B;;;;QAQ2B,UAAK,GAAU,MAAM,CAAC;;QAGtB,UAAK,GAAW,EAAE,CAAC;;QAGJ,YAAO,GAAY,KAAK,CAAC;;QAGzB,SAAI,GAAW,EAAE,CAAC;;QAGjC,aAAQ,GAAY,KAAK,CAAC;;QAG1B,YAAO,GAAY,KAAK,CAAC;QAe1C,iBAAY,GAAG;YACrB,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAC9C,CAAC;KA4BH;IArCC,mBAAmB,CAAC,MAAe;;QACjC,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,IAAI,CAAC,UAAU,0CAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,KAAK;YAAE,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;KACnC;IAQD,MAAM;QACJ,MAAM,OAAO,GAAG,YAAY,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAEnF,QACEC,QAACC,UAAI,uDACHD,oEAAO,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,GAAI,EAChFA,oEAAO,KAAK,EAAC,SAAS,IACpBA,mEAAM,KAAK,EAAC,iBAAiB,IAC3BA,oEACE,EAAE,EAAE,OAAO,EACX,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,YAAY,kBACb,IAAI,CAAC,OAAO,GAAG,MAAM,GAAG,OAAO,GAC7C,CACG,EACPA,mEAAM,KAAK,EAAC,YAAY,IACtBA,oEAAQ,CACH,CACD,CACH,EACP;KACH;;;;;;;;;;","names":["getFocusStyle","getReducedMotionStyle","h","Host"],"sources":["src/components/diwa-radio-group-item/diwa-radio-group-item-styles.ts","src/components/diwa-radio-group-item/diwa-radio-group-item.tsx"],"sourcesContent":["import { getFocusStyle, getReducedMotionStyle } from '../../utils/styles';\r\n\r\nexport const getComponentCss = (\r\n checked: boolean,\r\n disabled: boolean,\r\n compact: boolean,\r\n): string => {\r\n const boxSize = compact ? '14px' : '18px';\r\n const dotSize = compact ? '6px' : '8px';\r\n\r\n return `\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 .wrapper {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: var(--diwa-space-3);\r\n cursor: pointer;\r\n }\r\n\r\n :host([disabled]) .wrapper {\r\n cursor: not-allowed;\r\n }\r\n\r\n .input-container {\r\n position: relative;\r\n flex-shrink: 0;\r\n width: ${boxSize};\r\n height: ${boxSize};\r\n }\r\n\r\n input[type=\"radio\"] {\r\n appearance: none;\r\n -webkit-appearance: none;\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n margin: 0;\r\n padding: 0;\r\n box-sizing: border-box;\r\n cursor: pointer;\r\n border-radius: 50%;\r\n border: var(--diwa-border-width-medium) solid ${checked ? 'var(--diwa-accent)' : 'var(--diwa-border)'};\r\n background: ${checked ? 'var(--diwa-accent)' : 'transparent'};\r\n transition: border-color var(--diwa-transition-base), background var(--diwa-transition-base);\r\n }\r\n\r\n input[type=\"radio\"]:disabled {\r\n cursor: not-allowed;\r\n opacity: 0.4;\r\n }\r\n\r\n ${getFocusStyle('input[type=\"radio\"]')}\r\n\r\n /* Dot indicator when checked */\r\n .input-container::after {\r\n content: '';\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n width: ${dotSize};\r\n height: ${dotSize};\r\n border-radius: 50%;\r\n background: var(--diwa-text-on-accent, #fff);\r\n opacity: ${checked ? '1' : '0'};\r\n pointer-events: none;\r\n transition: opacity var(--diwa-transition-base);\r\n }\r\n\r\n .label-text {\r\n font-size: var(--diwa-font-size-base);\r\n color: var(--diwa-text-primary);\r\n line-height: 1.5;\r\n user-select: none;\r\n }\r\n\r\n :host([disabled]) .label-text {\r\n color: var(--diwa-text-muted);\r\n }\r\n\r\n ${getReducedMotionStyle('input[type=\"radio\"]', '.input-container::after')}\r\n `;\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-radio-group-item-styles';\r\n\r\n/**\r\n * @component diwa-radio-group-item\r\n *\r\n * A single radio option used inside `diwa-radio-group`.\r\n * The group sets `checked`, `name`, and `disabled` automatically — you\r\n * only need to provide `value` and the label via the default slot.\r\n *\r\n * Usage:\r\n * <diwa-radio-group-item value=\"s\">Small</diwa-radio-group-item>\r\n */\r\n@Component({\r\n tag: 'diwa-radio-group-item',\r\n shadow: { delegatesFocus: true },\r\n})\r\nexport class DiwaRadioGroupItem {\r\n @Element() host!: HTMLDiwaRadioGroupItemElement;\r\n\r\n /** Per-component theme override. */\r\n @Prop({ reflect: true }) theme: Theme = 'dark';\r\n\r\n /** The value submitted/emitted when this item is selected. */\r\n @Prop({ reflect: true }) value: string = '';\r\n\r\n /** Set by the parent diwa-radio-group — do not set directly. */\r\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\r\n\r\n /** Native name — set automatically by the parent group. */\r\n @Prop({ mutable: true, reflect: true }) name: string = '';\r\n\r\n /** Whether this option is disabled. Also set by the parent group when the whole group is disabled. */\r\n @Prop({ reflect: true }) disabled: boolean = false;\r\n\r\n /** Reduces size for denser layouts. */\r\n @Prop({ reflect: true }) compact: boolean = false;\r\n\r\n /**\r\n * Internal event dispatched to the parent group when the user selects this item.\r\n * Consumers should listen to the parent group's `update` event instead.\r\n */\r\n @Event({ bubbles: true, composed: true, eventName: 'diwa-radio-select' })\r\n radioSelect!: EventEmitter<{ value: string }>;\r\n\r\n @Watch('checked')\r\n handleCheckedChange(newVal: boolean) {\r\n const input = this.host.shadowRoot?.querySelector('input');\r\n if (input) input.checked = newVal;\r\n }\r\n\r\n private handleChange = () => {\r\n if (this.disabled) return;\r\n this.checked = true;\r\n this.radioSelect.emit({ value: this.value });\r\n };\r\n\r\n render() {\r\n const labelId = `diwa-rgi-${this.value || Math.random().toString(36).slice(2, 7)}`;\r\n\r\n return (\r\n <Host>\r\n <style innerHTML={getComponentCss(this.checked, this.disabled, this.compact)} />\r\n <label class=\"wrapper\">\r\n <span class=\"input-container\">\r\n <input\r\n id={labelId}\r\n type=\"radio\"\r\n name={this.name}\r\n value={this.value}\r\n checked={this.checked}\r\n disabled={this.disabled}\r\n onChange={this.handleChange}\r\n aria-checked={this.checked ? 'true' : 'false'}\r\n />\r\n </span>\r\n <span class=\"label-text\">\r\n <slot />\r\n </span>\r\n </label>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"diwa-radio-group.entry.cjs.js","mappings":"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","names":["h","Host"],"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"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"diwa-scroller.entry.cjs.js","mappings":"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","names":["getFocusStyle","h","Host"],"sources":["src/components/diwa-scroller/diwa-scroller-styles.ts","src/components/diwa-scroller/diwa-scroller.tsx"],"sourcesContent":["import { getFocusStyle } from '../../utils/styles';\r\nimport type { ScrollerScrollIndicatorPosition } from './types';\r\n\r\nconst ALIGN_MAP: Record<ScrollerScrollIndicatorPosition, string> = {\r\n top: 'flex-start',\r\n center: 'center',\r\n bottom: 'flex-end',\r\n};\r\n\r\nexport const getComponentCss = (\r\n scrollbar: boolean,\r\n alignScrollIndicator: ScrollerScrollIndicatorPosition,\r\n hasOverflow: boolean,\r\n canScrollLeft: boolean,\r\n canScrollRight: boolean,\r\n): string => {\r\n const alignItems = ALIGN_MAP[alignScrollIndicator];\r\n\r\n return `\r\n :host {\r\n display: block;\r\n position: relative;\r\n }\r\n :host([hidden]) {\r\n display: none;\r\n }\r\n .scroller {\r\n display: grid;\r\n grid-template-columns: ${hasOverflow ? 'auto minmax(0, 1fr) auto' : 'minmax(0, 1fr)'};\r\n align-items: ${alignItems};\r\n gap: var(--diwa-space-2);\r\n }\r\n .scroll-button {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: var(--diwa-space-8);\r\n height: var(--diwa-space-8);\r\n padding: 0;\r\n border: var(--diwa-border-width-thin) solid var(--diwa-border);\r\n border-radius: var(--diwa-radius-full);\r\n background: var(--diwa-bg-surface);\r\n color: var(--diwa-text-secondary);\r\n cursor: pointer;\r\n transition: var(--diwa-transition-colors), box-shadow var(--diwa-transition-fast);\r\n flex-shrink: 0;\r\n }\r\n .scroll-button:hover:not(:disabled) {\r\n color: var(--diwa-text-primary);\r\n background: var(--diwa-bg-hover);\r\n }\r\n .scroll-button:disabled {\r\n opacity: var(--diwa-opacity-disabled);\r\n cursor: not-allowed;\r\n }\r\n .scroll-button[hidden] {\r\n display: none;\r\n }\r\n ${getFocusStyle('.scroll-button')}\r\n ${getFocusStyle('.scroll-area')}\r\n .scroll-wrapper {\r\n position: relative;\r\n min-width: 0;\r\n overflow: hidden;\r\n }\r\n .scroll-area {\r\n display: flex;\r\n align-items: ${alignItems};\r\n overflow-x: auto;\r\n overflow-y: hidden;\r\n scroll-behavior: smooth;\r\n -webkit-overflow-scrolling: touch;\r\n ${scrollbar ? '' : 'scrollbar-width: none;'}\r\n }\r\n ::slotted(*) {\r\n flex: 0 0 auto;\r\n }\r\n ${!scrollbar ? `\r\n .scroll-area::-webkit-scrollbar {\r\n display: none;\r\n }\r\n ` : ''}\r\n /* Fade-out gradient masks — fixed at the visible edges via scroll-wrapper */\r\n .fade {\r\n position: absolute;\r\n top: 0;\r\n bottom: 0;\r\n width: var(--diwa-scroller-fade-width);\r\n pointer-events: none;\r\n z-index: 1;\r\n transition: opacity var(--diwa-transition-fast);\r\n }\r\n .fade--start {\r\n left: 0;\r\n background: var(--diwa-gradient-scrim-right);\r\n opacity: ${canScrollLeft ? '1' : '0'};\r\n }\r\n .fade--end {\r\n right: 0;\r\n background: var(--diwa-gradient-scrim-left);\r\n opacity: ${canScrollRight ? '1' : '0'};\r\n }\r\n `;\r\n};\r\n","import { Component, Host, Prop, State, h } from '@stencil/core';\r\nimport type { Theme } from '../../utils/styles';\r\nimport type { ScrollerScrollIndicatorPosition } from './types';\r\nimport { getComponentCss } from './diwa-scroller-styles';\r\n\r\n/**\r\n * @slot default — Items to be scrolled horizontally.\r\n */\r\n@Component({\r\n tag: 'diwa-scroller',\r\n shadow: true,\r\n})\r\nexport class DiwaScroller {\r\n /** Position of gradient fade indicators relative to the scroll area. */\r\n @Prop() alignScrollIndicator: ScrollerScrollIndicatorPosition = 'center';\r\n\r\n /** Whether to show the native horizontal scrollbar. */\r\n @Prop() scrollbar: boolean = false;\r\n\r\n /** Adapts the color when used on a light or dark background. */\r\n @Prop({ reflect: true }) theme: Theme = 'dark';\r\n\r\n @State() private hasOverflow: boolean = false;\r\n @State() private canScrollLeft: boolean = false;\r\n @State() private canScrollRight: boolean = false;\r\n\r\n private scrollAreaEl?: HTMLDivElement;\r\n private resizeObserver?: ResizeObserver;\r\n\r\n componentDidLoad(): void {\r\n this.updateScrollState();\r\n if (this.scrollAreaEl) {\r\n this.resizeObserver = new ResizeObserver(() => this.updateScrollState());\r\n this.resizeObserver.observe(this.scrollAreaEl);\r\n }\r\n }\r\n\r\n disconnectedCallback(): void {\r\n this.resizeObserver?.disconnect();\r\n }\r\n\r\n private setScrollAreaRef = (el?: HTMLDivElement): void => {\r\n this.scrollAreaEl = el;\r\n };\r\n\r\n private handleScroll = (): void => {\r\n this.updateScrollState();\r\n };\r\n\r\n private handleSlotChange = (): void => {\r\n requestAnimationFrame(() => this.updateScrollState());\r\n };\r\n\r\n private updateScrollState(): void {\r\n const el = this.scrollAreaEl;\r\n if (!el) return;\r\n\r\n const maxScrollLeft = Math.max(0, el.scrollWidth - el.clientWidth);\r\n const currentScrollLeft = el.scrollLeft;\r\n const epsilon = 1;\r\n\r\n this.hasOverflow = maxScrollLeft > epsilon;\r\n this.canScrollLeft = currentScrollLeft > epsilon;\r\n this.canScrollRight = currentScrollLeft < maxScrollLeft - epsilon;\r\n }\r\n\r\n private scrollByPage = (direction: 'start' | 'end'): void => {\r\n const el = this.scrollAreaEl;\r\n if (!el) return;\r\n\r\n const distance = Math.max(el.clientWidth * 0.8, 1);\r\n el.scrollBy({\r\n left: direction === 'start' ? -distance : distance,\r\n behavior: 'smooth',\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 this.scrollbar,\r\n this.alignScrollIndicator,\r\n this.hasOverflow,\r\n this.canScrollLeft,\r\n this.canScrollRight,\r\n )} />\r\n <div class=\"scroller\">\r\n <button\r\n type=\"button\"\r\n class=\"scroll-button scroll-button--start\"\r\n aria-label=\"Scroll left\"\r\n disabled={!this.canScrollLeft}\r\n hidden={!this.hasOverflow}\r\n onClick={() => this.scrollByPage('start')}\r\n >\r\n <svg viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\r\n <path d=\"M10 3.5 5 8l5 4.5\" />\r\n </svg>\r\n </button>\r\n\r\n <div class=\"scroll-wrapper\">\r\n <div\r\n class=\"scroll-area\"\r\n tabIndex={this.hasOverflow ? 0 : undefined}\r\n role={this.hasOverflow ? 'region' : undefined}\r\n aria-label={this.hasOverflow ? 'Scrollable content' : undefined}\r\n onScroll={this.handleScroll}\r\n ref={this.setScrollAreaRef}\r\n >\r\n <slot onSlotchange={this.handleSlotChange} />\r\n </div>\r\n <div class=\"fade fade--start\" aria-hidden=\"true\" />\r\n <div class=\"fade fade--end\" aria-hidden=\"true\" />\r\n </div>\r\n\r\n <button\r\n type=\"button\"\r\n class=\"scroll-button scroll-button--end\"\r\n aria-label=\"Scroll right\"\r\n disabled={!this.canScrollRight}\r\n hidden={!this.hasOverflow}\r\n onClick={() => this.scrollByPage('end')}\r\n >\r\n <svg viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\r\n <path d=\"M6 3.5 11 8l-5 4.5\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"diwa-segmented-control-item.entry.cjs.js","mappings":";;;;;;;AAEO,MAAM,eAAe,GAAG,CAAC,QAAiB,EAAE,QAAiB,EAAE,OAAgB,KAAa;;;;;;;;;;;;;;;eAepF,OAAO,GAAG,yCAAyC,GAAG,yCAAyC;;;kBAG5F,QAAQ,GAAG,yBAAyB,GAAG,aAAa;aACzD,QAAQ,GAAG,0BAA0B,GAAG,4BAA4B;iBAChE,OAAO,GAAG,0BAA0B,GAAG,4BAA4B;mBACjE,QAAQ,GAAG,gCAAgC,GAAG,qCAAqC;;cAExF,QAAQ,GAAG,aAAa,GAAG,SAAS;eACnC,QAAQ,GAAG,GAAG,GAAG,CAAC;;;kBAGf,QAAQ,GAAG,uBAAuB,GAAG,MAAM;;;IAGzDA,oBAAa,CAAC,MAAM,CAAC;;;;kBAIP,QAAQ,GAAG,yBAAyB,GAAG,sBAAsB;;;IAG3EC,4BAAqB,CAAC,MAAM,CAAC;CAChC;;MCtBY,wBAAwB;IAJrC;;;;QAQ2B,UAAK,GAAU,MAAM,CAAC;;QAGtB,UAAK,GAAW,EAAE,CAAC;;QAGJ,aAAQ,GAAY,KAAK,CAAC;;QAGzC,aAAQ,GAAY,KAAK,CAAC;;QAG1B,YAAO,GAAY,KAAK,CAAC;QAS1C,gBAAW,GAAG;YACpB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC3C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAChD,CAAC;KAkBH;IAhBC,MAAM;QACJ,QACEC,QAACC,UAAI,uDACHD,oEAAO,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,GAAI,EACjFA,qEACE,KAAK,EAAC,KAAK,EACX,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,IAAI,CAAC,QAAQ,kBACT,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,OAAO,EAC9C,OAAO,EAAE,IAAI,CAAC,WAAW,IAEzBA,oEAAQ,CACD,CACJ,EACP;KACH;;;;;;;","names":["getFocusStyle","getReducedMotionStyle","h","Host"],"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"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"diwa-segmented-control.entry.cjs.js","mappings":";;;;;;AAAO,MAAM,eAAe,GAAG,MAAc;;;;;;;;;;;;;;;;;;;CAmB5C;;MCIY,oBAAoB;IAJjC;;;;QAQ2B,UAAK,GAAU,MAAM,CAAC;;QAGP,UAAK,GAAW,EAAE,CAAC;;QAGlC,aAAQ,GAAY,KAAK,CAAC;;QAG1B,YAAO,GAAY,KAAK,CAAC;KA4CnD;IAnCC,gBAAgB,CAAC,KAAqC;QACpD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAED,gBAAgB;QACd,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAED,kBAAkB;QAChB,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAEO,YAAY;QAClB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CACtB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,6BAA6B,CAAC,CACjB,CAAC;QAC3C,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI;YAChB,IAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC;YAClD,IAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YACtC,IAAY,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;SACtC,CAAC,CAAC;KACJ;IAED,MAAM;QACJ,QACEA,QAACC,UAAI,qDAAC,IAAI,EAAC,OAAO,gBAAa,IAAI,CAAC,KAAK,IACvCD,oEAAO,SAAS,EAAE,eAAe,EAAE,GAAI,EACvCA,kEAAK,KAAK,EAAC,OAAO,IAChBA,oEAAQ,CACJ,CACD,EACP;KACH;;;;;;","names":["h","Host"],"sources":["src/components/diwa-segmented-control/diwa-segmented-control-styles.ts","src/components/diwa-segmented-control/diwa-segmented-control.tsx"],"sourcesContent":["export const getComponentCss = (): string => `\r\n :host {\r\n display: inline-flex;\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 .track {\r\n display: inline-flex;\r\n align-items: center;\r\n background: var(--diwa-bg-surface);\r\n border: var(--diwa-border-width-thin) solid var(--diwa-border);\r\n border-radius: var(--diwa-radius-md);\r\n padding: var(--diwa-space-0-75);\r\n gap: var(--diwa-space-0-5);\r\n }\r\n`;\r\n","import { Component, Element, Event, type EventEmitter, Host, Listen, Prop, h } from '@stencil/core';\r\nimport type { SegmentedControlUpdateEventDetail } from './types';\r\nimport type { Theme } from '../../utils/styles';\r\nimport { getComponentCss } from './diwa-segmented-control-styles';\r\n\r\n/**\r\n * @component diwa-segmented-control\r\n *\r\n * Container that groups diwa-segmented-control-item children into a\r\n * mutually exclusive selection control. Tracks the active value and\r\n * propagates state down to items.\r\n *\r\n * Usage:\r\n * <diwa-segmented-control value=\"week\" onupdate={e => setView(e.detail.value)}>\r\n * <diwa-segmented-control-item value=\"day\">Day</diwa-segmented-control-item>\r\n * <diwa-segmented-control-item value=\"week\">Week</diwa-segmented-control-item>\r\n * <diwa-segmented-control-item value=\"month\">Month</diwa-segmented-control-item>\r\n * </diwa-segmented-control>\r\n */\r\n@Component({\r\n tag: 'diwa-segmented-control',\r\n shadow: true,\r\n})\r\nexport class DiwaSegmentedControl {\r\n @Element() host!: HTMLDiwaSegmentedControlElement;\r\n\r\n /** Per-component theme override. */\r\n @Prop({ reflect: true }) theme: Theme = 'dark';\r\n\r\n /** Currently selected item value. */\r\n @Prop({ mutable: true, reflect: true }) value: string = '';\r\n\r\n /** Disables all items. */\r\n @Prop({ reflect: true }) disabled: boolean = false;\r\n\r\n /** Smaller item sizing. */\r\n @Prop({ reflect: true }) compact: boolean = false;\r\n\r\n /**\r\n * Emitted when the active item changes.\r\n */\r\n @Event({ bubbles: false, composed: false })\r\n update!: EventEmitter<SegmentedControlUpdateEventDetail>;\r\n\r\n @Listen('diwa-segment-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-segmented-control-item'),\r\n ) as HTMLDiwaSegmentedControlItemElement[];\r\n items.forEach((item) => {\r\n (item as any).selected = item.value === this.value;\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 return (\r\n <Host role=\"group\" data-theme={this.theme}>\r\n <style innerHTML={getComponentCss()} />\r\n <div class=\"track\">\r\n <slot />\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"diwa-select-option.entry.cjs.js","mappings":";;;;;;;AAEO,MAAM,eAAe,GAAG,MAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiCzCA,oBAAa,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsExBC,4BAAqB,CAAC,SAAS,CAAC;CACnC;;MCrFY,gBAAgB;IAJ7B;;;;QAW2B,aAAQ,GAAY,KAAK,CAAC;;;;;QAMX,aAAQ,GAAY,KAAK,CAAC;;;;;QAM1B,gBAAW,GAAY,KAAK,CAAC;;QAG5C,UAAK,GAAU,MAAM,CAAC;;QAGP,YAAO,GAAY,KAAK,CAAC;QAiBzD,gBAAW,GAAG;YACpB,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC1B,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SACzD,CAAC;QAEM,kBAAa,GAAG,CAAC,CAAgB;YACvC,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAC1B,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE;gBACtC,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;aACzD;SACF,CAAC;KAyBH;;IA1CC,MAAM,QAAQ;;QACZ,MAAA,IAAI,CAAC,QAAQ,0CAAE,KAAK,EAAE,CAAC;KACxB;IAiBD,MAAM;QACJ,QACEC,QAACC,UAAI,mEAAa,IAAI,CAAC,KAAK,IAC1BD,oEAAO,SAAS,EAAE,eAAe,EAAE,GAAI,EACvCA,kEACE,KAAK,EAAC,QAAQ,EACd,IAAI,EAAC,QAAQ,mBACE,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,OAAO,mBAChC,IAAI,CAAC,QAAQ,GAAG,MAAM,GAAG,SAAS,EACjD,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,EAChC,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,QAAQ,GAAG,EAAoB,CAAC,EACnD,IAAI,EAAC,QAAQ,IAEbA,mEAAM,KAAK,EAAC,OAAO,iBAAa,MAAM,EAAC,IAAI,EAAC,OAAO,aAAS,EAC5DA,mEAAM,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO,IAC9BA,oEAAQ,CACH,CACH,CACD,EACP;KACH;;;;;;;","names":["getFocusStyle","getReducedMotionStyle","h","Host"],"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"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"diwa-select.entry.cjs.js","mappings":"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","names":["getFocusStyle","getReducedMotionStyle","forceUpdate","h","Host"],"sources":["src/components/diwa-select/diwa-select-styles.ts","src/components/diwa-select/diwa-select.tsx"],"sourcesContent":["import { getFocusStyle, getReducedMotionStyle } from '../../utils/styles';\nimport type { SelectState } from './types';\r\n\r\nexport const getComponentCss = (\r\n isOpen: boolean,\r\n _disabled: boolean,\r\n _state: SelectState,\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 ────────────────────────────────────────────────────────── */\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 ───────────────────────────────────── */\r\n\r\n ${getFocusStyle('.trigger')}\r\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 /* ── 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 SelectChangeEventDetail,\r\n SelectDropdownDirection,\r\n SelectState,\r\n SelectTheme,\r\n SelectToggleEventDetail,\r\n} from './types';\r\nimport { getComponentCss } from './diwa-select-styles';\r\n\r\n/** Module-level counter for unique IDs. */\r\nlet selectIdCounter = 0;\r\n\r\n/**\r\n * @component diwa-select\r\n *\r\n * A fully accessible single-select dropdown with built-in text filter,\r\n * keyboard navigation, and form integration.\r\n *\r\n * Based on the Diwa select API contract.\r\n *\r\n * Usage:\r\n * <diwa-select name=\"fruit\" label=\"Favourite fruit\">\r\n * <diwa-select-option>Please select…</diwa-select-option>\r\n * <diwa-select-option value=\"apple\">Apple</diwa-select-option>\r\n * <diwa-select-option value=\"banana\">Banana</diwa-select-option>\r\n * </diwa-select>\r\n *\r\n * @slot default — diwa-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 */\r\n@Component({\r\n tag: 'diwa-select',\r\n shadow: { delegatesFocus: true },\r\n})\r\nexport class DiwaSelect {\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: SelectTheme = '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 value. Mutable — updated on user interaction. */\r\n @Prop({ mutable: true }) value?: string;\r\n\r\n /** Validation state. */\r\n @Prop({ reflect: true }) state: SelectState = '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: SelectDropdownDirection = '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<SelectChangeEventDetail>;\r\n\r\n /** Emitted when the dropdown opens or closes. */\r\n @Event({ bubbles: false })\r\n toggle!: EventEmitter<SelectToggleEventDetail>;\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 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-s-${++selectIdCounter}`;\r\n private triggerEl!: HTMLDivElement;\r\n private filterInputEl?: HTMLInputElement;\r\n private options: HTMLDiwaSelectOptionElement[] = [];\r\n private highlightedIndex: number = -1;\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 this.highlightedIndex = this.getFirstHighlightIndex();\r\n this.applyHighlight();\r\n requestAnimationFrame(() => {\r\n this.filterInputEl?.focus();\r\n });\r\n } else {\r\n this.clearHighlight();\r\n this.highlightedIndex = -1;\r\n this.resetFilter();\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 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('diwaSelectOptionUpdate')\r\n onOptionUpdate(e: CustomEvent<{ value: string | undefined }>): void {\r\n e.stopPropagation();\r\n this.value = e.detail.value;\r\n this.syncSelectionFromValue();\r\n this.change.emit({ name: this.name, value: this.value ?? '' });\r\n this.isOpen = false;\r\n forceUpdate(this.host);\r\n requestAnimationFrame(() => {\r\n this.triggerEl.focus();\r\n });\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<HTMLDiwaSelectOptionElement>('diwa-select-option'),\r\n );\r\n }\r\n\r\n private syncSelectionFromValue(): void {\r\n for (const opt of this.options) {\r\n const shouldBeSelected = opt.value !== undefined && opt.value === this.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(): HTMLDiwaSelectOptionElement[] {\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 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\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 this.highlightedIndex = 0;\r\n this.applyHighlight();\r\n };\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Computed display values\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n private get selectedLabel(): string {\r\n const selected = this.options.find((o) => o.value !== undefined && o.value === this.value);\r\n return (selected?.textContent ?? '').trim();\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 !== undefined && this.value !== '';\r\n const displayLabel = hasValue ? this.selectedLabel : undefined;\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 */}\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 <span class={`trigger__value${!displayLabel ? ' trigger__placeholder' : ''}`} part=\"value\">\r\n {displayLabel ?? (this.label || 'Select an option')}\r\n </span>\r\n\r\n {/* Chevron */}\r\n <span class=\"trigger__chevron\" aria-hidden=\"true\" part=\"chevron\">\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <polyline points=\"6 9 12 15 18 9\" />\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=\"listbox\"\r\n id={listboxId}\r\n aria-multiselectable=\"false\"\r\n aria-labelledby={this.label ? labelId : undefined}\r\n part=\"dropdown\"\r\n >\r\n {/* Filter */}\r\n <div class=\"filter\" part=\"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 onInput={this.onFilterInput}\r\n ref={(el) => (this.filterInputEl = el as HTMLInputElement)}\r\n part=\"filter-input\"\r\n />\r\n </div>\r\n\r\n {/* Options */}\r\n <div class=\"options\" part=\"options\">\r\n {!this.hasFilterResults && (\r\n <div class=\"no-results\" aria-live=\"polite\">No options found</div>\r\n )}\r\n <slot />\r\n </div>\r\n </div>\r\n\r\n {/* Message */}\r\n {hasMessage && (\r\n <span class=\"message\" id={hintId} role=\"status\" part=\"message\">\r\n <slot name=\"message\">{this.message}</slot>\r\n </span>\r\n )}\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"diwa-spinner.entry.cjs.js","mappings":";;;;;;;;AAEO,MAAM,eAAe,GAAG,MAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwCzCA,4BAAqB,CAAC,QAAQ,CAAC;CAClC;;;ACnCD,SAAS,UAAU,CAAC,KAAe;IACjC,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC;QAChB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;aAClC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;aAC9B,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,IAAI,GAAG,IAAI,OAAO,IAAI,CAAC;KAC/B,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,MAAM,eAAe,GAAG,UAAU,CAAC,MAACC,yBAA+C,mCAAI,EAAE,CAAC,CAAC;MA0B9E,WAAW;IAJxB;;;;;;QAY2B,SAAI,GAAgB,IAAI,CAAC;;QAGzB,UAAK,GAAU,MAAM,CAAC;;;;;QAMvC,UAAK,GAAW,SAAS,CAAC;KAqCnC;;;;IA/BC,kBAAkB;QAChB,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,eAAe,CAAC;SACxC;KACF;IAED,MAAM;QACJ;;;;;;QAMEC,QAACC,UAAI,qDAAC,IAAI,EAAC,QAAQ,gBAAa,IAAI,CAAC,KAAK,gBAAc,IAAI,CAAC,KAAK,IAChED,oEAAO,SAAS,EAAE,eAAe,EAAE,GAAI,EACvCA,kEACE,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,KAAK,GAAG,EAAmB,CAAC,EAC/C,KAAK,EAAC,OAAO,iBACD,MAAM,EAClB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,EAClC,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,kBACR,GAAG,oBACD,OAAO,qBACN,OAAO,GACvB,CACG,EACP;KACH;;;;;","names":["getReducedMotionStyle","icons.LoaderCircle","h","Host"],"sources":["src/components/diwa-spinner/diwa-spinner-styles.ts","src/components/diwa-spinner/diwa-spinner.tsx"],"sourcesContent":["import { getReducedMotionStyle } from '../../utils/styles';\r\n\r\nexport const getComponentCss = (): string => `\r\n :host {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-shrink: 0;\r\n align-self: center;\r\n width: var(--diwa-spinner-size-md);\r\n height: var(--diwa-spinner-size-md);\r\n }\r\n\r\n :host([size=\"sm\"]) {\r\n width: var(--diwa-spinner-size-sm);\r\n height: var(--diwa-spinner-size-sm);\r\n }\r\n\r\n :host([size=\"lg\"]) {\r\n width: var(--diwa-spinner-size-lg);\r\n height: var(--diwa-spinner-size-lg);\r\n }\r\n\r\n :host([hidden]) {\r\n display: none;\r\n }\r\n\r\n .glyph {\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n color: var(--diwa-spinner-color, currentColor);\r\n animation: diwa-spinner-spin var(--diwa-spinner-duration) linear infinite;\r\n transform-origin: center;\r\n }\r\n\r\n @keyframes diwa-spinner-spin {\r\n to {\r\n transform: rotate(360deg);\r\n }\r\n }\r\n\r\n ${getReducedMotionStyle('.glyph')}\r\n`;\r\n","import { Component, Host, Prop, h } from \"@stencil/core\";\r\nimport { icons } from 'lucide';\r\nimport type { SpinnerSize } from \"./types\";\r\nimport type { Theme } from \"../../utils/styles\";\r\nimport { getComponentCss } from './diwa-spinner-styles';\r\n\r\ntype IconNode = ReadonlyArray<readonly [string, Record<string, string>]>;\r\n\r\nfunction toInnerSvg(nodes: IconNode): string {\r\n return nodes\r\n .map(([tag, attrs]) => {\r\n const attrStr = Object.entries(attrs)\r\n .map(([k, v]) => `${k}=\"${v}\"`)\r\n .join(' ');\r\n return `<${tag} ${attrStr}/>`;\r\n })\r\n .join('');\r\n}\r\n\r\nconst loaderCircleSvg = toInnerSvg((icons as Record<string, IconNode>).LoaderCircle ?? []);\r\n\r\n/**\r\n * @component diwa-spinner\r\n *\r\n * An animated loading indicator based on a Lucide circular spinner glyph.\r\n * Communicates asynchronous activity to both sighted users and screen readers\r\n * via role=\"status\" and an accessible label.\r\n *\r\n * Design token override API (set on :root or any ancestor):\r\n * --diwa-spinner-size-sm Diameter for the sm tier (default 14px)\r\n * --diwa-spinner-size-md Diameter for the md tier (default 16px)\r\n * --diwa-spinner-size-lg Diameter for the lg tier (default 20px)\r\n * --diwa-spinner-color Spinner stroke colour (defaults to currentColor)\r\n *\r\n * Usage:\r\n * <diwa-spinner></diwa-spinner>\r\n * <diwa-spinner size=\"lg\" label=\"Saving changes…\"></diwa-spinner>\r\n *\r\n * Parity: mirrors stateless/stateful spinner behavior with consistent\n * aria-label propagation and size variants.\n */\r\n@Component({\r\n tag: \"diwa-spinner\",\r\n shadow: true,\r\n})\r\nexport class DiwaSpinner {\r\n private svgEl?: SVGSVGElement;\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Props\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n /** Size tier — controls diameter of the spinner ring. */\r\n @Prop({ reflect: true }) size: SpinnerSize = \"md\";\r\n\r\n /** Per-component theme override. */\r\n @Prop({ reflect: true }) theme: Theme = \"dark\";\r\n\r\n /**\r\n * Accessible label announced by screen readers.\r\n * Defaults to \"Loading\" when omitted.\r\n */\r\n @Prop() label: string = \"Loading\";\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Render\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n componentDidRender() {\r\n if (this.svgEl) {\r\n this.svgEl.innerHTML = loaderCircleSvg;\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n /**\r\n * role=\"status\" on the Host allows screen readers to announce\r\n * when the spinner appears without stealing focus (live region,\r\n * polite by default). aria-label provides the announcement text.\r\n */\r\n <Host role=\"status\" aria-label={this.label} data-theme={this.theme}>\r\n <style innerHTML={getComponentCss()} />\r\n <svg\r\n ref={(el) => (this.svgEl = el as SVGSVGElement)}\r\n class=\"glyph\"\r\n aria-hidden=\"true\"\r\n part=\"ring\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"diwa-stepper-horizontal-item.entry.cjs.js","mappings":";;;;;;AAEO,MAAM,eAAe,GAAG,CAAC,KAAgB,EAAE,MAAe;IAC/D,MAAM,WAAW,GACf,KAAK,KAAK,UAAU;UAChB,kCAAkC;UAClC,KAAK,KAAK,SAAS;cACjB,oBAAoB;cACpB,oBAAoB,CAAC;IAE7B,MAAM,UAAU,GAAG,KAAK,KAAK,YAAY,GAAG,wBAAwB,GAAG,0BAA0B,CAAC;IAElG,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;eAyBM,MAAM,GAAG,MAAM,GAAG,OAAO;;;;;;kBAMtB,KAAK,KAAK,UAAU,GAAG,kCAAkC,GAAG,oBAAoB;;;;;;;kBAOhF,WAAW;;;;;;;;;;;;;;;;;mBAiBV,KAAK,KAAK,SAAS,GAAG,gCAAgC,GAAG,qCAAqC;aACpG,UAAU;;;;;;;;;;;;;;GAcpB,CAAC;AACJ,CAAC;;MChEY,yBAAyB;IAJtC;;;QAQ2B,UAAK,GAAU,MAAM,CAAC;;QAGvC,UAAK,GAAW,EAAE,CAAC;;QAGnB,aAAQ,GAAW,EAAE,CAAC;;QAGU,UAAK,GAAc,YAAY,CAAC;;QAG/C,eAAU,GAAW,CAAC,CAAC;;QAGvB,WAAM,GAAY,KAAK,CAAC;KA6BlD;IA3BS,UAAU;QAChB,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE;;YAE7B,QACEA,iBAAK,OAAO,EAAC,WAAW,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,kBAAc,GAAG,oBAAgB,OAAO,qBAAiB,OAAO,IAC/IA,sBAAU,MAAM,EAAC,eAAe,GAAG,CAC/B,EACN;SACH;QACD,OAAOA,kBAAM,KAAK,EAAC,cAAc,IAAE,IAAI,CAAC,UAAU,CAAQ,CAAC;KAC5D;IAED,MAAM;QACJ,QACEA,QAACC,UAAI,qDAAC,IAAI,EAAC,UAAU,kBAAe,IAAI,CAAC,KAAK,KAAK,SAAS,GAAG,MAAM,GAAG,SAAS,IAC/ED,oEAAO,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,GAAI,EAC9DA,kEAAK,KAAK,EAAC,MAAM,IACfA,kEAAK,KAAK,EAAC,QAAQ,IAChB,IAAI,CAAC,UAAU,EAAE,CACd,EACNA,kEAAK,KAAK,EAAC,WAAW,iBAAa,MAAM,GAAG,EAC3C,IAAI,CAAC,KAAK,IAAIA,mEAAM,KAAK,EAAC,OAAO,IAAE,IAAI,CAAC,KAAK,CAAQ,EACrD,IAAI,CAAC,QAAQ,IAAIA,mEAAM,KAAK,EAAC,UAAU,IAAE,IAAI,CAAC,QAAQ,CAAQ,CAC3D,CACD,EACP;KACH;;;;;;","names":["h","Host"],"sources":["src/components/diwa-stepper-horizontal-item/diwa-stepper-horizontal-item-styles.ts","src/components/diwa-stepper-horizontal-item/diwa-stepper-horizontal-item.tsx"],"sourcesContent":["import type { StepState } from './types';\r\n\r\nexport const getComponentCss = (state: StepState, isLast: boolean): string => {\r\n const circleColor =\r\n state === 'complete'\r\n ? 'var(--diwa-notification-success)'\r\n : state === 'current'\r\n ? 'var(--diwa-accent)'\r\n : 'var(--diwa-border)';\r\n\r\n const labelColor = state === 'incomplete' ? 'var(--diwa-text-muted)' : 'var(--diwa-text-primary)';\r\n\r\n return `\r\n :host {\r\n display: flex;\r\n align-items: flex-start;\r\n flex: 1;\r\n min-width: 0;\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 .item {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n flex: 1;\r\n min-width: 0;\r\n gap: var(--diwa-space-2);\r\n position: relative;\r\n }\r\n\r\n /* Connector line to the right */\r\n .connector {\r\n display: ${isLast ? 'none' : 'block'};\r\n position: absolute;\r\n top: calc(var(--diwa-stepper-step-size) / 2);\r\n left: calc(50% + var(--diwa-stepper-step-size) / 2 + var(--diwa-border-width-base));\r\n right: calc(-50% + var(--diwa-stepper-step-size) / 2 + var(--diwa-border-width-base));\r\n height: var(--diwa-border-width-thin);\r\n background: ${state === 'complete' ? 'var(--diwa-notification-success)' : 'var(--diwa-border)'};\r\n }\r\n\r\n .circle {\r\n width: var(--diwa-stepper-step-size);\r\n height: var(--diwa-stepper-step-size);\r\n border-radius: 50%;\r\n background: ${circleColor};\r\n color: var(--diwa-text-on-accent, #fff);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-shrink: 0;\r\n }\r\n\r\n .circle-inner {\r\n color: inherit;\r\n font-size: var(--diwa-font-size-xs, 12px);\r\n font-weight: var(--diwa-font-weight-medium);\r\n line-height: 1;\r\n }\r\n\r\n .label {\r\n font-size: var(--diwa-font-size-sm);\r\n font-weight: ${state === 'current' ? 'var(--diwa-font-weight-medium)' : 'var(--diwa-font-weight-normal, 400)'};\r\n color: ${labelColor};\r\n text-align: center;\r\n line-height: 1.3;\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n max-width: 100%;\r\n }\r\n\r\n .sublabel {\r\n font-size: var(--diwa-font-size-xs, 11px);\r\n color: var(--diwa-text-muted);\r\n text-align: center;\r\n }\r\n `;\r\n};\r\n","import { Component, Element, Host, Prop, h } from '@stencil/core';\r\nimport type { StepState } from './types';\r\nimport type { Theme } from '../../utils/styles';\r\nimport { getComponentCss } from './diwa-stepper-horizontal-item-styles';\r\n\r\n/**\r\n * @component diwa-stepper-horizontal-item\r\n *\r\n * A single step in a `diwa-stepper-horizontal`. The parent manages `state`,\r\n * `stepNumber`, and `isLast` automatically. Provide a step label via the\r\n * `label` prop; additional context can be added with `sublabel`.\r\n *\r\n * Usage:\r\n * <diwa-stepper-horizontal-item label=\"Account\">Create your account</diwa-stepper-horizontal-item>\r\n */\r\n@Component({\r\n tag: 'diwa-stepper-horizontal-item',\r\n shadow: true,\r\n})\r\nexport class DiwaStepperHorizontalItem {\r\n @Element() host!: HTMLDiwaStepperHorizontalItemElement;\r\n\r\n /** Per-component theme override. */\r\n @Prop({ reflect: true }) theme: Theme = 'dark';\r\n\r\n /** Step label text. */\r\n @Prop() label: string = '';\r\n\r\n /** Optional secondary label (e.g. estimated time). */\r\n @Prop() sublabel: string = '';\r\n\r\n /** Step state — managed by the parent stepper. */\r\n @Prop({ mutable: true, reflect: true }) state: StepState = 'incomplete';\r\n\r\n /** 1-based step number icon — managed by the parent stepper. */\r\n @Prop({ mutable: true }) stepNumber: number = 1;\r\n\r\n /** Whether this is the last step (hides the connector line) — managed by the parent. */\r\n @Prop({ mutable: true }) isLast: boolean = false;\r\n\r\n private renderIcon() {\r\n if (this.state === 'complete') {\r\n // Checkmark SVG\r\n return (\r\n <svg viewBox=\"0 0 16 16\" width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\r\n <polyline points=\"2,8 6,12 14,4\" />\r\n </svg>\r\n );\r\n }\r\n return <span class=\"circle-inner\">{this.stepNumber}</span>;\r\n }\r\n\r\n render() {\r\n return (\r\n <Host role=\"listitem\" aria-current={this.state === 'current' ? 'step' : undefined}>\r\n <style innerHTML={getComponentCss(this.state, this.isLast)} />\r\n <div class=\"item\">\r\n <div class=\"circle\">\r\n {this.renderIcon()}\r\n </div>\r\n <div class=\"connector\" aria-hidden=\"true\" />\r\n {this.label && <span class=\"label\">{this.label}</span>}\r\n {this.sublabel && <span class=\"sublabel\">{this.sublabel}</span>}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"diwa-stepper-horizontal.entry.cjs.js","mappings":";;;;;;AAAO,MAAM,eAAe,GAAG,MAAc;;;;;;;;;;;;;;;;;;;;CAoB5C;;MCGY,qBAAqB;IAJlC;;;;QAQ2B,UAAK,GAAU,MAAM,CAAC;;QAI/C,oBAAe,GAAW,CAAC,CAAC;KAuD7B;IA5CC,iBAAiB;QACf,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAED,gBAAgB;QACd,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAED,kBAAkB;QAChB,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAEO,QAAQ;QACd,OAAO,KAAK,CAAC,IAAI,CACf,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,CACjB,CAAC;KAC7C;IAEO,SAAS;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE;gBAC3B,IAAY,CAAC,KAAK,GAAG,UAAU,CAAC;aAClC;iBAAM,IAAI,CAAC,KAAK,IAAI,CAAC,eAAe,EAAE;gBACpC,IAAY,CAAC,KAAK,GAAG,SAAS,CAAC;aACjC;iBAAM;gBACJ,IAAY,CAAC,KAAK,GAAG,YAAY,CAAC;aACpC;YACA,IAAY,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;YAChC,IAAY,CAAC,MAAM,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;SACxC,CAAC,CAAC;KACJ;IAED,MAAM;QACJ,QACEA,QAACC,UAAI,mEAAa,IAAI,CAAC,KAAK,IAC1BD,oEAAO,SAAS,EAAE,eAAe,EAAE,GAAI,EACvCA,kEAAK,KAAK,EAAC,SAAS,EAAC,IAAI,EAAC,MAAM,gBAAY,UAAU,IACpDA,oEAAQ,CACJ,CACD,EACP;KACH;;;;;;;;;","names":["h","Host"],"sources":["src/components/diwa-stepper-horizontal/diwa-stepper-horizontal-styles.ts","src/components/diwa-stepper-horizontal/diwa-stepper-horizontal.tsx"],"sourcesContent":["export const getComponentCss = (): string => `\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 .stepper {\r\n display: flex;\r\n align-items: flex-start;\r\n overflow-x: auto;\r\n scrollbar-width: none;\r\n }\r\n\r\n .stepper::-webkit-scrollbar {\r\n display: none;\r\n }\r\n`;\r\n","import { Component, Element, Event, type EventEmitter, Host, Prop, Watch, h } from '@stencil/core';\r\nimport type { StepperHorizontalUpdateEventDetail } from './types';\r\nimport type { Theme } from '../../utils/styles';\r\nimport { getComponentCss } from './diwa-stepper-horizontal-styles';\r\n\r\n/**\r\n * @component diwa-stepper-horizontal\r\n *\r\n * Displays a horizontal sequence of steps, indicating progress through a\r\n * multi-step workflow. Accepts `diwa-stepper-horizontal-item` children and\r\n * manages their `state` (complete/current/incomplete) based on `activeStepIndex`.\r\n *\r\n * Usage:\r\n * <diwa-stepper-horizontal active-step-index={1}>\r\n * <diwa-stepper-horizontal-item>Account</diwa-stepper-horizontal-item>\r\n * <diwa-stepper-horizontal-item>Details</diwa-stepper-horizontal-item>\r\n * <diwa-stepper-horizontal-item>Review</diwa-stepper-horizontal-item>\r\n * </diwa-stepper-horizontal>\r\n */\r\n@Component({\r\n tag: 'diwa-stepper-horizontal',\r\n shadow: true,\r\n})\r\nexport class DiwaStepperHorizontal {\r\n @Element() host!: HTMLDiwaStepperHorizontalElement;\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 current active step. */\r\n @Prop({ mutable: true, attribute: 'active-step-index' })\r\n activeStepIndex: number = 0;\r\n\r\n /**\r\n * Emitted when the active step index changes (e.g. the consumer calls\r\n * next/prev). This component does not auto-advance — use this event\r\n * to update `activeStepIndex` externally.\r\n */\r\n @Event({ bubbles: false, composed: false })\r\n update!: EventEmitter<StepperHorizontalUpdateEventDetail>;\r\n\r\n @Watch('activeStepIndex')\r\n handleIndexChange() {\r\n this.syncItems();\r\n }\r\n\r\n componentDidLoad() {\r\n this.syncItems();\r\n }\r\n\r\n componentDidUpdate() {\r\n this.syncItems();\r\n }\r\n\r\n private getItems(): HTMLDiwaStepperHorizontalItemElement[] {\r\n return Array.from(\r\n this.host.querySelectorAll('diwa-stepper-horizontal-item'),\r\n ) as HTMLDiwaStepperHorizontalItemElement[];\r\n }\r\n\r\n private syncItems() {\r\n const items = this.getItems();\r\n const total = items.length;\r\n items.forEach((item, i) => {\r\n if (i < this.activeStepIndex) {\r\n (item as any).state = 'complete';\r\n } else if (i === this.activeStepIndex) {\r\n (item as any).state = 'current';\r\n } else {\r\n (item as any).state = 'incomplete';\r\n }\r\n (item as any).stepNumber = i + 1;\r\n (item as any).isLast = i === total - 1;\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 class=\"stepper\" role=\"list\" aria-label=\"Progress\">\r\n <slot />\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"diwa-switch.entry.cjs.js","mappings":"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","names":["getFocusStyle","getReducedMotionStyle","h","Host"],"sources":["src/components/diwa-switch/diwa-switch-styles.ts","src/components/diwa-switch/diwa-switch.tsx"],"sourcesContent":["import type { SwitchAlignLabel } from './types';\nimport { getFocusStyle, getReducedMotionStyle } from '../../utils/styles';\n\r\nexport const getComponentCss = (\r\n checked: boolean,\r\n disabled: boolean,\r\n loading: boolean,\r\n alignLabel: SwitchAlignLabel,\r\n compact: boolean,\r\n): string => {\r\n // Subtract border-width from inset: `top` on an absolutely-positioned child\r\n // is measured from the *padding edge* (inside the border), so we must remove\r\n // the border thickness to land exactly at the visual centre of the track.\r\n const thumbInset = 'calc((var(--diwa-switch-track-height) - var(--diwa-switch-thumb-size)) / 2 - var(--diwa-border-width-base))';\r\n const trackBg = checked\r\n ? 'var(--diwa-accent)'\r\n : 'var(--diwa-bg-elevated)';\r\n const trackBorder = checked ? 'var(--diwa-accent)' : 'var(--diwa-border)';\r\n const thumbTranslate = checked\r\n ? `translateX(calc(var(--diwa-switch-track-width) - (2 * var(--diwa-border-width-base)) - var(--diwa-switch-thumb-size) - ${thumbInset}))`\r\n : `translateX(${thumbInset})`;\r\n const opacityRules = disabled || loading ? 'opacity: 0.5; pointer-events: none;' : '';\r\n const flexDir = alignLabel === 'start' ? 'row-reverse' : 'row';\r\n\r\n return `\r\n :host {\r\n display: inline-flex;\r\n font-family: var(--diwa-font-family-base);\r\n outline: none;\r\n ${compact ? `\r\n --diwa-switch-track-width: 32px;\r\n --diwa-switch-track-height: 18px;\r\n --diwa-switch-thumb-size: 12px;\r\n ` : ''}\r\n }\r\n :host([hidden]) {\r\n display: none;\r\n }\r\n .wrapper {\n display: inline-flex;\n flex-direction: ${flexDir};\n align-items: center;\n gap: var(--diwa-space-3);\n min-height: ${compact ? 'var(--diwa-touch-target-min-size-compact, 32px)' : 'var(--diwa-touch-target-min-size, 44px)'};\n cursor: ${disabled || loading ? 'not-allowed' : 'pointer'};\n ${opacityRules}\n }\n .track {\r\n position: relative;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: flex-start;\r\n width: var(--diwa-switch-track-width);\r\n height: var(--diwa-switch-track-height);\r\n background: ${trackBg};\r\n border: var(--diwa-border-width-base) solid ${trackBorder};\r\n border-radius: var(--diwa-radius-xl);\r\n box-sizing: border-box;\r\n flex-shrink: 0;\r\n transition: background var(--diwa-transition-base), border-color var(--diwa-transition-base), box-shadow var(--diwa-transition-fast);\r\n }\r\n @media (hover: hover) and (pointer: fine) {\n .wrapper:hover .track {\n border-color: ${checked ? 'var(--diwa-accent-hover)' : 'var(--diwa-text-secondary)'};\n background: ${checked ? 'var(--diwa-accent-hover)' : 'var(--diwa-bg-hover)'};\n }\n }\n ${getFocusStyle('.track')}\r\n .thumb {\r\n position: absolute;\r\n top: ${thumbInset};\r\n left: 0;\r\n width: var(--diwa-switch-thumb-size);\r\n height: var(--diwa-switch-thumb-size);\r\n background: var(--diwa-bg-surface);\r\n border-radius: 50%;\r\n transform: ${thumbTranslate};\r\n box-shadow: var(--diwa-shadow-sm);\r\n transition: transform var(--diwa-transition-base), background var(--diwa-transition-base), box-shadow var(--diwa-transition-fast);\r\n pointer-events: none;\r\n }\r\n .loading-indicator {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n }\r\n .label {\r\n font-family: var(--diwa-font-family-base);\r\n font-size: var(--diwa-font-size-base);\r\n font-weight: var(--diwa-font-weight-medium);\r\n line-height: var(--diwa-line-height-normal);\r\n color: var(--diwa-text-primary);\r\n user-select: none;\r\n }\r\n\r\n ${getReducedMotionStyle('.track', '.thumb')}\r\n `;\r\n};\r\n","import { Component, Event, type EventEmitter, Host, Prop, h } from '@stencil/core';\r\nimport type { Theme } from '../../utils/styles';\r\nimport type { SwitchAlignLabel, SwitchUpdateEventDetail } from './types';\r\nimport { getComponentCss } from './diwa-switch-styles';\r\n\r\n/**\r\n * @slot default — Label text for the switch.\r\n *\r\n * @controlled {\"props\": [\"checked\"], \"event\": \"update\"}\r\n */\r\n@Component({\r\n tag: 'diwa-switch',\r\n shadow: { delegatesFocus: true },\r\n})\r\nexport class DiwaSwitch {\r\n /** Whether the switch is in the on state. */\r\n @Prop({ reflect: true }) checked: boolean = false;\r\n\r\n /** Disables interaction. No events fire while disabled. */\r\n @Prop({ reflect: true }) disabled: boolean = false;\r\n\r\n /** Shows a loading state. Disables interaction while active. */\r\n @Prop({ reflect: true }) loading: boolean = false;\r\n\r\n /** Position of the label relative to the track. */\r\n @Prop() alignLabel: SwitchAlignLabel = 'end';\r\n\r\n /** Reduces track and thumb dimensions for use in dense layouts. */\r\n @Prop({ reflect: true }) compact: boolean = false;\r\n\r\n /** Adapts the color when used on a light or dark background. */\r\n @Prop({ reflect: true }) theme: Theme = 'dark';\r\n\r\n /** Emitted when the checked state changes. */\r\n @Event({ bubbles: false, composed: false }) update!: EventEmitter<SwitchUpdateEventDetail>;\r\n\r\n private handleClick = (): void => {\r\n if (this.disabled || this.loading) return;\r\n this.update.emit({ checked: !this.checked });\r\n };\r\n\r\n private handleKeyDown = (e: KeyboardEvent): void => {\r\n if (e.key === ' ' || e.key === 'Enter') {\r\n e.preventDefault();\r\n this.handleClick();\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n <Host data-theme={this.theme}>\r\n <style innerHTML={getComponentCss(this.checked, this.disabled, this.loading, this.alignLabel, this.compact)} />\r\n <span\r\n class=\"wrapper\"\r\n onClick={this.handleClick}\r\n >\r\n <span\r\n class=\"track\"\r\n role=\"switch\"\r\n aria-checked={String(this.checked)}\r\n aria-disabled={this.disabled || this.loading ? 'true' : undefined}\r\n tabIndex={this.disabled || this.loading ? -1 : 0}\r\n onKeyDown={this.handleKeyDown}\r\n >\r\n {!this.loading && <span class=\"thumb\" />}\r\n {this.loading && (\r\n <span class=\"loading-indicator\" aria-hidden=\"true\">\r\n <diwa-spinner size=\"sm\" />\r\n </span>\r\n )}\r\n </span>\r\n <span class=\"label\">\r\n <slot />\r\n </span>\r\n </span>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"diwa-table-body.entry.cjs.js","mappings":";;;;;;AAAO,MAAM,eAAe,GAAG,MAAc;;;;;;CAM5C;;MCAY,aAAa;IAD1B;;QAE2B,UAAK,GAAU,MAAM,CAAC;KAUhD;IARC,MAAM;QACJ,QACEA,QAACC,UAAI,qDAAC,IAAI,EAAC,UAAU,gBAAa,IAAI,CAAC,KAAK,IAC1CD,oEAAO,SAAS,EAAE,eAAe,EAAE,GAAI,EACvCA,oEAAQ,CACH,EACP;KACH;;;;;","names":["h","Host"],"sources":["src/components/diwa-table-body/diwa-table-body-styles.ts","src/components/diwa-table-body/diwa-table-body.tsx"],"sourcesContent":["export const getComponentCss = (): string => `\r\n :host { display: table-row-group; }\r\n :host([hidden]) { display: none; }\r\n ::slotted(:nth-child(even)) {\r\n background: var(--diwa-table-stripe-color, transparent);\r\n }\r\n`;\r\n","import { Component, Host, Prop, h } from '@stencil/core';\r\nimport type { Theme } from '../../utils/styles';\r\nimport { getComponentCss } from './diwa-table-body-styles';\r\n\r\n/** @component diwa-table-body — Maps to <tbody> inside diwa-table. */\r\n@Component({ tag: 'diwa-table-body', shadow: true })\r\nexport class DiwaTableBody {\r\n @Prop({ reflect: true }) theme: Theme = 'dark';\r\n\r\n render() {\r\n return (\r\n <Host role=\"rowgroup\" data-theme={this.theme}>\r\n <style innerHTML={getComponentCss()} />\r\n <slot />\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"version":3}
|