@diwacopilot/components 1.0.0 → 1.1.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/diwa-checkbox.cjs.entry.js +1 -3
- package/dist/cjs/diwa-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/diwa-components.cjs.js +1 -1
- package/dist/cjs/diwa-heading.cjs.entry.js +126 -0
- package/dist/cjs/diwa-heading.cjs.entry.js.map +1 -0
- package/dist/cjs/diwa-icon.cjs.entry.js +1 -1
- package/dist/cjs/diwa-inline-notification.cjs.entry.js +1 -1
- package/dist/cjs/diwa-input-date.cjs.entry.js +1 -1
- package/dist/cjs/diwa-input-email.cjs.entry.js +1 -1
- package/dist/cjs/diwa-input-month.cjs.entry.js +1 -1
- package/dist/cjs/diwa-input-number.cjs.entry.js +1 -1
- package/dist/cjs/diwa-input-password.cjs.entry.js +1 -1
- package/dist/cjs/diwa-input-search.cjs.entry.js +1 -1
- package/dist/cjs/diwa-input-tel.cjs.entry.js +1 -1
- package/dist/cjs/diwa-input-text.cjs.entry.js +1 -1
- package/dist/cjs/diwa-input-time.cjs.entry.js +1 -1
- package/dist/cjs/diwa-input-url.cjs.entry.js +1 -1
- package/dist/cjs/diwa-input-week.cjs.entry.js +1 -1
- package/dist/cjs/diwa-input.cjs.entry.js +1 -1
- package/dist/cjs/diwa-link-pure.cjs.entry.js +1 -1
- package/dist/cjs/diwa-link.cjs.entry.js +1 -1
- package/dist/cjs/diwa-modal.cjs.entry.js +1 -1
- package/dist/cjs/diwa-multi-select-option.cjs.entry.js +1 -1
- package/dist/cjs/diwa-multi-select.cjs.entry.js +2 -2
- package/dist/cjs/diwa-pagination.cjs.entry.js +1 -1
- package/dist/cjs/diwa-pin-code.cjs.entry.js +2 -2
- package/dist/cjs/diwa-popover.cjs.entry.js +1 -1
- package/dist/cjs/diwa-radio-group-item.cjs.entry.js +2 -3
- package/dist/cjs/diwa-radio-group-item.cjs.entry.js.map +1 -1
- package/dist/cjs/diwa-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/diwa-scroller.cjs.entry.js +23 -13
- package/dist/cjs/diwa-scroller.cjs.entry.js.map +1 -1
- package/dist/cjs/diwa-segmented-control-item.cjs.entry.js +1 -1
- package/dist/cjs/diwa-segmented-control.cjs.entry.js +1 -1
- package/dist/cjs/diwa-select-option.cjs.entry.js +24 -10
- package/dist/cjs/diwa-select-option.cjs.entry.js.map +1 -1
- package/dist/cjs/diwa-select.cjs.entry.js +15 -1
- package/dist/cjs/diwa-select.cjs.entry.js.map +1 -1
- package/dist/cjs/diwa-spinner.cjs.entry.js +1 -1
- package/dist/cjs/diwa-stepper-horizontal-item.cjs.entry.js +1 -1
- package/dist/cjs/diwa-stepper-horizontal.cjs.entry.js +1 -1
- package/dist/cjs/diwa-switch.cjs.entry.js +1 -1
- package/dist/cjs/diwa-table-body.cjs.entry.js +1 -1
- package/dist/cjs/diwa-table-cell.cjs.entry.js +15 -15
- package/dist/cjs/diwa-table-cell.cjs.entry.js.map +1 -1
- package/dist/cjs/diwa-table-head-cell.cjs.entry.js +64 -53
- package/dist/cjs/diwa-table-head-cell.cjs.entry.js.map +1 -1
- package/dist/cjs/diwa-table-head.cjs.entry.js +16 -11
- package/dist/cjs/diwa-table-head.cjs.entry.js.map +1 -1
- package/dist/cjs/diwa-table-row.cjs.entry.js +11 -10
- package/dist/cjs/diwa-table-row.cjs.entry.js.map +1 -1
- package/dist/cjs/diwa-table.cjs.entry.js +83 -43
- package/dist/cjs/diwa-table.cjs.entry.js.map +1 -1
- package/dist/cjs/diwa-tabs-bar.cjs.entry.js +1 -1
- package/dist/cjs/diwa-tabs-item.cjs.entry.js +1 -1
- package/dist/cjs/diwa-tabs.cjs.entry.js +12 -12
- package/dist/cjs/diwa-tabs.cjs.entry.js.map +1 -1
- package/dist/cjs/diwa-tag-dismissible.cjs.entry.js +6 -8
- package/dist/cjs/diwa-tag-dismissible.cjs.entry.js.map +1 -1
- package/dist/cjs/diwa-tag.cjs.entry.js +2 -2
- package/dist/cjs/diwa-tag.cjs.entry.js.map +1 -1
- package/dist/cjs/diwa-text-list-item.cjs.entry.js +1 -1
- package/dist/cjs/diwa-text-list.cjs.entry.js +1 -1
- package/dist/cjs/diwa-text.cjs.entry.js +1 -1
- package/dist/cjs/diwa-textarea.cjs.entry.js +1 -1
- package/dist/cjs/diwa-toast-item.cjs.entry.js +1 -1
- package/dist/cjs/diwa-toast.cjs.entry.js +111 -17
- package/dist/cjs/diwa-toast.cjs.entry.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/diwa-checkbox/diwa-checkbox-styles.js +1 -3
- package/dist/collection/components/diwa-checkbox/diwa-checkbox-styles.js.map +1 -1
- package/dist/collection/components/diwa-heading/diwa-heading-styles.js +53 -0
- package/dist/collection/components/diwa-heading/diwa-heading-styles.js.map +1 -0
- package/dist/collection/components/diwa-heading/diwa-heading-utils.js +26 -0
- package/dist/collection/components/diwa-heading/diwa-heading-utils.js.map +1 -0
- package/dist/collection/components/diwa-heading/diwa-heading.js +235 -0
- package/dist/collection/components/diwa-heading/diwa-heading.js.map +1 -0
- package/dist/collection/components/diwa-heading/types.js +2 -0
- package/dist/collection/components/diwa-heading/types.js.map +1 -0
- package/dist/collection/components/diwa-icon/diwa-icon.js +1 -1
- package/dist/collection/components/diwa-inline-notification/diwa-inline-notification.js +1 -1
- package/dist/collection/components/diwa-input/diwa-input.js +1 -1
- package/dist/collection/components/diwa-input-date/diwa-input-date.js +1 -1
- package/dist/collection/components/diwa-input-email/diwa-input-email.js +1 -1
- package/dist/collection/components/diwa-input-month/diwa-input-month.js +1 -1
- package/dist/collection/components/diwa-input-number/diwa-input-number.js +1 -1
- package/dist/collection/components/diwa-input-password/diwa-input-password.js +1 -1
- package/dist/collection/components/diwa-input-search/diwa-input-search.js +1 -1
- package/dist/collection/components/diwa-input-tel/diwa-input-tel.js +1 -1
- package/dist/collection/components/diwa-input-text/diwa-input-text.js +1 -1
- package/dist/collection/components/diwa-input-time/diwa-input-time.js +1 -1
- package/dist/collection/components/diwa-input-url/diwa-input-url.js +1 -1
- package/dist/collection/components/diwa-input-week/diwa-input-week.js +1 -1
- package/dist/collection/components/diwa-link/diwa-link.js +1 -1
- package/dist/collection/components/diwa-link-pure/diwa-link-pure.js +1 -1
- package/dist/collection/components/diwa-modal/diwa-modal.js +1 -1
- package/dist/collection/components/diwa-multi-select/diwa-multi-select.js +2 -2
- package/dist/collection/components/diwa-multi-select-option/diwa-multi-select-option.js +1 -1
- package/dist/collection/components/diwa-pagination/diwa-pagination.js +1 -1
- package/dist/collection/components/diwa-pin-code/diwa-pin-code.js +2 -2
- package/dist/collection/components/diwa-popover/diwa-popover.js +1 -1
- package/dist/collection/components/diwa-radio-group/diwa-radio-group.js +1 -1
- package/dist/collection/components/diwa-radio-group-item/diwa-radio-group-item-styles.js +1 -2
- package/dist/collection/components/diwa-radio-group-item/diwa-radio-group-item-styles.js.map +1 -1
- package/dist/collection/components/diwa-radio-group-item/diwa-radio-group-item.js +1 -1
- package/dist/collection/components/diwa-scroller/diwa-scroller-styles.js +14 -9
- package/dist/collection/components/diwa-scroller/diwa-scroller-styles.js.map +1 -1
- package/dist/collection/components/diwa-scroller/diwa-scroller.js +9 -13
- package/dist/collection/components/diwa-scroller/diwa-scroller.js.map +1 -1
- package/dist/collection/components/diwa-segmented-control/diwa-segmented-control.js +1 -1
- package/dist/collection/components/diwa-segmented-control-item/diwa-segmented-control-item.js +1 -1
- package/dist/collection/components/diwa-select/diwa-select.js +17 -1
- package/dist/collection/components/diwa-select/diwa-select.js.map +1 -1
- package/dist/collection/components/diwa-select-option/diwa-select-option-styles.js +21 -9
- package/dist/collection/components/diwa-select-option/diwa-select-option-styles.js.map +1 -1
- package/dist/collection/components/diwa-select-option/diwa-select-option.js +23 -1
- package/dist/collection/components/diwa-select-option/diwa-select-option.js.map +1 -1
- package/dist/collection/components/diwa-spinner/diwa-spinner.js +1 -1
- package/dist/collection/components/diwa-stepper-horizontal/diwa-stepper-horizontal.js +1 -1
- package/dist/collection/components/diwa-stepper-horizontal-item/diwa-stepper-horizontal-item.js +1 -1
- package/dist/collection/components/diwa-switch/diwa-switch.js +1 -1
- package/dist/collection/components/diwa-table/diwa-table-styles.js +81 -42
- package/dist/collection/components/diwa-table/diwa-table-styles.js.map +1 -1
- package/dist/collection/components/diwa-table/diwa-table.js +3 -2
- package/dist/collection/components/diwa-table/diwa-table.js.map +1 -1
- package/dist/collection/components/diwa-table-body/diwa-table-body.js +1 -1
- package/dist/collection/components/diwa-table-cell/diwa-table-cell-styles.js +14 -14
- package/dist/collection/components/diwa-table-cell/diwa-table-cell-styles.js.map +1 -1
- package/dist/collection/components/diwa-table-cell/diwa-table-cell.js +1 -1
- package/dist/collection/components/diwa-table-cell/diwa-table-cell.js.map +1 -1
- package/dist/collection/components/diwa-table-head/diwa-table-head-styles.js +15 -10
- package/dist/collection/components/diwa-table-head/diwa-table-head-styles.js.map +1 -1
- package/dist/collection/components/diwa-table-head/diwa-table-head.js +1 -1
- package/dist/collection/components/diwa-table-head-cell/diwa-table-head-cell-styles.js +60 -49
- package/dist/collection/components/diwa-table-head-cell/diwa-table-head-cell-styles.js.map +1 -1
- package/dist/collection/components/diwa-table-head-cell/diwa-table-head-cell.js +4 -4
- package/dist/collection/components/diwa-table-head-cell/diwa-table-head-cell.js.map +1 -1
- package/dist/collection/components/diwa-table-row/diwa-table-row-styles.js +10 -9
- package/dist/collection/components/diwa-table-row/diwa-table-row-styles.js.map +1 -1
- package/dist/collection/components/diwa-table-row/diwa-table-row.js +1 -1
- package/dist/collection/components/diwa-tabs/diwa-tabs-styles.js +11 -11
- package/dist/collection/components/diwa-tabs/diwa-tabs-styles.js.map +1 -1
- package/dist/collection/components/diwa-tabs/diwa-tabs.js +1 -1
- package/dist/collection/components/diwa-tabs-bar/diwa-tabs-bar.js +1 -1
- package/dist/collection/components/diwa-tabs-item/diwa-tabs-item.js +1 -1
- package/dist/collection/components/diwa-tag/diwa-tag-styles.js +1 -1
- package/dist/collection/components/diwa-tag/diwa-tag-styles.js.map +1 -1
- package/dist/collection/components/diwa-tag/diwa-tag.js +1 -1
- package/dist/collection/components/diwa-tag-dismissible/diwa-tag-dismissible-styles.js +5 -6
- package/dist/collection/components/diwa-tag-dismissible/diwa-tag-dismissible-styles.js.map +1 -1
- package/dist/collection/components/diwa-tag-dismissible/diwa-tag-dismissible.js +1 -2
- package/dist/collection/components/diwa-tag-dismissible/diwa-tag-dismissible.js.map +1 -1
- package/dist/collection/components/diwa-text/diwa-text.js +1 -1
- package/dist/collection/components/diwa-text-list/diwa-text-list.js +1 -1
- package/dist/collection/components/diwa-text-list-item/diwa-text-list-item.js +1 -1
- package/dist/collection/components/diwa-textarea/diwa-textarea.js +1 -1
- package/dist/collection/components/diwa-toast/diwa-toast-manager.js +96 -0
- package/dist/collection/components/diwa-toast/diwa-toast-manager.js.map +1 -0
- package/dist/collection/components/diwa-toast/diwa-toast.js +24 -25
- package/dist/collection/components/diwa-toast/diwa-toast.js.map +1 -1
- package/dist/collection/components/diwa-toast-item/diwa-toast-item.js +1 -1
- package/dist/diwa-components/diwa-components.css +2 -2
- package/dist/diwa-components/diwa-components.esm.js +1 -1
- package/dist/diwa-components/diwa-components.esm.js.map +1 -1
- package/dist/diwa-components/{p-2b54c761.entry.js → p-09f2e643.entry.js} +2 -2
- package/dist/diwa-components/{p-4ac5a26e.entry.js → p-117dc41d.entry.js} +2 -2
- package/dist/diwa-components/p-117dc41d.entry.js.map +1 -0
- package/dist/diwa-components/{p-1022a474.entry.js → p-1250d0c7.entry.js} +2 -2
- package/dist/diwa-components/{p-1a1bd7ed.entry.js → p-13e71247.entry.js} +2 -2
- package/dist/diwa-components/p-1830772d.entry.js +2 -0
- package/dist/diwa-components/{p-f4a589b5.entry.js → p-1d708e1e.entry.js} +2 -2
- package/dist/diwa-components/{p-bb04cdd6.entry.js → p-238da82a.entry.js} +2 -2
- package/dist/diwa-components/p-29419c9a.entry.js +2 -0
- package/dist/diwa-components/p-29419c9a.entry.js.map +1 -0
- package/dist/diwa-components/{p-c896dfa5.entry.js → p-3269a4b7.entry.js} +2 -2
- package/dist/diwa-components/p-35b69160.entry.js +2 -0
- package/dist/diwa-components/p-35b69160.entry.js.map +1 -0
- package/dist/diwa-components/{p-fbe73240.entry.js → p-3660b09a.entry.js} +2 -2
- package/dist/diwa-components/{p-c37374ab.entry.js → p-36b004e9.entry.js} +2 -2
- package/dist/diwa-components/p-37e1bea3.entry.js +2 -0
- package/dist/diwa-components/p-37e1bea3.entry.js.map +1 -0
- package/dist/diwa-components/{p-851cbfb8.entry.js → p-3b38fa01.entry.js} +2 -2
- package/dist/diwa-components/p-3fb5cc30.entry.js +2 -0
- package/dist/diwa-components/p-429c596d.entry.js +2 -0
- package/dist/diwa-components/p-429c596d.entry.js.map +1 -0
- package/dist/diwa-components/p-50866c5a.entry.js +2 -0
- package/dist/diwa-components/p-50866c5a.entry.js.map +1 -0
- package/dist/diwa-components/p-5a597e27.entry.js +2 -0
- package/dist/diwa-components/p-5f9139bc.entry.js +2 -0
- package/dist/diwa-components/p-5f9139bc.entry.js.map +1 -0
- package/dist/diwa-components/p-66c15f66.entry.js +2 -0
- package/dist/diwa-components/p-66c53adc.entry.js +2 -0
- package/dist/diwa-components/p-66c53adc.entry.js.map +1 -0
- package/dist/diwa-components/{p-6253fff6.entry.js → p-71c45961.entry.js} +2 -2
- package/dist/diwa-components/{p-358e1177.entry.js → p-78b16866.entry.js} +2 -2
- package/dist/diwa-components/p-7a99a2aa.entry.js +2 -0
- package/dist/diwa-components/p-7a99a2aa.entry.js.map +1 -0
- package/dist/diwa-components/p-7dc7291f.entry.js +2 -0
- package/dist/diwa-components/{p-09a9e0a0.entry.js → p-8369c48e.entry.js} +2 -2
- package/dist/diwa-components/{p-c0614fb1.entry.js → p-8506ea0c.entry.js} +2 -2
- package/dist/diwa-components/p-863c88a4.entry.js +2 -0
- package/dist/diwa-components/{p-339f6ba7.entry.js.map → p-863c88a4.entry.js.map} +1 -1
- package/dist/diwa-components/{p-ba1ffa71.entry.js → p-87932af2.entry.js} +2 -2
- package/dist/diwa-components/{p-48009a79.entry.js → p-926e283b.entry.js} +2 -2
- package/dist/diwa-components/p-952af214.entry.js +2 -0
- package/dist/diwa-components/p-952af214.entry.js.map +1 -0
- package/dist/diwa-components/{p-4ff58224.entry.js → p-95b0fdea.entry.js} +2 -2
- package/dist/diwa-components/p-9910d570.entry.js +2 -0
- package/dist/diwa-components/p-9910d570.entry.js.map +1 -0
- package/dist/diwa-components/{p-20fd1505.entry.js → p-998dd88e.entry.js} +2 -2
- package/dist/diwa-components/p-9ade0403.entry.js +2 -0
- package/dist/diwa-components/{p-57db0c31.entry.js → p-9c89e586.entry.js} +2 -2
- package/dist/diwa-components/p-b072ff72.entry.js +2 -0
- package/dist/diwa-components/p-b072ff72.entry.js.map +1 -0
- package/dist/diwa-components/{p-565f623e.entry.js → p-bd501daa.entry.js} +2 -2
- package/dist/diwa-components/{p-c1c85f9e.entry.js → p-c6ca8d8b.entry.js} +2 -2
- package/dist/diwa-components/{p-53e21a74.entry.js → p-c78591ce.entry.js} +2 -2
- package/dist/diwa-components/{p-996f7110.entry.js → p-cc0e1662.entry.js} +2 -2
- package/dist/diwa-components/{p-711e295e.entry.js → p-d25377eb.entry.js} +2 -2
- package/dist/diwa-components/{p-7f0ce623.entry.js → p-d917625e.entry.js} +2 -2
- package/dist/diwa-components/{p-d0762292.entry.js → p-db70e030.entry.js} +2 -2
- package/dist/diwa-components/p-db70e030.entry.js.map +1 -0
- package/dist/diwa-components/p-def36bc4.entry.js +2 -0
- package/dist/diwa-components/p-def36bc4.entry.js.map +1 -0
- package/dist/diwa-components/p-e137afc9.entry.js +2 -0
- package/dist/diwa-components/{p-666844e0.entry.js → p-e1935375.entry.js} +2 -2
- package/dist/diwa-components/{p-87ea8001.entry.js → p-e602c199.entry.js} +2 -2
- package/dist/diwa-components/{p-9f140e14.entry.js → p-e9673253.entry.js} +2 -2
- package/dist/diwa-components/p-f44d4091.entry.js +2 -0
- package/dist/diwa-components/p-f44d4091.entry.js.map +1 -0
- package/dist/diwa-components/p-f60f1d81.entry.js +2 -0
- package/dist/diwa-components/p-fae653f7.entry.js +2 -0
- package/dist/esm/diwa-checkbox.entry.js +1 -3
- package/dist/esm/diwa-checkbox.entry.js.map +1 -1
- package/dist/esm/diwa-components.js +1 -1
- package/dist/esm/diwa-heading.entry.js +122 -0
- package/dist/esm/diwa-heading.entry.js.map +1 -0
- package/dist/esm/diwa-icon.entry.js +1 -1
- package/dist/esm/diwa-inline-notification.entry.js +1 -1
- package/dist/esm/diwa-input-date.entry.js +1 -1
- package/dist/esm/diwa-input-email.entry.js +1 -1
- package/dist/esm/diwa-input-month.entry.js +1 -1
- package/dist/esm/diwa-input-number.entry.js +1 -1
- package/dist/esm/diwa-input-password.entry.js +1 -1
- package/dist/esm/diwa-input-search.entry.js +1 -1
- package/dist/esm/diwa-input-tel.entry.js +1 -1
- package/dist/esm/diwa-input-text.entry.js +1 -1
- package/dist/esm/diwa-input-time.entry.js +1 -1
- package/dist/esm/diwa-input-url.entry.js +1 -1
- package/dist/esm/diwa-input-week.entry.js +1 -1
- package/dist/esm/diwa-input.entry.js +1 -1
- package/dist/esm/diwa-link-pure.entry.js +1 -1
- package/dist/esm/diwa-link.entry.js +1 -1
- package/dist/esm/diwa-modal.entry.js +1 -1
- package/dist/esm/diwa-multi-select-option.entry.js +1 -1
- package/dist/esm/diwa-multi-select.entry.js +2 -2
- package/dist/esm/diwa-pagination.entry.js +1 -1
- package/dist/esm/diwa-pin-code.entry.js +2 -2
- package/dist/esm/diwa-popover.entry.js +1 -1
- package/dist/esm/diwa-radio-group-item.entry.js +2 -3
- package/dist/esm/diwa-radio-group-item.entry.js.map +1 -1
- package/dist/esm/diwa-radio-group.entry.js +1 -1
- package/dist/esm/diwa-scroller.entry.js +23 -13
- package/dist/esm/diwa-scroller.entry.js.map +1 -1
- package/dist/esm/diwa-segmented-control-item.entry.js +1 -1
- package/dist/esm/diwa-segmented-control.entry.js +1 -1
- package/dist/esm/diwa-select-option.entry.js +24 -10
- package/dist/esm/diwa-select-option.entry.js.map +1 -1
- package/dist/esm/diwa-select.entry.js +15 -1
- package/dist/esm/diwa-select.entry.js.map +1 -1
- package/dist/esm/diwa-spinner.entry.js +1 -1
- package/dist/esm/diwa-stepper-horizontal-item.entry.js +1 -1
- package/dist/esm/diwa-stepper-horizontal.entry.js +1 -1
- package/dist/esm/diwa-switch.entry.js +1 -1
- package/dist/esm/diwa-table-body.entry.js +1 -1
- package/dist/esm/diwa-table-cell.entry.js +15 -15
- package/dist/esm/diwa-table-cell.entry.js.map +1 -1
- package/dist/esm/diwa-table-head-cell.entry.js +64 -53
- package/dist/esm/diwa-table-head-cell.entry.js.map +1 -1
- package/dist/esm/diwa-table-head.entry.js +16 -11
- package/dist/esm/diwa-table-head.entry.js.map +1 -1
- package/dist/esm/diwa-table-row.entry.js +11 -10
- package/dist/esm/diwa-table-row.entry.js.map +1 -1
- package/dist/esm/diwa-table.entry.js +83 -43
- package/dist/esm/diwa-table.entry.js.map +1 -1
- package/dist/esm/diwa-tabs-bar.entry.js +1 -1
- package/dist/esm/diwa-tabs-item.entry.js +1 -1
- package/dist/esm/diwa-tabs.entry.js +12 -12
- package/dist/esm/diwa-tabs.entry.js.map +1 -1
- package/dist/esm/diwa-tag-dismissible.entry.js +6 -8
- package/dist/esm/diwa-tag-dismissible.entry.js.map +1 -1
- package/dist/esm/diwa-tag.entry.js +2 -2
- package/dist/esm/diwa-tag.entry.js.map +1 -1
- package/dist/esm/diwa-text-list-item.entry.js +1 -1
- package/dist/esm/diwa-text-list.entry.js +1 -1
- package/dist/esm/diwa-text.entry.js +1 -1
- package/dist/esm/diwa-textarea.entry.js +1 -1
- package/dist/esm/diwa-toast-item.entry.js +1 -1
- package/dist/esm/diwa-toast.entry.js +111 -17
- package/dist/esm/diwa-toast.entry.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/diwa-heading/diwa-heading-styles.d.ts +3 -0
- package/dist/types/components/diwa-heading/diwa-heading-utils.d.ts +10 -0
- package/dist/types/components/diwa-heading/diwa-heading.d.ts +49 -0
- package/dist/types/components/diwa-heading/types.d.ts +17 -0
- package/dist/types/components/diwa-scroller/diwa-scroller-styles.d.ts +1 -1
- package/dist/types/components/diwa-scroller/diwa-scroller.d.ts +2 -1
- package/dist/types/components/diwa-select/diwa-select.d.ts +2 -0
- package/dist/types/components/diwa-select-option/diwa-select-option.d.ts +2 -0
- package/dist/types/components/diwa-table/diwa-table.d.ts +1 -1
- package/dist/types/components/diwa-toast/diwa-toast-manager.d.ts +34 -0
- package/dist/types/components/diwa-toast/diwa-toast.d.ts +12 -12
- package/dist/types/components.d.ts +144 -25
- package/dist-custom-elements/diwa-accordion.js +1 -1
- package/dist-custom-elements/diwa-button-pure.js +1 -1
- package/dist-custom-elements/diwa-button.js +1 -1
- package/dist-custom-elements/diwa-checkbox.js +1 -3
- package/dist-custom-elements/diwa-checkbox.js.map +1 -1
- package/dist-custom-elements/diwa-flyout.js +2 -2
- package/dist-custom-elements/diwa-heading.d.ts +11 -0
- package/dist-custom-elements/diwa-heading.js +149 -0
- package/dist-custom-elements/diwa-heading.js.map +1 -0
- package/dist-custom-elements/diwa-icon.js +1 -1
- package/dist-custom-elements/diwa-inline-notification.js +3 -3
- package/dist-custom-elements/diwa-input-date.js +1 -1
- package/dist-custom-elements/diwa-input-email.js +1 -1
- package/dist-custom-elements/diwa-input-month.js +1 -1
- package/dist-custom-elements/diwa-input-number.js +1 -1
- package/dist-custom-elements/diwa-input-password.js +2 -2
- package/dist-custom-elements/diwa-input-search.js +2 -2
- package/dist-custom-elements/diwa-input-tel.js +1 -1
- package/dist-custom-elements/diwa-input-text.js +1 -1
- package/dist-custom-elements/diwa-input-time.js +1 -1
- package/dist-custom-elements/diwa-input-url.js +1 -1
- package/dist-custom-elements/diwa-input-week.js +1 -1
- package/dist-custom-elements/diwa-input.js +1 -1
- package/dist-custom-elements/diwa-link-pure.js +2 -2
- package/dist-custom-elements/diwa-link.js +2 -2
- package/dist-custom-elements/diwa-modal.js +1 -1
- package/dist-custom-elements/diwa-multi-select-option.js +1 -1
- package/dist-custom-elements/diwa-multi-select.js +2 -2
- package/dist-custom-elements/diwa-pagination.js +1 -1
- package/dist-custom-elements/diwa-pin-code.js +2 -2
- package/dist-custom-elements/diwa-popover.js +1 -1
- package/dist-custom-elements/diwa-radio-group-item.js +2 -3
- package/dist-custom-elements/diwa-radio-group-item.js.map +1 -1
- package/dist-custom-elements/diwa-radio-group.js +1 -1
- package/dist-custom-elements/diwa-scroller.js +24 -14
- package/dist-custom-elements/diwa-scroller.js.map +1 -1
- package/dist-custom-elements/diwa-segmented-control-item.js +1 -1
- package/dist-custom-elements/diwa-segmented-control.js +1 -1
- package/dist-custom-elements/diwa-select-option.js +25 -10
- package/dist-custom-elements/diwa-select-option.js.map +1 -1
- package/dist-custom-elements/diwa-select.js +16 -1
- package/dist-custom-elements/diwa-select.js.map +1 -1
- package/dist-custom-elements/diwa-spinner.js +1 -1
- package/dist-custom-elements/diwa-stepper-horizontal-item.js +1 -1
- package/dist-custom-elements/diwa-stepper-horizontal.js +1 -1
- package/dist-custom-elements/diwa-switch.js +2 -2
- package/dist-custom-elements/diwa-table-body.js +1 -1
- package/dist-custom-elements/diwa-table-cell.js +15 -15
- package/dist-custom-elements/diwa-table-cell.js.map +1 -1
- package/dist-custom-elements/diwa-table-head-cell.js +64 -53
- package/dist-custom-elements/diwa-table-head-cell.js.map +1 -1
- package/dist-custom-elements/diwa-table-head.js +16 -11
- package/dist-custom-elements/diwa-table-head.js.map +1 -1
- package/dist-custom-elements/diwa-table-row.js +11 -10
- package/dist-custom-elements/diwa-table-row.js.map +1 -1
- package/dist-custom-elements/diwa-table.js +83 -43
- package/dist-custom-elements/diwa-table.js.map +1 -1
- package/dist-custom-elements/diwa-tabs-bar.js +1 -1
- package/dist-custom-elements/diwa-tabs-item.js +1 -1
- package/dist-custom-elements/diwa-tabs.js +12 -12
- package/dist-custom-elements/diwa-tabs.js.map +1 -1
- package/dist-custom-elements/diwa-tag-dismissible.js +6 -8
- package/dist-custom-elements/diwa-tag-dismissible.js.map +1 -1
- package/dist-custom-elements/diwa-tag.js +3 -3
- package/dist-custom-elements/diwa-tag.js.map +1 -1
- package/dist-custom-elements/diwa-text-list-item.js +1 -1
- package/dist-custom-elements/diwa-text-list.js +1 -1
- package/dist-custom-elements/diwa-text.js +1 -1
- package/dist-custom-elements/diwa-textarea.js +1 -1
- package/dist-custom-elements/diwa-toast-item.js +1 -1
- package/dist-custom-elements/diwa-toast.js +113 -19
- package/dist-custom-elements/diwa-toast.js.map +1 -1
- package/dist-custom-elements/{p-54e5b3fb.js → p-105f3f97.js} +2 -2
- package/dist-custom-elements/{p-54e5b3fb.js.map → p-105f3f97.js.map} +1 -1
- package/dist-custom-elements/{p-f480bce8.js → p-7c951f7f.js} +2 -2
- package/dist-custom-elements/{p-f480bce8.js.map → p-7c951f7f.js.map} +1 -1
- package/dist-custom-elements/{p-302af10d.js → p-8972ae69.js} +2 -2
- package/dist-custom-elements/{p-302af10d.js.map → p-8972ae69.js.map} +1 -1
- package/dist-custom-elements/{p-ed901570.js → p-b7255dc4.js} +2 -2
- package/dist-custom-elements/{p-ed901570.js.map → p-b7255dc4.js.map} +1 -1
- package/package.json +11 -9
- package/dist/diwa-components/p-043e3e19.entry.js +0 -2
- package/dist/diwa-components/p-05988905.entry.js +0 -2
- package/dist/diwa-components/p-08c584fb.entry.js +0 -2
- package/dist/diwa-components/p-08c584fb.entry.js.map +0 -1
- package/dist/diwa-components/p-0cbe8ed4.entry.js +0 -2
- package/dist/diwa-components/p-0cbe8ed4.entry.js.map +0 -1
- package/dist/diwa-components/p-139f619d.entry.js +0 -2
- package/dist/diwa-components/p-139f619d.entry.js.map +0 -1
- package/dist/diwa-components/p-178d18c2.entry.js +0 -2
- package/dist/diwa-components/p-178d18c2.entry.js.map +0 -1
- package/dist/diwa-components/p-2b72a324.entry.js +0 -2
- package/dist/diwa-components/p-339f6ba7.entry.js +0 -2
- package/dist/diwa-components/p-3b7a1431.entry.js +0 -2
- package/dist/diwa-components/p-3b7a1431.entry.js.map +0 -1
- package/dist/diwa-components/p-4a84fee8.entry.js +0 -2
- package/dist/diwa-components/p-4ac5a26e.entry.js.map +0 -1
- package/dist/diwa-components/p-51673c06.entry.js +0 -2
- package/dist/diwa-components/p-51673c06.entry.js.map +0 -1
- package/dist/diwa-components/p-5c2325aa.entry.js +0 -2
- package/dist/diwa-components/p-5cd79382.entry.js +0 -2
- package/dist/diwa-components/p-67950f59.entry.js +0 -2
- package/dist/diwa-components/p-67950f59.entry.js.map +0 -1
- package/dist/diwa-components/p-8012c384.entry.js +0 -2
- package/dist/diwa-components/p-8012c384.entry.js.map +0 -1
- package/dist/diwa-components/p-9088f057.entry.js +0 -2
- package/dist/diwa-components/p-94f603c2.entry.js +0 -2
- package/dist/diwa-components/p-94f603c2.entry.js.map +0 -1
- package/dist/diwa-components/p-b7132ea7.entry.js +0 -2
- package/dist/diwa-components/p-b7132ea7.entry.js.map +0 -1
- package/dist/diwa-components/p-b988c5b3.entry.js +0 -2
- package/dist/diwa-components/p-b988c5b3.entry.js.map +0 -1
- package/dist/diwa-components/p-bc2eecd2.entry.js +0 -2
- package/dist/diwa-components/p-cf960cf6.entry.js +0 -2
- package/dist/diwa-components/p-d0762292.entry.js.map +0 -1
- package/dist/diwa-components/p-f22b6145.entry.js +0 -2
- package/dist/diwa-components/p-f22b6145.entry.js.map +0 -1
- /package/dist/diwa-components/{p-2b54c761.entry.js.map → p-09f2e643.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-1022a474.entry.js.map → p-1250d0c7.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-1a1bd7ed.entry.js.map → p-13e71247.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-711e295e.entry.js.map → p-1830772d.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-f4a589b5.entry.js.map → p-1d708e1e.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-bb04cdd6.entry.js.map → p-238da82a.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-c896dfa5.entry.js.map → p-3269a4b7.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-fbe73240.entry.js.map → p-3660b09a.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-c37374ab.entry.js.map → p-36b004e9.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-851cbfb8.entry.js.map → p-3b38fa01.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-4a84fee8.entry.js.map → p-3fb5cc30.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-5cd79382.entry.js.map → p-5a597e27.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-043e3e19.entry.js.map → p-66c15f66.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-6253fff6.entry.js.map → p-71c45961.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-358e1177.entry.js.map → p-78b16866.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-05988905.entry.js.map → p-7dc7291f.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-09a9e0a0.entry.js.map → p-8369c48e.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-bc2eecd2.entry.js.map → p-8506ea0c.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-ba1ffa71.entry.js.map → p-87932af2.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-48009a79.entry.js.map → p-926e283b.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-4ff58224.entry.js.map → p-95b0fdea.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-20fd1505.entry.js.map → p-998dd88e.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-5c2325aa.entry.js.map → p-9ade0403.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-57db0c31.entry.js.map → p-9c89e586.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-565f623e.entry.js.map → p-bd501daa.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-c1c85f9e.entry.js.map → p-c6ca8d8b.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-53e21a74.entry.js.map → p-c78591ce.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-996f7110.entry.js.map → p-cc0e1662.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-9088f057.entry.js.map → p-d25377eb.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-7f0ce623.entry.js.map → p-d917625e.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-2b72a324.entry.js.map → p-e137afc9.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-666844e0.entry.js.map → p-e1935375.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-87ea8001.entry.js.map → p-e602c199.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-9f140e14.entry.js.map → p-e9673253.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-cf960cf6.entry.js.map → p-f60f1d81.entry.js.map} +0 -0
- /package/dist/diwa-components/{p-c0614fb1.entry.js.map → p-fae653f7.entry.js.map} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as n,c as a,h as e,H as i,g as t}from"./p-ed4017f0.js";import{g as d,a as r}from"./p-70bbb21a.js";const o=["a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(", ");const s=n=>Array.from(n.querySelectorAll(o));const l=(n,a,e)=>{if(!a.length)return;const i=a[0];const t=a[a.length-1];if(n.shiftKey){if(e===i){n.preventDefault();t.focus()}}else{if(e===t){n.preventDefault();i.focus()}}};const c=(n,a,e,i)=>`\n\n /* ── Host (fullscreen flex overlay centering the panel) ──────────────── */\n\n :host {\n display: flex;\n position: fixed;\n inset: 0;\n z-index: var(--diwa-z-modal);\n align-items: center;\n justify-content: center;\n padding: var(--diwa-space-8);\n box-sizing: border-box;\n pointer-events: ${n?"auto":"none"};\n visibility: ${n?"visible":"hidden"};\n transition: visibility 0s linear ${n?"0s":"var(--diwa-motion-duration-moderate)"};\n }\n\n :host([hidden]) {\n display: none;\n }\n\n /* ── Backdrop ────────────────────────────────────────────────────────── */\n\n .backdrop {\n position: fixed;\n inset: 0;\n z-index: 0;\n ${a==="blur"?`\n background: var(--diwa-bg-frosted);\n backdrop-filter: blur(var(--diwa-blur-lg));\n -webkit-backdrop-filter: blur(var(--diwa-blur-lg));`:`\n background: var(--diwa-bg-shading);`}\n opacity: ${n?"1":"0"};\n transition: opacity var(--diwa-motion-duration-moderate) var(--diwa-motion-easing-out);\n cursor: pointer;\n }\n\n /* ── Modal panel ─────────────────────────────────────────────────────── */\n\n .modal {\n position: relative;\n z-index: 1;\n display: flex;\n flex-direction: column;\n\n /* Sizing */\n width: var(--diwa-modal-width, 560px);\n max-width: calc(100vw - var(--diwa-space-10));\n max-height: var(--diwa-modal-max-height, 85vh);\n\n /* Appearance */\n background: var(--diwa-bg-surface);\n border: var(--diwa-border-width-thin) solid var(--diwa-border);\n border-radius: var(--diwa-radius-xl);\n box-shadow: var(--diwa-shadow-xl);\n overflow: hidden;\n outline: none;\n\n /* Entry / exit animation */\n opacity: ${n?"1":"0"};\n transform: ${n?"translateY(0) scale(1)":"translateY(-10px) scale(0.98)"};\n transition:\n opacity var(--diwa-motion-duration-moderate) var(--diwa-motion-easing-out),\n transform var(--diwa-motion-duration-moderate) var(--diwa-motion-easing-out);\n }\n\n /* ── Header ──────────────────────────────────────────────────────────── */\n\n .header {\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n border-bottom: var(--diwa-border-width-thin) solid var(--diwa-border);\n }\n\n .header-top {\n display: flex;\n align-items: center;\n gap: var(--diwa-space-3);\n padding: var(--diwa-space-4) var(--diwa-space-8);\n padding-right: ${e?"var(--diwa-space-5)":"var(--diwa-space-8)"};\n min-height: var(--diwa-modal-header-min-height);\n }\n\n /* Heading element */\n .heading {\n flex: 1;\n min-width: 0;\n margin: 0;\n font-family: var(--diwa-font-family-base);\n font-size: var(--diwa-font-size-fluid-xl);\n font-weight: var(--diwa-font-weight-semibold);\n line-height: var(--diwa-line-height-tight);\n color: var(--diwa-text-primary);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n /* Dismiss (×) button */\n .dismiss {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--diwa-space-10);\n height: var(--diwa-space-10);\n padding: 0;\n background: transparent;\n border: var(--diwa-border-width-thin) solid transparent;\n cursor: pointer;\n font-size: var(--diwa-font-size-xl);\n line-height: 1;\n transition:\n background-color var(--diwa-transition-fast),\n color var(--diwa-transition-fast),\n border-color var(--diwa-transition-fast);\n -webkit-font-smoothing: antialiased;\n appearance: none;\n -webkit-appearance: none;\n }\n\n .dismiss:hover {\n background-color: var(--diwa-state-hover);\n color: var(--diwa-text-primary);\n }\n\n .dismiss:active {\n background-color: var(--diwa-state-active);\n }\n\n ${d(".dismiss")}\n\n /* Sub-header slot area (optional description / metadata below the title) */\n .header-sub {\n padding: 0 var(--diwa-space-8) var(--diwa-space-5);\n color: var(--diwa-text-secondary);\n font-size: var(--diwa-font-size-base);\n line-height: var(--diwa-line-height-normal);\n }\n\n /* ── Scrollable body ─────────────────────────────────────────────────── */\n\n .body {\n flex: 1 1 auto;\n overflow-y: auto;\n padding: var(--diwa-space-8);\n ${!i?"padding-bottom: var(--diwa-space-9);":""}\n overscroll-behavior: contain;\n color: var(--diwa-text-secondary);\n font-size: var(--diwa-font-size-base);\n line-height: var(--diwa-line-height-normal);\n }\n\n /* ── Sticky footer ───────────────────────────────────────────────────── */\n\n .footer {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n gap: var(--diwa-space-3);\n padding: var(--diwa-space-5) var(--diwa-space-8);\n border-top: var(--diwa-border-width-thin) solid var(--diwa-border);\n }\n\n /* ── Reduced motion ─────────────────────────────────────────────────── */\n\n ${r(".modal",".backdrop")}\n`;let h=0;const b=class{constructor(e){n(this,e);this.dismiss=a(this,"dismiss",1);this._headingId=`diwa-modal-heading-${++h}`;this._savedFocus=null;this.theme="dark";this.open=false;this.dismissButton=true;this.disableBackdropClick=false;this.backdrop="blur";this._hasFooter=false;this._hasHeader=false;this.handleDismiss=()=>{this.dismiss.emit()};this.handleBackdropClick=()=>{if(!this.disableBackdropClick){this.handleDismiss()}}}componentWillRender(){this._hasFooter=this.host.querySelector('[slot="footer"]')!==null;this._hasHeader=this.host.querySelector('[slot="header"]')!==null}disconnectedCallback(){document.body.style.overflow=""}onOpenChange(n){var a;if(n){this._savedFocus=document.activeElement;document.body.style.overflow="hidden";requestAnimationFrame((()=>{var n;(n=this._modalEl)===null||n===void 0?void 0:n.focus()}))}else{document.body.style.overflow="";(a=this._savedFocus)===null||a===void 0?void 0:a.focus();this._savedFocus=null}}onKeyDown(n){if(!this.open)return;if(n.key==="Escape"){n.preventDefault();this.handleDismiss();return}if(n.key==="Tab"){const a=this.host.shadowRoot;if(!a)return;const e=s(a);l(n,e,a.activeElement)}}render(){const{open:n,heading:a,dismissButton:t,backdrop:d,_hasFooter:r,_hasHeader:o}=this;return e(i,{key:"a7c4c46ac2022eff1f585955d327e8b5614b268a","data-theme":this.theme},e("style",{key:"d4fd6c7649e8a6cacef20de25e1545dde2a7c89e"},c(n,d,t,r)),e("div",{key:"2aa898b9fc1136a36f8e2f9b15180d7f0573002c",class:"backdrop","aria-hidden":"true",onClick:this.handleBackdropClick}),e("div",{key:"0c61a254601a455b6082e15d797d15f09b7d0393",class:"modal",role:"dialog","aria-modal":"true","aria-labelledby":a?this._headingId:undefined,"aria-label":!a?"Dialog":undefined,"aria-hidden":n?undefined:"true",tabIndex:-1,ref:n=>{this._modalEl=n}},e("div",{key:"7dd4938654021ff4e7002e0944bb3c630fa475a0",class:"header"},e("div",{key:"d2b1302f27595ba0cac1284486bc9a4ae2d4f6e2",class:"header-top"},a&&e("h2",{key:"35ee9c3a96497b3ab7787bdcb22758b5225db485",class:"heading",id:this._headingId},a),t&&e("button",{key:"83452c628da2141bada1153e6cea6224027a2862",class:"dismiss",type:"button","aria-label":"Close dialog",onClick:this.handleDismiss},e("svg",{key:"87ce4e4636ab5a191b4f6928b78ad75ef31ffa3b",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",width:"16",height:"16","aria-hidden":"true"},e("path",{key:"940d065be71549f24cfc2f94b9407b80f8819f08",d:"M18 6 6 18M6 6l12 12"})))),o&&e("div",{key:"65484bca3079d7707c52da339291dddbf1d3f427",class:"header-sub"},e("slot",{key:"4653c0604f79201777fdb247562da2b712ef67d7",name:"header"}))),e("div",{key:"1516ef5894e7bd58708c63dffca0bd0cd83b250f",class:"body"},e("slot",{key:"0f5692e741ddc5ba6c68e556efbcec420339890e"})),r&&e("div",{key:"96eba8b23a345cecb3a18356cae02dd257daa185",class:"footer"},e("slot",{key:"ac9d27e700733b3124392cc7ee9331d2b864f5b4",name:"footer"}))))}static get delegatesFocus(){return true}get host(){return t(this)}static get watchers(){return{open:["onOpenChange"]}}};export{b as diwa_modal};
|
|
2
|
+
//# sourceMappingURL=p-c78591ce.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as n,h as
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as n,h as e,H as i}from"./p-ed4017f0.js";import{a as r}from"./p-70bbb21a.js";import{L as s}from"./p-ac8e14be.js";const t=()=>`\n :host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n align-self: center;\n width: var(--diwa-spinner-size-md);\n height: var(--diwa-spinner-size-md);\n }\n\n :host([size="sm"]) {\n width: var(--diwa-spinner-size-sm);\n height: var(--diwa-spinner-size-sm);\n }\n\n :host([size="lg"]) {\n width: var(--diwa-spinner-size-lg);\n height: var(--diwa-spinner-size-lg);\n }\n\n :host([hidden]) {\n display: none;\n }\n\n .glyph {\n display: block;\n width: 100%;\n height: 100%;\n color: var(--diwa-spinner-color, currentColor);\n animation: diwa-spinner-spin var(--diwa-spinner-duration) linear infinite;\n transform-origin: center;\n }\n\n @keyframes diwa-spinner-spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n ${r(".glyph")}\n`;var a;function o(n){return n.map((([n,e])=>{const i=Object.entries(e).map((([n,e])=>`${n}="${e}"`)).join(" ");return`<${n} ${i}/>`})).join("")}const d=o((a=s)!==null&&a!==void 0?a:[]);const h=class{constructor(e){n(this,e);this.size="md";this.theme="dark";this.label="Loading"}componentDidRender(){if(this.svgEl){this.svgEl.innerHTML=d}}render(){return e(i,{key:"a706f0d4b8ca5581f7375e4f0d36f46166974fbe",role:"status","aria-label":this.label,"data-theme":this.theme},e("style",{key:"b01e2dc30f9b3c4c5422fc9f58055b4e29e660c0",innerHTML:t()}),e("svg",{key:"dae9e1f32d62abf2e5918c8841bb25a590b0e385",ref:n=>this.svgEl=n,class:"glyph","aria-hidden":"true",part:"ring",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"}))}};export{h as diwa_spinner};
|
|
2
|
+
//# sourceMappingURL=p-cc0e1662.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as s,c as t,h as e,H as i,g as a}from"./p-ed4017f0.js";import{g as d}from"./p-35c7c864.js";import"./p-70bbb21a.js";const h=class{constructor(e){s(this,e);this.change=t(this,"change",7);this.input=t(this,"input",7);this.blur=t(this,"blur",3);this.focus=t(this,"focus",3);this._hasStart=false;this._hasEnd=false;this.label="";this.description="";this.message="";this.state="none";this.name="";this.value="";this.placeholder="";this.disabled=false;this.required=false;this.readonly=false;this.hideLabel=false;this.compact=false;this.theme="dark";this.handleInput=s=>{this.value=s.target.value;this.input.emit(this.value)};this.handleChange=s=>{this.value=s.target.value;this.change.emit(this.value)};this.handleBlur=s=>{this.blur.emit(s)};this.handleFocus=s=>{this.focus.emit(s)}}connectedCallback(){this._hasStart=!!this.el.querySelector('[slot="start"]');this._hasEnd=!!this.el.querySelector('[slot="end"]')}render(){const s="input";const t="desc";const a="msg";return e(i,{key:"
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as s,c as t,h as e,H as i,g as a}from"./p-ed4017f0.js";import{g as d}from"./p-35c7c864.js";import"./p-70bbb21a.js";const h=class{constructor(e){s(this,e);this.change=t(this,"change",7);this.input=t(this,"input",7);this.blur=t(this,"blur",3);this.focus=t(this,"focus",3);this._hasStart=false;this._hasEnd=false;this.label="";this.description="";this.message="";this.state="none";this.name="";this.value="";this.placeholder="";this.disabled=false;this.required=false;this.readonly=false;this.hideLabel=false;this.compact=false;this.theme="dark";this.handleInput=s=>{this.value=s.target.value;this.input.emit(this.value)};this.handleChange=s=>{this.value=s.target.value;this.change.emit(this.value)};this.handleBlur=s=>{this.blur.emit(s)};this.handleFocus=s=>{this.focus.emit(s)}}connectedCallback(){this._hasStart=!!this.el.querySelector('[slot="start"]');this._hasEnd=!!this.el.querySelector('[slot="end"]')}render(){const s="input";const t="desc";const a="msg";return e(i,{key:"b2e62b6ebe5a56ed9620ec7fca5f1d7a7e81460b","data-theme":this.theme},e("style",{key:"a638a4f4726f062889a190f97bff942f48d6f1d2",innerHTML:d(this.state,this.disabled,this.readonly,this.compact,this._hasStart,this._hasEnd,false)}),e("div",{key:"c1a9ec3da64ddd4e834afb897dd0323dc076b02d",class:"root"},!this.hideLabel&&this.label&&e("div",{key:"606302a7436a401cd3a636a587e1741fdfafb0d4",class:"label-row"},e("label",{key:"569bab43ec04b919c0c9bb4ccdebe734daf63c23",class:"label",htmlFor:s},this.label,this.required&&e("span",{key:"13aadb282c3e0479895c6a66bbe85ecfce393fb8",class:"required","aria-hidden":"true"}," *")),e("slot",{key:"17000b6bf4cd3e63fe7bb6a2919e40092883fac2",name:"label-after"})),e("div",{key:"e5d271956dc4084a53de67a9a4343aff72f07685",class:"input-wrapper"},this._hasStart&&e("div",{key:"d9fabf419d808c27852d0168c6c463b5cb038562",class:"slot-start"},e("slot",{key:"8b296314bf7a12d604e3410adafa6ccfca1c81dd",name:"start"})),e("input",{key:"c833d8b9412da6d72f979233c7c25878ed25c766",id:s,class:"input",type:"week",name:this.name||undefined,value:this.value,disabled:this.disabled,required:this.required,readOnly:this.readonly,min:this.min,max:this.max,autocomplete:this.autoComplete,"aria-label":this.hideLabel&&this.label?this.label:undefined,"aria-invalid":this.state==="error"?"true":undefined,"aria-required":this.required?"true":undefined,"aria-describedby":this.message?a:this.description?t:undefined,onInput:this.handleInput,onChange:this.handleChange,onBlur:this.handleBlur,onFocus:this.handleFocus}),this._hasEnd&&e("div",{key:"ee2fd8dce634707092c6fd91a998cca609859f33",class:"slot-end"},e("slot",{key:"5ecc37cb93d82d514ee9a2243e45b393277727ba",name:"end"}))),!this.message&&this.description&&e("p",{key:"df2a4edb4734385a4c8107f261ef95f7a96472f2",id:t,class:"description"},this.description),this.message&&e("p",{key:"1194dfd983f4113f9accf0a84938b378f30687f1",id:a,class:"message"},this.message)))}static get delegatesFocus(){return true}get el(){return a(this)}};export{h as diwa_input_week};
|
|
2
|
+
//# sourceMappingURL=p-d25377eb.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as i,c as e,h as n,H as t,g as s}from"./p-ed4017f0.js";import{a}from"./p-70bbb21a.js";const o=(i,e,n)=>{const t=i==="error"?"var(--diwa-notification-error)":i==="success"?"var(--diwa-notification-success)":"var(--diwa-input-border, var(--diwa-border))";const s=i==="error"?"var(--diwa-notification-error)":i==="success"?"var(--diwa-notification-success)":"var(--diwa-text-secondary)";const o=n?"36px":"44px";return`\n :host {\n display: inline-block;\n font-family: var(--diwa-font-family-base);\n outline: none;\n }\n :host([hidden]) {\n display: none;\n }\n .root {\n display: flex;\n flex-direction: column;\n gap: var(--diwa-space-2);\n }\n .label-row {\n display: flex;\n align-items: baseline;\n gap: var(--diwa-space-1);\n }\n .label {\n font-size: var(--diwa-font-size-sm);\n font-weight: var(--diwa-font-weight-semibold);\n color: var(--diwa-text-secondary);\n line-height: var(--diwa-line-height-normal);\n }\n .required {\n color: var(--diwa-notification-error);\n }\n .boxes {\n display: flex;\n gap: var(--diwa-space-3);\n }\n .box {\n width: ${o};\n height: ${o};\n padding: 0;\n text-align: center;\n font-family: var(--diwa-font-family-base);\n font-size: ${n?"var(--diwa-font-size-base)":"var(--diwa-font-size-lg)"};\n font-weight: var(--diwa-font-weight-semibold);\n color: var(--diwa-text-primary);\n background: var(--diwa-bg-input);\n border: var(--diwa-border-width-thin) solid ${t};\n border-radius: var(--diwa-radius-md);\n outline: none;\n transition: border-color var(--diwa-transition-base);\n box-sizing: border-box;\n ${e?"opacity: 0.5; pointer-events: none;":""}\n }\n .box:focus {\n border-color: var(--diwa-input-border-focus, var(--diwa-border-focus));\n }\n .description {\n font-size: var(--diwa-font-size-sm);\n color: var(--diwa-text-secondary);\n line-height: var(--diwa-line-height-normal);\n margin: 0;\n }\n .message {\n font-size: var(--diwa-font-size-sm);\n color: ${s};\n line-height: var(--diwa-line-height-normal);\n margin: 0;\n }\n\n ${a("input")}\n `};const r=class{constructor(n){i(this,n);this.update=e(this,"update",1);this.label="";this.description="";this.state="none";this.message="";this.length=4;this.value="";this.type="number";this.required=false;this.disabled=false;this.compact=false;this.hideLabel=false;this.theme="dark";this.handleInput=(i,e)=>{const n=i.target;const t=n.value.slice(-1);if(this.type==="number"&&t&&!/^\d$/.test(t)){n.value="";return}n.value=t;if(t){const i=this.getBoxes();if(e<i.length-1){i[e+1].focus();i[e+1].select()}}this.emitUpdate()};this.handleKeyDown=(i,e)=>{const n=this.getBoxes();const t=i.target;if(i.key==="Backspace"&&!t.value&&e>0){n[e-1].focus();n[e-1].select()}else if(i.key==="ArrowLeft"&&e>0){n[e-1].focus()}else if(i.key==="ArrowRight"&&e<n.length-1){n[e+1].focus()}};this.handlePaste=i=>{var e,n;i.preventDefault();const t=(n=(e=i.clipboardData)===null||e===void 0?void 0:e.getData("text"))!==null&&n!==void 0?n:"";const s=this.type==="number"?t.replace(/\D/g,""):t;const a=this.getBoxes();s.slice(0,this.length).split("").forEach(((i,e)=>{if(a[e])a[e].value=i}));const o=Math.min(s.length,this.length)-1;if(o>=0){a[o].focus();a[o].select()}this.emitUpdate()}}getBoxes(){var i,e;return Array.from((e=(i=this.host.shadowRoot)===null||i===void 0?void 0:i.querySelectorAll(".box"))!==null&&e!==void 0?e:[])}emitUpdate(){const i=this.getBoxes();const e=i.map((i=>i.value)).join("");const n=e.length===this.length&&!e.includes("");this.update.emit({value:e,isComplete:n})}render(){const i=Math.max(1,Math.min(6,this.length));const e=this.value.padEnd(i,"").slice(0,i);const s="desc";const a="msg";return n(t,{key:"
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as i,c as e,h as n,H as t,g as s}from"./p-ed4017f0.js";import{a}from"./p-70bbb21a.js";const o=(i,e,n)=>{const t=i==="error"?"var(--diwa-notification-error)":i==="success"?"var(--diwa-notification-success)":"var(--diwa-input-border, var(--diwa-border))";const s=i==="error"?"var(--diwa-notification-error)":i==="success"?"var(--diwa-notification-success)":"var(--diwa-text-secondary)";const o=n?"36px":"44px";return`\n :host {\n display: inline-block;\n font-family: var(--diwa-font-family-base);\n outline: none;\n }\n :host([hidden]) {\n display: none;\n }\n .root {\n display: flex;\n flex-direction: column;\n gap: var(--diwa-space-2);\n }\n .label-row {\n display: flex;\n align-items: baseline;\n gap: var(--diwa-space-1);\n }\n .label {\n font-size: var(--diwa-font-size-sm);\n font-weight: var(--diwa-font-weight-semibold);\n color: var(--diwa-text-secondary);\n line-height: var(--diwa-line-height-normal);\n }\n .required {\n color: var(--diwa-notification-error);\n }\n .boxes {\n display: flex;\n gap: var(--diwa-space-3);\n }\n .box {\n width: ${o};\n height: ${o};\n padding: 0;\n text-align: center;\n font-family: var(--diwa-font-family-base);\n font-size: ${n?"var(--diwa-font-size-base)":"var(--diwa-font-size-lg)"};\n font-weight: var(--diwa-font-weight-semibold);\n color: var(--diwa-text-primary);\n background: var(--diwa-bg-input);\n border: var(--diwa-border-width-thin) solid ${t};\n border-radius: var(--diwa-radius-md);\n outline: none;\n transition: border-color var(--diwa-transition-base);\n box-sizing: border-box;\n ${e?"opacity: 0.5; pointer-events: none;":""}\n }\n .box:focus {\n border-color: var(--diwa-input-border-focus, var(--diwa-border-focus));\n }\n .description {\n font-size: var(--diwa-font-size-sm);\n color: var(--diwa-text-secondary);\n line-height: var(--diwa-line-height-normal);\n margin: 0;\n }\n .message {\n font-size: var(--diwa-font-size-sm);\n color: ${s};\n line-height: var(--diwa-line-height-normal);\n margin: 0;\n }\n\n ${a("input")}\n `};const r=class{constructor(n){i(this,n);this.update=e(this,"update",1);this.label="";this.description="";this.state="none";this.message="";this.length=4;this.value="";this.type="number";this.required=false;this.disabled=false;this.compact=false;this.hideLabel=false;this.theme="dark";this.handleInput=(i,e)=>{const n=i.target;const t=n.value.slice(-1);if(this.type==="number"&&t&&!/^\d$/.test(t)){n.value="";return}n.value=t;if(t){const i=this.getBoxes();if(e<i.length-1){i[e+1].focus();i[e+1].select()}}this.emitUpdate()};this.handleKeyDown=(i,e)=>{const n=this.getBoxes();const t=i.target;if(i.key==="Backspace"&&!t.value&&e>0){n[e-1].focus();n[e-1].select()}else if(i.key==="ArrowLeft"&&e>0){n[e-1].focus()}else if(i.key==="ArrowRight"&&e<n.length-1){n[e+1].focus()}};this.handlePaste=i=>{var e,n;i.preventDefault();const t=(n=(e=i.clipboardData)===null||e===void 0?void 0:e.getData("text"))!==null&&n!==void 0?n:"";const s=this.type==="number"?t.replace(/\D/g,""):t;const a=this.getBoxes();s.slice(0,this.length).split("").forEach(((i,e)=>{if(a[e])a[e].value=i}));const o=Math.min(s.length,this.length)-1;if(o>=0){a[o].focus();a[o].select()}this.emitUpdate()}}getBoxes(){var i,e;return Array.from((e=(i=this.host.shadowRoot)===null||i===void 0?void 0:i.querySelectorAll(".box"))!==null&&e!==void 0?e:[])}emitUpdate(){const i=this.getBoxes();const e=i.map((i=>i.value)).join("");const n=e.length===this.length&&!e.includes("");this.update.emit({value:e,isComplete:n})}render(){const i=Math.max(1,Math.min(6,this.length));const e=this.value.padEnd(i,"").slice(0,i);const s="desc";const a="msg";return n(t,{key:"fd84239857264ac7ff2d70388a1b57ed28c139e1","data-theme":this.theme},n("style",{key:"8ca52e841f42b85be9b805443f76636e67108b00",innerHTML:o(this.state,this.disabled,this.compact)}),n("div",{key:"b9295c2b897c58294b87e069e874682f6882c526",class:"root"},!this.hideLabel&&this.label&&n("div",{key:"f53aa0736441db633eb7756c57091f5c86932781",class:"label-row"},n("span",{key:"95e0e0bf33034fe78d914046450a5eaddfdefadc",class:"label"},this.label,this.required&&n("span",{key:"8197798944a90f35349b68537d90670949451034",class:"required","aria-hidden":"true"}," *"))),n("div",{key:"8e7638e8c78f0f1b4ae673828d8c14682d39a76a",class:"boxes",role:"group","aria-label":this.hideLabel&&this.label?this.label:undefined},Array.from({length:i}).map(((t,o)=>{var r;return n("input",{key:o,class:"box",type:this.type==="password"?"password":"text",inputMode:this.type==="number"?"numeric":"text",maxLength:1,value:(r=e[o])!==null&&r!==void 0?r:"",disabled:this.disabled,required:this.required&&o===0,"aria-label":`Digit ${o+1} of ${i}`,"aria-describedby":o===0?this.message?a:this.description?s:undefined:undefined,onInput:i=>this.handleInput(i,o),onKeyDown:i=>this.handleKeyDown(i,o),onPaste:o===0?this.handlePaste:undefined,onFocus:i=>i.target.select(),autocomplete:o===0?"one-time-code":"off"})}))),!this.message&&this.description&&n("p",{key:"e596640dd57e61edcc854a19671d417c3fd1bf1d",id:s,class:"description"},this.description),this.message&&n("p",{key:"33741de2a6c5fa2e7d1072d5bf8d846cc54b6ddf",id:a,class:"message"},this.message)))}static get delegatesFocus(){return true}get host(){return s(this)}};export{r as diwa_pin_code};
|
|
2
|
+
//# sourceMappingURL=p-d917625e.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as i,c as n,f as e,h as t,H as a,g as r}from"./p-ed4017f0.js";import{g as s,a as o}from"./p-70bbb21a.js";const d=(i,n,e,t,a=false)=>`\n /* ── Host ──────────────────────────────────────────────────────────── */\n\n :host {\n display: block;\n position: relative;\n width: 100%;\n min-width: 0;\n font-family: var(--diwa-font-family-base);\n outline: none;\n }\n\n :host([hidden]) {\n display: none;\n }\n\n /* ── Label ──────────────────────────────────────────────────────────── */\n\n .label {\n display: block;\n margin-bottom: var(--diwa-space-1);\n font-size: var(--diwa-font-size-sm);\n font-weight: var(--diwa-font-weight-semibold);\n color: var(--diwa-text-secondary);\n line-height: var(--diwa-line-height-normal);\n cursor: default;\n }\n\n :host([hide-label]) .label {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n }\n\n .label__required {\n color: var(--diwa-notification-error);\n font-weight: var(--diwa-font-weight-semibold);\n margin-left: var(--diwa-space-1);\n }\n\n /* ── Description ────────────────────────────────────────────────────── */\n\n .description {\n display: block;\n margin-bottom: var(--diwa-space-2);\n font-size: var(--diwa-font-size-sm);\n color: var(--diwa-text-secondary);\n line-height: var(--diwa-line-height-normal);\n }\n\n /* ── Trigger ────────────────────────────────────────────────────────── */\n\n .trigger {\n display: flex;\n align-items: center;\n width: 100%;\n min-height: var(--diwa-input-height, var(--diwa-touch-target-min-size, 44px));\n padding: 0 var(--diwa-space-3);\n box-sizing: border-box;\n gap: var(--diwa-space-2);\n\n background: var(--diwa-input-bg, var(--diwa-bg-input));\n border: var(--diwa-border-width-thin) solid var(--diwa-input-border);\n border-radius: var(--diwa-input-radius, var(--diwa-radius-md));\n\n font-size: var(--diwa-font-size-base);\n font-weight: var(--diwa-font-weight-normal);\n font-family: inherit;\n color: var(--diwa-text-primary);\n text-align: left;\n line-height: 1;\n\n cursor: pointer;\n user-select: none;\n -webkit-font-smoothing: antialiased;\n\n transition: border-color var(--diwa-transition-fast), background var(--diwa-transition-fast);\n appearance: none;\n -webkit-appearance: none;\n }\n\n @media (hover: hover) and (pointer: fine) {\n :host(:not([disabled])) .trigger:hover {\n border-color: var(--diwa-border-hover);\n }\n }\n\n ${i&&!a?".trigger { border-color: var(--diwa-border-focus); border-radius: var(--diwa-input-radius, var(--diwa-radius-md)) var(--diwa-input-radius, var(--diwa-radius-md)) 0 0; }":""}\n ${i&&a?".trigger { border-color: var(--diwa-border-focus); border-radius: 0 0 var(--diwa-input-radius, var(--diwa-radius-md)) var(--diwa-input-radius, var(--diwa-radius-md)); }":""}\n\n /* ── Focus ring on trigger itself ───────────────────────────────────── */\n\n ${s(".trigger")}\n\n /* ── Selected text ──────────────────────────────────────────────────── */\n\n .trigger__value {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .trigger__placeholder {\n color: var(--diwa-text-secondary);\n }\n\n /* ── Chevron icon ───────────────────────────────────────────────────── */\n\n .trigger__chevron {\n flex-shrink: 0;\n width: var(--diwa-icon-size-md);\n height: var(--diwa-icon-size-md);\n color: var(--diwa-text-secondary);\n transition: transform var(--diwa-transition-fast);\n ${i?"transform: rotate(180deg);":""}\n }\n\n .trigger__chevron svg {\n display: block;\n width: 100%;\n height: 100%;\n }\n\n /* ── Dropdown panel ─────────────────────────────────────────────────── */\n\n .dropdown {\n position: absolute;\n left: 0;\n right: 0;\n z-index: var(--diwa-z-dropdown);\n background-color: var(--diwa-bg-elevated);\n border: var(--diwa-border-width-thin) solid var(--diwa-border-focus);\n border-top: none;\n border-radius: 0 0 var(--diwa-input-radius, var(--diwa-radius-md)) var(--diwa-input-radius, var(--diwa-radius-md));\n overflow: hidden;\n box-shadow: var(--diwa-shadow-lg);\n display: ${i?"block":"none"};\n }\n\n .dropdown--up {\n top: auto;\n bottom: 100%;\n border-top: var(--diwa-border-width-thin) solid var(--diwa-border-focus);\n border-bottom: none;\n border-radius: var(--diwa-input-radius, var(--diwa-radius-md)) var(--diwa-input-radius, var(--diwa-radius-md)) 0 0;\n margin-bottom: -1px;\n }\n\n /* ── Filter input ───────────────────────────────────────────────────── */\n\n .filter {\n padding: var(--diwa-space-2) var(--diwa-space-2) var(--diwa-space-1);\n border-bottom: var(--diwa-border-width-thin) solid var(--diwa-input-border);\n }\n\n .filter__input {\n width: 100%;\n box-sizing: border-box;\n padding: var(--diwa-space-2) var(--diwa-space-3);\n background: var(--diwa-input-bg, var(--diwa-bg-input));\n border: var(--diwa-border-width-thin) solid var(--diwa-input-border);\n border-radius: var(--diwa-radius-sm);\n color: var(--diwa-text-primary);\n font-size: var(--diwa-font-size-sm);\n font-family: inherit;\n outline: none;\n transition: border-color var(--diwa-transition-fast);\n }\n\n .filter__input::placeholder {\n color: var(--diwa-text-secondary);\n }\n\n .filter__input:focus-visible {\n outline: var(--diwa-focus-ring-width) solid var(--diwa-border-focus);\n outline-offset: var(--diwa-focus-ring-offset);\n }\n\n .filter__input:focus:not(:focus-visible) {\n outline: none;\n }\n\n /* ── Options list ───────────────────────────────────────────────────── */\n\n .options {\n max-height: var(--diwa-select-dropdown-max-height);\n overflow-y: auto;\n padding: var(--diwa-space-1);\n }\n\n .options::-webkit-scrollbar {\n width: var(--diwa-scrollbar-width);\n }\n\n .options::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .options::-webkit-scrollbar-thumb {\n background-color: var(--diwa-border);\n border-radius: var(--diwa-radius-sm);\n }\n\n /* ── Compact ────────────────────────────────────────────────────────── */\n\n :host([compact]) .trigger {\n min-height: var(--diwa-touch-target-min-size-compact, 32px);\n font-size: var(--diwa-font-size-md);\n padding: 0 var(--diwa-space-2);\n }\n\n /* ── States: error / success ────────────────────────────────────────── */\n\n :host([state="error"]) .trigger {\n border-color: var(--diwa-notification-error);\n }\n\n :host([state="success"]) .trigger {\n border-color: var(--diwa-notification-success);\n }\n\n /* ── Message ────────────────────────────────────────────────────────── */\n\n .message {\n display: block;\n margin-top: var(--diwa-space-1);\n font-size: var(--diwa-font-size-sm);\n line-height: var(--diwa-line-height-normal);\n color: var(--diwa-text-secondary);\n }\n\n :host([state="error"]) .message {\n color: var(--diwa-notification-error);\n }\n\n :host([state="success"]) .message {\n color: var(--diwa-notification-success);\n }\n\n /* ── Disabled ───────────────────────────────────────────────────────── */\n\n :host([disabled]) .trigger {\n opacity: var(--diwa-opacity-disabled);\n cursor: not-allowed;\n pointer-events: none;\n }\n\n :host([disabled]) .label {\n opacity: var(--diwa-opacity-disabled);\n }\n\n /* ── Reduced motion ─────────────────────────────────────────────────── */\n\n ${o(".trigger",".trigger__chevron",".filter__input")}\n`;let h=0;const l=class{constructor(e){i(this,e);this.change=n(this,"change",7);this.toggle=n(this,"toggle",3);this.blur=n(this,"blur",3);this.theme="dark";this.name="";this.state="none";this.hideLabel=false;this.disabled=false;this.required=false;this.compact=false;this.dropdownDirection="auto";this.isOpen=false;this.hasFilterResults=true;this.dropdownClass="dropdown";this.internalId=`diwa-s-${++h}`;this.options=[];this.highlightedIndex=-1;this.onClickOutside=i=>{if(!this.isOpen)return;const n=i.composedPath();if(!n.includes(this.host)){this.isOpen=false;this.blur.emit()}};this.onTriggerClick=()=>{if(this.disabled)return;this.isOpen=!this.isOpen};this.onTriggerKeyDown=i=>{if(this.disabled)return;if(!this.isOpen){if(i.key==="ArrowDown"||i.key==="ArrowUp"||i.key==="Enter"||i.key===" "){i.preventDefault();this.isOpen=true}return}switch(i.key){case"Escape":case"Tab":{i.preventDefault();this.isOpen=false;this.triggerEl.focus();break}case"ArrowDown":{i.preventDefault();const n=this.getVisibleOptions();this.highlightedIndex=Math.min(this.highlightedIndex+1,n.length-1);this.applyHighlight();break}case"ArrowUp":{i.preventDefault();this.highlightedIndex=Math.max(this.highlightedIndex-1,0);this.applyHighlight();break}case"Home":{i.preventDefault();this.highlightedIndex=0;this.applyHighlight();break}case"End":{i.preventDefault();const n=this.getVisibleOptions();this.highlightedIndex=n.length-1;this.applyHighlight();break}case"Enter":case" ":{i.preventDefault();const n=this.getVisibleOptions()[this.highlightedIndex];if(n&&!n.disabled){n.dispatchEvent(new MouseEvent("click",{bubbles:true,composed:true}))}break}}};this.onFilterInput=i=>{var n;const e=i.target.value.toLowerCase();let t=false;for(const i of this.options){const a=((n=i.textContent)!==null&&n!==void 0?n:"").toLowerCase();const r=a.includes(e);i.style.display=r?"":"none";if(r)t=true}this.hasFilterResults=t;this.highlightedIndex=0;this.applyHighlight()}}onThemeChange(){this.syncChildThemes()}onValueChange(){this.syncSelectionFromValue()}onIsOpenChange(i){this.toggle.emit({open:i});if(i){this.updateDropdownDirection();this.highlightedIndex=this.getFirstHighlightIndex();this.applyHighlight();requestAnimationFrame((()=>{var i;(i=this.filterInputEl)===null||i===void 0?void 0:i.focus()}))}else{this.clearHighlight();this.highlightedIndex=-1;this.resetFilter()}}connectedCallback(){document.addEventListener("mousedown",this.onClickOutside,true)}disconnectedCallback(){document.removeEventListener("mousedown",this.onClickOutside,true)}componentDidLoad(){this.collectOptions();this.syncSelectionFromValue();this.syncChildThemes()}async open(){this.isOpen=true}async close(){this.isOpen=false}onOptionUpdate(i){var n;i.stopPropagation();this.value=i.detail.value;this.syncSelectionFromValue();this.change.emit({name:this.name,value:(n=this.value)!==null&&n!==void 0?n:""});this.isOpen=false;e(this.host);requestAnimationFrame((()=>{this.triggerEl.focus()}))}onSlotChange(){this.collectOptions();this.syncSelectionFromValue();this.syncChildThemes()}collectOptions(){this.options=Array.from(this.host.querySelectorAll("diwa-select-option"))}syncSelectionFromValue(){for(const i of this.options){const n=i.value!==undefined&&i.value===this.value;if(i.selected!==n){i.selected=n;e(i)}}}syncChildThemes(){for(const i of this.options){if(i.theme!==this.theme){i.theme=this.theme;e(i)}}}getVisibleOptions(){return this.options.filter((i=>!i.disabled&&i.style.display!=="none"))}getFirstHighlightIndex(){const i=this.getVisibleOptions();const n=i.findIndex((i=>i.selected));return n>=0?n:0}applyHighlight(){const i=this.getVisibleOptions();i.forEach(((i,n)=>{i.highlighted=n===this.highlightedIndex}))}clearHighlight(){for(const i of this.options){if(i.highlighted)i.highlighted=false}this.highlightedIndex=-1}updateDropdownDirection(){if(this.dropdownDirection!=="auto"){this.dropdownClass=this.dropdownDirection==="up"?"dropdown dropdown--up":"dropdown";return}const i=this.triggerEl.getBoundingClientRect();const n=window.innerHeight-i.bottom;this.dropdownClass=n<260?"dropdown dropdown--up":"dropdown"}resetFilter(){if(this.filterInputEl)this.filterInputEl.value="";this.hasFilterResults=true;for(const i of this.options){i.style.display=""}}get selectedLabel(){var i;const n=this.options.find((i=>i.value!==undefined&&i.value===this.value));return((i=n===null||n===void 0?void 0:n.textContent)!==null&&i!==void 0?i:"").trim()}render(){const i=`${this.internalId}-label`;const n=`${this.internalId}-listbox`;const e=`${this.internalId}-hint`;const r=!!this.message&&this.state!=="none";const s=this.value!==undefined&&this.value!=="";const o=s?this.selectedLabel:undefined;return t(a,{key:"6ac13f8139797b9a4802dbb2ca5c0f2efef83b03","data-theme":this.theme},t("style",{key:"f686db5aa753249a2d4f9b5b315dd47e3ddc26a8",innerHTML:d(this.isOpen,this.disabled,this.state,this.compact,this.dropdownClass.includes("--up"))}),(this.label||this.host.querySelector('[slot="label"]'))&&t("span",{key:"cdf62e4a62423bb2a36d009e9ad9b3c6269b3e12",class:"label",id:i,part:"label"},t("slot",{key:"3e935b34db20515e579b493fbf59530f7c696756",name:"label"},this.label),this.required&&t("span",{key:"d85f9b81784e63695460dc80c8569363fb35ef98",class:"label__required","aria-hidden":"true"},"*")),(this.description||this.host.querySelector('[slot="description"]'))&&t("span",{key:"48858e2fdb26f2e4004f4e0a6e269a672e4b195b",class:"description",part:"description"},t("slot",{key:"0ccb1b9edf46c77d66d216a543807c21cd44496d",name:"description"},this.description)),t("div",{key:"0a937903a8ddafc0a56fb6ccf727a5f802c77580",class:"trigger",role:"combobox","aria-haspopup":"listbox","aria-expanded":this.isOpen?"true":"false","aria-controls":n,"aria-labelledby":this.label?i:undefined,"aria-required":this.required?"true":undefined,"aria-invalid":this.state==="error"?"true":undefined,"aria-describedby":r?e:undefined,tabIndex:this.disabled?-1:0,onClick:this.onTriggerClick,onKeyDown:this.onTriggerKeyDown,ref:i=>this.triggerEl=i,part:"trigger"},t("span",{key:"48a00505d9cd62e4f3a4070655917c706b4ee2e3",class:`trigger__value${!o?" trigger__placeholder":""}`,part:"value"},o!==null&&o!==void 0?o:this.label||"Select an option"),t("span",{key:"4d5c0157792d93dffe4473bbb5adc7c5982fc996",class:"trigger__chevron","aria-hidden":"true",part:"chevron"},t("svg",{key:"802726305d35207d83d2c6ee3d0dd087dd6a33ee",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},t("polyline",{key:"658cb6b58e2505e6859b631541aa1b5bd2e76449",points:"6 9 12 15 18 9"})))),t("div",{key:"b5f575565ed95ecf1a6111f527b1d6d0841e5076",class:this.dropdownClass,role:"listbox",id:n,"aria-multiselectable":"false","aria-labelledby":this.label?i:undefined,part:"dropdown"},t("div",{key:"b51dc6327202a6d0113e03529fe76c52273b3023",class:"filter",part:"filter"},t("input",{key:"1ad613a67c9c29086688016be3ccce2b260024d8",class:"filter__input",type:"text",placeholder:"Filter options…","aria-label":"Filter options",onInput:this.onFilterInput,ref:i=>this.filterInputEl=i,part:"filter-input"})),t("div",{key:"abf099e79d273e293cc554cb50b139181af2da8b",class:"options",part:"options"},!this.hasFilterResults&&t("div",{key:"9f7ffcd99df289bd35549fb548aa835bffbd4af1",class:"no-results","aria-live":"polite"},"No options found"),t("slot",{key:"1a56431405d701e4a89d66eb7918ba85245b189b"}))),r&&t("span",{key:"0a361efb6406ec19bf8ad8e94c4397c78cf5b32c",class:"message",id:e,role:"status",part:"message"},t("slot",{key:"f114d282d9785713e489a3f3b0fa96480569e184",name:"message"},this.message)))}static get delegatesFocus(){return true}get host(){return r(this)}static get watchers(){return{theme:["onThemeChange"],value:["onValueChange"],isOpen:["onIsOpenChange"]}}};export{l as diwa_select};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as i,c as n,f as e,h as t,H as a,g as r}from"./p-ed4017f0.js";import{g as s,a as o}from"./p-70bbb21a.js";const d=(i,n,e,t,a=false)=>`\n /* ── Host ──────────────────────────────────────────────────────────── */\n\n :host {\n display: block;\n position: relative;\n width: 100%;\n min-width: 0;\n font-family: var(--diwa-font-family-base);\n outline: none;\n }\n\n :host([hidden]) {\n display: none;\n }\n\n /* ── Label ──────────────────────────────────────────────────────────── */\n\n .label {\n display: block;\n margin-bottom: var(--diwa-space-1);\n font-size: var(--diwa-font-size-sm);\n font-weight: var(--diwa-font-weight-semibold);\n color: var(--diwa-text-secondary);\n line-height: var(--diwa-line-height-normal);\n cursor: default;\n }\n\n :host([hide-label]) .label {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n }\n\n .label__required {\n color: var(--diwa-notification-error);\n font-weight: var(--diwa-font-weight-semibold);\n margin-left: var(--diwa-space-1);\n }\n\n /* ── Description ────────────────────────────────────────────────────── */\n\n .description {\n display: block;\n margin-bottom: var(--diwa-space-2);\n font-size: var(--diwa-font-size-sm);\n color: var(--diwa-text-secondary);\n line-height: var(--diwa-line-height-normal);\n }\n\n /* ── Trigger ────────────────────────────────────────────────────────── */\n\n .trigger {\n display: flex;\n align-items: center;\n width: 100%;\n min-height: var(--diwa-input-height, var(--diwa-touch-target-min-size, 44px));\n padding: 0 var(--diwa-space-3);\n box-sizing: border-box;\n gap: var(--diwa-space-2);\n\n background: var(--diwa-input-bg, var(--diwa-bg-input));\n border: var(--diwa-border-width-thin) solid var(--diwa-input-border);\n border-radius: var(--diwa-input-radius, var(--diwa-radius-md));\n\n font-size: var(--diwa-font-size-base);\n font-weight: var(--diwa-font-weight-normal);\n font-family: inherit;\n color: var(--diwa-text-primary);\n text-align: left;\n line-height: 1;\n\n cursor: pointer;\n user-select: none;\n -webkit-font-smoothing: antialiased;\n\n transition: border-color var(--diwa-transition-fast), background var(--diwa-transition-fast);\n appearance: none;\n -webkit-appearance: none;\n }\n\n @media (hover: hover) and (pointer: fine) {\n :host(:not([disabled])) .trigger:hover {\n border-color: var(--diwa-border-hover);\n }\n }\n\n ${i&&!a?".trigger { border-color: var(--diwa-border-focus); border-radius: var(--diwa-input-radius, var(--diwa-radius-md)) var(--diwa-input-radius, var(--diwa-radius-md)) 0 0; }":""}\n ${i&&a?".trigger { border-color: var(--diwa-border-focus); border-radius: 0 0 var(--diwa-input-radius, var(--diwa-radius-md)) var(--diwa-input-radius, var(--diwa-radius-md)); }":""}\n\n /* ── Focus ring on trigger itself ───────────────────────────────────── */\n\n ${s(".trigger")}\n\n /* ── Selected text ──────────────────────────────────────────────────── */\n\n .trigger__value {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .trigger__placeholder {\n color: var(--diwa-text-secondary);\n }\n\n /* ── Chevron icon ───────────────────────────────────────────────────── */\n\n .trigger__chevron {\n flex-shrink: 0;\n width: var(--diwa-icon-size-md);\n height: var(--diwa-icon-size-md);\n color: var(--diwa-text-secondary);\n transition: transform var(--diwa-transition-fast);\n ${i?"transform: rotate(180deg);":""}\n }\n\n .trigger__chevron svg {\n display: block;\n width: 100%;\n height: 100%;\n }\n\n /* ── Dropdown panel ─────────────────────────────────────────────────── */\n\n .dropdown {\n position: absolute;\n left: 0;\n right: 0;\n z-index: var(--diwa-z-dropdown);\n background-color: var(--diwa-bg-elevated);\n border: var(--diwa-border-width-thin) solid var(--diwa-border-focus);\n border-top: none;\n border-radius: 0 0 var(--diwa-input-radius, var(--diwa-radius-md)) var(--diwa-input-radius, var(--diwa-radius-md));\n overflow: hidden;\n box-shadow: var(--diwa-shadow-lg);\n display: ${i?"block":"none"};\n }\n\n .dropdown--up {\n top: auto;\n bottom: 100%;\n border-top: var(--diwa-border-width-thin) solid var(--diwa-border-focus);\n border-bottom: none;\n border-radius: var(--diwa-input-radius, var(--diwa-radius-md)) var(--diwa-input-radius, var(--diwa-radius-md)) 0 0;\n margin-bottom: -1px;\n }\n\n /* ── Filter input ───────────────────────────────────────────────────── */\n\n .filter {\n padding: var(--diwa-space-2) var(--diwa-space-2) var(--diwa-space-1);\n border-bottom: var(--diwa-border-width-thin) solid var(--diwa-input-border);\n }\n\n .filter__input {\n width: 100%;\n box-sizing: border-box;\n padding: var(--diwa-space-2) var(--diwa-space-3);\n background: var(--diwa-input-bg, var(--diwa-bg-input));\n border: var(--diwa-border-width-thin) solid var(--diwa-input-border);\n border-radius: var(--diwa-radius-sm);\n color: var(--diwa-text-primary);\n font-size: var(--diwa-font-size-sm);\n font-family: inherit;\n outline: none;\n transition: border-color var(--diwa-transition-fast);\n }\n\n .filter__input::placeholder {\n color: var(--diwa-text-secondary);\n }\n\n .filter__input:focus-visible {\n outline: var(--diwa-focus-ring-width) solid var(--diwa-border-focus);\n outline-offset: var(--diwa-focus-ring-offset);\n }\n\n .filter__input:focus:not(:focus-visible) {\n outline: none;\n }\n\n /* ── Options list ───────────────────────────────────────────────────── */\n\n .options {\n max-height: var(--diwa-select-dropdown-max-height);\n overflow-y: auto;\n padding: var(--diwa-space-1);\n }\n\n .options::-webkit-scrollbar {\n width: var(--diwa-scrollbar-width);\n }\n\n .options::-webkit-scrollbar-track {\n background: transparent;\n }\n\n .options::-webkit-scrollbar-thumb {\n background-color: var(--diwa-border);\n border-radius: var(--diwa-radius-sm);\n }\n\n /* ── Compact ────────────────────────────────────────────────────────── */\n\n :host([compact]) .trigger {\n min-height: var(--diwa-touch-target-min-size-compact, 32px);\n font-size: var(--diwa-font-size-md);\n padding: 0 var(--diwa-space-2);\n }\n\n /* ── States: error / success ────────────────────────────────────────── */\n\n :host([state="error"]) .trigger {\n border-color: var(--diwa-notification-error);\n }\n\n :host([state="success"]) .trigger {\n border-color: var(--diwa-notification-success);\n }\n\n /* ── Message ────────────────────────────────────────────────────────── */\n\n .message {\n display: block;\n margin-top: var(--diwa-space-1);\n font-size: var(--diwa-font-size-sm);\n line-height: var(--diwa-line-height-normal);\n color: var(--diwa-text-secondary);\n }\n\n :host([state="error"]) .message {\n color: var(--diwa-notification-error);\n }\n\n :host([state="success"]) .message {\n color: var(--diwa-notification-success);\n }\n\n /* ── Disabled ───────────────────────────────────────────────────────── */\n\n :host([disabled]) .trigger {\n opacity: var(--diwa-opacity-disabled);\n cursor: not-allowed;\n pointer-events: none;\n }\n\n :host([disabled]) .label {\n opacity: var(--diwa-opacity-disabled);\n }\n\n /* ── Reduced motion ─────────────────────────────────────────────────── */\n\n ${o(".trigger",".trigger__chevron",".filter__input")}\n`;let h=0;const c=class{constructor(e){i(this,e);this.change=n(this,"change",7);this.toggle=n(this,"toggle",3);this.blur=n(this,"blur",3);this.theme="dark";this.name="";this.state="none";this.hideLabel=false;this.disabled=false;this.required=false;this.compact=false;this.dropdownDirection="auto";this.isOpen=false;this.hasFilterResults=true;this.dropdownClass="dropdown";this.internalId=`diwa-s-${++h}`;this.options=[];this.highlightedIndex=-1;this.onClickOutside=i=>{if(!this.isOpen)return;const n=i.composedPath();if(!n.includes(this.host)){this.isOpen=false;this.blur.emit()}};this.onTriggerClick=()=>{if(this.disabled)return;this.isOpen=!this.isOpen};this.onTriggerKeyDown=i=>{if(this.disabled)return;if(!this.isOpen){if(i.key==="ArrowDown"||i.key==="ArrowUp"||i.key==="Enter"||i.key===" "){i.preventDefault();this.isOpen=true}return}switch(i.key){case"Escape":case"Tab":{i.preventDefault();this.isOpen=false;this.triggerEl.focus();break}case"ArrowDown":{i.preventDefault();const n=this.getVisibleOptions();this.highlightedIndex=Math.min(this.highlightedIndex+1,n.length-1);this.applyHighlight();break}case"ArrowUp":{i.preventDefault();this.highlightedIndex=Math.max(this.highlightedIndex-1,0);this.applyHighlight();break}case"Home":{i.preventDefault();this.highlightedIndex=0;this.applyHighlight();break}case"End":{i.preventDefault();const n=this.getVisibleOptions();this.highlightedIndex=n.length-1;this.applyHighlight();break}case"Enter":case" ":{i.preventDefault();const n=this.getVisibleOptions()[this.highlightedIndex];if(n&&!n.disabled){n.dispatchEvent(new MouseEvent("click",{bubbles:true,composed:true}))}break}}};this.onFilterInput=i=>{var n;const e=i.target.value.toLowerCase();let t=false;for(const i of this.options){const a=((n=i.textContent)!==null&&n!==void 0?n:"").toLowerCase();const r=a.includes(e);i.style.display=r?"":"none";if(r)t=true}this.hasFilterResults=t;this.highlightedIndex=0;this.applyHighlight()}}onThemeChange(){this.syncChildThemes()}onCompactChange(){this.syncChildCompact()}onValueChange(){this.syncSelectionFromValue()}onIsOpenChange(i){this.toggle.emit({open:i});if(i){this.updateDropdownDirection();this.highlightedIndex=this.getFirstHighlightIndex();this.applyHighlight();requestAnimationFrame((()=>{var i;(i=this.filterInputEl)===null||i===void 0?void 0:i.focus()}))}else{this.clearHighlight();this.highlightedIndex=-1;this.resetFilter()}}connectedCallback(){document.addEventListener("mousedown",this.onClickOutside,true)}disconnectedCallback(){document.removeEventListener("mousedown",this.onClickOutside,true)}componentDidLoad(){this.collectOptions();this.syncSelectionFromValue();this.syncChildThemes();this.syncChildCompact()}async open(){this.isOpen=true}async close(){this.isOpen=false}onOptionUpdate(i){var n;i.stopPropagation();this.value=i.detail.value;this.syncSelectionFromValue();this.change.emit({name:this.name,value:(n=this.value)!==null&&n!==void 0?n:""});this.isOpen=false;e(this.host);requestAnimationFrame((()=>{this.triggerEl.focus()}))}onSlotChange(){this.collectOptions();this.syncSelectionFromValue();this.syncChildThemes();this.syncChildCompact()}collectOptions(){this.options=Array.from(this.host.querySelectorAll("diwa-select-option"))}syncSelectionFromValue(){for(const i of this.options){const n=i.value!==undefined&&i.value===this.value;if(i.selected!==n){i.selected=n;e(i)}}}syncChildThemes(){for(const i of this.options){if(i.theme!==this.theme){i.theme=this.theme;e(i)}}}syncChildCompact(){for(const i of this.options){if(i.compact!==this.compact){i.compact=this.compact;e(i)}}}getVisibleOptions(){return this.options.filter((i=>!i.disabled&&i.style.display!=="none"))}getFirstHighlightIndex(){const i=this.getVisibleOptions();const n=i.findIndex((i=>i.selected));return n>=0?n:0}applyHighlight(){const i=this.getVisibleOptions();i.forEach(((i,n)=>{i.highlighted=n===this.highlightedIndex}))}clearHighlight(){for(const i of this.options){if(i.highlighted)i.highlighted=false}this.highlightedIndex=-1}updateDropdownDirection(){if(this.dropdownDirection!=="auto"){this.dropdownClass=this.dropdownDirection==="up"?"dropdown dropdown--up":"dropdown";return}const i=this.triggerEl.getBoundingClientRect();const n=window.innerHeight-i.bottom;this.dropdownClass=n<260?"dropdown dropdown--up":"dropdown"}resetFilter(){if(this.filterInputEl)this.filterInputEl.value="";this.hasFilterResults=true;for(const i of this.options){i.style.display=""}}get selectedLabel(){var i;const n=this.options.find((i=>i.value!==undefined&&i.value===this.value));return((i=n===null||n===void 0?void 0:n.textContent)!==null&&i!==void 0?i:"").trim()}render(){const i=`${this.internalId}-label`;const n=`${this.internalId}-listbox`;const e=`${this.internalId}-hint`;const r=!!this.message&&this.state!=="none";const s=this.value!==undefined&&this.value!=="";const o=s?this.selectedLabel:undefined;return t(a,{key:"78cb284c75c35d7a8c9c55c65a1b2da507cb3825","data-theme":this.theme},t("style",{key:"56535329000ff0addc23203c53161262d077d0ae",innerHTML:d(this.isOpen,this.disabled,this.state,this.compact,this.dropdownClass.includes("--up"))}),(this.label||this.host.querySelector('[slot="label"]'))&&t("span",{key:"a50ee541c02fddefb765c9e8be397bc5fd8fdbe3",class:"label",id:i,part:"label"},t("slot",{key:"5acac4fc52daaa0a7e8137f41bd0b5e91ba4be86",name:"label"},this.label),this.required&&t("span",{key:"1f61ca50a28561365e8491e108268680b0e1ccf1",class:"label__required","aria-hidden":"true"},"*")),(this.description||this.host.querySelector('[slot="description"]'))&&t("span",{key:"41e461a959513a8dafe4a8fd6d7c7c0597dd11be",class:"description",part:"description"},t("slot",{key:"33f083c62405b70fd4df87ccd5770946778a168c",name:"description"},this.description)),t("div",{key:"88a408a5abaa1f4c48f54b8dda240a3ee8ed3a5e",class:"trigger",role:"combobox","aria-haspopup":"listbox","aria-expanded":this.isOpen?"true":"false","aria-controls":n,"aria-labelledby":this.label?i:undefined,"aria-required":this.required?"true":undefined,"aria-invalid":this.state==="error"?"true":undefined,"aria-describedby":r?e:undefined,tabIndex:this.disabled?-1:0,onClick:this.onTriggerClick,onKeyDown:this.onTriggerKeyDown,ref:i=>this.triggerEl=i,part:"trigger"},t("span",{key:"c397c30576a9396ca26a150d4b31686b34324c50",class:`trigger__value${!o?" trigger__placeholder":""}`,part:"value"},o!==null&&o!==void 0?o:this.label||"Select an option"),t("span",{key:"3c4c6ba3dfc5e53102754e8c8f99b01041cb034c",class:"trigger__chevron","aria-hidden":"true",part:"chevron"},t("svg",{key:"9d7a5b129826e3d448c3cebb41cd1c6cba9af980",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},t("polyline",{key:"6c4b2336e5e0968cb79034a17c12ef7f1475d1d4",points:"6 9 12 15 18 9"})))),t("div",{key:"9a004e9726798f987e73de928cff74aae2192eba",class:this.dropdownClass,role:"listbox",id:n,"aria-multiselectable":"false","aria-labelledby":this.label?i:undefined,part:"dropdown"},t("div",{key:"be02228e7c2763174b84c98665e43c1b41be96c4",class:"filter",part:"filter"},t("input",{key:"df2a97b9017bf0fa550ddd7edf81bb5b63daa567",class:"filter__input",type:"text",placeholder:"Filter options…","aria-label":"Filter options",onInput:this.onFilterInput,ref:i=>this.filterInputEl=i,part:"filter-input"})),t("div",{key:"f1b7dff287feb28cacea9353263a3efb530d77f2",class:"options",part:"options"},!this.hasFilterResults&&t("div",{key:"11c5108f2e3e2e1ae36e2f4f15f5da49b5e4f645",class:"no-results","aria-live":"polite"},"No options found"),t("slot",{key:"f220f388ef3964448427dd45943193bce7419f88"}))),r&&t("span",{key:"8ceca0f175af448577d629581d39a44dfd39f63f",class:"message",id:e,role:"status",part:"message"},t("slot",{key:"91c7a0c99fa7a642ba0987cbab196d61e61cea9e",name:"message"},this.message)))}static get delegatesFocus(){return true}get host(){return r(this)}static get watchers(){return{theme:["onThemeChange"],compact:["onCompactChange"],value:["onValueChange"],isOpen:["onIsOpenChange"]}}};export{c as diwa_select};
|
|
2
|
+
//# sourceMappingURL=p-db70e030.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getComponentCss","isOpen","_disabled","_state","_compact","isUp","getFocusStyle","getReducedMotionStyle","selectIdCounter","DiwaSelect","constructor","hostRef","this","theme","name","state","hideLabel","disabled","required","compact","dropdownDirection","hasFilterResults","dropdownClass","internalId","options","highlightedIndex","onClickOutside","e","path","composedPath","includes","host","blur","emit","onTriggerClick","onTriggerKeyDown","key","preventDefault","triggerEl","focus","visible","getVisibleOptions","Math","min","length","applyHighlight","max","vis","current","dispatchEvent","MouseEvent","bubbles","composed","onFilterInput","term","target","value","toLowerCase","anyVisible","opt","text","_a","textContent","match","style","display","onThemeChange","syncChildThemes","onCompactChange","syncChildCompact","onValueChange","syncSelectionFromValue","onIsOpenChange","open","toggle","updateDropdownDirection","getFirstHighlightIndex","requestAnimationFrame","filterInputEl","clearHighlight","resetFilter","connectedCallback","document","addEventListener","disconnectedCallback","removeEventListener","componentDidLoad","collectOptions","close","onOptionUpdate","stopPropagation","detail","change","forceUpdate","onSlotChange","Array","from","querySelectorAll","shouldBeSelected","undefined","selected","filter","o","firstSelected","findIndex","forEach","i","highlighted","rect","getBoundingClientRect","spaceBelow","window","innerHeight","bottom","selectedLabel","find","trim","render","labelId","listboxId","hintId","hasMessage","message","hasValue","displayLabel","h","Host","innerHTML","label","querySelector","class","id","part","description","role","tabIndex","onClick","onKeyDown","ref","el","viewBox","fill","stroke","points","type","placeholder","onInput"],"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"],"mappings":"kHAGO,MAAMA,EAAkB,CAC7BC,EACAC,EACAC,EACAC,EACAC,EAAgB,QACL,27FA6FTJ,IAAWI,EAAO,2KAA6K,SAC/LJ,GAAUI,EAAO,2KAA6K,0KAI9LC,EAAc,i0BAwBZL,EAAS,6BAA+B,uuBAsB/BA,EAAS,QAAU,4+HAqH9BM,EAAsB,WAAY,oBAAqB,sBCtP3D,IAAIC,EAAkB,E,MA0BTC,EAAU,MAJvB,WAAAC,CAAAC,G,mGAY2BC,KAAAC,MAAqB,OAStCD,KAAAE,KAAe,GAMEF,KAAAG,MAAqB,OAMIH,KAAAI,UAAqB,MAG9CJ,KAAAK,SAAoB,MAGrCL,KAAAM,SAAoB,MAGHN,KAAAO,QAAmB,MAMpCP,KAAAQ,kBAA6C,OAsBpCR,KAAAX,OAAkB,MAClBW,KAAAS,iBAA4B,KAC5BT,KAAAU,cAAwB,WAMjCV,KAAAW,WAAqB,YAAYf,IAGjCI,KAAAY,QAAyC,GACzCZ,KAAAa,kBAA4B,EAkL5Bb,KAAAc,eAAkBC,IACxB,IAAKf,KAAKX,OAAQ,OAClB,MAAM2B,EAAOD,EAAEE,eACf,IAAKD,EAAKE,SAASlB,KAAKmB,MAAO,CAC7BnB,KAAKX,OAAS,MACdW,KAAKoB,KAAKC,M,GAINrB,KAAAsB,eAAiB,KACvB,GAAItB,KAAKK,SAAU,OACnBL,KAAKX,QAAUW,KAAKX,MAAM,EAGpBW,KAAAuB,iBAAoBR,IAC1B,GAAIf,KAAKK,SAAU,OAEnB,IAAKL,KAAKX,OAAQ,CAChB,GAAI0B,EAAES,MAAQ,aAAeT,EAAES,MAAQ,WAAaT,EAAES,MAAQ,SAAWT,EAAES,MAAQ,IAAK,CACtFT,EAAEU,iBACFzB,KAAKX,OAAS,I,CAEhB,M,CAGF,OAAQ0B,EAAES,KACR,IAAK,SACL,IAAK,MAAO,CACVT,EAAEU,iBACFzB,KAAKX,OAAS,MACdW,KAAK0B,UAAUC,QACf,K,CAEF,IAAK,YAAa,CAChBZ,EAAEU,iBACF,MAAMG,EAAU5B,KAAK6B,oBACrB7B,KAAKa,iBAAmBiB,KAAKC,IAAI/B,KAAKa,iBAAmB,EAAGe,EAAQI,OAAS,GAC7EhC,KAAKiC,iBACL,K,CAEF,IAAK,UAAW,CACdlB,EAAEU,iBACFzB,KAAKa,iBAAmBiB,KAAKI,IAAIlC,KAAKa,iBAAmB,EAAG,GAC5Db,KAAKiC,iBACL,K,CAEF,IAAK,OAAQ,CACXlB,EAAEU,iBACFzB,KAAKa,iBAAmB,EACxBb,KAAKiC,iBACL,K,CAEF,IAAK,MAAO,CACVlB,EAAEU,iBACF,MAAMU,EAAMnC,KAAK6B,oBACjB7B,KAAKa,iBAAmBsB,EAAIH,OAAS,EACrChC,KAAKiC,iBACL,K,CAEF,IAAK,QACL,IAAK,IAAK,CACRlB,EAAEU,iBACF,MAAMW,EAAUpC,KAAK6B,oBAAoB7B,KAAKa,kBAC9C,GAAIuB,IAAYA,EAAQ/B,SAAU,CAChC+B,EAAQC,cAAc,IAAIC,WAAW,QAAS,CAAEC,QAAS,KAAMC,SAAU,O,CAE3E,K,IAKExC,KAAAyC,cAAiB1B,I,MACvB,MAAM2B,EAAQ3B,EAAE4B,OAA4BC,MAAMC,cAElD,IAAIC,EAAa,MACjB,IAAK,MAAMC,KAAO/C,KAAKY,QAAS,CAC9B,MAAMoC,IAAQC,EAAAF,EAAIG,eAAW,MAAAD,SAAA,EAAAA,EAAI,IAAIJ,cACrC,MAAMM,EAAQH,EAAK9B,SAASwB,GAC5BK,EAAIK,MAAMC,QAAUF,EAAQ,GAAK,OACjC,GAAIA,EAAOL,EAAa,I,CAE1B9C,KAAKS,iBAAmBqC,EACxB9C,KAAKa,iBAAmB,EACxBb,KAAKiC,gBAAgB,C,CA9PvB,aAAAqB,GACEtD,KAAKuD,iB,CAIP,eAAAC,GACExD,KAAKyD,kB,CAIP,aAAAC,GACE1D,KAAK2D,wB,CAIP,cAAAC,CAAeC,GACb7D,KAAK8D,OAAOzC,KAAK,CAAEwC,SACnB,GAAIA,EAAM,CACR7D,KAAK+D,0BACL/D,KAAKa,iBAAmBb,KAAKgE,yBAC7BhE,KAAKiC,iBACLgC,uBAAsB,K,OACpBhB,EAAAjD,KAAKkE,iBAAa,MAAAjB,SAAA,SAAAA,EAAEtB,OAAO,G,KAExB,CACL3B,KAAKmE,iBACLnE,KAAKa,kBAAoB,EACzBb,KAAKoE,a,EAQT,iBAAAC,GACEC,SAASC,iBAAiB,YAAavE,KAAKc,eAAgB,K,CAG9D,oBAAA0D,GACEF,SAASG,oBAAoB,YAAazE,KAAKc,eAAgB,K,CAGjE,gBAAA4D,GACE1E,KAAK2E,iBACL3E,KAAK2D,yBACL3D,KAAKuD,kBACLvD,KAAKyD,kB,CASP,UAAMI,GACJ7D,KAAKX,OAAS,I,CAKhB,WAAMuF,GACJ5E,KAAKX,OAAS,K,CAQhB,cAAAwF,CAAe9D,G,MACbA,EAAE+D,kBACF9E,KAAK4C,MAAQ7B,EAAEgE,OAAOnC,MACtB5C,KAAK2D,yBACL3D,KAAKgF,OAAO3D,KAAK,CAAEnB,KAAMF,KAAKE,KAAM0C,OAAOK,EAAAjD,KAAK4C,SAAK,MAAAK,SAAA,EAAAA,EAAI,KACzDjD,KAAKX,OAAS,MACd4F,EAAYjF,KAAKmB,MACjB8C,uBAAsB,KACpBjE,KAAK0B,UAAUC,OAAO,G,CAK1B,YAAAuD,GACElF,KAAK2E,iBACL3E,KAAK2D,yBACL3D,KAAKuD,kBACLvD,KAAKyD,kB,CAOC,cAAAkB,GACN3E,KAAKY,QAAUuE,MAAMC,KACnBpF,KAAKmB,KAAKkE,iBAA8C,sB,CAIpD,sBAAA1B,GACN,IAAK,MAAMZ,KAAO/C,KAAKY,QAAS,CAC9B,MAAM0E,EAAmBvC,EAAIH,QAAU2C,WAAaxC,EAAIH,QAAU5C,KAAK4C,MACvE,GAAIG,EAAIyC,WAAaF,EAAkB,CACrCvC,EAAIyC,SAAWF,EACfL,EAAYlC,E,GAKV,eAAAQ,GACN,IAAK,MAAMR,KAAO/C,KAAKY,QAAS,CAC9B,GAAImC,EAAI9C,QAAUD,KAAKC,MAAO,CAC5B8C,EAAI9C,MAAQD,KAAKC,MACjBgF,EAAYlC,E,GAKV,gBAAAU,GACN,IAAK,MAAMV,KAAO/C,KAAKY,QAAS,CAC9B,GAAImC,EAAIxC,UAAYP,KAAKO,QAAS,CAChCwC,EAAIxC,QAAUP,KAAKO,QACnB0E,EAAYlC,E,GAKV,iBAAAlB,GACN,OAAO7B,KAAKY,QAAQ6E,QAAQC,IAAOA,EAAErF,UAAYqF,EAAEtC,MAAMC,UAAY,Q,CAG/D,sBAAAW,GACN,MAAMpC,EAAU5B,KAAK6B,oBACrB,MAAM8D,EAAgB/D,EAAQgE,WAAWF,GAAMA,EAAEF,WACjD,OAAOG,GAAiB,EAAIA,EAAgB,C,CAGtC,cAAA1D,GACN,MAAML,EAAU5B,KAAK6B,oBACrBD,EAAQiE,SAAQ,CAAC9C,EAAK+C,KACpB/C,EAAIgD,YAAcD,IAAM9F,KAAKa,gBAAgB,G,CAIzC,cAAAsD,GACN,IAAK,MAAMpB,KAAO/C,KAAKY,QAAS,CAC9B,GAAImC,EAAIgD,YAAahD,EAAIgD,YAAc,K,CAEzC/F,KAAKa,kBAAoB,C,CAGnB,uBAAAkD,GACN,GAAI/D,KAAKQ,oBAAsB,OAAQ,CACrCR,KAAKU,cAAgBV,KAAKQ,oBAAsB,KAAO,wBAA0B,WACjF,M,CAEF,MAAMwF,EAAOhG,KAAK0B,UAAUuE,wBAC5B,MAAMC,EAAaC,OAAOC,YAAcJ,EAAKK,OAC7CrG,KAAKU,cAAgBwF,EAAa,IAAM,wBAA0B,U,CAG5D,WAAA9B,GACN,GAAIpE,KAAKkE,cAAelE,KAAKkE,cAActB,MAAQ,GACnD5C,KAAKS,iBAAmB,KACxB,IAAK,MAAMsC,KAAO/C,KAAKY,QAAS,CAC9BmC,EAAIK,MAAMC,QAAU,E,EA8FxB,iBAAYiD,G,MACV,MAAMd,EAAWxF,KAAKY,QAAQ2F,MAAMb,GAAMA,EAAE9C,QAAU2C,WAAaG,EAAE9C,QAAU5C,KAAK4C,QACpF,QAAQK,EAAAuC,IAAQ,MAARA,SAAQ,SAARA,EAAUtC,eAAW,MAAAD,SAAA,EAAAA,EAAI,IAAIuD,M,CAOvC,MAAAC,GACE,MAAMC,EAAU,GAAG1G,KAAKW,mBACxB,MAAMgG,EAAY,GAAG3G,KAAKW,qBAC1B,MAAMiG,EAAS,GAAG5G,KAAKW,kBACvB,MAAMkG,IAAe7G,KAAK8G,SAAW9G,KAAKG,QAAU,OACpD,MAAM4G,EAAW/G,KAAK4C,QAAU2C,WAAavF,KAAK4C,QAAU,GAC5D,MAAMoE,EAAeD,EAAW/G,KAAKsG,cAAgBf,UAErD,OACE0B,EAACC,EAAI,CAAA1F,IAAA,wDAAaxB,KAAKC,OACrBgH,EAAA,SAAAzF,IAAA,2CAAO2F,UAAW/H,EAAgBY,KAAKX,OAAQW,KAAKK,SAAUL,KAAKG,MAAOH,KAAKO,QAASP,KAAKU,cAAcQ,SAAS,YAGlHlB,KAAKoH,OAASpH,KAAKmB,KAAKkG,cAAc,oBACtCJ,EAAA,QAAAzF,IAAA,2CAAM8F,MAAM,QAAQC,GAAIb,EAASc,KAAK,SACpCP,EAAA,QAAAzF,IAAA,2CAAMtB,KAAK,SAASF,KAAKoH,OACxBpH,KAAKM,UAAY2G,EAAA,QAAAzF,IAAA,2CAAM8F,MAAM,kBAAiB,cAAa,QAAM,OAKpEtH,KAAKyH,aAAezH,KAAKmB,KAAKkG,cAAc,0BAC5CJ,EAAA,QAAAzF,IAAA,2CAAM8F,MAAM,cAAcE,KAAK,eAC7BP,EAAA,QAAAzF,IAAA,2CAAMtB,KAAK,eAAeF,KAAKyH,cAKnCR,EAAA,OAAAzF,IAAA,2CACE8F,MAAM,UACNI,KAAK,WAAU,gBACD,UAAS,gBACR1H,KAAKX,OAAS,OAAS,QAAO,gBAC9BsH,EAAS,kBACP3G,KAAKoH,MAAQV,EAAUnB,UAAS,gBAClCvF,KAAKM,SAAW,OAASiF,UAAS,eACnCvF,KAAKG,QAAU,QAAU,OAASoF,UAAS,mBACvCsB,EAAaD,EAASrB,UACxCoC,SAAU3H,KAAKK,UAAY,EAAI,EAC/BuH,QAAS5H,KAAKsB,eACduG,UAAW7H,KAAKuB,iBAChBuG,IAAMC,GAAQ/H,KAAK0B,UAAYqG,EAC/BP,KAAK,WAELP,EAAA,QAAAzF,IAAA,2CAAM8F,MAAO,kBAAkBN,EAAe,wBAA0B,KAAMQ,KAAK,SAChFR,IAAY,MAAZA,SAAY,EAAZA,EAAiBhH,KAAKoH,OAAS,oBAIlCH,EAAA,QAAAzF,IAAA,2CAAM8F,MAAM,mBAAkB,cAAa,OAAOE,KAAK,WACrDP,EAAA,OAAAzF,IAAA,2CAAKwG,QAAQ,YAAYC,KAAK,OAAOC,OAAO,eAAc,eAAc,IAAG,iBAAgB,QAAO,kBAAiB,SACjHjB,EAAA,YAAAzF,IAAA,2CAAU2G,OAAO,sBAMvBlB,EAAA,OAAAzF,IAAA,2CACE8F,MAAOtH,KAAKU,cACZgH,KAAK,UACLH,GAAIZ,EAAS,uBACQ,QAAO,kBACX3G,KAAKoH,MAAQV,EAAUnB,UACxCiC,KAAK,YAGLP,EAAA,OAAAzF,IAAA,2CAAK8F,MAAM,SAASE,KAAK,UACvBP,EAAA,SAAAzF,IAAA,2CACE8F,MAAM,gBACNc,KAAK,OACLC,YAAY,kBAAiB,aAClB,iBACXC,QAAStI,KAAKyC,cACdqF,IAAMC,GAAQ/H,KAAKkE,cAAgB6D,EACnCP,KAAK,kBAKTP,EAAA,OAAAzF,IAAA,2CAAK8F,MAAM,UAAUE,KAAK,YACtBxH,KAAKS,kBACLwG,EAAA,OAAAzF,IAAA,2CAAK8F,MAAM,aAAY,YAAW,UAAQ,oBAE5CL,EAAA,QAAAzF,IAAA,+CAKHqF,GACCI,EAAA,QAAAzF,IAAA,2CAAM8F,MAAM,UAAUC,GAAIX,EAAQc,KAAK,SAASF,KAAK,WACnDP,EAAA,QAAAzF,IAAA,2CAAMtB,KAAK,WAAWF,KAAK8G,U","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as n,c as e,h as a,H as t,g as i}from"./p-ed4017f0.js";import{g as r,a as s}from"./p-70bbb21a.js";const o=(n,e,a)=>{const t=a?"14px":"18px";const i=a?"6px":"8px";return`\n :host {\n display: block;\n font-family: var(--diwa-font-family-base);\n outline: none;\n }\n\n :host([hidden]) {\n display: none;\n }\n\n .wrapper {\n display: inline-flex;\n align-items: center;\n gap: var(--diwa-space-3);\n cursor: pointer;\n }\n\n :host([disabled]) .wrapper {\n cursor: not-allowed;\n }\n\n .input-container {\n position: relative;\n flex-shrink: 0;\n width: ${t};\n height: ${t};\n }\n\n input[type="radio"] {\n appearance: none;\n -webkit-appearance: none;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n cursor: pointer;\n border-radius: 50%;\n border: var(--diwa-border-width-medium) solid ${n?"var(--diwa-accent)":"var(--diwa-border)"};\n background: ${n?"var(--diwa-accent)":"transparent"};\n transition: border-color var(--diwa-transition-base), background var(--diwa-transition-base);\n }\n\n input[type="radio"]:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n }\n\n ${r('input[type="radio"]')}\n\n /* Dot indicator when checked */\n .input-container::after {\n content: '';\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: ${i};\n height: ${i};\n border-radius: 50%;\n background: var(--diwa-text-on-accent, #fff);\n opacity: ${n?"1":"0"};\n pointer-events: none;\n transition: opacity var(--diwa-transition-base);\n }\n\n .label-text {\n font-size: var(--diwa-font-size-base);\n color: var(--diwa-text-primary);\n line-height: 1.5;\n user-select: none;\n }\n\n :host([disabled]) .label-text {\n color: var(--diwa-text-muted);\n }\n\n ${s('input[type="radio"]',".input-container::after")}\n `};const d=class{constructor(a){n(this,a);this.radioSelect=e(this,"diwa-radio-select",7);this.theme="dark";this.value="";this.checked=false;this.name="";this.disabled=false;this.compact=false;this.handleChange=()=>{if(this.disabled)return;this.checked=true;this.radioSelect.emit({value:this.value})}}handleCheckedChange(n){var e;const a=(e=this.host.shadowRoot)===null||e===void 0?void 0:e.querySelector("input");if(a)a.checked=n}render(){const n=`diwa-rgi-${this.value||Math.random().toString(36).slice(2,7)}`;return a(t,{key:"d8bc41d5cf9885195ca2e1579aa74abcf93c9fb2"},a("style",{key:"b303d2b29a49f4445eaed221470ccb6bd1020150",innerHTML:o(this.checked,this.disabled,this.compact)}),a("label",{key:"d2a931fd4754cb93c02dcc833a5f08fa1ce5f1ea",class:"wrapper"},a("span",{key:"237f63b74e3aa3be54cdfc1f8027b819b93c8276",class:"input-container"},a("input",{key:"37e09b73b7d904847fa8e4194a97309e9e07a4de",id:n,type:"radio",name:this.name,value:this.value,checked:this.checked,disabled:this.disabled,onChange:this.handleChange,"aria-checked":this.checked?"true":"false"})),a("span",{key:"85a9799f4ac065d7d8167b44a0dc3d667511730d",class:"label-text"},a("slot",{key:"8fda0f7afd5dbffee2047668f1245439c4650b3e"}))))}static get delegatesFocus(){return true}get host(){return i(this)}static get watchers(){return{checked:["handleCheckedChange"]}}};export{d as diwa_radio_group_item};
|
|
2
|
+
//# sourceMappingURL=p-def36bc4.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getComponentCss","checked","disabled","compact","boxSize","dotSize","getFocusStyle","getReducedMotionStyle","DiwaRadioGroupItem","constructor","hostRef","this","theme","value","name","handleChange","radioSelect","emit","handleCheckedChange","newVal","input","_a","host","shadowRoot","querySelector","render","labelId","Math","random","toString","slice","h","Host","key","innerHTML","class","id","type","onChange"],"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"],"mappings":"2GAEO,MAAMA,EAAkB,CAC7BC,EACAC,EACAC,KAEA,MAAMC,EAAUD,EAAU,OAAS,OACnC,MAAME,EAAUF,EAAU,MAAQ,MAElC,MAAO,+aAyBIC,mBACCA,sTAcsCH,EAAU,qBAAuB,0CACnEA,EAAU,qBAAuB,qNAS/CK,EAAc,0NASLD,mBACCA,gGAGCJ,EAAU,IAAM,0UAgB3BM,EAAsB,sBAAuB,gCAC9C,E,MCxEUC,EAAkB,MAJ/B,WAAAC,CAAAC,G,yDAQ2BC,KAAAC,MAAe,OAGfD,KAAAE,MAAgB,GAGDF,KAAAV,QAAmB,MAGnBU,KAAAG,KAAe,GAG9BH,KAAAT,SAAoB,MAGpBS,KAAAR,QAAmB,MAepCQ,KAAAI,aAAe,KACrB,GAAIJ,KAAKT,SAAU,OACnBS,KAAKV,QAAU,KACfU,KAAKK,YAAYC,KAAK,CAAEJ,MAAOF,KAAKE,OAAQ,C,CAR9C,mBAAAK,CAAoBC,G,MAClB,MAAMC,GAAQC,EAAAV,KAAKW,KAAKC,cAAU,MAAAF,SAAA,SAAAA,EAAEG,cAAc,SAClD,GAAIJ,EAAOA,EAAMnB,QAAUkB,C,CAS7B,MAAAM,GACE,MAAMC,EAAU,YAAYf,KAAKE,OAASc,KAAKC,SAASC,SAAS,IAAIC,MAAM,EAAG,KAE9E,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,SAAAE,IAAA,2CAAOC,UAAWlC,EAAgBW,KAAKV,QAASU,KAAKT,SAAUS,KAAKR,WACpE4B,EAAA,SAAAE,IAAA,2CAAOE,MAAM,WACXJ,EAAA,QAAAE,IAAA,2CAAME,MAAM,mBACVJ,EAAA,SAAAE,IAAA,2CACEG,GAAIV,EACJW,KAAK,QACLvB,KAAMH,KAAKG,KACXD,MAAOF,KAAKE,MACZZ,QAASU,KAAKV,QACdC,SAAUS,KAAKT,SACfoC,SAAU3B,KAAKI,aAAY,eACbJ,KAAKV,QAAU,OAAS,WAG1C8B,EAAA,QAAAE,IAAA,2CAAME,MAAM,cACVJ,EAAA,QAAAE,IAAA,+C","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as e,h as a,H as d}from"./p-ed4017f0.js";const t=()=>`\n :host { display: table-row-group; }\n :host([hidden]) { display: none; }\n ::slotted(:nth-child(even)) {\n background: var(--diwa-table-stripe-color, transparent);\n }\n`;const r=class{constructor(a){e(this,a);this.theme="dark"}render(){return a(d,{key:"4a79b101f25908a4c8d952a6cabeba242d361d45",role:"rowgroup","data-theme":this.theme},a("style",{key:"2fe92018084cd53e3eecfa6fa7cfcd314609d383",innerHTML:t()}),a("slot",{key:"f9d45fc32ddc9eb5532dd8e85fadac06df35cfb3"}))}};export{r as diwa_table_body};
|
|
2
|
+
//# sourceMappingURL=p-e137afc9.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as a,h as e,H as t}from"./p-ed4017f0.js";const n=()=>`\n :host {\n display: list-item;\n font-family: var(--diwa-font-family-base);\n font-size: var(--diwa-font-size-base);\n line-height: var(--diwa-line-height-normal);\n color: var(--diwa-text-primary);\n }\n\n :host([hidden]) {\n display: none;\n }\n`;const i=class{constructor(e){a(this,e);this.theme="dark"}render(){return e(t,{key:"
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as a,h as e,H as t}from"./p-ed4017f0.js";const n=()=>`\n :host {\n display: list-item;\n font-family: var(--diwa-font-family-base);\n font-size: var(--diwa-font-size-base);\n line-height: var(--diwa-line-height-normal);\n color: var(--diwa-text-primary);\n }\n\n :host([hidden]) {\n display: none;\n }\n`;const i=class{constructor(e){a(this,e);this.theme="dark"}render(){return e(t,{key:"ca389afc2ee236afaf0ef1aa73da52621300309c","data-theme":this.theme},e("style",{key:"0b89865d665c4abc37ed2d6e044b7160480acf79",innerHTML:n()}),e("slot",{key:"d49ee74ef96e916912a16889b33b05a08fd4027b"}))}};export{i as diwa_text_list_item};
|
|
2
|
+
//# sourceMappingURL=p-e1935375.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as s,c as e,h as t,H as i,g as a}from"./p-ed4017f0.js";import{g as h}from"./p-35c7c864.js";import"./p-70bbb21a.js";const d=class{constructor(t){s(this,t);this.change=e(this,"change",7);this.input=e(this,"input",7);this.blur=e(this,"blur",3);this.focus=e(this,"focus",3);this._hasStart=false;this._hasEnd=false;this.label="";this.description="";this.message="";this.state="none";this.name="";this.value="";this.placeholder="";this.disabled=false;this.required=false;this.readonly=false;this.hideLabel=false;this.compact=false;this.theme="dark";this.handleInput=s=>{this.value=s.target.value;this.input.emit(this.value)};this.handleChange=s=>{this.value=s.target.value;this.change.emit(this.value)};this.handleBlur=s=>{this.blur.emit(s)};this.handleFocus=s=>{this.focus.emit(s)}}connectedCallback(){this._hasStart=!!this.el.querySelector('[slot="start"]');this._hasEnd=!!this.el.querySelector('[slot="end"]')}render(){const s="input";const e="desc";const a="msg";return t(i,{key:"
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as s,c as e,h as t,H as i,g as a}from"./p-ed4017f0.js";import{g as h}from"./p-35c7c864.js";import"./p-70bbb21a.js";const d=class{constructor(t){s(this,t);this.change=e(this,"change",7);this.input=e(this,"input",7);this.blur=e(this,"blur",3);this.focus=e(this,"focus",3);this._hasStart=false;this._hasEnd=false;this.label="";this.description="";this.message="";this.state="none";this.name="";this.value="";this.placeholder="";this.disabled=false;this.required=false;this.readonly=false;this.hideLabel=false;this.compact=false;this.theme="dark";this.handleInput=s=>{this.value=s.target.value;this.input.emit(this.value)};this.handleChange=s=>{this.value=s.target.value;this.change.emit(this.value)};this.handleBlur=s=>{this.blur.emit(s)};this.handleFocus=s=>{this.focus.emit(s)}}connectedCallback(){this._hasStart=!!this.el.querySelector('[slot="start"]');this._hasEnd=!!this.el.querySelector('[slot="end"]')}render(){const s="input";const e="desc";const a="msg";return t(i,{key:"fe6b98e36a4b0b265b95905d07869380f2f93238","data-theme":this.theme},t("style",{key:"bf23ff17067bd162be41f98177e2e5d3994f58e2",innerHTML:h(this.state,this.disabled,this.readonly,this.compact,this._hasStart,this._hasEnd,false)}),t("div",{key:"2a5c524be6036fd7b6807fee457a9f6295c4f233",class:"root"},!this.hideLabel&&this.label&&t("div",{key:"b58789f7e967ced3eeb1c11726eebc44c7448db5",class:"label-row"},t("label",{key:"6ca47d2e8b70467c21ca44078ee39c45f0149dbe",class:"label",htmlFor:s},this.label,this.required&&t("span",{key:"a252801b4c737c48e7d2df739a8a73c866300367",class:"required","aria-hidden":"true"}," *")),t("slot",{key:"fb24755551508bf08bf0e34d5c030b7166110b9e",name:"label-after"})),t("div",{key:"ded4182c2a8b9f47c0ab10641a56afc91780dc38",class:"input-wrapper"},this._hasStart&&t("div",{key:"5d846bc94e2dd8d5569719978c4dae898555333a",class:"slot-start"},t("slot",{key:"9b3fdf26e6628094ee146da8b993a85574b89c5d",name:"start"})),t("input",{key:"97999d1bf2b0c100d1c410392a2d540752b1f213",id:s,class:"input",type:"email",name:this.name||undefined,value:this.value,placeholder:this.placeholder||undefined,disabled:this.disabled,required:this.required,readOnly:this.readonly,autocomplete:this.autoComplete,"aria-label":this.hideLabel&&this.label?this.label:undefined,"aria-invalid":this.state==="error"?"true":undefined,"aria-required":this.required?"true":undefined,"aria-describedby":this.message?a:this.description?e:undefined,onInput:this.handleInput,onChange:this.handleChange,onBlur:this.handleBlur,onFocus:this.handleFocus}),this._hasEnd&&t("div",{key:"f5fa380e3c4507f1b3cc91af17ab74b2386e00ca",class:"slot-end"},t("slot",{key:"578a2546ca081577e4f5e0e1da2a55a60f67231c",name:"end"}))),!this.message&&this.description&&t("p",{key:"e14e3534270d8190fd155f5aa32fe03a66d32e8b",id:e,class:"description"},this.description),this.message&&t("p",{key:"1da9633d6d23a8ef442d2094864c64b48ec0640a",id:a,class:"message"},this.message)))}static get delegatesFocus(){return true}get el(){return a(this)}};export{d as diwa_input_email};
|
|
2
|
+
//# sourceMappingURL=p-e602c199.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as a,h as e,H as n,g as t}from"./p-ed4017f0.js";import{g as i,a as r}from"./p-70bbb21a.js";const o={top:"bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%);",bottom:"top: calc(100% + 6px); left: 50%; transform: translateX(-50%);",start:"right: calc(100% + 6px); top: 50%; transform: translateY(-50%);",end:"left: calc(100% + 6px); top: 50%; transform: translateY(-50%);"};const s=(a,e)=>{const n=o[e];return`\n :host {\n display: inline-flex;\n position: relative;\n }\n :host([hidden]) {\n display: none;\n }\n .trigger {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--diwa-popover-trigger-size);\n height: var(--diwa-popover-trigger-size);\n padding: 0;\n background: none;\n border: none;\n border-radius: var(--diwa-radius-sm);\n transition: color var(--diwa-transition-base);\n }\n .trigger:hover {\n color: var(--diwa-text-primary);\n }\n ${i(".trigger")}\n .panel {\n display: ${a?"block":"none"};\n position: absolute;\n ${n}\n z-index: 100;\n min-width: var(--diwa-popover-panel-min-width);\n max-width: var(--diwa-popover-panel-max-width);\n padding: var(--diwa-space-5);\n background: var(--diwa-bg-elevated);\n border: var(--diwa-border-width-thin) solid var(--diwa-border);\n border-radius: var(--diwa-radius-lg);\n box-shadow: var(--diwa-shadow-lg);\n font-family: var(--diwa-font-family-base);\n font-size: var(--diwa-font-size-base);\n color: var(--diwa-text-primary);\n line-height: var(--diwa-line-height-normal);\n white-space: normal;\n }\n\n .panel p,\n .panel ::slotted(p) {\n margin: 0;\n }\n\n ${r(".trigger")}\n `};const d=class{constructor(e){a(this,e);this.direction="bottom";this.theme="dark";this.isOpen=false;this.toggle=()=>{this.isOpen=!this.isOpen}}handleGlobalKeydown(a){if(a.key==="Escape"&&this.isOpen){this.isOpen=false}}handleGlobalPointerDown(a){if(!this.isOpen){return}if(!a.composedPath().includes(this.host)){this.isOpen=false}}render(){return e(n,{key:"706d73f1ad8a20082daca4acfc0758ba50542169","data-theme":this.theme},e("style",{key:"331793aabac4e2555201b5242133f7d28e7fd484",innerHTML:s(this.isOpen,this.direction)}),e("slot",{key:"f79a4057076d939012b8e27c92e9883f3335a40f",name:"button"},e("button",{key:"c42272766f4a5c80b5120ce5f53a1f0d8634e2e1",class:"trigger",type:"button","aria-expanded":String(this.isOpen),"aria-haspopup":"true",onClick:this.toggle},e("svg",{key:"a93a6cb15e2ea6c146129a3373e9a2e69b71dde2",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},e("circle",{key:"62d9118c2f344d2fbb5ca97989f336e9e1368d90",cx:"12",cy:"12",r:"10"}),e("line",{key:"2f31265ac9c896eb36f53ee73271340543b5cba4",x1:"12",y1:"8",x2:"12",y2:"12"}),e("line",{key:"a9c6ff1a17ecd8694d0fef23dc3c5b79bab49b20",x1:"12",y1:"16",x2:"12.01",y2:"16"})))),e("div",{key:"0da742535b53bd3c40a6ee20e611c7740ce53e75",class:"panel",role:"tooltip","aria-hidden":String(!this.isOpen)},this.description&&e("p",{key:"8fcbb3c865aa604e9d1c13aa814ed453903fc341"},this.description),e("slot",{key:"51c6c0d6ca50f4a6444e8768d88203fa54cf4132"})))}static get delegatesFocus(){return true}get host(){return t(this)}};export{d as diwa_popover};
|
|
2
|
+
//# sourceMappingURL=p-e9673253.entry.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as n,c as e,h as a,H as t,g as i}from"./p-ed4017f0.js";import{g as o,a as r}from"./p-70bbb21a.js";import{g as c,c as s}from"./p-332838f8.js";const d=`url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Crect x='2.5' y='5.25' width='7' height='1.5' rx='0.75' fill='white'/%3E%3C/svg%3E")`;const h=(n,e,a,t)=>{const i=a?"14px":"20px";const h=n==="error"?"var(--diwa-notification-error)":n==="success"?"var(--diwa-notification-success)":"var(--diwa-text-secondary)";return`\n\n /* ── Host ─────────────────────────────────────────────────────────── */\n\n :host {\n display: inline-block;\n font-family: var(--diwa-font-family-base);\n outline: none;\n }\n\n :host([hidden]) {\n display: none;\n }\n\n /* ── Root layout ──────────────────────────────────────────────────── */\n\n .root {\n display: flex;\n flex-direction: column;\n gap: var(--diwa-space-1);\n }\n\n /* ── Wrapper: checkbox + label side by side ───────────────────────── */\n\n .wrapper {\n display: inline-flex;\n align-items: center;\n gap: var(--diwa-space-3);\n cursor: pointer;\n }\n\n :host([disabled]) .wrapper {\n cursor: not-allowed;\n }\n\n /* ── Input container ──────────────────────────────────────────────── */\n\n .input-container {\n position: relative;\n flex-shrink: 0;\n width: ${i};\n height: ${i};\n }\n\n /* ── Native checkbox ──────────────────────────────────────────────── */\n\n input[type="checkbox"] {\n appearance: none;\n -webkit-appearance: none;\n display: block;\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n cursor: pointer;\n\n ${c()}\n }\n\n input[type="checkbox"]:disabled {\n cursor: not-allowed;\n }\n\n /* ── Focus ring ───────────────────────────────────────────────────── */\n\n ${o('input[type="checkbox"]')}\n\n /* ── Hover ────────────────────────────────────────────────────────── */\n\n input[type="checkbox"]:hover:not(:disabled) {\n border-color: var(--diwa-accent);\n background-color: var(--diwa-bg-hover);\n }\n\n /* ── Checked state ────────────────────────────────────────────────── */\n\n input[type="checkbox"]:checked {\n background-color: var(--diwa-accent);\n border-color: var(--diwa-accent);\n background-image: ${s};\n }\n\n input[type="checkbox"]:checked:hover:not(:disabled) {\n background-color: var(--diwa-accent-hover);\n border-color: var(--diwa-accent-hover);\n }\n\n /* ── Indeterminate state ──────────────────────────────────────────── */\n\n input[type="checkbox"]:indeterminate {\n background-color: var(--diwa-accent);\n border-color: var(--diwa-accent);\n background-image: ${d};\n }\n\n input[type="checkbox"]:indeterminate:hover:not(:disabled) {\n background-color: var(--diwa-accent-hover);\n border-color: var(--diwa-accent-hover);\n }\n\n /* ── Validation states ────────────────────────────────────────────── */\n\n :host([state="error"]) input[type="checkbox"]:not(:checked):not(:indeterminate) {\n border-color: var(--diwa-notification-error);\n }\n\n :host([state="error"]) input[type="checkbox"]:not(:checked):not(:indeterminate):hover:not(:disabled) {\n border-color: var(--diwa-notification-error);\n background-color: var(--diwa-bg-hover);\n }\n\n :host([state="success"]) input[type="checkbox"]:not(:checked):not(:indeterminate) {\n border-color: var(--diwa-notification-success);\n }\n\n :host([state="success"]) input[type="checkbox"]:not(:checked):not(:indeterminate):hover:not(:disabled) {\n border-color: var(--diwa-notification-success);\n background-color: var(--diwa-bg-hover);\n }\n\n /* ── Disabled ─────────────────────────────────────────────────────── */\n\n :host([disabled]) {\n opacity: var(--diwa-opacity-disabled);\n pointer-events: none;\n }\n\n /* ── Label ────────────────────────────────────────────────────────── */\n\n .label {\n font-size: var(--diwa-font-size-base);\n font-weight: var(--diwa-font-weight-regular);\n line-height: 1.5;\n color: var(--diwa-text-primary);\n cursor: pointer;\n }\n\n :host([disabled]) .label {\n cursor: not-allowed;\n }\n\n /* Visually-hidden label (still read by screen readers) */\n .label--hidden {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n }\n\n /* Required asterisk */\n .required {\n color: var(--diwa-notification-error);\n margin-left: var(--diwa-space-0-5);\n }\n\n /* ── Message ──────────────────────────────────────────────────────── */\n\n .message {\n display: block;\n font-size: var(--diwa-font-size-sm);\n line-height: 1.4;\n color: ${h};\n /* Indent to align under the label, not the checkbox */\n padding-left: calc(${i} + var(--diwa-space-3));\n }\n\n /* ── Reduced motion ───────────────────────────────────────────────── */\n\n ${r('input[type="checkbox"]')}\n`};const l=class{constructor(a){n(this,a);this.update=e(this,"update",1);this.theme="dark";this.label="";this.name="";this.value="on";this.checked=false;this.indeterminate=false;this.disabled=false;this.required=false;this.state="none";this.message="";this.compact=false;this.hideLabel=false;this.handleChange=n=>{const e=n.target;this.checked=e.checked;if(this.indeterminate){this.host.removeAttribute("indeterminate")}this.update.emit({checked:this.checked,name:this.name,value:this.value})};this.setCheckboxRef=n=>{this.checkboxEl=n;if(n){n.indeterminate=this.indeterminate}}}watchIndeterminate(n){if(this.checkboxEl){this.checkboxEl.indeterminate=n}}render(){const n="diwa-checkbox-msg";const e=!!this.message&&this.state!=="none";return a(t,{key:"b60ee4bf0dc2eaa0d694a0ac739c5566d454f79c","data-theme":this.theme},a("style",{key:"fd963d515b5fdca037224b97390978de46f2270a",innerHTML:h(this.state,this.disabled,this.compact)}),a("div",{key:"367d56a1bb842175a37e542645189dce17a6e39a",class:"root"},a("div",{key:"3e4b983191a2b57f5bf577b0da0fcabf3d99fef1",class:"wrapper"},a("div",{key:"152025c208c44d6cc5dafc4c552e8a66c07e4a82",class:"input-container"},a("input",{key:"cbf1fd983bf14caf6ee7c6e5d99ff00a6db84eee",type:"checkbox",id:"cb",checked:this.checked,disabled:this.disabled,required:this.required,name:this.name,value:this.value,"aria-checked":this.indeterminate?"mixed":undefined,"aria-describedby":e?n:undefined,onChange:this.handleChange,ref:this.setCheckboxRef})),this.label&&a("label",{key:"149d0d96a058be632bc631dce0acdf10061857be",class:`label${this.hideLabel?" label--hidden":""}`,htmlFor:"cb"},this.label,this.required&&a("span",{key:"d05c35490b0539a9d2f2967e32d5866a600a95d2",class:"required","aria-hidden":"true"}," ","*"))),e&&a("span",{key:"3dd6021761ad98aaacacff336dab64b1d5d531dd",id:n,class:"message"},this.message)))}static get delegatesFocus(){return true}get host(){return i(this)}static get watchers(){return{indeterminate:["watchIndeterminate"]}}};export{l as diwa_checkbox};
|
|
2
|
+
//# sourceMappingURL=p-f44d4091.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["indeterminateSvg","getComponentCss","state","_disabled","compact","_hideLabel","boxSize","messageColor","getCheckboxBoxCss","getFocusStyle","checkmarkSvg","getReducedMotionStyle","DiwaCheckbox","constructor","hostRef","this","theme","label","name","value","checked","indeterminate","disabled","required","message","hideLabel","handleChange","e","input","target","host","removeAttribute","update","emit","setCheckboxRef","el","checkboxEl","watchIndeterminate","render","msgId","hasMessage","h","Host","key","innerHTML","class","type","id","undefined","onChange","ref","htmlFor"],"sources":["src/components/diwa-checkbox/diwa-checkbox-styles.ts","src/components/diwa-checkbox/diwa-checkbox.tsx"],"sourcesContent":["import type { CheckboxState } from './types';\r\nimport { getFocusStyle, getReducedMotionStyle } from '../../utils/styles';\r\nimport { checkmarkSvg, getCheckboxBoxCss } from '../../utils/checkbox-mark';\r\n\r\n/** White horizontal dash for indeterminate state on a 12×12 viewBox */\r\nconst indeterminateSvg = `url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Crect x='2.5' y='5.25' width='7' height='1.5' rx='0.75' fill='white'/%3E%3C/svg%3E\")`;\r\n\r\nexport const getComponentCss = (\r\n state: CheckboxState,\r\n _disabled: boolean,\r\n compact: boolean,\r\n _hideLabel: boolean,\r\n): string => {\r\n const boxSize = compact ? '14px' : '20px';\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\r\n /* ── Host ─────────────────────────────────────────────────────────── */\r\n\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 /* ── Root layout ──────────────────────────────────────────────────── */\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 /* ── Wrapper: checkbox + label side by side ───────────────────────── */\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\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 /* ── Native checkbox ──────────────────────────────────────────────── */\r\n\r\n input[type=\"checkbox\"] {\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\r\n ${getCheckboxBoxCss()}\r\n }\r\n\r\n input[type=\"checkbox\"]:disabled {\r\n cursor: not-allowed;\r\n }\r\n\r\n /* ── Focus ring ───────────────────────────────────────────────────── */\r\n\r\n ${getFocusStyle('input[type=\"checkbox\"]')}\r\n\r\n /* ── Hover ────────────────────────────────────────────────────────── */\r\n\r\n input[type=\"checkbox\"]:hover:not(:disabled) {\r\n border-color: var(--diwa-accent);\r\n background-color: var(--diwa-bg-hover);\r\n }\r\n\r\n /* ── Checked state ────────────────────────────────────────────────── */\r\n\r\n input[type=\"checkbox\"]:checked {\r\n background-color: var(--diwa-accent);\r\n border-color: var(--diwa-accent);\r\n background-image: ${checkmarkSvg};\r\n }\r\n\r\n input[type=\"checkbox\"]:checked:hover:not(:disabled) {\r\n background-color: var(--diwa-accent-hover);\r\n border-color: var(--diwa-accent-hover);\r\n }\r\n\r\n /* ── Indeterminate state ──────────────────────────────────────────── */\r\n\r\n input[type=\"checkbox\"]:indeterminate {\r\n background-color: var(--diwa-accent);\r\n border-color: var(--diwa-accent);\r\n background-image: ${indeterminateSvg};\r\n }\r\n\r\n input[type=\"checkbox\"]:indeterminate:hover:not(:disabled) {\r\n background-color: var(--diwa-accent-hover);\r\n border-color: var(--diwa-accent-hover);\r\n }\r\n\r\n /* ── Validation states ────────────────────────────────────────────── */\r\n\r\n :host([state=\"error\"]) input[type=\"checkbox\"]:not(:checked):not(:indeterminate) {\r\n border-color: var(--diwa-notification-error);\r\n }\r\n\r\n :host([state=\"error\"]) input[type=\"checkbox\"]:not(:checked):not(:indeterminate):hover:not(:disabled) {\r\n border-color: var(--diwa-notification-error);\r\n background-color: var(--diwa-bg-hover);\r\n }\r\n\r\n :host([state=\"success\"]) input[type=\"checkbox\"]:not(:checked):not(:indeterminate) {\r\n border-color: var(--diwa-notification-success);\r\n }\r\n\r\n :host([state=\"success\"]) input[type=\"checkbox\"]:not(:checked):not(:indeterminate):hover:not(:disabled) {\r\n border-color: var(--diwa-notification-success);\r\n background-color: var(--diwa-bg-hover);\r\n }\r\n\r\n /* ── Disabled ─────────────────────────────────────────────────────── */\r\n\r\n :host([disabled]) {\r\n opacity: var(--diwa-opacity-disabled);\r\n pointer-events: none;\r\n }\r\n\r\n /* ── Label ────────────────────────────────────────────────────────── */\r\n\r\n .label {\r\n font-size: var(--diwa-font-size-base);\r\n font-weight: var(--diwa-font-weight-regular);\r\n line-height: 1.5;\r\n color: var(--diwa-text-primary);\r\n cursor: pointer;\r\n }\r\n\r\n :host([disabled]) .label {\r\n cursor: not-allowed;\r\n }\r\n\r\n /* Visually-hidden label (still read by screen readers) */\r\n .label--hidden {\r\n border: 0;\r\n clip: rect(0, 0, 0, 0);\r\n height: 1px;\r\n margin: -1px;\r\n overflow: hidden;\r\n padding: 0;\r\n position: absolute;\r\n white-space: nowrap;\r\n width: 1px;\r\n }\r\n\r\n /* Required asterisk */\r\n .required {\r\n color: var(--diwa-notification-error);\r\n margin-left: var(--diwa-space-0-5);\r\n }\r\n\r\n /* ── Message ──────────────────────────────────────────────────────── */\r\n\r\n .message {\r\n display: block;\r\n font-size: var(--diwa-font-size-sm);\r\n line-height: 1.4;\r\n color: ${messageColor};\r\n /* Indent to align under the label, not the checkbox */\r\n padding-left: calc(${boxSize} + var(--diwa-space-3));\r\n }\r\n\r\n /* ── Reduced motion ───────────────────────────────────────────────── */\r\n\r\n ${getReducedMotionStyle('input[type=\"checkbox\"]')}\r\n`;\r\n};\r\n","import { Component, Element, Event, type EventEmitter, Host, Prop, Watch, h } from '@stencil/core';\r\nimport type { CheckboxState } from './types';\r\nimport type { Theme } from '../../utils/styles';\r\nimport { getComponentCss } from './diwa-checkbox-styles';\r\n\r\n/**\r\n * @component diwa-checkbox\r\n *\r\n * A fully accessible checkbox control with label, validation state,\r\n * and indeterminate support. Mirrors the PDS p-checkbox API.\r\n *\r\n * Semi-controlled: the `checked` prop is mutable — the component\r\n * updates it internally AND emits an `update` event. The consumer can\r\n * either listen to `update` to manage state externally, or use it\r\n * standalone without any event wiring.\r\n *\r\n * Accessibility:\r\n * - Native `<input type=\"checkbox\">` inside Shadow DOM with delegatesFocus\r\n * - `aria-checked=\"mixed\"` set automatically when `indeterminate` is true\r\n * - `aria-describedby` wires the message element when state is error/success\r\n * - `role` is implicit from native input — no extra ARIA needed\r\n *\r\n * Usage:\r\n * <diwa-checkbox label=\"Accept terms\" checked={accepted}\r\n * onupdate={e => setAccepted(e.detail.checked)} />\r\n *\r\n * Note (V1): The inner <input name> is inside Shadow DOM and is therefore\r\n * not visible to ancestor <form> elements for native form submission.\r\n * Use ElementInternals (V2) or submit via JavaScript instead.\r\n */\r\n@Component({\r\n tag: 'diwa-checkbox',\r\n shadow: { delegatesFocus: true },\r\n})\r\nexport class DiwaCheckbox {\r\n @Element() host!: HTMLDiwaCheckboxElement;\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 /** Visible label text rendered next to the checkbox. */\r\n @Prop() label: string = '';\r\n\r\n /** Native name attribute (identifies the field in JS / form data). */\r\n @Prop() name: string = '';\r\n\r\n /** Value submitted/emitted when the checkbox is checked. */\r\n @Prop() value: string = 'on';\r\n\r\n /**\r\n * Whether the checkbox is checked.\r\n *\r\n * Semi-controlled: mutates internally on user interaction and\r\n * also emits an `update` event so the consumer can sync their state.\r\n */\r\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\r\n\r\n /**\r\n * Indeterminate state — renders a dash icon and sets `aria-checked=\"mixed\"`.\r\n * Setting this to `true` takes visual precedence over `checked`.\r\n * The consumer is responsible for clearing it once the user toggles.\r\n */\r\n @Prop({ reflect: true }) indeterminate: boolean = false;\r\n\r\n /** Puts the checkbox in a disabled state. Blocks interaction. */\r\n @Prop({ reflect: true }) disabled: boolean = false;\r\n\r\n /** Marks the field as required. Shows a visual asterisk in the label. */\r\n @Prop() required: boolean = false;\r\n\r\n /** Validation state: `'none'` (default), `'error'`, or `'success'`. */\r\n @Prop({ reflect: true }) state: CheckboxState = 'none';\r\n\r\n /** Helper / validation message shown below the checkbox. Only shown when state ≠ 'none'. */\r\n @Prop() message: string = '';\r\n\r\n /** Reduces the checkbox size from 20 px to 14 px for denser layouts. */\r\n @Prop({ reflect: true }) compact: boolean = false;\r\n\r\n /** Hides the label visually while keeping it accessible to screen readers. */\r\n @Prop({ reflect: true, attribute: 'hide-label' }) hideLabel: boolean = false;\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Events\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n /**\r\n * Emitted when the user toggles the checkbox.\r\n * `event.detail.checked` is the new checked state.\r\n *\r\n * React consumers: use the lowercase `onupdate` prop:\r\n * ```jsx\r\n * <diwa-checkbox onupdate={e => setChecked(e.detail.checked)} />\r\n * ```\r\n */\r\n @Event({ bubbles: false, composed: false })\r\n update!: EventEmitter<{ checked: boolean; name: string; value: string }>;\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Private state\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n private checkboxEl?: HTMLInputElement;\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Watchers\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n /** Keep the native input's non-reflected .indeterminate property in sync. */\r\n @Watch('indeterminate')\r\n watchIndeterminate(value: boolean) {\r\n if (this.checkboxEl) {\r\n this.checkboxEl.indeterminate = value;\r\n }\r\n }\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Private helpers\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n private handleChange = (e: Event): void => {\r\n const input = e.target as HTMLInputElement;\r\n this.checked = input.checked;\r\n // Clear indeterminate on user interaction (standard browser behaviour)\r\n if (this.indeterminate) {\r\n this.host.removeAttribute('indeterminate');\r\n }\r\n this.update.emit({\r\n checked: this.checked,\r\n name: this.name,\r\n value: this.value,\r\n });\r\n };\r\n\r\n private setCheckboxRef = (el?: HTMLInputElement): void => {\r\n this.checkboxEl = el;\r\n if (el) {\r\n el.indeterminate = this.indeterminate;\r\n }\r\n };\r\n\r\n // ──────────────────────────────────────────────────────────────\r\n // Render\r\n // ──────────────────────────────────────────────────────────────\r\n\r\n render() {\r\n const msgId = 'diwa-checkbox-msg';\r\n const hasMessage = !!this.message && this.state !== 'none';\r\n\r\n return (\r\n <Host data-theme={this.theme}>\r\n <style\r\n innerHTML={getComponentCss(\r\n this.state,\r\n this.disabled,\r\n this.compact,\r\n this.hideLabel,\r\n )}\r\n />\r\n\r\n <div class=\"root\">\r\n <div class=\"wrapper\">\r\n <div class=\"input-container\">\r\n <input\r\n type=\"checkbox\"\r\n id=\"cb\"\r\n checked={this.checked}\r\n disabled={this.disabled}\r\n required={this.required}\r\n name={this.name}\r\n value={this.value}\r\n aria-checked={this.indeterminate ? 'mixed' : undefined}\r\n aria-describedby={hasMessage ? msgId : undefined}\r\n onChange={this.handleChange}\r\n ref={this.setCheckboxRef}\r\n />\r\n </div>\r\n\r\n {this.label && (\r\n <label\r\n class={`label${this.hideLabel ? ' label--hidden' : ''}`}\r\n htmlFor=\"cb\"\r\n >\r\n {this.label}\r\n {this.required && (\r\n <span class=\"required\" aria-hidden=\"true\">\r\n {' '}*\r\n </span>\r\n )}\r\n </label>\r\n )}\r\n </div>\r\n\r\n {hasMessage && (\r\n <span id={msgId} class=\"message\">\r\n {this.message}\r\n </span>\r\n )}\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"sJAKA,MAAMA,EAAmB,iLAElB,MAAMC,EAAkB,CAC7BC,EACAC,EACAC,EACAC,KAEA,MAAMC,EAAUF,EAAU,OAAS,OACnC,MAAMG,EACJL,IAAU,QACN,iCACAA,IAAU,UACR,mCACA,6BAER,MAAO,s1BAwCII,mBACCA,mUAgBRE,sKASFC,EAAc,sdAcMC,6YAaAV,2iEA0EXO,2FAEYD,sHAKrBK,EAAsB,6BACzB,E,MClKYC,EAAY,MAJzB,WAAAC,CAAAC,G,yCAY2BC,KAAAC,MAAe,OAGhCD,KAAAE,MAAgB,GAGhBF,KAAAG,KAAe,GAGfH,KAAAI,MAAgB,KAQgBJ,KAAAK,QAAmB,MAOlCL,KAAAM,cAAyB,MAGzBN,KAAAO,SAAoB,MAGrCP,KAAAQ,SAAoB,MAGHR,KAAAb,MAAuB,OAGxCa,KAAAS,QAAkB,GAGDT,KAAAX,QAAmB,MAGMW,KAAAU,UAAqB,MAwC/DV,KAAAW,aAAgBC,IACtB,MAAMC,EAAQD,EAAEE,OAChBd,KAAKK,QAAUQ,EAAMR,QAErB,GAAIL,KAAKM,cAAe,CACtBN,KAAKe,KAAKC,gBAAgB,gB,CAE5BhB,KAAKiB,OAAOC,KAAK,CACfb,QAASL,KAAKK,QACdF,KAAMH,KAAKG,KACXC,MAAOJ,KAAKI,OACZ,EAGIJ,KAAAmB,eAAkBC,IACxBpB,KAAKqB,WAAaD,EAClB,GAAIA,EAAI,CACNA,EAAGd,cAAgBN,KAAKM,a,GA3B5B,kBAAAgB,CAAmBlB,GACjB,GAAIJ,KAAKqB,WAAY,CACnBrB,KAAKqB,WAAWf,cAAgBF,C,EAiCpC,MAAAmB,GACE,MAAMC,EAAQ,oBACd,MAAMC,IAAezB,KAAKS,SAAWT,KAAKb,QAAU,OAEpD,OACEuC,EAACC,EAAI,CAAAC,IAAA,wDAAa5B,KAAKC,OACrByB,EAAA,SAAAE,IAAA,2CACEC,UAAW3C,EACTc,KAAKb,MACLa,KAAKO,SACLP,KAAKX,WAKTqC,EAAA,OAAAE,IAAA,2CAAKE,MAAM,QACTJ,EAAA,OAAAE,IAAA,2CAAKE,MAAM,WACTJ,EAAA,OAAAE,IAAA,2CAAKE,MAAM,mBACTJ,EAAA,SAAAE,IAAA,2CACEG,KAAK,WACLC,GAAG,KACH3B,QAASL,KAAKK,QACdE,SAAUP,KAAKO,SACfC,SAAUR,KAAKQ,SACfL,KAAMH,KAAKG,KACXC,MAAOJ,KAAKI,MAAK,eACHJ,KAAKM,cAAgB,QAAU2B,UAAS,mBACpCR,EAAaD,EAAQS,UACvCC,SAAUlC,KAAKW,aACfwB,IAAKnC,KAAKmB,kBAIbnB,KAAKE,OACJwB,EAAA,SAAAE,IAAA,2CACEE,MAAO,QAAQ9B,KAAKU,UAAY,iBAAmB,KACnD0B,QAAQ,MAEPpC,KAAKE,MACLF,KAAKQ,UACJkB,EAAA,QAAAE,IAAA,2CAAME,MAAM,WAAU,cAAa,QAChC,IAAG,OAObL,GACCC,EAAA,QAAAE,IAAA,2CAAMI,GAAIR,EAAOM,MAAM,WACpB9B,KAAKS,U","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as s,c as t,h as e,H as i,g as a}from"./p-ed4017f0.js";import{g as h}from"./p-35c7c864.js";import"./p-70bbb21a.js";const d=class{constructor(e){s(this,e);this.change=t(this,"change",7);this.input=t(this,"input",7);this.blur=t(this,"blur",3);this.focus=t(this,"focus",3);this._hasStart=false;this._hasEnd=false;this.label="";this.description="";this.message="";this.state="none";this.name="";this.value="";this.placeholder="";this.disabled=false;this.required=false;this.readonly=false;this.hideLabel=false;this.compact=false;this.theme="dark";this.showToggle=true;this.showPassword=false;this.handleInput=s=>{this.value=s.target.value;this.input.emit(this.value)};this.handleChange=s=>{this.value=s.target.value;this.change.emit(this.value)};this.handleBlur=s=>{this.blur.emit(s)};this.handleFocus=s=>{this.focus.emit(s)};this.handleToggle=()=>{this.showPassword=!this.showPassword}}connectedCallback(){this._hasStart=!!this.el.querySelector('[slot="start"]');this._hasEnd=!!this.el.querySelector('[slot="end"]')}render(){const s="input";const t="desc";const a="msg";const d=this.showToggle&&!this.disabled;return e(i,{key:"1f3e93f2d809fb77b119144a2c1f2aec81980710","data-theme":this.theme},e("style",{key:"1b626031fac8f9583dc0485f4ab3f19dec92e5ae",innerHTML:h(this.state,this.disabled,this.readonly,this.compact,this._hasStart,this._hasEnd,d)}),e("div",{key:"7db9589d668114b06ce68645a234271b77e94058",class:"root"},!this.hideLabel&&this.label&&e("div",{key:"f1ced10f68fdcf68bf0062f48d7e017235802fa8",class:"label-row"},e("label",{key:"17dc6fa483714a0246db7a63f8cc54146bdb4734",class:"label",htmlFor:s},this.label,this.required&&e("span",{key:"2a2cc957a2d4a3fa8d84b80ad108e3f33e68ecfb",class:"required","aria-hidden":"true"}," *")),e("slot",{key:"181b756b7e92ce5529535de03b5cbeabf295ee85",name:"label-after"})),e("div",{key:"43392e28aeb68ddfbbd9935ff3ba4c8c5f9765bd",class:"input-wrapper"},this._hasStart&&e("div",{key:"06a510b797a4a2e1b734abe2a216d4889a41ef7d",class:"slot-start"},e("slot",{key:"335b50a0534bc16cf065f9dc911d6bf42982084c",name:"start"})),e("input",{key:"2101848e2c172b6022811d687a39f02bf51d1d40",id:s,class:"input",type:this.showPassword?"text":"password",name:this.name||undefined,value:this.value,placeholder:this.placeholder||undefined,disabled:this.disabled,required:this.required,readOnly:this.readonly,autocomplete:this.autoComplete,"aria-label":this.hideLabel&&this.label?this.label:undefined,"aria-invalid":this.state==="error"?"true":undefined,"aria-required":this.required?"true":undefined,"aria-describedby":this.message?a:this.description?t:undefined,onInput:this.handleInput,onChange:this.handleChange,onBlur:this.handleBlur,onFocus:this.handleFocus}),this._hasEnd&&e("div",{key:"7c35cc80e0af6becbd4144cb4c88fc9a117e8ad0",class:"slot-end"},e("slot",{key:"5614a7892ac04ff1b30e9f11075fde469a9848ec",name:"end"})),d&&e("button",{key:"c7ce34f499054cf4d2d43776375b61f1d28067b8",class:"suffix-btn",type:"button","aria-label":this.showPassword?"Hide password":"Show password",onClick:this.handleToggle},e("diwa-icon",{key:"ab12ef74e3d02ffafd88613687ba64a1df5afae3",name:this.showPassword?"eye-off":"eye",size:16}))),!this.message&&this.description&&e("p",{key:"bc23cdc9fac4d84dc90d7ba9626b799147e11b09",id:t,class:"description"},this.description),this.message&&e("p",{key:"8c0921edfa0ce1bc53bb419aeea71bd1a0ad2f5c",id:a,class:"message"},this.message)))}static get delegatesFocus(){return true}get el(){return a(this)}};export{d as diwa_input_password};
|
|
2
|
+
//# sourceMappingURL=p-f60f1d81.entry.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as s,c as t,h as e,H as i,g as a}from"./p-ed4017f0.js";import{g as h}from"./p-35c7c864.js";import"./p-70bbb21a.js";const d=class{constructor(e){s(this,e);this.change=t(this,"change",7);this.input=t(this,"input",7);this.blur=t(this,"blur",3);this.focus=t(this,"focus",3);this._hasStart=false;this._hasEnd=false;this.label="";this.description="";this.message="";this.state="none";this.name="";this.value="";this.placeholder="";this.disabled=false;this.required=false;this.readonly=false;this.hideLabel=false;this.compact=false;this.theme="dark";this.handleInput=s=>{this.value=s.target.value;this.input.emit(this.value)};this.handleChange=s=>{this.value=s.target.value;this.change.emit(this.value)};this.handleBlur=s=>{this.blur.emit(s)};this.handleFocus=s=>{this.focus.emit(s)}}connectedCallback(){this._hasStart=!!this.el.querySelector('[slot="start"]');this._hasEnd=!!this.el.querySelector('[slot="end"]')}render(){const s="input";const t="desc";const a="msg";return e(i,{key:"815dcda1917ab3e09996cc7256e93fa03af6859c","data-theme":this.theme},e("style",{key:"f818456b7051d7a3118f822280f366382ba0bd2e",innerHTML:h(this.state,this.disabled,this.readonly,this.compact,this._hasStart,this._hasEnd,false)}),e("div",{key:"64b4a3aad57983fb3a1d5fc90fd5a229054f421c",class:"root"},!this.hideLabel&&this.label&&e("div",{key:"4c2ada03a986cab360e69472b68992c368397302",class:"label-row"},e("label",{key:"4d66497d69d4913f76c48f3979f468e764700de6",class:"label",htmlFor:s},this.label,this.required&&e("span",{key:"0a1202881294392b03533ea4fb773786e4b86207",class:"required","aria-hidden":"true"}," *")),e("slot",{key:"0ccb378aa36f76ea46e52770f5802c38005faa36",name:"label-after"})),e("div",{key:"f630f867b7d3140402c67fca4dbe34c26d4b941b",class:"input-wrapper"},this._hasStart&&e("div",{key:"87be8ff03fb503cf698318e582a582a16a462c2f",class:"slot-start"},e("slot",{key:"d72b709ca7b7ac5207f5e880a91d8082672f7d98",name:"start"})),e("input",{key:"6bfeef03dba3617a4a8962f3582bfbdc5e5e57dd",id:s,class:"input",type:"url",name:this.name||undefined,value:this.value,placeholder:this.placeholder||undefined,disabled:this.disabled,required:this.required,readOnly:this.readonly,autocomplete:this.autoComplete,"aria-label":this.hideLabel&&this.label?this.label:undefined,"aria-invalid":this.state==="error"?"true":undefined,"aria-required":this.required?"true":undefined,"aria-describedby":this.message?a:this.description?t:undefined,onInput:this.handleInput,onChange:this.handleChange,onBlur:this.handleBlur,onFocus:this.handleFocus}),this._hasEnd&&e("div",{key:"9f362881037e57edd4936993e0f32f812b755140",class:"slot-end"},e("slot",{key:"e72701b8bbd28fc0b1aabfe133c17c89f8432604",name:"end"}))),!this.message&&this.description&&e("p",{key:"b791d25314effb37d79b2cb0dca08d23bdf4be3d",id:t,class:"description"},this.description),this.message&&e("p",{key:"47d96a0725dd01efef0158c5e256191d6a30d417",id:a,class:"message"},this.message)))}static get delegatesFocus(){return true}get el(){return a(this)}};export{d as diwa_input_url};
|
|
2
|
+
//# sourceMappingURL=p-fae653f7.entry.js.map
|
|
@@ -37,7 +37,7 @@ const getComponentCss = (state, _disabled, compact, _hideLabel) => {
|
|
|
37
37
|
|
|
38
38
|
.wrapper {
|
|
39
39
|
display: inline-flex;
|
|
40
|
-
align-items:
|
|
40
|
+
align-items: center;
|
|
41
41
|
gap: var(--diwa-space-3);
|
|
42
42
|
cursor: pointer;
|
|
43
43
|
}
|
|
@@ -53,8 +53,6 @@ const getComponentCss = (state, _disabled, compact, _hideLabel) => {
|
|
|
53
53
|
flex-shrink: 0;
|
|
54
54
|
width: ${boxSize};
|
|
55
55
|
height: ${boxSize};
|
|
56
|
-
/* Center the box on the first line of label text (line-height: 1.5) */
|
|
57
|
-
margin-top: calc((1.5em - ${boxSize}) / 2);
|
|
58
56
|
}
|
|
59
57
|
|
|
60
58
|
/* ── Native checkbox ──────────────────────────────────────────────── */
|