@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-carousel-item-CymJHv1m.js","sources":["../../src/components/hx-carousel/hx-carousel.styles.ts","../../src/components/hx-carousel/hx-carousel.ts","../../src/components/hx-carousel/hx-carousel-item.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixCarouselStyles = css`\n :host {\n display: block;\n position: relative;\n }\n\n /* ─── Base ─── */\n\n .base {\n display: flex;\n flex-direction: column;\n gap: var(--hx-space-3, 0.75rem);\n }\n\n :host([orientation='vertical']) .base {\n flex-direction: row;\n }\n\n /* ─── Navigation ─── */\n\n .navigation {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--hx-space-2, 0.5rem);\n }\n\n :host([orientation='vertical']) .navigation {\n flex-direction: column;\n }\n\n .nav-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--hx-carousel-nav-btn-size, var(--hx-size-10, 2.5rem));\n height: var(--hx-carousel-nav-btn-size, var(--hx-size-10, 2.5rem));\n border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-200, #e5e7eb);\n border-radius: var(--hx-border-radius-full, 9999px);\n background: var(--hx-color-neutral-0, #fff);\n color: var(--hx-color-neutral-700, #374151);\n cursor: pointer;\n padding: 0;\n transition:\n background-color var(--hx-transition-fast, 0.15s ease),\n color var(--hx-transition-fast, 0.15s ease),\n border-color var(--hx-transition-fast, 0.15s ease);\n flex-shrink: 0;\n }\n\n .nav-btn:hover:not([disabled]) {\n background: var(--hx-color-neutral-50, #f9fafb);\n border-color: var(--hx-color-neutral-400, #9ca3af);\n }\n\n .nav-btn:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #2563eb);\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n .nav-btn[disabled] {\n opacity: var(--hx-opacity-disabled, 0.4);\n cursor: not-allowed;\n }\n\n .nav-btn svg {\n width: 1.25em;\n height: 1.25em;\n }\n\n /* ─── Play/Pause ─── */\n\n .play-pause-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--hx-size-8, 2rem);\n height: var(--hx-size-8, 2rem);\n border: var(--hx-border-width-thin, 1px) solid transparent;\n border-radius: var(--hx-border-radius-md, 0.375rem);\n background: transparent;\n color: var(--hx-color-neutral-500, #6b7280);\n cursor: pointer;\n padding: 0;\n font-size: var(--hx-font-size-sm, 0.875rem);\n transition: background-color var(--hx-transition-fast, 0.15s ease);\n flex-shrink: 0;\n }\n\n .play-pause-btn:hover {\n background: var(--hx-color-neutral-100, #f3f4f6);\n }\n\n .play-pause-btn:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #2563eb);\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n /* ─── Scroll Container ─── */\n\n .scroll-container-wrapper {\n flex: 1;\n overflow: hidden;\n }\n\n .slide-viewport {\n overflow: hidden;\n border-radius: var(--hx-border-radius-md, 0.375rem);\n }\n\n .track {\n display: flex;\n transition: transform var(--hx-transition-base, 0.3s ease);\n }\n\n :host([orientation='vertical']) .track {\n flex-direction: column;\n }\n\n /* ─── Pagination ─── */\n\n .pagination {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--hx-space-2, 0.5rem);\n flex-wrap: wrap;\n }\n\n :host([orientation='vertical']) .pagination {\n flex-direction: column;\n }\n\n .pagination-item {\n display: inline-flex;\n padding: 0;\n border: none;\n cursor: pointer;\n background: transparent;\n border-radius: var(--hx-border-radius-full, 9999px);\n }\n\n .pagination-dot {\n display: block;\n width: var(--hx-carousel-pagination-dot-size, 0.5rem);\n height: var(--hx-carousel-pagination-dot-size, 0.5rem);\n border-radius: var(--hx-border-radius-full, 9999px);\n background: var(--hx-color-neutral-300, #d1d5db);\n transition:\n background-color var(--hx-transition-fast, 0.15s ease),\n transform var(--hx-transition-fast, 0.15s ease);\n }\n\n .pagination-item[aria-current='true'] .pagination-dot,\n .pagination-item.is-active .pagination-dot {\n background: var(--hx-color-primary-600, #2563eb);\n transform: scale(1.25);\n }\n\n .pagination-item:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #2563eb);\n outline-offset: var(--hx-focus-ring-offset, 2px);\n border-radius: var(--hx-border-radius-full, 9999px);\n }\n\n /* ─── Controls row ─── */\n\n .controls {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--hx-space-3, 0.75rem);\n }\n\n /* ─── Live Region ─── */\n\n .live-region {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n\n /* ─── Reduced Motion ─── */\n\n @media (prefers-reduced-motion: reduce) {\n .track,\n .nav-btn,\n .pagination-dot,\n .play-pause-btn {\n transition: none;\n }\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixCarouselStyles } from './hx-carousel.styles.js';\nimport type { HelixCarouselItem } from './hx-carousel-item.js';\n\n// ─── Module-level SVG icon constants ───\n\nconst _svgChevronLeft = html`<svg\n xmlns=\"http://www.w3.org/2000/svg\"\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 aria-hidden=\"true\"\n>\n <polyline points=\"15 18 9 12 15 6\"></polyline>\n</svg>`;\n\nconst _svgChevronUp = html`<svg\n xmlns=\"http://www.w3.org/2000/svg\"\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 aria-hidden=\"true\"\n>\n <polyline points=\"18 15 12 9 6 15\"></polyline>\n</svg>`;\n\nconst _svgChevronRight = html`<svg\n xmlns=\"http://www.w3.org/2000/svg\"\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 aria-hidden=\"true\"\n>\n <polyline points=\"9 18 15 12 9 6\"></polyline>\n</svg>`;\n\nconst _svgChevronDown = html`<svg\n xmlns=\"http://www.w3.org/2000/svg\"\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 aria-hidden=\"true\"\n>\n <polyline points=\"6 9 12 15 18 9\"></polyline>\n</svg>`;\n\nconst _svgPlay = html`<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n width=\"1em\"\n height=\"1em\"\n>\n <polygon points=\"5 3 19 12 5 21 5 3\"></polygon>\n</svg>`;\n\nconst _svgPause = html`<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n width=\"1em\"\n height=\"1em\"\n>\n <rect x=\"6\" y=\"4\" width=\"4\" height=\"16\"></rect>\n <rect x=\"14\" y=\"4\" width=\"4\" height=\"16\"></rect>\n</svg>`;\n\n/**\n * A scrollable carousel/slider for images or content slides.\n *\n * @summary Scrollable carousel with navigation, pagination, autoplay, and an accessible label.\n *\n * @tag hx-carousel\n *\n * @slot - `hx-carousel-item` elements (the slides).\n * @slot next-button - Custom next navigation button.\n * @slot previous-button - Custom previous navigation button.\n *\n * @fires {CustomEvent<{index: number, slide: HelixCarouselItem}>} hx-slide-change - Dispatched when the active slide changes.\n *\n * @csspart base - The outer wrapper element.\n * @csspart slide-viewport - The slide viewport/overflow container.\n * @csspart pagination - The pagination dot container.\n * @csspart pagination-item - Individual pagination dot button.\n * @csspart navigation - The previous/next button wrapper.\n * @csspart prev-btn - The previous navigation button.\n * @csspart next-btn - The next navigation button.\n * @csspart play-pause-btn - The autoplay play/pause toggle button.\n *\n * @cssprop [--hx-carousel-gap=0px] - Gap between slides.\n * @cssprop [--hx-carousel-slide-width=100%] - Width override for each slide.\n * @cssprop [--hx-carousel-nav-btn-size=2.5rem] - Size of previous/next navigation buttons.\n * @cssprop [--hx-carousel-pagination-dot-size=0.5rem] - Size of pagination dots.\n */\n@customElement('hx-carousel')\nexport class HelixCarousel extends LitElement {\n static override styles = [tokenStyles, helixCarouselStyles];\n\n /**\n * Accessible label identifying this carousel to assistive technology.\n * When multiple carousels appear on the same page, each must have a unique label.\n * @attr label\n */\n @property({ type: String, reflect: true })\n label = 'Carousel';\n\n /**\n * Whether the carousel wraps around from last to first slide and vice-versa.\n * @attr loop\n */\n @property({ type: Boolean, reflect: true })\n loop = false;\n\n /**\n * Whether the carousel auto-advances slides.\n * Automatically pauses on hover, focus, and when prefers-reduced-motion is active.\n * @attr autoplay\n */\n @property({ type: Boolean, reflect: true })\n autoplay = false;\n\n /**\n * Milliseconds between auto-advance transitions.\n * @attr autoplay-interval\n */\n @property({ type: Number, attribute: 'autoplay-interval' })\n autoplayInterval = 3000;\n\n /**\n * Number of slides visible at once.\n * @attr slides-per-page\n */\n @property({ type: Number, attribute: 'slides-per-page' })\n slidesPerPage = 1;\n\n /**\n * Number of slides to advance per navigation action.\n * @attr slides-per-move\n */\n @property({ type: Number, attribute: 'slides-per-move' })\n slidesPerMove = 1;\n\n /**\n * Scroll axis of the carousel.\n * @attr orientation\n */\n @property({ type: String, reflect: true })\n orientation: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Whether click-drag scrolling is enabled.\n * @attr mouse-dragging\n */\n @property({ type: Boolean, attribute: 'mouse-dragging', reflect: true })\n mouseDragging = false;\n\n @state() private _currentIndex = 0;\n @state() private _slides: HelixCarouselItem[] = [];\n @state() private _isPlaying = false;\n @state() private _liveText = '';\n\n private _autoplayTimer: ReturnType<typeof setInterval> | null = null;\n private _reducedMotion = false;\n private _mql: MediaQueryList | null = null;\n private _isHovered = false;\n private _isFocused = false;\n\n // ─── Drag state ───\n private _dragStartCoord = 0;\n private _isDragging = false;\n private _dragMoved = false;\n private _touchStartCoord = 0;\n private _touchMoved = false;\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n this._mql = window.matchMedia('(prefers-reduced-motion: reduce)');\n this._reducedMotion = this._mql.matches;\n this._mql.addEventListener('change', this._handleMotionChange);\n\n this.addEventListener('mouseenter', this._handleMouseEnter);\n this.addEventListener('mouseleave', this._handleMouseLeave);\n this.addEventListener('focusin', this._handleFocusIn);\n this.addEventListener('focusout', this._handleFocusOut);\n this.addEventListener('keydown', this._handleKeydown);\n // Touch events are registered directly on the scroll-container in the template\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this._mql?.removeEventListener('change', this._handleMotionChange);\n this._stopAutoplay();\n this.removeEventListener('mouseenter', this._handleMouseEnter);\n this.removeEventListener('mouseleave', this._handleMouseLeave);\n this.removeEventListener('focusin', this._handleFocusIn);\n this.removeEventListener('focusout', this._handleFocusOut);\n this.removeEventListener('keydown', this._handleKeydown);\n }\n\n override firstUpdated(): void {\n this._syncSlides();\n if (this.autoplay && !this._reducedMotion) {\n this._startAutoplay();\n }\n }\n\n // ─── Slide Management ───\n\n private _syncSlides(): void {\n const slot = this.shadowRoot?.querySelector<HTMLSlotElement>('slot:not([name])');\n if (!slot) return;\n\n const items = slot\n .assignedElements({ flatten: true })\n .filter((el) => el.tagName.toLowerCase() === 'hx-carousel-item') as HelixCarouselItem[];\n\n this._slides = items;\n\n // Update aria labels on each item\n items.forEach((item, i) => {\n item.slideIndex = i;\n item.totalSlides = items.length;\n const slideWidth = `${100 / this.slidesPerPage}%`;\n (item as HTMLElement).style.setProperty('--_hx-carousel-slide-width', slideWidth);\n });\n\n // Clamp currentIndex if slides changed\n if (this._currentIndex >= items.length) {\n this._currentIndex = Math.max(0, items.length - 1);\n }\n }\n\n private _handleSlotChange(): void {\n this._syncSlides();\n }\n\n // ─── Navigation ───\n\n private get _maxIndex(): number {\n return Math.max(0, this._slides.length - this.slidesPerPage);\n }\n\n goTo(index: number): void {\n if (this._slides.length === 0) return;\n\n let next = index;\n if (this.loop) {\n next = ((index % this._slides.length) + this._slides.length) % this._slides.length;\n } else {\n next = Math.max(0, Math.min(index, this._maxIndex));\n }\n\n if (next === this._currentIndex) return;\n\n this._currentIndex = next;\n this._liveText = `Slide ${next + 1} of ${this._slides.length}`;\n this.dispatchEvent(\n new CustomEvent('hx-slide-change', {\n bubbles: true,\n composed: true,\n detail: { index: next, slide: this._slides[next] },\n }),\n );\n }\n\n next(): void {\n const nextIndex = this._currentIndex + this.slidesPerMove;\n if (!this.loop && nextIndex > this._maxIndex) {\n return;\n }\n this.goTo(nextIndex);\n }\n\n previous(): void {\n const prevIndex = this._currentIndex - this.slidesPerMove;\n if (!this.loop && prevIndex < 0) {\n return;\n }\n this.goTo(prevIndex);\n }\n\n // ─── Autoplay ───\n\n private _autoplayTick = (): void => {\n if (this.loop) {\n this.goTo(this._currentIndex + this.slidesPerMove);\n } else if (this._currentIndex < this._maxIndex) {\n this.goTo(this._currentIndex + this.slidesPerMove);\n } else {\n this.goTo(0);\n }\n };\n\n private _startAutoplay(): void {\n if (this._autoplayTimer !== null) return;\n this._isPlaying = true;\n this._autoplayTimer = setInterval(this._autoplayTick, this.autoplayInterval);\n }\n\n private _stopAutoplay(): void {\n if (this._autoplayTimer !== null) {\n clearInterval(this._autoplayTimer);\n this._autoplayTimer = null;\n }\n this._isPlaying = false;\n }\n\n private _toggleAutoplay(): void {\n if (this._isPlaying) {\n this._stopAutoplay();\n } else if (!this._reducedMotion) {\n this._startAutoplay();\n }\n }\n\n private _pauseAutoplay(): void {\n if (!this._isPlaying || this._autoplayTimer === null) return;\n clearInterval(this._autoplayTimer);\n this._autoplayTimer = null;\n }\n\n private _resumeAutoplay(): void {\n if (!this.autoplay || !this._isPlaying || this._reducedMotion) return;\n if (this._autoplayTimer !== null) return;\n this._autoplayTimer = setInterval(this._autoplayTick, this.autoplayInterval);\n }\n\n // ─── Event Handlers ───\n\n private _handleMotionChange = (e: MediaQueryListEvent): void => {\n this._reducedMotion = e.matches;\n if (this._reducedMotion) {\n this._stopAutoplay();\n } else if (this.autoplay && !this._isHovered && !this._isFocused) {\n this._startAutoplay();\n }\n };\n\n private _handleMouseEnter = (): void => {\n this._isHovered = true;\n this._pauseAutoplay();\n };\n\n private _handleMouseLeave = (): void => {\n this._isHovered = false;\n if (!this._isFocused) {\n this._resumeAutoplay();\n }\n };\n\n private _handleFocusIn = (): void => {\n this._isFocused = true;\n this._pauseAutoplay();\n };\n\n private _handleFocusOut = (): void => {\n this._isFocused = false;\n if (!this._isHovered) {\n this._resumeAutoplay();\n }\n };\n\n private _handleKeydown = (e: KeyboardEvent): void => {\n if (this.orientation === 'horizontal') {\n if (e.key === 'ArrowLeft') {\n e.preventDefault();\n this.previous();\n } else if (e.key === 'ArrowRight') {\n e.preventDefault();\n this.next();\n }\n } else {\n if (e.key === 'ArrowUp') {\n e.preventDefault();\n this.previous();\n } else if (e.key === 'ArrowDown') {\n e.preventDefault();\n this.next();\n }\n }\n\n if (e.key === 'Home') {\n e.preventDefault();\n this.goTo(0);\n } else if (e.key === 'End') {\n e.preventDefault();\n this.goTo(this._slides.length - 1);\n }\n };\n\n // ─── Drag Handlers ───\n\n private _handleDragStart(e: MouseEvent): void {\n if (!this.mouseDragging) return;\n this._isDragging = true;\n this._dragMoved = false;\n this._dragStartCoord = this.orientation === 'horizontal' ? e.clientX : e.clientY;\n (e.currentTarget as HTMLElement).style.cursor = 'grabbing';\n e.preventDefault();\n }\n\n private _handleDragMove(e: MouseEvent): void {\n if (!this._isDragging) return;\n const current = this.orientation === 'horizontal' ? e.clientX : e.clientY;\n const diff = current - this._dragStartCoord;\n if (Math.abs(diff) > 5) {\n this._dragMoved = true;\n }\n }\n\n private _handleDragEnd(e: MouseEvent): void {\n if (!this._isDragging) return;\n const current = this.orientation === 'horizontal' ? e.clientX : e.clientY;\n const diff = current - this._dragStartCoord;\n const threshold = 50;\n if (this._dragMoved) {\n if (diff > threshold) {\n this.previous();\n } else if (diff < -threshold) {\n this.next();\n }\n }\n this._isDragging = false;\n this._dragMoved = false;\n (e.currentTarget as HTMLElement).style.cursor = '';\n }\n\n // ─── Touch Handlers ───\n\n private _handleTouchStart(e: TouchEvent): void {\n if (!this.mouseDragging) return;\n const touch = e.touches[0];\n if (!touch) return;\n this._isDragging = true;\n this._touchMoved = false;\n this._touchStartCoord = this.orientation === 'horizontal' ? touch.clientX : touch.clientY;\n }\n\n private _handleTouchMove(e: TouchEvent): void {\n if (!this._isDragging) return;\n const touch = e.touches[0];\n if (!touch) return;\n const current = this.orientation === 'horizontal' ? touch.clientX : touch.clientY;\n const diff = current - this._touchStartCoord;\n if (Math.abs(diff) > 5) {\n this._touchMoved = true;\n }\n }\n\n private _handleTouchEnd(e: TouchEvent): void {\n if (!this._isDragging) return;\n const touch = e.changedTouches[0];\n if (!touch) return;\n const current = this.orientation === 'horizontal' ? touch.clientX : touch.clientY;\n const diff = current - this._touchStartCoord;\n const threshold = 50;\n if (this._touchMoved) {\n if (diff > threshold) {\n this.previous();\n } else if (diff < -threshold) {\n this.next();\n }\n }\n this._isDragging = false;\n this._touchMoved = false;\n }\n\n // ─── Computed ───\n\n private get _trackTransform(): string {\n const slideSize = 100 / this.slidesPerPage;\n const offset = this._currentIndex * slideSize;\n return this.orientation === 'horizontal'\n ? `translateX(-${offset}%)`\n : `translateY(-${offset}%)`;\n }\n\n private get _canGoPrev(): boolean {\n return this.loop || this._currentIndex > 0;\n }\n\n private get _canGoNext(): boolean {\n return this.loop || this._currentIndex < this._maxIndex;\n }\n\n // ─── Render Helpers ───\n\n private _renderNavigation() {\n return html`\n <div class=\"navigation\" part=\"navigation\">\n <slot name=\"previous-button\">\n <button\n class=\"nav-btn\"\n part=\"prev-btn\"\n type=\"button\"\n aria-label=\"Previous slide\"\n ?disabled=${!this._canGoPrev}\n @click=${() => this.previous()}\n >\n ${this._renderPrevIcon()}\n </button>\n </slot>\n ${this.autoplay\n ? html`\n <button\n class=\"play-pause-btn\"\n part=\"play-pause-btn\"\n type=\"button\"\n aria-label=${this._isPlaying ? 'Pause autoplay' : 'Play autoplay'}\n @click=${() => this._toggleAutoplay()}\n >\n ${this._isPlaying ? this._renderPauseIcon() : this._renderPlayIcon()}\n </button>\n `\n : nothing}\n <slot name=\"next-button\">\n <button\n class=\"nav-btn\"\n part=\"next-btn\"\n type=\"button\"\n aria-label=\"Next slide\"\n ?disabled=${!this._canGoNext}\n @click=${() => this.next()}\n >\n ${this._renderNextIcon()}\n </button>\n </slot>\n </div>\n `;\n }\n\n private _renderPagination() {\n const count = this._slides.length;\n if (count <= 1) return nothing;\n const dots = Array.from({ length: count }, (_, i) => i);\n return html`\n <div class=\"controls\">\n <div class=\"pagination\" part=\"pagination\">\n ${dots.map(\n (i) => html`\n <button\n class=${classMap({\n 'pagination-item': true,\n 'is-active': i === this._currentIndex,\n })}\n part=\"pagination-item\"\n type=\"button\"\n aria-label=\"Slide ${i + 1} of ${count}\"\n aria-current=${i === this._currentIndex ? 'true' : 'false'}\n @click=${() => this.goTo(i)}\n >\n <span class=\"pagination-dot\"></span>\n </button>\n `,\n )}\n </div>\n </div>\n `;\n }\n\n private _renderPrevIcon() {\n return this.orientation === 'horizontal' ? _svgChevronLeft : _svgChevronUp;\n }\n\n private _renderNextIcon() {\n return this.orientation === 'horizontal' ? _svgChevronRight : _svgChevronDown;\n }\n\n private _renderPlayIcon() {\n return _svgPlay;\n }\n\n private _renderPauseIcon() {\n return _svgPause;\n }\n\n // ─── Render ───\n\n override render() {\n return html`\n <div\n class=\"base\"\n part=\"base\"\n role=\"region\"\n aria-label=${this.label}\n aria-roledescription=\"carousel\"\n tabindex=\"0\"\n >\n <div class=\"live-region\" role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">\n ${this._liveText}\n </div>\n ${this._renderNavigation()}\n <div class=\"scroll-container-wrapper\">\n <div\n class=\"slide-viewport\"\n part=\"slide-viewport\"\n @mousedown=${this._handleDragStart}\n @mousemove=${this._handleDragMove}\n @mouseup=${this._handleDragEnd}\n @mouseleave=${this._handleDragEnd}\n @touchstart=${this._handleTouchStart}\n @touchmove=${this._handleTouchMove}\n @touchend=${this._handleTouchEnd}\n >\n <div class=\"track\" style=\"transform: ${this._trackTransform};\">\n <slot @slotchange=${this._handleSlotChange}></slot>\n </div>\n </div>\n </div>\n ${this._renderPagination()}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-carousel': HelixCarousel;\n }\n}\n","import { LitElement, html, css } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\n\n/**\n * A wrapper for individual carousel slides.\n *\n * @summary Individual slide wrapper for use inside hx-carousel.\n *\n * @tag hx-carousel-item\n *\n * @slot - Slide content.\n */\n@customElement('hx-carousel-item')\nexport class HelixCarouselItem extends LitElement {\n static override styles = [\n tokenStyles,\n css`\n :host {\n display: block;\n flex-shrink: 0;\n width: var(--_hx-carousel-slide-width, 100%);\n box-sizing: border-box;\n }\n\n .slide-group {\n height: 100%;\n outline: none;\n }\n\n .slide-group:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #2563eb);\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n `,\n ];\n\n /**\n * The 0-based index of this slide within the carousel. Set by hx-carousel.\n * @attr slide-index\n */\n @property({ type: Number, attribute: 'slide-index' })\n slideIndex = 0;\n\n /**\n * Total number of slides in the carousel. Set by hx-carousel.\n * @attr total-slides\n */\n @property({ type: Number, attribute: 'total-slides' })\n totalSlides = 0;\n\n override render() {\n const label = `Slide ${this.slideIndex + 1} of ${this.totalSlides}`;\n return html`\n <div class=\"slide-group\" role=\"group\" aria-label=${label} tabindex=\"-1\">\n <slot></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-carousel-item': HelixCarouselItem;\n }\n}\n"],"names":["helixCarouselStyles","css","_svgChevronLeft","html","_svgChevronUp","_svgChevronRight","_svgChevronDown","_svgPlay","_svgPause","HelixCarousel","LitElement","e","_a","slot","items","el","item","i","slideWidth","index","next","nextIndex","prevIndex","diff","threshold","touch","slideSize","offset","nothing","count","dots","_","classMap","tokenStyles","__decorateClass","property","state","customElement","HelixCarouselItem","label"],"mappings":"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"}
|
|
@@ -0,0 +1,423 @@
|
|
|
1
|
+
import { css as p, LitElement as k, nothing as x, html as d } from "lit";
|
|
2
|
+
import { property as c, query as v, state as _, customElement as u } from "lit/decorators.js";
|
|
3
|
+
import { classMap as m } from "lit/directives/class-map.js";
|
|
4
|
+
import { ifDefined as s } from "lit/directives/if-defined.js";
|
|
5
|
+
import { live as b } from "lit/directives/live.js";
|
|
6
|
+
import { t as f } from "./lit-Dpo7RLp4.js";
|
|
7
|
+
const g = p`
|
|
8
|
+
:host {
|
|
9
|
+
display: block;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
:host([disabled]) {
|
|
13
|
+
opacity: var(--hx-opacity-disabled, 0.5);
|
|
14
|
+
pointer-events: none;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
* {
|
|
18
|
+
box-sizing: border-box;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.checkbox {
|
|
22
|
+
display: flex;
|
|
23
|
+
flex-direction: column;
|
|
24
|
+
gap: var(--hx-space-1, 0.25rem);
|
|
25
|
+
font-family: var(--hx-font-family-sans, sans-serif);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* ─── Control (checkbox + label row) ─── */
|
|
29
|
+
|
|
30
|
+
.checkbox__control {
|
|
31
|
+
display: inline-flex;
|
|
32
|
+
align-items: flex-start;
|
|
33
|
+
gap: var(--hx-space-2, 0.5rem);
|
|
34
|
+
cursor: pointer;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
:host([disabled]) .checkbox__control {
|
|
38
|
+
cursor: not-allowed;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* ─── Hidden Native Input ─── */
|
|
42
|
+
|
|
43
|
+
.checkbox__input {
|
|
44
|
+
position: absolute;
|
|
45
|
+
width: 1px;
|
|
46
|
+
height: 1px;
|
|
47
|
+
padding: 0;
|
|
48
|
+
margin: -1px;
|
|
49
|
+
overflow: hidden;
|
|
50
|
+
clip-path: inset(50%);
|
|
51
|
+
white-space: nowrap;
|
|
52
|
+
border: 0;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/* ─── Visual Checkbox ─── */
|
|
56
|
+
|
|
57
|
+
.checkbox__box {
|
|
58
|
+
display: inline-flex;
|
|
59
|
+
align-items: center;
|
|
60
|
+
justify-content: center;
|
|
61
|
+
flex-shrink: 0;
|
|
62
|
+
width: var(--hx-checkbox-size, var(--hx-size-5, 1.25rem));
|
|
63
|
+
height: var(--hx-checkbox-size, var(--hx-size-5, 1.25rem));
|
|
64
|
+
border: var(--hx-border-width-medium, 2px) solid
|
|
65
|
+
var(--hx-checkbox-border-color, var(--hx-color-neutral-300, #ced4da));
|
|
66
|
+
border-radius: var(--hx-checkbox-border-radius, var(--hx-border-radius-sm, 0.25rem));
|
|
67
|
+
background-color: var(--hx-checkbox-bg, var(--hx-color-neutral-0, #ffffff));
|
|
68
|
+
transition:
|
|
69
|
+
background-color var(--hx-transition-fast, 150ms ease),
|
|
70
|
+
border-color var(--hx-transition-fast, 150ms ease),
|
|
71
|
+
box-shadow var(--hx-transition-fast, 150ms ease);
|
|
72
|
+
margin-top: var(--hx-space-px, 1px);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/* ─── Focus Ring ─── */
|
|
76
|
+
|
|
77
|
+
.checkbox__input:focus-visible ~ .checkbox__box {
|
|
78
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
79
|
+
var(--hx-checkbox-focus-ring-color, var(--hx-focus-ring-color, #2563eb));
|
|
80
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/* ─── Checked State ─── */
|
|
84
|
+
|
|
85
|
+
.checkbox--checked .checkbox__box {
|
|
86
|
+
background-color: var(--hx-checkbox-checked-bg, var(--hx-color-primary-500, #2563eb));
|
|
87
|
+
border-color: var(--hx-checkbox-checked-border-color, var(--hx-color-primary-500, #2563eb));
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/* ─── Indeterminate State ─── */
|
|
91
|
+
|
|
92
|
+
.checkbox--indeterminate .checkbox__box {
|
|
93
|
+
background-color: var(--hx-checkbox-checked-bg, var(--hx-color-primary-500, #2563eb));
|
|
94
|
+
border-color: var(--hx-checkbox-checked-border-color, var(--hx-color-primary-500, #2563eb));
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/* ─── Error State ─── */
|
|
98
|
+
|
|
99
|
+
.checkbox--error .checkbox__box {
|
|
100
|
+
border-color: var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc3545));
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.checkbox--error.checkbox--checked .checkbox__box,
|
|
104
|
+
.checkbox--error.checkbox--indeterminate .checkbox__box {
|
|
105
|
+
background-color: var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc3545));
|
|
106
|
+
border-color: var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc3545));
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/* ─── Hover ─── */
|
|
110
|
+
|
|
111
|
+
/* P1-03: use component token so consumer overrides of --hx-checkbox-border-color work on hover */
|
|
112
|
+
.checkbox__control:hover .checkbox__box {
|
|
113
|
+
border-color: var(
|
|
114
|
+
--hx-checkbox-hover-border-color,
|
|
115
|
+
var(--hx-checkbox-border-color, var(--hx-color-primary-500, #2563eb))
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.checkbox--checked .checkbox__control:hover .checkbox__box {
|
|
120
|
+
filter: brightness(var(--hx-filter-brightness-hover, 0.9));
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.checkbox--error .checkbox__control:hover .checkbox__box {
|
|
124
|
+
border-color: var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc3545));
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/* ─── Checkmark Icon ─── */
|
|
128
|
+
|
|
129
|
+
.checkbox__icon {
|
|
130
|
+
display: none;
|
|
131
|
+
width: calc(var(--hx-checkbox-size, var(--hx-size-5, 1.25rem)) * 0.65);
|
|
132
|
+
height: calc(var(--hx-checkbox-size, var(--hx-size-5, 1.25rem)) * 0.65);
|
|
133
|
+
fill: none;
|
|
134
|
+
stroke: var(--hx-checkbox-checkmark-color, var(--hx-color-neutral-0, #ffffff));
|
|
135
|
+
stroke-width: 2.5;
|
|
136
|
+
stroke-linecap: round;
|
|
137
|
+
stroke-linejoin: round;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.checkbox--checked .checkbox__icon--check {
|
|
141
|
+
display: block;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.checkbox--indeterminate .checkbox__icon--indeterminate {
|
|
145
|
+
display: block;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/* ─── Label ─── */
|
|
149
|
+
|
|
150
|
+
.checkbox__label {
|
|
151
|
+
font-size: var(--hx-font-size-sm, 0.875rem);
|
|
152
|
+
font-weight: var(--hx-font-weight-medium, 500);
|
|
153
|
+
color: var(--hx-checkbox-label-color, var(--hx-color-neutral-700, #343a40));
|
|
154
|
+
line-height: var(--hx-line-height-normal, 1.5);
|
|
155
|
+
user-select: none;
|
|
156
|
+
-webkit-user-select: none;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.checkbox__required-marker {
|
|
160
|
+
color: var(--hx-checkbox-error-color, var(--hx-color-error-text, #b91c1c));
|
|
161
|
+
font-weight: var(--hx-font-weight-bold, 700);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/* ─── Help Text & Error Messages ─── */
|
|
165
|
+
|
|
166
|
+
.checkbox__help-text {
|
|
167
|
+
font-size: var(--hx-font-size-xs, 0.75rem);
|
|
168
|
+
color: var(--hx-checkbox-help-text-color, var(--hx-color-neutral-500, #6c757d));
|
|
169
|
+
line-height: var(--hx-line-height-normal, 1.5);
|
|
170
|
+
padding-left: calc(
|
|
171
|
+
var(--hx-checkbox-size, var(--hx-size-5, 1.25rem)) + var(--hx-space-2, 0.5rem)
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.checkbox__error {
|
|
176
|
+
font-size: var(--hx-font-size-xs, 0.75rem);
|
|
177
|
+
color: var(--hx-checkbox-error-color, var(--hx-color-error-text, #b91c1c));
|
|
178
|
+
line-height: var(--hx-line-height-normal, 1.5);
|
|
179
|
+
padding-left: calc(
|
|
180
|
+
var(--hx-checkbox-size, var(--hx-size-5, 1.25rem)) + var(--hx-space-2, 0.5rem)
|
|
181
|
+
);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/* ─── Size Variants ─── */
|
|
185
|
+
|
|
186
|
+
:host([hx-size='sm']) {
|
|
187
|
+
--hx-checkbox-size: var(--hx-size-4, 1rem);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
:host([hx-size='sm']) .checkbox__label {
|
|
191
|
+
font-size: var(--hx-font-size-xs, 0.75rem);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
:host([hx-size='sm']) .checkbox__help-text,
|
|
195
|
+
:host([hx-size='sm']) .checkbox__error {
|
|
196
|
+
font-size: var(--hx-font-size-xs, 0.75rem);
|
|
197
|
+
padding-left: calc(var(--hx-size-4, 1rem) + var(--hx-space-2, 0.5rem));
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
:host([hx-size='lg']) {
|
|
201
|
+
--hx-checkbox-size: var(--hx-size-6, 1.5rem);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
:host([hx-size='lg']) .checkbox__label {
|
|
205
|
+
font-size: var(--hx-font-size-base, 1rem);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
:host([hx-size='lg']) .checkbox__help-text,
|
|
209
|
+
:host([hx-size='lg']) .checkbox__error {
|
|
210
|
+
font-size: var(--hx-font-size-sm, 0.875rem);
|
|
211
|
+
padding-left: calc(var(--hx-size-6, 1.5rem) + var(--hx-space-2, 0.5rem));
|
|
212
|
+
}
|
|
213
|
+
`;
|
|
214
|
+
var y = Object.defineProperty, z = Object.getOwnPropertyDescriptor, t = (e, o, h, a) => {
|
|
215
|
+
for (var i = a > 1 ? void 0 : a ? z(o, h) : o, l = e.length - 1, n; l >= 0; l--)
|
|
216
|
+
(n = e[l]) && (i = (a ? n(o, h, i) : n(i)) || i);
|
|
217
|
+
return a && i && y(o, h, i), i;
|
|
218
|
+
};
|
|
219
|
+
let w = 0, r = class extends k {
|
|
220
|
+
constructor() {
|
|
221
|
+
super(), this.checked = !1, this.indeterminate = !1, this.disabled = !1, this.required = !1, this.name = "", this.value = "on", this.label = "", this.error = "", this.helpText = "", this.size = "md", this._hasErrorSlot = !1, this._id = `hx-checkbox-${++w}`, this._helpTextId = `${this._id}-help`, this._errorId = `${this._id}-error`, this._labelId = `${this._id}-label`, this._internals = this.attachInternals();
|
|
222
|
+
}
|
|
223
|
+
// P0-02: observe aria-label on host to forward to inner input
|
|
224
|
+
static get observedAttributes() {
|
|
225
|
+
return [...super.observedAttributes ?? [], "aria-label"];
|
|
226
|
+
}
|
|
227
|
+
attributeChangedCallback(e, o, h) {
|
|
228
|
+
super.attributeChangedCallback(e, o, h), e === "aria-label" && this.requestUpdate();
|
|
229
|
+
}
|
|
230
|
+
// ─── Slot Handlers ───
|
|
231
|
+
_handleErrorSlotChange(e) {
|
|
232
|
+
const o = e.target;
|
|
233
|
+
this._hasErrorSlot = o.assignedNodes({ flatten: !0 }).length > 0;
|
|
234
|
+
}
|
|
235
|
+
// ─── Lifecycle ───
|
|
236
|
+
updated(e) {
|
|
237
|
+
super.updated(e), (e.has("checked") || e.has("value")) && (this._internals.setFormValue(this.checked ? this.value : null), this._updateValidity()), e.has("required") && this._updateValidity();
|
|
238
|
+
}
|
|
239
|
+
// ─── Form Integration ───
|
|
240
|
+
/** Returns the associated form element, if any. */
|
|
241
|
+
get form() {
|
|
242
|
+
return this._internals.form;
|
|
243
|
+
}
|
|
244
|
+
/** Returns the validation message. */
|
|
245
|
+
get validationMessage() {
|
|
246
|
+
return this._internals.validationMessage;
|
|
247
|
+
}
|
|
248
|
+
/** Returns the ValidityState object. */
|
|
249
|
+
get validity() {
|
|
250
|
+
return this._internals.validity;
|
|
251
|
+
}
|
|
252
|
+
/** Checks whether the checkbox satisfies its constraints. */
|
|
253
|
+
checkValidity() {
|
|
254
|
+
return this._internals.checkValidity();
|
|
255
|
+
}
|
|
256
|
+
/** Reports validity and shows the browser's constraint validation UI. */
|
|
257
|
+
reportValidity() {
|
|
258
|
+
return this._internals.reportValidity();
|
|
259
|
+
}
|
|
260
|
+
_updateValidity() {
|
|
261
|
+
this.required && !this.checked ? this._internals.setValidity(
|
|
262
|
+
{ valueMissing: !0 },
|
|
263
|
+
this.error || "This field is required.",
|
|
264
|
+
this._inputEl ?? void 0
|
|
265
|
+
) : this._internals.setValidity({});
|
|
266
|
+
}
|
|
267
|
+
/** Called by the form when it resets. */
|
|
268
|
+
formResetCallback() {
|
|
269
|
+
this.checked = !1, this.indeterminate = !1, this._internals.setFormValue(null);
|
|
270
|
+
}
|
|
271
|
+
/** Called when the form restores state (e.g., back/forward navigation). */
|
|
272
|
+
formStateRestoreCallback(e, o) {
|
|
273
|
+
this.checked = typeof e == "string" && e === this.value;
|
|
274
|
+
}
|
|
275
|
+
// ─── Event Handling ───
|
|
276
|
+
_handleChange() {
|
|
277
|
+
this.disabled || (this.indeterminate = !1, this.checked = !this.checked, this._internals.setFormValue(this.checked ? this.value : null), this._updateValidity(), this.dispatchEvent(
|
|
278
|
+
new CustomEvent("hx-change", {
|
|
279
|
+
bubbles: !0,
|
|
280
|
+
composed: !0,
|
|
281
|
+
detail: { checked: this.checked, value: this.value }
|
|
282
|
+
})
|
|
283
|
+
));
|
|
284
|
+
}
|
|
285
|
+
_handleKeyDown(e) {
|
|
286
|
+
e.key === " " && (e.preventDefault(), e.stopPropagation(), this._handleChange());
|
|
287
|
+
}
|
|
288
|
+
// ─── Public Methods ───
|
|
289
|
+
/** Moves focus to the checkbox input element. */
|
|
290
|
+
focus(e) {
|
|
291
|
+
var o;
|
|
292
|
+
(o = this._inputEl) == null || o.focus(e);
|
|
293
|
+
}
|
|
294
|
+
render() {
|
|
295
|
+
const e = !!this.error || this._hasErrorSlot, o = {
|
|
296
|
+
checkbox: !0,
|
|
297
|
+
"checkbox--checked": this.checked,
|
|
298
|
+
"checkbox--indeterminate": this.indeterminate,
|
|
299
|
+
"checkbox--error": e,
|
|
300
|
+
"checkbox--disabled": this.disabled,
|
|
301
|
+
"checkbox--required": this.required,
|
|
302
|
+
"checkbox--sm": this.size === "sm",
|
|
303
|
+
"checkbox--md": this.size === "md",
|
|
304
|
+
"checkbox--lg": this.size === "lg"
|
|
305
|
+
}, h = [e ? this._errorId : null, this.helpText && !e ? this._helpTextId : null].filter(Boolean).join(" ") || void 0, a = this.getAttribute("aria-label") ?? void 0;
|
|
306
|
+
return d`
|
|
307
|
+
<div class=${m(o)}>
|
|
308
|
+
<label part="control" class="checkbox__control" @click=${this._handleChange}>
|
|
309
|
+
<input
|
|
310
|
+
class="checkbox__input"
|
|
311
|
+
type="checkbox"
|
|
312
|
+
id=${this._id}
|
|
313
|
+
.checked=${b(this.checked)}
|
|
314
|
+
.indeterminate=${b(this.indeterminate)}
|
|
315
|
+
?disabled=${this.disabled}
|
|
316
|
+
?required=${this.required}
|
|
317
|
+
name=${s(this.name || void 0)}
|
|
318
|
+
.value=${this.value}
|
|
319
|
+
aria-invalid=${e ? "true" : x}
|
|
320
|
+
aria-describedby=${s(h)}
|
|
321
|
+
aria-label=${s(a)}
|
|
322
|
+
aria-labelledby=${s(a ? void 0 : this._labelId)}
|
|
323
|
+
@keydown=${this._handleKeyDown}
|
|
324
|
+
@click=${(i) => {
|
|
325
|
+
i.preventDefault(), i.stopPropagation();
|
|
326
|
+
}}
|
|
327
|
+
@change=${(i) => i.stopPropagation()}
|
|
328
|
+
/>
|
|
329
|
+
|
|
330
|
+
<span part="checkbox" class="checkbox__box">
|
|
331
|
+
<svg
|
|
332
|
+
part="checkmark"
|
|
333
|
+
class="checkbox__icon checkbox__icon--check"
|
|
334
|
+
viewBox="0 0 16 16"
|
|
335
|
+
aria-hidden="true"
|
|
336
|
+
>
|
|
337
|
+
<polyline points="3.5 8 6.5 11 12.5 5"></polyline>
|
|
338
|
+
</svg>
|
|
339
|
+
<svg
|
|
340
|
+
class="checkbox__icon checkbox__icon--indeterminate"
|
|
341
|
+
viewBox="0 0 16 16"
|
|
342
|
+
aria-hidden="true"
|
|
343
|
+
>
|
|
344
|
+
<line x1="4" y1="8" x2="12" y2="8"></line>
|
|
345
|
+
</svg>
|
|
346
|
+
</span>
|
|
347
|
+
|
|
348
|
+
<span part="label" class="checkbox__label" id=${this._labelId}>
|
|
349
|
+
<slot>${this.label}</slot>
|
|
350
|
+
${this.required ? d`<span class="checkbox__required-marker" aria-hidden="true">*</span>` : x}
|
|
351
|
+
</span>
|
|
352
|
+
</label>
|
|
353
|
+
|
|
354
|
+
<!--
|
|
355
|
+
P0-01: wrapper div always owns _errorId so aria-describedby works regardless
|
|
356
|
+
of whether error content comes from the .error property or the named slot.
|
|
357
|
+
P1-02: role="status" (implicit aria-live="polite") replaces role="alert" +
|
|
358
|
+
aria-live="polite" which was semantically contradictory.
|
|
359
|
+
-->
|
|
360
|
+
<div
|
|
361
|
+
part="error"
|
|
362
|
+
class="checkbox__error"
|
|
363
|
+
id=${this._errorId}
|
|
364
|
+
role="status"
|
|
365
|
+
?hidden=${!e}
|
|
366
|
+
>
|
|
367
|
+
<slot name="error" @slotchange=${this._handleErrorSlotChange}> ${this.error} </slot>
|
|
368
|
+
</div>
|
|
369
|
+
|
|
370
|
+
${this.helpText && !e ? d`
|
|
371
|
+
<div part="help-text" class="checkbox__help-text" id=${this._helpTextId}>
|
|
372
|
+
<slot name="help-text">${this.helpText}</slot>
|
|
373
|
+
</div>
|
|
374
|
+
` : x}
|
|
375
|
+
</div>
|
|
376
|
+
`;
|
|
377
|
+
}
|
|
378
|
+
};
|
|
379
|
+
r.styles = [f, g];
|
|
380
|
+
r.formAssociated = !0;
|
|
381
|
+
t([
|
|
382
|
+
c({ type: Boolean, reflect: !0 })
|
|
383
|
+
], r.prototype, "checked", 2);
|
|
384
|
+
t([
|
|
385
|
+
c({ type: Boolean, reflect: !0 })
|
|
386
|
+
], r.prototype, "indeterminate", 2);
|
|
387
|
+
t([
|
|
388
|
+
c({ type: Boolean, reflect: !0 })
|
|
389
|
+
], r.prototype, "disabled", 2);
|
|
390
|
+
t([
|
|
391
|
+
c({ type: Boolean, reflect: !0 })
|
|
392
|
+
], r.prototype, "required", 2);
|
|
393
|
+
t([
|
|
394
|
+
c({ type: String })
|
|
395
|
+
], r.prototype, "name", 2);
|
|
396
|
+
t([
|
|
397
|
+
c({ type: String })
|
|
398
|
+
], r.prototype, "value", 2);
|
|
399
|
+
t([
|
|
400
|
+
c({ type: String })
|
|
401
|
+
], r.prototype, "label", 2);
|
|
402
|
+
t([
|
|
403
|
+
c({ type: String })
|
|
404
|
+
], r.prototype, "error", 2);
|
|
405
|
+
t([
|
|
406
|
+
c({ type: String, attribute: "help-text" })
|
|
407
|
+
], r.prototype, "helpText", 2);
|
|
408
|
+
t([
|
|
409
|
+
c({ type: String, attribute: "hx-size", reflect: !0 })
|
|
410
|
+
], r.prototype, "size", 2);
|
|
411
|
+
t([
|
|
412
|
+
v(".checkbox__input")
|
|
413
|
+
], r.prototype, "_inputEl", 2);
|
|
414
|
+
t([
|
|
415
|
+
_()
|
|
416
|
+
], r.prototype, "_hasErrorSlot", 2);
|
|
417
|
+
r = t([
|
|
418
|
+
u("hx-checkbox")
|
|
419
|
+
], r);
|
|
420
|
+
export {
|
|
421
|
+
r as H
|
|
422
|
+
};
|
|
423
|
+
//# sourceMappingURL=hx-checkbox-CV5c6AE8.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hx-checkbox-CV5c6AE8.js","sources":["../../src/components/hx-checkbox/hx-checkbox.styles.ts","../../src/components/hx-checkbox/hx-checkbox.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixCheckboxStyles = css`\n :host {\n display: block;\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 .checkbox {\n display: flex;\n flex-direction: column;\n gap: var(--hx-space-1, 0.25rem);\n font-family: var(--hx-font-family-sans, sans-serif);\n }\n\n /* ─── Control (checkbox + label row) ─── */\n\n .checkbox__control {\n display: inline-flex;\n align-items: flex-start;\n gap: var(--hx-space-2, 0.5rem);\n cursor: pointer;\n }\n\n :host([disabled]) .checkbox__control {\n cursor: not-allowed;\n }\n\n /* ─── Hidden Native Input ─── */\n\n .checkbox__input {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n }\n\n /* ─── Visual Checkbox ─── */\n\n .checkbox__box {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--hx-checkbox-size, var(--hx-size-5, 1.25rem));\n height: var(--hx-checkbox-size, var(--hx-size-5, 1.25rem));\n border: var(--hx-border-width-medium, 2px) solid\n var(--hx-checkbox-border-color, var(--hx-color-neutral-300, #ced4da));\n border-radius: var(--hx-checkbox-border-radius, var(--hx-border-radius-sm, 0.25rem));\n background-color: var(--hx-checkbox-bg, var(--hx-color-neutral-0, #ffffff));\n transition:\n background-color var(--hx-transition-fast, 150ms ease),\n border-color var(--hx-transition-fast, 150ms ease),\n box-shadow var(--hx-transition-fast, 150ms ease);\n margin-top: var(--hx-space-px, 1px);\n }\n\n /* ─── Focus Ring ─── */\n\n .checkbox__input:focus-visible ~ .checkbox__box {\n outline: var(--hx-focus-ring-width, 2px) solid\n var(--hx-checkbox-focus-ring-color, var(--hx-focus-ring-color, #2563eb));\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n /* ─── Checked State ─── */\n\n .checkbox--checked .checkbox__box {\n background-color: var(--hx-checkbox-checked-bg, var(--hx-color-primary-500, #2563eb));\n border-color: var(--hx-checkbox-checked-border-color, var(--hx-color-primary-500, #2563eb));\n }\n\n /* ─── Indeterminate State ─── */\n\n .checkbox--indeterminate .checkbox__box {\n background-color: var(--hx-checkbox-checked-bg, var(--hx-color-primary-500, #2563eb));\n border-color: var(--hx-checkbox-checked-border-color, var(--hx-color-primary-500, #2563eb));\n }\n\n /* ─── Error State ─── */\n\n .checkbox--error .checkbox__box {\n border-color: var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc3545));\n }\n\n .checkbox--error.checkbox--checked .checkbox__box,\n .checkbox--error.checkbox--indeterminate .checkbox__box {\n background-color: var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc3545));\n border-color: var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc3545));\n }\n\n /* ─── Hover ─── */\n\n /* P1-03: use component token so consumer overrides of --hx-checkbox-border-color work on hover */\n .checkbox__control:hover .checkbox__box {\n border-color: var(\n --hx-checkbox-hover-border-color,\n var(--hx-checkbox-border-color, var(--hx-color-primary-500, #2563eb))\n );\n }\n\n .checkbox--checked .checkbox__control:hover .checkbox__box {\n filter: brightness(var(--hx-filter-brightness-hover, 0.9));\n }\n\n .checkbox--error .checkbox__control:hover .checkbox__box {\n border-color: var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc3545));\n }\n\n /* ─── Checkmark Icon ─── */\n\n .checkbox__icon {\n display: none;\n width: calc(var(--hx-checkbox-size, var(--hx-size-5, 1.25rem)) * 0.65);\n height: calc(var(--hx-checkbox-size, var(--hx-size-5, 1.25rem)) * 0.65);\n fill: none;\n stroke: var(--hx-checkbox-checkmark-color, var(--hx-color-neutral-0, #ffffff));\n stroke-width: 2.5;\n stroke-linecap: round;\n stroke-linejoin: round;\n }\n\n .checkbox--checked .checkbox__icon--check {\n display: block;\n }\n\n .checkbox--indeterminate .checkbox__icon--indeterminate {\n display: block;\n }\n\n /* ─── Label ─── */\n\n .checkbox__label {\n font-size: var(--hx-font-size-sm, 0.875rem);\n font-weight: var(--hx-font-weight-medium, 500);\n color: var(--hx-checkbox-label-color, var(--hx-color-neutral-700, #343a40));\n line-height: var(--hx-line-height-normal, 1.5);\n user-select: none;\n -webkit-user-select: none;\n }\n\n .checkbox__required-marker {\n color: var(--hx-checkbox-error-color, var(--hx-color-error-text, #b91c1c));\n font-weight: var(--hx-font-weight-bold, 700);\n }\n\n /* ─── Help Text & Error Messages ─── */\n\n .checkbox__help-text {\n font-size: var(--hx-font-size-xs, 0.75rem);\n color: var(--hx-checkbox-help-text-color, var(--hx-color-neutral-500, #6c757d));\n line-height: var(--hx-line-height-normal, 1.5);\n padding-left: calc(\n var(--hx-checkbox-size, var(--hx-size-5, 1.25rem)) + var(--hx-space-2, 0.5rem)\n );\n }\n\n .checkbox__error {\n font-size: var(--hx-font-size-xs, 0.75rem);\n color: var(--hx-checkbox-error-color, var(--hx-color-error-text, #b91c1c));\n line-height: var(--hx-line-height-normal, 1.5);\n padding-left: calc(\n var(--hx-checkbox-size, var(--hx-size-5, 1.25rem)) + var(--hx-space-2, 0.5rem)\n );\n }\n\n /* ─── Size Variants ─── */\n\n :host([hx-size='sm']) {\n --hx-checkbox-size: var(--hx-size-4, 1rem);\n }\n\n :host([hx-size='sm']) .checkbox__label {\n font-size: var(--hx-font-size-xs, 0.75rem);\n }\n\n :host([hx-size='sm']) .checkbox__help-text,\n :host([hx-size='sm']) .checkbox__error {\n font-size: var(--hx-font-size-xs, 0.75rem);\n padding-left: calc(var(--hx-size-4, 1rem) + var(--hx-space-2, 0.5rem));\n }\n\n :host([hx-size='lg']) {\n --hx-checkbox-size: var(--hx-size-6, 1.5rem);\n }\n\n :host([hx-size='lg']) .checkbox__label {\n font-size: var(--hx-font-size-base, 1rem);\n }\n\n :host([hx-size='lg']) .checkbox__help-text,\n :host([hx-size='lg']) .checkbox__error {\n font-size: var(--hx-font-size-sm, 0.875rem);\n padding-left: calc(var(--hx-size-6, 1.5rem) + var(--hx-space-2, 0.5rem));\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 { tokenStyles } from '@helixui/tokens/lit';\nimport { helixCheckboxStyles } from './hx-checkbox.styles.js';\n\n// P2-05: monotonic counter — collision-free, deterministic, SSR-safe\nlet _checkboxCounter = 0;\n\n/**\n * A checkbox component with label, validation, and form association.\n *\n * @summary Form-associated checkbox with built-in label, error, and help text.\n *\n * @tag hx-checkbox\n *\n * @slot - Custom label content (overrides the label property). Rich HTML allowed — Drupal can include links in consent labels.\n * @slot error - Custom error content (overrides the error property).\n * @slot help-text - Custom help text content (overrides the helpText property).\n *\n * @fires {CustomEvent<{checked: boolean, value: string}>} hx-change - Dispatched when the checkbox is toggled.\n *\n * @csspart checkbox - The visual checkbox element.\n * @csspart checkmark - The SVG checkmark icon inside the checkbox.\n * @csspart label - The label element.\n * @csspart help-text - The help text container.\n * @csspart error - The error message container.\n * @csspart control - The wrapper around checkbox and label.\n *\n * @cssprop [--hx-checkbox-size=var(--hx-size-5, 1.25rem)] - Checkbox dimensions.\n * @cssprop [--hx-checkbox-bg=var(--hx-color-neutral-0, #ffffff)] - Unchecked background color.\n * @cssprop [--hx-checkbox-border-color=var(--hx-color-neutral-300, #ced4da)] - Checkbox border color.\n * @cssprop [--hx-checkbox-border-radius=var(--hx-border-radius-sm, 0.25rem)] - Checkbox border radius.\n * @cssprop [--hx-checkbox-checked-bg=var(--hx-color-primary-500, #2563EB)] - Checked background color.\n * @cssprop [--hx-checkbox-checked-border-color=var(--hx-color-primary-500, #2563EB)] - Checked border color.\n * @cssprop [--hx-checkbox-checkmark-color=var(--hx-color-neutral-0, #ffffff)] - Checkmark color.\n * @cssprop [--hx-checkbox-focus-ring-color=var(--hx-focus-ring-color, #2563EB)] - Focus ring color.\n * @cssprop [--hx-checkbox-label-color=var(--hx-color-neutral-700, #343a40)] - Label text color.\n * @cssprop [--hx-checkbox-help-text-color=var(--hx-color-neutral-500, #6c757d)] - Help text color.\n * @cssprop [--hx-checkbox-error-color=var(--hx-color-error-500, #dc3545)] - Error state color.\n */\n@customElement('hx-checkbox')\nexport class HelixCheckbox extends LitElement {\n static override styles = [tokenStyles, helixCheckboxStyles];\n\n // P0-02: observe aria-label on host to forward to inner input\n static override get observedAttributes(): string[] {\n return [...(super.observedAttributes ?? []), 'aria-label'];\n }\n\n override attributeChangedCallback(name: string, old: string | null, next: string | null): void {\n super.attributeChangedCallback(name, old, next);\n if (name === 'aria-label') this.requestUpdate();\n }\n\n // ─── Form Association ───\n\n static formAssociated = true;\n\n private _internals: ElementInternals;\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n // ─── Properties ───\n\n /**\n * Whether the checkbox is checked.\n * @attr checked\n */\n @property({ type: Boolean, reflect: true })\n checked = false;\n\n /**\n * Whether the checkbox is in an indeterminate state (e.g., for \"select all\" patterns).\n * @attr indeterminate\n */\n @property({ type: Boolean, reflect: true })\n indeterminate = false;\n\n /**\n * Whether the checkbox is disabled.\n * @attr disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Whether the checkbox is required for form submission.\n * @attr required\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * The name of the checkbox, used for form submission.\n * @attr name\n */\n @property({ type: String })\n name = '';\n\n /**\n * The value submitted when the checkbox is checked.\n * @attr value\n */\n @property({ type: String })\n value = 'on';\n\n /**\n * The visible label text for the checkbox.\n * @attr label\n */\n @property({ type: String })\n label = '';\n\n /**\n * Error message to display. When set, the checkbox enters an error state.\n * @attr error\n */\n @property({ type: String })\n error = '';\n\n /**\n * Help text displayed below the checkbox for guidance.\n * @attr help-text\n */\n @property({ type: String, attribute: 'help-text' })\n helpText = '';\n\n /**\n * The size of the checkbox.\n * @attr hx-size\n */\n @property({ type: String, attribute: 'hx-size', reflect: true })\n size: 'sm' | 'md' | 'lg' = 'md';\n\n @query('.checkbox__input')\n private _inputEl!: HTMLInputElement;\n\n @state() private _hasErrorSlot = false;\n\n // ─── Slot Handlers ───\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 // ─── Lifecycle ───\n\n override updated(changedProperties: Map<string, unknown>): void {\n super.updated(changedProperties);\n if (changedProperties.has('checked') || changedProperties.has('value')) {\n this._internals.setFormValue(this.checked ? this.value : null);\n this._updateValidity();\n }\n if (changedProperties.has('required')) {\n this._updateValidity();\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 checkbox 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.checked) {\n this._internals.setValidity(\n { valueMissing: true },\n this.error || 'This field is required.',\n this._inputEl ?? undefined,\n );\n } else {\n this._internals.setValidity({});\n }\n }\n\n /** Called by the form when it resets. */\n formResetCallback(): void {\n this.checked = false;\n this.indeterminate = false;\n this._internals.setFormValue(null);\n }\n\n /** Called when the form restores state (e.g., back/forward navigation). */\n formStateRestoreCallback(state: string | File | FormData | null, _reason: string): void {\n this.checked = typeof state === 'string' && state === this.value;\n }\n\n // ─── Event Handling ───\n\n private _handleChange(): void {\n if (this.disabled) return;\n\n this.indeterminate = false;\n this.checked = !this.checked;\n\n this._internals.setFormValue(this.checked ? this.value : null);\n this._updateValidity();\n\n /**\n * Dispatched when the checkbox is toggled.\n * @event hx-change\n */\n this.dispatchEvent(\n new CustomEvent('hx-change', {\n bubbles: true,\n composed: true,\n detail: { checked: this.checked, value: this.value },\n }),\n );\n }\n\n private _handleKeyDown(e: KeyboardEvent): void {\n if (e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n this._handleChange();\n }\n }\n\n // ─── Public Methods ───\n\n /** Moves focus to the checkbox input element. */\n override focus(options?: FocusOptions): void {\n this._inputEl?.focus(options);\n }\n\n // ─── Render ───\n\n // P2-05: monotonic counter — collision-free and deterministic\n private _id = `hx-checkbox-${++_checkboxCounter}`;\n private _helpTextId = `${this._id}-help`;\n private _errorId = `${this._id}-error`;\n private _labelId = `${this._id}-label`;\n\n override render() {\n const hasError = !!this.error || this._hasErrorSlot;\n\n const containerClasses = {\n checkbox: true,\n 'checkbox--checked': this.checked,\n 'checkbox--indeterminate': this.indeterminate,\n 'checkbox--error': hasError,\n 'checkbox--disabled': this.disabled,\n 'checkbox--required': this.required,\n 'checkbox--sm': this.size === 'sm',\n 'checkbox--md': this.size === 'md',\n 'checkbox--lg': this.size === 'lg',\n };\n\n // P2-06: simplified — hasError already includes _hasErrorSlot\n const describedBy =\n [hasError ? this._errorId : null, this.helpText && !hasError ? this._helpTextId : null]\n .filter(Boolean)\n .join(' ') || undefined;\n\n // P0-02: forward aria-label from host to inner input\n const hostAriaLabel = this.getAttribute('aria-label') ?? undefined;\n\n return html`\n <div class=${classMap(containerClasses)}>\n <label part=\"control\" class=\"checkbox__control\" @click=${this._handleChange}>\n <input\n class=\"checkbox__input\"\n type=\"checkbox\"\n id=${this._id}\n .checked=${live(this.checked)}\n .indeterminate=${live(this.indeterminate)}\n ?disabled=${this.disabled}\n ?required=${this.required}\n name=${ifDefined(this.name || undefined)}\n .value=${this.value}\n aria-invalid=${hasError ? 'true' : nothing}\n aria-describedby=${ifDefined(describedBy)}\n aria-label=${ifDefined(hostAriaLabel)}\n aria-labelledby=${ifDefined(!hostAriaLabel ? this._labelId : undefined)}\n @keydown=${this._handleKeyDown}\n @click=${(e: Event) => {\n e.preventDefault();\n e.stopPropagation();\n }}\n @change=${(e: Event) => e.stopPropagation()}\n />\n\n <span part=\"checkbox\" class=\"checkbox__box\">\n <svg\n part=\"checkmark\"\n class=\"checkbox__icon checkbox__icon--check\"\n viewBox=\"0 0 16 16\"\n aria-hidden=\"true\"\n >\n <polyline points=\"3.5 8 6.5 11 12.5 5\"></polyline>\n </svg>\n <svg\n class=\"checkbox__icon checkbox__icon--indeterminate\"\n viewBox=\"0 0 16 16\"\n aria-hidden=\"true\"\n >\n <line x1=\"4\" y1=\"8\" x2=\"12\" y2=\"8\"></line>\n </svg>\n </span>\n\n <span part=\"label\" class=\"checkbox__label\" id=${this._labelId}>\n <slot>${this.label}</slot>\n ${this.required\n ? html`<span class=\"checkbox__required-marker\" aria-hidden=\"true\">*</span>`\n : nothing}\n </span>\n </label>\n\n <!--\n P0-01: wrapper div always owns _errorId so aria-describedby works regardless\n of whether error content comes from the .error property or the named slot.\n P1-02: role=\"status\" (implicit aria-live=\"polite\") replaces role=\"alert\" +\n aria-live=\"polite\" which was semantically contradictory.\n -->\n <div\n part=\"error\"\n class=\"checkbox__error\"\n id=${this._errorId}\n role=\"status\"\n ?hidden=${!hasError}\n >\n <slot name=\"error\" @slotchange=${this._handleErrorSlotChange}> ${this.error} </slot>\n </div>\n\n ${this.helpText && !hasError\n ? html`\n <div part=\"help-text\" class=\"checkbox__help-text\" id=${this._helpTextId}>\n <slot name=\"help-text\">${this.helpText}</slot>\n </div>\n `\n : nothing}\n </div>\n `;\n }\n}\n\n/** @deprecated Use HelixCheckbox instead. */\nexport type WcCheckbox = HelixCheckbox;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-checkbox': HelixCheckbox;\n }\n}\n"],"names":["helixCheckboxStyles","css","_checkboxCounter","HelixCheckbox","LitElement","name","old","next","slot","changedProperties","state","_reason","options","_a","hasError","containerClasses","describedBy","hostAriaLabel","html","classMap","live","ifDefined","nothing","e","tokenStyles","__decorateClass","property","query","customElement"],"mappings":"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"}
|