@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,271 @@
|
|
|
1
|
+
import { css as u, LitElement as _, nothing as d, html as h } from "lit";
|
|
2
|
+
import { property as l, state as p, customElement as x } from "lit/decorators.js";
|
|
3
|
+
import { classMap as g } from "lit/directives/class-map.js";
|
|
4
|
+
import { t as f } from "./lit-Dpo7RLp4.js";
|
|
5
|
+
const b = u`
|
|
6
|
+
:host {
|
|
7
|
+
display: block;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
:host([disabled]) {
|
|
11
|
+
opacity: var(--hx-opacity-disabled);
|
|
12
|
+
cursor: not-allowed;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
* {
|
|
16
|
+
box-sizing: border-box;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/* ─── Fieldset ─── */
|
|
20
|
+
|
|
21
|
+
.fieldset {
|
|
22
|
+
border: none;
|
|
23
|
+
margin: 0;
|
|
24
|
+
padding: 0;
|
|
25
|
+
display: flex;
|
|
26
|
+
flex-direction: column;
|
|
27
|
+
gap: var(--hx-space-2);
|
|
28
|
+
font-family: var(--hx-font-family-sans);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/* ─── Legend ─── */
|
|
32
|
+
|
|
33
|
+
.fieldset__legend {
|
|
34
|
+
display: flex;
|
|
35
|
+
align-items: baseline;
|
|
36
|
+
gap: var(--hx-space-1);
|
|
37
|
+
font-size: var(--hx-font-size-sm);
|
|
38
|
+
font-weight: var(--hx-font-weight-medium);
|
|
39
|
+
color: var(--hx-checkbox-group-label-color, var(--hx-color-neutral-700));
|
|
40
|
+
line-height: var(--hx-line-height-normal);
|
|
41
|
+
padding: 0;
|
|
42
|
+
margin-bottom: var(--hx-space-1);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.fieldset__required-marker {
|
|
46
|
+
color: var(--hx-checkbox-group-error-color, var(--hx-color-error-text, #b91c1c));
|
|
47
|
+
font-weight: var(--hx-font-weight-bold);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* ─── Items Container ─── */
|
|
51
|
+
|
|
52
|
+
.fieldset__items {
|
|
53
|
+
display: flex;
|
|
54
|
+
flex-direction: column;
|
|
55
|
+
gap: var(--hx-checkbox-group-gap, var(--hx-space-3));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
:host([orientation='horizontal']) .fieldset__items {
|
|
59
|
+
flex-direction: row;
|
|
60
|
+
flex-wrap: wrap;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/* ─── Error State ─── */
|
|
64
|
+
|
|
65
|
+
.fieldset--error .fieldset__legend {
|
|
66
|
+
color: var(--hx-checkbox-group-error-color, var(--hx-color-error-text, #b91c1c));
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* ─── Help Text & Error Messages ─── */
|
|
70
|
+
|
|
71
|
+
.fieldset__help-text {
|
|
72
|
+
font-size: var(--hx-font-size-xs);
|
|
73
|
+
color: var(--hx-color-neutral-500);
|
|
74
|
+
line-height: var(--hx-line-height-normal);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.fieldset__error {
|
|
78
|
+
font-size: var(--hx-font-size-xs);
|
|
79
|
+
color: var(--hx-checkbox-group-error-color, var(--hx-color-error-text, #b91c1c));
|
|
80
|
+
line-height: var(--hx-line-height-normal);
|
|
81
|
+
}
|
|
82
|
+
`;
|
|
83
|
+
var m = Object.defineProperty, k = Object.getOwnPropertyDescriptor, a = (e, t, s, o) => {
|
|
84
|
+
for (var i = o > 1 ? void 0 : o ? k(t, s) : t, n = e.length - 1, c; n >= 0; n--)
|
|
85
|
+
(c = e[n]) && (i = (o ? c(t, s, i) : c(i)) || i);
|
|
86
|
+
return o && i && m(t, s, i), i;
|
|
87
|
+
};
|
|
88
|
+
let y = 0, r = class extends _ {
|
|
89
|
+
constructor() {
|
|
90
|
+
super(), this.name = "", this.label = "", this.required = !1, this.disabled = !1, this.error = "", this.orientation = "vertical", this._hasErrorSlot = !1, this._hasHelpSlot = !1, this._groupId = `hx-checkbox-group-${++y}`, this._helpTextId = `${this._groupId}-help`, this._errorId = `${this._groupId}-error`, this._handleCheckboxChange = (e) => {
|
|
91
|
+
if (e.target === this) return;
|
|
92
|
+
e.stopImmediatePropagation();
|
|
93
|
+
const t = this._getCheckedValues();
|
|
94
|
+
this._updateFormValue(t), this._updateValidity(t), this.dispatchEvent(
|
|
95
|
+
new CustomEvent("hx-change", {
|
|
96
|
+
bubbles: !0,
|
|
97
|
+
composed: !0,
|
|
98
|
+
detail: { values: t }
|
|
99
|
+
})
|
|
100
|
+
);
|
|
101
|
+
}, this._internals = this.attachInternals();
|
|
102
|
+
}
|
|
103
|
+
// ─── Slot Handlers ───
|
|
104
|
+
_handleErrorSlotChange(e) {
|
|
105
|
+
const t = e.target;
|
|
106
|
+
this._hasErrorSlot = t.assignedNodes({ flatten: !0 }).length > 0;
|
|
107
|
+
}
|
|
108
|
+
_handleHelpSlotChange(e) {
|
|
109
|
+
const t = e.target;
|
|
110
|
+
this._hasHelpSlot = t.assignedNodes({ flatten: !0 }).length > 0;
|
|
111
|
+
}
|
|
112
|
+
// ─── Lifecycle ───
|
|
113
|
+
connectedCallback() {
|
|
114
|
+
super.connectedCallback(), this.addEventListener("hx-change", this._handleCheckboxChange);
|
|
115
|
+
}
|
|
116
|
+
disconnectedCallback() {
|
|
117
|
+
super.disconnectedCallback(), this.removeEventListener("hx-change", this._handleCheckboxChange);
|
|
118
|
+
}
|
|
119
|
+
updated(e) {
|
|
120
|
+
super.updated(e), e.has("disabled") && this._syncCheckboxes(), e.has("name") && this._syncCheckboxNames(), e.has("required") && this._updateValidity();
|
|
121
|
+
}
|
|
122
|
+
firstUpdated(e) {
|
|
123
|
+
super.firstUpdated(e), this._syncCheckboxes(), this._syncCheckboxNames();
|
|
124
|
+
const t = this._getCheckedValues();
|
|
125
|
+
this._updateFormValue(t), this._updateValidity(t);
|
|
126
|
+
}
|
|
127
|
+
// ─── Checkbox Management ───
|
|
128
|
+
_getCheckboxes() {
|
|
129
|
+
return Array.from(this.children).filter((e) => e.tagName === "HX-CHECKBOX");
|
|
130
|
+
}
|
|
131
|
+
_getCheckedValues() {
|
|
132
|
+
return this._getCheckboxes().filter((e) => e.checked).map((e) => e.value);
|
|
133
|
+
}
|
|
134
|
+
_syncCheckboxes() {
|
|
135
|
+
this._getCheckboxes().forEach((t) => {
|
|
136
|
+
t.disabled = this.disabled;
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
_syncCheckboxNames() {
|
|
140
|
+
if (!this.name) return;
|
|
141
|
+
this._getCheckboxes().forEach((t) => {
|
|
142
|
+
t.name = this.name;
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
_handleSlotChange() {
|
|
146
|
+
this._syncCheckboxes(), this._syncCheckboxNames();
|
|
147
|
+
const e = this._getCheckedValues();
|
|
148
|
+
this._updateFormValue(e), this._updateValidity(e);
|
|
149
|
+
}
|
|
150
|
+
// ─── Form Integration ───
|
|
151
|
+
_updateFormValue(e) {
|
|
152
|
+
if (e.length === 0) {
|
|
153
|
+
this._internals.setFormValue(null);
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
const t = new FormData();
|
|
157
|
+
e.forEach((s) => t.append(this.name, s)), this._internals.setFormValue(t);
|
|
158
|
+
}
|
|
159
|
+
_updateValidity(e) {
|
|
160
|
+
const t = e ?? this._getCheckedValues();
|
|
161
|
+
if (this.required && t.length === 0) {
|
|
162
|
+
const s = this._getCheckboxes()[0];
|
|
163
|
+
this._internals.setValidity(
|
|
164
|
+
{ valueMissing: !0 },
|
|
165
|
+
this.error || "Please select at least one option.",
|
|
166
|
+
s
|
|
167
|
+
);
|
|
168
|
+
} else
|
|
169
|
+
this._internals.setValidity({});
|
|
170
|
+
}
|
|
171
|
+
/** Returns the associated form element, if any. */
|
|
172
|
+
get form() {
|
|
173
|
+
return this._internals.form;
|
|
174
|
+
}
|
|
175
|
+
/** Returns the validation message. */
|
|
176
|
+
get validationMessage() {
|
|
177
|
+
return this._internals.validationMessage;
|
|
178
|
+
}
|
|
179
|
+
/** Returns the ValidityState object. */
|
|
180
|
+
get validity() {
|
|
181
|
+
return this._internals.validity;
|
|
182
|
+
}
|
|
183
|
+
/** Checks whether the group satisfies its constraints. */
|
|
184
|
+
checkValidity() {
|
|
185
|
+
return this._internals.checkValidity();
|
|
186
|
+
}
|
|
187
|
+
/** Reports validity and shows the browser's constraint validation UI. */
|
|
188
|
+
reportValidity() {
|
|
189
|
+
return this._internals.reportValidity();
|
|
190
|
+
}
|
|
191
|
+
/** Called by the form when it resets. */
|
|
192
|
+
formResetCallback() {
|
|
193
|
+
this._getCheckboxes().forEach((t) => {
|
|
194
|
+
t.checked = !1;
|
|
195
|
+
}), this._internals.setFormValue(null), this._updateValidity([]);
|
|
196
|
+
}
|
|
197
|
+
/** Called when the form restores state (e.g., back/forward navigation). */
|
|
198
|
+
formStateRestoreCallback(e) {
|
|
199
|
+
if (!(e instanceof FormData)) return;
|
|
200
|
+
const t = e.getAll(this.name).map((o) => String(o));
|
|
201
|
+
this._getCheckboxes().forEach((o) => {
|
|
202
|
+
o.checked = t.includes(o.value);
|
|
203
|
+
}), this._updateFormValue(t), this._updateValidity(t);
|
|
204
|
+
}
|
|
205
|
+
// ─── Render ───
|
|
206
|
+
render() {
|
|
207
|
+
const e = !!this.error || this._hasErrorSlot, t = {
|
|
208
|
+
fieldset: !0,
|
|
209
|
+
"fieldset--error": e,
|
|
210
|
+
"fieldset--disabled": this.disabled,
|
|
211
|
+
"fieldset--required": this.required
|
|
212
|
+
}, s = [e ? this._errorId : null, this._hasHelpSlot ? this._helpTextId : null].filter(Boolean).join(" ") || void 0;
|
|
213
|
+
return h`
|
|
214
|
+
<fieldset
|
|
215
|
+
part="group"
|
|
216
|
+
class=${g(t)}
|
|
217
|
+
aria-describedby=${s ?? d}
|
|
218
|
+
>
|
|
219
|
+
<legend part="label" class="fieldset__legend">
|
|
220
|
+
<slot name="label">${this.label}</slot>
|
|
221
|
+
${this.required ? h`<span class="fieldset__required-marker" aria-hidden="true">*</span>` : d}
|
|
222
|
+
</legend>
|
|
223
|
+
|
|
224
|
+
<div class="fieldset__items">
|
|
225
|
+
<slot @slotchange=${this._handleSlotChange}></slot>
|
|
226
|
+
</div>
|
|
227
|
+
|
|
228
|
+
${e ? h`<div part="error-message" class="fieldset__error" id=${this._errorId} role="alert">
|
|
229
|
+
<slot name="error" @slotchange=${this._handleErrorSlotChange}> ${this.error} </slot>
|
|
230
|
+
</div>` : h`<slot name="error" @slotchange=${this._handleErrorSlotChange}></slot>`}
|
|
231
|
+
|
|
232
|
+
<div part="help-text" class="fieldset__help-text" id=${this._helpTextId}>
|
|
233
|
+
<slot name="help" @slotchange=${this._handleHelpSlotChange}></slot>
|
|
234
|
+
</div>
|
|
235
|
+
</fieldset>
|
|
236
|
+
`;
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
r.styles = [f, b];
|
|
240
|
+
r.formAssociated = !0;
|
|
241
|
+
a([
|
|
242
|
+
l({ type: String })
|
|
243
|
+
], r.prototype, "name", 2);
|
|
244
|
+
a([
|
|
245
|
+
l({ type: String })
|
|
246
|
+
], r.prototype, "label", 2);
|
|
247
|
+
a([
|
|
248
|
+
l({ type: Boolean, reflect: !0 })
|
|
249
|
+
], r.prototype, "required", 2);
|
|
250
|
+
a([
|
|
251
|
+
l({ type: Boolean, reflect: !0 })
|
|
252
|
+
], r.prototype, "disabled", 2);
|
|
253
|
+
a([
|
|
254
|
+
l({ type: String })
|
|
255
|
+
], r.prototype, "error", 2);
|
|
256
|
+
a([
|
|
257
|
+
l({ type: String, reflect: !0 })
|
|
258
|
+
], r.prototype, "orientation", 2);
|
|
259
|
+
a([
|
|
260
|
+
p()
|
|
261
|
+
], r.prototype, "_hasErrorSlot", 2);
|
|
262
|
+
a([
|
|
263
|
+
p()
|
|
264
|
+
], r.prototype, "_hasHelpSlot", 2);
|
|
265
|
+
r = a([
|
|
266
|
+
x("hx-checkbox-group")
|
|
267
|
+
], r);
|
|
268
|
+
export {
|
|
269
|
+
r as H
|
|
270
|
+
};
|
|
271
|
+
//# sourceMappingURL=hx-checkbox-group-ClGxYUi0.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hx-checkbox-group-ClGxYUi0.js","sources":["../../src/components/hx-checkbox-group/hx-checkbox-group.styles.ts","../../src/components/hx-checkbox-group/hx-checkbox-group.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixCheckboxGroupStyles = css`\n :host {\n display: block;\n }\n\n :host([disabled]) {\n opacity: var(--hx-opacity-disabled);\n cursor: not-allowed;\n }\n\n * {\n box-sizing: border-box;\n }\n\n /* ─── Fieldset ─── */\n\n .fieldset {\n border: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: var(--hx-space-2);\n font-family: var(--hx-font-family-sans);\n }\n\n /* ─── Legend ─── */\n\n .fieldset__legend {\n display: flex;\n align-items: baseline;\n gap: var(--hx-space-1);\n font-size: var(--hx-font-size-sm);\n font-weight: var(--hx-font-weight-medium);\n color: var(--hx-checkbox-group-label-color, var(--hx-color-neutral-700));\n line-height: var(--hx-line-height-normal);\n padding: 0;\n margin-bottom: var(--hx-space-1);\n }\n\n .fieldset__required-marker {\n color: var(--hx-checkbox-group-error-color, var(--hx-color-error-text, #b91c1c));\n font-weight: var(--hx-font-weight-bold);\n }\n\n /* ─── Items Container ─── */\n\n .fieldset__items {\n display: flex;\n flex-direction: column;\n gap: var(--hx-checkbox-group-gap, var(--hx-space-3));\n }\n\n :host([orientation='horizontal']) .fieldset__items {\n flex-direction: row;\n flex-wrap: wrap;\n }\n\n /* ─── Error State ─── */\n\n .fieldset--error .fieldset__legend {\n color: var(--hx-checkbox-group-error-color, var(--hx-color-error-text, #b91c1c));\n }\n\n /* ─── Help Text & Error Messages ─── */\n\n .fieldset__help-text {\n font-size: var(--hx-font-size-xs);\n color: var(--hx-color-neutral-500);\n line-height: var(--hx-line-height-normal);\n }\n\n .fieldset__error {\n font-size: var(--hx-font-size-xs);\n color: var(--hx-checkbox-group-error-color, var(--hx-color-error-text, #b91c1c));\n line-height: var(--hx-line-height-normal);\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixCheckboxGroupStyles } from './hx-checkbox-group.styles.js';\nimport type { HelixCheckbox } from '../hx-checkbox/hx-checkbox.js';\n\n/** Monotonic counter for stable, SSR-safe IDs. */\nlet _uid = 0;\n\n/**\n * A form-associated checkbox group that manages a set of `<hx-checkbox>` children.\n *\n * @summary Form-associated checkbox group with label, validation, help text, and multi-value form submission.\n *\n * @tag hx-checkbox-group\n *\n * @slot - `<hx-checkbox>` elements.\n * @slot label - Rich HTML group label (overrides the label property when used).\n * @slot error - Custom error content (overrides the error property).\n * @slot help - Group-level help text.\n *\n * @fires {CustomEvent<{values: string[]}>} hx-change - Dispatched when any child checkbox changes.\n *\n * @csspart group - The fieldset wrapper.\n * @csspart label - The legend/label.\n * @csspart help-text - The help text container.\n * @csspart error-message - The error message container.\n *\n * @cssprop [--hx-checkbox-group-gap=var(--hx-space-3, 0.75rem)] - Gap between checkbox items.\n * @cssprop [--hx-checkbox-group-label-color=var(--hx-color-neutral-700, #343a40)] - Label text color.\n * @cssprop [--hx-checkbox-group-error-color=var(--hx-color-error-500, #dc3545)] - Error message color.\n *\n * @drupal\n * Form-associated; render via Twig:\n * ```twig\n * <hx-checkbox-group name=\"{{ field_name }}\" label=\"{{ label }}\"{{ required ? ' required' : '' }}>\n * {% for option in options %}\n * <hx-checkbox value=\"{{ option.value }}\" label=\"{{ option.label }}\"></hx-checkbox>\n * {% endfor %}\n * </hx-checkbox-group>\n * ```\n * The `name` attribute propagates automatically to child checkboxes — no Drupal behavior required.\n */\n@customElement('hx-checkbox-group')\nexport class HelixCheckboxGroup extends LitElement {\n static override styles = [tokenStyles, helixCheckboxGroupStyles];\n\n // ─── Form Association ───\n\n static formAssociated = true;\n\n private _internals: ElementInternals;\n\n constructor() {\n super();\n this._internals = this.attachInternals();\n }\n\n // ─── Properties ───\n\n /**\n * The name used for form submission. Passed to child `hx-checkbox` elements.\n * @attr name\n */\n @property({ type: String })\n name = '';\n\n /**\n * The fieldset legend/label text.\n * @attr label\n */\n @property({ type: String })\n label = '';\n\n /**\n * Whether at least one checkbox must be checked for form submission.\n * @attr required\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * Whether the entire group is disabled.\n * @attr disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Error message to display. When set, the group enters an error state.\n * @attr error\n */\n @property({ type: String })\n error = '';\n\n /**\n * Layout orientation of the checkbox items.\n * @attr orientation\n */\n @property({ type: String, reflect: true })\n orientation: 'vertical' | 'horizontal' = 'vertical';\n\n @state() private _hasErrorSlot = false;\n @state() private _hasHelpSlot = false;\n\n // ─── Internal IDs ───\n\n private _groupId = `hx-checkbox-group-${++_uid}`;\n private _helpTextId = `${this._groupId}-help`;\n private _errorId = `${this._groupId}-error`;\n\n // ─── Slot Handlers ───\n\n private _handleErrorSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasErrorSlot = slot.assignedNodes({ flatten: true }).length > 0;\n }\n\n private _handleHelpSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement;\n this._hasHelpSlot = slot.assignedNodes({ flatten: true }).length > 0;\n }\n\n // ─── Lifecycle ───\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('hx-change', this._handleCheckboxChange as EventListener);\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('hx-change', this._handleCheckboxChange as EventListener);\n }\n\n override updated(changedProperties: Map<string, unknown>): void {\n super.updated(changedProperties);\n if (changedProperties.has('disabled')) {\n this._syncCheckboxes();\n }\n if (changedProperties.has('name')) {\n this._syncCheckboxNames();\n }\n if (changedProperties.has('required')) {\n this._updateValidity();\n }\n }\n\n override firstUpdated(changedProperties: Map<string, unknown>): void {\n super.firstUpdated(changedProperties);\n this._syncCheckboxes();\n this._syncCheckboxNames();\n const checkedValues = this._getCheckedValues();\n this._updateFormValue(checkedValues);\n this._updateValidity(checkedValues);\n }\n\n // ─── Checkbox Management ───\n\n private _getCheckboxes(): HelixCheckbox[] {\n return Array.from(this.children).filter((c): c is HelixCheckbox => c.tagName === 'HX-CHECKBOX');\n }\n\n private _getCheckedValues(): string[] {\n return this._getCheckboxes()\n .filter((cb) => cb.checked)\n .map((cb) => cb.value);\n }\n\n private _syncCheckboxes(): void {\n const checkboxes = this._getCheckboxes();\n checkboxes.forEach((cb) => {\n cb.disabled = this.disabled;\n });\n }\n\n private _syncCheckboxNames(): void {\n if (!this.name) return;\n const checkboxes = this._getCheckboxes();\n checkboxes.forEach((cb) => {\n cb.name = this.name;\n });\n }\n\n // ─── Event Handling ───\n\n private _handleCheckboxChange = (e: CustomEvent<{ checked: boolean; value: string }>): void => {\n // Only intercept events from direct hx-checkbox children — do not re-intercept\n // the hx-change we dispatch ourselves from this element.\n if (e.target === this) return;\n\n e.stopImmediatePropagation();\n\n const values = this._getCheckedValues();\n this._updateFormValue(values);\n this._updateValidity(values);\n\n /**\n * Dispatched when any child checkbox changes.\n * @event hx-change\n */\n this.dispatchEvent(\n new CustomEvent('hx-change', {\n bubbles: true,\n composed: true,\n detail: { values },\n }),\n );\n };\n\n private _handleSlotChange(): void {\n this._syncCheckboxes();\n this._syncCheckboxNames();\n const checkedValues = this._getCheckedValues();\n this._updateFormValue(checkedValues);\n this._updateValidity(checkedValues);\n }\n\n // ─── Form Integration ───\n\n private _updateFormValue(values: string[]): void {\n if (values.length === 0) {\n this._internals.setFormValue(null);\n return;\n }\n const formData = new FormData();\n values.forEach((v) => formData.append(this.name, v));\n this._internals.setFormValue(formData);\n }\n\n private _updateValidity(values?: string[]): void {\n const checkedValues = values ?? this._getCheckedValues();\n if (this.required && checkedValues.length === 0) {\n const firstCheckbox = this._getCheckboxes()[0];\n this._internals.setValidity(\n { valueMissing: true },\n this.error || 'Please select at least one option.',\n firstCheckbox,\n );\n } else {\n this._internals.setValidity({});\n }\n }\n\n /** Returns the associated form element, if any. */\n get form(): HTMLFormElement | null {\n return this._internals.form;\n }\n\n /** Returns the validation message. */\n get validationMessage(): string {\n return this._internals.validationMessage;\n }\n\n /** Returns the ValidityState object. */\n get validity(): ValidityState {\n return this._internals.validity;\n }\n\n /** Checks whether the group satisfies its constraints. */\n checkValidity(): boolean {\n return this._internals.checkValidity();\n }\n\n /** Reports validity and shows the browser's constraint validation UI. */\n reportValidity(): boolean {\n return this._internals.reportValidity();\n }\n\n /** Called by the form when it resets. */\n formResetCallback(): void {\n const checkboxes = this._getCheckboxes();\n checkboxes.forEach((cb) => {\n cb.checked = false;\n });\n this._internals.setFormValue(null);\n this._updateValidity([]);\n }\n\n /** Called when the form restores state (e.g., back/forward navigation). */\n formStateRestoreCallback(state: string | File | FormData): void {\n if (!(state instanceof FormData)) return;\n const restoredValues = state.getAll(this.name).map((v) => String(v));\n const checkboxes = this._getCheckboxes();\n checkboxes.forEach((cb) => {\n cb.checked = restoredValues.includes(cb.value);\n });\n this._updateFormValue(restoredValues);\n this._updateValidity(restoredValues);\n }\n\n // ─── Render ───\n\n override render() {\n const hasError = !!this.error || this._hasErrorSlot;\n\n const fieldsetClasses = {\n fieldset: true,\n 'fieldset--error': hasError,\n 'fieldset--disabled': this.disabled,\n 'fieldset--required': this.required,\n };\n\n const describedBy =\n [hasError ? this._errorId : null, this._hasHelpSlot ? this._helpTextId : null]\n .filter(Boolean)\n .join(' ') || undefined;\n\n return html`\n <fieldset\n part=\"group\"\n class=${classMap(fieldsetClasses)}\n aria-describedby=${describedBy ?? nothing}\n >\n <legend part=\"label\" class=\"fieldset__legend\">\n <slot name=\"label\">${this.label}</slot>\n ${this.required\n ? html`<span class=\"fieldset__required-marker\" aria-hidden=\"true\">*</span>`\n : nothing}\n </legend>\n\n <div class=\"fieldset__items\">\n <slot @slotchange=${this._handleSlotChange}></slot>\n </div>\n\n ${hasError\n ? html`<div part=\"error-message\" class=\"fieldset__error\" id=${this._errorId} role=\"alert\">\n <slot name=\"error\" @slotchange=${this._handleErrorSlotChange}> ${this.error} </slot>\n </div>`\n : html`<slot name=\"error\" @slotchange=${this._handleErrorSlotChange}></slot>`}\n\n <div part=\"help-text\" class=\"fieldset__help-text\" id=${this._helpTextId}>\n <slot name=\"help\" @slotchange=${this._handleHelpSlotChange}></slot>\n </div>\n </fieldset>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-checkbox-group': HelixCheckboxGroup;\n }\n}\n"],"names":["helixCheckboxGroupStyles","css","_uid","HelixCheckboxGroup","LitElement","values","slot","changedProperties","checkedValues","c","cb","formData","v","firstCheckbox","state","restoredValues","hasError","fieldsetClasses","describedBy","html","classMap","nothing","tokenStyles","__decorateClass","property","customElement"],"mappings":"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"}
|
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
import { css as u, LitElement as f, html as s, nothing as h } from "lit";
|
|
2
|
+
import { property as p, state as c, customElement as m } from "lit/decorators.js";
|
|
3
|
+
import { classMap as x } from "lit/directives/class-map.js";
|
|
4
|
+
import { t as v } from "./lit-Dpo7RLp4.js";
|
|
5
|
+
const b = u`
|
|
6
|
+
:host {
|
|
7
|
+
display: block;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
:host([inline]) {
|
|
11
|
+
display: inline;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/* ─── Inline Mode ─── */
|
|
15
|
+
|
|
16
|
+
.code-snippet--inline {
|
|
17
|
+
display: inline;
|
|
18
|
+
font-family: var(--hx-code-snippet-font-family, var(--hx-font-family-mono, monospace));
|
|
19
|
+
font-size: var(--hx-code-snippet-font-size, var(--hx-font-size-sm, 0.875em));
|
|
20
|
+
background-color: var(--hx-code-snippet-inline-bg, var(--hx-color-neutral-100, #f1f5f9));
|
|
21
|
+
color: var(--hx-code-snippet-inline-color, var(--hx-color-neutral-900, #0f172a));
|
|
22
|
+
padding: var(--hx-code-snippet-inline-padding-y, 0.125em)
|
|
23
|
+
var(--hx-code-snippet-inline-padding-x, 0.375em);
|
|
24
|
+
border-radius: var(--hx-code-snippet-border-radius, var(--hx-border-radius-sm, 0.25rem));
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/* ─── Block Mode Container ─── */
|
|
28
|
+
|
|
29
|
+
.code-snippet {
|
|
30
|
+
position: relative;
|
|
31
|
+
background-color: var(--hx-code-snippet-bg, var(--hx-color-neutral-900, #0f172a));
|
|
32
|
+
border-radius: var(--hx-code-snippet-border-radius, var(--hx-border-radius-md, 0.375rem));
|
|
33
|
+
overflow: hidden;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/* ─── Hidden Slot ─── */
|
|
37
|
+
|
|
38
|
+
.code-snippet__slot {
|
|
39
|
+
display: none;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/* ─── Header ─── */
|
|
43
|
+
|
|
44
|
+
.code-snippet__header {
|
|
45
|
+
display: flex;
|
|
46
|
+
align-items: center;
|
|
47
|
+
justify-content: flex-end;
|
|
48
|
+
padding: var(--hx-space-2, 0.5rem) var(--hx-space-2, 0.5rem) 0;
|
|
49
|
+
min-height: var(--hx-space-8, 2rem);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* ─── Pre / Code ─── */
|
|
53
|
+
|
|
54
|
+
.code-snippet__pre {
|
|
55
|
+
margin: 0;
|
|
56
|
+
padding: var(--hx-code-snippet-padding, var(--hx-space-4, 1rem));
|
|
57
|
+
overflow-x: auto;
|
|
58
|
+
white-space: pre;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.code-snippet__pre--wrap {
|
|
62
|
+
white-space: pre-wrap;
|
|
63
|
+
word-break: break-word;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.code-snippet__code {
|
|
67
|
+
display: block;
|
|
68
|
+
font-family: var(--hx-code-snippet-font-family, var(--hx-font-family-mono, monospace));
|
|
69
|
+
font-size: var(--hx-code-snippet-font-size, var(--hx-font-size-sm, 0.875rem));
|
|
70
|
+
line-height: var(--hx-line-height-relaxed, 1.625);
|
|
71
|
+
color: var(--hx-code-snippet-color, var(--hx-color-neutral-100, #f1f5f9));
|
|
72
|
+
tab-size: var(--hx-code-snippet-tab-size, 2);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/* ─── Copy Button ─── */
|
|
76
|
+
|
|
77
|
+
.code-snippet__copy-button {
|
|
78
|
+
display: inline-flex;
|
|
79
|
+
align-items: center;
|
|
80
|
+
gap: var(--hx-space-1, 0.25rem);
|
|
81
|
+
padding: var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem);
|
|
82
|
+
border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-600, #475569);
|
|
83
|
+
border-radius: var(--hx-border-radius-sm, 0.25rem);
|
|
84
|
+
background-color: var(--hx-color-neutral-800, #1e293b);
|
|
85
|
+
color: var(--hx-color-neutral-200, #e2e8f0);
|
|
86
|
+
font-family: var(--hx-font-family-sans, sans-serif);
|
|
87
|
+
font-size: var(--hx-font-size-xs, 0.75rem);
|
|
88
|
+
font-weight: var(--hx-font-weight-medium, 500);
|
|
89
|
+
line-height: var(--hx-line-height-none, 1);
|
|
90
|
+
cursor: pointer;
|
|
91
|
+
transition:
|
|
92
|
+
background-color var(--hx-transition-fast, 150ms ease),
|
|
93
|
+
color var(--hx-transition-fast, 150ms ease),
|
|
94
|
+
border-color var(--hx-transition-fast, 150ms ease);
|
|
95
|
+
white-space: nowrap;
|
|
96
|
+
z-index: var(--hx-z-index-raised, 1);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.code-snippet__copy-button:hover {
|
|
100
|
+
background-color: var(--hx-color-neutral-700, #334155);
|
|
101
|
+
border-color: var(--hx-color-neutral-500, #64748b);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.code-snippet__copy-button:focus-visible {
|
|
105
|
+
outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #2563eb);
|
|
106
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.code-snippet__copy-button:active {
|
|
110
|
+
/* Non-standard token — fallback 0.8 applies if token is absent */
|
|
111
|
+
filter: brightness(var(--hx-filter-brightness-active, 0.8));
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/* ─── Expand Button ─── */
|
|
115
|
+
|
|
116
|
+
.code-snippet__expand-button {
|
|
117
|
+
display: block;
|
|
118
|
+
width: 100%;
|
|
119
|
+
padding: var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem);
|
|
120
|
+
border: none;
|
|
121
|
+
border-top: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-700, #334155);
|
|
122
|
+
background-color: var(--hx-color-neutral-800, #1e293b);
|
|
123
|
+
color: var(--hx-color-neutral-300, #cbd5e1);
|
|
124
|
+
font-family: var(--hx-font-family-sans, sans-serif);
|
|
125
|
+
font-size: var(--hx-font-size-sm, 0.875rem);
|
|
126
|
+
font-weight: var(--hx-font-weight-medium, 500);
|
|
127
|
+
text-align: center;
|
|
128
|
+
cursor: pointer;
|
|
129
|
+
transition: background-color var(--hx-transition-fast, 150ms ease);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.code-snippet__expand-button:hover {
|
|
133
|
+
background-color: var(--hx-color-neutral-700, #334155);
|
|
134
|
+
color: var(--hx-color-neutral-100, #f1f5f9);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.code-snippet__expand-button:focus-visible {
|
|
138
|
+
outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #2563eb);
|
|
139
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/* ─── Line Numbers ─── */
|
|
143
|
+
|
|
144
|
+
.code-snippet__line-number {
|
|
145
|
+
display: inline-block;
|
|
146
|
+
min-width: var(--hx-space-8, 2rem);
|
|
147
|
+
padding-right: var(--hx-space-3, 0.75rem);
|
|
148
|
+
color: var(--hx-code-snippet-line-number-color, var(--hx-color-neutral-500, #64748b));
|
|
149
|
+
user-select: none;
|
|
150
|
+
text-align: right;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/* ─── Screen-reader only ─── */
|
|
154
|
+
|
|
155
|
+
.sr-only {
|
|
156
|
+
position: absolute;
|
|
157
|
+
width: 1px;
|
|
158
|
+
height: 1px;
|
|
159
|
+
padding: 0;
|
|
160
|
+
margin: -1px;
|
|
161
|
+
overflow: hidden;
|
|
162
|
+
clip: rect(0, 0, 0, 0);
|
|
163
|
+
white-space: nowrap;
|
|
164
|
+
border: 0;
|
|
165
|
+
}
|
|
166
|
+
`;
|
|
167
|
+
var _ = Object.defineProperty, g = Object.getOwnPropertyDescriptor, i = (e, t, r, n) => {
|
|
168
|
+
for (var a = n > 1 ? void 0 : n ? g(t, r) : t, l = e.length - 1, d; l >= 0; l--)
|
|
169
|
+
(d = e[l]) && (a = (n ? d(t, r, a) : d(a)) || a);
|
|
170
|
+
return n && a && _(t, r, a), a;
|
|
171
|
+
};
|
|
172
|
+
let o = class extends f {
|
|
173
|
+
constructor() {
|
|
174
|
+
super(...arguments), this.language = "", this.inline = !1, this.wrap = !1, this.copyable = !0, this.maxLines = 0, this.lineNumbers = !1, this._copied = !1, this._expanded = !1, this._codeText = "", this._copyTimer = null;
|
|
175
|
+
}
|
|
176
|
+
// ─── Lifecycle ───
|
|
177
|
+
firstUpdated() {
|
|
178
|
+
var e;
|
|
179
|
+
if (!this._codeText) {
|
|
180
|
+
const t = ((e = this.textContent) == null ? void 0 : e.trim()) ?? "";
|
|
181
|
+
t && (this._codeText = t);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
disconnectedCallback() {
|
|
185
|
+
super.disconnectedCallback(), this._copyTimer !== null && (clearTimeout(this._copyTimer), this._copyTimer = null);
|
|
186
|
+
}
|
|
187
|
+
// ─── Event Handlers ───
|
|
188
|
+
_handleSlotChange(e) {
|
|
189
|
+
const t = e.target;
|
|
190
|
+
if (!t) return;
|
|
191
|
+
const r = t.assignedNodes({ flatten: !0 });
|
|
192
|
+
this._codeText = r.map((n) => n.textContent ?? "").join("");
|
|
193
|
+
}
|
|
194
|
+
_handleCopy() {
|
|
195
|
+
const e = this._codeText;
|
|
196
|
+
navigator.clipboard.writeText(e).catch(() => {
|
|
197
|
+
}), this.dispatchEvent(
|
|
198
|
+
new CustomEvent("hx-copy", {
|
|
199
|
+
bubbles: !0,
|
|
200
|
+
composed: !0,
|
|
201
|
+
detail: { text: e }
|
|
202
|
+
})
|
|
203
|
+
), this._copied = !0, this._copyTimer !== null && clearTimeout(this._copyTimer), this._copyTimer = setTimeout(() => {
|
|
204
|
+
this._copied = !1;
|
|
205
|
+
}, 2e3);
|
|
206
|
+
}
|
|
207
|
+
_handleExpand() {
|
|
208
|
+
this._expanded = !this._expanded;
|
|
209
|
+
}
|
|
210
|
+
// ─── Helpers ───
|
|
211
|
+
_getDisplayLines() {
|
|
212
|
+
const e = this._codeText.split(`
|
|
213
|
+
`);
|
|
214
|
+
return !this.maxLines || this.maxLines <= 0 || this._expanded || e.length <= this.maxLines ? e : e.slice(0, this.maxLines);
|
|
215
|
+
}
|
|
216
|
+
_isTruncated() {
|
|
217
|
+
return !this.maxLines || this.maxLines <= 0 ? !1 : this._codeText.split(`
|
|
218
|
+
`).length > this.maxLines;
|
|
219
|
+
}
|
|
220
|
+
_renderLines(e) {
|
|
221
|
+
return this.lineNumbers ? s`${e.map(
|
|
222
|
+
(t, r) => s`<span aria-hidden="true" class="code-snippet__line-number">${r + 1}</span>${t} `
|
|
223
|
+
)}` : s`${e.join(`
|
|
224
|
+
`)}`;
|
|
225
|
+
}
|
|
226
|
+
// ─── Render ───
|
|
227
|
+
render() {
|
|
228
|
+
if (this.inline)
|
|
229
|
+
return s`
|
|
230
|
+
<code part="base code" class="code-snippet code-snippet--inline">
|
|
231
|
+
<slot @slotchange=${this._handleSlotChange}></slot>
|
|
232
|
+
</code>
|
|
233
|
+
`;
|
|
234
|
+
const e = this._getDisplayLines(), t = this._isTruncated(), r = this.language ? `Code snippet: ${this.language}` : "Code snippet", n = x({
|
|
235
|
+
"code-snippet__code": !0,
|
|
236
|
+
[`language-${this.language}`]: !!this.language
|
|
237
|
+
});
|
|
238
|
+
return s`
|
|
239
|
+
<div part="base" class="code-snippet">
|
|
240
|
+
<div part="header" class="code-snippet__header">
|
|
241
|
+
${this.copyable ? s`
|
|
242
|
+
<button
|
|
243
|
+
part="copy-button"
|
|
244
|
+
class="code-snippet__copy-button"
|
|
245
|
+
type="button"
|
|
246
|
+
aria-label=${this._copied ? "Copied!" : "Copy code"}
|
|
247
|
+
@click=${this._handleCopy}
|
|
248
|
+
>
|
|
249
|
+
${this._copied ? "Copied!" : "Copy"}
|
|
250
|
+
</button>
|
|
251
|
+
` : h}
|
|
252
|
+
</div>
|
|
253
|
+
|
|
254
|
+
<!-- Visually-hidden live region announces copy confirmation to assistive technology -->
|
|
255
|
+
<span
|
|
256
|
+
aria-live="polite"
|
|
257
|
+
style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;"
|
|
258
|
+
>${this._copied ? "Copied!" : ""}</span
|
|
259
|
+
>
|
|
260
|
+
|
|
261
|
+
<pre
|
|
262
|
+
role="region"
|
|
263
|
+
aria-label=${r}
|
|
264
|
+
class=${x({
|
|
265
|
+
"code-snippet__pre": !0,
|
|
266
|
+
"code-snippet__pre--wrap": this.wrap
|
|
267
|
+
})}
|
|
268
|
+
><code part="code" class=${n}>${this._renderLines(e)}</code></pre>
|
|
269
|
+
|
|
270
|
+
<!-- Hidden slot to capture text content for display and copy -->
|
|
271
|
+
<slot class="code-snippet__slot" @slotchange=${this._handleSlotChange}></slot>
|
|
272
|
+
|
|
273
|
+
${t ? s`
|
|
274
|
+
<button
|
|
275
|
+
part="expand-button"
|
|
276
|
+
class="code-snippet__expand-button"
|
|
277
|
+
type="button"
|
|
278
|
+
aria-expanded=${this._expanded ? "true" : "false"}
|
|
279
|
+
@click=${this._handleExpand}
|
|
280
|
+
>
|
|
281
|
+
${this._expanded ? "Show less" : "Show more"}
|
|
282
|
+
</button>
|
|
283
|
+
` : h}
|
|
284
|
+
</div>
|
|
285
|
+
`;
|
|
286
|
+
}
|
|
287
|
+
};
|
|
288
|
+
o.styles = [v, b];
|
|
289
|
+
i([
|
|
290
|
+
p({ type: String, reflect: !0 })
|
|
291
|
+
], o.prototype, "language", 2);
|
|
292
|
+
i([
|
|
293
|
+
p({ type: Boolean, reflect: !0 })
|
|
294
|
+
], o.prototype, "inline", 2);
|
|
295
|
+
i([
|
|
296
|
+
p({ type: Boolean, reflect: !0 })
|
|
297
|
+
], o.prototype, "wrap", 2);
|
|
298
|
+
i([
|
|
299
|
+
p({ type: Boolean, reflect: !0 })
|
|
300
|
+
], o.prototype, "copyable", 2);
|
|
301
|
+
i([
|
|
302
|
+
p({ type: Number, attribute: "max-lines", reflect: !0 })
|
|
303
|
+
], o.prototype, "maxLines", 2);
|
|
304
|
+
i([
|
|
305
|
+
p({ type: Boolean, attribute: "line-numbers", reflect: !0 })
|
|
306
|
+
], o.prototype, "lineNumbers", 2);
|
|
307
|
+
i([
|
|
308
|
+
c()
|
|
309
|
+
], o.prototype, "_copied", 2);
|
|
310
|
+
i([
|
|
311
|
+
c()
|
|
312
|
+
], o.prototype, "_expanded", 2);
|
|
313
|
+
i([
|
|
314
|
+
c()
|
|
315
|
+
], o.prototype, "_codeText", 2);
|
|
316
|
+
o = i([
|
|
317
|
+
m("hx-code-snippet")
|
|
318
|
+
], o);
|
|
319
|
+
export {
|
|
320
|
+
o as H
|
|
321
|
+
};
|
|
322
|
+
//# sourceMappingURL=hx-code-snippet-CoFaSyuB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hx-code-snippet-CoFaSyuB.js","sources":["../../src/components/hx-code-snippet/hx-code-snippet.styles.ts","../../src/components/hx-code-snippet/hx-code-snippet.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const helixCodeSnippetStyles = css`\n :host {\n display: block;\n }\n\n :host([inline]) {\n display: inline;\n }\n\n /* ─── Inline Mode ─── */\n\n .code-snippet--inline {\n display: inline;\n font-family: var(--hx-code-snippet-font-family, var(--hx-font-family-mono, monospace));\n font-size: var(--hx-code-snippet-font-size, var(--hx-font-size-sm, 0.875em));\n background-color: var(--hx-code-snippet-inline-bg, var(--hx-color-neutral-100, #f1f5f9));\n color: var(--hx-code-snippet-inline-color, var(--hx-color-neutral-900, #0f172a));\n padding: var(--hx-code-snippet-inline-padding-y, 0.125em)\n var(--hx-code-snippet-inline-padding-x, 0.375em);\n border-radius: var(--hx-code-snippet-border-radius, var(--hx-border-radius-sm, 0.25rem));\n }\n\n /* ─── Block Mode Container ─── */\n\n .code-snippet {\n position: relative;\n background-color: var(--hx-code-snippet-bg, var(--hx-color-neutral-900, #0f172a));\n border-radius: var(--hx-code-snippet-border-radius, var(--hx-border-radius-md, 0.375rem));\n overflow: hidden;\n }\n\n /* ─── Hidden Slot ─── */\n\n .code-snippet__slot {\n display: none;\n }\n\n /* ─── Header ─── */\n\n .code-snippet__header {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: var(--hx-space-2, 0.5rem) var(--hx-space-2, 0.5rem) 0;\n min-height: var(--hx-space-8, 2rem);\n }\n\n /* ─── Pre / Code ─── */\n\n .code-snippet__pre {\n margin: 0;\n padding: var(--hx-code-snippet-padding, var(--hx-space-4, 1rem));\n overflow-x: auto;\n white-space: pre;\n }\n\n .code-snippet__pre--wrap {\n white-space: pre-wrap;\n word-break: break-word;\n }\n\n .code-snippet__code {\n display: block;\n font-family: var(--hx-code-snippet-font-family, var(--hx-font-family-mono, monospace));\n font-size: var(--hx-code-snippet-font-size, var(--hx-font-size-sm, 0.875rem));\n line-height: var(--hx-line-height-relaxed, 1.625);\n color: var(--hx-code-snippet-color, var(--hx-color-neutral-100, #f1f5f9));\n tab-size: var(--hx-code-snippet-tab-size, 2);\n }\n\n /* ─── Copy Button ─── */\n\n .code-snippet__copy-button {\n display: inline-flex;\n align-items: center;\n gap: var(--hx-space-1, 0.25rem);\n padding: var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem);\n border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-600, #475569);\n border-radius: var(--hx-border-radius-sm, 0.25rem);\n background-color: var(--hx-color-neutral-800, #1e293b);\n color: var(--hx-color-neutral-200, #e2e8f0);\n font-family: var(--hx-font-family-sans, sans-serif);\n font-size: var(--hx-font-size-xs, 0.75rem);\n font-weight: var(--hx-font-weight-medium, 500);\n line-height: var(--hx-line-height-none, 1);\n cursor: pointer;\n transition:\n background-color var(--hx-transition-fast, 150ms ease),\n color var(--hx-transition-fast, 150ms ease),\n border-color var(--hx-transition-fast, 150ms ease);\n white-space: nowrap;\n z-index: var(--hx-z-index-raised, 1);\n }\n\n .code-snippet__copy-button:hover {\n background-color: var(--hx-color-neutral-700, #334155);\n border-color: var(--hx-color-neutral-500, #64748b);\n }\n\n .code-snippet__copy-button:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #2563eb);\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n .code-snippet__copy-button:active {\n /* Non-standard token — fallback 0.8 applies if token is absent */\n filter: brightness(var(--hx-filter-brightness-active, 0.8));\n }\n\n /* ─── Expand Button ─── */\n\n .code-snippet__expand-button {\n display: block;\n width: 100%;\n padding: var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem);\n border: none;\n border-top: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-700, #334155);\n background-color: var(--hx-color-neutral-800, #1e293b);\n color: var(--hx-color-neutral-300, #cbd5e1);\n font-family: var(--hx-font-family-sans, sans-serif);\n font-size: var(--hx-font-size-sm, 0.875rem);\n font-weight: var(--hx-font-weight-medium, 500);\n text-align: center;\n cursor: pointer;\n transition: background-color var(--hx-transition-fast, 150ms ease);\n }\n\n .code-snippet__expand-button:hover {\n background-color: var(--hx-color-neutral-700, #334155);\n color: var(--hx-color-neutral-100, #f1f5f9);\n }\n\n .code-snippet__expand-button:focus-visible {\n outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #2563eb);\n outline-offset: var(--hx-focus-ring-offset, 2px);\n }\n\n /* ─── Line Numbers ─── */\n\n .code-snippet__line-number {\n display: inline-block;\n min-width: var(--hx-space-8, 2rem);\n padding-right: var(--hx-space-3, 0.75rem);\n color: var(--hx-code-snippet-line-number-color, var(--hx-color-neutral-500, #64748b));\n user-select: none;\n text-align: right;\n }\n\n /* ─── Screen-reader only ─── */\n\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n`;\n","import { LitElement, html, nothing, TemplateResult } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { tokenStyles } from '@helixui/tokens/lit';\nimport { helixCodeSnippetStyles } from './hx-code-snippet.styles.js';\n\n/**\n * A styled code block with optional copy button and max-lines truncation.\n * Supports block (`<pre><code>`) and inline (`<code>`) rendering modes.\n * No external syntax highlighting dependency — use the `language` attribute\n * as a hint for consumers integrating their own highlighter via slotted content.\n *\n * @summary Styled code display component with copy-to-clipboard and expand/collapse.\n *\n * @tag hx-code-snippet\n *\n * @slot - Code content as plain text. Note: HTML markup in slot content will be\n * stripped — only text content is extracted. Pre-highlighted HTML is not supported.\n *\n * @fires {CustomEvent<{text: string}>} hx-copy - Dispatched when the copy button is clicked.\n *\n * @csspart base - The outermost container (block: `<div>`, inline: `<code>`).\n * @csspart header - The header bar containing the copy button (block mode only).\n * @csspart code - The `<code>` element containing the content.\n * @csspart copy-button - The copy-to-clipboard button.\n * @csspart expand-button - The \"Show more / Show less\" button.\n *\n * @cssprop [--hx-code-snippet-bg=var(--hx-color-neutral-900,#0f172a)] - Background color.\n * @cssprop [--hx-code-snippet-color=var(--hx-color-neutral-100,#f1f5f9)] - Text color.\n * @cssprop [--hx-code-snippet-font-family=var(--hx-font-family-mono,monospace)] - Font family.\n * @cssprop [--hx-code-snippet-font-size=var(--hx-font-size-sm,0.875rem)] - Font size.\n * @cssprop [--hx-code-snippet-border-radius=var(--hx-border-radius-md,0.375rem)] - Border radius.\n * @cssprop [--hx-code-snippet-padding=var(--hx-space-4,1rem)] - Inner padding (block mode).\n */\n@customElement('hx-code-snippet')\nexport class HelixCodeSnippet extends LitElement {\n static override styles = [tokenStyles, helixCodeSnippetStyles];\n\n // ─── Public Properties ───\n\n /**\n * Language hint for consumers to apply syntax highlighting.\n * Does not affect rendering directly; it is applied as a `language-*` class\n * on the `<code>` element so external highlighters can target it.\n * @attr language\n */\n @property({ type: String, reflect: true })\n language: string = '';\n\n /**\n * When true, renders as an inline `<code>` element instead of a `<pre><code>` block.\n * @attr inline\n */\n @property({ type: Boolean, reflect: true })\n inline: boolean = false;\n\n /**\n * When true, enables word-wrap in block mode.\n * @attr wrap\n */\n @property({ type: Boolean, reflect: true })\n wrap: boolean = false;\n\n /**\n * When true, shows a copy-to-clipboard button.\n * @attr copyable\n *\n * IMPORTANT: This is a standard boolean attribute. Setting `copyable=\"false\"` in HTML\n * will NOT disable the copy button — the attribute presence alone signals `true`.\n * To disable programmatically, set `el.copyable = false` via JavaScript.\n * In Lit/HTML templates, use `?copyable=${false}` (Lit boolean binding) to remove the attribute.\n */\n @property({ type: Boolean, reflect: true })\n copyable: boolean = true;\n\n /**\n * Maximum number of lines to display before showing a \"Show more\" button.\n * Set to 0 (default) to disable truncation.\n * @attr max-lines\n */\n @property({ type: Number, attribute: 'max-lines', reflect: true })\n maxLines: number = 0;\n\n /**\n * When true, prepends line numbers to each displayed line in block mode.\n * Line numbers are rendered as `aria-hidden` spans so screen readers skip them.\n * @attr line-numbers\n */\n @property({ type: Boolean, attribute: 'line-numbers', reflect: true })\n lineNumbers: boolean = false;\n\n // ─── Internal State ───\n\n @state() private _copied: boolean = false;\n @state() private _expanded: boolean = false;\n @state() private _codeText: string = '';\n\n private _copyTimer: ReturnType<typeof setTimeout> | null = null;\n\n // ─── Lifecycle ───\n\n override firstUpdated(): void {\n // Prevent flash of empty <code> before slotchange fires by eagerly reading\n // text content from host children that are already present on first render.\n if (!this._codeText) {\n const text = this.textContent?.trim() ?? '';\n if (text) {\n this._codeText = text;\n }\n }\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback();\n if (this._copyTimer !== null) {\n clearTimeout(this._copyTimer);\n this._copyTimer = null;\n }\n }\n\n // ─── Event Handlers ───\n\n private _handleSlotChange(e: Event): void {\n const slot = e.target as HTMLSlotElement | null;\n if (!slot) return;\n const nodes = slot.assignedNodes({ flatten: true });\n this._codeText = nodes.map((n) => n.textContent ?? '').join('');\n }\n\n private _handleCopy(): void {\n const text = this._codeText;\n\n navigator.clipboard.writeText(text).catch(() => {\n // Clipboard API unavailable (non-HTTPS environments such as Drupal staging) — emit event only.\n // Note: navigator.clipboard requires a secure context (HTTPS or localhost).\n // On HTTP, the copy event still fires but the clipboard is not populated.\n });\n\n this.dispatchEvent(\n new CustomEvent('hx-copy', {\n bubbles: true,\n composed: true,\n detail: { text },\n }),\n );\n\n this._copied = true;\n if (this._copyTimer !== null) clearTimeout(this._copyTimer);\n this._copyTimer = setTimeout(() => {\n this._copied = false;\n }, 2000);\n }\n\n private _handleExpand(): void {\n this._expanded = !this._expanded;\n }\n\n // ─── Helpers ───\n\n private _getDisplayLines(): string[] {\n const lines = this._codeText.split('\\n');\n if (!this.maxLines || this.maxLines <= 0 || this._expanded) {\n return lines;\n }\n if (lines.length <= this.maxLines) {\n return lines;\n }\n return lines.slice(0, this.maxLines);\n }\n\n private _isTruncated(): boolean {\n if (!this.maxLines || this.maxLines <= 0) return false;\n const lines = this._codeText.split('\\n');\n return lines.length > this.maxLines;\n }\n\n private _renderLines(lines: string[]): TemplateResult {\n if (!this.lineNumbers) {\n return html`${lines.join('\\n')}`;\n }\n return html`${lines.map(\n (line, i) =>\n html`<span aria-hidden=\"true\" class=\"code-snippet__line-number\">${i + 1}</span>${line} `,\n )}`;\n }\n\n // ─── Render ───\n\n override render(): TemplateResult | typeof nothing {\n if (this.inline) {\n return html`\n <code part=\"base code\" class=\"code-snippet code-snippet--inline\">\n <slot @slotchange=${this._handleSlotChange}></slot>\n </code>\n `;\n }\n\n const displayLines = this._getDisplayLines();\n const truncated = this._isTruncated();\n const preLabel = this.language ? `Code snippet: ${this.language}` : 'Code snippet';\n const codeClasses = classMap({\n 'code-snippet__code': true,\n [`language-${this.language}`]: Boolean(this.language),\n });\n\n return html`\n <div part=\"base\" class=\"code-snippet\">\n <div part=\"header\" class=\"code-snippet__header\">\n ${this.copyable\n ? html`\n <button\n part=\"copy-button\"\n class=\"code-snippet__copy-button\"\n type=\"button\"\n aria-label=${this._copied ? 'Copied!' : 'Copy code'}\n @click=${this._handleCopy}\n >\n ${this._copied ? 'Copied!' : 'Copy'}\n </button>\n `\n : nothing}\n </div>\n\n <!-- Visually-hidden live region announces copy confirmation to assistive technology -->\n <span\n aria-live=\"polite\"\n style=\"position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;\"\n >${this._copied ? 'Copied!' : ''}</span\n >\n\n <pre\n role=\"region\"\n aria-label=${preLabel}\n class=${classMap({\n 'code-snippet__pre': true,\n 'code-snippet__pre--wrap': this.wrap,\n })}\n ><code part=\"code\" class=${codeClasses}>${this._renderLines(displayLines)}</code></pre>\n\n <!-- Hidden slot to capture text content for display and copy -->\n <slot class=\"code-snippet__slot\" @slotchange=${this._handleSlotChange}></slot>\n\n ${truncated\n ? html`\n <button\n part=\"expand-button\"\n class=\"code-snippet__expand-button\"\n type=\"button\"\n aria-expanded=${this._expanded ? 'true' : 'false'}\n @click=${this._handleExpand}\n >\n ${this._expanded ? 'Show less' : 'Show more'}\n </button>\n `\n : nothing}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'hx-code-snippet': HelixCodeSnippet;\n }\n}\n"],"names":["helixCodeSnippetStyles","css","HelixCodeSnippet","LitElement","text","_a","slot","nodes","lines","html","line","i","displayLines","truncated","preLabel","codeClasses","classMap","nothing","tokenStyles","__decorateClass","property","state","customElement"],"mappings":"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"}
|