@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-form-BJeLK34m.js","sources":["../../src/styles/form/form.scoped.css?raw","../../src/components/hx-form/hx-form.styles.ts","../../src/components/hx-form/hx-form.ts"],"sourcesContent":["export default \"/* ==========================================================================\\n * form.scoped.css — Scoped barrel file\\n *\\n * Contains all form styles with every selector prefixed by `hx-form` to\\n * prevent leaking outside the <hx-form> Light DOM wrapper.\\n *\\n * IMPORTANT: This file does NOT use @import because CSS imports cannot\\n * add scope prefixes. All styles are written inline.\\n * ==========================================================================\\n */\\n\\n/* ==========================================================================\\n * HOST / FORM ROOT TOKENS\\n * ========================================================================== */\\n\\nhx-form {\\n display: flex;\\n flex-direction: column;\\n gap: var(--hx-form-gap, var(--hx-space-4, 1rem));\\n max-width: var(--hx-form-max-width, none);\\n padding: var(--hx-form-padding, 0);\\n}\\n\\n/* ==========================================================================\\n * ERROR SUMMARY\\n * ========================================================================== */\\n\\nhx-form .hx-form-error-summary {\\n border: var(--hx-border-width-thin, 1px) solid\\n var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));\\n border-radius: var(--hx-border-radius-md, 0.375rem);\\n background-color: var(--hx-color-error-50, #fef2f2);\\n color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));\\n padding: var(--hx-space-3, 0.75rem) var(--hx-space-4, 1rem);\\n font-size: var(--hx-font-size-sm, 0.875rem);\\n line-height: var(--hx-line-height-normal, 1.5);\\n font-family: var(--hx-input-font-family, var(--hx-font-family-sans, sans-serif));\\n}\\n\\nhx-form .hx-form-error-summary ul {\\n margin: 0;\\n padding: 0 0 0 var(--hx-space-4, 1rem);\\n}\\n\\nhx-form .hx-form-error-summary li {\\n margin-bottom: var(--hx-space-1, 0.25rem);\\n}\\n\\nhx-form .hx-form-error-summary li:last-child {\\n margin-bottom: 0;\\n}\\n\\n/* ==========================================================================\\n * FIELD (_field.css scoped)\\n * ========================================================================== */\\n\\n/* ─── Field Container ─── */\\n\\nhx-form .form-item {\\n display: flex;\\n flex-direction: column;\\n gap: var(--hx-space-1, 0.25rem);\\n font-family: var(--hx-input-font-family, var(--hx-font-family-sans, sans-serif));\\n}\\n\\nhx-form .form-item + .form-item {\\n margin-top: var(--hx-space-4, 1rem);\\n}\\n\\n/* ─── Label ─── */\\n\\nhx-form label {\\n display: flex;\\n align-items: baseline;\\n gap: var(--hx-space-1, 0.25rem);\\n font-size: var(--hx-font-size-sm, 0.875rem);\\n font-weight: var(--hx-font-weight-medium, 500);\\n color: var(--hx-input-label-color, var(--hx-color-neutral-700, #343a40));\\n line-height: var(--hx-line-height-normal, 1.5);\\n}\\n\\n/* ─── Required Marker ─── */\\n\\nhx-form .form-required {\\n color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));\\n font-weight: var(--hx-font-weight-bold, 700);\\n}\\n\\n/* ─── Description / Help Text ─── */\\n\\nhx-form .description {\\n font-size: var(--hx-font-size-xs, 0.75rem);\\n color: var(--hx-color-neutral-500, #6c757d);\\n line-height: var(--hx-line-height-normal, 1.5);\\n}\\n\\n/* ─── Box Sizing Reset ─── */\\n\\nhx-form .form-item *,\\nhx-form .form-item *::before,\\nhx-form .form-item *::after {\\n box-sizing: border-box;\\n}\\n\\n/* ==========================================================================\\n * TEXT INPUT (_text-input.css scoped)\\n * ========================================================================== */\\n\\nhx-form input[type='text'],\\nhx-form input[type='email'],\\nhx-form input[type='password'],\\nhx-form input[type='tel'],\\nhx-form input[type='url'],\\nhx-form input[type='search'],\\nhx-form input[type='number'] {\\n display: block;\\n width: 100%;\\n border: var(--hx-border-width-thin, 1px) solid\\n var(--hx-input-border-color, var(--hx-color-neutral-300, #ced4da));\\n border-radius: var(--hx-input-border-radius, var(--hx-border-radius-md, 0.375rem));\\n background-color: var(--hx-input-bg, var(--hx-color-neutral-0, #ffffff));\\n padding: var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem);\\n font-family: var(--hx-input-font-family, var(--hx-font-family-sans, sans-serif));\\n font-size: var(--hx-font-size-md, 1rem);\\n color: var(--hx-input-color, var(--hx-color-neutral-800, #212529));\\n line-height: var(--hx-line-height-normal, 1.5);\\n min-height: var(--hx-size-10, 2.5rem);\\n transition:\\n border-color var(--hx-transition-fast, 150ms ease),\\n box-shadow var(--hx-transition-fast, 150ms ease);\\n}\\n\\n/* ─── Placeholder ─── */\\n\\nhx-form input[type='text']::placeholder,\\nhx-form input[type='email']::placeholder,\\nhx-form input[type='password']::placeholder,\\nhx-form input[type='tel']::placeholder,\\nhx-form input[type='url']::placeholder,\\nhx-form input[type='search']::placeholder,\\nhx-form input[type='number']::placeholder {\\n color: var(--hx-color-neutral-400, #adb5bd);\\n}\\n\\n/* ─── Focus State ─── */\\n\\nhx-form input[type='text']:focus,\\nhx-form input[type='email']:focus,\\nhx-form input[type='password']:focus,\\nhx-form input[type='tel']:focus,\\nhx-form input[type='url']:focus,\\nhx-form input[type='search']:focus,\\nhx-form input[type='number']:focus {\\n outline: 0;\\n border-color: var(--hx-input-focus-ring-color, var(--hx-focus-ring-color, #2563eb));\\n box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)\\n color-mix(\\n in srgb,\\n var(--hx-input-focus-ring-color, var(--hx-focus-ring-color, #2563eb))\\n calc(var(--hx-focus-ring-opacity, 0.25) * 100%),\\n transparent\\n );\\n}\\n\\n@media (forced-colors: active) {\\n hx-form input[type='text']:focus,\\n hx-form input[type='email']:focus,\\n hx-form input[type='password']:focus,\\n hx-form input[type='tel']:focus,\\n hx-form input[type='url']:focus,\\n hx-form input[type='search']:focus,\\n hx-form input[type='number']:focus {\\n outline: var(--hx-focus-ring-width, 2px) solid ButtonText;\\n outline-offset: var(--hx-focus-ring-offset, 2px);\\n }\\n}\\n\\n/* ─── Disabled State ─── */\\n\\nhx-form input[type='text']:disabled,\\nhx-form input[type='email']:disabled,\\nhx-form input[type='password']:disabled,\\nhx-form input[type='tel']:disabled,\\nhx-form input[type='url']:disabled,\\nhx-form input[type='search']:disabled,\\nhx-form input[type='number']:disabled {\\n opacity: var(--hx-opacity-disabled, 0.5);\\n cursor: not-allowed;\\n pointer-events: none;\\n}\\n\\n/* ─── Read-Only State ─── */\\n\\nhx-form input[type='text']:read-only,\\nhx-form input[type='email']:read-only,\\nhx-form input[type='password']:read-only,\\nhx-form input[type='tel']:read-only,\\nhx-form input[type='url']:read-only,\\nhx-form input[type='search']:read-only,\\nhx-form input[type='number']:read-only {\\n background-color: var(--hx-color-neutral-100, #e9ecef);\\n}\\n\\n/* ─── Remove browser search decorations ─── */\\n\\nhx-form input[type='search']::-webkit-search-decoration,\\nhx-form input[type='search']::-webkit-search-cancel-button,\\nhx-form input[type='search']::-webkit-search-results-button,\\nhx-form input[type='search']::-webkit-search-results-decoration {\\n -webkit-appearance: none;\\n}\\n\\n/* ─── Remove number input spinners ─── */\\n\\nhx-form input[type='number']::-webkit-inner-spin-button,\\nhx-form input[type='number']::-webkit-outer-spin-button {\\n -webkit-appearance: none;\\n margin: 0;\\n}\\n\\nhx-form input[type='number'] {\\n appearance: textfield;\\n}\\n\\n/* ==========================================================================\\n * TEXTAREA (_textarea.css scoped)\\n * ========================================================================== */\\n\\nhx-form textarea {\\n display: block;\\n width: 100%;\\n border: var(--hx-border-width-thin, 1px) solid\\n var(--hx-input-border-color, var(--hx-color-neutral-300, #ced4da));\\n border-radius: var(--hx-input-border-radius, var(--hx-border-radius-md, 0.375rem));\\n background-color: var(--hx-input-bg, var(--hx-color-neutral-0, #ffffff));\\n padding: var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem);\\n font-family: var(--hx-input-font-family, var(--hx-font-family-sans, sans-serif));\\n font-size: var(--hx-font-size-md, 1rem);\\n color: var(--hx-input-color, var(--hx-color-neutral-800, #212529));\\n line-height: var(--hx-line-height-normal, 1.5);\\n min-height: var(--hx-textarea-min-height, var(--hx-size-20, 5rem));\\n resize: vertical;\\n transition:\\n border-color var(--hx-transition-fast, 150ms ease),\\n box-shadow var(--hx-transition-fast, 150ms ease);\\n}\\n\\nhx-form textarea::placeholder {\\n color: var(--hx-color-neutral-400, #adb5bd);\\n}\\n\\nhx-form textarea:focus {\\n outline: 0;\\n border-color: var(--hx-input-focus-ring-color, var(--hx-focus-ring-color, #2563eb));\\n box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)\\n color-mix(\\n in srgb,\\n var(--hx-input-focus-ring-color, var(--hx-focus-ring-color, #2563eb))\\n calc(var(--hx-focus-ring-opacity, 0.25) * 100%),\\n transparent\\n );\\n}\\n\\n@media (forced-colors: active) {\\n hx-form textarea:focus {\\n outline: var(--hx-focus-ring-width, 2px) solid ButtonText;\\n outline-offset: var(--hx-focus-ring-offset, 2px);\\n }\\n}\\n\\nhx-form textarea:disabled {\\n opacity: var(--hx-opacity-disabled, 0.5);\\n cursor: not-allowed;\\n pointer-events: none;\\n}\\n\\nhx-form textarea:read-only {\\n background-color: var(--hx-color-neutral-100, #e9ecef);\\n}\\n\\n/* ==========================================================================\\n * SELECT (_select.css scoped)\\n * ========================================================================== */\\n\\nhx-form select {\\n display: block;\\n width: 100%;\\n border: var(--hx-border-width-thin, 1px) solid\\n var(--hx-select-border-color, var(--hx-color-neutral-300, #ced4da));\\n border-radius: var(--hx-select-border-radius, var(--hx-border-radius-md, 0.375rem));\\n background-color: var(--hx-select-bg, var(--hx-color-neutral-0, #ffffff));\\n padding: var(--hx-space-2, 0.5rem) var(--hx-space-8, 2rem) var(--hx-space-2, 0.5rem)\\n var(--hx-space-3, 0.75rem);\\n font-family: var(--hx-select-font-family, var(--hx-font-family-sans, sans-serif));\\n font-size: var(--hx-font-size-md, 1rem);\\n color: var(--hx-select-color, var(--hx-color-neutral-800, #212529));\\n line-height: var(--hx-line-height-normal, 1.5);\\n min-height: var(--hx-input-height-md, var(--hx-size-10, 2.5rem));\\n cursor: pointer;\\n transition:\\n border-color var(--hx-transition-fast, 150ms ease),\\n box-shadow var(--hx-transition-fast, 150ms ease);\\n appearance: none;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n background-image: url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%236c757d' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E\\\");\\n background-repeat: no-repeat;\\n background-position: right var(--hx-space-3, 0.75rem) center;\\n background-size: 12px 8px;\\n}\\n\\nhx-form select:focus {\\n outline: 0;\\n border-color: var(--hx-select-focus-ring-color, var(--hx-focus-ring-color, #2563eb));\\n box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)\\n color-mix(\\n in srgb,\\n var(--hx-select-focus-ring-color, var(--hx-focus-ring-color, #2563eb))\\n calc(var(--hx-focus-ring-opacity, 0.25) * 100%),\\n transparent\\n );\\n}\\n\\n@media (forced-colors: active) {\\n hx-form select:focus {\\n outline: var(--hx-focus-ring-width, 2px) solid ButtonText;\\n outline-offset: var(--hx-focus-ring-offset, 2px);\\n }\\n}\\n\\nhx-form select:disabled {\\n opacity: var(--hx-opacity-disabled, 0.5);\\n cursor: not-allowed;\\n pointer-events: none;\\n}\\n\\nhx-form select[multiple] {\\n min-height: var(--hx-size-20, 5rem);\\n padding-right: var(--hx-space-3, 0.75rem);\\n background-image: none;\\n}\\n\\nhx-form select[multiple] option {\\n padding: var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem);\\n}\\n\\nhx-form select::-ms-expand {\\n display: none;\\n}\\n\\n/* ==========================================================================\\n * CHECKBOX (_checkbox.css scoped)\\n * ========================================================================== */\\n\\nhx-form input[type='checkbox'] {\\n appearance: none;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\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 margin: 0;\\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-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 cursor: pointer;\\n vertical-align: middle;\\n}\\n\\nhx-form input[type='checkbox']:checked {\\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 background-image: url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3.5 8.5L6.5 11.5L12.5 4.5' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\\\");\\n background-repeat: no-repeat;\\n background-position: center;\\n background-size: 100%;\\n}\\n\\nhx-form input[type='checkbox']:indeterminate {\\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 background-image: url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 8H12' stroke='%23ffffff' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E\\\");\\n background-repeat: no-repeat;\\n background-position: center;\\n background-size: 100%;\\n}\\n\\nhx-form input[type='checkbox']:focus-visible {\\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\\nhx-form input[type='checkbox']:hover:not(:disabled) {\\n border-color: var(--hx-color-primary-500, #2563eb);\\n}\\n\\nhx-form input[type='checkbox']:checked:hover:not(:disabled) {\\n filter: brightness(var(--hx-filter-brightness-hover, 0.9));\\n}\\n\\nhx-form input[type='checkbox']:disabled {\\n opacity: var(--hx-opacity-disabled, 0.5);\\n cursor: not-allowed;\\n pointer-events: none;\\n}\\n\\nhx-form .form-type-checkbox,\\nhx-form .form-type-checkbox-toggle {\\n display: flex;\\n align-items: flex-start;\\n gap: var(--hx-space-2, 0.5rem);\\n}\\n\\nhx-form .form-type-checkbox label,\\nhx-form .form-type-checkbox-toggle 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 cursor: pointer;\\n user-select: none;\\n -webkit-user-select: none;\\n}\\n\\n/* ==========================================================================\\n * RADIO (_radio.css scoped)\\n * ========================================================================== */\\n\\nhx-form input[type='radio'] {\\n appearance: none;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n display: inline-flex;\\n align-items: center;\\n justify-content: center;\\n flex-shrink: 0;\\n width: var(--hx-radio-size, var(--hx-size-5, 1.25rem));\\n height: var(--hx-radio-size, var(--hx-size-5, 1.25rem));\\n margin: 0;\\n border: var(--hx-border-width-medium, 2px) solid\\n var(--hx-radio-border-color, var(--hx-color-neutral-300, #ced4da));\\n border-radius: var(--hx-border-radius-full, 9999px);\\n background-color: var(--hx-color-neutral-0, #ffffff);\\n transition:\\n border-color var(--hx-transition-fast, 150ms ease),\\n background-color var(--hx-transition-fast, 150ms ease),\\n box-shadow var(--hx-transition-fast, 150ms ease);\\n cursor: pointer;\\n vertical-align: middle;\\n}\\n\\nhx-form input[type='radio']:checked {\\n border-color: var(--hx-radio-checked-border-color, var(--hx-color-primary-500, #2563eb));\\n background-color: var(--hx-radio-checked-bg, var(--hx-color-primary-500, #2563eb));\\n box-shadow: inset 0 0 0 calc(var(--hx-radio-size, var(--hx-size-5, 1.25rem)) * 0.3)\\n var(--hx-radio-dot-color, var(--hx-color-neutral-0, #ffffff));\\n}\\n\\nhx-form input[type='radio']:focus-visible {\\n outline: var(--hx-focus-ring-width, 2px) solid\\n var(--hx-radio-focus-ring-color, var(--hx-focus-ring-color, #2563eb));\\n outline-offset: var(--hx-focus-ring-offset, 2px);\\n}\\n\\nhx-form input[type='radio']:hover:not(:disabled):not(:checked) {\\n border-color: var(--hx-color-neutral-400, #adb5bd);\\n}\\n\\nhx-form input[type='radio']:disabled {\\n opacity: var(--hx-opacity-disabled, 0.5);\\n cursor: not-allowed;\\n pointer-events: none;\\n}\\n\\nhx-form .form-type-radio {\\n display: inline-flex;\\n align-items: center;\\n gap: var(--hx-space-2, 0.5rem);\\n}\\n\\nhx-form .form-type-radio label {\\n font-size: var(--hx-font-size-md, 1rem);\\n color: var(--hx-radio-label-color, var(--hx-color-neutral-700, #343a40));\\n line-height: var(--hx-line-height-normal, 1.5);\\n cursor: pointer;\\n user-select: none;\\n -webkit-user-select: none;\\n}\\n\\nhx-form .form-radios {\\n display: flex;\\n flex-direction: column;\\n gap: var(--hx-radio-group-gap, var(--hx-space-3, 0.75rem));\\n}\\n\\nhx-form .form-radios--horizontal {\\n flex-direction: row;\\n flex-wrap: wrap;\\n}\\n\\n/* ==========================================================================\\n * SWITCH (_switch.css scoped)\\n * ========================================================================== */\\n\\nhx-form .form-type-switch {\\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\\nhx-form .form-type-switch .switch__control-row {\\n display: flex;\\n align-items: center;\\n gap: var(--hx-space-2, 0.5rem);\\n}\\n\\nhx-form .form-type-switch input[type='checkbox'] {\\n appearance: none;\\n -webkit-appearance: none;\\n -moz-appearance: none;\\n position: relative;\\n display: inline-flex;\\n align-items: center;\\n flex-shrink: 0;\\n width: var(--hx-switch-track-width-md, var(--hx-size-10, 2.5rem));\\n height: var(--hx-switch-track-height-md, var(--hx-size-5-5, 1.375rem));\\n margin: 0;\\n border: none;\\n border-radius: var(--hx-border-radius-full, 9999px);\\n background-color: var(--hx-switch-track-bg, var(--hx-color-neutral-300, #ced4da));\\n transition: background-color var(--hx-transition-fast, 150ms ease);\\n cursor: pointer;\\n background-image: none;\\n}\\n\\nhx-form .form-type-switch input[type='checkbox']::before {\\n content: '';\\n position: absolute;\\n top: 50%;\\n left: var(--hx-switch-thumb-offset, var(--hx-space-0-5, 0.125rem));\\n transform: translateY(-50%);\\n width: var(--hx-switch-thumb-size-md, var(--hx-size-4-5, 1.125rem));\\n height: var(--hx-switch-thumb-size-md, var(--hx-size-4-5, 1.125rem));\\n border-radius: var(--hx-border-radius-full, 9999px);\\n background-color: var(--hx-switch-thumb-bg, var(--hx-color-neutral-0, #ffffff));\\n box-shadow: var(--hx-switch-thumb-shadow, var(--hx-shadow-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05)));\\n transition: transform var(--hx-transition-fast, 150ms ease);\\n}\\n\\nhx-form .form-type-switch input[type='checkbox']:checked {\\n background-color: var(--hx-switch-track-checked-bg, var(--hx-color-primary-500, #2563eb));\\n background-image: none;\\n}\\n\\nhx-form .form-type-switch input[type='checkbox']:checked::before {\\n transform: translateY(-50%)\\n translateX(var(--hx-switch-thumb-size-md, var(--hx-size-4-5, 1.125rem)));\\n}\\n\\nhx-form .form-type-switch input[type='checkbox']:focus-visible {\\n outline: var(--hx-focus-ring-width, 2px) solid\\n var(--hx-switch-focus-ring-color, var(--hx-focus-ring-color, #2563eb));\\n outline-offset: var(--hx-focus-ring-offset, 2px);\\n}\\n\\nhx-form .form-type-switch input[type='checkbox']:disabled {\\n opacity: var(--hx-opacity-disabled, 0.5);\\n cursor: not-allowed;\\n pointer-events: none;\\n}\\n\\nhx-form .form-type-switch label {\\n font-size: var(--hx-font-size-sm, 0.875rem);\\n font-weight: var(--hx-font-weight-medium, 500);\\n color: var(--hx-switch-label-color, var(--hx-color-neutral-700, #343a40));\\n line-height: var(--hx-line-height-normal, 1.5);\\n cursor: pointer;\\n user-select: none;\\n -webkit-user-select: none;\\n}\\n\\n/* Small */\\nhx-form .form-type-switch--sm input[type='checkbox'] {\\n width: var(--hx-switch-track-width-sm, var(--hx-size-8, 2rem));\\n height: var(--hx-switch-track-height-sm, var(--hx-size-4-5, 1.125rem));\\n}\\n\\nhx-form .form-type-switch--sm input[type='checkbox']::before {\\n width: var(--hx-switch-thumb-size-sm, var(--hx-size-3-5, 0.875rem));\\n height: var(--hx-switch-thumb-size-sm, var(--hx-size-3-5, 0.875rem));\\n}\\n\\nhx-form .form-type-switch--sm input[type='checkbox']:checked::before {\\n transform: translateY(-50%)\\n translateX(var(--hx-switch-thumb-size-sm, var(--hx-size-3-5, 0.875rem)));\\n}\\n\\n/* Large */\\nhx-form .form-type-switch--lg input[type='checkbox'] {\\n width: var(--hx-switch-track-width-lg, var(--hx-size-12, 3rem));\\n height: var(--hx-switch-track-height-lg, var(--hx-size-6-5, 1.625rem));\\n}\\n\\nhx-form .form-type-switch--lg input[type='checkbox']::before {\\n width: var(--hx-switch-thumb-size-lg, var(--hx-size-5-5, 1.375rem));\\n height: var(--hx-switch-thumb-size-lg, var(--hx-size-5-5, 1.375rem));\\n}\\n\\nhx-form .form-type-switch--lg input[type='checkbox']:checked::before {\\n transform: translateY(-50%)\\n translateX(var(--hx-switch-thumb-size-lg, var(--hx-size-5-5, 1.375rem)));\\n}\\n\\n/* ==========================================================================\\n * FORM LAYOUT (_form-layout.css scoped)\\n * ========================================================================== */\\n\\n/* ─── Form Root ─── */\\n\\nhx-form form {\\n display: flex;\\n flex-direction: column;\\n gap: var(--hx-form-gap, var(--hx-space-4, 1rem));\\n font-family: var(--hx-input-font-family, var(--hx-font-family-sans, sans-serif));\\n}\\n\\n/* ─── Fieldset ─── */\\n\\nhx-form fieldset {\\n border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-200, #dee2e6);\\n border-radius: var(--hx-border-radius-md, 0.375rem);\\n padding: var(--hx-space-4, 1rem) var(--hx-space-4, 1rem) var(--hx-space-4, 1rem);\\n margin: 0;\\n display: flex;\\n flex-direction: column;\\n gap: var(--hx-space-4, 1rem);\\n}\\n\\n/* ─── Legend ─── */\\n\\nhx-form legend {\\n display: flex;\\n align-items: baseline;\\n gap: var(--hx-space-1, 0.25rem);\\n font-size: var(--hx-font-size-sm, 0.875rem);\\n font-weight: var(--hx-font-weight-semibold, 600);\\n color: var(--hx-color-neutral-700, #343a40);\\n line-height: var(--hx-line-height-normal, 1.5);\\n padding: 0 var(--hx-space-1, 0.25rem);\\n}\\n\\n/* ─── Details / Collapsible Fieldset (Drupal) ─── */\\n\\nhx-form details {\\n border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-200, #dee2e6);\\n border-radius: var(--hx-border-radius-md, 0.375rem);\\n padding: var(--hx-space-4, 1rem);\\n margin: 0;\\n}\\n\\nhx-form summary {\\n font-size: var(--hx-font-size-sm, 0.875rem);\\n font-weight: var(--hx-font-weight-semibold, 600);\\n color: var(--hx-color-neutral-700, #343a40);\\n line-height: var(--hx-line-height-normal, 1.5);\\n cursor: pointer;\\n padding: var(--hx-space-1, 0.25rem) 0;\\n user-select: none;\\n -webkit-user-select: none;\\n}\\n\\nhx-form summary: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-sm, 0.25rem);\\n}\\n\\n/* ─── Form Actions (button group) ─── */\\n\\nhx-form .form-actions {\\n display: flex;\\n align-items: center;\\n gap: var(--hx-space-3, 0.75rem);\\n padding-top: var(--hx-space-4, 1rem);\\n}\\n\\nhx-form .form-actions--end {\\n justify-content: flex-end;\\n}\\n\\nhx-form .form-actions--between {\\n justify-content: space-between;\\n}\\n\\n/* ─── Multi-Column Layout ─── */\\n\\nhx-form .form-columns {\\n display: grid;\\n gap: var(--hx-space-4, 1rem);\\n}\\n\\nhx-form .form-columns--2 {\\n grid-template-columns: repeat(2, 1fr);\\n}\\n\\nhx-form .form-columns--3 {\\n grid-template-columns: repeat(3, 1fr);\\n}\\n\\nhx-form .form-columns--4 {\\n grid-template-columns: repeat(4, 1fr);\\n}\\n\\n@media (max-width: 640px) {\\n hx-form .form-columns--2,\\n hx-form .form-columns--3,\\n hx-form .form-columns--4 {\\n grid-template-columns: 1fr;\\n }\\n}\\n\\n/* ─── Full-Width Form Item (spans all columns) ─── */\\n\\nhx-form .form-item--full {\\n grid-column: 1 / -1;\\n}\\n\\n/* ─── Inline Form Layout ─── */\\n\\nhx-form .form-inline {\\n display: flex;\\n flex-wrap: wrap;\\n align-items: flex-end;\\n gap: var(--hx-space-3, 0.75rem);\\n}\\n\\nhx-form .form-inline .form-item {\\n flex: 1;\\n min-width: 0;\\n}\\n\\nhx-form .form-inline .form-item + .form-item {\\n margin-top: 0;\\n}\\n\\n/* ─── Form Divider ─── */\\n\\nhx-form .form-divider {\\n border: none;\\n border-top: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-200, #dee2e6);\\n margin: var(--hx-space-2, 0.5rem) 0;\\n}\\n\\n/* ==========================================================================\\n * VALIDATION (_validation.css scoped)\\n * ========================================================================== */\\n\\n/* ─── Error State on Field Wrapper ─── */\\n\\nhx-form .form-item.error label,\\nhx-form .form-item.has-error label,\\nhx-form .form-item--error label {\\n color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));\\n}\\n\\nhx-form .form-item.error input[type='text'],\\nhx-form .form-item.error input[type='email'],\\nhx-form .form-item.error input[type='password'],\\nhx-form .form-item.error input[type='tel'],\\nhx-form .form-item.error input[type='url'],\\nhx-form .form-item.error input[type='search'],\\nhx-form .form-item.error input[type='number'],\\nhx-form .form-item.error textarea,\\nhx-form .form-item.error select,\\nhx-form .form-item.has-error input[type='text'],\\nhx-form .form-item.has-error input[type='email'],\\nhx-form .form-item.has-error input[type='password'],\\nhx-form .form-item.has-error input[type='tel'],\\nhx-form .form-item.has-error input[type='url'],\\nhx-form .form-item.has-error input[type='search'],\\nhx-form .form-item.has-error input[type='number'],\\nhx-form .form-item.has-error textarea,\\nhx-form .form-item.has-error select,\\nhx-form .form-item--error input[type='text'],\\nhx-form .form-item--error input[type='email'],\\nhx-form .form-item--error input[type='password'],\\nhx-form .form-item--error input[type='tel'],\\nhx-form .form-item--error input[type='url'],\\nhx-form .form-item--error input[type='search'],\\nhx-form .form-item--error input[type='number'],\\nhx-form .form-item--error textarea,\\nhx-form .form-item--error select {\\n border-color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));\\n}\\n\\nhx-form .form-item.error input[type='text']:focus,\\nhx-form .form-item.error input[type='email']:focus,\\nhx-form .form-item.error input[type='password']:focus,\\nhx-form .form-item.error input[type='tel']:focus,\\nhx-form .form-item.error input[type='url']:focus,\\nhx-form .form-item.error input[type='search']:focus,\\nhx-form .form-item.error input[type='number']:focus,\\nhx-form .form-item.error textarea:focus,\\nhx-form .form-item.error select:focus,\\nhx-form .form-item.has-error input[type='text']:focus,\\nhx-form .form-item.has-error input[type='email']:focus,\\nhx-form .form-item.has-error input[type='password']:focus,\\nhx-form .form-item.has-error input[type='tel']:focus,\\nhx-form .form-item.has-error input[type='url']:focus,\\nhx-form .form-item.has-error input[type='search']:focus,\\nhx-form .form-item.has-error input[type='number']:focus,\\nhx-form .form-item.has-error textarea:focus,\\nhx-form .form-item.has-error select:focus,\\nhx-form .form-item--error input[type='text']:focus,\\nhx-form .form-item--error input[type='email']:focus,\\nhx-form .form-item--error input[type='password']:focus,\\nhx-form .form-item--error input[type='tel']:focus,\\nhx-form .form-item--error input[type='url']:focus,\\nhx-form .form-item--error input[type='search']:focus,\\nhx-form .form-item--error input[type='number']:focus,\\nhx-form .form-item--error textarea:focus,\\nhx-form .form-item--error select:focus {\\n border-color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));\\n box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)\\n color-mix(\\n in srgb,\\n var(--hx-input-error-color, var(--hx-color-error-500, #dc3545))\\n calc(var(--hx-focus-ring-opacity, 0.25) * 100%),\\n transparent\\n );\\n}\\n\\n/* ─── Error State on Checkbox/Radio ─── */\\n\\nhx-form .form-item.error input[type='checkbox'],\\nhx-form .form-item.has-error input[type='checkbox'],\\nhx-form .form-item--error input[type='checkbox'] {\\n border-color: var(--hx-checkbox-error-color, var(--hx-color-error-500, #dc3545));\\n}\\n\\nhx-form .form-item.error input[type='checkbox']:checked,\\nhx-form .form-item.has-error input[type='checkbox']:checked,\\nhx-form .form-item--error input[type='checkbox']:checked {\\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\\nhx-form .form-item.error input[type='radio'],\\nhx-form .form-item.has-error input[type='radio'],\\nhx-form .form-item--error input[type='radio'] {\\n border-color: var(--hx-color-error-500, #dc3545);\\n}\\n\\n/* ─── Inline Error Message ─── */\\n\\nhx-form .form-item__error-message,\\nhx-form .form-item .error-message,\\nhx-form .error-message {\\n font-size: var(--hx-font-size-xs, 0.75rem);\\n color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));\\n line-height: var(--hx-line-height-normal, 1.5);\\n}\\n\\n/* ─── Success State on Field Wrapper ─── */\\n\\nhx-form .form-item.success label,\\nhx-form .form-item.has-success label,\\nhx-form .form-item--success label {\\n color: var(--hx-color-success-500, #198754);\\n}\\n\\nhx-form .form-item.success input[type='text'],\\nhx-form .form-item.success input[type='email'],\\nhx-form .form-item.success input[type='password'],\\nhx-form .form-item.success input[type='tel'],\\nhx-form .form-item.success input[type='url'],\\nhx-form .form-item.success input[type='search'],\\nhx-form .form-item.success input[type='number'],\\nhx-form .form-item.success textarea,\\nhx-form .form-item.success select,\\nhx-form .form-item.has-success input[type='text'],\\nhx-form .form-item.has-success input[type='email'],\\nhx-form .form-item.has-success input[type='password'],\\nhx-form .form-item.has-success input[type='tel'],\\nhx-form .form-item.has-success input[type='url'],\\nhx-form .form-item.has-success input[type='search'],\\nhx-form .form-item.has-success input[type='number'],\\nhx-form .form-item.has-success textarea,\\nhx-form .form-item.has-success select,\\nhx-form .form-item--success input[type='text'],\\nhx-form .form-item--success input[type='email'],\\nhx-form .form-item--success input[type='password'],\\nhx-form .form-item--success input[type='tel'],\\nhx-form .form-item--success input[type='url'],\\nhx-form .form-item--success input[type='search'],\\nhx-form .form-item--success input[type='number'],\\nhx-form .form-item--success textarea,\\nhx-form .form-item--success select {\\n border-color: var(--hx-color-success-500, #198754);\\n}\\n\\nhx-form .form-item.success input[type='text']:focus,\\nhx-form .form-item.success input[type='email']:focus,\\nhx-form .form-item.success input[type='password']:focus,\\nhx-form .form-item.success input[type='tel']:focus,\\nhx-form .form-item.success input[type='url']:focus,\\nhx-form .form-item.success input[type='search']:focus,\\nhx-form .form-item.success input[type='number']:focus,\\nhx-form .form-item.success textarea:focus,\\nhx-form .form-item.success select:focus,\\nhx-form .form-item.has-success input[type='text']:focus,\\nhx-form .form-item.has-success input[type='email']:focus,\\nhx-form .form-item.has-success input[type='password']:focus,\\nhx-form .form-item.has-success input[type='tel']:focus,\\nhx-form .form-item.has-success input[type='url']:focus,\\nhx-form .form-item.has-success input[type='search']:focus,\\nhx-form .form-item.has-success input[type='number']:focus,\\nhx-form .form-item.has-success textarea:focus,\\nhx-form .form-item.has-success select:focus,\\nhx-form .form-item--success input[type='text']:focus,\\nhx-form .form-item--success input[type='email']:focus,\\nhx-form .form-item--success input[type='password']:focus,\\nhx-form .form-item--success input[type='tel']:focus,\\nhx-form .form-item--success input[type='url']:focus,\\nhx-form .form-item--success input[type='search']:focus,\\nhx-form .form-item--success input[type='number']:focus,\\nhx-form .form-item--success textarea:focus,\\nhx-form .form-item--success select:focus {\\n border-color: var(--hx-color-success-500, #198754);\\n box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)\\n color-mix(\\n in srgb,\\n var(--hx-color-success-500, #198754) calc(var(--hx-focus-ring-opacity, 0.25) * 100%),\\n transparent\\n );\\n}\\n\\n/* ─── Inline Success Message ─── */\\n\\nhx-form .form-item__success-message,\\nhx-form .form-item .success-message,\\nhx-form .success-message {\\n font-size: var(--hx-font-size-xs, 0.75rem);\\n color: var(--hx-color-success-500, #198754);\\n line-height: var(--hx-line-height-normal, 1.5);\\n}\\n\\n/* ─── Drupal System Messages ─── */\\n\\nhx-form .messages--error {\\n border: var(--hx-border-width-thin, 1px) solid\\n var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));\\n border-radius: var(--hx-border-radius-md, 0.375rem);\\n background-color: var(--hx-color-error-50, #fef2f2);\\n color: var(--hx-input-error-color, var(--hx-color-error-500, #dc3545));\\n padding: var(--hx-space-3, 0.75rem) var(--hx-space-4, 1rem);\\n font-size: var(--hx-font-size-sm, 0.875rem);\\n line-height: var(--hx-line-height-normal, 1.5);\\n}\\n\\nhx-form .messages--status {\\n border: var(--hx-border-width-thin, 1px) solid var(--hx-color-success-500, #198754);\\n border-radius: var(--hx-border-radius-md, 0.375rem);\\n background-color: var(--hx-color-success-50, #f0fdf4);\\n color: var(--hx-color-success-500, #198754);\\n padding: var(--hx-space-3, 0.75rem) var(--hx-space-4, 1rem);\\n font-size: var(--hx-font-size-sm, 0.875rem);\\n line-height: var(--hx-line-height-normal, 1.5);\\n}\\n\\nhx-form .messages--warning {\\n border: var(--hx-border-width-thin, 1px) solid var(--hx-color-warning-500, #ffc107);\\n border-radius: var(--hx-border-radius-md, 0.375rem);\\n background-color: var(--hx-color-warning-50, #fffbeb);\\n color: var(--hx-color-warning-700, #92400e);\\n padding: var(--hx-space-3, 0.75rem) var(--hx-space-4, 1rem);\\n font-size: var(--hx-font-size-sm, 0.875rem);\\n line-height: var(--hx-line-height-normal, 1.5);\\n}\\n\\n/* ==========================================================================\\n * FORCED-COLORS / HIGH CONTRAST MODE (P1-01)\\n *\\n * When box-shadow is used for focus rings, it is invisible in Windows\\n * High Contrast Mode. Restore a visible outline.\\n * ========================================================================== */\\n\\n@media (forced-colors: active) {\\n hx-form input[type='text']:focus,\\n hx-form input[type='email']:focus,\\n hx-form input[type='password']:focus,\\n hx-form input[type='tel']:focus,\\n hx-form input[type='url']:focus,\\n hx-form input[type='search']:focus,\\n hx-form input[type='number']:focus,\\n hx-form textarea:focus,\\n hx-form select:focus {\\n outline: 2px solid CanvasText;\\n outline-offset: 2px;\\n }\\n\\n hx-form .hx-form-error-summary {\\n border-color: LinkText;\\n }\\n}\\n\"","import formScopedCss from '../../styles/form/form.scoped.css?raw';\n\nexport const helixFormScopedCss = formScopedCss;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { AdoptedStylesheetsController } from '../../controllers/adopted-stylesheets.js';\nimport { helixFormScopedCss } from './hx-form.styles.js';\n\n/**\n * A Light DOM form wrapper that styles native HTML form elements and\n * hx-* components with the design system's form styles.\n *\n * When `action` is set, renders a `<form>` wrapper around slotted content.\n * When no `action` is set (the Drupal pattern), renders only a `<slot>`\n * so Drupal can provide its own `<form>` tag.\n *\n * Uses adopted stylesheets to inject scoped CSS into the document without\n * Shadow DOM, keeping native form participation and Drupal compatibility.\n *\n * @summary Light DOM form wrapper with scoped styles for native and hx-* form elements.\n *\n * @tag hx-form\n *\n * @slot - Default slot for form fields and controls.\n *\n * @fires {CustomEvent<{valid: boolean, values: Record<string, FormDataEntryValue | FormDataEntryValue[]>, formData: FormData}>} hx-submit - Dispatched on valid client-side submit when no action is set.\n * @fires {CustomEvent<{errors: Array<{name: string, message: string}>}>} hx-invalid - Dispatched when validation fails on submit.\n * @fires {CustomEvent} hx-reset - Dispatched when the form is reset.\n *\n * @cssprop [--hx-form-gap=var(--hx-space-4)] - Gap between form fields.\n * @cssprop [--hx-form-max-width=none] - Maximum width of the form.\n * @cssprop [--hx-form-padding=0] - Internal padding of the form.\n */\n@customElement('hx-form')\nexport class HelixForm extends LitElement {\n // ─── Light DOM ───\n\n override createRenderRoot(): HTMLElement {\n return this;\n }\n\n // ─── Adopted Stylesheets ───\n\n private _styles = new AdoptedStylesheetsController(this, helixFormScopedCss, document);\n\n // ─── Internal State ───\n\n @state()\n private _validationErrors: Array<{ name: string; message: string }> = [];\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('submit', this._handleSubmit);\n this.addEventListener('reset', this._handleReset);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('submit', this._handleSubmit);\n this.removeEventListener('reset', this._handleReset);\n }\n\n // ─── Properties ───\n\n /**\n * The URL to submit the form to. When empty, the form handles\n * submission client-side only and dispatches `hx-submit`.\n * @attr action\n */\n @property({ type: String })\n action = '';\n\n /**\n * The HTTP method used when submitting the form.\n * @attr method\n */\n @property({ type: String })\n method: 'get' | 'post' = 'post';\n\n /**\n * When true, disables the browser's built-in constraint validation\n * on form submission.\n * @attr novalidate\n */\n @property({ type: Boolean })\n novalidate = false;\n\n /**\n * Identifies the form for scripting and form discovery.\n * @attr name\n */\n @property({ type: String })\n name = '';\n\n /**\n * The encoding type for form submission. Only used when `action` is set.\n * Use `multipart/form-data` for forms with file uploads.\n * @attr enctype\n */\n @property({ type: String })\n enctype: 'application/x-www-form-urlencoded' | 'multipart/form-data' | 'text/plain' =\n 'application/x-www-form-urlencoded';\n\n // ─── Public Methods ───\n\n /**\n * Checks the validity of all child form elements without showing\n * validation UI. Returns `true` if all elements are valid.\n */\n checkValidity(): boolean {\n const formElements = this._getAllValidatableElements();\n return formElements.every((el) => {\n if ('checkValidity' in el && typeof el.checkValidity === 'function') {\n return (el as HTMLInputElement).checkValidity();\n }\n return true;\n });\n }\n\n /**\n * Checks validity and triggers the browser's constraint validation UI\n * on each invalid element. Returns `true` if all elements are valid.\n */\n reportValidity(): boolean {\n const formElements = this._getAllValidatableElements();\n let allValid = true;\n for (const el of formElements) {\n if ('reportValidity' in el && typeof el.reportValidity === 'function') {\n if (!(el as HTMLInputElement).reportValidity()) {\n allValid = false;\n }\n }\n }\n return allValid;\n }\n\n /**\n * Collects form data from all child form elements (native and hx-*).\n * Returns a `FormData` object.\n */\n getFormData(): FormData {\n // If there is a native <form> child, use it directly\n const formEl = this.querySelector('form');\n if (formEl) {\n return new FormData(formEl);\n }\n\n // Otherwise, manually collect from all named inputs\n const formData = new FormData();\n const elements = this.getNativeFormElements();\n for (const el of elements) {\n const input = el as HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;\n if (!input.name) continue;\n\n if (input instanceof HTMLInputElement) {\n if (input.type === 'checkbox' || input.type === 'radio') {\n if (input.checked) {\n formData.append(input.name, input.value || 'on');\n }\n } else {\n formData.append(input.name, input.value);\n }\n } else {\n formData.append(input.name, input.value);\n }\n }\n\n return formData;\n }\n\n /**\n * Returns all child hx-* form components that implement the form\n * component contract (hx-text-input, hx-select, hx-checkbox, hx-textarea,\n * hx-radio-group, hx-switch).\n *\n * Note: This uses a hardcoded allowlist. When a new hx-* form component\n * is added, update this selector to include it.\n */\n getFormElements(): HTMLElement[] {\n return Array.from(\n this.querySelectorAll<HTMLElement>(\n 'hx-text-input, hx-select, hx-checkbox, hx-textarea, hx-radio-group, hx-switch',\n ),\n );\n }\n\n /**\n * Returns all native form elements (input, select, textarea, button)\n * found within this component's light DOM.\n */\n getNativeFormElements(): Array<\n HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | HTMLButtonElement\n > {\n return Array.from(\n this.querySelectorAll<\n HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | HTMLButtonElement\n >('input, select, textarea, button'),\n );\n }\n\n /**\n * Programmatically sets server-side validation errors on the form.\n * Renders an error summary and sets `aria-invalid=\"true\"` on named fields.\n *\n * Useful for surfacing Drupal server-side validation responses.\n *\n * @param errors - Array of `{name, message}` pairs matching field `name` attributes.\n */\n setErrors(errors: Array<{ name: string; message: string }>): void {\n this._validationErrors = errors;\n this._applyAriaInvalidFromErrors(errors);\n }\n\n /**\n * Programmatically sets a single field error. Merges with any existing errors.\n *\n * @param name - The `name` attribute of the field.\n * @param message - The error message to display.\n */\n setFieldError(name: string, message: string): void {\n const existing = this._validationErrors.filter((e) => e.name !== name);\n this.setErrors([...existing, { name, message }]);\n }\n\n /**\n * Clears all validation errors from the error summary and removes\n * `aria-invalid` from all fields.\n */\n clearErrors(): void {\n this._clearAriaInvalid();\n this._validationErrors = [];\n }\n\n // ─── Private Helpers ───\n\n /**\n * Returns all elements that support constraint validation, including\n * both native form elements and hx-* components with `checkValidity`.\n */\n private _getAllValidatableElements(): HTMLElement[] {\n const native = Array.from(this.querySelectorAll<HTMLElement>('input, select, textarea'));\n const wcElements = this.getFormElements().filter(\n (el) =>\n 'checkValidity' in el &&\n typeof (el as Record<string, unknown>).checkValidity === 'function',\n );\n return [...native, ...wcElements];\n }\n\n /**\n * Sets `aria-invalid=\"true\"` on fields with errors, removes it from valid fields.\n */\n private _applyAriaInvalidFromErrors(errors: Array<{ name: string; message: string }>): void {\n const errorNames = new Set(errors.map((e) => e.name));\n const allElements = this._getAllValidatableElements();\n for (const el of allElements) {\n const named = el as HTMLElement & { name?: string };\n const fieldName = named.name ?? el.tagName.toLowerCase();\n if (errorNames.has(fieldName)) {\n el.setAttribute('aria-invalid', 'true');\n } else {\n el.removeAttribute('aria-invalid');\n }\n }\n }\n\n /**\n * Sets `aria-invalid` based on native constraint validation state.\n */\n private _applyAriaInvalidFromValidity(): void {\n const allElements = this._getAllValidatableElements();\n for (const el of allElements) {\n if ('validity' in el) {\n const validatable = el as HTMLInputElement;\n if (!validatable.validity.valid) {\n el.setAttribute('aria-invalid', 'true');\n } else {\n el.removeAttribute('aria-invalid');\n }\n }\n }\n }\n\n /**\n * Removes `aria-invalid` from all validatable elements.\n */\n private _clearAriaInvalid(): void {\n const allElements = this._getAllValidatableElements();\n for (const el of allElements) {\n el.removeAttribute('aria-invalid');\n }\n }\n\n // ─── Event Handling ───\n\n private _handleSubmit = (e: Event): void => {\n // If there is an action, let native form submission happen\n if (this.action) {\n return;\n }\n\n // Client-side only: prevent default and dispatch hx-submit or hx-invalid\n e.preventDefault();\n\n if (!this.novalidate && !this.checkValidity()) {\n const errors = this._collectValidationErrors();\n this._validationErrors = errors;\n this._applyAriaInvalidFromValidity();\n\n /**\n * Dispatched when validation fails on submit.\n * @event hx-invalid\n */\n this.dispatchEvent(\n new CustomEvent('hx-invalid', {\n bubbles: true,\n composed: true,\n detail: { errors },\n }),\n );\n return;\n }\n\n // Clear any previous errors on successful submit\n this._validationErrors = [];\n this._clearAriaInvalid();\n\n const formData = this.getFormData();\n const values: Record<string, FormDataEntryValue | FormDataEntryValue[]> = {};\n for (const key of new Set(formData.keys())) {\n const all = formData.getAll(key);\n if (all.length === 1 && all[0] !== undefined) {\n values[key] = all[0];\n } else {\n values[key] = all;\n }\n }\n\n /**\n * Dispatched on valid client-side submit.\n * @event hx-submit\n */\n this.dispatchEvent(\n new CustomEvent('hx-submit', {\n bubbles: true,\n composed: true,\n detail: { valid: true, values, formData },\n }),\n );\n };\n\n private _handleReset = (): void => {\n this._validationErrors = [];\n this._clearAriaInvalid();\n\n /**\n * Dispatched when the form is reset.\n * @event hx-reset\n */\n this.dispatchEvent(\n new CustomEvent('hx-reset', {\n bubbles: true,\n composed: true,\n }),\n );\n };\n\n private _collectValidationErrors(): Array<{ name: string; message: string }> {\n const errors: Array<{ name: string; message: string }> = [];\n const elements = this._getAllValidatableElements();\n\n for (const el of elements) {\n if ('validity' in el && 'validationMessage' in el) {\n const validatable = el as HTMLInputElement;\n if (!validatable.validity.valid) {\n errors.push({\n name: validatable.name || validatable.tagName.toLowerCase(),\n message: validatable.validationMessage,\n });\n }\n }\n }\n\n return errors;\n }\n\n // ─── Render ───\n\n override render() {\n const errorSummary =\n this._validationErrors.length > 0\n ? html`\n <div\n class=\"hx-form-error-summary\"\n role=\"alert\"\n aria-live=\"assertive\"\n aria-atomic=\"true\"\n >\n <ul>\n ${this._validationErrors.map(\n (error) => html`<li>${error.message || error.name}</li>`,\n )}\n </ul>\n </div>\n `\n : nothing;\n\n if (this.action) {\n return html`\n ${errorSummary}\n <form\n action=${this.action}\n method=${this.method}\n enctype=${this.enctype}\n name=${ifDefined(this.name || undefined)}\n ?novalidate=${this.novalidate}\n >\n <slot></slot>\n </form>\n `;\n }\n\n return html`${errorSummary}<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-form': HelixForm;\n }\n}\n"],"names":["formScopedCss","helixFormScopedCss","HelixForm","LitElement","AdoptedStylesheetsController","errors","formData","values","key","all","el","formElements","allValid","formEl","elements","input","name","message","existing","e","native","wcElements","errorNames","allElements","fieldName","validatable","errorSummary","html","error","nothing","ifDefined","__decorateClass","state","property","customElement"],"mappings":";;;;AAAA,MAAAA,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { css as _, LitElement as D, html as M } from "lit";
|
|
2
|
+
import { property as h, customElement as w } from "lit/decorators.js";
|
|
3
|
+
import { t as N } from "./lit-Dpo7RLp4.js";
|
|
4
|
+
const T = _`
|
|
5
|
+
:host {
|
|
6
|
+
display: inline;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
[part='base'] {
|
|
10
|
+
display: inline;
|
|
11
|
+
font: inherit;
|
|
12
|
+
color: inherit;
|
|
13
|
+
}
|
|
14
|
+
`;
|
|
15
|
+
var $ = Object.defineProperty, Z = Object.getOwnPropertyDescriptor, n = (o, t, i, e) => {
|
|
16
|
+
for (var a = e > 1 ? void 0 : e ? Z(t, i) : t, s = o.length - 1, c; s >= 0; s--)
|
|
17
|
+
(c = o[s]) && (a = (e ? c(t, i, a) : c(a)) || a);
|
|
18
|
+
return e && a && $(t, i, a), a;
|
|
19
|
+
};
|
|
20
|
+
let r = class extends D {
|
|
21
|
+
constructor() {
|
|
22
|
+
super(...arguments), this.date = "", this.lang = "", this.month = void 0, this.year = void 0, this.day = void 0, this.weekday = void 0, this.hour = void 0, this.minute = void 0, this.second = void 0, this.timeZoneName = void 0, this.timeZone = void 0, this.hourFormat = "auto", this.numeric = "auto", this.relative = !1;
|
|
23
|
+
}
|
|
24
|
+
// ─── Private helpers ───
|
|
25
|
+
_getDate() {
|
|
26
|
+
const o = this.date;
|
|
27
|
+
if (o === "") return /* @__PURE__ */ new Date();
|
|
28
|
+
if (o instanceof Date)
|
|
29
|
+
return isNaN(o.getTime()) ? /* @__PURE__ */ new Date() : o;
|
|
30
|
+
if (typeof o == "number") {
|
|
31
|
+
const e = new Date(o);
|
|
32
|
+
return isNaN(e.getTime()) ? /* @__PURE__ */ new Date() : e;
|
|
33
|
+
}
|
|
34
|
+
const t = Number(o);
|
|
35
|
+
if (!isNaN(t)) {
|
|
36
|
+
const e = new Date(t);
|
|
37
|
+
return isNaN(e.getTime()) ? /* @__PURE__ */ new Date() : e;
|
|
38
|
+
}
|
|
39
|
+
const i = new Date(o);
|
|
40
|
+
return isNaN(i.getTime()) ? /* @__PURE__ */ new Date() : i;
|
|
41
|
+
}
|
|
42
|
+
_getLocale() {
|
|
43
|
+
return this.lang ? this.lang : document.documentElement.lang || navigator.language || "en";
|
|
44
|
+
}
|
|
45
|
+
_getHour12() {
|
|
46
|
+
if (this.hourFormat === "12") return !0;
|
|
47
|
+
if (this.hourFormat === "24") return !1;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Returns the `datetime` attribute value. When `timeZone` is set, returns a
|
|
51
|
+
* timezone-offset ISO string (e.g. `2024-09-20T05:00:00-04:00`) so that
|
|
52
|
+
* assistive technology reads the same local time as the visual display.
|
|
53
|
+
*/
|
|
54
|
+
_getDatetimeAttr(o) {
|
|
55
|
+
if (!this.timeZone) return o.toISOString();
|
|
56
|
+
try {
|
|
57
|
+
const t = {
|
|
58
|
+
timeZone: this.timeZone,
|
|
59
|
+
year: "numeric",
|
|
60
|
+
month: "2-digit",
|
|
61
|
+
day: "2-digit",
|
|
62
|
+
hour: "2-digit",
|
|
63
|
+
minute: "2-digit",
|
|
64
|
+
second: "2-digit",
|
|
65
|
+
hour12: !1
|
|
66
|
+
}, i = (m) => m.reduce((g, d) => (d.type !== "literal" && (g[d.type] = d.value), g), {}), e = i(new Intl.DateTimeFormat("en-CA", t).formatToParts(o)), a = i(
|
|
67
|
+
new Intl.DateTimeFormat("en-CA", { ...t, timeZone: "UTC" }).formatToParts(o)
|
|
68
|
+
), s = (m) => Date.UTC(
|
|
69
|
+
parseInt(m.year ?? "0"),
|
|
70
|
+
parseInt(m.month ?? "1") - 1,
|
|
71
|
+
parseInt(m.day ?? "1"),
|
|
72
|
+
parseInt(m.hour === "24" ? "0" : m.hour ?? "0"),
|
|
73
|
+
parseInt(m.minute ?? "0"),
|
|
74
|
+
parseInt(m.second ?? "0")
|
|
75
|
+
), c = Math.round((s(e) - s(a)) / 6e4), y = c >= 0 ? "+" : "-", l = Math.abs(c), f = String(Math.floor(l / 60)).padStart(2, "0"), v = String(l % 60).padStart(2, "0"), p = e.hour === "24" ? "00" : e.hour ?? "00";
|
|
76
|
+
return `${e.year}-${e.month}-${e.day}T${p}:${e.minute}:${e.second}${y}${f}:${v}`;
|
|
77
|
+
} catch {
|
|
78
|
+
return o.toISOString();
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
_formatRelative(o) {
|
|
82
|
+
const t = /* @__PURE__ */ new Date(), i = o.getTime() - t.getTime(), e = Math.round(i / 1e3), a = Math.abs(e), s = Math.round(e / 60), c = Math.abs(s), y = Math.round(e / 3600), l = Math.abs(y), f = Math.round(e / 86400), v = Math.abs(f), p = Math.round(f / 30), m = Math.abs(p), g = Math.round(f / 365), d = this._getLocale(), b = `${d}|${this.numeric}`;
|
|
83
|
+
let u = r._rtfCache.get(b);
|
|
84
|
+
if (!u)
|
|
85
|
+
try {
|
|
86
|
+
u = new Intl.RelativeTimeFormat(d, { numeric: this.numeric }), r._rtfCache.set(b, u);
|
|
87
|
+
} catch {
|
|
88
|
+
return "";
|
|
89
|
+
}
|
|
90
|
+
try {
|
|
91
|
+
return a < 60 ? u.format(e, "second") : c < 60 ? u.format(s, "minute") : l < 24 ? u.format(y, "hour") : v < 30 ? u.format(f, "day") : m < 12 ? u.format(p, "month") : u.format(g, "year");
|
|
92
|
+
} catch {
|
|
93
|
+
return "";
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
_formatAbsolute(o) {
|
|
97
|
+
const t = {};
|
|
98
|
+
this.month !== void 0 && (t.month = this.month), this.year !== void 0 && (t.year = this.year), this.day !== void 0 && (t.day = this.day), this.weekday !== void 0 && (t.weekday = this.weekday), this.hour !== void 0 && (t.hour = this.hour), this.minute !== void 0 && (t.minute = this.minute), this.second !== void 0 && (t.second = this.second), this.timeZoneName !== void 0 && (t.timeZoneName = this.timeZoneName), this.timeZone !== void 0 && (t.timeZone = this.timeZone);
|
|
99
|
+
const i = this._getHour12();
|
|
100
|
+
i !== void 0 && (t.hour12 = i), Object.keys(t).length === 0 && (t.year = "numeric", t.month = "long", t.day = "numeric");
|
|
101
|
+
const e = this._getLocale(), a = `${e}|${JSON.stringify(t)}`;
|
|
102
|
+
let s = r._dtfCache.get(a);
|
|
103
|
+
if (!s)
|
|
104
|
+
try {
|
|
105
|
+
s = new Intl.DateTimeFormat(e, t), r._dtfCache.set(a, s);
|
|
106
|
+
} catch {
|
|
107
|
+
return "";
|
|
108
|
+
}
|
|
109
|
+
try {
|
|
110
|
+
return s.format(o);
|
|
111
|
+
} catch {
|
|
112
|
+
return "";
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// ─── Render ───
|
|
116
|
+
render() {
|
|
117
|
+
const o = this._getDate(), t = this._getDatetimeAttr(o), i = this.relative ? this._formatRelative(o) : this._formatAbsolute(o);
|
|
118
|
+
return M`<time part="base" datetime=${t}>${i}</time>`;
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
r.styles = [N, T];
|
|
122
|
+
r._dtfCache = /* @__PURE__ */ new Map();
|
|
123
|
+
r._rtfCache = /* @__PURE__ */ new Map();
|
|
124
|
+
n([
|
|
125
|
+
h()
|
|
126
|
+
], r.prototype, "date", 2);
|
|
127
|
+
n([
|
|
128
|
+
h()
|
|
129
|
+
], r.prototype, "lang", 2);
|
|
130
|
+
n([
|
|
131
|
+
h()
|
|
132
|
+
], r.prototype, "month", 2);
|
|
133
|
+
n([
|
|
134
|
+
h()
|
|
135
|
+
], r.prototype, "year", 2);
|
|
136
|
+
n([
|
|
137
|
+
h()
|
|
138
|
+
], r.prototype, "day", 2);
|
|
139
|
+
n([
|
|
140
|
+
h()
|
|
141
|
+
], r.prototype, "weekday", 2);
|
|
142
|
+
n([
|
|
143
|
+
h()
|
|
144
|
+
], r.prototype, "hour", 2);
|
|
145
|
+
n([
|
|
146
|
+
h()
|
|
147
|
+
], r.prototype, "minute", 2);
|
|
148
|
+
n([
|
|
149
|
+
h()
|
|
150
|
+
], r.prototype, "second", 2);
|
|
151
|
+
n([
|
|
152
|
+
h({ attribute: "time-zone-name" })
|
|
153
|
+
], r.prototype, "timeZoneName", 2);
|
|
154
|
+
n([
|
|
155
|
+
h({ attribute: "time-zone" })
|
|
156
|
+
], r.prototype, "timeZone", 2);
|
|
157
|
+
n([
|
|
158
|
+
h({ attribute: "hour-format" })
|
|
159
|
+
], r.prototype, "hourFormat", 2);
|
|
160
|
+
n([
|
|
161
|
+
h()
|
|
162
|
+
], r.prototype, "numeric", 2);
|
|
163
|
+
n([
|
|
164
|
+
h({ type: Boolean })
|
|
165
|
+
], r.prototype, "relative", 2);
|
|
166
|
+
r = n([
|
|
167
|
+
w("hx-format-date")
|
|
168
|
+
], r);
|
|
169
|
+
export {
|
|
170
|
+
r as H
|
|
171
|
+
};
|
|
172
|
+
//# sourceMappingURL=hx-format-date-BIR66MeC.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hx-format-date-BIR66MeC.js","sources":["../../src/components/hx-format-date/hx-format-date.styles.ts","../../src/components/hx-format-date/hx-format-date.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixFormatDateStyles = css`\n :host {\n display: inline;\n }\n\n [part='base'] {\n display: inline;\n font: inherit;\n color: inherit;\n }\n`;\n","import { LitElement, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixFormatDateStyles } from './hx-format-date.styles.js';\n\n/**\n * Formats and displays a date/time value using the browser's `Intl.DateTimeFormat`\n * (or `Intl.RelativeTimeFormat` when `relative` is set). Renders as an inline\n * `<time>` element — machine-readable via `datetime`, human-readable via formatted text.\n *\n * No external dependencies. Uses native Intl APIs only.\n *\n * @summary Inline date/time formatter using Intl APIs with semantic `<time>` output.\n *\n * @tag hx-format-date\n *\n * @csspart base - The inner `<time>` element.\n */\n@customElement('hx-format-date')\nexport class HelixFormatDate extends LitElement {\n static override styles = [tokenStyles, helixFormatDateStyles];\n\n // ─── Intl formatter caches (keyed by locale+options fingerprint) ───\n private static _dtfCache = new Map<string, Intl.DateTimeFormat>();\n private static _rtfCache = new Map<string, Intl.RelativeTimeFormat>();\n\n /**\n * The date/time value to format. Accepts an ISO string, a Unix timestamp (ms), or\n * a `Date` object. Defaults to the current date/time when empty.\n * @attr date\n */\n @property()\n date: string | number | Date = '';\n\n /**\n * BCP 47 locale tag used for formatting (e.g. `\"en-US\"`, `\"de\"`, `\"ja\"`).\n * Defaults to `document.documentElement.lang`, then `navigator.language`.\n * @attr lang\n */\n @property()\n override lang = '';\n\n /**\n * Month display format.\n * @attr month\n */\n @property()\n month: 'narrow' | 'short' | 'long' | 'numeric' | '2-digit' | undefined = undefined;\n\n /**\n * Year display format.\n * @attr year\n */\n @property()\n year: 'numeric' | '2-digit' | undefined = undefined;\n\n /**\n * Day display format.\n * @attr day\n */\n @property()\n day: 'numeric' | '2-digit' | undefined = undefined;\n\n /**\n * Weekday display format.\n * @attr weekday\n */\n @property()\n weekday: 'narrow' | 'short' | 'long' | undefined = undefined;\n\n /**\n * Hour display format.\n * @attr hour\n */\n @property()\n hour: 'numeric' | '2-digit' | undefined = undefined;\n\n /**\n * Minute display format.\n * @attr minute\n */\n @property()\n minute: 'numeric' | '2-digit' | undefined = undefined;\n\n /**\n * Second display format.\n * @attr second\n */\n @property()\n second: 'numeric' | '2-digit' | undefined = undefined;\n\n /**\n * Time zone name display format. Accepts all values supported by\n * `Intl.DateTimeFormatOptions.timeZoneName` including `'short'`, `'long'`,\n * `'shortOffset'`, `'longOffset'`, `'shortGeneric'`, and `'longGeneric'`.\n * @attr time-zone-name\n */\n @property({ attribute: 'time-zone-name' })\n timeZoneName: Intl.DateTimeFormatOptions['timeZoneName'] = undefined;\n\n /**\n * IANA time zone identifier (e.g. `\"America/New_York\"`, `\"UTC\"`).\n * @attr time-zone\n */\n @property({ attribute: 'time-zone' })\n timeZone: string | undefined = undefined;\n\n /**\n * Whether to use 12-hour or 24-hour clock. `\"auto\"` defers to locale default.\n * @attr hour-format\n */\n @property({ attribute: 'hour-format' })\n hourFormat: 'auto' | '12' | '24' = 'auto';\n\n /**\n * Controls whether `Intl.RelativeTimeFormat` always shows numeric output\n * (`\"always\"`) or uses natural language when possible (`\"auto\"`, e.g. \"yesterday\").\n * Only used when `relative` is true.\n * @attr numeric\n */\n @property()\n numeric: 'always' | 'auto' = 'auto';\n\n /**\n * When true, displays a relative time string such as \"2 hours ago\" or \"in 3 days\"\n * using `Intl.RelativeTimeFormat`.\n *\n * **Important:** The relative time string is computed once at render time and does\n * not auto-update. If the displayed text must stay current (e.g. a live \"X minutes\n * ago\" counter), the consuming component must re-set the `date` property on its own\n * interval to trigger a re-render.\n * @attr relative\n */\n @property({ type: Boolean })\n relative = false;\n\n // ─── Private helpers ───\n\n private _getDate(): Date {\n const val = this.date;\n if (val === '') return new Date();\n if (val instanceof Date) {\n return isNaN(val.getTime()) ? new Date() : val;\n }\n if (typeof val === 'number') {\n const d = new Date(val);\n return isNaN(d.getTime()) ? new Date() : d;\n }\n // Numeric strings (e.g. Unix timestamps set via HTML attribute) must be\n // converted to a number before passing to Date — new Date(\"1718462400000\")\n // returns Invalid Date in most JS engines.\n const asNumber = Number(val);\n if (!isNaN(asNumber)) {\n const d = new Date(asNumber);\n return isNaN(d.getTime()) ? new Date() : d;\n }\n const parsed = new Date(val);\n return isNaN(parsed.getTime()) ? new Date() : parsed;\n }\n\n private _getLocale(): string {\n if (this.lang) return this.lang;\n return document.documentElement.lang || navigator.language || 'en';\n }\n\n private _getHour12(): boolean | undefined {\n if (this.hourFormat === '12') return true;\n if (this.hourFormat === '24') return false;\n return undefined;\n }\n\n /**\n * Returns the `datetime` attribute value. When `timeZone` is set, returns a\n * timezone-offset ISO string (e.g. `2024-09-20T05:00:00-04:00`) so that\n * assistive technology reads the same local time as the visual display.\n */\n private _getDatetimeAttr(date: Date): string {\n if (!this.timeZone) return date.toISOString();\n try {\n const fmtOpts: Intl.DateTimeFormatOptions = {\n timeZone: this.timeZone,\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false,\n };\n const reduceParts = (parts: Intl.DateTimeFormatPart[]) =>\n parts.reduce<Record<string, string>>((acc, p) => {\n if (p.type !== 'literal') acc[p.type] = p.value;\n return acc;\n }, {});\n\n const tzParts = reduceParts(new Intl.DateTimeFormat('en-CA', fmtOpts).formatToParts(date));\n const utcParts = reduceParts(\n new Intl.DateTimeFormat('en-CA', { ...fmtOpts, timeZone: 'UTC' }).formatToParts(date),\n );\n\n const toMs = (p: Record<string, string>) =>\n Date.UTC(\n parseInt(p['year'] ?? '0'),\n parseInt(p['month'] ?? '1') - 1,\n parseInt(p['day'] ?? '1'),\n parseInt(p['hour'] === '24' ? '0' : (p['hour'] ?? '0')),\n parseInt(p['minute'] ?? '0'),\n parseInt(p['second'] ?? '0'),\n );\n\n const offsetMin = Math.round((toMs(tzParts) - toMs(utcParts)) / 60000);\n const sign = offsetMin >= 0 ? '+' : '-';\n const absMin = Math.abs(offsetMin);\n const hh = String(Math.floor(absMin / 60)).padStart(2, '0');\n const mm = String(absMin % 60).padStart(2, '0');\n const h = tzParts['hour'] === '24' ? '00' : (tzParts['hour'] ?? '00');\n return `${tzParts['year']}-${tzParts['month']}-${tzParts['day']}T${h}:${tzParts['minute']}:${tzParts['second']}${sign}${hh}:${mm}`;\n } catch {\n return date.toISOString();\n }\n }\n\n private _formatRelative(date: Date): string {\n const now = new Date();\n const diffMs = date.getTime() - now.getTime();\n const diffSec = Math.round(diffMs / 1000);\n const absSec = Math.abs(diffSec);\n const diffMin = Math.round(diffSec / 60);\n const absMin = Math.abs(diffMin);\n const diffHour = Math.round(diffSec / 3600);\n const absHour = Math.abs(diffHour);\n const diffDay = Math.round(diffSec / 86400);\n const absDay = Math.abs(diffDay);\n const diffMonth = Math.round(diffDay / 30);\n const absMonth = Math.abs(diffMonth);\n const diffYear = Math.round(diffDay / 365);\n\n const locale = this._getLocale();\n const cacheKey = `${locale}|${this.numeric}`;\n let rtf = HelixFormatDate._rtfCache.get(cacheKey);\n if (!rtf) {\n try {\n rtf = new Intl.RelativeTimeFormat(locale, { numeric: this.numeric });\n HelixFormatDate._rtfCache.set(cacheKey, rtf);\n } catch {\n return '';\n }\n }\n\n try {\n if (absSec < 60) return rtf.format(diffSec, 'second');\n if (absMin < 60) return rtf.format(diffMin, 'minute');\n if (absHour < 24) return rtf.format(diffHour, 'hour');\n if (absDay < 30) return rtf.format(diffDay, 'day');\n if (absMonth < 12) return rtf.format(diffMonth, 'month');\n return rtf.format(diffYear, 'year');\n } catch {\n return '';\n }\n }\n\n private _formatAbsolute(date: Date): string {\n const options: Intl.DateTimeFormatOptions = {};\n\n if (this.month !== undefined) options.month = this.month;\n if (this.year !== undefined) options.year = this.year;\n if (this.day !== undefined) options.day = this.day;\n if (this.weekday !== undefined) options.weekday = this.weekday;\n if (this.hour !== undefined) options.hour = this.hour;\n if (this.minute !== undefined) options.minute = this.minute;\n if (this.second !== undefined) options.second = this.second;\n if (this.timeZoneName !== undefined) options.timeZoneName = this.timeZoneName;\n if (this.timeZone !== undefined) options.timeZone = this.timeZone;\n\n const hour12 = this._getHour12();\n if (hour12 !== undefined) options.hour12 = hour12;\n\n // Fall back to a sensible default when no format options are specified\n if (Object.keys(options).length === 0) {\n options.year = 'numeric';\n options.month = 'long';\n options.day = 'numeric';\n }\n\n const locale = this._getLocale();\n const cacheKey = `${locale}|${JSON.stringify(options)}`;\n let dtf = HelixFormatDate._dtfCache.get(cacheKey);\n if (!dtf) {\n try {\n dtf = new Intl.DateTimeFormat(locale, options);\n HelixFormatDate._dtfCache.set(cacheKey, dtf);\n } catch {\n // Invalid options (e.g. unknown timeZone) — return empty string\n return '';\n }\n }\n\n try {\n return dtf.format(date);\n } catch {\n return '';\n }\n }\n\n // ─── Render ───\n\n override render() {\n const date = this._getDate();\n const datetimeAttr = this._getDatetimeAttr(date);\n const formattedText = this.relative ? this._formatRelative(date) : this._formatAbsolute(date);\n\n return html`<time part=\"base\" datetime=${datetimeAttr}>${formattedText}</time>`;\n }\n}\n\nexport type HxFormatDate = HelixFormatDate;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-format-date': HelixFormatDate;\n }\n}\n"],"names":["helixFormatDateStyles","css","HelixFormatDate","LitElement","val","d","asNumber","parsed","date","fmtOpts","reduceParts","parts","acc","p","tzParts","utcParts","toMs","offsetMin","sign","absMin","hh","mm","h","now","diffMs","diffSec","absSec","diffMin","diffHour","absHour","diffDay","absDay","diffMonth","absMonth","diffYear","locale","cacheKey","rtf","options","hour12","dtf","datetimeAttr","formattedText","html","tokenStyles","__decorateClass","property","customElement"],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { css as m, LitElement as c, html as d } from "lit";
|
|
2
|
+
import { property as s, customElement as g } from "lit/decorators.js";
|
|
3
|
+
import { t as y } from "./lit-Dpo7RLp4.js";
|
|
4
|
+
const f = m`
|
|
5
|
+
:host {
|
|
6
|
+
display: block;
|
|
7
|
+
box-sizing: border-box;
|
|
8
|
+
width: 100%;
|
|
9
|
+
}
|
|
10
|
+
`, v = m`
|
|
11
|
+
:host {
|
|
12
|
+
display: block;
|
|
13
|
+
min-width: 0;
|
|
14
|
+
min-height: 0;
|
|
15
|
+
}
|
|
16
|
+
`;
|
|
17
|
+
var x = Object.defineProperty, G = Object.getOwnPropertyDescriptor, e = (t, l, a, p) => {
|
|
18
|
+
for (var o = p > 1 ? void 0 : p ? G(l, a) : l, n = t.length - 1, u; n >= 0; n--)
|
|
19
|
+
(u = t[n]) && (o = (p ? u(l, a, o) : u(o)) || o);
|
|
20
|
+
return p && o && x(l, a, o), o;
|
|
21
|
+
};
|
|
22
|
+
const h = {
|
|
23
|
+
none: "0",
|
|
24
|
+
xs: "var(--hx-space-1, 0.25rem)",
|
|
25
|
+
sm: "var(--hx-space-2, 0.5rem)",
|
|
26
|
+
md: "var(--hx-space-4, 1rem)",
|
|
27
|
+
lg: "var(--hx-space-6, 1.5rem)",
|
|
28
|
+
xl: "var(--hx-space-8, 2rem)"
|
|
29
|
+
};
|
|
30
|
+
let r = class extends c {
|
|
31
|
+
constructor() {
|
|
32
|
+
super(...arguments), this.columns = 1, this.gap = "md", this.align = "stretch", this.justify = "stretch";
|
|
33
|
+
}
|
|
34
|
+
_gridTemplateColumns() {
|
|
35
|
+
const t = this.columns;
|
|
36
|
+
return typeof t == "number" || /^\d+$/.test(String(t)) ? `var(--hx-grid-columns, repeat(${t}, 1fr))` : `var(--hx-grid-columns, ${t})`;
|
|
37
|
+
}
|
|
38
|
+
_resolveGap(t) {
|
|
39
|
+
return h[t] ?? h.md;
|
|
40
|
+
}
|
|
41
|
+
_computedRowGap() {
|
|
42
|
+
return this.rowGap ? `var(--hx-grid-row-gap, ${this._resolveGap(this.rowGap)})` : `var(--hx-grid-row-gap, var(--hx-grid-gap, ${this._resolveGap(this.gap)}))`;
|
|
43
|
+
}
|
|
44
|
+
_computedColumnGap() {
|
|
45
|
+
return this.columnGap ? `var(--hx-grid-column-gap, ${this._resolveGap(this.columnGap)})` : `var(--hx-grid-column-gap, var(--hx-grid-gap, ${this._resolveGap(this.gap)}))`;
|
|
46
|
+
}
|
|
47
|
+
_baseStyle() {
|
|
48
|
+
return [
|
|
49
|
+
"display: grid",
|
|
50
|
+
`grid-template-columns: ${this._gridTemplateColumns()}`,
|
|
51
|
+
`row-gap: ${this._computedRowGap()}`,
|
|
52
|
+
`column-gap: ${this._computedColumnGap()}`,
|
|
53
|
+
`align-items: ${this.align}`,
|
|
54
|
+
`justify-items: ${this.justify}`
|
|
55
|
+
].join("; ");
|
|
56
|
+
}
|
|
57
|
+
render() {
|
|
58
|
+
return d`
|
|
59
|
+
<div part="base" role="presentation" style=${this._baseStyle()}>
|
|
60
|
+
<slot></slot>
|
|
61
|
+
</div>
|
|
62
|
+
`;
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
r.styles = [y, f];
|
|
66
|
+
e([
|
|
67
|
+
s({ reflect: !0 })
|
|
68
|
+
], r.prototype, "columns", 2);
|
|
69
|
+
e([
|
|
70
|
+
s({ reflect: !0 })
|
|
71
|
+
], r.prototype, "gap", 2);
|
|
72
|
+
e([
|
|
73
|
+
s({ attribute: "row-gap", reflect: !0 })
|
|
74
|
+
], r.prototype, "rowGap", 2);
|
|
75
|
+
e([
|
|
76
|
+
s({ attribute: "column-gap", reflect: !0 })
|
|
77
|
+
], r.prototype, "columnGap", 2);
|
|
78
|
+
e([
|
|
79
|
+
s({ reflect: !0 })
|
|
80
|
+
], r.prototype, "align", 2);
|
|
81
|
+
e([
|
|
82
|
+
s({ reflect: !0 })
|
|
83
|
+
], r.prototype, "justify", 2);
|
|
84
|
+
r = e([
|
|
85
|
+
g("hx-grid")
|
|
86
|
+
], r);
|
|
87
|
+
let i = class extends c {
|
|
88
|
+
updated(t) {
|
|
89
|
+
(t.has("column") || t.has("row") || t.has("span")) && this._applyHostGridStyles();
|
|
90
|
+
}
|
|
91
|
+
connectedCallback() {
|
|
92
|
+
super.connectedCallback(), this._applyHostGridStyles();
|
|
93
|
+
}
|
|
94
|
+
_applyHostGridStyles() {
|
|
95
|
+
this.column ? this.style.gridColumn = this.column : this.span !== void 0 ? this.style.gridColumn = `span ${this.span}` : this.style.gridColumn = "", this.row ? this.style.gridRow = this.row : this.style.gridRow = "";
|
|
96
|
+
}
|
|
97
|
+
render() {
|
|
98
|
+
return d`<slot></slot>`;
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
i.styles = [y, v];
|
|
102
|
+
e([
|
|
103
|
+
s({ reflect: !0 })
|
|
104
|
+
], i.prototype, "column", 2);
|
|
105
|
+
e([
|
|
106
|
+
s({ reflect: !0 })
|
|
107
|
+
], i.prototype, "row", 2);
|
|
108
|
+
e([
|
|
109
|
+
s({ type: Number, reflect: !0 })
|
|
110
|
+
], i.prototype, "span", 2);
|
|
111
|
+
i = e([
|
|
112
|
+
g("hx-grid-item")
|
|
113
|
+
], i);
|
|
114
|
+
export {
|
|
115
|
+
r as H,
|
|
116
|
+
i as a
|
|
117
|
+
};
|
|
118
|
+
//# sourceMappingURL=hx-grid-Dgo7fnWu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hx-grid-Dgo7fnWu.js","sources":["../../src/components/hx-grid/hx-grid.styles.ts","../../src/components/hx-grid/hx-grid.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixGridStyles = css`\n :host {\n display: block;\n box-sizing: border-box;\n width: 100%;\n }\n`;\n\nexport const helixGridItemStyles = css`\n :host {\n display: block;\n min-width: 0;\n min-height: 0;\n }\n`;\n","import { LitElement, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixGridStyles, helixGridItemStyles } from './hx-grid.styles.js';\n\ntype GapSize = 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';\ntype AlignValue = 'start' | 'center' | 'end' | 'stretch';\ntype JustifyValue = 'start' | 'center' | 'end' | 'stretch';\n\nconst GAP_TOKENS: Record<GapSize, string> = {\n none: '0',\n xs: 'var(--hx-space-1, 0.25rem)',\n sm: 'var(--hx-space-2, 0.5rem)',\n md: 'var(--hx-space-4, 1rem)',\n lg: 'var(--hx-space-6, 1.5rem)',\n xl: 'var(--hx-space-8, 2rem)',\n};\n\n/**\n * A CSS Grid layout wrapper with design-token-based column and gap system.\n *\n * @summary CSS Grid layout primitive for building responsive grid layouts.\n *\n * @tag hx-grid\n *\n * @slot - Default slot for grid content (use `hx-grid-item` for precise placement).\n *\n * @csspart base - The grid container element.\n *\n * @cssprop [--hx-grid-columns] - Override the computed grid-template-columns.\n * @cssprop [--hx-grid-gap] - Override the computed gap.\n * @cssprop [--hx-grid-row-gap] - Override the computed row-gap.\n * @cssprop [--hx-grid-column-gap] - Override the computed column-gap.\n */\n@customElement('hx-grid')\nexport class HelixGrid extends LitElement {\n static override styles = [tokenStyles, helixGridStyles];\n\n /**\n * Number of equal columns (`repeat(N, 1fr)`) or a CSS grid-template-columns string.\n * @attr columns\n */\n @property({ reflect: true })\n columns: number | string = 1;\n\n /**\n * Gap size applied to both row and column gaps.\n * @attr gap\n */\n @property({ reflect: true })\n gap: GapSize = 'md';\n\n /**\n * Row gap override. When set, takes precedence over `gap` for row spacing.\n * @attr row-gap\n */\n @property({ attribute: 'row-gap', reflect: true })\n rowGap: GapSize | undefined;\n\n /**\n * Column gap override. When set, takes precedence over `gap` for column spacing.\n * @attr column-gap\n */\n @property({ attribute: 'column-gap', reflect: true })\n columnGap: GapSize | undefined;\n\n /**\n * Aligns grid items along the block axis (align-items).\n * @attr align\n */\n @property({ reflect: true })\n align: AlignValue = 'stretch';\n\n /**\n * Justifies grid items along the inline axis (justify-items).\n * @attr justify\n */\n @property({ reflect: true })\n justify: JustifyValue = 'stretch';\n\n private _gridTemplateColumns(): string {\n const cols = this.columns;\n if (typeof cols === 'number' || /^\\d+$/.test(String(cols))) {\n return `var(--hx-grid-columns, repeat(${cols}, 1fr))`;\n }\n return `var(--hx-grid-columns, ${cols})`;\n }\n\n private _resolveGap(size: GapSize): string {\n return GAP_TOKENS[size] ?? GAP_TOKENS.md;\n }\n\n private _computedRowGap(): string {\n if (this.rowGap) {\n return `var(--hx-grid-row-gap, ${this._resolveGap(this.rowGap)})`;\n }\n return `var(--hx-grid-row-gap, var(--hx-grid-gap, ${this._resolveGap(this.gap)}))`;\n }\n\n private _computedColumnGap(): string {\n if (this.columnGap) {\n return `var(--hx-grid-column-gap, ${this._resolveGap(this.columnGap)})`;\n }\n return `var(--hx-grid-column-gap, var(--hx-grid-gap, ${this._resolveGap(this.gap)}))`;\n }\n\n private _baseStyle(): string {\n return [\n 'display: grid',\n `grid-template-columns: ${this._gridTemplateColumns()}`,\n `row-gap: ${this._computedRowGap()}`,\n `column-gap: ${this._computedColumnGap()}`,\n `align-items: ${this.align}`,\n `justify-items: ${this.justify}`,\n ].join('; ');\n }\n\n override render() {\n return html`\n <div part=\"base\" role=\"presentation\" style=${this._baseStyle()}>\n <slot></slot>\n </div>\n `;\n }\n}\n\n/**\n * Optional companion element for precise grid item placement.\n * Applies grid-column and grid-row directly to the host element\n * so it participates correctly in the parent CSS grid layout.\n *\n * @summary Grid item with explicit column/row placement.\n *\n * @tag hx-grid-item\n *\n * @slot - Default slot for item content.\n */\n@customElement('hx-grid-item')\nexport class HelixGridItem extends LitElement {\n static override styles = [tokenStyles, helixGridItemStyles];\n\n /**\n * CSS grid-column value (e.g., \"1 / 3\", \"span 2\").\n * @attr column\n */\n @property({ reflect: true })\n column: string | undefined;\n\n /**\n * CSS grid-row value (e.g., \"1 / 2\").\n * @attr row\n */\n @property({ reflect: true })\n row: string | undefined;\n\n /**\n * Column span shorthand — equivalent to setting `column: \"span N\"`.\n * @attr span\n */\n @property({ type: Number, reflect: true })\n span: number | undefined;\n\n override updated(changed: Map<string, unknown>): void {\n if (changed.has('column') || changed.has('row') || changed.has('span')) {\n this._applyHostGridStyles();\n }\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this._applyHostGridStyles();\n }\n\n private _applyHostGridStyles(): void {\n if (this.column) {\n this.style.gridColumn = this.column;\n } else if (this.span !== undefined) {\n this.style.gridColumn = `span ${this.span}`;\n } else {\n this.style.gridColumn = '';\n }\n if (this.row) {\n this.style.gridRow = this.row;\n } else {\n this.style.gridRow = '';\n }\n }\n\n override render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-grid': HelixGrid;\n 'hx-grid-item': HelixGridItem;\n }\n}\n"],"names":["helixGridStyles","css","helixGridItemStyles","GAP_TOKENS","HelixGrid","LitElement","cols","size","html","tokenStyles","__decorateClass","property","customElement","HelixGridItem","changed"],"mappings":"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"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { css as p, html as n, LitElement as v, nothing as c } from "lit";
|
|
2
|
+
import { property as f, customElement as u } from "lit/decorators.js";
|
|
3
|
+
import { classMap as d } from "lit/directives/class-map.js";
|
|
4
|
+
import { ifDefined as h } from "lit/directives/if-defined.js";
|
|
5
|
+
import { t as m } from "./lit-Dpo7RLp4.js";
|
|
6
|
+
const g = p`
|
|
7
|
+
:host {
|
|
8
|
+
display: block;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.help-text {
|
|
12
|
+
display: inline-flex;
|
|
13
|
+
align-items: baseline;
|
|
14
|
+
gap: var(--hx-help-text-icon-gap, 0.375rem);
|
|
15
|
+
font-family: var(--hx-help-text-font-family, var(--hx-font-family-sans, sans-serif));
|
|
16
|
+
font-size: var(--hx-help-text-font-size, var(--hx-font-size-sm, 0.875rem));
|
|
17
|
+
font-weight: var(--hx-help-text-font-weight, var(--hx-font-weight-normal, 400));
|
|
18
|
+
line-height: var(--hx-help-text-line-height, var(--hx-line-height-normal, 1.5));
|
|
19
|
+
color: var(--hx-help-text-color, var(--hx-color-neutral-500, #6b7280));
|
|
20
|
+
margin: 0;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.help-text__icon {
|
|
24
|
+
flex-shrink: 0;
|
|
25
|
+
display: inline-flex;
|
|
26
|
+
align-items: center;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.help-text__text {
|
|
30
|
+
min-width: 0;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/* ─── Variant: default ─── */
|
|
34
|
+
|
|
35
|
+
.help-text--default {
|
|
36
|
+
--hx-help-text-color: var(--hx-color-neutral-500, #6b7280);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* ─── Variant: error ─── */
|
|
40
|
+
|
|
41
|
+
.help-text--error {
|
|
42
|
+
--hx-help-text-color: var(--hx-color-error-600, #dc2626);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/* ─── Variant: warning ─── */
|
|
46
|
+
|
|
47
|
+
.help-text--warning {
|
|
48
|
+
--hx-help-text-color: var(--hx-color-warning-700, #b45309);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* ─── Variant: success ─── */
|
|
52
|
+
|
|
53
|
+
.help-text--success {
|
|
54
|
+
--hx-help-text-color: var(--hx-color-success-700, #15803d);
|
|
55
|
+
}
|
|
56
|
+
`;
|
|
57
|
+
var w = Object.defineProperty, y = Object.getOwnPropertyDescriptor, x = (l, e, o, r) => {
|
|
58
|
+
for (var t = r > 1 ? void 0 : r ? y(e, o) : e, s = l.length - 1, a; s >= 0; s--)
|
|
59
|
+
(a = l[s]) && (t = (r ? a(e, o, t) : a(t)) || t);
|
|
60
|
+
return r && t && w(e, o, t), t;
|
|
61
|
+
};
|
|
62
|
+
const k = n`<svg viewBox="0 0 16 16" aria-hidden="true" width="1em" height="1em">
|
|
63
|
+
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-width="1.5" fill="none" />
|
|
64
|
+
<line
|
|
65
|
+
x1="8"
|
|
66
|
+
y1="4.5"
|
|
67
|
+
x2="8"
|
|
68
|
+
y2="8.5"
|
|
69
|
+
stroke="currentColor"
|
|
70
|
+
stroke-width="1.5"
|
|
71
|
+
stroke-linecap="round"
|
|
72
|
+
/>
|
|
73
|
+
<circle cx="8" cy="11" r="0.75" fill="currentColor" />
|
|
74
|
+
</svg>`, _ = n`<svg viewBox="0 0 16 16" aria-hidden="true" width="1em" height="1em">
|
|
75
|
+
<path
|
|
76
|
+
d="M7.134 2.5a1 1 0 011.732 0l5.196 9a1 1 0 01-.866 1.5H2.804a1 1 0 01-.866-1.5l5.196-9z"
|
|
77
|
+
stroke="currentColor"
|
|
78
|
+
stroke-width="1.25"
|
|
79
|
+
fill="none"
|
|
80
|
+
/>
|
|
81
|
+
<line
|
|
82
|
+
x1="8"
|
|
83
|
+
y1="6"
|
|
84
|
+
x2="8"
|
|
85
|
+
y2="9"
|
|
86
|
+
stroke="currentColor"
|
|
87
|
+
stroke-width="1.25"
|
|
88
|
+
stroke-linecap="round"
|
|
89
|
+
/>
|
|
90
|
+
<circle cx="8" cy="11" r="0.625" fill="currentColor" />
|
|
91
|
+
</svg>`, C = n`<svg viewBox="0 0 16 16" aria-hidden="true" width="1em" height="1em">
|
|
92
|
+
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-width="1.5" fill="none" />
|
|
93
|
+
<path
|
|
94
|
+
d="M5.25 8.25l1.75 1.75 3.75-3.75"
|
|
95
|
+
stroke="currentColor"
|
|
96
|
+
stroke-width="1.5"
|
|
97
|
+
stroke-linecap="round"
|
|
98
|
+
stroke-linejoin="round"
|
|
99
|
+
fill="none"
|
|
100
|
+
/>
|
|
101
|
+
</svg>`, b = {
|
|
102
|
+
default: c,
|
|
103
|
+
error: k,
|
|
104
|
+
warning: _,
|
|
105
|
+
success: C
|
|
106
|
+
};
|
|
107
|
+
let i = class extends v {
|
|
108
|
+
constructor() {
|
|
109
|
+
super(...arguments), this.variant = "default";
|
|
110
|
+
}
|
|
111
|
+
render() {
|
|
112
|
+
const l = {
|
|
113
|
+
"help-text": !0,
|
|
114
|
+
[`help-text--${this.variant}`]: !0
|
|
115
|
+
}, e = b[this.variant], o = this.variant === "error" ? "alert" : void 0, r = this.variant === "warning" || this.variant === "success" ? "polite" : void 0;
|
|
116
|
+
return n`<span
|
|
117
|
+
part="base"
|
|
118
|
+
class=${d(l)}
|
|
119
|
+
role=${h(o)}
|
|
120
|
+
aria-live=${h(r)}
|
|
121
|
+
>${e !== c ? n`<span part="icon" class="help-text__icon">${e}</span>` : c}<span part="text" class="help-text__text"><slot></slot></span>
|
|
122
|
+
</span>`;
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
i.styles = [m, g];
|
|
126
|
+
x([
|
|
127
|
+
f({ type: String, reflect: !0 })
|
|
128
|
+
], i.prototype, "variant", 2);
|
|
129
|
+
i = x([
|
|
130
|
+
u("hx-help-text")
|
|
131
|
+
], i);
|
|
132
|
+
export {
|
|
133
|
+
i as H
|
|
134
|
+
};
|
|
135
|
+
//# sourceMappingURL=hx-help-text-C3WCP11-.js.map
|