@helixui/library 0.1.0
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/custom-elements.json +31860 -0
- package/dist/components/hx-accordion/hx-accordion-item.d.ts +52 -0
- package/dist/components/hx-accordion/hx-accordion-item.d.ts.map +1 -0
- package/dist/components/hx-accordion/hx-accordion-item.styles.d.ts +2 -0
- package/dist/components/hx-accordion/hx-accordion-item.styles.d.ts.map +1 -0
- package/dist/components/hx-accordion/hx-accordion.d.ts +45 -0
- package/dist/components/hx-accordion/hx-accordion.d.ts.map +1 -0
- package/dist/components/hx-accordion/hx-accordion.styles.d.ts +2 -0
- package/dist/components/hx-accordion/hx-accordion.styles.d.ts.map +1 -0
- package/dist/components/hx-accordion/index.d.ts +3 -0
- package/dist/components/hx-accordion/index.d.ts.map +1 -0
- package/dist/components/hx-accordion/index.js +6 -0
- package/dist/components/hx-accordion/index.js.map +1 -0
- package/dist/components/hx-action-bar/hx-action-bar.d.ts +91 -0
- package/dist/components/hx-action-bar/hx-action-bar.d.ts.map +1 -0
- package/dist/components/hx-action-bar/hx-action-bar.styles.d.ts +2 -0
- package/dist/components/hx-action-bar/hx-action-bar.styles.d.ts.map +1 -0
- package/dist/components/hx-action-bar/index.d.ts +2 -0
- package/dist/components/hx-action-bar/index.d.ts.map +1 -0
- package/dist/components/hx-action-bar/index.js +5 -0
- package/dist/components/hx-action-bar/index.js.map +1 -0
- package/dist/components/hx-alert/hx-alert.d.ts +108 -0
- package/dist/components/hx-alert/hx-alert.d.ts.map +1 -0
- package/dist/components/hx-alert/hx-alert.styles.d.ts +2 -0
- package/dist/components/hx-alert/hx-alert.styles.d.ts.map +1 -0
- package/dist/components/hx-alert/index.d.ts +2 -0
- package/dist/components/hx-alert/index.d.ts.map +1 -0
- package/dist/components/hx-alert/index.js +5 -0
- package/dist/components/hx-alert/index.js.map +1 -0
- package/dist/components/hx-avatar/hx-avatar.d.ts +85 -0
- package/dist/components/hx-avatar/hx-avatar.d.ts.map +1 -0
- package/dist/components/hx-avatar/hx-avatar.styles.d.ts +2 -0
- package/dist/components/hx-avatar/hx-avatar.styles.d.ts.map +1 -0
- package/dist/components/hx-avatar/index.d.ts +2 -0
- package/dist/components/hx-avatar/index.d.ts.map +1 -0
- package/dist/components/hx-avatar/index.js +5 -0
- package/dist/components/hx-avatar/index.js.map +1 -0
- package/dist/components/hx-badge/hx-badge.d.ts +98 -0
- package/dist/components/hx-badge/hx-badge.d.ts.map +1 -0
- package/dist/components/hx-badge/hx-badge.styles.d.ts +2 -0
- package/dist/components/hx-badge/hx-badge.styles.d.ts.map +1 -0
- package/dist/components/hx-badge/index.d.ts +2 -0
- package/dist/components/hx-badge/index.d.ts.map +1 -0
- package/dist/components/hx-badge/index.js +5 -0
- package/dist/components/hx-badge/index.js.map +1 -0
- package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts +66 -0
- package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts.map +1 -0
- package/dist/components/hx-breadcrumb/hx-breadcrumb-item.styles.d.ts +2 -0
- package/dist/components/hx-breadcrumb/hx-breadcrumb-item.styles.d.ts.map +1 -0
- package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +130 -0
- package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -0
- package/dist/components/hx-breadcrumb/hx-breadcrumb.styles.d.ts +2 -0
- package/dist/components/hx-breadcrumb/hx-breadcrumb.styles.d.ts.map +1 -0
- package/dist/components/hx-breadcrumb/index.d.ts +3 -0
- package/dist/components/hx-breadcrumb/index.d.ts.map +1 -0
- package/dist/components/hx-breadcrumb/index.js +6 -0
- package/dist/components/hx-breadcrumb/index.js.map +1 -0
- package/dist/components/hx-button/hx-button.d.ts +97 -0
- package/dist/components/hx-button/hx-button.d.ts.map +1 -0
- package/dist/components/hx-button/hx-button.styles.d.ts +2 -0
- package/dist/components/hx-button/hx-button.styles.d.ts.map +1 -0
- package/dist/components/hx-button/index.d.ts +2 -0
- package/dist/components/hx-button/index.d.ts.map +1 -0
- package/dist/components/hx-button/index.js +5 -0
- package/dist/components/hx-button/index.js.map +1 -0
- package/dist/components/hx-button-group/hx-button-group.d.ts +49 -0
- package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -0
- package/dist/components/hx-button-group/hx-button-group.styles.d.ts +2 -0
- package/dist/components/hx-button-group/hx-button-group.styles.d.ts.map +1 -0
- package/dist/components/hx-button-group/index.d.ts +2 -0
- package/dist/components/hx-button-group/index.d.ts.map +1 -0
- package/dist/components/hx-button-group/index.js +5 -0
- package/dist/components/hx-button-group/index.js.map +1 -0
- package/dist/components/hx-card/hx-card.d.ts +76 -0
- package/dist/components/hx-card/hx-card.d.ts.map +1 -0
- package/dist/components/hx-card/hx-card.styles.d.ts +2 -0
- package/dist/components/hx-card/hx-card.styles.d.ts.map +1 -0
- package/dist/components/hx-card/index.d.ts +2 -0
- package/dist/components/hx-card/index.d.ts.map +1 -0
- package/dist/components/hx-card/index.js +5 -0
- package/dist/components/hx-card/index.js.map +1 -0
- package/dist/components/hx-carousel/hx-carousel-item.d.ts +30 -0
- package/dist/components/hx-carousel/hx-carousel-item.d.ts.map +1 -0
- package/dist/components/hx-carousel/hx-carousel.d.ts +130 -0
- package/dist/components/hx-carousel/hx-carousel.d.ts.map +1 -0
- package/dist/components/hx-carousel/hx-carousel.styles.d.ts +2 -0
- package/dist/components/hx-carousel/hx-carousel.styles.d.ts.map +1 -0
- package/dist/components/hx-carousel/index.d.ts +3 -0
- package/dist/components/hx-carousel/index.d.ts.map +1 -0
- package/dist/components/hx-carousel/index.js +6 -0
- package/dist/components/hx-carousel/index.js.map +1 -0
- package/dist/components/hx-checkbox/hx-checkbox.d.ts +127 -0
- package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -0
- package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts +2 -0
- package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts.map +1 -0
- package/dist/components/hx-checkbox/index.d.ts +2 -0
- package/dist/components/hx-checkbox/index.d.ts.map +1 -0
- package/dist/components/hx-checkbox/index.js +5 -0
- package/dist/components/hx-checkbox/index.js.map +1 -0
- package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +111 -0
- package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -0
- package/dist/components/hx-checkbox-group/hx-checkbox-group.styles.d.ts +2 -0
- package/dist/components/hx-checkbox-group/hx-checkbox-group.styles.d.ts.map +1 -0
- package/dist/components/hx-checkbox-group/index.d.ts +2 -0
- package/dist/components/hx-checkbox-group/index.d.ts.map +1 -0
- package/dist/components/hx-checkbox-group/index.js +5 -0
- package/dist/components/hx-checkbox-group/index.js.map +1 -0
- package/dist/components/hx-code-snippet/hx-code-snippet.d.ts +90 -0
- package/dist/components/hx-code-snippet/hx-code-snippet.d.ts.map +1 -0
- package/dist/components/hx-code-snippet/hx-code-snippet.styles.d.ts +2 -0
- package/dist/components/hx-code-snippet/hx-code-snippet.styles.d.ts.map +1 -0
- package/dist/components/hx-code-snippet/index.d.ts +2 -0
- package/dist/components/hx-code-snippet/index.d.ts.map +1 -0
- package/dist/components/hx-code-snippet/index.js +5 -0
- package/dist/components/hx-code-snippet/index.js.map +1 -0
- package/dist/components/hx-color-picker/hx-color-picker.d.ts +154 -0
- package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -0
- package/dist/components/hx-color-picker/hx-color-picker.styles.d.ts +2 -0
- package/dist/components/hx-color-picker/hx-color-picker.styles.d.ts.map +1 -0
- package/dist/components/hx-color-picker/index.d.ts +2 -0
- package/dist/components/hx-color-picker/index.d.ts.map +1 -0
- package/dist/components/hx-color-picker/index.js +5 -0
- package/dist/components/hx-color-picker/index.js.map +1 -0
- package/dist/components/hx-combobox/hx-combobox.d.ts +185 -0
- package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -0
- package/dist/components/hx-combobox/hx-combobox.styles.d.ts +2 -0
- package/dist/components/hx-combobox/hx-combobox.styles.d.ts.map +1 -0
- package/dist/components/hx-combobox/index.d.ts +3 -0
- package/dist/components/hx-combobox/index.d.ts.map +1 -0
- package/dist/components/hx-combobox/index.js +5 -0
- package/dist/components/hx-combobox/index.js.map +1 -0
- package/dist/components/hx-container/hx-container.d.ts +56 -0
- package/dist/components/hx-container/hx-container.d.ts.map +1 -0
- package/dist/components/hx-container/hx-container.styles.d.ts +2 -0
- package/dist/components/hx-container/hx-container.styles.d.ts.map +1 -0
- package/dist/components/hx-container/index.d.ts +2 -0
- package/dist/components/hx-container/index.d.ts.map +1 -0
- package/dist/components/hx-container/index.js +5 -0
- package/dist/components/hx-container/index.js.map +1 -0
- package/dist/components/hx-copy-button/hx-copy-button.d.ts +103 -0
- package/dist/components/hx-copy-button/hx-copy-button.d.ts.map +1 -0
- package/dist/components/hx-copy-button/hx-copy-button.styles.d.ts +2 -0
- package/dist/components/hx-copy-button/hx-copy-button.styles.d.ts.map +1 -0
- package/dist/components/hx-copy-button/index.d.ts +2 -0
- package/dist/components/hx-copy-button/index.d.ts.map +1 -0
- package/dist/components/hx-copy-button/index.js +5 -0
- package/dist/components/hx-copy-button/index.js.map +1 -0
- package/dist/components/hx-data-table/hx-data-table.d.ts +125 -0
- package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -0
- package/dist/components/hx-data-table/hx-data-table.styles.d.ts +2 -0
- package/dist/components/hx-data-table/hx-data-table.styles.d.ts.map +1 -0
- package/dist/components/hx-data-table/index.d.ts +3 -0
- package/dist/components/hx-data-table/index.d.ts.map +1 -0
- package/dist/components/hx-data-table/index.js +5 -0
- package/dist/components/hx-data-table/index.js.map +1 -0
- package/dist/components/hx-date-picker/hx-date-picker.d.ts +129 -0
- package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -0
- package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts +2 -0
- package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -0
- package/dist/components/hx-date-picker/index.d.ts +2 -0
- package/dist/components/hx-date-picker/index.d.ts.map +1 -0
- package/dist/components/hx-date-picker/index.js +5 -0
- package/dist/components/hx-date-picker/index.js.map +1 -0
- package/dist/components/hx-dialog/hx-dialog.d.ts +156 -0
- package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -0
- package/dist/components/hx-dialog/hx-dialog.styles.d.ts +2 -0
- package/dist/components/hx-dialog/hx-dialog.styles.d.ts.map +1 -0
- package/dist/components/hx-dialog/index.d.ts +2 -0
- package/dist/components/hx-dialog/index.d.ts.map +1 -0
- package/dist/components/hx-dialog/index.js +5 -0
- package/dist/components/hx-dialog/index.js.map +1 -0
- package/dist/components/hx-divider/hx-divider.d.ts +58 -0
- package/dist/components/hx-divider/hx-divider.d.ts.map +1 -0
- package/dist/components/hx-divider/hx-divider.styles.d.ts +2 -0
- package/dist/components/hx-divider/hx-divider.styles.d.ts.map +1 -0
- package/dist/components/hx-divider/index.d.ts +3 -0
- package/dist/components/hx-divider/index.d.ts.map +1 -0
- package/dist/components/hx-divider/index.js +5 -0
- package/dist/components/hx-divider/index.js.map +1 -0
- package/dist/components/hx-drawer/hx-drawer.d.ts +131 -0
- package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -0
- package/dist/components/hx-drawer/hx-drawer.styles.d.ts +2 -0
- package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -0
- package/dist/components/hx-drawer/index.d.ts +2 -0
- package/dist/components/hx-drawer/index.d.ts.map +1 -0
- package/dist/components/hx-drawer/index.js +5 -0
- package/dist/components/hx-drawer/index.js.map +1 -0
- package/dist/components/hx-dropdown/hx-dropdown.d.ts +89 -0
- package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -0
- package/dist/components/hx-dropdown/hx-dropdown.styles.d.ts +2 -0
- package/dist/components/hx-dropdown/hx-dropdown.styles.d.ts.map +1 -0
- package/dist/components/hx-dropdown/index.d.ts +2 -0
- package/dist/components/hx-dropdown/index.d.ts.map +1 -0
- package/dist/components/hx-dropdown/index.js +5 -0
- package/dist/components/hx-dropdown/index.js.map +1 -0
- package/dist/components/hx-field/hx-field.d.ts +141 -0
- package/dist/components/hx-field/hx-field.d.ts.map +1 -0
- package/dist/components/hx-field/hx-field.styles.d.ts +2 -0
- package/dist/components/hx-field/hx-field.styles.d.ts.map +1 -0
- package/dist/components/hx-field/index.d.ts +2 -0
- package/dist/components/hx-field/index.d.ts.map +1 -0
- package/dist/components/hx-field/index.js +5 -0
- package/dist/components/hx-field/index.js.map +1 -0
- package/dist/components/hx-field-label/hx-field-label.d.ts +58 -0
- package/dist/components/hx-field-label/hx-field-label.d.ts.map +1 -0
- package/dist/components/hx-field-label/hx-field-label.styles.d.ts +2 -0
- package/dist/components/hx-field-label/hx-field-label.styles.d.ts.map +1 -0
- package/dist/components/hx-field-label/index.d.ts +2 -0
- package/dist/components/hx-field-label/index.d.ts.map +1 -0
- package/dist/components/hx-field-label/index.js +5 -0
- package/dist/components/hx-field-label/index.js.map +1 -0
- package/dist/components/hx-file-upload/hx-file-upload.d.ts +138 -0
- package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -0
- package/dist/components/hx-file-upload/hx-file-upload.styles.d.ts +2 -0
- package/dist/components/hx-file-upload/hx-file-upload.styles.d.ts.map +1 -0
- package/dist/components/hx-file-upload/index.d.ts +2 -0
- package/dist/components/hx-file-upload/index.d.ts.map +1 -0
- package/dist/components/hx-file-upload/index.js +5 -0
- package/dist/components/hx-file-upload/index.js.map +1 -0
- package/dist/components/hx-form/hx-form.d.ts +141 -0
- package/dist/components/hx-form/hx-form.d.ts.map +1 -0
- package/dist/components/hx-form/hx-form.styles.d.ts +2 -0
- package/dist/components/hx-form/hx-form.styles.d.ts.map +1 -0
- package/dist/components/hx-form/index.d.ts +2 -0
- package/dist/components/hx-form/index.d.ts.map +1 -0
- package/dist/components/hx-form/index.js +5 -0
- package/dist/components/hx-form/index.js.map +1 -0
- package/dist/components/hx-format-date/hx-format-date.d.ts +120 -0
- package/dist/components/hx-format-date/hx-format-date.d.ts.map +1 -0
- package/dist/components/hx-format-date/hx-format-date.styles.d.ts +2 -0
- package/dist/components/hx-format-date/hx-format-date.styles.d.ts.map +1 -0
- package/dist/components/hx-format-date/index.d.ts +2 -0
- package/dist/components/hx-format-date/index.d.ts.map +1 -0
- package/dist/components/hx-format-date/index.js +5 -0
- package/dist/components/hx-format-date/index.js.map +1 -0
- package/dist/components/hx-grid/hx-grid.d.ts +100 -0
- package/dist/components/hx-grid/hx-grid.d.ts.map +1 -0
- package/dist/components/hx-grid/hx-grid.styles.d.ts +3 -0
- package/dist/components/hx-grid/hx-grid.styles.d.ts.map +1 -0
- package/dist/components/hx-grid/index.d.ts +2 -0
- package/dist/components/hx-grid/index.d.ts.map +1 -0
- package/dist/components/hx-grid/index.js +6 -0
- package/dist/components/hx-grid/index.js.map +1 -0
- package/dist/components/hx-help-text/hx-help-text.d.ts +44 -0
- package/dist/components/hx-help-text/hx-help-text.d.ts.map +1 -0
- package/dist/components/hx-help-text/hx-help-text.styles.d.ts +2 -0
- package/dist/components/hx-help-text/hx-help-text.styles.d.ts.map +1 -0
- package/dist/components/hx-help-text/index.d.ts +2 -0
- package/dist/components/hx-help-text/index.d.ts.map +1 -0
- package/dist/components/hx-help-text/index.js +5 -0
- package/dist/components/hx-help-text/index.js.map +1 -0
- package/dist/components/hx-icon/hx-icon.d.ts +115 -0
- package/dist/components/hx-icon/hx-icon.d.ts.map +1 -0
- package/dist/components/hx-icon/hx-icon.styles.d.ts +2 -0
- package/dist/components/hx-icon/hx-icon.styles.d.ts.map +1 -0
- package/dist/components/hx-icon/index.d.ts +2 -0
- package/dist/components/hx-icon/index.d.ts.map +1 -0
- package/dist/components/hx-icon/index.js +5 -0
- package/dist/components/hx-icon/index.js.map +1 -0
- package/dist/components/hx-image/hx-image.d.ts +120 -0
- package/dist/components/hx-image/hx-image.d.ts.map +1 -0
- package/dist/components/hx-image/hx-image.styles.d.ts +2 -0
- package/dist/components/hx-image/hx-image.styles.d.ts.map +1 -0
- package/dist/components/hx-image/index.d.ts +2 -0
- package/dist/components/hx-image/index.d.ts.map +1 -0
- package/dist/components/hx-image/index.js +5 -0
- package/dist/components/hx-image/index.js.map +1 -0
- package/dist/components/hx-link/hx-link.d.ts +84 -0
- package/dist/components/hx-link/hx-link.d.ts.map +1 -0
- package/dist/components/hx-link/hx-link.styles.d.ts +2 -0
- package/dist/components/hx-link/hx-link.styles.d.ts.map +1 -0
- package/dist/components/hx-link/index.d.ts +3 -0
- package/dist/components/hx-link/index.d.ts.map +1 -0
- package/dist/components/hx-link/index.js +5 -0
- package/dist/components/hx-link/index.js.map +1 -0
- package/dist/components/hx-list/hx-list-item.d.ts +79 -0
- package/dist/components/hx-list/hx-list-item.d.ts.map +1 -0
- package/dist/components/hx-list/hx-list-item.styles.d.ts +2 -0
- package/dist/components/hx-list/hx-list-item.styles.d.ts.map +1 -0
- package/dist/components/hx-list/hx-list.d.ts +54 -0
- package/dist/components/hx-list/hx-list.d.ts.map +1 -0
- package/dist/components/hx-list/hx-list.styles.d.ts +2 -0
- package/dist/components/hx-list/hx-list.styles.d.ts.map +1 -0
- package/dist/components/hx-list/index.d.ts +3 -0
- package/dist/components/hx-list/index.d.ts.map +1 -0
- package/dist/components/hx-list/index.js +6 -0
- package/dist/components/hx-list/index.js.map +1 -0
- package/dist/components/hx-menu/hx-menu-divider.d.ts +22 -0
- package/dist/components/hx-menu/hx-menu-divider.d.ts.map +1 -0
- package/dist/components/hx-menu/hx-menu-item.d.ts +75 -0
- package/dist/components/hx-menu/hx-menu-item.d.ts.map +1 -0
- package/dist/components/hx-menu/hx-menu-item.styles.d.ts +2 -0
- package/dist/components/hx-menu/hx-menu-item.styles.d.ts.map +1 -0
- package/dist/components/hx-menu/hx-menu.d.ts +45 -0
- package/dist/components/hx-menu/hx-menu.d.ts.map +1 -0
- package/dist/components/hx-menu/hx-menu.styles.d.ts +2 -0
- package/dist/components/hx-menu/hx-menu.styles.d.ts.map +1 -0
- package/dist/components/hx-menu/index.d.ts +4 -0
- package/dist/components/hx-menu/index.d.ts.map +1 -0
- package/dist/components/hx-menu/index.js +7 -0
- package/dist/components/hx-menu/index.js.map +1 -0
- package/dist/components/hx-meter/hx-meter.d.ts +83 -0
- package/dist/components/hx-meter/hx-meter.d.ts.map +1 -0
- package/dist/components/hx-meter/hx-meter.styles.d.ts +2 -0
- package/dist/components/hx-meter/hx-meter.styles.d.ts.map +1 -0
- package/dist/components/hx-meter/index.d.ts +2 -0
- package/dist/components/hx-meter/index.d.ts.map +1 -0
- package/dist/components/hx-meter/index.js +5 -0
- package/dist/components/hx-meter/index.js.map +1 -0
- package/dist/components/hx-nav/hx-nav.d.ts +92 -0
- package/dist/components/hx-nav/hx-nav.d.ts.map +1 -0
- package/dist/components/hx-nav/hx-nav.styles.d.ts +2 -0
- package/dist/components/hx-nav/hx-nav.styles.d.ts.map +1 -0
- package/dist/components/hx-nav/index.d.ts +2 -0
- package/dist/components/hx-nav/index.d.ts.map +1 -0
- package/dist/components/hx-nav/index.js +5 -0
- package/dist/components/hx-nav/index.js.map +1 -0
- package/dist/components/hx-number-input/hx-number-input.d.ts +171 -0
- package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -0
- package/dist/components/hx-number-input/hx-number-input.styles.d.ts +2 -0
- package/dist/components/hx-number-input/hx-number-input.styles.d.ts.map +1 -0
- package/dist/components/hx-number-input/index.d.ts +2 -0
- package/dist/components/hx-number-input/index.d.ts.map +1 -0
- package/dist/components/hx-number-input/index.js +5 -0
- package/dist/components/hx-number-input/index.js.map +1 -0
- package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +85 -0
- package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts.map +1 -0
- package/dist/components/hx-overflow-menu/hx-overflow-menu.styles.d.ts +2 -0
- package/dist/components/hx-overflow-menu/hx-overflow-menu.styles.d.ts.map +1 -0
- package/dist/components/hx-overflow-menu/index.d.ts +2 -0
- package/dist/components/hx-overflow-menu/index.d.ts.map +1 -0
- package/dist/components/hx-overflow-menu/index.js +5 -0
- package/dist/components/hx-overflow-menu/index.js.map +1 -0
- package/dist/components/hx-pagination/hx-pagination.d.ts +123 -0
- package/dist/components/hx-pagination/hx-pagination.d.ts.map +1 -0
- package/dist/components/hx-pagination/hx-pagination.styles.d.ts +2 -0
- package/dist/components/hx-pagination/hx-pagination.styles.d.ts.map +1 -0
- package/dist/components/hx-pagination/index.d.ts +2 -0
- package/dist/components/hx-pagination/index.d.ts.map +1 -0
- package/dist/components/hx-pagination/index.js +5 -0
- package/dist/components/hx-pagination/index.js.map +1 -0
- package/dist/components/hx-popover/hx-popover.d.ts +105 -0
- package/dist/components/hx-popover/hx-popover.d.ts.map +1 -0
- package/dist/components/hx-popover/hx-popover.styles.d.ts +2 -0
- package/dist/components/hx-popover/hx-popover.styles.d.ts.map +1 -0
- package/dist/components/hx-popover/index.d.ts +2 -0
- package/dist/components/hx-popover/index.d.ts.map +1 -0
- package/dist/components/hx-popover/index.js +5 -0
- package/dist/components/hx-popover/index.js.map +1 -0
- package/dist/components/hx-popup/hx-popup.d.ts +218 -0
- package/dist/components/hx-popup/hx-popup.d.ts.map +1 -0
- package/dist/components/hx-popup/hx-popup.styles.d.ts +2 -0
- package/dist/components/hx-popup/hx-popup.styles.d.ts.map +1 -0
- package/dist/components/hx-popup/index.d.ts +2 -0
- package/dist/components/hx-popup/index.d.ts.map +1 -0
- package/dist/components/hx-popup/index.js +5 -0
- package/dist/components/hx-popup/index.js.map +1 -0
- package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +80 -0
- package/dist/components/hx-progress-bar/hx-progress-bar.d.ts.map +1 -0
- package/dist/components/hx-progress-bar/hx-progress-bar.styles.d.ts +2 -0
- package/dist/components/hx-progress-bar/hx-progress-bar.styles.d.ts.map +1 -0
- package/dist/components/hx-progress-bar/index.d.ts +2 -0
- package/dist/components/hx-progress-bar/index.d.ts.map +1 -0
- package/dist/components/hx-progress-bar/index.js +5 -0
- package/dist/components/hx-progress-bar/index.js.map +1 -0
- package/dist/components/hx-progress-ring/hx-progress-ring.d.ts +73 -0
- package/dist/components/hx-progress-ring/hx-progress-ring.d.ts.map +1 -0
- package/dist/components/hx-progress-ring/hx-progress-ring.styles.d.ts +2 -0
- package/dist/components/hx-progress-ring/hx-progress-ring.styles.d.ts.map +1 -0
- package/dist/components/hx-progress-ring/index.d.ts +2 -0
- package/dist/components/hx-progress-ring/index.d.ts.map +1 -0
- package/dist/components/hx-progress-ring/index.js +5 -0
- package/dist/components/hx-progress-ring/index.js.map +1 -0
- package/dist/components/hx-prose/hx-prose.d.ts +49 -0
- package/dist/components/hx-prose/hx-prose.d.ts.map +1 -0
- package/dist/components/hx-prose/hx-prose.styles.d.ts +2 -0
- package/dist/components/hx-prose/hx-prose.styles.d.ts.map +1 -0
- package/dist/components/hx-prose/index.d.ts +2 -0
- package/dist/components/hx-prose/index.d.ts.map +1 -0
- package/dist/components/hx-prose/index.js +5 -0
- package/dist/components/hx-prose/index.js.map +1 -0
- package/dist/components/hx-radio-group/hx-radio-group.d.ts +112 -0
- package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -0
- package/dist/components/hx-radio-group/hx-radio-group.styles.d.ts +2 -0
- package/dist/components/hx-radio-group/hx-radio-group.styles.d.ts.map +1 -0
- package/dist/components/hx-radio-group/hx-radio.d.ts +57 -0
- package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -0
- package/dist/components/hx-radio-group/hx-radio.styles.d.ts +2 -0
- package/dist/components/hx-radio-group/hx-radio.styles.d.ts.map +1 -0
- package/dist/components/hx-radio-group/index.d.ts +3 -0
- package/dist/components/hx-radio-group/index.d.ts.map +1 -0
- package/dist/components/hx-radio-group/index.js +6 -0
- package/dist/components/hx-radio-group/index.js.map +1 -0
- package/dist/components/hx-rating/hx-rating.d.ts +112 -0
- package/dist/components/hx-rating/hx-rating.d.ts.map +1 -0
- package/dist/components/hx-rating/hx-rating.styles.d.ts +2 -0
- package/dist/components/hx-rating/hx-rating.styles.d.ts.map +1 -0
- package/dist/components/hx-rating/index.d.ts +2 -0
- package/dist/components/hx-rating/index.d.ts.map +1 -0
- package/dist/components/hx-rating/index.js +5 -0
- package/dist/components/hx-rating/index.js.map +1 -0
- package/dist/components/hx-select/hx-select.d.ts +173 -0
- package/dist/components/hx-select/hx-select.d.ts.map +1 -0
- package/dist/components/hx-select/hx-select.styles.d.ts +2 -0
- package/dist/components/hx-select/hx-select.styles.d.ts.map +1 -0
- package/dist/components/hx-select/index.d.ts +2 -0
- package/dist/components/hx-select/index.d.ts.map +1 -0
- package/dist/components/hx-select/index.js +5 -0
- package/dist/components/hx-select/index.js.map +1 -0
- package/dist/components/hx-side-nav/hx-nav-item.d.ts +69 -0
- package/dist/components/hx-side-nav/hx-nav-item.d.ts.map +1 -0
- package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts +2 -0
- package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -0
- package/dist/components/hx-side-nav/hx-side-nav.d.ts +73 -0
- package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -0
- package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts +2 -0
- package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts.map +1 -0
- package/dist/components/hx-side-nav/index.d.ts +3 -0
- package/dist/components/hx-side-nav/index.d.ts.map +1 -0
- package/dist/components/hx-side-nav/index.js +6 -0
- package/dist/components/hx-side-nav/index.js.map +1 -0
- package/dist/components/hx-skeleton/hx-skeleton.d.ts +76 -0
- package/dist/components/hx-skeleton/hx-skeleton.d.ts.map +1 -0
- package/dist/components/hx-skeleton/hx-skeleton.styles.d.ts +2 -0
- package/dist/components/hx-skeleton/hx-skeleton.styles.d.ts.map +1 -0
- package/dist/components/hx-skeleton/index.d.ts +2 -0
- package/dist/components/hx-skeleton/index.d.ts.map +1 -0
- package/dist/components/hx-skeleton/index.js +5 -0
- package/dist/components/hx-skeleton/index.js.map +1 -0
- package/dist/components/hx-slider/hx-slider.d.ts +166 -0
- package/dist/components/hx-slider/hx-slider.d.ts.map +1 -0
- package/dist/components/hx-slider/hx-slider.styles.d.ts +2 -0
- package/dist/components/hx-slider/hx-slider.styles.d.ts.map +1 -0
- package/dist/components/hx-slider/index.d.ts +2 -0
- package/dist/components/hx-slider/index.d.ts.map +1 -0
- package/dist/components/hx-slider/index.js +5 -0
- package/dist/components/hx-slider/index.js.map +1 -0
- package/dist/components/hx-spinner/hx-spinner.d.ts +58 -0
- package/dist/components/hx-spinner/hx-spinner.d.ts.map +1 -0
- package/dist/components/hx-spinner/hx-spinner.styles.d.ts +2 -0
- package/dist/components/hx-spinner/hx-spinner.styles.d.ts.map +1 -0
- package/dist/components/hx-spinner/index.d.ts +2 -0
- package/dist/components/hx-spinner/index.d.ts.map +1 -0
- package/dist/components/hx-spinner/index.js +5 -0
- package/dist/components/hx-spinner/index.js.map +1 -0
- package/dist/components/hx-split-button/hx-split-button.d.ts +101 -0
- package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -0
- package/dist/components/hx-split-button/hx-split-button.styles.d.ts +2 -0
- package/dist/components/hx-split-button/hx-split-button.styles.d.ts.map +1 -0
- package/dist/components/hx-split-button/index.d.ts +2 -0
- package/dist/components/hx-split-button/index.d.ts.map +1 -0
- package/dist/components/hx-split-button/index.js +5 -0
- package/dist/components/hx-split-button/index.js.map +1 -0
- package/dist/components/hx-split-panel/hx-split-panel.d.ts +115 -0
- package/dist/components/hx-split-panel/hx-split-panel.d.ts.map +1 -0
- package/dist/components/hx-split-panel/hx-split-panel.styles.d.ts +2 -0
- package/dist/components/hx-split-panel/hx-split-panel.styles.d.ts.map +1 -0
- package/dist/components/hx-split-panel/index.d.ts +2 -0
- package/dist/components/hx-split-panel/index.d.ts.map +1 -0
- package/dist/components/hx-split-panel/index.js +5 -0
- package/dist/components/hx-split-panel/index.js.map +1 -0
- package/dist/components/hx-stack/hx-stack.d.ts +53 -0
- package/dist/components/hx-stack/hx-stack.d.ts.map +1 -0
- package/dist/components/hx-stack/hx-stack.styles.d.ts +2 -0
- package/dist/components/hx-stack/hx-stack.styles.d.ts.map +1 -0
- package/dist/components/hx-stack/index.d.ts +2 -0
- package/dist/components/hx-stack/index.d.ts.map +1 -0
- package/dist/components/hx-stack/index.js +5 -0
- package/dist/components/hx-stack/index.js.map +1 -0
- package/dist/components/hx-status-indicator/hx-status-indicator.d.ts +74 -0
- package/dist/components/hx-status-indicator/hx-status-indicator.d.ts.map +1 -0
- package/dist/components/hx-status-indicator/hx-status-indicator.styles.d.ts +2 -0
- package/dist/components/hx-status-indicator/hx-status-indicator.styles.d.ts.map +1 -0
- package/dist/components/hx-status-indicator/index.d.ts +3 -0
- package/dist/components/hx-status-indicator/index.d.ts.map +1 -0
- package/dist/components/hx-status-indicator/index.js +5 -0
- package/dist/components/hx-status-indicator/index.js.map +1 -0
- package/dist/components/hx-steps/hx-step.d.ts +88 -0
- package/dist/components/hx-steps/hx-step.d.ts.map +1 -0
- package/dist/components/hx-steps/hx-step.styles.d.ts +2 -0
- package/dist/components/hx-steps/hx-step.styles.d.ts.map +1 -0
- package/dist/components/hx-steps/hx-steps.d.ts +56 -0
- package/dist/components/hx-steps/hx-steps.d.ts.map +1 -0
- package/dist/components/hx-steps/hx-steps.styles.d.ts +2 -0
- package/dist/components/hx-steps/hx-steps.styles.d.ts.map +1 -0
- package/dist/components/hx-steps/index.d.ts +3 -0
- package/dist/components/hx-steps/index.d.ts.map +1 -0
- package/dist/components/hx-steps/index.js +6 -0
- package/dist/components/hx-steps/index.js.map +1 -0
- package/dist/components/hx-structured-list/hx-structured-list.d.ts +72 -0
- package/dist/components/hx-structured-list/hx-structured-list.d.ts.map +1 -0
- package/dist/components/hx-structured-list/hx-structured-list.styles.d.ts +3 -0
- package/dist/components/hx-structured-list/hx-structured-list.styles.d.ts.map +1 -0
- package/dist/components/hx-structured-list/index.d.ts +2 -0
- package/dist/components/hx-structured-list/index.d.ts.map +1 -0
- package/dist/components/hx-structured-list/index.js +6 -0
- package/dist/components/hx-structured-list/index.js.map +1 -0
- package/dist/components/hx-switch/hx-switch.d.ts +143 -0
- package/dist/components/hx-switch/hx-switch.d.ts.map +1 -0
- package/dist/components/hx-switch/hx-switch.styles.d.ts +2 -0
- package/dist/components/hx-switch/hx-switch.styles.d.ts.map +1 -0
- package/dist/components/hx-switch/index.d.ts +2 -0
- package/dist/components/hx-switch/index.d.ts.map +1 -0
- package/dist/components/hx-switch/index.js +5 -0
- package/dist/components/hx-switch/index.js.map +1 -0
- package/dist/components/hx-tabs/hx-tab-panel.d.ts +32 -0
- package/dist/components/hx-tabs/hx-tab-panel.d.ts.map +1 -0
- package/dist/components/hx-tabs/hx-tab-panel.styles.d.ts +2 -0
- package/dist/components/hx-tabs/hx-tab-panel.styles.d.ts.map +1 -0
- package/dist/components/hx-tabs/hx-tab.d.ts +69 -0
- package/dist/components/hx-tabs/hx-tab.d.ts.map +1 -0
- package/dist/components/hx-tabs/hx-tab.styles.d.ts +2 -0
- package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -0
- package/dist/components/hx-tabs/hx-tabs.d.ts +97 -0
- package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -0
- package/dist/components/hx-tabs/hx-tabs.styles.d.ts +2 -0
- package/dist/components/hx-tabs/hx-tabs.styles.d.ts.map +1 -0
- package/dist/components/hx-tabs/index.d.ts +4 -0
- package/dist/components/hx-tabs/index.d.ts.map +1 -0
- package/dist/components/hx-tabs/index.js +7 -0
- package/dist/components/hx-tabs/index.js.map +1 -0
- package/dist/components/hx-tag/hx-tag.d.ts +97 -0
- package/dist/components/hx-tag/hx-tag.d.ts.map +1 -0
- package/dist/components/hx-tag/hx-tag.styles.d.ts +2 -0
- package/dist/components/hx-tag/hx-tag.styles.d.ts.map +1 -0
- package/dist/components/hx-tag/index.d.ts +2 -0
- package/dist/components/hx-tag/index.d.ts.map +1 -0
- package/dist/components/hx-tag/index.js +5 -0
- package/dist/components/hx-tag/index.js.map +1 -0
- package/dist/components/hx-text/hx-text.d.ts +90 -0
- package/dist/components/hx-text/hx-text.d.ts.map +1 -0
- package/dist/components/hx-text/hx-text.styles.d.ts +2 -0
- package/dist/components/hx-text/hx-text.styles.d.ts.map +1 -0
- package/dist/components/hx-text/index.d.ts +2 -0
- package/dist/components/hx-text/index.d.ts.map +1 -0
- package/dist/components/hx-text/index.js +5 -0
- package/dist/components/hx-text/index.js.map +1 -0
- package/dist/components/hx-text-input/hx-text-input.d.ts +188 -0
- package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -0
- package/dist/components/hx-text-input/hx-text-input.styles.d.ts +2 -0
- package/dist/components/hx-text-input/hx-text-input.styles.d.ts.map +1 -0
- package/dist/components/hx-text-input/index.d.ts +2 -0
- package/dist/components/hx-text-input/index.d.ts.map +1 -0
- package/dist/components/hx-text-input/index.js +5 -0
- package/dist/components/hx-text-input/index.js.map +1 -0
- package/dist/components/hx-textarea/hx-textarea.d.ts +169 -0
- package/dist/components/hx-textarea/hx-textarea.d.ts.map +1 -0
- package/dist/components/hx-textarea/hx-textarea.styles.d.ts +2 -0
- package/dist/components/hx-textarea/hx-textarea.styles.d.ts.map +1 -0
- package/dist/components/hx-textarea/index.d.ts +2 -0
- package/dist/components/hx-textarea/index.d.ts.map +1 -0
- package/dist/components/hx-textarea/index.js +5 -0
- package/dist/components/hx-textarea/index.js.map +1 -0
- package/dist/components/hx-theme/hx-theme.d.ts +108 -0
- package/dist/components/hx-theme/hx-theme.d.ts.map +1 -0
- package/dist/components/hx-theme/hx-theme.styles.d.ts +2 -0
- package/dist/components/hx-theme/hx-theme.styles.d.ts.map +1 -0
- package/dist/components/hx-theme/index.d.ts +3 -0
- package/dist/components/hx-theme/index.d.ts.map +1 -0
- package/dist/components/hx-theme/index.js +5 -0
- package/dist/components/hx-theme/index.js.map +1 -0
- package/dist/components/hx-time-picker/hx-time-picker.d.ts +153 -0
- package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -0
- package/dist/components/hx-time-picker/hx-time-picker.styles.d.ts +2 -0
- package/dist/components/hx-time-picker/hx-time-picker.styles.d.ts.map +1 -0
- package/dist/components/hx-time-picker/index.d.ts +2 -0
- package/dist/components/hx-time-picker/index.d.ts.map +1 -0
- package/dist/components/hx-time-picker/index.js +5 -0
- package/dist/components/hx-time-picker/index.js.map +1 -0
- package/dist/components/hx-toast/hx-toast.d.ts +156 -0
- package/dist/components/hx-toast/hx-toast.d.ts.map +1 -0
- package/dist/components/hx-toast/hx-toast.styles.d.ts +3 -0
- package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -0
- package/dist/components/hx-toast/index.d.ts +3 -0
- package/dist/components/hx-toast/index.d.ts.map +1 -0
- package/dist/components/hx-toast/index.js +7 -0
- package/dist/components/hx-toast/index.js.map +1 -0
- package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +93 -0
- package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -0
- package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts +2 -0
- package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts.map +1 -0
- package/dist/components/hx-toggle-button/index.d.ts +2 -0
- package/dist/components/hx-toggle-button/index.d.ts.map +1 -0
- package/dist/components/hx-toggle-button/index.js +5 -0
- package/dist/components/hx-toggle-button/index.js.map +1 -0
- package/dist/components/hx-tooltip/hx-tooltip.d.ts +109 -0
- package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -0
- package/dist/components/hx-tooltip/hx-tooltip.styles.d.ts +2 -0
- package/dist/components/hx-tooltip/hx-tooltip.styles.d.ts.map +1 -0
- package/dist/components/hx-tooltip/index.d.ts +2 -0
- package/dist/components/hx-tooltip/index.d.ts.map +1 -0
- package/dist/components/hx-tooltip/index.js +5 -0
- package/dist/components/hx-tooltip/index.js.map +1 -0
- package/dist/components/hx-top-nav/hx-top-nav.d.ts +61 -0
- package/dist/components/hx-top-nav/hx-top-nav.d.ts.map +1 -0
- package/dist/components/hx-top-nav/hx-top-nav.styles.d.ts +2 -0
- package/dist/components/hx-top-nav/hx-top-nav.styles.d.ts.map +1 -0
- package/dist/components/hx-top-nav/index.d.ts +2 -0
- package/dist/components/hx-top-nav/index.d.ts.map +1 -0
- package/dist/components/hx-top-nav/index.js +5 -0
- package/dist/components/hx-top-nav/index.js.map +1 -0
- package/dist/components/hx-tree-view/hx-tree-item.d.ts +71 -0
- package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -0
- package/dist/components/hx-tree-view/hx-tree-item.styles.d.ts +2 -0
- package/dist/components/hx-tree-view/hx-tree-item.styles.d.ts.map +1 -0
- package/dist/components/hx-tree-view/hx-tree-view.d.ts +61 -0
- package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -0
- package/dist/components/hx-tree-view/hx-tree-view.styles.d.ts +2 -0
- package/dist/components/hx-tree-view/hx-tree-view.styles.d.ts.map +1 -0
- package/dist/components/hx-tree-view/index.d.ts +4 -0
- package/dist/components/hx-tree-view/index.d.ts.map +1 -0
- package/dist/components/hx-tree-view/index.js +6 -0
- package/dist/components/hx-tree-view/index.js.map +1 -0
- package/dist/components/hx-visually-hidden/hx-visually-hidden.d.ts +46 -0
- package/dist/components/hx-visually-hidden/hx-visually-hidden.d.ts.map +1 -0
- package/dist/components/hx-visually-hidden/hx-visually-hidden.styles.d.ts +2 -0
- package/dist/components/hx-visually-hidden/hx-visually-hidden.styles.d.ts.map +1 -0
- package/dist/components/hx-visually-hidden/index.d.ts +2 -0
- package/dist/components/hx-visually-hidden/index.d.ts.map +1 -0
- package/dist/components/hx-visually-hidden/index.js +5 -0
- package/dist/components/hx-visually-hidden/index.js.map +1 -0
- package/dist/controllers/adopted-stylesheets.d.ts +32 -0
- package/dist/controllers/adopted-stylesheets.d.ts.map +1 -0
- package/dist/index.d.ts +94 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +163 -0
- package/dist/index.js.map +1 -0
- package/dist/shared/adopted-stylesheets-BZZnCSAs.js +35 -0
- package/dist/shared/adopted-stylesheets-BZZnCSAs.js.map +1 -0
- package/dist/shared/hx-accordion-DUkYS5rZ.js +332 -0
- package/dist/shared/hx-accordion-DUkYS5rZ.js.map +1 -0
- package/dist/shared/hx-action-bar-CwIRFzBx.js +256 -0
- package/dist/shared/hx-action-bar-CwIRFzBx.js.map +1 -0
- package/dist/shared/hx-alert-C3Papw22.js +364 -0
- package/dist/shared/hx-alert-C3Papw22.js.map +1 -0
- package/dist/shared/hx-avatar-DoHGMrj7.js +238 -0
- package/dist/shared/hx-avatar-DoHGMrj7.js.map +1 -0
- package/dist/shared/hx-badge-BeCmOPr1.js +255 -0
- package/dist/shared/hx-badge-BeCmOPr1.js.map +1 -0
- package/dist/shared/hx-breadcrumb-item-BSBMWQHz.js +309 -0
- package/dist/shared/hx-breadcrumb-item-BSBMWQHz.js.map +1 -0
- package/dist/shared/hx-button-group-BbWEDMPb.js +157 -0
- package/dist/shared/hx-button-group-BbWEDMPb.js.map +1 -0
- package/dist/shared/hx-button-p_YAY9Nv.js +322 -0
- package/dist/shared/hx-button-p_YAY9Nv.js.map +1 -0
- package/dist/shared/hx-card-DfEGlbZR.js +279 -0
- package/dist/shared/hx-card-DfEGlbZR.js.map +1 -0
- package/dist/shared/hx-carousel-item-CymJHv1m.js +610 -0
- package/dist/shared/hx-carousel-item-CymJHv1m.js.map +1 -0
- package/dist/shared/hx-checkbox-CV5c6AE8.js +423 -0
- package/dist/shared/hx-checkbox-CV5c6AE8.js.map +1 -0
- package/dist/shared/hx-checkbox-group-ClGxYUi0.js +271 -0
- package/dist/shared/hx-checkbox-group-ClGxYUi0.js.map +1 -0
- package/dist/shared/hx-code-snippet-CoFaSyuB.js +322 -0
- package/dist/shared/hx-code-snippet-CoFaSyuB.js.map +1 -0
- package/dist/shared/hx-color-picker-BF7PA7zf.js +795 -0
- package/dist/shared/hx-color-picker-BF7PA7zf.js.map +1 -0
- package/dist/shared/hx-combobox-De4-pDn0.js +871 -0
- package/dist/shared/hx-combobox-De4-pDn0.js.map +1 -0
- package/dist/shared/hx-container-DWBtruk3.js +121 -0
- package/dist/shared/hx-container-DWBtruk3.js.map +1 -0
- package/dist/shared/hx-copy-button-BCy6VMwN.js +265 -0
- package/dist/shared/hx-copy-button-BCy6VMwN.js.map +1 -0
- package/dist/shared/hx-data-table-D5huonFo.js +497 -0
- package/dist/shared/hx-data-table-D5huonFo.js.map +1 -0
- package/dist/shared/hx-date-picker-Ckvm0yi9.js +969 -0
- package/dist/shared/hx-date-picker-Ckvm0yi9.js.map +1 -0
- package/dist/shared/hx-dialog-D_NXy5rB.js +439 -0
- package/dist/shared/hx-dialog-D_NXy5rB.js.map +1 -0
- package/dist/shared/hx-divider-BDMW3H-1.js +157 -0
- package/dist/shared/hx-divider-BDMW3H-1.js.map +1 -0
- package/dist/shared/hx-drawer-CESgUmre.js +515 -0
- package/dist/shared/hx-drawer-CESgUmre.js.map +1 -0
- package/dist/shared/hx-dropdown-AZLF-5t6.js +229 -0
- package/dist/shared/hx-dropdown-AZLF-5t6.js.map +1 -0
- package/dist/shared/hx-field-label-CPBvSn_r.js +79 -0
- package/dist/shared/hx-field-label-CPBvSn_r.js.map +1 -0
- package/dist/shared/hx-field-vWiKgWIy.js +308 -0
- package/dist/shared/hx-field-vWiKgWIy.js.map +1 -0
- package/dist/shared/hx-file-upload-Px6kRzAZ.js +614 -0
- package/dist/shared/hx-file-upload-Px6kRzAZ.js.map +1 -0
- package/dist/shared/hx-form-BJeLK34m.js +1264 -0
- package/dist/shared/hx-form-BJeLK34m.js.map +1 -0
- package/dist/shared/hx-format-date-BIR66MeC.js +172 -0
- package/dist/shared/hx-format-date-BIR66MeC.js.map +1 -0
- package/dist/shared/hx-grid-Dgo7fnWu.js +118 -0
- package/dist/shared/hx-grid-Dgo7fnWu.js.map +1 -0
- package/dist/shared/hx-help-text-C3WCP11-.js +135 -0
- package/dist/shared/hx-help-text-C3WCP11-.js.map +1 -0
- package/dist/shared/hx-icon-CxOk7jZe.js +235 -0
- package/dist/shared/hx-icon-CxOk7jZe.js.map +1 -0
- package/dist/shared/hx-image-CZPw1AiF.js +175 -0
- package/dist/shared/hx-image-CZPw1AiF.js.map +1 -0
- package/dist/shared/hx-link-DObQ7eS4.js +209 -0
- package/dist/shared/hx-link-DObQ7eS4.js.map +1 -0
- package/dist/shared/hx-list-B6yPCAAW.js +402 -0
- package/dist/shared/hx-list-B6yPCAAW.js.map +1 -0
- package/dist/shared/hx-menu-divider-BgVoqte4.js +420 -0
- package/dist/shared/hx-menu-divider-BgVoqte4.js.map +1 -0
- package/dist/shared/hx-meter-B5LOo0zD.js +184 -0
- package/dist/shared/hx-meter-B5LOo0zD.js.map +1 -0
- package/dist/shared/hx-nav-BhtMZCze.js +537 -0
- package/dist/shared/hx-nav-BhtMZCze.js.map +1 -0
- package/dist/shared/hx-nav-item-CbNibLuK.js +605 -0
- package/dist/shared/hx-nav-item-CbNibLuK.js.map +1 -0
- package/dist/shared/hx-number-input-DgHt4ggr.js +642 -0
- package/dist/shared/hx-number-input-DgHt4ggr.js.map +1 -0
- package/dist/shared/hx-overflow-menu-DkbrRDmB.js +309 -0
- package/dist/shared/hx-overflow-menu-DkbrRDmB.js.map +1 -0
- package/dist/shared/hx-pagination-VMEpaOXX.js +437 -0
- package/dist/shared/hx-pagination-VMEpaOXX.js.map +1 -0
- package/dist/shared/hx-popover-DTe00Q46.js +226 -0
- package/dist/shared/hx-popover-DTe00Q46.js.map +1 -0
- package/dist/shared/hx-popup-5O6q0jf1.js +200 -0
- package/dist/shared/hx-popup-5O6q0jf1.js.map +1 -0
- package/dist/shared/hx-progress-bar-vQnpJ-9N.js +217 -0
- package/dist/shared/hx-progress-bar-vQnpJ-9N.js.map +1 -0
- package/dist/shared/hx-progress-ring-DDSW677s.js +252 -0
- package/dist/shared/hx-progress-ring-DDSW677s.js.map +1 -0
- package/dist/shared/hx-prose-BUkZ8rB3.js +873 -0
- package/dist/shared/hx-prose-BUkZ8rB3.js.map +1 -0
- package/dist/shared/hx-radio-93uKku6B.js +481 -0
- package/dist/shared/hx-radio-93uKku6B.js.map +1 -0
- package/dist/shared/hx-rating-t4o150-R.js +358 -0
- package/dist/shared/hx-rating-t4o150-R.js.map +1 -0
- package/dist/shared/hx-select-DQks1zLJ.js +753 -0
- package/dist/shared/hx-select-DQks1zLJ.js.map +1 -0
- package/dist/shared/hx-skeleton-DQQ2SYxF.js +154 -0
- package/dist/shared/hx-skeleton-DQQ2SYxF.js.map +1 -0
- package/dist/shared/hx-slider-BRMWoKZk.js +548 -0
- package/dist/shared/hx-slider-BRMWoKZk.js.map +1 -0
- package/dist/shared/hx-spinner-CcbmN-u_.js +183 -0
- package/dist/shared/hx-spinner-CcbmN-u_.js.map +1 -0
- package/dist/shared/hx-split-button-hBPl-zRv.js +542 -0
- package/dist/shared/hx-split-button-hBPl-zRv.js.map +1 -0
- package/dist/shared/hx-split-panel-C9Sy7XVW.js +351 -0
- package/dist/shared/hx-split-panel-C9Sy7XVW.js.map +1 -0
- package/dist/shared/hx-stack-B_wODjQX.js +154 -0
- package/dist/shared/hx-stack-B_wODjQX.js.map +1 -0
- package/dist/shared/hx-status-indicator-CiTQuO5V.js +149 -0
- package/dist/shared/hx-status-indicator-CiTQuO5V.js.map +1 -0
- package/dist/shared/hx-step-m5RcyZ61.js +496 -0
- package/dist/shared/hx-step-m5RcyZ61.js.map +1 -0
- package/dist/shared/hx-structured-list-ClvSFleR.js +133 -0
- package/dist/shared/hx-structured-list-ClvSFleR.js.map +1 -0
- package/dist/shared/hx-switch-BFxgxal8.js +356 -0
- package/dist/shared/hx-switch-BFxgxal8.js.map +1 -0
- package/dist/shared/hx-tab-panel-8p6KfVzz.js +470 -0
- package/dist/shared/hx-tab-panel-8p6KfVzz.js.map +1 -0
- package/dist/shared/hx-tag-BP7HJ6_0.js +243 -0
- package/dist/shared/hx-tag-BP7HJ6_0.js.map +1 -0
- package/dist/shared/hx-text-DDSH1alC.js +218 -0
- package/dist/shared/hx-text-DDSH1alC.js.map +1 -0
- package/dist/shared/hx-text-input-Dv458950.js +440 -0
- package/dist/shared/hx-text-input-Dv458950.js.map +1 -0
- package/dist/shared/hx-textarea-BX8nCfDJ.js +398 -0
- package/dist/shared/hx-textarea-BX8nCfDJ.js.map +1 -0
- package/dist/shared/hx-theme-Dc0nKH7V.js +176 -0
- package/dist/shared/hx-theme-Dc0nKH7V.js.map +1 -0
- package/dist/shared/hx-time-picker-CA58UCqx.js +651 -0
- package/dist/shared/hx-time-picker-CA58UCqx.js.map +1 -0
- package/dist/shared/hx-toast-BTqzF2VV.js +423 -0
- package/dist/shared/hx-toast-BTqzF2VV.js.map +1 -0
- package/dist/shared/hx-toggle-button-BkDaJgRS.js +320 -0
- package/dist/shared/hx-toggle-button-BkDaJgRS.js.map +1 -0
- package/dist/shared/hx-tooltip-wAQWzjlr.js +190 -0
- package/dist/shared/hx-tooltip-wAQWzjlr.js.map +1 -0
- package/dist/shared/hx-top-nav-CBxdfPqY.js +322 -0
- package/dist/shared/hx-top-nav-CBxdfPqY.js.map +1 -0
- package/dist/shared/hx-tree-item-BySNNlrw.js +494 -0
- package/dist/shared/hx-tree-item-BySNNlrw.js.map +1 -0
- package/dist/shared/hx-visually-hidden-8ycpz6oY.js +54 -0
- package/dist/shared/hx-visually-hidden-8ycpz6oY.js.map +1 -0
- package/dist/shared/index-nHBAh0Cr.js +74 -0
- package/dist/shared/index-nHBAh0Cr.js.map +1 -0
- package/dist/shared/lit-Dpo7RLp4.js +24 -0
- package/dist/shared/lit-Dpo7RLp4.js.map +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hx-time-picker-CA58UCqx.js","sources":["../../src/components/hx-time-picker/hx-time-picker.styles.ts","../../src/components/hx-time-picker/hx-time-picker.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixTimePickerStyles = css`\n :host {\n display: block;\n position: relative;\n }\n\n :host([disabled]) {\n opacity: var(--hx-opacity-disabled, 0.5);\n pointer-events: none;\n }\n\n * {\n box-sizing: border-box;\n }\n\n .field {\n display: flex;\n flex-direction: column;\n gap: var(--hx-space-1, 0.25rem);\n font-family: var(--hx-time-picker-font-family, var(--hx-font-family-sans, sans-serif));\n }\n\n /* ─── Label ─── */\n\n .field__label {\n display: flex;\n align-items: baseline;\n gap: var(--hx-space-1, 0.25rem);\n font-size: var(--hx-font-size-sm, 0.875rem);\n font-weight: var(--hx-font-weight-medium, 500);\n color: var(--hx-time-picker-label-color, var(--hx-color-neutral-700));\n line-height: var(--hx-line-height-normal, 1.5);\n }\n\n .field__required-marker {\n color: var(--hx-time-picker-error-color, var(--hx-color-error-text, #b91c1c));\n font-weight: var(--hx-font-weight-bold, 700);\n }\n\n /* ─── Combobox Wrapper ─── */\n\n .field__combobox {\n position: relative;\n display: flex;\n align-items: center;\n border: var(--hx-border-width-thin, 1px) solid\n var(--hx-time-picker-border-color, var(--hx-color-neutral-300));\n border-radius: var(--hx-time-picker-border-radius, var(--hx-border-radius-md, 0.375rem));\n background-color: var(--hx-time-picker-bg, var(--hx-color-neutral-0));\n transition:\n border-color var(--hx-transition-fast, 150ms ease),\n box-shadow var(--hx-transition-fast, 150ms ease);\n overflow: visible;\n }\n\n .field__combobox:focus-within {\n border-color: var(--hx-time-picker-focus-ring-color, var(--hx-focus-ring-color));\n /* Fallback for Safari < 16.2 (no color-mix support) */\n box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)\n var(--hx-time-picker-focus-ring-color, var(--hx-focus-ring-color));\n box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)\n color-mix(\n in srgb,\n var(--hx-time-picker-focus-ring-color, var(--hx-focus-ring-color))\n calc(var(--hx-focus-ring-opacity, 0.25) * 100%),\n transparent\n );\n }\n\n /* ─── Error State ─── */\n\n .field--error .field__combobox {\n border-color: var(--hx-time-picker-error-color, var(--hx-color-error-500));\n }\n\n .field--error .field__combobox:focus-within {\n border-color: var(--hx-time-picker-error-color, var(--hx-color-error-500));\n /* Fallback for Safari < 16.2 (no color-mix support) */\n box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)\n var(--hx-time-picker-error-color, var(--hx-color-error-500));\n box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)\n color-mix(\n in srgb,\n var(--hx-time-picker-error-color, var(--hx-color-error-500))\n calc(var(--hx-focus-ring-opacity, 0.25) * 100%),\n transparent\n );\n }\n\n /* ─── Native Input ─── */\n\n .field__input {\n flex: 1;\n border: none;\n outline: none;\n background: transparent;\n padding: var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem);\n font-family: inherit;\n font-size: var(--hx-font-size-md, 1rem);\n color: var(--hx-time-picker-color, var(--hx-color-neutral-800));\n line-height: var(--hx-line-height-normal, 1.5);\n min-height: var(--hx-size-10, 2.5rem);\n width: 100%;\n cursor: text;\n }\n\n .field__input::placeholder {\n color: var(--hx-color-neutral-400);\n }\n\n .field__input:disabled {\n cursor: not-allowed;\n }\n\n /* ─── Toggle Button ─── */\n\n .field__toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n padding: 0 var(--hx-space-3, 0.75rem);\n color: var(--hx-time-picker-chevron-color, var(--hx-color-neutral-500));\n cursor: pointer;\n height: 100%;\n min-height: var(--hx-size-10, 2.5rem);\n flex-shrink: 0;\n border-inline-start: var(--hx-border-width-thin, 1px) solid\n var(--hx-time-picker-border-color, var(--hx-color-neutral-300));\n }\n\n .field__toggle:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(--hx-time-picker-focus-ring-color, var(--hx-focus-ring-color));\n outline-offset: -2px;\n border-radius: 0 var(--hx-time-picker-border-radius, var(--hx-border-radius-md, 0.375rem))\n var(--hx-time-picker-border-radius, var(--hx-border-radius-md, 0.375rem)) 0;\n }\n\n /* ─── Listbox Dropdown ─── */\n\n .field__listbox {\n position: absolute;\n top: calc(100% + var(--hx-space-1, 0.25rem));\n inset-inline-start: 0;\n inset-inline-end: 0;\n z-index: var(--hx-z-index-dropdown, 1000);\n background-color: var(--hx-time-picker-listbox-bg, var(--hx-color-neutral-0));\n border: var(--hx-border-width-thin, 1px) solid\n var(--hx-time-picker-border-color, var(--hx-color-neutral-300));\n border-radius: var(--hx-time-picker-border-radius, var(--hx-border-radius-md, 0.375rem));\n box-shadow: var(\n --hx-time-picker-listbox-shadow,\n 0 4px 16px color-mix(in srgb, var(--hx-color-neutral-900) 12%, transparent)\n );\n max-height: var(--hx-time-picker-listbox-max-height, 16rem);\n overflow-y: auto;\n padding: var(--hx-space-1, 0.25rem) 0;\n list-style: none;\n margin: 0;\n\n @media (prefers-reduced-motion: no-preference) {\n animation: hx-listbox-enter var(--hx-transition-fast, 150ms ease) forwards;\n }\n }\n\n @keyframes hx-listbox-enter {\n from {\n opacity: 0;\n transform: translateY(calc(-1 * var(--hx-space-1, 0.25rem)));\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n /* ─── Option Items ─── */\n\n .field__option {\n display: flex;\n align-items: center;\n padding: var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem);\n font-size: var(--hx-font-size-md, 1rem);\n font-family: inherit;\n color: var(--hx-time-picker-option-color, var(--hx-color-neutral-800));\n cursor: pointer;\n transition: background-color var(--hx-transition-fast, 150ms ease);\n line-height: var(--hx-line-height-normal, 1.5);\n }\n\n .field__option:hover,\n .field__option--active {\n background-color: var(--hx-time-picker-option-hover-bg, var(--hx-color-primary-50));\n color: var(--hx-time-picker-option-hover-color, var(--hx-color-primary-700));\n }\n\n .field__option--selected {\n background-color: var(--hx-time-picker-option-selected-bg, var(--hx-color-primary-100));\n color: var(--hx-time-picker-option-selected-color, var(--hx-color-primary-800));\n font-weight: var(--hx-font-weight-medium, 500);\n }\n\n .field__option--selected.field__option--active {\n background-color: var(--hx-time-picker-option-selected-bg, var(--hx-color-primary-100));\n }\n\n /* ─── Help Text & Error Messages ─── */\n\n .field__help-text {\n font-size: var(--hx-font-size-xs, 0.75rem);\n color: var(--hx-color-neutral-500);\n line-height: var(--hx-line-height-normal, 1.5);\n }\n\n .field__error {\n font-size: var(--hx-font-size-xs, 0.75rem);\n color: var(--hx-time-picker-error-color, var(--hx-color-error-text, #b91c1c));\n line-height: var(--hx-line-height-normal, 1.5);\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { live } from 'lit/directives/live.js';\nimport { repeat } from 'lit/directives/repeat.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixTimePickerStyles } from './hx-time-picker.styles.js';\n\n// ─── Time Slot ───────────────────────────────────────────────────────────────\n\ninterface TimeSlot {\n /** HH:MM in 24-hour format — canonical internal value. */\n value: string;\n /** Display label respecting the component's `format` property. */\n label: string;\n}\n\n// ─── Helpers ─────────────────────────────────────────────────────────────────\n\n/** Parse \"HH:MM\" into { hours, minutes }. Returns null when the string is not valid. */\nfunction parseHHMM(raw: string): { hours: number; minutes: number } | null {\n const match = /^(\\d{1,2}):(\\d{2})$/.exec(raw.trim());\n if (!match) return null;\n const hours = parseInt(match[1] ?? '0', 10);\n const minutes = parseInt(match[2] ?? '0', 10);\n if (hours < 0 || hours > 23 || minutes < 0 || minutes > 59) return null;\n return { hours, minutes };\n}\n\n/** Format { hours, minutes } as zero-padded \"HH:MM\". */\nfunction toHHMM(hours: number, minutes: number): string {\n return `${String(hours).padStart(2, '0')}:${String(minutes).padStart(2, '0')}`;\n}\n\n/** Convert a 24-hour HH:MM value to a 12-hour display string (e.g. \"02:30 PM\"). */\nfunction to12h(value: string): string {\n const parsed = parseHHMM(value);\n if (!parsed) return value;\n const { hours, minutes } = parsed;\n const period = hours < 12 ? 'AM' : 'PM';\n const h = hours % 12 === 0 ? 12 : hours % 12;\n return `${String(h).padStart(2, '0')}:${String(minutes).padStart(2, '0')} ${period}`;\n}\n\n/**\n * Generate ordered time slots between `minTime` and `maxTime` (inclusive) at\n * `stepMinutes` intervals. Both bounds are HH:MM strings; defaults fall back\n * to \"00:00\" / \"23:59\".\n */\nfunction generateSlots(\n minTime: string,\n maxTime: string,\n stepMinutes: number,\n format: '12h' | '24h',\n): TimeSlot[] {\n const minParsed = parseHHMM(minTime) ?? { hours: 0, minutes: 0 };\n const maxParsed = parseHHMM(maxTime) ?? { hours: 23, minutes: 59 };\n\n const minTotal = minParsed.hours * 60 + minParsed.minutes;\n const maxTotal = maxParsed.hours * 60 + maxParsed.minutes;\n\n // Guard against degenerate step values\n const step = Math.max(1, Math.round(stepMinutes));\n\n const slots: TimeSlot[] = [];\n for (let t = minTotal; t <= maxTotal; t += step) {\n const h = Math.floor(t / 60) % 24;\n const m = t % 60;\n const value = toHHMM(h, m);\n slots.push({\n value,\n label: format === '12h' ? to12h(value) : value,\n });\n }\n return slots;\n}\n\n/** Clamp a raw HH:MM value to the [min, max] range; return '' when value is empty. */\nfunction clampValue(value: string, minTime: string, maxTime: string): string {\n if (!value) return '';\n const parsed = parseHHMM(value);\n if (!parsed) return '';\n\n const total = parsed.hours * 60 + parsed.minutes;\n const minParsed = parseHHMM(minTime) ?? { hours: 0, minutes: 0 };\n const maxParsed = parseHHMM(maxTime) ?? { hours: 23, minutes: 59 };\n const minTotal = minParsed.hours * 60 + minParsed.minutes;\n const maxTotal = maxParsed.hours * 60 + maxParsed.minutes;\n\n if (total < minTotal) return toHHMM(minParsed.hours, minParsed.minutes);\n if (total > maxTotal) return toHHMM(maxParsed.hours, maxParsed.minutes);\n return toHHMM(parsed.hours, parsed.minutes);\n}\n\n/**\n * Attempt to parse a user-typed string (12 h or 24 h) into an HH:MM value.\n * Returns null when the string cannot be resolved.\n */\nfunction parseUserInput(raw: string): string | null {\n const trimmed = raw.trim().toUpperCase();\n\n // 24-hour \"HH:MM\" or \"H:MM\"\n const hhmm = parseHHMM(trimmed);\n if (hhmm) return toHHMM(hhmm.hours, hhmm.minutes);\n\n // 12-hour patterns: \"2:30 PM\", \"2:30PM\", \"02:30 AM\", \"230 pm\", \"2 PM\"\n const twelve =\n /^(\\d{1,2})(?::(\\d{2}))?\\s*(AM|PM)$/.exec(trimmed) ??\n /^(\\d{1,2})(\\d{2})\\s*(AM|PM)$/.exec(trimmed);\n\n if (twelve) {\n let hours = parseInt(twelve[1] ?? '0', 10);\n const minutes = twelve[2] !== undefined ? parseInt(twelve[2], 10) : 0;\n const period = twelve[3] ?? '';\n if (hours < 1 || hours > 12 || minutes < 0 || minutes > 59) return null;\n if (period === 'AM') {\n hours = hours === 12 ? 0 : hours;\n } else {\n hours = hours === 12 ? 12 : hours + 12;\n }\n return toHHMM(hours, minutes);\n }\n\n return null;\n}\n\n// ─── Component ───────────────────────────────────────────────────────────────\n\n/**\n * A time-picker component with a combobox pattern: a text input with format\n * masking and a dropdown listbox of pre-generated time slots.\n *\n * @summary Form-associated time picker with 12h/24h format support and dropdown listbox.\n *\n * @tag hx-time-picker\n *\n * @slot label - Custom label content; overrides the rendered label element when used.\n * @slot help - Help text displayed below the field.\n * @slot error - Custom error content; overrides the `error` property.\n *\n * @fires {CustomEvent<{value: string}>} hx-change - Dispatched when the selected time changes. Detail value is HH:MM (24h).\n *\n * @csspart label - The label element.\n * @csspart input - The text input element.\n * @csspart toggle - The clock icon toggle button.\n * @csspart listbox - The dropdown `<ul>` element.\n * @csspart option - Each `<li>` option in the listbox.\n *\n * @cssprop [--hx-time-picker-bg=var(--hx-color-neutral-0)] - Input background color.\n * @cssprop [--hx-time-picker-color=var(--hx-color-neutral-800)] - Input text color.\n * @cssprop [--hx-time-picker-border-color=var(--hx-color-neutral-300)] - Border color.\n * @cssprop [--hx-time-picker-border-radius=var(--hx-border-radius-md)] - Border radius.\n * @cssprop [--hx-time-picker-font-family=var(--hx-font-family-sans)] - Font family.\n * @cssprop [--hx-time-picker-focus-ring-color=var(--hx-focus-ring-color)] - Focus ring color.\n * @cssprop [--hx-time-picker-error-color=var(--hx-color-error-500)] - Error state color.\n * @cssprop [--hx-time-picker-label-color=var(--hx-color-neutral-700)] - Label text color.\n * @cssprop [--hx-time-picker-chevron-color=var(--hx-color-neutral-500)] - Toggle chevron color.\n * @cssprop [--hx-time-picker-listbox-bg=var(--hx-color-neutral-0)] - Listbox background.\n * @cssprop [--hx-time-picker-listbox-max-height=16rem] - Maximum height of the dropdown.\n * @cssprop [--hx-time-picker-listbox-shadow=0 4px 16px color-mix(in srgb, var(--hx-color-neutral-900) 12%, transparent)] - Box shadow for the dropdown listbox.\n * @cssprop [--hx-time-picker-option-color=var(--hx-color-neutral-800)] - Option text color.\n * @cssprop [--hx-time-picker-option-hover-bg=var(--hx-color-primary-50)] - Option hover background.\n * @cssprop [--hx-time-picker-option-hover-color=var(--hx-color-primary-700)] - Option hover text color.\n * @cssprop [--hx-time-picker-option-selected-bg=var(--hx-color-primary-100)] - Selected option background.\n * @cssprop [--hx-time-picker-option-selected-color=var(--hx-color-primary-800)] - Selected option text color.\n */\n@customElement('hx-time-picker')\nexport class HelixTimePicker extends LitElement {\n static override styles = [tokenStyles, helixTimePickerStyles];\n\n // ─── Form Association ───\n\n static formAssociated = true;\n\n private readonly _internals: ElementInternals;\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n // ─── Properties ───\n\n /**\n * The name submitted with the form. Value is always HH:MM (24-hour).\n * @attr name\n */\n @property({ type: String })\n name = '';\n\n /**\n * The current value in HH:MM (24-hour) format.\n * @attr value\n */\n @property({ type: String, reflect: true })\n value = '';\n\n /**\n * The earliest selectable time in HH:MM format.\n * @attr min\n */\n @property({ type: String })\n min = '00:00';\n\n /**\n * The latest selectable time in HH:MM format.\n * @attr max\n */\n @property({ type: String })\n max = '23:59';\n\n /**\n * Step interval between dropdown options, in minutes. Defaults to 30.\n * @attr step\n */\n @property({ type: Number })\n step = 30;\n\n /**\n * The visible label text for the field.\n * @attr label\n */\n @property({ type: String })\n label = '';\n\n /**\n * Whether the field is required for form submission.\n * @attr required\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * Whether the field is disabled.\n * @attr disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Error message to display. When set, the field enters an error state.\n * @attr error\n */\n @property({ type: String })\n error = '';\n\n /**\n * Display format for the time input. '12h' shows AM/PM; '24h' is bare HH:MM.\n * @attr format\n */\n @property({ type: String, reflect: true })\n format: '12h' | '24h' = '12h';\n\n // ─── Internal State ───\n\n @state() private _open = false;\n @state() private _activeIndex = -1;\n @state() private _inputDisplayValue = '';\n @state() private _hasLabelSlot = false;\n @state() private _hasErrorSlot = false;\n @state() private _slottedLabelId = '';\n\n // ─── Stable IDs (monotonically incrementing counter for SSR safety) ───\n\n private static _instanceCount = 0;\n\n private readonly _id = `hx-time-picker-${++HelixTimePicker._instanceCount}`;\n private readonly _listboxId = `${this._id}-listbox`;\n private readonly _errorId = `${this._id}-error`;\n private readonly _helpId = `${this._id}-help`;\n\n // ─── Query References ───\n\n @query('.field__input')\n private _inputEl!: HTMLInputElement;\n\n @query('.field__listbox')\n private _listboxEl!: HTMLUListElement;\n\n // ─── Memoized slot generation (avoids regenerating on every render call) ───\n\n private _cachedSlots: TimeSlot[] | null = null;\n private _slotsKey = '';\n\n private get _slots(): TimeSlot[] {\n const key = `${this.min}|${this.max}|${this.step}|${this.format}`;\n if (this._cachedSlots === null || key !== this._slotsKey) {\n this._slotsKey = key;\n this._cachedSlots = generateSlots(this.min, this.max, this.step, this.format);\n }\n return this._cachedSlots;\n }\n\n // ─── Outside-click handler (bound reference for add/removeEventListener) ───\n\n private readonly _handleOutsideClick = (e: MouseEvent): void => {\n if (!this.contains(e.target as Node) && !this.shadowRoot?.contains(e.target as Node)) {\n this._closeListbox();\n }\n };\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n document.addEventListener('click', this._handleOutsideClick);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n document.removeEventListener('click', this._handleOutsideClick);\n }\n\n override willUpdate(changed: Map<string, unknown>): void {\n // Keep display value in sync whenever the canonical value or format changes\n if (changed.has('value') || changed.has('format')) {\n this._inputDisplayValue = this.value\n ? this.format === '12h'\n ? to12h(this.value)\n : this.value\n : '';\n }\n }\n\n override updated(changed: Map<string, unknown>): void {\n super.updated(changed);\n if (changed.has('value')) {\n this._internals.setFormValue(this.value || null);\n this._updateValidity();\n }\n // When the listbox opens, scroll the selected (or active) option into view\n if (changed.has('_open') && this._open) {\n this._scrollActiveOptionIntoView();\n }\n }\n\n // ─── Form Integration ───\n\n /** Returns the associated form element, if any. */\n get form(): HTMLFormElement | null {\n return this._internals.form;\n }\n\n /** Returns the validation message. */\n get validationMessage(): string {\n return this._internals.validationMessage;\n }\n\n /** Returns the ValidityState object. */\n get validity(): ValidityState {\n return this._internals.validity;\n }\n\n /** Checks whether the field satisfies its constraints. */\n checkValidity(): boolean {\n return this._internals.checkValidity();\n }\n\n /** Reports validity and shows the browser's constraint validation UI. */\n reportValidity(): boolean {\n return this._internals.reportValidity();\n }\n\n private _updateValidity(): void {\n if (this.required && !this.value) {\n this._internals.setValidity(\n { valueMissing: true },\n this.error || 'Please select a time.',\n this._inputEl ?? undefined,\n );\n } else {\n this._internals.setValidity({});\n }\n }\n\n formResetCallback(): void {\n this.value = '';\n this._inputDisplayValue = '';\n this._internals.setFormValue(null);\n this._closeListbox();\n }\n\n formStateRestoreCallback(\n state: string | File | FormData,\n _mode: 'restore' | 'autocomplete' = 'restore',\n ): void {\n // Only string states are valid for this component; ignore File/FormData\n if (typeof state !== 'string') return;\n // Validate and clamp before assigning; ignore out-of-spec values\n const clamped = clampValue(state, this.min, this.max);\n this.value = clamped;\n }\n\n // ─── Listbox helpers ───\n\n private _openListbox(): void {\n if (this._open) return;\n // Pre-set active index to currently selected slot (or 0)\n const selectedIndex = this._slots.findIndex((s) => s.value === this.value);\n this._activeIndex = selectedIndex >= 0 ? selectedIndex : 0;\n this._open = true;\n }\n\n private _closeListbox(): void {\n if (!this._open) return;\n this._open = false;\n this._activeIndex = -1;\n }\n\n private _scrollActiveOptionIntoView(): void {\n if (!this._listboxEl) return;\n const active = this._listboxEl.querySelector<HTMLElement>('.field__option--active');\n active?.scrollIntoView({ block: 'nearest' });\n }\n\n private _selectSlot(slot: TimeSlot): void {\n const clamped = clampValue(slot.value, this.min, this.max);\n this.value = clamped;\n this._closeListbox();\n this._dispatchChange(clamped);\n }\n\n // ─── Slot tracking ───\n\n private _handleLabelSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n const nodes = slot.assignedNodes({ flatten: true });\n this._hasLabelSlot = nodes.length > 0;\n if (this._hasLabelSlot) {\n // Forward aria-labelledby: ensure the slotted label element has an ID so\n // the shadow-DOM input can reference it via aria-labelledby (A-03).\n const labelEl = nodes.find((n) => n.nodeType === Node.ELEMENT_NODE) as\n | HTMLElement\n | undefined;\n if (labelEl) {\n if (!labelEl.id) {\n labelEl.id = `${this._id}-slotted-label`;\n }\n this._slottedLabelId = labelEl.id;\n }\n } else {\n this._slottedLabelId = '';\n }\n }\n\n private _handleErrorSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasErrorSlot = slot.assignedNodes({ flatten: true }).length > 0;\n }\n\n // ─── Event Dispatch ───\n\n private _dispatchChange(value: string): void {\n this.dispatchEvent(\n new CustomEvent('hx-change', {\n bubbles: true,\n composed: true,\n detail: { value },\n }),\n );\n }\n\n // ─── Input Handlers ───\n\n private _handleInputClick(): void {\n if (!this.disabled) this._openListbox();\n }\n\n private _handleToggleClick(e: MouseEvent): void {\n e.stopPropagation();\n if (this.disabled) return;\n if (this._open) {\n this._closeListbox();\n } else {\n this._openListbox();\n this._inputEl?.focus();\n }\n }\n\n private _handleInputInput(e: Event): void {\n const target = e.target as HTMLInputElement;\n this._inputDisplayValue = target.value;\n // Open the listbox as the user types\n if (!this._open) this._openListbox();\n }\n\n private _handleInputChange(e: Event): void {\n const target = e.target as HTMLInputElement;\n const raw = target.value.trim();\n\n if (!raw) {\n // User cleared the field\n this.value = '';\n this._internals.setFormValue(null);\n this._updateValidity();\n this._dispatchChange('');\n return;\n }\n\n const parsed = parseUserInput(raw);\n if (parsed) {\n const clamped = clampValue(parsed, this.min, this.max);\n this.value = clamped;\n this._dispatchChange(clamped);\n } else {\n // Revert display to last known good value\n this._inputDisplayValue = this.value\n ? this.format === '12h'\n ? to12h(this.value)\n : this.value\n : '';\n }\n }\n\n private _handleInputKeyDown(e: KeyboardEvent): void {\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n if (!this._open) {\n this._openListbox();\n } else {\n this._activeIndex = Math.min(this._activeIndex + 1, this._slots.length - 1);\n this._scrollActiveOptionIntoView();\n }\n break;\n\n case 'ArrowUp':\n e.preventDefault();\n if (this._open) {\n this._activeIndex = Math.max(this._activeIndex - 1, 0);\n this._scrollActiveOptionIntoView();\n }\n break;\n\n case 'Enter':\n if (this._open && this._activeIndex >= 0) {\n e.preventDefault();\n const slot = this._slots[this._activeIndex];\n if (slot) this._selectSlot(slot);\n }\n break;\n\n case 'Escape':\n e.preventDefault();\n this._closeListbox();\n break;\n\n case 'Home':\n if (this._open) {\n e.preventDefault();\n this._activeIndex = 0;\n this._scrollActiveOptionIntoView();\n }\n break;\n\n case 'End':\n if (this._open) {\n e.preventDefault();\n this._activeIndex = this._slots.length - 1;\n this._scrollActiveOptionIntoView();\n }\n break;\n\n case 'Tab':\n this._closeListbox();\n break;\n }\n }\n\n private _handleOptionPointerDown(e: MouseEvent): void {\n // Prevent the input from losing focus when clicking an option\n e.preventDefault();\n }\n\n private _handleOptionClick(slot: TimeSlot): void {\n this._selectSlot(slot);\n this._inputEl?.focus();\n }\n\n private _handleOptionMouseEnter(index: number): void {\n this._activeIndex = index;\n }\n\n // ─── Public API ───\n\n /** Moves focus to the time input element. */\n override focus(options?: FocusOptions): void {\n this._inputEl?.focus(options);\n }\n\n // ─── Render ───\n\n override render() {\n const hasError = !!this.error || this._hasErrorSlot;\n const slots = this._slots;\n\n const fieldClasses = {\n field: true,\n 'field--error': hasError,\n 'field--disabled': this.disabled,\n 'field--required': this.required,\n };\n\n const activeDescendant =\n this._open && this._activeIndex >= 0\n ? `${this._listboxId}-option-${this._activeIndex}`\n : undefined;\n\n const placeholder = this.format === '12h' ? 'hh:mm AM' : 'hh:mm';\n\n const describedBy =\n [hasError ? this._errorId : null, this._helpId].filter(Boolean).join(' ') || undefined;\n\n return html`\n <div part=\"field\" class=${classMap(fieldClasses)}>\n <!-- Label -->\n <slot name=\"label\" @slotchange=${this._handleLabelSlotChange}>\n ${this.label\n ? html`\n <label part=\"label\" class=\"field__label\" for=${this._id}>\n ${this.label}\n ${this.required\n ? html`<span class=\"field__required-marker\" aria-hidden=\"true\">*</span>`\n : nothing}\n </label>\n `\n : nothing}\n </slot>\n\n <!-- Combobox wrapper; role=\"combobox\" lives on the input per ARIA 1.2 -->\n <div class=\"field__combobox\">\n <input\n part=\"input\"\n class=\"field__input\"\n id=${this._id}\n type=\"text\"\n inputmode=\"text\"\n autocomplete=\"off\"\n spellcheck=\"false\"\n role=\"combobox\"\n aria-expanded=${this._open ? 'true' : 'false'}\n aria-haspopup=\"listbox\"\n .value=${live(this._inputDisplayValue)}\n placeholder=${placeholder}\n ?required=${this.required}\n ?disabled=${this.disabled}\n name=${ifDefined(this.name || undefined)}\n aria-autocomplete=\"list\"\n aria-controls=${ifDefined(this._open ? this._listboxId : undefined)}\n aria-activedescendant=${ifDefined(activeDescendant)}\n aria-invalid=${hasError ? 'true' : nothing}\n aria-describedby=${ifDefined(describedBy)}\n aria-required=${this.required ? 'true' : nothing}\n aria-labelledby=${ifDefined(\n this._hasLabelSlot && this._slottedLabelId ? this._slottedLabelId : undefined,\n )}\n @click=${this._handleInputClick}\n @input=${this._handleInputInput}\n @change=${this._handleInputChange}\n @keydown=${this._handleInputKeyDown}\n />\n\n <!-- Toggle button -->\n <button\n part=\"toggle\"\n type=\"button\"\n class=\"field__toggle\"\n tabindex=\"-1\"\n aria-label=${this._open ? 'Close time picker' : 'Open time picker'}\n ?disabled=${this.disabled}\n @click=${this._handleToggleClick}\n >\n <!-- Clock icon -->\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n >\n <circle cx=\"8\" cy=\"8\" r=\"6.5\" stroke=\"currentColor\" stroke-width=\"1.25\" />\n <path\n d=\"M8 4.5V8L10.5 10\"\n stroke=\"currentColor\"\n stroke-width=\"1.25\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </button>\n\n <!-- Dropdown listbox -->\n ${this._open\n ? html`\n <ul\n part=\"listbox\"\n class=\"field__listbox\"\n id=${this._listboxId}\n role=\"listbox\"\n aria-label=${this.label || 'Time options'}\n >\n ${repeat(\n slots,\n (slot) => slot.value,\n (slot, index) => {\n const isSelected = slot.value === this.value;\n const isActive = index === this._activeIndex;\n return html`\n <li\n part=\"option\"\n class=${classMap({\n field__option: true,\n 'field__option--selected': isSelected,\n 'field__option--active': isActive,\n })}\n id=\"${this._listboxId}-option-${index}\"\n role=\"option\"\n aria-selected=${isSelected ? 'true' : 'false'}\n @pointerdown=${this._handleOptionPointerDown}\n @click=${() => this._handleOptionClick(slot)}\n @mouseenter=${() => this._handleOptionMouseEnter(index)}\n >\n ${slot.label}\n </li>\n `;\n },\n )}\n </ul>\n `\n : nothing}\n </div>\n\n <!-- Error slot / property -->\n <slot name=\"error\" @slotchange=${this._handleErrorSlotChange}>\n ${this.error\n ? html`\n <div part=\"error\" class=\"field__error\" id=${this._errorId} role=\"alert\">\n ${this.error}\n </div>\n `\n : nothing}\n </slot>\n\n <!-- Help slot -->\n <div part=\"help-text\" class=\"field__help-text\" id=${this._helpId}>\n <slot name=\"help\"></slot>\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-time-picker': HelixTimePicker;\n }\n}\n"],"names":["helixTimePickerStyles","css","parseHHMM","raw","match","hours","minutes","toHHMM","to12h","value","parsed","period","h","generateSlots","minTime","maxTime","stepMinutes","format","minParsed","maxParsed","minTotal","maxTotal","step","slots","t","m","clampValue","total","parseUserInput","trimmed","hhmm","twelve","HelixTimePicker","LitElement","_a","key","changed","state","_mode","clamped","selectedIndex","s","active","slot","nodes","labelEl","n","target","index","options","hasError","fieldClasses","activeDescendant","placeholder","describedBy","html","classMap","nothing","live","ifDefined","repeat","isSelected","isActive","tokenStyles","__decorateClass","property","query","customElement"],"mappings":"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"}
|
|
@@ -0,0 +1,423 @@
|
|
|
1
|
+
import { css as p, LitElement as u, nothing as _, html as m } from "lit";
|
|
2
|
+
import { property as n, customElement as d } from "lit/decorators.js";
|
|
3
|
+
import { classMap as f } from "lit/directives/class-map.js";
|
|
4
|
+
import { t as x } from "./lit-Dpo7RLp4.js";
|
|
5
|
+
const b = p`
|
|
6
|
+
/* ─── hx-toast host ─── */
|
|
7
|
+
|
|
8
|
+
:host {
|
|
9
|
+
display: block;
|
|
10
|
+
pointer-events: none;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
:host([open]) {
|
|
14
|
+
pointer-events: auto;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/* ─── Toast base ─── */
|
|
18
|
+
|
|
19
|
+
.toast {
|
|
20
|
+
display: flex;
|
|
21
|
+
align-items: flex-start;
|
|
22
|
+
gap: var(--hx-space-3, 0.75rem);
|
|
23
|
+
padding: var(--hx-space-3, 0.75rem) var(--hx-space-4, 1rem);
|
|
24
|
+
border-radius: var(--hx-toast-border-radius, var(--hx-border-radius-md, 0.375rem));
|
|
25
|
+
background-color: var(--hx-toast-bg, var(--hx-color-neutral-900, #0f172a));
|
|
26
|
+
color: var(--hx-toast-color, var(--hx-color-neutral-0, #ffffff));
|
|
27
|
+
font-family: var(--hx-font-family-sans, sans-serif);
|
|
28
|
+
font-size: var(--hx-font-size-sm, 0.875rem);
|
|
29
|
+
line-height: var(--hx-line-height-normal, 1.5);
|
|
30
|
+
box-shadow: var(
|
|
31
|
+
--hx-toast-shadow,
|
|
32
|
+
0 4px 6px -1px rgb(0 0 0 / 0.1),
|
|
33
|
+
0 2px 4px -2px rgb(0 0 0 / 0.1)
|
|
34
|
+
);
|
|
35
|
+
opacity: 0;
|
|
36
|
+
transform: translateY(var(--hx-toast-enter-translate, var(--hx-space-2, 0.5rem)));
|
|
37
|
+
transition:
|
|
38
|
+
opacity var(--hx-transition-normal, 250ms ease),
|
|
39
|
+
transform var(--hx-transition-normal, 250ms ease);
|
|
40
|
+
width: var(--hx-toast-width, 20rem);
|
|
41
|
+
max-width: 100%;
|
|
42
|
+
pointer-events: auto;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
:host([open]) .toast {
|
|
46
|
+
opacity: 1;
|
|
47
|
+
transform: translateY(0);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* ─── Variant overrides ─── */
|
|
51
|
+
|
|
52
|
+
.toast--success {
|
|
53
|
+
--hx-toast-bg: var(--hx-color-success-600, #16a34a);
|
|
54
|
+
--hx-toast-color: var(--hx-color-neutral-0, #ffffff);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.toast--warning {
|
|
58
|
+
--hx-toast-bg: var(--hx-color-warning-500, #f59e0b);
|
|
59
|
+
--hx-toast-color: var(--hx-color-neutral-900, #0f172a);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.toast--danger {
|
|
63
|
+
--hx-toast-bg: var(--hx-color-error-600, #dc2626);
|
|
64
|
+
--hx-toast-color: var(--hx-color-neutral-0, #ffffff);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.toast--info {
|
|
68
|
+
--hx-toast-bg: var(--hx-color-primary-600, #2563eb);
|
|
69
|
+
--hx-toast-color: var(--hx-color-neutral-0, #ffffff);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/* ─── Icon ─── */
|
|
73
|
+
|
|
74
|
+
.toast__icon {
|
|
75
|
+
flex-shrink: 0;
|
|
76
|
+
display: inline-flex;
|
|
77
|
+
align-items: center;
|
|
78
|
+
line-height: 1;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.toast__icon:empty {
|
|
82
|
+
display: none;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* ─── Message ─── */
|
|
86
|
+
|
|
87
|
+
.toast__message {
|
|
88
|
+
flex: 1 1 auto;
|
|
89
|
+
min-width: 0;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/* ─── Action slot ─── */
|
|
93
|
+
|
|
94
|
+
.toast__action {
|
|
95
|
+
flex-shrink: 0;
|
|
96
|
+
display: inline-flex;
|
|
97
|
+
align-items: center;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.toast__action:empty {
|
|
101
|
+
display: none;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* ─── Close button ─── */
|
|
105
|
+
|
|
106
|
+
.toast__close {
|
|
107
|
+
flex-shrink: 0;
|
|
108
|
+
display: inline-flex;
|
|
109
|
+
align-items: center;
|
|
110
|
+
justify-content: center;
|
|
111
|
+
padding: var(--hx-space-1, 0.25rem);
|
|
112
|
+
background: transparent;
|
|
113
|
+
border: none;
|
|
114
|
+
border-radius: var(--hx-border-radius-sm, 0.25rem);
|
|
115
|
+
color: inherit;
|
|
116
|
+
cursor: pointer;
|
|
117
|
+
opacity: 0.7;
|
|
118
|
+
transition: opacity var(--hx-transition-fast, 150ms ease);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.toast__close:hover {
|
|
122
|
+
opacity: 1;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.toast__close:focus-visible {
|
|
126
|
+
outline: var(--hx-focus-ring-width, 2px) solid currentColor;
|
|
127
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/* ─── Reduced motion ─── */
|
|
131
|
+
|
|
132
|
+
@media (prefers-reduced-motion: reduce) {
|
|
133
|
+
.toast {
|
|
134
|
+
transition: none;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
`, g = p`
|
|
138
|
+
:host {
|
|
139
|
+
display: block;
|
|
140
|
+
position: fixed;
|
|
141
|
+
z-index: var(--hx-z-index-toast, 9000);
|
|
142
|
+
pointer-events: none;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.toast-stack {
|
|
146
|
+
display: flex;
|
|
147
|
+
flex-direction: column;
|
|
148
|
+
gap: var(--hx-space-3, 0.75rem);
|
|
149
|
+
padding: var(--hx-space-4, 1rem);
|
|
150
|
+
pointer-events: none;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/* ─── Placements ─── */
|
|
154
|
+
|
|
155
|
+
:host([placement='top-start']) {
|
|
156
|
+
top: 0;
|
|
157
|
+
left: 0;
|
|
158
|
+
right: auto;
|
|
159
|
+
bottom: auto;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
:host([placement='top-center']) {
|
|
163
|
+
top: 0;
|
|
164
|
+
left: 50%;
|
|
165
|
+
transform: translateX(-50%);
|
|
166
|
+
right: auto;
|
|
167
|
+
bottom: auto;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
:host([placement='top-end']) {
|
|
171
|
+
top: 0;
|
|
172
|
+
right: 0;
|
|
173
|
+
left: auto;
|
|
174
|
+
bottom: auto;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
:host([placement='bottom-start']) {
|
|
178
|
+
bottom: 0;
|
|
179
|
+
left: 0;
|
|
180
|
+
right: auto;
|
|
181
|
+
top: auto;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
:host([placement='bottom-center']) {
|
|
185
|
+
bottom: 0;
|
|
186
|
+
left: 50%;
|
|
187
|
+
transform: translateX(-50%);
|
|
188
|
+
right: auto;
|
|
189
|
+
top: auto;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
:host([placement='bottom-end']) {
|
|
193
|
+
bottom: 0;
|
|
194
|
+
right: 0;
|
|
195
|
+
left: auto;
|
|
196
|
+
top: auto;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/* ─── Bottom placements: reverse order so newest is on top ─── */
|
|
200
|
+
|
|
201
|
+
:host([placement^='bottom']) .toast-stack {
|
|
202
|
+
flex-direction: column-reverse;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/* ─── Slide direction by placement ─── */
|
|
206
|
+
|
|
207
|
+
:host([placement^='top']) ::slotted(hx-toast) {
|
|
208
|
+
--hx-toast-enter-translate: calc(var(--hx-space-2, 0.5rem) * -1);
|
|
209
|
+
}
|
|
210
|
+
`;
|
|
211
|
+
var y = Object.defineProperty, w = Object.getOwnPropertyDescriptor, s = (e, o, r, a) => {
|
|
212
|
+
for (var t = a > 1 ? void 0 : a ? w(o, r) : o, l = e.length - 1, h; l >= 0; l--)
|
|
213
|
+
(h = e[l]) && (t = (a ? h(o, r, t) : h(t)) || t);
|
|
214
|
+
return a && t && y(o, r, t), t;
|
|
215
|
+
};
|
|
216
|
+
let i = class extends u {
|
|
217
|
+
constructor() {
|
|
218
|
+
super(...arguments), this.variant = "default", this.duration = 3e3, this.closable = !1, this.open = !1, this.closeLabel = "Dismiss notification", this._timer = null, this._timerStartedAt = null, this._timerRemaining = null;
|
|
219
|
+
}
|
|
220
|
+
// ─── Lifecycle ───
|
|
221
|
+
updated(e) {
|
|
222
|
+
e.has("open") && (this.open ? (this.removeAttribute("aria-hidden"), this._emitShow(), this.duration > 0 && this._startTimer()) : (this.setAttribute("aria-hidden", "true"), this._clearTimer(), this._emitHide()));
|
|
223
|
+
}
|
|
224
|
+
disconnectedCallback() {
|
|
225
|
+
super.disconnectedCallback(), this._clearTimer();
|
|
226
|
+
}
|
|
227
|
+
// ─── Public API ───
|
|
228
|
+
/** Show the toast. */
|
|
229
|
+
show() {
|
|
230
|
+
this.open || (this.open = !0);
|
|
231
|
+
}
|
|
232
|
+
/** Hide the toast. */
|
|
233
|
+
hide() {
|
|
234
|
+
this.open && (this.open = !1);
|
|
235
|
+
}
|
|
236
|
+
// ─── Private Helpers ───
|
|
237
|
+
/** @internal */
|
|
238
|
+
_startTimer(e) {
|
|
239
|
+
if (window.matchMedia("(prefers-reduced-motion: reduce)").matches)
|
|
240
|
+
return;
|
|
241
|
+
this._clearTimerHandle();
|
|
242
|
+
const o = e ?? this.duration;
|
|
243
|
+
this._timerStartedAt = Date.now(), this._timerRemaining = o, this._timer = setTimeout(() => {
|
|
244
|
+
this.open = !1;
|
|
245
|
+
}, o);
|
|
246
|
+
}
|
|
247
|
+
/** @internal */
|
|
248
|
+
_pauseTimer() {
|
|
249
|
+
if (this._timer === null || this._timerStartedAt === null || this._timerRemaining === null)
|
|
250
|
+
return;
|
|
251
|
+
const e = Date.now() - this._timerStartedAt;
|
|
252
|
+
this._timerRemaining = Math.max(0, this._timerRemaining - e), this._clearTimerHandle();
|
|
253
|
+
}
|
|
254
|
+
/** @internal */
|
|
255
|
+
_clearTimerHandle() {
|
|
256
|
+
this._timer !== null && (clearTimeout(this._timer), this._timer = null);
|
|
257
|
+
}
|
|
258
|
+
/** @internal */
|
|
259
|
+
_clearTimer() {
|
|
260
|
+
this._clearTimerHandle(), this._timerStartedAt = null, this._timerRemaining = null;
|
|
261
|
+
}
|
|
262
|
+
/** @internal */
|
|
263
|
+
_emitShow() {
|
|
264
|
+
this.dispatchEvent(new CustomEvent("hx-show", { bubbles: !0, composed: !0 }));
|
|
265
|
+
}
|
|
266
|
+
/** @internal */
|
|
267
|
+
_emitHide() {
|
|
268
|
+
var a;
|
|
269
|
+
this.dispatchEvent(new CustomEvent("hx-hide", { bubbles: !0, composed: !0 }));
|
|
270
|
+
let e = !1;
|
|
271
|
+
const o = () => {
|
|
272
|
+
e || (e = !0, this.dispatchEvent(new CustomEvent("hx-after-hide", { bubbles: !0, composed: !0 })));
|
|
273
|
+
}, r = (a = this.shadowRoot) == null ? void 0 : a.querySelector(".toast");
|
|
274
|
+
r && r.addEventListener("transitionend", o, { once: !0 }), setTimeout(o, 300);
|
|
275
|
+
}
|
|
276
|
+
// ─── Event Handlers ───
|
|
277
|
+
/** @internal */
|
|
278
|
+
_handleMouseEnter() {
|
|
279
|
+
this._pauseTimer();
|
|
280
|
+
}
|
|
281
|
+
/** @internal */
|
|
282
|
+
_handleMouseLeave() {
|
|
283
|
+
this.open && this.duration > 0 && this._startTimer(this._timerRemaining ?? void 0);
|
|
284
|
+
}
|
|
285
|
+
/** @internal */
|
|
286
|
+
_handleFocusIn() {
|
|
287
|
+
this._pauseTimer();
|
|
288
|
+
}
|
|
289
|
+
/** @internal */
|
|
290
|
+
_handleFocusOut() {
|
|
291
|
+
this.open && this.duration > 0 && this._startTimer(this._timerRemaining ?? void 0);
|
|
292
|
+
}
|
|
293
|
+
/** @internal */
|
|
294
|
+
_handleClose() {
|
|
295
|
+
this.hide();
|
|
296
|
+
}
|
|
297
|
+
// ─── ARIA Helpers ───
|
|
298
|
+
/** @internal */
|
|
299
|
+
get _role() {
|
|
300
|
+
return this.variant === "danger" ? "alert" : "status";
|
|
301
|
+
}
|
|
302
|
+
/** @internal */
|
|
303
|
+
get _ariaLive() {
|
|
304
|
+
return this.variant === "danger" ? "assertive" : "polite";
|
|
305
|
+
}
|
|
306
|
+
// ─── Render ───
|
|
307
|
+
render() {
|
|
308
|
+
return m`
|
|
309
|
+
<div
|
|
310
|
+
part="base"
|
|
311
|
+
class=${f({
|
|
312
|
+
toast: !0,
|
|
313
|
+
[`toast--${this.variant}`]: !0
|
|
314
|
+
})}
|
|
315
|
+
role=${this._role}
|
|
316
|
+
aria-live=${this._ariaLive}
|
|
317
|
+
aria-atomic="true"
|
|
318
|
+
@mouseenter=${this._handleMouseEnter}
|
|
319
|
+
@mouseleave=${this._handleMouseLeave}
|
|
320
|
+
@focusin=${this._handleFocusIn}
|
|
321
|
+
@focusout=${this._handleFocusOut}
|
|
322
|
+
>
|
|
323
|
+
<span part="icon" class="toast__icon">
|
|
324
|
+
<slot name="icon"></slot>
|
|
325
|
+
</span>
|
|
326
|
+
<span part="message" class="toast__message">
|
|
327
|
+
<slot></slot>
|
|
328
|
+
</span>
|
|
329
|
+
<span part="action" class="toast__action">
|
|
330
|
+
<slot name="action"></slot>
|
|
331
|
+
</span>
|
|
332
|
+
${this.closable ? m`
|
|
333
|
+
<button
|
|
334
|
+
part="close-button"
|
|
335
|
+
class="toast__close"
|
|
336
|
+
aria-label=${this.closeLabel}
|
|
337
|
+
@click=${this._handleClose}
|
|
338
|
+
>
|
|
339
|
+
<svg
|
|
340
|
+
aria-hidden="true"
|
|
341
|
+
width="16"
|
|
342
|
+
height="16"
|
|
343
|
+
viewBox="0 0 24 24"
|
|
344
|
+
fill="none"
|
|
345
|
+
stroke="currentColor"
|
|
346
|
+
stroke-width="2"
|
|
347
|
+
stroke-linecap="round"
|
|
348
|
+
stroke-linejoin="round"
|
|
349
|
+
>
|
|
350
|
+
<path d="M18 6L6 18M6 6l12 12" />
|
|
351
|
+
</svg>
|
|
352
|
+
</button>
|
|
353
|
+
` : _}
|
|
354
|
+
</div>
|
|
355
|
+
`;
|
|
356
|
+
}
|
|
357
|
+
};
|
|
358
|
+
i.styles = [x, b];
|
|
359
|
+
s([
|
|
360
|
+
n({ type: String, reflect: !0 })
|
|
361
|
+
], i.prototype, "variant", 2);
|
|
362
|
+
s([
|
|
363
|
+
n({ type: Number })
|
|
364
|
+
], i.prototype, "duration", 2);
|
|
365
|
+
s([
|
|
366
|
+
n({ type: Boolean, reflect: !0 })
|
|
367
|
+
], i.prototype, "closable", 2);
|
|
368
|
+
s([
|
|
369
|
+
n({ type: Boolean, reflect: !0 })
|
|
370
|
+
], i.prototype, "open", 2);
|
|
371
|
+
s([
|
|
372
|
+
n({ attribute: "close-label" })
|
|
373
|
+
], i.prototype, "closeLabel", 2);
|
|
374
|
+
i = s([
|
|
375
|
+
d("hx-toast")
|
|
376
|
+
], i);
|
|
377
|
+
let c = class extends u {
|
|
378
|
+
constructor() {
|
|
379
|
+
super(...arguments), this.placement = "bottom-end", this.stackLimit = 3;
|
|
380
|
+
}
|
|
381
|
+
render() {
|
|
382
|
+
return m`
|
|
383
|
+
<div
|
|
384
|
+
part="base"
|
|
385
|
+
class=${f({
|
|
386
|
+
"toast-stack": !0,
|
|
387
|
+
[`toast-stack--${this.placement}`]: !0
|
|
388
|
+
})}
|
|
389
|
+
>
|
|
390
|
+
<slot></slot>
|
|
391
|
+
</div>
|
|
392
|
+
`;
|
|
393
|
+
}
|
|
394
|
+
};
|
|
395
|
+
c.styles = [x, g];
|
|
396
|
+
s([
|
|
397
|
+
n({ type: String, reflect: !0 })
|
|
398
|
+
], c.prototype, "placement", 2);
|
|
399
|
+
s([
|
|
400
|
+
n({ type: Number, attribute: "stack-limit" })
|
|
401
|
+
], c.prototype, "stackLimit", 2);
|
|
402
|
+
c = s([
|
|
403
|
+
d("hx-toast-stack")
|
|
404
|
+
], c);
|
|
405
|
+
function L(e) {
|
|
406
|
+
var l;
|
|
407
|
+
const o = e.placement ?? "bottom-end", r = `hx-toast-stack[placement="${o}"]`;
|
|
408
|
+
let a = document.querySelector(r);
|
|
409
|
+
if (a || (a = document.createElement("hx-toast-stack"), a.placement = o, document.body.appendChild(a)), a.stackLimit > 0) {
|
|
410
|
+
const h = [...a.querySelectorAll("hx-toast")].filter((v) => v.open);
|
|
411
|
+
h.length >= a.stackLimit && ((l = h[0]) == null || l.hide());
|
|
412
|
+
}
|
|
413
|
+
const t = document.createElement("hx-toast");
|
|
414
|
+
return t.variant = e.variant ?? "default", t.duration = e.duration ?? 3e3, t.closable = !0, t.textContent = e.message, t.addEventListener("hx-after-hide", () => {
|
|
415
|
+
t.remove();
|
|
416
|
+
}), a.appendChild(t), t.show(), t;
|
|
417
|
+
}
|
|
418
|
+
export {
|
|
419
|
+
i as H,
|
|
420
|
+
c as a,
|
|
421
|
+
L as t
|
|
422
|
+
};
|
|
423
|
+
//# sourceMappingURL=hx-toast-BTqzF2VV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hx-toast-BTqzF2VV.js","sources":["../../src/components/hx-toast/hx-toast.styles.ts","../../src/components/hx-toast/hx-toast.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixToastStyles = css`\n /* ─── hx-toast host ─── */\n\n :host {\n display: block;\n pointer-events: none;\n }\n\n :host([open]) {\n pointer-events: auto;\n }\n\n /* ─── Toast base ─── */\n\n .toast {\n display: flex;\n align-items: flex-start;\n gap: var(--hx-space-3, 0.75rem);\n padding: var(--hx-space-3, 0.75rem) var(--hx-space-4, 1rem);\n border-radius: var(--hx-toast-border-radius, var(--hx-border-radius-md, 0.375rem));\n background-color: var(--hx-toast-bg, var(--hx-color-neutral-900, #0f172a));\n color: var(--hx-toast-color, var(--hx-color-neutral-0, #ffffff));\n font-family: var(--hx-font-family-sans, sans-serif);\n font-size: var(--hx-font-size-sm, 0.875rem);\n line-height: var(--hx-line-height-normal, 1.5);\n box-shadow: var(\n --hx-toast-shadow,\n 0 4px 6px -1px rgb(0 0 0 / 0.1),\n 0 2px 4px -2px rgb(0 0 0 / 0.1)\n );\n opacity: 0;\n transform: translateY(var(--hx-toast-enter-translate, var(--hx-space-2, 0.5rem)));\n transition:\n opacity var(--hx-transition-normal, 250ms ease),\n transform var(--hx-transition-normal, 250ms ease);\n width: var(--hx-toast-width, 20rem);\n max-width: 100%;\n pointer-events: auto;\n }\n\n :host([open]) .toast {\n opacity: 1;\n transform: translateY(0);\n }\n\n /* ─── Variant overrides ─── */\n\n .toast--success {\n --hx-toast-bg: var(--hx-color-success-600, #16a34a);\n --hx-toast-color: var(--hx-color-neutral-0, #ffffff);\n }\n\n .toast--warning {\n --hx-toast-bg: var(--hx-color-warning-500, #f59e0b);\n --hx-toast-color: var(--hx-color-neutral-900, #0f172a);\n }\n\n .toast--danger {\n --hx-toast-bg: var(--hx-color-error-600, #dc2626);\n --hx-toast-color: var(--hx-color-neutral-0, #ffffff);\n }\n\n .toast--info {\n --hx-toast-bg: var(--hx-color-primary-600, #2563eb);\n --hx-toast-color: var(--hx-color-neutral-0, #ffffff);\n }\n\n /* ─── Icon ─── */\n\n .toast__icon {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n line-height: 1;\n }\n\n .toast__icon:empty {\n display: none;\n }\n\n /* ─── Message ─── */\n\n .toast__message {\n flex: 1 1 auto;\n min-width: 0;\n }\n\n /* ─── Action slot ─── */\n\n .toast__action {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n }\n\n .toast__action:empty {\n display: none;\n }\n\n /* ─── Close button ─── */\n\n .toast__close {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: var(--hx-space-1, 0.25rem);\n background: transparent;\n border: none;\n border-radius: var(--hx-border-radius-sm, 0.25rem);\n color: inherit;\n cursor: pointer;\n opacity: 0.7;\n transition: opacity var(--hx-transition-fast, 150ms ease);\n }\n\n .toast__close:hover {\n opacity: 1;\n }\n\n .toast__close:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid currentColor;\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n /* ─── Reduced motion ─── */\n\n @media (prefers-reduced-motion: reduce) {\n .toast {\n transition: none;\n }\n }\n`;\n\nexport const helixToastStackStyles = css`\n :host {\n display: block;\n position: fixed;\n z-index: var(--hx-z-index-toast, 9000);\n pointer-events: none;\n }\n\n .toast-stack {\n display: flex;\n flex-direction: column;\n gap: var(--hx-space-3, 0.75rem);\n padding: var(--hx-space-4, 1rem);\n pointer-events: none;\n }\n\n /* ─── Placements ─── */\n\n :host([placement='top-start']) {\n top: 0;\n left: 0;\n right: auto;\n bottom: auto;\n }\n\n :host([placement='top-center']) {\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n right: auto;\n bottom: auto;\n }\n\n :host([placement='top-end']) {\n top: 0;\n right: 0;\n left: auto;\n bottom: auto;\n }\n\n :host([placement='bottom-start']) {\n bottom: 0;\n left: 0;\n right: auto;\n top: auto;\n }\n\n :host([placement='bottom-center']) {\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n right: auto;\n top: auto;\n }\n\n :host([placement='bottom-end']) {\n bottom: 0;\n right: 0;\n left: auto;\n top: auto;\n }\n\n /* ─── Bottom placements: reverse order so newest is on top ─── */\n\n :host([placement^='bottom']) .toast-stack {\n flex-direction: column-reverse;\n }\n\n /* ─── Slide direction by placement ─── */\n\n :host([placement^='top']) ::slotted(hx-toast) {\n --hx-toast-enter-translate: calc(var(--hx-space-2, 0.5rem) * -1);\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixToastStyles, helixToastStackStyles } from './hx-toast.styles.js';\n\nexport type ToastVariant = 'default' | 'success' | 'warning' | 'danger' | 'info';\nexport type ToastStackPlacement =\n | 'top-start'\n | 'top-center'\n | 'top-end'\n | 'bottom-start'\n | 'bottom-center'\n | 'bottom-end';\n\n/**\n * A transient notification message that auto-dismisses after a configurable duration.\n * Supports multiple visual variants, a closable button, icon/action slots, and full\n * ARIA live region semantics for screen readers.\n *\n * @summary Transient notification toast component.\n *\n * @tag hx-toast\n *\n * @slot - Default slot for the notification message.\n * @slot icon - Optional icon rendered before the message.\n * @slot action - Optional action button rendered after the message.\n *\n * @fires {CustomEvent} hx-show - Dispatched when the toast becomes visible.\n * @fires {CustomEvent} hx-hide - Dispatched when the toast begins hiding.\n * @fires {CustomEvent} hx-after-hide - Dispatched after the hide animation completes.\n *\n * @csspart base - The inner toast container div.\n * @csspart icon - The icon slot wrapper.\n * @csspart message - The message slot wrapper.\n * @csspart close-button - The dismiss button (only when closable).\n * @csspart action - The action slot wrapper.\n *\n * @cssprop [--hx-toast-bg=var(--hx-color-neutral-900)] - Toast background color.\n * @cssprop [--hx-toast-color=var(--hx-color-neutral-0)] - Toast text color.\n * @cssprop [--hx-toast-border-radius=var(--hx-border-radius-md)] - Toast border radius.\n * @cssprop [--hx-toast-shadow] - Toast box shadow.\n * @cssprop [--hx-toast-width=20rem] - Toast width.\n */\n@customElement('hx-toast')\nexport class HelixToast extends LitElement {\n static override styles = [tokenStyles, helixToastStyles];\n\n // ─── Public Properties ───\n\n /**\n * Visual style variant.\n * @attr variant\n */\n @property({ type: String, reflect: true })\n variant: ToastVariant = 'default';\n\n /**\n * Auto-dismiss duration in milliseconds. Set to 0 for persistent toasts.\n * @attr duration\n */\n @property({ type: Number })\n duration = 3000;\n\n /**\n * Whether to show a close button.\n * @attr closable\n */\n @property({ type: Boolean, reflect: true })\n closable = false;\n\n /**\n * Whether the toast is currently visible.\n * @attr open\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Accessible label for the close button. Override for localization.\n * @attr close-label\n */\n @property({ attribute: 'close-label' })\n closeLabel = 'Dismiss notification';\n\n // ─── Private State ───\n\n /** @internal */\n private _timer: ReturnType<typeof setTimeout> | null = null;\n\n /** @internal */\n private _timerStartedAt: number | null = null;\n\n /** @internal */\n private _timerRemaining: number | null = null;\n\n // ─── Lifecycle ───\n\n override updated(changedProperties: Map<PropertyKey, unknown>): void {\n if (changedProperties.has('open')) {\n if (this.open) {\n this.removeAttribute('aria-hidden');\n this._emitShow();\n if (this.duration > 0) {\n this._startTimer();\n }\n } else {\n this.setAttribute('aria-hidden', 'true');\n this._clearTimer();\n this._emitHide();\n }\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this._clearTimer();\n }\n\n // ─── Public API ───\n\n /** Show the toast. */\n show(): void {\n if (!this.open) {\n this.open = true;\n }\n }\n\n /** Hide the toast. */\n hide(): void {\n if (this.open) {\n this.open = false;\n }\n }\n\n // ─── Private Helpers ───\n\n /** @internal */\n private _startTimer(remaining?: number): void {\n if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) {\n return;\n }\n this._clearTimerHandle();\n const delay = remaining ?? this.duration;\n this._timerStartedAt = Date.now();\n this._timerRemaining = delay;\n this._timer = setTimeout(() => {\n this.open = false;\n }, delay);\n }\n\n /** @internal */\n private _pauseTimer(): void {\n if (this._timer === null || this._timerStartedAt === null || this._timerRemaining === null) {\n return;\n }\n const elapsed = Date.now() - this._timerStartedAt;\n this._timerRemaining = Math.max(0, this._timerRemaining - elapsed);\n this._clearTimerHandle();\n }\n\n /** @internal */\n private _clearTimerHandle(): void {\n if (this._timer !== null) {\n clearTimeout(this._timer);\n this._timer = null;\n }\n }\n\n /** @internal */\n private _clearTimer(): void {\n this._clearTimerHandle();\n this._timerStartedAt = null;\n this._timerRemaining = null;\n }\n\n /** @internal */\n private _emitShow(): void {\n this.dispatchEvent(new CustomEvent('hx-show', { bubbles: true, composed: true }));\n }\n\n /** @internal */\n private _emitHide(): void {\n this.dispatchEvent(new CustomEvent('hx-hide', { bubbles: true, composed: true }));\n\n let fired = false;\n const fireAfterHide = () => {\n if (fired) return;\n fired = true;\n this.dispatchEvent(new CustomEvent('hx-after-hide', { bubbles: true, composed: true }));\n };\n\n // Fire on transitionend if available; fallback ensures it fires in test environments\n // and when transitions are disabled (prefers-reduced-motion, no CSS transitions).\n const base = this.shadowRoot?.querySelector('.toast');\n if (base) {\n base.addEventListener('transitionend', fireAfterHide, { once: true });\n }\n // Fallback fires after the CSS transition duration (250ms) plus a small buffer.\n setTimeout(fireAfterHide, 300);\n }\n\n // ─── Event Handlers ───\n\n /** @internal */\n private _handleMouseEnter(): void {\n this._pauseTimer();\n }\n\n /** @internal */\n private _handleMouseLeave(): void {\n if (this.open && this.duration > 0) {\n this._startTimer(this._timerRemaining ?? undefined);\n }\n }\n\n /** @internal */\n private _handleFocusIn(): void {\n this._pauseTimer();\n }\n\n /** @internal */\n private _handleFocusOut(): void {\n if (this.open && this.duration > 0) {\n this._startTimer(this._timerRemaining ?? undefined);\n }\n }\n\n /** @internal */\n private _handleClose(): void {\n this.hide();\n }\n\n // ─── ARIA Helpers ───\n\n /** @internal */\n private get _role(): 'alert' | 'status' {\n return this.variant === 'danger' ? 'alert' : 'status';\n }\n\n /** @internal */\n private get _ariaLive(): 'assertive' | 'polite' {\n return this.variant === 'danger' ? 'assertive' : 'polite';\n }\n\n // ─── Render ───\n\n override render() {\n return html`\n <div\n part=\"base\"\n class=${classMap({\n toast: true,\n [`toast--${this.variant}`]: true,\n })}\n role=${this._role}\n aria-live=${this._ariaLive}\n aria-atomic=\"true\"\n @mouseenter=${this._handleMouseEnter}\n @mouseleave=${this._handleMouseLeave}\n @focusin=${this._handleFocusIn}\n @focusout=${this._handleFocusOut}\n >\n <span part=\"icon\" class=\"toast__icon\">\n <slot name=\"icon\"></slot>\n </span>\n <span part=\"message\" class=\"toast__message\">\n <slot></slot>\n </span>\n <span part=\"action\" class=\"toast__action\">\n <slot name=\"action\"></slot>\n </span>\n ${this.closable\n ? html`\n <button\n part=\"close-button\"\n class=\"toast__close\"\n aria-label=${this.closeLabel}\n @click=${this._handleClose}\n >\n <svg\n aria-hidden=\"true\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"M18 6L6 18M6 6l12 12\" />\n </svg>\n </button>\n `\n : nothing}\n </div>\n `;\n }\n}\n\n/**\n * A fixed-position container that stacks `hx-toast` elements at the specified\n * corner of the viewport. Enforces a maximum visible toast count via `stack-limit`.\n *\n * @summary Toast stack container managing position and count limits.\n *\n * @tag hx-toast-stack\n *\n * @slot - Accepts `hx-toast` elements.\n *\n * @csspart base - The inner stack container div.\n *\n * @cssprop [--hx-z-index-toast=9000] - Z-index for the fixed stack.\n */\n@customElement('hx-toast-stack')\nexport class HelixToastStack extends LitElement {\n static override styles = [tokenStyles, helixToastStackStyles];\n\n /**\n * Corner of the viewport where toasts appear.\n * @attr placement\n */\n @property({ type: String, reflect: true })\n placement: ToastStackPlacement = 'bottom-end';\n\n /**\n * Maximum number of simultaneously visible toasts. 0 = unlimited.\n * @attr stack-limit\n */\n @property({ type: Number, attribute: 'stack-limit' })\n stackLimit = 3;\n\n override render() {\n return html`\n <div\n part=\"base\"\n class=${classMap({\n 'toast-stack': true,\n [`toast-stack--${this.placement}`]: true,\n })}\n >\n <slot></slot>\n </div>\n `;\n }\n}\n\n// ─── Declarative Global Types ───\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-toast': HelixToast;\n 'hx-toast-stack': HelixToastStack;\n }\n}\n\n// ─── Imperative toast() Utility ───\n\nexport interface ToastOptions {\n /** The notification message text. */\n message: string;\n /** Visual variant. Defaults to 'default'. */\n variant?: ToastVariant;\n /** Auto-dismiss duration in ms. 0 = persistent. Defaults to 3000. */\n duration?: number;\n /** Placement of the shared stack. Defaults to 'bottom-end'. */\n placement?: ToastStackPlacement;\n}\n\n/**\n * Imperatively create and display a toast notification.\n *\n * Creates a shared `hx-toast-stack` on `document.body` if one does not exist,\n * then appends a new `hx-toast` with the given options. Respects the stack's\n * `stackLimit` by hiding the oldest visible toast when the limit is exceeded.\n *\n * @example\n * import { toast } from '@wc-2026/library/components/hx-toast/index.js';\n * toast({ message: 'Patient record saved.', variant: 'success' });\n */\nexport function toast(options: ToastOptions): HelixToast {\n const placement = options.placement ?? 'bottom-end';\n\n // Find or create a dedicated stack for this placement\n const stackSelector = `hx-toast-stack[placement=\"${placement}\"]`;\n let stack = document.querySelector<HelixToastStack>(stackSelector);\n if (!stack) {\n stack = document.createElement('hx-toast-stack') as HelixToastStack;\n stack.placement = placement;\n document.body.appendChild(stack);\n }\n\n // Enforce stack limit: hide oldest open toast if at capacity\n if (stack.stackLimit > 0) {\n const openToasts = [...stack.querySelectorAll<HelixToast>('hx-toast')].filter((t) => t.open);\n if (openToasts.length >= stack.stackLimit) {\n openToasts[0]?.hide();\n }\n }\n\n // Create toast element\n const toastEl = document.createElement('hx-toast') as HelixToast;\n toastEl.variant = options.variant ?? 'default';\n toastEl.duration = options.duration ?? 3000;\n toastEl.closable = true;\n toastEl.textContent = options.message;\n\n // Remove from DOM after hiding\n toastEl.addEventListener('hx-after-hide', () => {\n toastEl.remove();\n });\n\n stack.appendChild(toastEl);\n toastEl.show();\n\n return toastEl;\n}\n"],"names":["helixToastStyles","css","helixToastStackStyles","HelixToast","LitElement","changedProperties","remaining","delay","elapsed","fired","fireAfterHide","base","_a","html","classMap","nothing","tokenStyles","__decorateClass","property","customElement","HelixToastStack","toast","options","placement","stackSelector","stack","openToasts","t","toastEl"],"mappings":"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"}
|