@aquera/nile-elements 1.6.2 → 1.6.4
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/README.md +16 -0
- package/demo/variables.css +1 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +527 -339
- package/dist/internal/accessibility/a11y.custom-value.enum.cjs.js +2 -0
- package/dist/internal/accessibility/a11y.custom-value.enum.cjs.js.map +1 -0
- package/dist/internal/accessibility/a11y.custom-value.enum.esm.js +1 -0
- package/dist/internal/accessibility/a11y.property.enum.cjs.js +2 -0
- package/dist/internal/accessibility/a11y.property.enum.cjs.js.map +1 -0
- package/dist/internal/accessibility/a11y.property.enum.esm.js +1 -0
- package/dist/internal/accessibility/a11y.role.enum.cjs.js +2 -0
- package/dist/internal/accessibility/a11y.role.enum.cjs.js.map +1 -0
- package/dist/internal/accessibility/a11y.role.enum.esm.js +1 -0
- package/dist/internal/accessibility/a11y.state.enum.cjs.js +2 -0
- package/dist/internal/accessibility/a11y.state.enum.cjs.js.map +1 -0
- package/dist/internal/accessibility/a11y.state.enum.esm.js +1 -0
- package/dist/internal/accessibility/accessibility.const.cjs.js +2 -0
- package/dist/internal/accessibility/accessibility.const.cjs.js.map +1 -0
- package/dist/internal/accessibility/accessibility.const.esm.js +1 -0
- package/dist/internal/accessibility/role.enum.cjs.js +2 -0
- package/dist/internal/accessibility/role.enum.cjs.js.map +1 -0
- package/dist/internal/accessibility/role.enum.esm.js +1 -0
- package/dist/internal/nile-element.cjs.js +1 -1
- package/dist/internal/nile-element.cjs.js.map +1 -1
- package/dist/internal/nile-element.esm.js +1 -1
- package/dist/nile-accordion/index.cjs.js +1 -1
- package/dist/nile-accordion/index.esm.js +1 -1
- package/dist/nile-accordion/nile-accordion.cjs.js +1 -1
- package/dist/nile-accordion/nile-accordion.cjs.js.map +1 -1
- package/dist/nile-accordion/nile-accordion.esm.js +2 -2
- package/dist/nile-auto-complete/index.cjs.js +1 -1
- package/dist/nile-auto-complete/index.esm.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.cjs.js +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.cjs.js.map +1 -1
- package/dist/nile-auto-complete/nile-auto-complete.esm.js +1 -1
- package/dist/nile-avatar/index.cjs.js +1 -1
- package/dist/nile-avatar/index.esm.js +1 -1
- package/dist/nile-avatar/nile-avatar.cjs.js +1 -1
- package/dist/nile-avatar/nile-avatar.cjs.js.map +1 -1
- package/dist/nile-avatar/nile-avatar.esm.js +3 -1
- package/dist/nile-badge/index.cjs.js +1 -1
- package/dist/nile-badge/index.esm.js +1 -1
- package/dist/nile-badge/nile-badge.cjs.js +1 -1
- package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
- package/dist/nile-badge/nile-badge.esm.js +2 -2
- package/dist/nile-breadcrumb/index.cjs.js +1 -1
- package/dist/nile-breadcrumb/index.esm.js +1 -1
- package/dist/nile-breadcrumb/nile-breadcrumb.cjs.js +1 -1
- package/dist/nile-breadcrumb/nile-breadcrumb.cjs.js.map +1 -1
- package/dist/nile-breadcrumb/nile-breadcrumb.esm.js +1 -1
- package/dist/nile-breadcrumb-item/index.cjs.js +1 -1
- package/dist/nile-breadcrumb-item/index.esm.js +1 -1
- package/dist/nile-breadcrumb-item/nile-breadcrumb-item.cjs.js +1 -1
- package/dist/nile-breadcrumb-item/nile-breadcrumb-item.cjs.js.map +1 -1
- package/dist/nile-breadcrumb-item/nile-breadcrumb-item.esm.js +4 -4
- package/dist/nile-button/index.cjs.js +1 -1
- package/dist/nile-button/index.esm.js +1 -1
- package/dist/nile-button/nile-button.cjs.js +1 -1
- package/dist/nile-button/nile-button.cjs.js.map +1 -1
- package/dist/nile-button/nile-button.css.cjs.js +1 -1
- package/dist/nile-button/nile-button.css.cjs.js.map +1 -1
- package/dist/nile-button/nile-button.css.esm.js +5 -0
- package/dist/nile-button/nile-button.esm.js +1 -1
- package/dist/nile-button-filter/index.cjs.js +1 -1
- package/dist/nile-button-filter/index.esm.js +1 -1
- package/dist/nile-button-filter/nile-button-filter.cjs.js +1 -1
- package/dist/nile-button-filter/nile-button-filter.cjs.js.map +1 -1
- package/dist/nile-button-filter/nile-button-filter.esm.js +7 -7
- package/dist/nile-button-toggle/index.cjs.js +1 -1
- package/dist/nile-button-toggle/index.esm.js +1 -1
- package/dist/nile-button-toggle/nile-button-toggle.cjs.js +1 -1
- package/dist/nile-button-toggle/nile-button-toggle.cjs.js.map +1 -1
- package/dist/nile-button-toggle/nile-button-toggle.esm.js +2 -2
- package/dist/nile-button-toggle-group/index.cjs.js +1 -1
- package/dist/nile-button-toggle-group/index.esm.js +1 -1
- package/dist/nile-button-toggle-group/nile-button-toggle-group.cjs.js +1 -1
- package/dist/nile-button-toggle-group/nile-button-toggle-group.cjs.js.map +1 -1
- package/dist/nile-button-toggle-group/nile-button-toggle-group.esm.js +1 -1
- package/dist/nile-calendar/index.cjs.js +1 -1
- package/dist/nile-calendar/index.esm.js +1 -1
- package/dist/nile-calendar/nile-calendar.cjs.js +1 -1
- package/dist/nile-calendar/nile-calendar.cjs.js.map +1 -1
- package/dist/nile-calendar/nile-calendar.esm.js +4 -4
- package/dist/nile-card/index.cjs.js +1 -1
- package/dist/nile-card/index.esm.js +1 -1
- package/dist/nile-card/nile-card.cjs.js +1 -1
- package/dist/nile-card/nile-card.cjs.js.map +1 -1
- package/dist/nile-card/nile-card.esm.js +2 -2
- package/dist/nile-carousel/index.cjs.js +1 -1
- package/dist/nile-carousel/index.esm.js +1 -1
- package/dist/nile-carousel/nile-carousel-item/index.cjs.js +1 -1
- package/dist/nile-carousel/nile-carousel-item/index.esm.js +1 -1
- package/dist/nile-carousel/nile-carousel-item/nile-carousel-item.cjs.js +1 -1
- package/dist/nile-carousel/nile-carousel-item/nile-carousel-item.cjs.js.map +1 -1
- package/dist/nile-carousel/nile-carousel-item/nile-carousel-item.esm.js +2 -2
- package/dist/nile-carousel/nile-carousel.cjs.js +1 -1
- package/dist/nile-carousel/nile-carousel.cjs.js.map +1 -1
- package/dist/nile-carousel/nile-carousel.esm.js +1 -1
- package/dist/nile-checkbox/index.cjs.js +1 -1
- package/dist/nile-checkbox/index.esm.js +1 -1
- package/dist/nile-checkbox/nile-checkbox.cjs.js +1 -1
- package/dist/nile-checkbox/nile-checkbox.cjs.js.map +1 -1
- package/dist/nile-checkbox/nile-checkbox.css.cjs.js +1 -1
- package/dist/nile-checkbox/nile-checkbox.css.cjs.js.map +1 -1
- package/dist/nile-checkbox/nile-checkbox.css.esm.js +4 -0
- package/dist/nile-checkbox/nile-checkbox.esm.js +3 -3
- package/dist/nile-checkbox-group/index.cjs.js +2 -0
- package/dist/nile-checkbox-group/index.cjs.js.map +1 -0
- package/dist/nile-checkbox-group/index.esm.js +1 -0
- package/dist/nile-checkbox-group/nile-checkbox-group.cjs.js +2 -0
- package/dist/nile-checkbox-group/nile-checkbox-group.cjs.js.map +1 -0
- package/dist/nile-checkbox-group/nile-checkbox-group.css.cjs.js +2 -0
- package/dist/nile-checkbox-group/nile-checkbox-group.css.cjs.js.map +1 -0
- package/dist/nile-checkbox-group/nile-checkbox-group.css.esm.js +68 -0
- package/dist/nile-checkbox-group/nile-checkbox-group.esm.js +56 -0
- package/dist/nile-chip/index.cjs.js +1 -1
- package/dist/nile-chip/index.esm.js +1 -1
- package/dist/nile-chip/nile-chip.cjs.js +1 -1
- package/dist/nile-chip/nile-chip.cjs.js.map +1 -1
- package/dist/nile-chip/nile-chip.esm.js +2 -2
- package/dist/nile-circular-progressbar/index.cjs.js +1 -1
- package/dist/nile-circular-progressbar/index.esm.js +1 -1
- package/dist/nile-circular-progressbar/nile-circular-progressbar.cjs.js +1 -1
- package/dist/nile-circular-progressbar/nile-circular-progressbar.cjs.js.map +1 -1
- package/dist/nile-circular-progressbar/nile-circular-progressbar.esm.js +2 -2
- package/dist/nile-code-editor/index.cjs.js +1 -1
- package/dist/nile-code-editor/index.esm.js +1 -1
- package/dist/nile-code-editor/nile-code-editor.cjs.js +2 -2
- package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
- package/dist/nile-code-editor/nile-code-editor.esm.js +2 -2
- package/dist/nile-content-editor/index.cjs.js +1 -1
- package/dist/nile-content-editor/index.esm.js +1 -1
- package/dist/nile-content-editor/nile-content-editor.cjs.js +1 -1
- package/dist/nile-content-editor/nile-content-editor.cjs.js.map +1 -1
- package/dist/nile-content-editor/nile-content-editor.esm.js +5 -5
- package/dist/nile-date-picker/index.cjs.js +1 -1
- package/dist/nile-date-picker/index.esm.js +1 -1
- package/dist/nile-date-picker/nile-date-picker.cjs.js +1 -1
- package/dist/nile-date-picker/nile-date-picker.cjs.js.map +1 -1
- package/dist/nile-date-picker/nile-date-picker.esm.js +1 -1
- package/dist/nile-detail/index.cjs.js +1 -1
- package/dist/nile-detail/index.esm.js +1 -1
- package/dist/nile-detail/nile-detail.cjs.js +1 -1
- package/dist/nile-detail/nile-detail.cjs.js.map +1 -1
- package/dist/nile-detail/nile-detail.esm.js +2 -2
- package/dist/nile-dialog/index.cjs.js +1 -1
- package/dist/nile-dialog/index.esm.js +1 -1
- package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
- package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
- package/dist/nile-dialog/nile-dialog.esm.js +2 -2
- package/dist/nile-divider/index.cjs.js +1 -1
- package/dist/nile-divider/index.esm.js +1 -1
- package/dist/nile-divider/nile-divider.cjs.js +1 -1
- package/dist/nile-divider/nile-divider.cjs.js.map +1 -1
- package/dist/nile-divider/nile-divider.esm.js +2 -2
- package/dist/nile-drawer/index.cjs.js +1 -1
- package/dist/nile-drawer/index.esm.js +1 -1
- package/dist/nile-drawer/nile-drawer.cjs.js +1 -1
- package/dist/nile-drawer/nile-drawer.cjs.js.map +1 -1
- package/dist/nile-drawer/nile-drawer.esm.js +1 -1
- package/dist/nile-dropdown/index.cjs.js +1 -1
- package/dist/nile-dropdown/index.esm.js +1 -1
- package/dist/nile-dropdown/nile-dropdown.cjs.js +1 -1
- package/dist/nile-dropdown/nile-dropdown.cjs.js.map +1 -1
- package/dist/nile-dropdown/nile-dropdown.esm.js +1 -1
- package/dist/nile-empty-state/index.cjs.js +1 -1
- package/dist/nile-empty-state/index.esm.js +1 -1
- package/dist/nile-empty-state/nile-empty-state.cjs.js +1 -1
- package/dist/nile-empty-state/nile-empty-state.cjs.js.map +1 -1
- package/dist/nile-empty-state/nile-empty-state.esm.js +2 -2
- package/dist/nile-file-preview/index.cjs.js +1 -1
- package/dist/nile-file-preview/index.esm.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.cjs.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.cjs.js.map +1 -1
- package/dist/nile-file-preview/nile-file-preview.esm.js +1 -1
- package/dist/nile-file-upload/index.cjs.js +1 -1
- package/dist/nile-file-upload/index.esm.js +1 -1
- package/dist/nile-file-upload/nile-file-upload.cjs.js +1 -1
- package/dist/nile-file-upload/nile-file-upload.cjs.js.map +1 -1
- package/dist/nile-file-upload/nile-file-upload.esm.js +2 -2
- package/dist/nile-filter-chip/index.cjs.js +1 -1
- package/dist/nile-filter-chip/index.esm.js +1 -1
- package/dist/nile-filter-chip/nile-filter-chip.cjs.js +1 -1
- package/dist/nile-filter-chip/nile-filter-chip.cjs.js.map +1 -1
- package/dist/nile-filter-chip/nile-filter-chip.esm.js +2 -2
- package/dist/nile-floating-panel/index.cjs.js +1 -1
- package/dist/nile-floating-panel/index.esm.js +1 -1
- package/dist/nile-floating-panel/nile-floating-panel.cjs.js +1 -1
- package/dist/nile-floating-panel/nile-floating-panel.cjs.js.map +1 -1
- package/dist/nile-floating-panel/nile-floating-panel.esm.js +1 -1
- package/dist/nile-form-group/index.cjs.js +1 -1
- package/dist/nile-form-group/index.esm.js +1 -1
- package/dist/nile-form-group/nile-form-group.cjs.js +1 -1
- package/dist/nile-form-group/nile-form-group.cjs.js.map +1 -1
- package/dist/nile-form-group/nile-form-group.esm.js +2 -2
- package/dist/nile-format-date/index.cjs.js +1 -1
- package/dist/nile-format-date/index.esm.js +1 -1
- package/dist/nile-format-date/nile-format-date.cjs.js +1 -1
- package/dist/nile-format-date/nile-format-date.cjs.js.map +1 -1
- package/dist/nile-format-date/nile-format-date.esm.js +1 -1
- package/dist/nile-grid/index.cjs.js +1 -1
- package/dist/nile-grid/index.esm.js +1 -1
- package/dist/nile-grid/nile-grid-body/index.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-body/index.esm.js +1 -1
- package/dist/nile-grid/nile-grid-body/nile-grid-body.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-body/nile-grid-body.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid-body/nile-grid-body.esm.js +2 -2
- package/dist/nile-grid/nile-grid-cell-item/index.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-cell-item/index.esm.js +1 -1
- package/dist/nile-grid/nile-grid-cell-item/nile-grid-cell-item.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-cell-item/nile-grid-cell-item.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid-cell-item/nile-grid-cell-item.esm.js +2 -2
- package/dist/nile-grid/nile-grid-head/index.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-head/index.esm.js +1 -1
- package/dist/nile-grid/nile-grid-head/nile-grid-head.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-head/nile-grid-head.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid-head/nile-grid-head.esm.js +2 -2
- package/dist/nile-grid/nile-grid-head-item/index.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-head-item/index.esm.js +1 -1
- package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.esm.js +3 -3
- package/dist/nile-grid/nile-grid-row/index.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-row/index.esm.js +1 -1
- package/dist/nile-grid/nile-grid-row/nile-grid-row.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-row/nile-grid-row.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid-row/nile-grid-row.esm.js +2 -2
- package/dist/nile-grid/nile-grid.cjs.js +1 -1
- package/dist/nile-grid/nile-grid.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid.esm.js +2 -2
- package/dist/nile-hero/index.cjs.js +1 -1
- package/dist/nile-hero/index.esm.js +1 -1
- package/dist/nile-hero/nile-hero.cjs.js +1 -1
- package/dist/nile-hero/nile-hero.cjs.js.map +1 -1
- package/dist/nile-hero/nile-hero.esm.js +2 -2
- package/dist/nile-hero-header/index.cjs.js +1 -1
- package/dist/nile-hero-header/index.esm.js +1 -1
- package/dist/nile-hero-header/nile-hero-header.cjs.js +1 -1
- package/dist/nile-hero-header/nile-hero-header.cjs.js.map +1 -1
- package/dist/nile-hero-header/nile-hero-header.esm.js +2 -2
- package/dist/nile-icon/icons/svg/arrow-left-small.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/arrow-left-small.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/arrow-left-small.esm.js +1 -0
- package/dist/nile-icon/icons/svg/arrow-right-small.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/arrow-right-small.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/arrow-right-small.esm.js +1 -0
- package/dist/nile-icon/icons/svg/arrow_left_small.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/arrow_left_small.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/arrow_left_small.esm.js +1 -0
- package/dist/nile-icon/icons/svg/arrow_right_small.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/arrow_right_small.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/arrow_right_small.esm.js +1 -0
- package/dist/nile-icon/icons/svg/index.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/index.esm.js +1 -1
- package/dist/nile-icon/index.cjs.js +1 -1
- package/dist/nile-icon/index.cjs.js.map +1 -1
- package/dist/nile-icon/index.esm.js +1 -1
- package/dist/nile-icon-button/index.cjs.js +1 -1
- package/dist/nile-icon-button/index.esm.js +1 -1
- package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
- package/dist/nile-icon-button/nile-icon-button.cjs.js.map +1 -1
- package/dist/nile-icon-button/nile-icon-button.esm.js +1 -1
- package/dist/nile-inline-edit/index.cjs.js +1 -1
- package/dist/nile-inline-edit/index.esm.js +1 -1
- package/dist/nile-inline-edit/nile-inline-edit.cjs.js +1 -1
- package/dist/nile-inline-edit/nile-inline-edit.cjs.js.map +1 -1
- package/dist/nile-inline-edit/nile-inline-edit.esm.js +2 -2
- package/dist/nile-inline-sidebar/index.cjs.js +1 -1
- package/dist/nile-inline-sidebar/index.esm.js +1 -1
- package/dist/nile-inline-sidebar/nile-inline-sidebar.cjs.js +1 -1
- package/dist/nile-inline-sidebar/nile-inline-sidebar.cjs.js.map +1 -1
- package/dist/nile-inline-sidebar/nile-inline-sidebar.esm.js +3 -3
- package/dist/nile-inline-sidebar-group/index.cjs.js +1 -1
- package/dist/nile-inline-sidebar-group/index.esm.js +1 -1
- package/dist/nile-inline-sidebar-group/nile-inline-sidebar-group.cjs.js +1 -1
- package/dist/nile-inline-sidebar-group/nile-inline-sidebar-group.cjs.js.map +1 -1
- package/dist/nile-inline-sidebar-group/nile-inline-sidebar-group.esm.js +3 -3
- package/dist/nile-inline-sidebar-item/index.cjs.js +1 -1
- package/dist/nile-inline-sidebar-item/index.esm.js +1 -1
- package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.cjs.js +1 -1
- package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.cjs.js.map +1 -1
- package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.esm.js +3 -3
- package/dist/nile-input/index.cjs.js +1 -1
- package/dist/nile-input/index.esm.js +1 -1
- package/dist/nile-input/nile-input.cjs.js +1 -1
- package/dist/nile-input/nile-input.cjs.js.map +1 -1
- package/dist/nile-input/nile-input.esm.js +1 -1
- package/dist/nile-link/index.cjs.js +1 -1
- package/dist/nile-link/index.esm.js +1 -1
- package/dist/nile-link/nile-link.cjs.js +1 -1
- package/dist/nile-link/nile-link.cjs.js.map +1 -1
- package/dist/nile-link/nile-link.esm.js +3 -3
- package/dist/nile-list/index.cjs.js +1 -1
- package/dist/nile-list/index.esm.js +1 -1
- package/dist/nile-list/nile-list.cjs.js +1 -1
- package/dist/nile-list/nile-list.cjs.js.map +1 -1
- package/dist/nile-list/nile-list.esm.js +1 -1
- package/dist/nile-list-item/index.cjs.js +1 -1
- package/dist/nile-list-item/index.esm.js +1 -1
- package/dist/nile-list-item/nile-list-item.cjs.js +1 -1
- package/dist/nile-list-item/nile-list-item.cjs.js.map +1 -1
- package/dist/nile-list-item/nile-list-item.esm.js +2 -2
- package/dist/nile-lite-tooltip/index.cjs.js +1 -1
- package/dist/nile-lite-tooltip/index.esm.js +1 -1
- package/dist/nile-lite-tooltip/nile-lite-tooltip.cjs.js +1 -1
- package/dist/nile-lite-tooltip/nile-lite-tooltip.cjs.js.map +1 -1
- package/dist/nile-lite-tooltip/nile-lite-tooltip.esm.js +1 -1
- package/dist/nile-menu/index.cjs.js +1 -1
- package/dist/nile-menu/index.esm.js +1 -1
- package/dist/nile-menu/nile-menu.cjs.js +1 -1
- package/dist/nile-menu/nile-menu.cjs.js.map +1 -1
- package/dist/nile-menu/nile-menu.esm.js +2 -2
- package/dist/nile-menu-item/index.cjs.js +1 -1
- package/dist/nile-menu-item/index.esm.js +1 -1
- package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
- package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
- package/dist/nile-menu-item/nile-menu-item.css.cjs.js +1 -1
- package/dist/nile-menu-item/nile-menu-item.css.cjs.js.map +1 -1
- package/dist/nile-menu-item/nile-menu-item.css.esm.js +11 -2
- package/dist/nile-menu-item/nile-menu-item.esm.js +3 -3
- package/dist/nile-option/index.cjs.js +1 -1
- package/dist/nile-option/index.esm.js +1 -1
- package/dist/nile-option/nile-option.cjs.js +1 -1
- package/dist/nile-option/nile-option.cjs.js.map +1 -1
- package/dist/nile-option/nile-option.esm.js +1 -1
- package/dist/nile-option-group/index.cjs.js +1 -1
- package/dist/nile-option-group/index.esm.js +1 -1
- package/dist/nile-option-group/nile-option-group.cjs.js +1 -1
- package/dist/nile-option-group/nile-option-group.cjs.js.map +1 -1
- package/dist/nile-option-group/nile-option-group.esm.js +2 -2
- package/dist/nile-otp-input/index.cjs.js +1 -1
- package/dist/nile-otp-input/index.esm.js +1 -1
- package/dist/nile-otp-input/nile-otp-input.cjs.js +1 -1
- package/dist/nile-otp-input/nile-otp-input.cjs.js.map +1 -1
- package/dist/nile-otp-input/nile-otp-input.esm.js +1 -1
- package/dist/nile-page-header/index.cjs.js +1 -1
- package/dist/nile-page-header/index.esm.js +1 -1
- package/dist/nile-page-header/nile-page-header.cjs.js +1 -1
- package/dist/nile-page-header/nile-page-header.cjs.js.map +1 -1
- package/dist/nile-page-header/nile-page-header.esm.js +2 -2
- package/dist/nile-pagination/index.cjs.js +1 -1
- package/dist/nile-pagination/index.esm.js +1 -1
- package/dist/nile-pagination/nile-pagination.cjs.js +1 -1
- package/dist/nile-pagination/nile-pagination.cjs.js.map +1 -1
- package/dist/nile-pagination/nile-pagination.css.cjs.js +1 -1
- package/dist/nile-pagination/nile-pagination.css.cjs.js.map +1 -1
- package/dist/nile-pagination/nile-pagination.css.esm.js +13 -0
- package/dist/nile-pagination/nile-pagination.esm.js +1 -1
- package/dist/nile-popover/index.cjs.js +1 -1
- package/dist/nile-popover/index.esm.js +1 -1
- package/dist/nile-popover/nile-popover.cjs.js +2 -2
- package/dist/nile-popover/nile-popover.cjs.js.map +1 -1
- package/dist/nile-popover/nile-popover.esm.js +3 -3
- package/dist/nile-popup/index.cjs.js +1 -1
- package/dist/nile-popup/index.esm.js +1 -1
- package/dist/nile-popup/nile-popup.cjs.js +1 -1
- package/dist/nile-popup/nile-popup.cjs.js.map +1 -1
- package/dist/nile-popup/nile-popup.esm.js +2 -2
- package/dist/nile-progress-bar/index.cjs.js +1 -1
- package/dist/nile-progress-bar/index.esm.js +1 -1
- package/dist/nile-progress-bar/nile-progress-bar.cjs.js +1 -1
- package/dist/nile-progress-bar/nile-progress-bar.cjs.js.map +1 -1
- package/dist/nile-progress-bar/nile-progress-bar.esm.js +2 -2
- package/dist/nile-qr-code/index.cjs.js +1 -1
- package/dist/nile-qr-code/index.esm.js +1 -1
- package/dist/nile-qr-code/nile-qr-code.cjs.js +1 -1
- package/dist/nile-qr-code/nile-qr-code.cjs.js.map +1 -1
- package/dist/nile-qr-code/nile-qr-code.esm.js +2 -2
- package/dist/nile-radio/index.cjs.js +1 -1
- package/dist/nile-radio/index.esm.js +1 -1
- package/dist/nile-radio/nile-radio.cjs.js +1 -1
- package/dist/nile-radio/nile-radio.cjs.js.map +1 -1
- package/dist/nile-radio/nile-radio.css.cjs.js +1 -1
- package/dist/nile-radio/nile-radio.css.cjs.js.map +1 -1
- package/dist/nile-radio/nile-radio.css.esm.js +4 -0
- package/dist/nile-radio/nile-radio.esm.js +2 -2
- package/dist/nile-radio-group/index.cjs.js +1 -1
- package/dist/nile-radio-group/index.esm.js +1 -1
- package/dist/nile-radio-group/nile-radio-group.cjs.js +1 -1
- package/dist/nile-radio-group/nile-radio-group.cjs.js.map +1 -1
- package/dist/nile-radio-group/nile-radio-group.esm.js +2 -2
- package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.cjs.js.map +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.css.cjs.js.map +1 -1
- package/dist/nile-rich-text-editor/nile-rich-text-editor.css.esm.js +8 -6
- package/dist/nile-rich-text-editor/nile-rich-text-editor.esm.js +1 -1
- package/dist/nile-rich-text-editor/utils/list-utils.cjs.js +1 -1
- package/dist/nile-rich-text-editor/utils/list-utils.cjs.js.map +1 -1
- package/dist/nile-rich-text-editor/utils/list-utils.esm.js +1 -1
- package/dist/nile-section-message/index.cjs.js +1 -1
- package/dist/nile-section-message/index.esm.js +1 -1
- package/dist/nile-section-message/nile-section-message.cjs.js +1 -1
- package/dist/nile-section-message/nile-section-message.cjs.js.map +1 -1
- package/dist/nile-section-message/nile-section-message.esm.js +2 -2
- package/dist/nile-select/index.cjs.js +1 -1
- package/dist/nile-select/index.esm.js +1 -1
- package/dist/nile-select/nile-select.cjs.js +1 -1
- package/dist/nile-select/nile-select.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.css.cjs.js +1 -1
- package/dist/nile-select/nile-select.css.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.css.esm.js +21 -2
- package/dist/nile-select/nile-select.esm.js +33 -25
- package/dist/nile-select/portal-utils.cjs.js +1 -1
- package/dist/nile-select/portal-utils.cjs.js.map +1 -1
- package/dist/nile-select/portal-utils.esm.js +1 -1
- package/dist/nile-side-bar/index.cjs.js +1 -1
- package/dist/nile-side-bar/index.esm.js +1 -1
- package/dist/nile-side-bar/nile-side-bar.cjs.js +1 -1
- package/dist/nile-side-bar/nile-side-bar.cjs.js.map +1 -1
- package/dist/nile-side-bar/nile-side-bar.esm.js +2 -2
- package/dist/nile-side-bar-action/index.cjs.js +1 -1
- package/dist/nile-side-bar-action/index.esm.js +1 -1
- package/dist/nile-side-bar-action/nile-side-bar-action.cjs.js +1 -1
- package/dist/nile-side-bar-action/nile-side-bar-action.cjs.js.map +1 -1
- package/dist/nile-side-bar-action/nile-side-bar-action.esm.js +3 -3
- package/dist/nile-side-bar-action-menu/index.cjs.js +1 -1
- package/dist/nile-side-bar-action-menu/index.esm.js +1 -1
- package/dist/nile-side-bar-action-menu/nile-side-bar-action-menu.cjs.js +1 -1
- package/dist/nile-side-bar-action-menu/nile-side-bar-action-menu.cjs.js.map +1 -1
- package/dist/nile-side-bar-action-menu/nile-side-bar-action-menu.esm.js +2 -2
- package/dist/nile-side-bar-action-menu-item/index.cjs.js +1 -1
- package/dist/nile-side-bar-action-menu-item/index.esm.js +1 -1
- package/dist/nile-side-bar-action-menu-item/nile-side-bar-action-menu-item.cjs.js +1 -1
- package/dist/nile-side-bar-action-menu-item/nile-side-bar-action-menu-item.cjs.js.map +1 -1
- package/dist/nile-side-bar-action-menu-item/nile-side-bar-action-menu-item.esm.js +1 -1
- package/dist/nile-side-bar-expand/index.cjs.js +1 -1
- package/dist/nile-side-bar-expand/index.esm.js +1 -1
- package/dist/nile-side-bar-expand/nile-side-bar-expand.cjs.js +1 -1
- package/dist/nile-side-bar-expand/nile-side-bar-expand.cjs.js.map +1 -1
- package/dist/nile-side-bar-expand/nile-side-bar-expand.esm.js +2 -2
- package/dist/nile-side-bar-footer/index.cjs.js +1 -1
- package/dist/nile-side-bar-footer/index.esm.js +1 -1
- package/dist/nile-side-bar-footer/nile-side-bar-footer.cjs.js +1 -1
- package/dist/nile-side-bar-footer/nile-side-bar-footer.cjs.js.map +1 -1
- package/dist/nile-side-bar-footer/nile-side-bar-footer.esm.js +2 -2
- package/dist/nile-side-bar-footer-item/index.cjs.js +1 -1
- package/dist/nile-side-bar-footer-item/index.esm.js +1 -1
- package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.cjs.js +1 -1
- package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.cjs.js.map +1 -1
- package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.esm.js +1 -1
- package/dist/nile-side-bar-footer-text/index.cjs.js +1 -1
- package/dist/nile-side-bar-footer-text/index.esm.js +1 -1
- package/dist/nile-side-bar-footer-text/nile-side-bar-footer-text.cjs.js +1 -1
- package/dist/nile-side-bar-footer-text/nile-side-bar-footer-text.cjs.js.map +1 -1
- package/dist/nile-side-bar-footer-text/nile-side-bar-footer-text.esm.js +3 -3
- package/dist/nile-side-bar-group/index.cjs.js +1 -1
- package/dist/nile-side-bar-group/index.esm.js +1 -1
- package/dist/nile-side-bar-group/nile-side-bar-group.cjs.js +1 -1
- package/dist/nile-side-bar-group/nile-side-bar-group.cjs.js.map +1 -1
- package/dist/nile-side-bar-group/nile-side-bar-group.esm.js +2 -2
- package/dist/nile-side-bar-group-item/index.cjs.js +1 -1
- package/dist/nile-side-bar-group-item/index.esm.js +1 -1
- package/dist/nile-side-bar-group-item/nile-side-bar-group-item.cjs.js +1 -1
- package/dist/nile-side-bar-group-item/nile-side-bar-group-item.cjs.js.map +1 -1
- package/dist/nile-side-bar-group-item/nile-side-bar-group-item.esm.js +2 -2
- package/dist/nile-side-bar-group-item-icon/index.cjs.js +1 -1
- package/dist/nile-side-bar-group-item-icon/index.esm.js +1 -1
- package/dist/nile-side-bar-group-item-icon/nile-side-bar-group-item-icon.cjs.js +1 -1
- package/dist/nile-side-bar-group-item-icon/nile-side-bar-group-item-icon.cjs.js.map +1 -1
- package/dist/nile-side-bar-group-item-icon/nile-side-bar-group-item-icon.esm.js +2 -2
- package/dist/nile-side-bar-group-item-text/index.cjs.js +1 -1
- package/dist/nile-side-bar-group-item-text/index.esm.js +1 -1
- package/dist/nile-side-bar-group-item-text/nile-side-bar-group-item-text.cjs.js +1 -1
- package/dist/nile-side-bar-group-item-text/nile-side-bar-group-item-text.cjs.js.map +1 -1
- package/dist/nile-side-bar-group-item-text/nile-side-bar-group-item-text.esm.js +1 -1
- package/dist/nile-side-bar-header/index.cjs.js +1 -1
- package/dist/nile-side-bar-header/index.esm.js +1 -1
- package/dist/nile-side-bar-header/nile-side-bar-header.cjs.js +1 -1
- package/dist/nile-side-bar-header/nile-side-bar-header.cjs.js.map +1 -1
- package/dist/nile-side-bar-header/nile-side-bar-header.esm.js +2 -2
- package/dist/nile-side-bar-logo/index.cjs.js +1 -1
- package/dist/nile-side-bar-logo/index.esm.js +1 -1
- package/dist/nile-side-bar-logo/nile-side-bar-logo.cjs.js +1 -1
- package/dist/nile-side-bar-logo/nile-side-bar-logo.cjs.js.map +1 -1
- package/dist/nile-side-bar-logo/nile-side-bar-logo.esm.js +2 -2
- package/dist/nile-side-bar-panel/index.cjs.js +1 -1
- package/dist/nile-side-bar-panel/index.esm.js +1 -1
- package/dist/nile-side-bar-panel/nile-side-bar-panel.cjs.js +1 -1
- package/dist/nile-side-bar-panel/nile-side-bar-panel.cjs.js.map +1 -1
- package/dist/nile-side-bar-panel/nile-side-bar-panel.esm.js +2 -2
- package/dist/nile-skeleton-loader/index.cjs.js +1 -1
- package/dist/nile-skeleton-loader/index.esm.js +1 -1
- package/dist/nile-skeleton-loader/nile-skeleton-loader.cjs.js +1 -1
- package/dist/nile-skeleton-loader/nile-skeleton-loader.cjs.js.map +1 -1
- package/dist/nile-skeleton-loader/nile-skeleton-loader.esm.js +2 -2
- package/dist/nile-slide-toggle/index.cjs.js +1 -1
- package/dist/nile-slide-toggle/index.esm.js +1 -1
- package/dist/nile-slide-toggle/nile-slide-toggle.cjs.js +1 -1
- package/dist/nile-slide-toggle/nile-slide-toggle.cjs.js.map +1 -1
- package/dist/nile-slide-toggle/nile-slide-toggle.esm.js +2 -2
- package/dist/nile-slider/index.cjs.js +1 -1
- package/dist/nile-slider/index.esm.js +1 -1
- package/dist/nile-slider/nile-slider.cjs.js +1 -1
- package/dist/nile-slider/nile-slider.cjs.js.map +1 -1
- package/dist/nile-slider/nile-slider.esm.js +3 -3
- package/dist/nile-split-panel/index.cjs.js +1 -1
- package/dist/nile-split-panel/index.esm.js +1 -1
- package/dist/nile-split-panel/nile-split-panel.cjs.js +1 -1
- package/dist/nile-split-panel/nile-split-panel.cjs.js.map +1 -1
- package/dist/nile-split-panel/nile-split-panel.esm.js +2 -2
- package/dist/nile-stepper/index.cjs.js +1 -1
- package/dist/nile-stepper/index.esm.js +1 -1
- package/dist/nile-stepper/nile-stepper.cjs.js +1 -1
- package/dist/nile-stepper/nile-stepper.cjs.js.map +1 -1
- package/dist/nile-stepper/nile-stepper.esm.js +3 -3
- package/dist/nile-stepper-item/index.cjs.js +1 -1
- package/dist/nile-stepper-item/index.esm.js +1 -1
- package/dist/nile-stepper-item/nile-stepper-item.cjs.js +1 -1
- package/dist/nile-stepper-item/nile-stepper-item.cjs.js.map +1 -1
- package/dist/nile-stepper-item/nile-stepper-item.esm.js +1 -1
- package/dist/nile-switcher/index.cjs.js +1 -1
- package/dist/nile-switcher/index.esm.js +1 -1
- package/dist/nile-switcher/nile-switcher.cjs.js +1 -1
- package/dist/nile-switcher/nile-switcher.cjs.js.map +1 -1
- package/dist/nile-switcher/nile-switcher.esm.js +23 -23
- package/dist/nile-tab/index.cjs.js +1 -1
- package/dist/nile-tab/index.esm.js +1 -1
- package/dist/nile-tab/nile-tab.cjs.js +1 -1
- package/dist/nile-tab/nile-tab.cjs.js.map +1 -1
- package/dist/nile-tab/nile-tab.esm.js +1 -1
- package/dist/nile-tab-group/index.cjs.js +1 -1
- package/dist/nile-tab-group/index.esm.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.cjs.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.cjs.js.map +1 -1
- package/dist/nile-tab-group/nile-tab-group.esm.js +1 -1
- package/dist/nile-tab-panel/index.cjs.js +1 -1
- package/dist/nile-tab-panel/index.esm.js +1 -1
- package/dist/nile-tab-panel/nile-tab-panel.cjs.js +1 -1
- package/dist/nile-tab-panel/nile-tab-panel.cjs.js.map +1 -1
- package/dist/nile-tab-panel/nile-tab-panel.esm.js +3 -3
- package/dist/nile-table/index.cjs.js +1 -1
- package/dist/nile-table/index.esm.js +1 -1
- package/dist/nile-table/nile-table.cjs.js +1 -1
- package/dist/nile-table/nile-table.cjs.js.map +1 -1
- package/dist/nile-table/nile-table.esm.js +1 -1
- package/dist/nile-table-body/index.cjs.js +1 -1
- package/dist/nile-table-body/index.esm.js +1 -1
- package/dist/nile-table-body/nile-table-body.cjs.js +1 -1
- package/dist/nile-table-body/nile-table-body.cjs.js.map +1 -1
- package/dist/nile-table-body/nile-table-body.esm.js +3 -3
- package/dist/nile-table-cell-item/index.cjs.js +1 -1
- package/dist/nile-table-cell-item/index.esm.js +1 -1
- package/dist/nile-table-cell-item/nile-table-cell-item.cjs.js +1 -1
- package/dist/nile-table-cell-item/nile-table-cell-item.cjs.js.map +1 -1
- package/dist/nile-table-cell-item/nile-table-cell-item.esm.js +5 -5
- package/dist/nile-table-header-item/index.cjs.js +1 -1
- package/dist/nile-table-header-item/index.esm.js +1 -1
- package/dist/nile-table-header-item/nile-table-header-item.cjs.js +1 -1
- package/dist/nile-table-header-item/nile-table-header-item.cjs.js.map +1 -1
- package/dist/nile-table-header-item/nile-table-header-item.esm.js +1 -1
- package/dist/nile-table-row/index.cjs.js +1 -1
- package/dist/nile-table-row/index.esm.js +1 -1
- package/dist/nile-table-row/nile-table-row.cjs.js +1 -1
- package/dist/nile-table-row/nile-table-row.cjs.js.map +1 -1
- package/dist/nile-table-row/nile-table-row.esm.js +2 -2
- package/dist/nile-tag/index.cjs.js +1 -1
- package/dist/nile-tag/index.esm.js +1 -1
- package/dist/nile-tag/nile-tag.cjs.js +1 -1
- package/dist/nile-tag/nile-tag.cjs.js.map +1 -1
- package/dist/nile-tag/nile-tag.esm.js +1 -1
- package/dist/nile-textarea/index.cjs.js +1 -1
- package/dist/nile-textarea/index.esm.js +1 -1
- package/dist/nile-textarea/nile-textarea.cjs.js +1 -1
- package/dist/nile-textarea/nile-textarea.cjs.js.map +1 -1
- package/dist/nile-textarea/nile-textarea.esm.js +2 -2
- package/dist/nile-title/index.cjs.js +1 -1
- package/dist/nile-title/index.esm.js +1 -1
- package/dist/nile-title/nile-title.cjs.js +1 -1
- package/dist/nile-title/nile-title.cjs.js.map +1 -1
- package/dist/nile-title/nile-title.esm.js +1 -1
- package/dist/nile-toast/index.cjs.js +1 -1
- package/dist/nile-toast/index.esm.js +1 -1
- package/dist/nile-toast/nile-toast.cjs.js +1 -1
- package/dist/nile-toast/nile-toast.cjs.js.map +1 -1
- package/dist/nile-toast/nile-toast.esm.js +1 -1
- package/dist/nile-toolbar/index.cjs.js +1 -1
- package/dist/nile-toolbar/index.esm.js +1 -1
- package/dist/nile-toolbar/nile-toolbar.cjs.js +1 -1
- package/dist/nile-toolbar/nile-toolbar.cjs.js.map +1 -1
- package/dist/nile-toolbar/nile-toolbar.esm.js +2 -2
- package/dist/nile-tooltip/index.cjs.js +1 -1
- package/dist/nile-tooltip/index.esm.js +1 -1
- package/dist/nile-tooltip/nile-tooltip.cjs.js +1 -1
- package/dist/nile-tooltip/nile-tooltip.cjs.js.map +1 -1
- package/dist/nile-tooltip/nile-tooltip.esm.js +2 -2
- package/dist/nile-tree/index.cjs.js +1 -1
- package/dist/nile-tree/index.esm.js +1 -1
- package/dist/nile-tree/nile-tree.cjs.js +1 -1
- package/dist/nile-tree/nile-tree.cjs.js.map +1 -1
- package/dist/nile-tree/nile-tree.esm.js +1 -1
- package/dist/nile-tree-item/index.cjs.js +1 -1
- package/dist/nile-tree-item/index.esm.js +1 -1
- package/dist/nile-tree-item/nile-tree-item.cjs.js +1 -1
- package/dist/nile-tree-item/nile-tree-item.cjs.js.map +1 -1
- package/dist/nile-tree-item/nile-tree-item.esm.js +1 -1
- package/dist/nile-vertical-stepper-item/index.cjs.js +1 -1
- package/dist/nile-vertical-stepper-item/index.esm.js +1 -1
- package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.cjs.js +1 -1
- package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.cjs.js.map +1 -1
- package/dist/nile-vertical-stepper-item/nile-vertical-stepper-item.esm.js +7 -7
- package/dist/nile-virtual-select/index.cjs.js +1 -1
- package/dist/nile-virtual-select/index.esm.js +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.cjs.js +2 -2
- package/dist/nile-virtual-select/nile-virtual-select.esm.js +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal/accessibility/a11y.custom-value.enum.d.ts +69 -0
- package/dist/src/internal/accessibility/a11y.custom-value.enum.js +71 -0
- package/dist/src/internal/accessibility/a11y.custom-value.enum.js.map +1 -0
- package/dist/src/internal/accessibility/a11y.property.enum.d.ts +33 -0
- package/dist/src/internal/accessibility/a11y.property.enum.js +35 -0
- package/dist/src/internal/accessibility/a11y.property.enum.js.map +1 -0
- package/dist/src/internal/accessibility/a11y.role.enum.d.ts +50 -0
- package/dist/src/internal/accessibility/a11y.role.enum.js +52 -0
- package/dist/src/internal/accessibility/a11y.role.enum.js.map +1 -0
- package/dist/src/internal/accessibility/a11y.state.enum.d.ts +17 -0
- package/dist/src/internal/accessibility/a11y.state.enum.js +19 -0
- package/dist/src/internal/accessibility/a11y.state.enum.js.map +1 -0
- package/dist/src/internal/accessibility/accessibility.const.d.ts +8 -0
- package/dist/src/internal/accessibility/accessibility.const.js +9 -0
- package/dist/src/internal/accessibility/accessibility.const.js.map +1 -0
- package/dist/src/internal/accessibility/role.enum.d.ts +3 -0
- package/dist/src/internal/accessibility/role.enum.js +5 -0
- package/dist/src/internal/accessibility/role.enum.js.map +1 -0
- package/dist/src/internal/nile-element.d.ts +52 -0
- package/dist/src/internal/nile-element.js +45 -0
- package/dist/src/internal/nile-element.js.map +1 -1
- package/dist/src/nile-avatar/nile-avatar.js +2 -0
- package/dist/src/nile-avatar/nile-avatar.js.map +1 -1
- package/dist/src/nile-badge/nile-badge.d.ts +1 -0
- package/dist/src/nile-badge/nile-badge.js +12 -1
- package/dist/src/nile-badge/nile-badge.js.map +1 -1
- package/dist/src/nile-button/nile-button.css.js +5 -0
- package/dist/src/nile-button/nile-button.css.js.map +1 -1
- package/dist/src/nile-checkbox/nile-checkbox.css.js +4 -0
- package/dist/src/nile-checkbox/nile-checkbox.css.js.map +1 -1
- package/dist/src/nile-checkbox/nile-checkbox.d.ts +2 -0
- package/dist/src/nile-checkbox/nile-checkbox.js +5 -0
- package/dist/src/nile-checkbox/nile-checkbox.js.map +1 -1
- package/dist/src/nile-checkbox-group/index.d.ts +1 -0
- package/dist/src/nile-checkbox-group/index.js +2 -0
- package/dist/src/nile-checkbox-group/index.js.map +1 -0
- package/dist/src/nile-checkbox-group/nile-checkbox-group.css.d.ts +1 -0
- package/dist/src/nile-checkbox-group/nile-checkbox-group.css.js +70 -0
- package/dist/src/nile-checkbox-group/nile-checkbox-group.css.js.map +1 -0
- package/dist/src/nile-checkbox-group/nile-checkbox-group.d.ts +84 -0
- package/dist/src/nile-checkbox-group/nile-checkbox-group.js +355 -0
- package/dist/src/nile-checkbox-group/nile-checkbox-group.js.map +1 -0
- package/dist/src/nile-checkbox-group/nile-checkbox-group.test.d.ts +2 -0
- package/dist/src/nile-checkbox-group/nile-checkbox-group.test.js +671 -0
- package/dist/src/nile-checkbox-group/nile-checkbox-group.test.js.map +1 -0
- package/dist/src/nile-code-editor/nile-code-editor.d.ts +1 -1
- package/dist/src/nile-code-editor/nile-code-editor.js +1 -7
- package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/arrow-left-small.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/arrow-left-small.js +5 -0
- package/dist/src/nile-icon/icons/svg/arrow-left-small.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/arrow-right-small.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/arrow-right-small.js +5 -0
- package/dist/src/nile-icon/icons/svg/arrow-right-small.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/arrow_left_small.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/arrow_left_small.js +5 -0
- package/dist/src/nile-icon/icons/svg/arrow_left_small.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/arrow_right_small.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/arrow_right_small.js +5 -0
- package/dist/src/nile-icon/icons/svg/arrow_right_small.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/index.d.ts +4 -0
- package/dist/src/nile-icon/icons/svg/index.js +4 -0
- package/dist/src/nile-icon/icons/svg/index.js.map +1 -1
- package/dist/src/nile-link/nile-link.d.ts +2 -1
- package/dist/src/nile-link/nile-link.js +18 -1
- package/dist/src/nile-link/nile-link.js.map +1 -1
- package/dist/src/nile-menu-item/nile-menu-item.css.js +11 -2
- package/dist/src/nile-menu-item/nile-menu-item.css.js.map +1 -1
- package/dist/src/nile-menu-item/nile-menu-item.d.ts +2 -0
- package/dist/src/nile-menu-item/nile-menu-item.js +7 -1
- package/dist/src/nile-menu-item/nile-menu-item.js.map +1 -1
- package/dist/src/nile-otp-input/nile-otp-input.test.js +7 -7
- package/dist/src/nile-otp-input/nile-otp-input.test.js.map +1 -1
- package/dist/src/nile-pagination/nile-pagination.css.js +13 -0
- package/dist/src/nile-pagination/nile-pagination.css.js.map +1 -1
- package/dist/src/nile-radio/nile-radio.css.js +4 -0
- package/dist/src/nile-radio/nile-radio.css.js.map +1 -1
- package/dist/src/nile-radio-group/nile-radio-group.js +7 -0
- package/dist/src/nile-radio-group/nile-radio-group.js.map +1 -1
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js +8 -6
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.css.js.map +1 -1
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.d.ts +2 -0
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js +43 -0
- package/dist/src/nile-rich-text-editor/nile-rich-text-editor.js.map +1 -1
- package/dist/src/nile-rich-text-editor/nile-rte-link.test.js +6 -5
- package/dist/src/nile-rich-text-editor/nile-rte-link.test.js.map +1 -1
- package/dist/src/nile-rich-text-editor/utils/list-utils.js +0 -1
- package/dist/src/nile-rich-text-editor/utils/list-utils.js.map +1 -1
- package/dist/src/nile-select/nile-select.css.js +21 -2
- package/dist/src/nile-select/nile-select.css.js.map +1 -1
- package/dist/src/nile-select/nile-select.d.ts +4 -0
- package/dist/src/nile-select/nile-select.js +42 -24
- package/dist/src/nile-select/nile-select.js.map +1 -1
- package/dist/src/nile-select/portal-utils.d.ts +2 -0
- package/dist/src/nile-select/portal-utils.js +36 -3
- package/dist/src/nile-select/portal-utils.js.map +1 -1
- package/dist/src/version.js +2 -2
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/src/index.ts +1 -0
- package/src/internal/accessibility/a11y.custom-value.enum.ts +69 -0
- package/src/internal/accessibility/a11y.property.enum.ts +33 -0
- package/src/internal/accessibility/a11y.role.enum.ts +50 -0
- package/src/internal/accessibility/a11y.state.enum.ts +17 -0
- package/src/internal/accessibility/accessibility.const.ts +9 -0
- package/src/internal/accessibility/role.enum.ts +3 -0
- package/src/internal/nile-element.ts +99 -0
- package/src/nile-avatar/nile-avatar.ts +2 -0
- package/src/nile-badge/nile-badge.ts +13 -1
- package/src/nile-button/nile-button.css.ts +5 -0
- package/src/nile-checkbox/nile-checkbox.css.ts +4 -0
- package/src/nile-checkbox/nile-checkbox.ts +3 -0
- package/src/nile-checkbox-group/index.ts +1 -0
- package/src/nile-checkbox-group/nile-checkbox-group.css.ts +70 -0
- package/src/nile-checkbox-group/nile-checkbox-group.test.ts +769 -0
- package/src/nile-checkbox-group/nile-checkbox-group.ts +351 -0
- package/src/nile-code-editor/nile-code-editor.ts +1 -7
- package/src/nile-icon/icons/svg/arrow-left-small.ts +5 -0
- package/src/nile-icon/icons/svg/arrow-right-small.ts +5 -0
- package/src/nile-icon/icons/svg/arrow_left_small.ts +5 -0
- package/src/nile-icon/icons/svg/arrow_right_small.ts +5 -0
- package/src/nile-icon/icons/svg/index.ts +4 -0
- package/src/nile-link/nile-link.ts +21 -2
- package/src/nile-menu-item/nile-menu-item.css.ts +11 -2
- package/src/nile-menu-item/nile-menu-item.ts +5 -1
- package/src/nile-otp-input/nile-otp-input.test.ts +7 -7
- package/src/nile-pagination/nile-pagination.css.ts +13 -0
- package/src/nile-radio/nile-radio.css.ts +4 -0
- package/src/nile-radio-group/nile-radio-group.ts +7 -0
- package/src/nile-rich-text-editor/nile-rich-text-editor.css.ts +8 -6
- package/src/nile-rich-text-editor/nile-rich-text-editor.ts +43 -0
- package/src/nile-rich-text-editor/nile-rte-link.test.ts +6 -5
- package/src/nile-rich-text-editor/utils/list-utils.ts +1 -2
- package/src/nile-select/nile-select.css.ts +21 -2
- package/src/nile-select/nile-select.ts +44 -24
- package/src/nile-select/portal-utils.ts +46 -3
- package/vscode-html-custom-data.json +117 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-rte-link.test.js","sourceRoot":"","sources":["../../../src/nile-rich-text-editor/nile-rte-link.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture, html, elementUpdated } from '@open-wc/testing';\nimport './nile-rte-link';\nimport type { NileRteLink } from './nile-rte-link';\n\nfunction createEditor(content = '<p>hello world</p>'): HTMLElement {\n const el = document.createElement('article');\n el.setAttribute('contenteditable', 'true');\n el.innerHTML = content;\n document.body.appendChild(el);\n return el;\n}\n\nfunction selectText(node: Node, start: number, end: number) {\n const sel = document.getSelection()!;\n sel.removeAllRanges();\n const range = document.createRange();\n const textNode = node.firstChild!;\n range.setStart(textNode, start);\n range.setEnd(textNode, end);\n sel.addRange(range);\n return range;\n}\n\nfunction collapseAt(node: Node, offset: number) {\n const sel = document.getSelection()!;\n sel.removeAllRanges();\n const range = document.createRange();\n const textNode = node.firstChild!;\n range.setStart(textNode, offset);\n range.collapse(true);\n sel.addRange(range);\n return range;\n}\n\nfunction sleep(ms: number) {\n return new Promise(r => setTimeout(r, ms));\n}\n\ndescribe('NileRteLink', () => {\n let editor: HTMLElement;\n\n afterEach(() => {\n editor?.remove();\n });\n\n // ── Rendering and Defaults ──\n\n it('1. renders the component', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n expect(el).to.exist;\n });\n\n it('2. tag name is nile-rte-link', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n expect(el.tagName.toLowerCase()).to.equal('nile-rte-link');\n });\n\n it('3. default newTab is false', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n expect(el.newTab).to.be.false;\n });\n\n it('4. default placeholder is \"Type or paste link here\"', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n expect(el.placeholder).to.equal('Type or paste link here');\n });\n\n it('5. default label is \"Link\"', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n expect(el.label).to.equal('Link');\n });\n\n it('6. renders a link icon button', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const btn = el.querySelector('nile-button');\n expect(btn).to.exist;\n const icon = el.querySelector('nile-icon');\n expect(icon).to.exist;\n expect(icon!.getAttribute('name')).to.equal('link_2');\n });\n\n it('7. renders a popover element', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const pop = el.querySelector('nile-popover');\n expect(pop).to.exist;\n });\n\n it('8. custom element is defined in registry', async () => {\n expect(customElements.get('nile-rte-link')).to.exist;\n });\n\n // ── Property Binding ──\n\n it('9. set newTab to true', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor} newTab></nile-rte-link>`\n );\n expect(el.newTab).to.be.true;\n });\n\n it('10. set custom placeholder', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor} placeholder=\"Enter URL\"></nile-rte-link>`\n );\n expect(el.placeholder).to.equal('Enter URL');\n });\n\n it('11. set custom label', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor} label=\"Add Link\"></nile-rte-link>`\n );\n expect(el.label).to.equal('Add Link');\n });\n\n it('12. set editorEl reference', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n expect(el.editorEl).to.equal(editor);\n });\n\n // ── URL Normalization ──\n\n it('13. plain domain gets https:// prepended', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const normalize = (el as any).normalizeUrl.bind(el);\n expect(normalize('example.com')).to.equal('https://example.com');\n });\n\n it('14. http:// URL stays unchanged', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const normalize = (el as any).normalizeUrl.bind(el);\n expect(normalize('http://example.com')).to.equal('http://example.com');\n });\n\n it('15. https:// URL stays unchanged', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const normalize = (el as any).normalizeUrl.bind(el);\n expect(normalize('https://example.com')).to.equal('https://example.com');\n });\n\n it('16. mailto: URL stays unchanged', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const normalize = (el as any).normalizeUrl.bind(el);\n expect(normalize('mailto:a@b.com')).to.equal('mailto:a@b.com');\n });\n\n it('17. tel: URL stays unchanged', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const normalize = (el as any).normalizeUrl.bind(el);\n expect(normalize('tel:+123')).to.equal('tel:+123');\n });\n\n it('18. displayUrl strips protocol for display', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const display = (el as any).displayUrl.bind(el);\n expect(display('https://example.com')).to.equal('example.com');\n expect(display('http://example.com/path')).to.equal('example.com/path');\n });\n\n // ── Link Insertion (collapsed selection) ──\n\n it('19. inserts a new <a> tag with URL as text when selection is collapsed', async () => {\n editor = createEditor('<p>text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n collapseAt(p, 4);\n\n (el as any).selectionRange = document.getSelection()!.getRangeAt(0).cloneRange();\n (el as any).linkValue = 'https://example.com';\n (el as any).applyLink();\n\n const a = editor.querySelector('a');\n expect(a).to.exist;\n expect(a!.href).to.include('example.com');\n expect(a!.textContent).to.include('example.com');\n });\n\n it('20. inserts link with target and rel when newTab is true', async () => {\n editor = createEditor('<p>text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor} newTab></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n collapseAt(p, 4);\n\n (el as any).selectionRange = document.getSelection()!.getRangeAt(0).cloneRange();\n (el as any).linkValue = 'https://example.com';\n (el as any).applyLink();\n\n const a = editor.querySelector('a');\n expect(a).to.exist;\n expect(a!.target).to.equal('_blank');\n expect(a!.rel).to.equal('noopener noreferrer');\n });\n\n it('21. does not set target/rel when newTab is false', async () => {\n editor = createEditor('<p>text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n collapseAt(p, 4);\n\n (el as any).selectionRange = document.getSelection()!.getRangeAt(0).cloneRange();\n (el as any).linkValue = 'https://example.com';\n (el as any).applyLink();\n\n const a = editor.querySelector('a');\n expect(a).to.exist;\n expect(a!.hasAttribute('target')).to.be.false;\n expect(a!.hasAttribute('rel')).to.be.false;\n });\n\n // ── Link Insertion (text selected) ──\n\n it('22. wraps selected text in an <a> tag', async () => {\n editor = createEditor('<p>hello world</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n selectText(p, 0, 5);\n\n (el as any).selectionRange = document.getSelection()!.getRangeAt(0).cloneRange();\n (el as any).linkValue = 'https://example.com';\n (el as any).applyLink();\n\n const a = editor.querySelector('a');\n expect(a).to.exist;\n expect(a!.href).to.include('example.com');\n });\n\n it('23. preserves selected text content after wrapping', async () => {\n editor = createEditor('<p>hello world</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n selectText(p, 0, 5);\n\n (el as any).selectionRange = document.getSelection()!.getRangeAt(0).cloneRange();\n (el as any).linkValue = 'https://example.com';\n (el as any).applyLink();\n\n const a = editor.querySelector('a');\n expect(a!.textContent).to.equal('hello');\n });\n\n // ── Link Editing ──\n\n it('24. detects existing anchor and shows edit/unlink buttons', async () => {\n editor = createEditor('<p><a href=\"https://example.com\">link text</a></p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const a = editor.querySelector('a')!;\n collapseAt(a, 2);\n\n (el as any).onOpen();\n await elementUpdated(el);\n\n expect((el as any).hasActiveLink).to.be.true;\n expect((el as any).activeAnchor).to.equal(a);\n });\n\n it('25. pre-fills input with existing link URL (protocol stripped)', async () => {\n editor = createEditor('<p><a href=\"https://example.com\">link</a></p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const a = editor.querySelector('a')!;\n collapseAt(a, 2);\n\n (el as any).onOpen();\n await elementUpdated(el);\n\n expect((el as any).linkValue).to.equal('example.com');\n });\n\n it('26. updates existing anchor href on apply', async () => {\n editor = createEditor('<p><a href=\"https://old.com\">link</a></p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const a = editor.querySelector('a')!;\n collapseAt(a, 2);\n\n (el as any).onOpen();\n await elementUpdated(el);\n\n (el as any).linkValue = 'https://new.com';\n (el as any).applyLink();\n\n expect(a.href).to.include('new.com');\n });\n\n it('27. toggling newTab on edit updates target/rel attributes', async () => {\n editor = createEditor('<p><a href=\"https://example.com\">link</a></p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor} newTab></nile-rte-link>`\n );\n const a = editor.querySelector('a')!;\n collapseAt(a, 2);\n\n (el as any).onOpen();\n await elementUpdated(el);\n\n (el as any).linkValue = 'https://example.com';\n (el as any).applyLink();\n\n expect(a.target).to.equal('_blank');\n expect(a.rel).to.equal('noopener noreferrer');\n });\n\n // ── Link Removal ──\n\n it('28. unlink removes the <a> tag', async () => {\n editor = createEditor('<p><a href=\"https://example.com\">link text</a></p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const a = editor.querySelector('a')!;\n collapseAt(a, 2);\n\n (el as any).onOpen();\n await elementUpdated(el);\n (el as any).onRemove();\n\n expect(editor.querySelector('a')).to.be.null;\n });\n\n it('29. unlink preserves the text content', async () => {\n editor = createEditor('<p><a href=\"https://example.com\">link text</a></p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const a = editor.querySelector('a')!;\n collapseAt(a, 2);\n\n (el as any).onOpen();\n await elementUpdated(el);\n (el as any).onRemove();\n\n expect(editor.querySelector('p')!.textContent).to.equal('link text');\n });\n\n it('30. closes popover after unlink', async () => {\n editor = createEditor('<p><a href=\"https://example.com\">link text</a></p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const a = editor.querySelector('a')!;\n collapseAt(a, 2);\n\n (el as any).onOpen();\n await elementUpdated(el);\n (el as any).onRemove();\n\n expect((el as any).selectionRange).to.be.null;\n expect((el as any).hasActiveLink).to.be.false;\n });\n\n // ── Popover Behavior ──\n\n it('31. opens popover on button click', async () => {\n editor = createEditor('<p>text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n collapseAt(p, 2);\n\n (el as any).onOpen();\n await sleep(50);\n\n const pop = el.querySelector('nile-popover') as any;\n expect(pop?.isShow).to.be.true;\n });\n\n it('32. closes popover on Escape key', async () => {\n editor = createEditor('<p>text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n collapseAt(p, 2);\n\n (el as any).onOpen();\n await sleep(50);\n\n const event = new KeyboardEvent('keydown', { key: 'Escape', bubbles: true });\n (el as any).onInputKeydown(event);\n\n expect((el as any).selectionRange).to.be.null;\n });\n\n it('33. applies link on Enter key', async () => {\n editor = createEditor('<p>text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n collapseAt(p, 4);\n\n (el as any).selectionRange = document.getSelection()!.getRangeAt(0).cloneRange();\n (el as any).linkValue = 'https://example.com';\n\n const event = new KeyboardEvent('keydown', { key: 'Enter', bubbles: true });\n (el as any).onInputKeydown(event);\n\n const a = editor.querySelector('a');\n expect(a).to.exist;\n });\n\n it('34. closes popover on input blur', async () => {\n editor = createEditor('<p>text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n collapseAt(p, 2);\n\n (el as any).onOpen();\n await sleep(50);\n\n (el as any).ignoreBlur = false;\n (el as any).isApplying = false;\n (el as any).onInputBlur();\n\n expect((el as any).selectionRange).to.be.null;\n });\n\n it('35. does not close on blur when ignoreBlur is set', async () => {\n editor = createEditor('<p>text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n collapseAt(p, 2);\n\n (el as any).onOpen();\n await sleep(50);\n\n (el as any).ignoreBlur = true;\n (el as any).onInputBlur();\n\n expect((el as any).selectionRange).to.not.be.null;\n });\n\n // ── Event Dispatching ──\n\n it('36. fires nile-link-changed with href on link apply', async () => {\n editor = createEditor('<p>text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n collapseAt(p, 4);\n\n let detail: any = null;\n el.addEventListener('nile-link-changed', ((e: CustomEvent) => {\n detail = e.detail;\n }) as EventListener);\n\n (el as any).selectionRange = document.getSelection()!.getRangeAt(0).cloneRange();\n (el as any).linkValue = 'https://example.com';\n (el as any).applyLink();\n\n expect(detail).to.exist;\n expect(detail.href).to.include('example.com');\n });\n\n it('37. fires nile-link-changed with empty href on unlink', async () => {\n editor = createEditor('<p><a href=\"https://example.com\">link</a></p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const a = editor.querySelector('a')!;\n collapseAt(a, 2);\n\n let detail: any = null;\n el.addEventListener('nile-link-changed', ((e: CustomEvent) => {\n detail = e.detail;\n }) as EventListener);\n\n (el as any).onOpen();\n await elementUpdated(el);\n (el as any).onRemove();\n\n expect(detail).to.exist;\n expect(detail.href).to.equal('');\n });\n\n it('38. event bubbles and is composed', async () => {\n editor = createEditor('<p>text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n collapseAt(p, 4);\n\n let bubbles = false;\n let composed = false;\n el.addEventListener('nile-link-changed', ((e: CustomEvent) => {\n bubbles = e.bubbles;\n composed = e.composed;\n }) as EventListener);\n\n (el as any).selectionRange = document.getSelection()!.getRangeAt(0).cloneRange();\n (el as any).linkValue = 'https://example.com';\n (el as any).applyLink();\n\n expect(bubbles).to.be.true;\n expect(composed).to.be.true;\n });\n\n // ── Validation ──\n\n it('39. does not apply empty URL', async () => {\n editor = createEditor('<p>text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n collapseAt(p, 4);\n\n (el as any).selectionRange = document.getSelection()!.getRangeAt(0).cloneRange();\n (el as any).linkValue = '';\n (el as any).applyLink();\n\n expect(editor.querySelector('a')).to.be.null;\n });\n\n it('40. rejects unsupported protocols', async () => {\n editor = createEditor('<p>text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n collapseAt(p, 4);\n\n (el as any).selectionRange = document.getSelection()!.getRangeAt(0).cloneRange();\n (el as any).linkValue = 'javascript:alert(1)';\n (el as any).applyLink();\n\n expect(editor.querySelector('a')).to.be.null;\n });\n\n // ── Integration with Parent RTE ──\n\n it('41. parent receives nile-link-changed event and updates content', async () => {\n editor = createEditor('<p>text</p>');\n const container = await fixture(html`\n <div>\n <nile-rte-link .editorEl=${editor}></nile-rte-link>\n </div>\n `);\n const el = container.querySelector('nile-rte-link')! as NileRteLink;\n\n let received = false;\n container.addEventListener('nile-link-changed', () => {\n received = true;\n });\n\n const p = editor.querySelector('p')!;\n collapseAt(p, 4);\n\n (el as any).selectionRange = document.getSelection()!.getRangeAt(0).cloneRange();\n (el as any).linkValue = 'https://example.com';\n (el as any).applyLink();\n\n expect(received).to.be.true;\n });\n\n it('42. toolbar link button shows active state when cursor is inside a link', async () => {\n editor = createEditor('<p><a href=\"https://example.com\">link text</a></p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const a = editor.querySelector('a')!;\n collapseAt(a, 2);\n\n (el as any).onOpen();\n await elementUpdated(el);\n\n expect((el as any).hasActiveLink).to.be.true;\n });\n\n it('43. toolbar link button loses active state when cursor moves outside a link', async () => {\n editor = createEditor('<p>normal <a href=\"https://example.com\">link</a> text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n\n const p = editor.querySelector('p')!;\n const textNode = p.firstChild!;\n const sel = document.getSelection()!;\n sel.removeAllRanges();\n const range = document.createRange();\n range.setStart(textNode, 2);\n range.collapse(true);\n sel.addRange(range);\n\n (el as any).onOpen();\n await elementUpdated(el);\n\n expect((el as any).hasActiveLink).to.be.false;\n expect((el as any).activeAnchor).to.be.null;\n });\n\n // ── CSS Injection ──\n\n it('44. injects style tag with data-rte-link-style attribute', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const styleTag = el.querySelector('style[data-rte-link-style]');\n expect(styleTag).to.exist;\n });\n\n it('45. does not inject duplicate styles on reconnect', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n\n const parent = el.parentElement!;\n parent.removeChild(el);\n parent.appendChild(el);\n await elementUpdated(el);\n\n const styleTags = el.querySelectorAll('style[data-rte-link-style]');\n expect(styleTags.length).to.equal(1);\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"nile-rte-link.test.js","sourceRoot":"","sources":["../../../src/nile-rich-text-editor/nile-rte-link.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture, html, elementUpdated } from '@open-wc/testing';\nimport './nile-rte-link';\nimport type { NileRteLink } from './nile-rte-link';\n\nfunction createEditor(content = '<p>hello world</p>'): HTMLElement {\n const el = document.createElement('article');\n el.setAttribute('contenteditable', 'true');\n el.innerHTML = content;\n document.body.appendChild(el);\n return el;\n}\n\nfunction selectText(node: Node, start: number, end: number) {\n const sel = document.getSelection()!;\n sel.removeAllRanges();\n const range = document.createRange();\n const textNode = node.firstChild!;\n range.setStart(textNode, start);\n range.setEnd(textNode, end);\n sel.addRange(range);\n return range;\n}\n\nfunction collapseAt(node: Node, offset: number) {\n const sel = document.getSelection()!;\n sel.removeAllRanges();\n const range = document.createRange();\n const textNode = node.firstChild!;\n range.setStart(textNode, offset);\n range.collapse(true);\n sel.addRange(range);\n return range;\n}\n\nfunction sleep(ms: number) {\n return new Promise(r => setTimeout(r, ms));\n}\n\ndescribe('NileRteLink', () => {\n let editor: HTMLElement;\n\n afterEach(() => {\n editor?.remove();\n });\n\n // ── Rendering and Defaults ──\n\n it('1. renders the component', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n expect(el).to.exist;\n });\n\n it('2. tag name is nile-rte-link', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n expect(el.tagName.toLowerCase()).to.equal('nile-rte-link');\n });\n\n it('3. default newTab is false', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n expect(el.newTab).to.be.false;\n });\n\n it('4. default placeholder is \"Type or paste link here\"', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n expect(el.placeholder).to.equal('Type or paste link here');\n });\n\n it('5. default label is \"Link\"', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n expect(el.label).to.equal('Link');\n });\n\n it('6. renders a link icon button', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const btn = el.querySelector('nile-button');\n expect(btn).to.exist;\n const icon = el.querySelector('nile-icon');\n expect(icon).to.exist;\n expect(icon!.getAttribute('name')).to.equal('link_2');\n });\n\n it('7. renders a popover element', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const pop = el.querySelector('nile-popover');\n expect(pop).to.exist;\n });\n\n it('8. custom element is defined in registry', async () => {\n expect(customElements.get('nile-rte-link')).to.exist;\n });\n\n // ── Property Binding ──\n\n it('9. set newTab to true', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor} newTab></nile-rte-link>`\n );\n expect(el.newTab).to.be.true;\n });\n\n it('10. set custom placeholder', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor} placeholder=\"Enter URL\"></nile-rte-link>`\n );\n expect(el.placeholder).to.equal('Enter URL');\n });\n\n it('11. set custom label', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor} label=\"Add Link\"></nile-rte-link>`\n );\n expect(el.label).to.equal('Add Link');\n });\n\n it('12. set editorEl reference', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n expect(el.editorEl).to.equal(editor);\n });\n\n // ── URL Normalization ──\n\n it('13. plain domain gets https:// prepended', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const normalize = (el as any).normalizeUrl.bind(el);\n expect(normalize('example.com')).to.equal('https://example.com');\n });\n\n it('14. http:// URL stays unchanged', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const normalize = (el as any).normalizeUrl.bind(el);\n expect(normalize('http://example.com')).to.equal('http://example.com');\n });\n\n it('15. https:// URL stays unchanged', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const normalize = (el as any).normalizeUrl.bind(el);\n expect(normalize('https://example.com')).to.equal('https://example.com');\n });\n\n it('16. mailto: URL stays unchanged', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const normalize = (el as any).normalizeUrl.bind(el);\n expect(normalize('mailto:a@b.com')).to.equal('mailto:a@b.com');\n });\n\n it('17. tel: URL stays unchanged', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const normalize = (el as any).normalizeUrl.bind(el);\n expect(normalize('tel:+123')).to.equal('tel:+123');\n });\n\n it('18. displayUrl returns URL as-is', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const display = (el as any).displayUrl.bind(el);\n expect(display('https://example.com')).to.equal('https://example.com');\n expect(display('http://example.com/path')).to.equal('http://example.com/path');\n });\n\n // ── Link Insertion (collapsed selection) ──\n\n it('19. inserts a new <a> tag with URL as text when selection is collapsed', async () => {\n editor = createEditor('<p>text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n collapseAt(p, 4);\n\n (el as any).selectionRange = document.getSelection()!.getRangeAt(0).cloneRange();\n (el as any).linkValue = 'https://example.com';\n (el as any).applyLink();\n\n const a = editor.querySelector('a');\n expect(a).to.exist;\n expect(a!.href).to.include('example.com');\n expect(a!.textContent).to.include('example.com');\n });\n\n it('20. inserts link with target and rel when newTab is true', async () => {\n editor = createEditor('<p>text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor} newTab></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n collapseAt(p, 4);\n\n (el as any).selectionRange = document.getSelection()!.getRangeAt(0).cloneRange();\n (el as any).linkValue = 'https://example.com';\n (el as any).applyLink();\n\n const a = editor.querySelector('a');\n expect(a).to.exist;\n expect(a!.target).to.equal('_blank');\n expect(a!.rel).to.equal('noopener noreferrer');\n });\n\n it('21. does not set target/rel when newTab is false', async () => {\n editor = createEditor('<p>text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n collapseAt(p, 4);\n\n (el as any).selectionRange = document.getSelection()!.getRangeAt(0).cloneRange();\n (el as any).linkValue = 'https://example.com';\n (el as any).applyLink();\n\n const a = editor.querySelector('a');\n expect(a).to.exist;\n expect(a!.hasAttribute('target')).to.be.false;\n expect(a!.hasAttribute('rel')).to.be.false;\n });\n\n // ── Link Insertion (text selected) ──\n\n it('22. wraps selected text in an <a> tag', async () => {\n editor = createEditor('<p>hello world</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n selectText(p, 0, 5);\n\n (el as any).selectionRange = document.getSelection()!.getRangeAt(0).cloneRange();\n (el as any).linkValue = 'https://example.com';\n (el as any).applyLink();\n\n const a = editor.querySelector('a');\n expect(a).to.exist;\n expect(a!.href).to.include('example.com');\n });\n\n it('23. preserves selected text content after wrapping', async () => {\n editor = createEditor('<p>hello world</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n selectText(p, 0, 5);\n\n (el as any).selectionRange = document.getSelection()!.getRangeAt(0).cloneRange();\n (el as any).linkValue = 'https://example.com';\n (el as any).applyLink();\n\n const a = editor.querySelector('a');\n expect(a!.textContent).to.equal('hello');\n });\n\n // ── Link Editing ──\n\n it('24. detects existing anchor and shows edit/unlink buttons', async () => {\n editor = createEditor('<p><a href=\"https://example.com\">link text</a></p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const a = editor.querySelector('a')!;\n collapseAt(a, 2);\n\n (el as any).onOpen();\n await elementUpdated(el);\n\n expect((el as any).hasActiveLink).to.be.true;\n expect((el as any).activeAnchor).to.equal(a);\n });\n\n it('25. pre-fills input with existing link URL', async () => {\n editor = createEditor('<p><a href=\"https://example.com\">link</a></p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const a = editor.querySelector('a')!;\n collapseAt(a, 2);\n\n (el as any).onOpen();\n await elementUpdated(el);\n\n expect((el as any).linkValue).to.equal(a.href);\n });\n\n it('26. updates existing anchor href on apply', async () => {\n editor = createEditor('<p><a href=\"https://old.com\">link</a></p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const a = editor.querySelector('a')!;\n collapseAt(a, 2);\n\n (el as any).onOpen();\n await elementUpdated(el);\n\n (el as any).linkValue = 'https://new.com';\n (el as any).applyLink();\n\n expect(a.href).to.include('new.com');\n });\n\n it('27. toggling newTab on edit updates target/rel attributes', async () => {\n editor = createEditor('<p><a href=\"https://example.com\">link</a></p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor} newTab></nile-rte-link>`\n );\n const a = editor.querySelector('a')!;\n collapseAt(a, 2);\n\n (el as any).onOpen();\n await elementUpdated(el);\n\n (el as any).linkValue = 'https://example.com';\n (el as any).applyLink();\n\n expect(a.target).to.equal('_blank');\n expect(a.rel).to.equal('noopener noreferrer');\n });\n\n // ── Link Removal ──\n\n it('28. unlink removes the <a> tag', async () => {\n editor = createEditor('<p><a href=\"https://example.com\">link text</a></p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const a = editor.querySelector('a')!;\n collapseAt(a, 2);\n\n (el as any).onOpen();\n await elementUpdated(el);\n (el as any).onRemove();\n\n expect(editor.querySelector('a')).to.be.null;\n });\n\n it('29. unlink preserves the text content', async () => {\n editor = createEditor('<p><a href=\"https://example.com\">link text</a></p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const a = editor.querySelector('a')!;\n collapseAt(a, 2);\n\n (el as any).onOpen();\n await elementUpdated(el);\n (el as any).onRemove();\n\n expect(editor.querySelector('p')!.textContent).to.equal('link text');\n });\n\n it('30. closes popover after unlink', async () => {\n editor = createEditor('<p><a href=\"https://example.com\">link text</a></p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const a = editor.querySelector('a')!;\n collapseAt(a, 2);\n\n (el as any).onOpen();\n await elementUpdated(el);\n (el as any).onRemove();\n\n expect((el as any).selectionRange).to.be.null;\n expect((el as any).hasActiveLink).to.be.false;\n });\n\n // ── Popover Behavior ──\n\n it('31. opens popover on button click', async () => {\n editor = createEditor('<p>text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n collapseAt(p, 2);\n\n (el as any).onOpen();\n await sleep(50);\n\n const pop = el.querySelector('nile-popover') as any;\n expect(pop?.isShow).to.be.true;\n });\n\n it('32. closes popover on Escape key', async () => {\n editor = createEditor('<p>text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n collapseAt(p, 2);\n\n (el as any).onOpen();\n await sleep(50);\n\n const event = new KeyboardEvent('keydown', { key: 'Escape', bubbles: true });\n (el as any).onInputKeydown(event);\n\n expect((el as any).selectionRange).to.be.null;\n });\n\n it('33. applies link on Enter key', async () => {\n editor = createEditor('<p>text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n collapseAt(p, 4);\n\n (el as any).selectionRange = document.getSelection()!.getRangeAt(0).cloneRange();\n (el as any).linkValue = 'https://example.com';\n\n const event = new KeyboardEvent('keydown', { key: 'Enter', bubbles: true });\n (el as any).onInputKeydown(event);\n\n const a = editor.querySelector('a');\n expect(a).to.exist;\n });\n\n it('34. closes popover on input blur', async () => {\n editor = createEditor('<p>text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n collapseAt(p, 2);\n\n (el as any).onOpen();\n await sleep(50);\n\n (el as any).ignoreBlur = false;\n (el as any).isApplying = false;\n (el as any).onInputBlur();\n await sleep(50);\n\n expect((el as any).selectionRange).to.be.null;\n });\n\n it('35. does not close on blur when ignoreBlur is set', async () => {\n editor = createEditor('<p>text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n collapseAt(p, 2);\n\n (el as any).onOpen();\n await sleep(50);\n\n (el as any).ignoreBlur = true;\n (el as any).onInputBlur();\n\n expect((el as any).selectionRange).to.not.be.null;\n });\n\n // ── Event Dispatching ──\n\n it('36. fires nile-link-changed with href on link apply', async () => {\n editor = createEditor('<p>text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n collapseAt(p, 4);\n\n let detail: any = null;\n el.addEventListener('nile-link-changed', ((e: CustomEvent) => {\n detail = e.detail;\n }) as EventListener);\n\n (el as any).selectionRange = document.getSelection()!.getRangeAt(0).cloneRange();\n (el as any).linkValue = 'https://example.com';\n (el as any).applyLink();\n\n expect(detail).to.exist;\n expect(detail.href).to.include('example.com');\n });\n\n it('37. fires nile-link-changed with empty href on unlink', async () => {\n editor = createEditor('<p><a href=\"https://example.com\">link</a></p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const a = editor.querySelector('a')!;\n collapseAt(a, 2);\n\n let detail: any = null;\n el.addEventListener('nile-link-changed', ((e: CustomEvent) => {\n detail = e.detail;\n }) as EventListener);\n\n (el as any).onOpen();\n await elementUpdated(el);\n (el as any).onRemove();\n\n expect(detail).to.exist;\n expect(detail.href).to.equal('');\n });\n\n it('38. event bubbles and is composed', async () => {\n editor = createEditor('<p>text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n collapseAt(p, 4);\n\n let bubbles = false;\n let composed = false;\n el.addEventListener('nile-link-changed', ((e: CustomEvent) => {\n bubbles = e.bubbles;\n composed = e.composed;\n }) as EventListener);\n\n (el as any).selectionRange = document.getSelection()!.getRangeAt(0).cloneRange();\n (el as any).linkValue = 'https://example.com';\n (el as any).applyLink();\n\n expect(bubbles).to.be.true;\n expect(composed).to.be.true;\n });\n\n // ── Validation ──\n\n it('39. does not apply empty URL', async () => {\n editor = createEditor('<p>text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n collapseAt(p, 4);\n\n (el as any).selectionRange = document.getSelection()!.getRangeAt(0).cloneRange();\n (el as any).linkValue = '';\n (el as any).applyLink();\n\n expect(editor.querySelector('a')).to.be.null;\n });\n\n it('40. rejects unsupported protocols', async () => {\n editor = createEditor('<p>text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const p = editor.querySelector('p')!;\n collapseAt(p, 4);\n\n (el as any).selectionRange = document.getSelection()!.getRangeAt(0).cloneRange();\n (el as any).linkValue = 'javascript:alert(1)';\n (el as any).applyLink();\n\n expect(editor.querySelector('a')).to.be.null;\n });\n\n // ── Integration with Parent RTE ──\n\n it('41. parent receives nile-link-changed event and updates content', async () => {\n editor = createEditor('<p>text</p>');\n const container = await fixture(html`\n <div>\n <nile-rte-link .editorEl=${editor}></nile-rte-link>\n </div>\n `);\n const el = container.querySelector('nile-rte-link')! as NileRteLink;\n\n let received = false;\n container.addEventListener('nile-link-changed', () => {\n received = true;\n });\n\n const p = editor.querySelector('p')!;\n collapseAt(p, 4);\n\n (el as any).selectionRange = document.getSelection()!.getRangeAt(0).cloneRange();\n (el as any).linkValue = 'https://example.com';\n (el as any).applyLink();\n\n expect(received).to.be.true;\n });\n\n it('42. toolbar link button shows active state when cursor is inside a link', async () => {\n editor = createEditor('<p><a href=\"https://example.com\">link text</a></p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const a = editor.querySelector('a')!;\n collapseAt(a, 2);\n\n (el as any).onOpen();\n await elementUpdated(el);\n\n expect((el as any).hasActiveLink).to.be.true;\n });\n\n it('43. toolbar link button loses active state when cursor moves outside a link', async () => {\n editor = createEditor('<p>normal <a href=\"https://example.com\">link</a> text</p>');\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n\n const p = editor.querySelector('p')!;\n const textNode = p.firstChild!;\n const sel = document.getSelection()!;\n sel.removeAllRanges();\n const range = document.createRange();\n range.setStart(textNode, 2);\n range.collapse(true);\n sel.addRange(range);\n\n (el as any).onOpen();\n await elementUpdated(el);\n\n expect((el as any).hasActiveLink).to.be.false;\n expect((el as any).activeAnchor).to.be.null;\n });\n\n // ── CSS Injection ──\n\n it('44. injects style tag with data-rte-link-style attribute', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n const styleTag = el.querySelector('style[data-rte-link-style]');\n expect(styleTag).to.exist;\n });\n\n it('45. does not inject duplicate styles on reconnect', async () => {\n editor = createEditor();\n const el = await fixture<NileRteLink>(\n html`<nile-rte-link .editorEl=${editor}></nile-rte-link>`\n );\n\n const parent = el.parentElement!;\n parent.removeChild(el);\n parent.appendChild(el);\n await elementUpdated(el);\n\n const styleTags = el.querySelectorAll('style[data-rte-link-style]');\n expect(styleTags.length).to.equal(1);\n });\n});\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-utils.js","sourceRoot":"","sources":["../../../../src/nile-rich-text-editor/utils/list-utils.ts"],"names":[],"mappings":"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","sourcesContent":["export function toggleList(root: HTMLElement, kind: 'ul' | 'ol') {\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n function styleList(list: HTMLElement) {\n list.style.paddingInlineStart = '0';\n list.style.margin = '0';\n }\n\n function isEmptyBlock(el: HTMLElement) {\n return !el.textContent?.trim() && !el.querySelector('img,br');\n }\n\n function setCursorInside(el: HTMLElement) {\n const selection = document.getSelection();\n if (!selection) return;\n const r = document.createRange();\n r.selectNodeContents(el);\n r.collapse(true);\n selection.removeAllRanges();\n selection.addRange(r);\n }\n\n function closestBlock(node: Node | null): HTMLElement | null {\n while (node && node !== root) {\n if (node instanceof HTMLElement) {\n const display = getComputedStyle(node).display;\n if (\n node.tagName.match(/^(P|DIV|H[1-6]|LI)$/) ||\n display === 'block' ||\n display === 'list-item'\n )\n return node;\n }\n node = node.parentNode;\n }\n return null;\n }\n\n function unwrapList(list: HTMLElement) {\n const frag = document.createDocumentFragment();\n (Array.from(list.querySelectorAll('li')) as HTMLElement[]).forEach(li => {\n const p = document.createElement('p');\n if (li.style.textAlign) p.style.textAlign = li.style.textAlign;\n while (li.firstChild) p.appendChild(li.firstChild);\n frag.appendChild(p);\n });\n list.replaceWith(frag);\n }\n\n function unwrapListItem(block: HTMLElement) {\n const li = block.closest('li');\n if (!li) return;\n const list = li.parentElement as HTMLElement;\n const p = document.createElement('p');\n if (li.style.textAlign) p.style.textAlign = li.style.textAlign;\n while (li.firstChild) p.appendChild(li.firstChild);\n list.parentNode?.insertBefore(p, list.nextSibling);\n li.remove();\n if (list.childNodes.length === 0) list.remove();\n setCursorInside(p);\n }\n\n function switchListType(list: HTMLElement, newType: 'ul' | 'ol') {\n const newList = document.createElement(newType);\n styleList(newList);\n while (list.firstChild) newList.appendChild(list.firstChild);\n list.replaceWith(newList);\n }\n if (range.collapsed) {\n const block = closestBlock(range.startContainer);\n const insideList = block?.closest('ul,ol') as HTMLElement | null;\n if (insideList && insideList.tagName.toLowerCase() === kind) {\n unwrapListItem(block as HTMLElement);\n return;\n }\n\n if (insideList && insideList.tagName.toLowerCase() !== kind) {\n switchListType(insideList, kind);\n return;\n }\n if (\n !block ||\n block === root ||\n block.childNodes.length === 0 ||\n isEmptyBlock(block)\n ) {\n const list = document.createElement(kind);\n const li = document.createElement('li');\n li.appendChild(document.createElement('br'));\n list.appendChild(li);\n styleList(list);\n range.insertNode(list);\n setCursorInside(li);\n return;\n }\n const list = document.createElement(kind);\n styleList(list);\n const li = document.createElement('li');\n if (block.style.textAlign) li.style.textAlign = block.style.textAlign;\n while (block.firstChild) li.appendChild(block.firstChild);\n list.appendChild(li);\n block.replaceWith(list);\n setCursorInside(li);\n return;\n }\n\n const blocks: HTMLElement[] = [];\n const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {\n acceptNode: n => {\n if (!(n instanceof HTMLElement)) return NodeFilter.FILTER_SKIP;\n if (!/^(P|DIV|LI|H[1-6])$/.test(n.tagName)) return NodeFilter.FILTER_SKIP;\n const r = document.createRange();\n r.selectNodeContents(n);\n const intersects =\n range.compareBoundaryPoints(Range.END_TO_START, r) < 0 &&\n range.compareBoundaryPoints(Range.START_TO_END, r) > 0;\n return intersects ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;\n },\n });\n let n: Node | null;\n while ((n = walker.nextNode())) blocks.push(n as HTMLElement);\n\n if (blocks.length === 0) {\n const block = closestBlock(range.startContainer);\n if (block) blocks.push(block);\n }\n\n const firstLi = blocks[0].closest('li');\n if (firstLi) {\n const currentList = firstLi.closest('ul,ol') as HTMLElement | null;\n if (!currentList) return;\n if (currentList.tagName.toLowerCase() === kind) unwrapList(currentList);\n else switchListType(currentList, kind);\n return;\n }\n const newList = document.createElement(kind);\n styleList(newList);\n for (const block of blocks) {\n const li = document.createElement('li');\n if (block.style.textAlign) li.style.textAlign = block.style.textAlign;\n while (block.firstChild) li.appendChild(block.firstChild);\n newList.appendChild(li);\n }\n blocks[0].replaceWith(newList);\n for (let i = 1; i < blocks.length; i++) blocks[i].remove();\n}\n"]}
|
|
1
|
+
{"version":3,"file":"list-utils.js","sourceRoot":"","sources":["../../../../src/nile-rich-text-editor/utils/list-utils.ts"],"names":[],"mappings":"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","sourcesContent":["export function toggleList(root: HTMLElement, kind: 'ul' | 'ol') {\n const sel = document.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n function styleList(list: HTMLElement) {\n list.style.margin = '0';\n }\n\n function isEmptyBlock(el: HTMLElement) {\n return !el.textContent?.trim() && !el.querySelector('img,br');\n }\n\n function setCursorInside(el: HTMLElement) {\n const selection = document.getSelection();\n if (!selection) return;\n const r = document.createRange();\n r.selectNodeContents(el);\n r.collapse(true);\n selection.removeAllRanges();\n selection.addRange(r);\n }\n\n function closestBlock(node: Node | null): HTMLElement | null {\n while (node && node !== root) {\n if (node instanceof HTMLElement) {\n const display = getComputedStyle(node).display;\n if (\n node.tagName.match(/^(P|DIV|H[1-6]|LI)$/) ||\n display === 'block' ||\n display === 'list-item'\n )\n return node;\n }\n node = node.parentNode;\n }\n return null;\n }\n\n function unwrapList(list: HTMLElement) {\n const frag = document.createDocumentFragment();\n (Array.from(list.querySelectorAll('li')) as HTMLElement[]).forEach(li => {\n const p = document.createElement('p');\n if (li.style.textAlign) p.style.textAlign = li.style.textAlign;\n while (li.firstChild) p.appendChild(li.firstChild);\n frag.appendChild(p);\n });\n list.replaceWith(frag);\n }\n\n function unwrapListItem(block: HTMLElement) {\n const li = block.closest('li');\n if (!li) return;\n const list = li.parentElement as HTMLElement;\n const p = document.createElement('p');\n if (li.style.textAlign) p.style.textAlign = li.style.textAlign;\n while (li.firstChild) p.appendChild(li.firstChild);\n list.parentNode?.insertBefore(p, list.nextSibling);\n li.remove();\n if (list.childNodes.length === 0) list.remove();\n setCursorInside(p);\n }\n\n function switchListType(list: HTMLElement, newType: 'ul' | 'ol') {\n const newList = document.createElement(newType);\n styleList(newList);\n while (list.firstChild) newList.appendChild(list.firstChild);\n list.replaceWith(newList);\n }\n if (range.collapsed) {\n const block = closestBlock(range.startContainer);\n const insideList = block?.closest('ul,ol') as HTMLElement | null;\n if (insideList && insideList.tagName.toLowerCase() === kind) {\n unwrapListItem(block as HTMLElement);\n return;\n }\n\n if (insideList && insideList.tagName.toLowerCase() !== kind) {\n switchListType(insideList, kind);\n return;\n }\n if (\n !block ||\n block === root ||\n block.childNodes.length === 0 ||\n isEmptyBlock(block)\n ) {\n const list = document.createElement(kind);\n const li = document.createElement('li');\n li.appendChild(document.createElement('br'));\n list.appendChild(li);\n styleList(list);\n range.insertNode(list);\n setCursorInside(li);\n return;\n }\n const list = document.createElement(kind);\n styleList(list);\n const li = document.createElement('li');\n if (block.style.textAlign) li.style.textAlign = block.style.textAlign;\n while (block.firstChild) li.appendChild(block.firstChild);\n list.appendChild(li);\n block.replaceWith(list);\n setCursorInside(li);\n return;\n }\n\n const blocks: HTMLElement[] = [];\n const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {\n acceptNode: n => {\n if (!(n instanceof HTMLElement)) return NodeFilter.FILTER_SKIP;\n if (!/^(P|DIV|LI|H[1-6])$/.test(n.tagName)) return NodeFilter.FILTER_SKIP;\n const r = document.createRange();\n r.selectNodeContents(n);\n const intersects =\n range.compareBoundaryPoints(Range.END_TO_START, r) < 0 &&\n range.compareBoundaryPoints(Range.START_TO_END, r) > 0;\n return intersects ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT;\n },\n });\n let n: Node | null;\n while ((n = walker.nextNode())) blocks.push(n as HTMLElement);\n\n if (blocks.length === 0) {\n const block = closestBlock(range.startContainer);\n if (block) blocks.push(block);\n }\n\n const firstLi = blocks[0].closest('li');\n if (firstLi) {\n const currentList = firstLi.closest('ul,ol') as HTMLElement | null;\n if (!currentList) return;\n if (currentList.tagName.toLowerCase() === kind) unwrapList(currentList);\n else switchListType(currentList, kind);\n return;\n }\n const newList = document.createElement(kind);\n styleList(newList);\n for (const block of blocks) {\n const li = document.createElement('li');\n if (block.style.textAlign) li.style.textAlign = block.style.textAlign;\n while (block.firstChild) li.appendChild(block.firstChild);\n newList.appendChild(li);\n }\n blocks[0].replaceWith(newList);\n for (let i = 1; i < blocks.length; i++) blocks[i].remove();\n}\n"]}
|
|
@@ -251,7 +251,7 @@ export const styles = css `
|
|
|
251
251
|
|
|
252
252
|
.select--standard:not(.select--disabled).select--open .select__combobox,
|
|
253
253
|
.select--standard:not(.select--disabled).select--focused .select__combobox {
|
|
254
|
-
background-color: var(--nile-colors-neutral-100);
|
|
254
|
+
background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary));
|
|
255
255
|
}
|
|
256
256
|
|
|
257
257
|
.select--warning .select__combobox {
|
|
@@ -435,6 +435,25 @@ export const styles = css `
|
|
|
435
435
|
margin-bottom: -8px;
|
|
436
436
|
}
|
|
437
437
|
|
|
438
|
+
.select__pre-footer-area {
|
|
439
|
+
position: sticky;
|
|
440
|
+
bottom: 0;
|
|
441
|
+
z-index: 1;
|
|
442
|
+
background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
.select__custom-footer {
|
|
446
|
+
display: block;
|
|
447
|
+
border-top: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));
|
|
448
|
+
background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));
|
|
449
|
+
padding: var(--nile-spacing-lg, var(--ng-spacing-lg)) ;
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
.select__custom-footer:hover {
|
|
453
|
+
background: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary-hover));
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
|
|
438
457
|
.select__footer {
|
|
439
458
|
position: sticky;
|
|
440
459
|
bottom: 0px;
|
|
@@ -518,7 +537,7 @@ export const styles = css `
|
|
|
518
537
|
box-shadow: 0 0 0 1px var(--ng-colors-border-brand) inset ;
|
|
519
538
|
}
|
|
520
539
|
|
|
521
|
-
:host([stickyHeader])
|
|
540
|
+
:host([stickyHeader]) .select__footer-area {
|
|
522
541
|
z-index: 1;
|
|
523
542
|
}
|
|
524
543
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nile-select.css.js","sourceRoot":"","sources":["../../../src/nile-select/nile-select.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsgBxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\n/**\n * Select_2 CSS\n */\nexport const styles = css`\n :host {\n box-sizing: border-box;\n --ng-nxt-gen-outline: var(--ng-border-width-1) solid var(--ng-colors-border-brand);\n --ng-nxt-gen-outline-error: var(--ng-border-width-1) solid var(--ng-colors-border-error);\n --ng-private-outline-transparent: var(--ng-border-width-1) solid transparent;\n --ng-box-shadow: 0px 12px 16px -4px var(--ng-colors-effects-shadow-lg-01, rgba(10, 13, 18, 0.08)), 0px 4px 6px -2px var(--ng-colors-effects-shadow-lg-02, rgba(10, 13, 18, 0.03)), 0px 2px 2px -1px var(--ng-colors-effects-shadow-lg-03, rgba(10, 13, 18, 0.04));\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n :host([disabled]) .form-control--has-label .form-control__label {\n user-select: none;\n -webkit-user-select: none;\n }\n \n [hidden] {\n display: none !important;\n }\n\n .form-control .form-control__label {\n display: none;\n }\n\n .form-control .form-control__help-text {\n display: none;\n }\n\n /* Label */\n .form-control--has-label .form-control__label {\n display: block;\n margin-bottom: var(--nile-spacing-sm, var(--ng-spacing-sm));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-style: normal;\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-medium));\n line-height: var(--nile-spacing-2xl, var(--ng-line-height-text-sm));\n letter-spacing: 0.2px;\n }\n\n .form-control--has-label.form-control--medium .form-control__label {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n }\n\n :host([required]) .form-control--has-label .form-control__label::after {\n content: '*';\n margin-inline-start: -2px;\n color: var(--nile-colors-red-700, var(--ng-colors-text-error-primary-600));\n }\n\n /* Help text */\n .form-control--has-help-text .form-control__help-text {\n display: block;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));\n margin-top: var(--nile-spacing-lg, var(--ng-spacing-lg));\n }\n\n .form-control--has-help-text.form-control--medium .form-control__help-text {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n }\n\n .form-control--has-help-text.form-control--radio-group\n .form-control__help-text {\n margin-top: var(--nile-spacing-xs, var(--ng-spacing-sm));\n }\n\n :host {\n display: block;\n }\n\n /** The popup */\n .select {\n flex: 1 1 auto;\n display: inline-flex;\n width: 100%;\n position: relative;\n vertical-align: middle;\n }\n\n .select::part(popup) {\n z-index: 9999;\n }\n\n .select[data-current-placement^='top']::part(popup) {\n transform-origin: bottom;\n }\n\n .select[data-current-placement^='bottom']::part(popup) {\n transform-origin: top;\n }\n\n /* Combobox */\n .select__combobox {\n flex: 1;\n display: flex;\n width: 100%;\n min-width: 0;\n position: relative;\n align-items: center;\n justify-content: start;\n font-family: var(--nile-font-family-sans-serif, var(--ng-font-family-body));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-medium));\n letter-spacing: normal;\n vertical-align: middle;\n overflow: hidden;\n cursor: pointer;\n transition: 150ms color, 150ms border, 150ms box-shadow,\n 150ms background-color;\n }\n\n .select__display-input {\n position: relative;\n width: 100%;\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n border: none;\n background: none;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n cursor: inherit;\n overflow: hidden;\n padding: var(--nile-spacing-none, var(--ng-spacing-none));\n margin: var(--nile-spacing-none, var(--ng-spacing-none));\n -webkit-appearance: none;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n }\n\n\n .select__display-input::placeholder {\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n color: var(--nile-colors-text-placeholder, var(--ng-colors-text-placeholder));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n }\n\n .select--disabled.select--placeholder-visible .select__display-input::placeholder {\n color: var(--nile-colors-dark-500,var(--ng-colors-text-disabled));\n }\n\n .select--disabled .select__display-input{\n color:var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n pointer-events:none;\n }\n\n .select:not(.select--disabled):hover .select__display-input {\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n }\n\n .select__display-input:focus {\n outline: none;\n }\n\n /* Visually hide the display input when multiple is enabled */\n .select--multiple:not(.select--placeholder-visible) .select__display-input {\n position: absolute;\n z-index: -1;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n }\n\n .select__value-input {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: var(--nile-spacing-none);\n margin: var(--nile-spacing-none);\n opacity: 0;\n z-index: -1;\n }\n\n .select__tags {\n display: flex;\n flex: 1;\n align-items: center;\n flex-wrap: no-wrap;\n margin-inline-start: var(--nile-spacing-7px, var(--ng-spacing-md));\n width: 100%;\n overflow: hidden;\n }\n\n .select__tags-count {\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-style: normal;\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n line-height: var(--nile-line-height-xsmall);\n letter-spacing: 0.2px;\n margin: var(--nile-spacing-sm, var(--ng-spacing-sm));\n }\n\n .select__tags-count-clearable {\n margin-right: var(--nile-spacing-5xl, var(--ng-spacing-5xl));\n }\n\n .select__tags::slotted(nile-tag) {\n cursor: pointer !important;\n }\n\n .select--disabled .select__tags,\n .select--disabled .select__tags::slotted(nile-tag) {\n cursor: not-allowed !important;\n }\n\n /* Standard selects */\n .select--standard .select__combobox {\n background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border: solid 1px var(--nile-colors-neutral-500, var(--ng-colors-border-primary));\n /* outline: var(--nile-outline-none, var(--ng-private-outline-transparent)); */\n }\n\n .select--standard .select__combobox:hover {\n border: 1px solid var(--nile-colors-dark-900, var(--ng-colors-border-neutral));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n /* outline: var(--nile-outline-none, var(--ng-nxt-gen-outline)); */\n }\n\n .select--error:hover:not(.select--disabled) .select__combobox{\n border-color: var(--nile-colors-red-500, var(--ng-colors-border-error));\n /* outline: var(--nile-outline-none, var(--ng-colors-border-error)); */\n }\n\n .select--standard.select--disabled .select__combobox {\n background-color: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n border-color: var(--nile-colors-neutral-500,var(--ng-colors-border-disabled) );\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n cursor: not-allowed;\n outline: none;\n }\n\n .select--standard:not(.select--disabled).select--open .select__combobox,\n .select--standard:not(.select--disabled).select--focused .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n }\n\n .select--warning .select__combobox {\n border-color: var(--nile-colors-yellow-500, var(--ng-colors-border-warning));\n }\n\n .select--error .select__combobox {\n border-color: var(--nile-colors-red-500, var(--ng-colors-border-error));\n outline: var(--nile-outline-none, var(--ng-private-outline-transparent));\n }\n\n\n\n\n .select--success {\n border-color: var(--nile-colors-green-500, var(--ng-componentcolors-utility-success-500));\n }\n\n /* Filled selects */\n .select--filled .select__combobox {\n border: none;\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n }\n\n .select--filled:hover:not(.select--disabled) .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n }\n\n .select--filled.select--disabled .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .select--filled:not(.select--disabled).select--open .select__combobox,\n .select--filled:not(.select--disabled).select--focused .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n outline: 3px solid rgba(0, 89, 255, 0.4);\n }\n\n .select--medium .select__combobox {\n border-radius: var(--nile-radius-sm, var(--ng-radius-md));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n\n padding: var(--nile-spacing-lg, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg));\n height: var(--nile-height-40px, var(--ng-height-40px));\n box-sizing: border-box;\n }\n\n .select--medium .select__clear {\n margin-inline-start: var(--nile-spacing-lg, var(--ng-spacing-lg));\n margin-right: var(--nile-spacing-md, var(--ng-spacing-md));\n }\n\n .select--medium .select__prefix::slotted(*) {\n margin-inline-end: var(--nile-spacing-md, var(--ng-spacing-md));\n }\n\n .select--medium .select__prefix.multiple::slotted(*) {\n margin-right: var(--nile-spacing-md, var(--ng-spacing-md));\n }\n\n .select--medium:not(.select--placeholder-visible) .select__prefix.multiple::slotted(*) {\n margin-inline-start: var(--nile-spacing-xsmall, var(--ng-spacing-lg));\n }\n\n .select--medium.select--multiple:not(.select--placeholder-visible)\n .select__combobox {\n padding-inline-start: var(--nile-spacing-none, var(--ng-spacing-none));\n }\n\n .select--medium .select__tags {\n gap: var(--nile-spacing-3px, var(--ng-spacing-sm));\n }\n\n /* Pills */\n .select--pill.select--medium .select__combobox {\n border-radius: var(--nile-radius-3xl);\n }\n\n /* Prefix */\n .select__prefix {\n flex: 0;\n display: inline-flex;\n align-items: center;\n color: var(--nile-colors-dark-500);\n }\n\n .select__suffix {\n flex: 0;\n display: inline-flex;\n align-items: center;\n color: var(--nile-colors-dark-500);\n }\n\n /* Clear button */\n .select__clear {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: inherit;\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n border: none;\n background: none;\n padding: var(--nile-spacing-none);\n transition: 150ms color;\n cursor: pointer;\n }\n\n .select__clear:hover {\n color: var(--nile-colors-dark-500);\n }\n\n .select__clear:focus {\n outline: none;\n }\n\n /* Expand icon */\n .select__expand-icon {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n transition: 250ms rotate ease;\n rotate: 0;\n margin-inline-start: var(--nile-spacing-md, var(--ng-spacing-md));\n }\n\n .select--open .select__expand-icon {\n rotate: -180deg;\n }\n\n /* Listbox */\n .select__listbox {\n display: block;\n position: relative;\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border: solid 1px var(--nile-colors-neutral-500, var(--ng-colors-border-secondary-alt));\n border-radius: var(--nile-radius-sm, var(--ng-radius-md));\n padding-block: var(--nile-spacing-none, var(--ng-spacing-none));\n padding-inline: var(--nile-spacing-none, var(--ng-spacing-none));\n overflow: auto;\n overscroll-behavior: none;\n /* Make sure it adheres to the popup's auto size */\n max-width: var(--auto-size-available-width);\n max-height: var(--auto-size-available-height);\n box-shadow: var(--nile-box-shadow-none, var(--ng-shadow-xs));\n }\n\n .select__options__search-enabled {\n padding-top: var(--nile-spacing-10px, var(--ng-spacing-lg));\n }\n\n .select__options {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n\n color: rgb(133, 129, 129);\n }\n\n .select__listbox::slotted(nile-divider) {\n --spacing: var(--nile-spacing-xs, var(--ng-spacing-sm));\n }\n\n .select__listbox::slotted(small) {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-weight: var(--nile-font-weight-semi-bold, var(--ng-font-weight-semibold));\n color: var(--nile-colors-dark-500);\n padding-block: var(--nile-spacing-xs, var(--ng-spacing-sm));\n padding-inline: var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n\n .select__search {\n position: sticky;\n top: 0px;\n z-index: 1;\n width: calc(100% - 16px);\n padding: var(--nile-spacing-md, var(--ng-spacing-md));\n background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n margin-bottom: -8px;\n }\n\n .select__footer {\n position: sticky;\n bottom: 0px;\n background: var(--nile-colors-neutral-100);\n border-top: 1px solid var(--nile-colors-neutral-400);\n display: flex;\n height: 15px;\n /* Auto layout */\n display:var(--nile-display-flex, var(--ng-display-none));\n flex-direction: row;\n align-items: flex-start;\n padding: var(--nile-spacing-md) var(--nile-spacing-lg)\n var(--nile-spacing-xl);\n gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n justify-content: space-between;\n }\n\n .tag__prefix[slot='prefix'] {\n height: 14px;\n display: inline-block;\n overflow: hidden;\n }\n\n .tag__prefix[slot='prefix'] img {\n max-height: 100%;\n }\n\n .select__loader {\n width: 100%;\n text-align: center;\n display: block;\n }\n\n .select__loader--icon {\n margin-top: var(--nile-spacing-xl, var(--ng-spacing-xl));\n animation: spin 0.6s linear infinite;\n }\n\n .select__no-results {\n padding: var(--nile-spacing-lg, var(--ng-spacing-lg));\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .select__invisible {\n opacity: 0;\n }\n\n .select__prefix--from-options {\n margin-inline-end: var(--nile-spacing-lg, var(--ng-spacing-md));\n }\n\n .select__prefix--from-options img{\n max-height: var(--nile-height-none, var(--ng-height-24px));\n max-width: var(--nile-width-none, var(--ng-width-6));\n }\n\n .select__hide-default {\n display: none;\n }\n \n .select.select--open .select__combobox {\n border-color: var(--nile-colors-neutral-500,var(--ng-colors-border-brand));\n box-shadow: 0 0 0 1px var(--ng-colors-border-brand) inset ;\n}\n\n.select.select--open:hover .select__combobox {\n border-color: var(--nile-colors-neutral-500,var(--ng-colors-border-brand));\n box-shadow: 0 0 0 1px var(--ng-colors-border-brand) inset ;\n}\n\n.select.select--open .select__combobox:hover {\n border-color: var(--nile-colors-dark-900, var(--ng-colors-border-brand));\n box-shadow: 0 0 0 1px var(--ng-colors-border-brand) inset ;\n}\n\n:host([stickyHeader]) .select__footer{\n z-index: 1;\n}\n\n.select--disabled .select__combobox{\n user-select: none ;\n -webkit-user-select: none ;\n} \n`;\n\nexport default [styles];\n"]}
|
|
1
|
+
{"version":3,"file":"nile-select.css.js","sourceRoot":"","sources":["../../../src/nile-select/nile-select.css.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyhBxB,CAAC;AAEF,eAAe,CAAC,MAAM,CAAC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\n/**\n * Select_2 CSS\n */\nexport const styles = css`\n :host {\n box-sizing: border-box;\n --ng-nxt-gen-outline: var(--ng-border-width-1) solid var(--ng-colors-border-brand);\n --ng-nxt-gen-outline-error: var(--ng-border-width-1) solid var(--ng-colors-border-error);\n --ng-private-outline-transparent: var(--ng-border-width-1) solid transparent;\n --ng-box-shadow: 0px 12px 16px -4px var(--ng-colors-effects-shadow-lg-01, rgba(10, 13, 18, 0.08)), 0px 4px 6px -2px var(--ng-colors-effects-shadow-lg-02, rgba(10, 13, 18, 0.03)), 0px 2px 2px -1px var(--ng-colors-effects-shadow-lg-03, rgba(10, 13, 18, 0.04));\n -webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));\n -moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));\n text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));\n }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n :host([disabled]) .form-control--has-label .form-control__label {\n user-select: none;\n -webkit-user-select: none;\n }\n \n [hidden] {\n display: none !important;\n }\n\n .form-control .form-control__label {\n display: none;\n }\n\n .form-control .form-control__help-text {\n display: none;\n }\n\n /* Label */\n .form-control--has-label .form-control__label {\n display: block;\n margin-bottom: var(--nile-spacing-sm, var(--ng-spacing-sm));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-style: normal;\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-medium));\n line-height: var(--nile-spacing-2xl, var(--ng-line-height-text-sm));\n letter-spacing: 0.2px;\n }\n\n .form-control--has-label.form-control--medium .form-control__label {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n }\n\n :host([required]) .form-control--has-label .form-control__label::after {\n content: '*';\n margin-inline-start: -2px;\n color: var(--nile-colors-red-700, var(--ng-colors-text-error-primary-600));\n }\n\n /* Help text */\n .form-control--has-help-text .form-control__help-text {\n display: block;\n color: var(--nile-colors-dark-500, var(--ng-colors-text-tertiary-600));\n margin-top: var(--nile-spacing-lg, var(--ng-spacing-lg));\n }\n\n .form-control--has-help-text.form-control--medium .form-control__help-text {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n }\n\n .form-control--has-help-text.form-control--radio-group\n .form-control__help-text {\n margin-top: var(--nile-spacing-xs, var(--ng-spacing-sm));\n }\n\n :host {\n display: block;\n }\n\n /** The popup */\n .select {\n flex: 1 1 auto;\n display: inline-flex;\n width: 100%;\n position: relative;\n vertical-align: middle;\n }\n\n .select::part(popup) {\n z-index: 9999;\n }\n\n .select[data-current-placement^='top']::part(popup) {\n transform-origin: bottom;\n }\n\n .select[data-current-placement^='bottom']::part(popup) {\n transform-origin: top;\n }\n\n /* Combobox */\n .select__combobox {\n flex: 1;\n display: flex;\n width: 100%;\n min-width: 0;\n position: relative;\n align-items: center;\n justify-content: start;\n font-family: var(--nile-font-family-sans-serif, var(--ng-font-family-body));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-medium));\n letter-spacing: normal;\n vertical-align: middle;\n overflow: hidden;\n cursor: pointer;\n transition: 150ms color, 150ms border, 150ms box-shadow,\n 150ms background-color;\n }\n\n .select__display-input {\n position: relative;\n width: 100%;\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n border: none;\n background: none;\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n cursor: inherit;\n overflow: hidden;\n padding: var(--nile-spacing-none, var(--ng-spacing-none));\n margin: var(--nile-spacing-none, var(--ng-spacing-none));\n -webkit-appearance: none;\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n }\n\n\n .select__display-input::placeholder {\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n color: var(--nile-colors-text-placeholder, var(--ng-colors-text-placeholder));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n }\n\n .select--disabled.select--placeholder-visible .select__display-input::placeholder {\n color: var(--nile-colors-dark-500,var(--ng-colors-text-disabled));\n }\n\n .select--disabled .select__display-input{\n color:var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n pointer-events:none;\n }\n\n .select:not(.select--disabled):hover .select__display-input {\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n }\n\n .select__display-input:focus {\n outline: none;\n }\n\n /* Visually hide the display input when multiple is enabled */\n .select--multiple:not(.select--placeholder-visible) .select__display-input {\n position: absolute;\n z-index: -1;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n opacity: 0;\n }\n\n .select__value-input {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: var(--nile-spacing-none);\n margin: var(--nile-spacing-none);\n opacity: 0;\n z-index: -1;\n }\n\n .select__tags {\n display: flex;\n flex: 1;\n align-items: center;\n flex-wrap: no-wrap;\n margin-inline-start: var(--nile-spacing-7px, var(--ng-spacing-md));\n width: 100%;\n overflow: hidden;\n }\n\n .select__tags-count {\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n font-family: var(--nile-font-family-serif, var(--ng-font-family-body));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-style: normal;\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n line-height: var(--nile-line-height-xsmall);\n letter-spacing: 0.2px;\n margin: var(--nile-spacing-sm, var(--ng-spacing-sm));\n }\n\n .select__tags-count-clearable {\n margin-right: var(--nile-spacing-5xl, var(--ng-spacing-5xl));\n }\n\n .select__tags::slotted(nile-tag) {\n cursor: pointer !important;\n }\n\n .select--disabled .select__tags,\n .select--disabled .select__tags::slotted(nile-tag) {\n cursor: not-allowed !important;\n }\n\n /* Standard selects */\n .select--standard .select__combobox {\n background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border: solid 1px var(--nile-colors-neutral-500, var(--ng-colors-border-primary));\n /* outline: var(--nile-outline-none, var(--ng-private-outline-transparent)); */\n }\n\n .select--standard .select__combobox:hover {\n border: 1px solid var(--nile-colors-dark-900, var(--ng-colors-border-neutral));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n /* outline: var(--nile-outline-none, var(--ng-nxt-gen-outline)); */\n }\n\n .select--error:hover:not(.select--disabled) .select__combobox{\n border-color: var(--nile-colors-red-500, var(--ng-colors-border-error));\n /* outline: var(--nile-outline-none, var(--ng-colors-border-error)); */\n }\n\n .select--standard.select--disabled .select__combobox {\n background-color: var(--nile-colors-dark-200, var(--ng-colors-bg-disabled-subtle));\n border-color: var(--nile-colors-neutral-500,var(--ng-colors-border-disabled) );\n color: var(--nile-colors-dark-500, var(--ng-colors-text-disabled));\n cursor: not-allowed;\n outline: none;\n }\n\n .select--standard:not(.select--disabled).select--open .select__combobox,\n .select--standard:not(.select--disabled).select--focused .select__combobox {\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary));\n }\n\n .select--warning .select__combobox {\n border-color: var(--nile-colors-yellow-500, var(--ng-colors-border-warning));\n }\n\n .select--error .select__combobox {\n border-color: var(--nile-colors-red-500, var(--ng-colors-border-error));\n outline: var(--nile-outline-none, var(--ng-private-outline-transparent));\n }\n\n\n\n\n .select--success {\n border-color: var(--nile-colors-green-500, var(--ng-componentcolors-utility-success-500));\n }\n\n /* Filled selects */\n .select--filled .select__combobox {\n border: none;\n background-color: var(--nile-colors-neutral-100, var(--ng-colors-bg-secondary));\n color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));\n }\n\n .select--filled:hover:not(.select--disabled) .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n }\n\n .select--filled.select--disabled .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .select--filled:not(.select--disabled).select--open .select__combobox,\n .select--filled:not(.select--disabled).select--focused .select__combobox {\n background-color: var(--nile-colors-neutral-100);\n outline: 3px solid rgba(0, 89, 255, 0.4);\n }\n\n .select--medium .select__combobox {\n border-radius: var(--nile-radius-sm, var(--ng-radius-md));\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n\n padding: var(--nile-spacing-lg, var(--ng-spacing-md)) var(--nile-spacing-lg, var(--ng-spacing-lg));\n height: var(--nile-height-40px, var(--ng-height-40px));\n box-sizing: border-box;\n }\n\n .select--medium .select__clear {\n margin-inline-start: var(--nile-spacing-lg, var(--ng-spacing-lg));\n margin-right: var(--nile-spacing-md, var(--ng-spacing-md));\n }\n\n .select--medium .select__prefix::slotted(*) {\n margin-inline-end: var(--nile-spacing-md, var(--ng-spacing-md));\n }\n\n .select--medium .select__prefix.multiple::slotted(*) {\n margin-right: var(--nile-spacing-md, var(--ng-spacing-md));\n }\n\n .select--medium:not(.select--placeholder-visible) .select__prefix.multiple::slotted(*) {\n margin-inline-start: var(--nile-spacing-xsmall, var(--ng-spacing-lg));\n }\n\n .select--medium.select--multiple:not(.select--placeholder-visible)\n .select__combobox {\n padding-inline-start: var(--nile-spacing-none, var(--ng-spacing-none));\n }\n\n .select--medium .select__tags {\n gap: var(--nile-spacing-3px, var(--ng-spacing-sm));\n }\n\n /* Pills */\n .select--pill.select--medium .select__combobox {\n border-radius: var(--nile-radius-3xl);\n }\n\n /* Prefix */\n .select__prefix {\n flex: 0;\n display: inline-flex;\n align-items: center;\n color: var(--nile-colors-dark-500);\n }\n\n .select__suffix {\n flex: 0;\n display: inline-flex;\n align-items: center;\n color: var(--nile-colors-dark-500);\n }\n\n /* Clear button */\n .select__clear {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: inherit;\n color: var(--nile-colors-primary-600, var(--ng-colors-text-brand-secondary-700));\n border: none;\n background: none;\n padding: var(--nile-spacing-none);\n transition: 150ms color;\n cursor: pointer;\n }\n\n .select__clear:hover {\n color: var(--nile-colors-dark-500);\n }\n\n .select__clear:focus {\n outline: none;\n }\n\n /* Expand icon */\n .select__expand-icon {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n transition: 250ms rotate ease;\n rotate: 0;\n margin-inline-start: var(--nile-spacing-md, var(--ng-spacing-md));\n }\n\n .select--open .select__expand-icon {\n rotate: -180deg;\n }\n\n /* Listbox */\n .select__listbox {\n display: block;\n position: relative;\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-md));\n font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-regular));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n border: solid 1px var(--nile-colors-neutral-500, var(--ng-colors-border-secondary-alt));\n border-radius: var(--nile-radius-sm, var(--ng-radius-md));\n padding-block: var(--nile-spacing-none, var(--ng-spacing-none));\n padding-inline: var(--nile-spacing-none, var(--ng-spacing-none));\n overflow: auto;\n overscroll-behavior: none;\n /* Make sure it adheres to the popup's auto size */\n max-width: var(--auto-size-available-width);\n max-height: var(--auto-size-available-height);\n box-shadow: var(--nile-box-shadow-none, var(--ng-shadow-xs));\n }\n\n .select__options__search-enabled {\n padding-top: var(--nile-spacing-10px, var(--ng-spacing-lg));\n }\n\n .select__options {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n\n color: rgb(133, 129, 129);\n }\n\n .select__listbox::slotted(nile-divider) {\n --spacing: var(--nile-spacing-xs, var(--ng-spacing-sm));\n }\n\n .select__listbox::slotted(small) {\n font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm));\n font-weight: var(--nile-font-weight-semi-bold, var(--ng-font-weight-semibold));\n color: var(--nile-colors-dark-500);\n padding-block: var(--nile-spacing-xs, var(--ng-spacing-sm));\n padding-inline: var(--nile-spacing-xl, var(--ng-spacing-xl));\n }\n\n .select__search {\n position: sticky;\n top: 0px;\n z-index: 1;\n width: calc(100% - 16px);\n padding: var(--nile-spacing-md, var(--ng-spacing-md));\n background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n margin-bottom: -8px;\n }\n\n .select__pre-footer-area {\n position: sticky;\n bottom: 0;\n z-index: 1;\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n }\n\n .select__custom-footer {\n display: block;\n border-top: 1px solid var(--nile-colors-neutral-400, var(--ng-colors-border-secondary));\n background: var(--nile-colors-white-base, var(--ng-colors-bg-primary));\n padding: var(--nile-spacing-lg, var(--ng-spacing-lg)) ;\n }\n\n .select__custom-footer:hover {\n background: var(--nile-colors-neutral-100, var(--ng-colors-bg-primary-hover));\n }\n\n\n .select__footer {\n position: sticky;\n bottom: 0px;\n background: var(--nile-colors-neutral-100);\n border-top: 1px solid var(--nile-colors-neutral-400);\n display: flex;\n height: 15px;\n /* Auto layout */\n display:var(--nile-display-flex, var(--ng-display-none));\n flex-direction: row;\n align-items: flex-start;\n padding: var(--nile-spacing-md) var(--nile-spacing-lg)\n var(--nile-spacing-xl);\n gap: var(--nile-spacing-lg, var(--ng-spacing-lg));\n justify-content: space-between;\n }\n\n .tag__prefix[slot='prefix'] {\n height: 14px;\n display: inline-block;\n overflow: hidden;\n }\n\n .tag__prefix[slot='prefix'] img {\n max-height: 100%;\n }\n\n .select__loader {\n width: 100%;\n text-align: center;\n display: block;\n }\n\n .select__loader--icon {\n margin-top: var(--nile-spacing-xl, var(--ng-spacing-xl));\n animation: spin 0.6s linear infinite;\n }\n\n .select__no-results {\n padding: var(--nile-spacing-lg, var(--ng-spacing-lg));\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .select__invisible {\n opacity: 0;\n }\n\n .select__prefix--from-options {\n margin-inline-end: var(--nile-spacing-lg, var(--ng-spacing-md));\n }\n\n .select__prefix--from-options img{\n max-height: var(--nile-height-none, var(--ng-height-24px));\n max-width: var(--nile-width-none, var(--ng-width-6));\n }\n\n .select__hide-default {\n display: none;\n }\n \n .select.select--open .select__combobox {\n border-color: var(--nile-colors-neutral-500,var(--ng-colors-border-brand));\n box-shadow: 0 0 0 1px var(--ng-colors-border-brand) inset ;\n}\n\n.select.select--open:hover .select__combobox {\n border-color: var(--nile-colors-neutral-500,var(--ng-colors-border-brand));\n box-shadow: 0 0 0 1px var(--ng-colors-border-brand) inset ;\n}\n\n.select.select--open .select__combobox:hover {\n border-color: var(--nile-colors-dark-900, var(--ng-colors-border-brand));\n box-shadow: 0 0 0 1px var(--ng-colors-border-brand) inset ;\n}\n\n:host([stickyHeader]) .select__footer-area {\n z-index: 1;\n}\n\n.select--disabled .select__combobox{\n user-select: none ;\n -webkit-user-select: none ;\n} \n`;\n\nexport default [styles];\n"]}
|
|
@@ -36,6 +36,7 @@ import '../nile-virtual-select/nile-virtual-select';
|
|
|
36
36
|
* @slot clear-icon - An icon to use in lieu of the default clear icon.
|
|
37
37
|
* @slot expand-icon - The icon to show when the control is expanded and collapsed. Rotates on open and close.
|
|
38
38
|
* @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.
|
|
39
|
+
* @slot pre-footer - Content to display at the bottom of the dropdown listbox. Useful for action buttons like "Create New". In multi-select mode, appears above the "Show Selected" / "Clear All" bar.
|
|
39
40
|
*
|
|
40
41
|
* @event nile-change - Emitted when the control's value changes.
|
|
41
42
|
* @event nile-clear - Emitted when the control's value is cleared.
|
|
@@ -68,6 +69,8 @@ import '../nile-virtual-select/nile-virtual-select';
|
|
|
68
69
|
* @csspart tag__remove-button__base - The tag's remove button base part.
|
|
69
70
|
* @csspart clear-button - The clear button.
|
|
70
71
|
* @csspart expand-icon - The container that wraps the expand icon.
|
|
72
|
+
* @csspart custom-footer - The container that wraps the custom footer slot content.
|
|
73
|
+
* @csspart footer-area - The sticky wrapper around the custom footer and the built-in multi-select footer.
|
|
71
74
|
*/
|
|
72
75
|
export declare class NileSelect extends NileElement implements NileFormControl {
|
|
73
76
|
static styles: CSSResultGroup;
|
|
@@ -211,6 +214,7 @@ export declare class NileSelect extends NileElement implements NileFormControl {
|
|
|
211
214
|
* @param event - The click event.
|
|
212
215
|
*/
|
|
213
216
|
private handleFooterClick;
|
|
217
|
+
private handlePreFooterClick;
|
|
214
218
|
/**
|
|
215
219
|
* Toggles the display of selected options in the dropdown
|
|
216
220
|
* @param event - the event object
|
|
@@ -51,6 +51,7 @@ import { VisibilityManager } from '../utilities/visibility-manager';
|
|
|
51
51
|
* @slot clear-icon - An icon to use in lieu of the default clear icon.
|
|
52
52
|
* @slot expand-icon - The icon to show when the control is expanded and collapsed. Rotates on open and close.
|
|
53
53
|
* @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.
|
|
54
|
+
* @slot pre-footer - Content to display at the bottom of the dropdown listbox. Useful for action buttons like "Create New". In multi-select mode, appears above the "Show Selected" / "Clear All" bar.
|
|
54
55
|
*
|
|
55
56
|
* @event nile-change - Emitted when the control's value changes.
|
|
56
57
|
* @event nile-clear - Emitted when the control's value is cleared.
|
|
@@ -83,6 +84,8 @@ import { VisibilityManager } from '../utilities/visibility-manager';
|
|
|
83
84
|
* @csspart tag__remove-button__base - The tag's remove button base part.
|
|
84
85
|
* @csspart clear-button - The clear button.
|
|
85
86
|
* @csspart expand-icon - The container that wraps the expand icon.
|
|
87
|
+
* @csspart custom-footer - The container that wraps the custom footer slot content.
|
|
88
|
+
* @csspart footer-area - The sticky wrapper around the custom footer and the built-in multi-select footer.
|
|
86
89
|
*/
|
|
87
90
|
let NileSelect = class NileSelect extends NileElement {
|
|
88
91
|
/** Gets the validity state object */
|
|
@@ -96,7 +99,7 @@ let NileSelect = class NileSelect extends NileElement {
|
|
|
96
99
|
constructor() {
|
|
97
100
|
super();
|
|
98
101
|
this.portalManager = new PortalManager(this);
|
|
99
|
-
this.hasSlotController = new HasSlotController(this, 'help-text', 'label');
|
|
102
|
+
this.hasSlotController = new HasSlotController(this, 'help-text', 'label', 'pre-footer');
|
|
100
103
|
this.typeToSelectString = '';
|
|
101
104
|
this.scrolling = false;
|
|
102
105
|
this.options = [];
|
|
@@ -377,6 +380,9 @@ let NileSelect = class NileSelect extends NileElement {
|
|
|
377
380
|
event.stopPropagation();
|
|
378
381
|
event.preventDefault();
|
|
379
382
|
}
|
|
383
|
+
handlePreFooterClick() {
|
|
384
|
+
this.hide();
|
|
385
|
+
}
|
|
380
386
|
/**
|
|
381
387
|
* Toggles the display of selected options in the dropdown
|
|
382
388
|
* @param event - the event object
|
|
@@ -1366,29 +1372,41 @@ let NileSelect = class NileSelect extends NileElement {
|
|
|
1366
1372
|
<slot></slot>
|
|
1367
1373
|
</div>
|
|
1368
1374
|
|
|
1369
|
-
${this.multiple
|
|
1370
|
-
? html
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1384
|
-
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1375
|
+
${this.hasSlotController.test('pre-footer') || this.multiple
|
|
1376
|
+
? html `<div part="footer-area" class="select__pre-footer-area">
|
|
1377
|
+
${this.hasSlotController.test('pre-footer')
|
|
1378
|
+
? html `
|
|
1379
|
+
<div part="pre-footer" @click=${this.handlePreFooterClick}>
|
|
1380
|
+
<slot
|
|
1381
|
+
name="pre-footer"
|
|
1382
|
+
class="select__custom-footer"
|
|
1383
|
+
></slot> </div>`
|
|
1384
|
+
: ''}
|
|
1385
|
+
${this.multiple
|
|
1386
|
+
? html `<div
|
|
1387
|
+
part="footer"
|
|
1388
|
+
class="select__footer"
|
|
1389
|
+
@click="${this.handleFooterClick}"
|
|
1390
|
+
>
|
|
1391
|
+
<span
|
|
1392
|
+
@click="${this.toggleShowSelected}"
|
|
1393
|
+
style="cursor: pointer;"
|
|
1394
|
+
>
|
|
1395
|
+
<nile-checkbox
|
|
1396
|
+
?disabled="${this.selectedOptions.length === 0}"
|
|
1397
|
+
?checked="${this.showSelected}"
|
|
1398
|
+
>
|
|
1399
|
+
Show Selected</nile-checkbox
|
|
1400
|
+
>
|
|
1401
|
+
</span>
|
|
1402
|
+
${this.selectedOptions.length !== 0
|
|
1403
|
+
? html `<span
|
|
1404
|
+
class="select__clear"
|
|
1405
|
+
@click="${this.unSlectAll}"
|
|
1406
|
+
>Clear All</span
|
|
1407
|
+
>`
|
|
1408
|
+
: ``}
|
|
1409
|
+
</div>`
|
|
1392
1410
|
: ``}
|
|
1393
1411
|
</div>`
|
|
1394
1412
|
: ``}
|