@getflip/swirl-components 0.456.3 → 0.457.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components.json +37 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/swirl-components.cjs.js +1 -1
- package/dist/cjs/swirl-option-list_2.cjs.entry.js +7 -1
- package/dist/cjs/swirl-select.cjs.entry.js +103 -2
- package/dist/collection/components/swirl-option-list/swirl-option-list.js +32 -1
- package/dist/collection/components/swirl-select/swirl-select.js +103 -2
- package/dist/collection/components/swirl-select/swirl-select.stories.js +27 -7
- package/dist/components/FileSaver.min.js +1 -0
- package/dist/components/assets/pdfjs/pdf.worker.min.mjs +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/media-query.service.js +1 -0
- package/dist/components/swirl-accordion-item.js +1 -1
- package/dist/components/swirl-accordion.js +1 -1
- package/dist/components/swirl-action-list-item.js +1 -1
- package/dist/components/swirl-action-list-item2.js +1 -0
- package/dist/components/swirl-action-list-section.js +1 -1
- package/dist/components/swirl-action-list.js +1 -1
- package/dist/components/swirl-action-list2.js +1 -0
- package/dist/components/swirl-app-bar.js +1 -1
- package/dist/components/swirl-app-icon.js +1 -1
- package/dist/components/swirl-app-layout.js +1 -1
- package/dist/components/swirl-autocomplete.js +1 -1
- package/dist/components/swirl-avatar-group.js +1 -1
- package/dist/components/swirl-avatar.js +1 -1
- package/dist/components/swirl-badge.js +1 -1
- package/dist/components/swirl-badge2.js +1 -0
- package/dist/components/swirl-banner.js +1 -1
- package/dist/components/swirl-box.js +1 -1
- package/dist/components/swirl-box2.js +1 -0
- package/dist/components/swirl-button-group.js +1 -1
- package/dist/components/swirl-button-group2.js +1 -0
- package/dist/components/swirl-button.js +1 -1
- package/dist/components/swirl-button2.js +1 -0
- package/dist/components/swirl-card.js +1 -1
- package/dist/components/swirl-carousel-slide.js +1 -1
- package/dist/components/swirl-carousel.js +1 -1
- package/dist/components/swirl-checkbox.js +1 -1
- package/dist/components/swirl-chip.js +1 -1
- package/dist/components/swirl-color-input.js +1 -1
- package/dist/components/swirl-columns.js +1 -1
- package/dist/components/swirl-console-layout.js +1 -1
- package/dist/components/swirl-data-cell-stack.js +1 -1
- package/dist/components/swirl-data-cell.js +1 -1
- package/dist/components/swirl-date-input.js +1 -1
- package/dist/components/swirl-date-picker.js +1 -1
- package/dist/components/swirl-date-picker2.js +1 -0
- package/dist/components/swirl-description-list-item.js +1 -1
- package/dist/components/swirl-description-list.js +1 -1
- package/dist/components/swirl-dialog.js +1 -1
- package/dist/components/swirl-emoji-clap.js +1 -1
- package/dist/components/swirl-emoji-happy.js +1 -1
- package/dist/components/swirl-emoji-idea.js +1 -1
- package/dist/components/swirl-emoji-love.js +1 -1
- package/dist/components/swirl-emoji-sad.js +1 -1
- package/dist/components/swirl-emoji-thumbs-up.js +1 -1
- package/dist/components/swirl-emoji.js +1 -1
- package/dist/components/swirl-empty-state.js +1 -1
- package/dist/components/swirl-file-chip.js +1 -1
- package/dist/components/swirl-file-uploader.js +1 -1
- package/dist/components/swirl-file-viewer-audio.js +1 -1
- package/dist/components/swirl-file-viewer-audio2.js +1 -0
- package/dist/components/swirl-file-viewer-csv.js +1 -1
- package/dist/components/swirl-file-viewer-csv2.js +7 -0
- package/dist/components/swirl-file-viewer-fallback.js +1 -1
- package/dist/components/swirl-file-viewer-fallback2.js +1 -0
- package/dist/components/swirl-file-viewer-image.js +1 -1
- package/dist/components/swirl-file-viewer-image2.js +1 -0
- package/dist/components/swirl-file-viewer-pdf.js +1 -1
- package/dist/components/{p-CSS4_A9c.js → swirl-file-viewer-pdf2.js} +1 -1
- package/dist/components/swirl-file-viewer-text.js +1 -1
- package/dist/components/swirl-file-viewer-text2.js +1 -0
- package/dist/components/swirl-file-viewer-video.js +1 -1
- package/dist/components/swirl-file-viewer-video2.js +1 -0
- package/dist/components/swirl-file-viewer.js +1 -1
- package/dist/components/swirl-file-viewer2.js +1 -0
- package/dist/components/swirl-form-control.js +1 -1
- package/dist/components/swirl-form-group.js +1 -1
- package/dist/components/swirl-heading.js +1 -1
- package/dist/components/swirl-heading2.js +1 -0
- package/dist/components/swirl-icon-add-moderator.js +1 -1
- package/dist/components/swirl-icon-add-photo.js +1 -1
- package/dist/components/swirl-icon-add-reaction.js +1 -1
- package/dist/components/swirl-icon-add.js +1 -1
- package/dist/components/swirl-icon-add2.js +1 -0
- package/dist/components/swirl-icon-admin-panel-settings.js +1 -1
- package/dist/components/swirl-icon-ai-filled.js +1 -1
- package/dist/components/swirl-icon-ai.js +1 -1
- package/dist/components/swirl-icon-apps.js +1 -1
- package/dist/components/swirl-icon-arrow-back.js +1 -1
- package/dist/components/swirl-icon-arrow-back2.js +1 -0
- package/dist/components/swirl-icon-arrow-downward.js +1 -1
- package/dist/components/swirl-icon-arrow-downward2.js +1 -0
- package/dist/components/swirl-icon-arrow-forward.js +1 -1
- package/dist/components/swirl-icon-arrow-forward2.js +1 -0
- package/dist/components/swirl-icon-arrow-left.js +1 -1
- package/dist/components/swirl-icon-arrow-left2.js +1 -0
- package/dist/components/swirl-icon-arrow-right-small.js +1 -1
- package/dist/components/swirl-icon-arrow-right.js +1 -1
- package/dist/components/swirl-icon-arrow-right2.js +1 -0
- package/dist/components/swirl-icon-arrow-upward.js +1 -1
- package/dist/components/swirl-icon-arrow-upward2.js +1 -0
- package/dist/components/swirl-icon-aspect-ratio.js +1 -1
- package/dist/components/swirl-icon-attachment.js +1 -1
- package/dist/components/swirl-icon-attachment2.js +1 -0
- package/dist/components/swirl-icon-audio-file.js +1 -1
- package/dist/components/swirl-icon-audio-file2.js +1 -0
- package/dist/components/swirl-icon-autorenew.js +1 -1
- package/dist/components/swirl-icon-bar-chart.js +1 -1
- package/dist/components/swirl-icon-beach-access-filled.js +1 -1
- package/dist/components/swirl-icon-beach-access.js +1 -1
- package/dist/components/swirl-icon-block.js +1 -1
- package/dist/components/swirl-icon-bookmark-filled.js +1 -1
- package/dist/components/swirl-icon-bookmark.js +1 -1
- package/dist/components/swirl-icon-calendar-add-on-filled.js +1 -1
- package/dist/components/swirl-icon-calendar-respond.js +1 -1
- package/dist/components/swirl-icon-calendar-today.js +1 -1
- package/dist/components/swirl-icon-call-end.js +1 -1
- package/dist/components/swirl-icon-call.js +1 -1
- package/dist/components/swirl-icon-cancel-filled.js +1 -1
- package/dist/components/swirl-icon-cancel-outline.js +1 -1
- package/dist/components/swirl-icon-cancel.js +1 -1
- package/dist/components/swirl-icon-cancel2.js +1 -0
- package/dist/components/swirl-icon-chat-bubble.js +1 -1
- package/dist/components/swirl-icon-chats-filled.js +1 -1
- package/dist/components/swirl-icon-chats.js +1 -1
- package/dist/components/swirl-icon-check-circle-filled.js +1 -1
- package/dist/components/swirl-icon-check-circle.js +1 -1
- package/dist/components/swirl-icon-check-circle2.js +1 -0
- package/dist/components/swirl-icon-check-small.js +1 -1
- package/dist/components/swirl-icon-check-small2.js +1 -0
- package/dist/components/swirl-icon-check-strong.js +1 -1
- package/dist/components/swirl-icon-check-strong2.js +1 -0
- package/dist/components/swirl-icon-check.js +1 -1
- package/dist/components/swirl-icon-checkbox-filled.js +1 -1
- package/dist/components/swirl-icon-chevron-left.js +1 -1
- package/dist/components/swirl-icon-chevron-right.js +1 -1
- package/dist/components/swirl-icon-chevron-right2.js +1 -0
- package/dist/components/swirl-icon-close-fullscreen.js +1 -1
- package/dist/components/swirl-icon-close-small.js +1 -1
- package/dist/components/swirl-icon-close.js +1 -1
- package/dist/components/swirl-icon-close2.js +1 -0
- package/dist/components/swirl-icon-cloud-upload.js +1 -1
- package/dist/components/swirl-icon-cloud-upload2.js +1 -0
- package/dist/components/swirl-icon-column.js +1 -1
- package/dist/components/swirl-icon-comment.js +1 -1
- package/dist/components/swirl-icon-contrast.js +1 -1
- package/dist/components/swirl-icon-copy.js +1 -1
- package/dist/components/swirl-icon-crop.js +1 -1
- package/dist/components/swirl-icon-dark-mode.js +1 -1
- package/dist/components/swirl-icon-date-range.js +1 -1
- package/dist/components/swirl-icon-delete.js +1 -1
- package/dist/components/swirl-icon-deployed-code.js +1 -1
- package/dist/components/swirl-icon-description.js +1 -1
- package/dist/components/swirl-icon-desktop.js +1 -1
- package/dist/components/swirl-icon-directory-filled.js +1 -1
- package/dist/components/swirl-icon-directory.js +1 -1
- package/dist/components/swirl-icon-discover.js +1 -1
- package/dist/components/swirl-icon-dock-left-collapse.js +1 -1
- package/dist/components/swirl-icon-dock-left-collapse2.js +1 -0
- package/dist/components/swirl-icon-dock-left-expand.js +1 -1
- package/dist/components/swirl-icon-dock-left-expand2.js +1 -0
- package/dist/components/swirl-icon-dock-left.js +1 -1
- package/dist/components/swirl-icon-door-open.js +1 -1
- package/dist/components/swirl-icon-dot.js +1 -1
- package/dist/components/swirl-icon-double-arrow-left.js +1 -1
- package/dist/components/swirl-icon-double-arrow-left2.js +1 -0
- package/dist/components/swirl-icon-double-arrow-right.js +1 -1
- package/dist/components/swirl-icon-download.js +1 -1
- package/dist/components/swirl-icon-download2.js +1 -0
- package/dist/components/swirl-icon-drag-handle.js +1 -1
- package/dist/components/swirl-icon-drag-handle2.js +1 -0
- package/dist/components/swirl-icon-edit-note.js +1 -1
- package/dist/components/swirl-icon-edit.js +1 -1
- package/dist/components/swirl-icon-emoji-mood.js +1 -1
- package/dist/components/swirl-icon-emoji-satisfied.js +1 -1
- package/dist/components/swirl-icon-emoji-symbols.js +1 -1
- package/dist/components/swirl-icon-error.js +1 -1
- package/dist/components/swirl-icon-error2.js +1 -0
- package/dist/components/swirl-icon-expand-less.js +1 -1
- package/dist/components/swirl-icon-expand-less2.js +1 -0
- package/dist/components/swirl-icon-expand-more.js +1 -1
- package/dist/components/swirl-icon-expand-more2.js +1 -0
- package/dist/components/swirl-icon-experiment.js +1 -1
- package/dist/components/swirl-icon-file-copy.js +1 -1
- package/dist/components/swirl-icon-file-copy2.js +1 -0
- package/dist/components/swirl-icon-file.js +1 -1
- package/dist/components/swirl-icon-file2.js +1 -0
- package/dist/components/swirl-icon-filter.js +1 -1
- package/dist/components/swirl-icon-folder-shared.js +1 -1
- package/dist/components/swirl-icon-folder.js +1 -1
- package/dist/components/swirl-icon-folder2.js +1 -0
- package/dist/components/swirl-icon-format-h-one.js +1 -1
- package/dist/components/swirl-icon-format-list-bulleted.js +1 -1
- package/dist/components/swirl-icon-forward.js +1 -1
- package/dist/components/swirl-icon-fullscreen-exit.js +1 -1
- package/dist/components/swirl-icon-fullscreen-exit2.js +1 -0
- package/dist/components/swirl-icon-fullscreen.js +1 -1
- package/dist/components/swirl-icon-fullscreen2.js +1 -0
- package/dist/components/swirl-icon-gif.js +1 -1
- package/dist/components/swirl-icon-group-add.js +1 -1
- package/dist/components/swirl-icon-group-assign.js +1 -1
- package/dist/components/swirl-icon-groups-filled.js +1 -1
- package/dist/components/swirl-icon-groups.js +1 -1
- package/dist/components/swirl-icon-hamburger-menu.js +1 -1
- package/dist/components/swirl-icon-health-and-safety.js +1 -1
- package/dist/components/swirl-icon-help-filled.js +1 -1
- package/dist/components/swirl-icon-help.js +1 -1
- package/dist/components/swirl-icon-help2.js +1 -0
- package/dist/components/swirl-icon-highlight.js +1 -1
- package/dist/components/swirl-icon-history.js +1 -1
- package/dist/components/swirl-icon-home-filled.js +1 -1
- package/dist/components/swirl-icon-home.js +1 -1
- package/dist/components/swirl-icon-hr-resting.js +1 -1
- package/dist/components/swirl-icon-image.js +1 -1
- package/dist/components/swirl-icon-image2.js +1 -0
- package/dist/components/swirl-icon-improve-text.js +1 -1
- package/dist/components/swirl-icon-info.js +1 -1
- package/dist/components/swirl-icon-info2.js +1 -0
- package/dist/components/swirl-icon-insert-below.js +1 -1
- package/dist/components/swirl-icon-insert-chart.js +1 -1
- package/dist/components/swirl-icon-insert-on-top.js +1 -1
- package/dist/components/swirl-icon-inventory-off.js +1 -1
- package/dist/components/swirl-icon-inventory.js +1 -1
- package/dist/components/swirl-icon-iphone.js +1 -1
- package/dist/components/swirl-icon-key.js +1 -1
- package/dist/components/swirl-icon-keyboard-hide.js +1 -1
- package/dist/components/swirl-icon-keyboard.js +1 -1
- package/dist/components/swirl-icon-language.js +1 -1
- package/dist/components/swirl-icon-light-mode.js +1 -1
- package/dist/components/swirl-icon-like.js +1 -1
- package/dist/components/swirl-icon-link.js +1 -1
- package/dist/components/swirl-icon-live.js +1 -1
- package/dist/components/swirl-icon-load.js +1 -1
- package/dist/components/swirl-icon-location-on.js +1 -1
- package/dist/components/swirl-icon-lock-open.js +1 -1
- package/dist/components/swirl-icon-lock-person.js +1 -1
- package/dist/components/swirl-icon-lock.js +1 -1
- package/dist/components/swirl-icon-login.js +1 -1
- package/dist/components/swirl-icon-logout.js +1 -1
- package/dist/components/swirl-icon-long-text.js +1 -1
- package/dist/components/swirl-icon-mail.js +1 -1
- package/dist/components/swirl-icon-manage-accounts.js +1 -1
- package/dist/components/swirl-icon-mark-chat-read.js +1 -1
- package/dist/components/swirl-icon-mark-chat-unread.js +1 -1
- package/dist/components/swirl-icon-mention.js +1 -1
- package/dist/components/swirl-icon-menu-book-filled.js +1 -1
- package/dist/components/swirl-icon-menu-book.js +1 -1
- package/dist/components/swirl-icon-menu-book2.js +1 -0
- package/dist/components/swirl-icon-menu-filled.js +1 -1
- package/dist/components/swirl-icon-menu.js +1 -1
- package/dist/components/swirl-icon-message.js +1 -1
- package/dist/components/swirl-icon-mic-off.js +1 -1
- package/dist/components/swirl-icon-mic.js +1 -1
- package/dist/components/swirl-icon-more-horizontal.js +1 -1
- package/dist/components/swirl-icon-more-vertikal.js +1 -1
- package/dist/components/swirl-icon-news-filled.js +1 -1
- package/dist/components/swirl-icon-news-off.js +1 -1
- package/dist/components/swirl-icon-news.js +1 -1
- package/dist/components/swirl-icon-next-plan.js +1 -1
- package/dist/components/swirl-icon-note-stack-filled.js +1 -1
- package/dist/components/swirl-icon-note-stack.js +1 -1
- package/dist/components/swirl-icon-notifications-active.js +1 -1
- package/dist/components/swirl-icon-notifications-off.js +1 -1
- package/dist/components/swirl-icon-notifications.js +1 -1
- package/dist/components/swirl-icon-open-in-full.js +1 -1
- package/dist/components/swirl-icon-open-in-new.js +1 -1
- package/dist/components/swirl-icon-open-in-new2.js +1 -0
- package/dist/components/swirl-icon-patient-list.js +1 -1
- package/dist/components/swirl-icon-pause-circle.js +1 -1
- package/dist/components/swirl-icon-pause.js +1 -1
- package/dist/components/swirl-icon-people-alt.js +1 -1
- package/dist/components/swirl-icon-person-check.js +1 -1
- package/dist/components/swirl-icon-person-off.js +1 -1
- package/dist/components/swirl-icon-person.js +1 -1
- package/dist/components/swirl-icon-person2.js +1 -0
- package/dist/components/swirl-icon-phone.js +1 -1
- package/dist/components/swirl-icon-photo-camera.js +1 -1
- package/dist/components/swirl-icon-picture-as-pdf.js +1 -1
- package/dist/components/swirl-icon-picture-as-pdf2.js +1 -0
- package/dist/components/swirl-icon-picture-in-picture.js +1 -1
- package/dist/components/swirl-icon-pin-off.js +1 -1
- package/dist/components/swirl-icon-pin.js +1 -1
- package/dist/components/swirl-icon-place.js +1 -1
- package/dist/components/swirl-icon-play-arrow.js +1 -1
- package/dist/components/swirl-icon-poll.js +1 -1
- package/dist/components/swirl-icon-post-approval.js +1 -1
- package/dist/components/swirl-icon-present.js +1 -1
- package/dist/components/swirl-icon-preview.js +1 -1
- package/dist/components/swirl-icon-print.js +1 -1
- package/dist/components/swirl-icon-public-off.js +1 -1
- package/dist/components/swirl-icon-public.js +1 -1
- package/dist/components/swirl-icon-published-with-changes.js +1 -1
- package/dist/components/swirl-icon-ratio-four-to-three.js +1 -1
- package/dist/components/swirl-icon-ratio-freeform.js +1 -1
- package/dist/components/swirl-icon-ratio-sixteen-to-nine.js +1 -1
- package/dist/components/swirl-icon-ratio-square.js +1 -1
- package/dist/components/swirl-icon-ratio-three-to-four.js +1 -1
- package/dist/components/swirl-icon-ratio-three-to-two.js +1 -1
- package/dist/components/swirl-icon-recieved.js +1 -1
- package/dist/components/swirl-icon-refresh.js +1 -1
- package/dist/components/swirl-icon-remove-circle.js +1 -1
- package/dist/components/swirl-icon-remove-moderator.js +1 -1
- package/dist/components/swirl-icon-remove.js +1 -1
- package/dist/components/swirl-icon-remove2.js +1 -0
- package/dist/components/swirl-icon-reply.js +1 -1
- package/dist/components/swirl-icon-report.js +1 -1
- package/dist/components/swirl-icon-roadmap.js +1 -1
- package/dist/components/swirl-icon-rotate-left.js +1 -1
- package/dist/components/swirl-icon-rotate-right.js +1 -1
- package/dist/components/swirl-icon-screenshare-off.js +1 -1
- package/dist/components/swirl-icon-screenshare.js +1 -1
- package/dist/components/swirl-icon-search-strong.js +1 -1
- package/dist/components/swirl-icon-search.js +1 -1
- package/dist/components/swirl-icon-search2.js +1 -0
- package/dist/components/swirl-icon-section.js +1 -1
- package/dist/components/swirl-icon-secure.js +1 -1
- package/dist/components/swirl-icon-sell.js +1 -1
- package/dist/components/swirl-icon-send.js +1 -1
- package/dist/components/swirl-icon-settings.js +1 -1
- package/dist/components/swirl-icon-short-text.js +1 -1
- package/dist/components/swirl-icon-simplify.js +1 -1
- package/dist/components/swirl-icon-spellcheck.js +1 -1
- package/dist/components/swirl-icon-stars.js +1 -1
- package/dist/components/swirl-icon-sticky-note.js +1 -1
- package/dist/components/swirl-icon-stop-circle.js +1 -1
- package/dist/components/swirl-icon-stop.js +1 -1
- package/dist/components/swirl-icon-sunny.js +1 -1
- package/dist/components/swirl-icon-sync.js +1 -1
- package/dist/components/swirl-icon-tasks-filled.js +1 -1
- package/dist/components/swirl-icon-tasks.js +1 -1
- package/dist/components/swirl-icon-terminal.js +1 -1
- package/dist/components/swirl-icon-time-filled.js +1 -1
- package/dist/components/swirl-icon-time.js +1 -1
- package/dist/components/swirl-icon-today-filled.js +1 -1
- package/dist/components/swirl-icon-today.js +1 -1
- package/dist/components/swirl-icon-today2.js +1 -0
- package/dist/components/swirl-icon-translate.js +1 -1
- package/dist/components/swirl-icon-tree-structure.js +1 -1
- package/dist/components/swirl-icon-undo.js +1 -1
- package/dist/components/swirl-icon-unlock-person.js +1 -1
- package/dist/components/swirl-icon-upload.js +1 -1
- package/dist/components/swirl-icon-user-add.js +1 -1
- package/dist/components/swirl-icon-user-assign.js +1 -1
- package/dist/components/swirl-icon-video-camera-off.js +1 -1
- package/dist/components/swirl-icon-video-camera.js +1 -1
- package/dist/components/swirl-icon-video-library.js +1 -1
- package/dist/components/swirl-icon-video-player.js +1 -1
- package/dist/components/swirl-icon-video-player2.js +1 -0
- package/dist/components/swirl-icon-view-agenda.js +1 -1
- package/dist/components/swirl-icon-visibility-off.js +1 -1
- package/dist/components/swirl-icon-visibility-off2.js +1 -0
- package/dist/components/swirl-icon-visibility.js +1 -1
- package/dist/components/swirl-icon-visibility2.js +1 -0
- package/dist/components/swirl-icon-voice.js +1 -1
- package/dist/components/swirl-icon-volume-up.js +1 -1
- package/dist/components/swirl-icon-warning.js +1 -1
- package/dist/components/swirl-icon-warning2.js +1 -0
- package/dist/components/swirl-icon-web-asset-off.js +1 -1
- package/dist/components/swirl-icon-web-asset.js +1 -1
- package/dist/components/swirl-icon-work.js +1 -1
- package/dist/components/swirl-icon.js +1 -1
- package/dist/components/swirl-icon2.js +1 -0
- package/dist/components/swirl-image-grid-item.js +1 -1
- package/dist/components/swirl-image-grid.js +1 -1
- package/dist/components/swirl-inline-error.js +1 -1
- package/dist/components/swirl-inline-error2.js +1 -0
- package/dist/components/swirl-inline-notification.js +1 -1
- package/dist/components/swirl-inline-status.js +1 -1
- package/dist/components/swirl-lightbox.js +1 -1
- package/dist/components/swirl-link.js +1 -1
- package/dist/components/swirl-list.js +1 -1
- package/dist/components/swirl-menu-item.js +1 -1
- package/dist/components/swirl-menu.js +1 -1
- package/dist/components/swirl-modal-shell.js +1 -1
- package/dist/components/swirl-modal.js +1 -1
- package/dist/components/swirl-option-list-item.js +1 -1
- package/dist/components/swirl-option-list-item2.js +1 -0
- package/dist/components/swirl-option-list-section.js +1 -1
- package/dist/components/swirl-option-list.js +1 -1
- package/dist/components/swirl-option-list2.js +1 -0
- package/dist/components/swirl-pagination.js +1 -1
- package/dist/components/swirl-pdf-reader.js +1 -1
- package/dist/components/swirl-popover-trigger.js +1 -1
- package/dist/components/swirl-popover-trigger2.js +1 -0
- package/dist/components/swirl-popover.js +1 -1
- package/dist/components/swirl-popover2.js +1 -0
- package/dist/components/swirl-progress-indicator.js +1 -1
- package/dist/components/swirl-progress-indicator2.js +1 -0
- package/dist/components/swirl-radio-group.js +1 -1
- package/dist/components/swirl-radio.js +1 -1
- package/dist/components/swirl-resource-list-file-item.js +1 -1
- package/dist/components/swirl-resource-list-item.js +1 -1
- package/dist/components/swirl-resource-list-section.js +1 -1
- package/dist/components/swirl-resource-list.js +1 -1
- package/dist/components/swirl-search.js +1 -1
- package/dist/components/swirl-select.js +1 -1
- package/dist/components/swirl-separator.js +1 -1
- package/dist/components/swirl-separator2.js +1 -0
- package/dist/components/swirl-shell-layout.js +3 -3
- package/dist/components/swirl-shell-navigation-item.js +1 -1
- package/dist/components/swirl-skeleton-box.js +1 -1
- package/dist/components/swirl-skeleton-box2.js +1 -0
- package/dist/components/swirl-skeleton-text.js +1 -1
- package/dist/components/swirl-spinner.js +1 -1
- package/dist/components/swirl-spinner2.js +1 -0
- package/dist/components/swirl-stack.js +1 -1
- package/dist/components/swirl-stack2.js +1 -0
- package/dist/components/swirl-status-indicator.js +1 -1
- package/dist/components/swirl-switch.js +1 -1
- package/dist/components/swirl-symbol-ac-unit.js +1 -1
- package/dist/components/swirl-symbol-account-circle.js +1 -1
- package/dist/components/swirl-symbol-alternate-email.js +1 -1
- package/dist/components/swirl-symbol-android.js +1 -1
- package/dist/components/swirl-symbol-announcement.js +1 -1
- package/dist/components/swirl-symbol-autorenew.js +1 -1
- package/dist/components/swirl-symbol-backup.js +1 -1
- package/dist/components/swirl-symbol-badge.js +1 -1
- package/dist/components/swirl-symbol-barcode-reader.js +1 -1
- package/dist/components/swirl-symbol-barcode-scanner.js +1 -1
- package/dist/components/swirl-symbol-battery-horiz.js +1 -1
- package/dist/components/swirl-symbol-beach-access.js +1 -1
- package/dist/components/swirl-symbol-bolt.js +1 -1
- package/dist/components/swirl-symbol-bookmark.js +1 -1
- package/dist/components/swirl-symbol-calendar.js +1 -1
- package/dist/components/swirl-symbol-campaign.js +1 -1
- package/dist/components/swirl-symbol-cards-star.js +1 -1
- package/dist/components/swirl-symbol-cloud.js +1 -1
- package/dist/components/swirl-symbol-construction.js +1 -1
- package/dist/components/swirl-symbol-contacts.js +1 -1
- package/dist/components/swirl-symbol-coronavirus.js +1 -1
- package/dist/components/swirl-symbol-design-services.js +1 -1
- package/dist/components/swirl-symbol-desktop-windows.js +1 -1
- package/dist/components/swirl-symbol-directions-car-filled.js +1 -1
- package/dist/components/swirl-symbol-diversity.js +1 -1
- package/dist/components/swirl-symbol-draw.js +1 -1
- package/dist/components/swirl-symbol-edit-calendar.js +1 -1
- package/dist/components/swirl-symbol-email.js +1 -1
- package/dist/components/swirl-symbol-emergency.js +1 -1
- package/dist/components/swirl-symbol-emoji-food-beverage.js +1 -1
- package/dist/components/swirl-symbol-engineering.js +1 -1
- package/dist/components/swirl-symbol-event-menu.js +1 -1
- package/dist/components/swirl-symbol-explore.js +1 -1
- package/dist/components/swirl-symbol-extension.js +1 -1
- package/dist/components/swirl-symbol-facebook.js +1 -1
- package/dist/components/swirl-symbol-favorite.js +1 -1
- package/dist/components/swirl-symbol-fitness-center.js +1 -1
- package/dist/components/swirl-symbol-flag.js +1 -1
- package/dist/components/swirl-symbol-flight.js +1 -1
- package/dist/components/swirl-symbol-folder.js +1 -1
- package/dist/components/swirl-symbol-globe.js +1 -1
- package/dist/components/swirl-symbol-groups.js +1 -1
- package/dist/components/swirl-symbol-healing.js +1 -1
- package/dist/components/swirl-symbol-health-and-safety.js +1 -1
- package/dist/components/swirl-symbol-help.js +1 -1
- package/dist/components/swirl-symbol-home-repair-service.js +1 -1
- package/dist/components/swirl-symbol-home-storage.js +1 -1
- package/dist/components/swirl-symbol-id-card.js +1 -1
- package/dist/components/swirl-symbol-image.js +1 -1
- package/dist/components/swirl-symbol-info-menu.js +1 -1
- package/dist/components/swirl-symbol-instagram.js +1 -1
- package/dist/components/swirl-symbol-inventory-2.js +1 -1
- package/dist/components/swirl-symbol-inventory.js +1 -1
- package/dist/components/swirl-symbol-ios.js +1 -1
- package/dist/components/swirl-symbol-key.js +1 -1
- package/dist/components/swirl-symbol-language.js +1 -1
- package/dist/components/swirl-symbol-leaderboard.js +1 -1
- package/dist/components/swirl-symbol-lightbulb.js +1 -1
- package/dist/components/swirl-symbol-linkedin.js +1 -1
- package/dist/components/swirl-symbol-local-shipping.js +1 -1
- package/dist/components/swirl-symbol-location-on.js +1 -1
- package/dist/components/swirl-symbol-loyalty.js +1 -1
- package/dist/components/swirl-symbol-map.js +1 -1
- package/dist/components/swirl-symbol-maps-home-work.js +1 -1
- package/dist/components/swirl-symbol-menu-book.js +1 -1
- package/dist/components/swirl-symbol-mop.js +1 -1
- package/dist/components/swirl-symbol-nest-eco-leaf.js +1 -1
- package/dist/components/swirl-symbol-notifications.js +1 -1
- package/dist/components/swirl-symbol-open-in-new.js +1 -1
- package/dist/components/swirl-symbol-orders.js +1 -1
- package/dist/components/swirl-symbol-package.js +1 -1
- package/dist/components/swirl-symbol-palette.js +1 -1
- package/dist/components/swirl-symbol-partly-cloudy-day.js +1 -1
- package/dist/components/swirl-symbol-pedal-bike.js +1 -1
- package/dist/components/swirl-symbol-percent-discount.js +1 -1
- package/dist/components/swirl-symbol-pets.js +1 -1
- package/dist/components/swirl-symbol-pinterest.js +1 -1
- package/dist/components/swirl-symbol-point-of-sale.js +1 -1
- package/dist/components/swirl-symbol-policy.js +1 -1
- package/dist/components/swirl-symbol-precision-manufacturing.js +1 -1
- package/dist/components/swirl-symbol-print.js +1 -1
- package/dist/components/swirl-symbol-push-pin.js +1 -1
- package/dist/components/swirl-symbol-recycling.js +1 -1
- package/dist/components/swirl-symbol-redeem.js +1 -1
- package/dist/components/swirl-symbol-report-problem.js +1 -1
- package/dist/components/swirl-symbol-restaurant.js +1 -1
- package/dist/components/swirl-symbol-roadmap.js +1 -1
- package/dist/components/swirl-symbol-rocket-launch.js +1 -1
- package/dist/components/swirl-symbol-room.js +1 -1
- package/dist/components/swirl-symbol-savings.js +1 -1
- package/dist/components/swirl-symbol-school.js +1 -1
- package/dist/components/swirl-symbol-sell.js +1 -1
- package/dist/components/swirl-symbol-settings-voice.js +1 -1
- package/dist/components/swirl-symbol-shopping-bag.js +1 -1
- package/dist/components/swirl-symbol-shopping-cart.js +1 -1
- package/dist/components/swirl-symbol-smartphone.js +1 -1
- package/dist/components/swirl-symbol-spa.js +1 -1
- package/dist/components/swirl-symbol-sports-soccer.js +1 -1
- package/dist/components/swirl-symbol-star.js +1 -1
- package/dist/components/swirl-symbol-supervisor-account.js +1 -1
- package/dist/components/swirl-symbol-task.js +1 -1
- package/dist/components/swirl-symbol-tasks.js +1 -1
- package/dist/components/swirl-symbol-thumbs-up-down.js +1 -1
- package/dist/components/swirl-symbol-timer.js +1 -1
- package/dist/components/swirl-symbol-tools-power-drill.js +1 -1
- package/dist/components/swirl-symbol-train.js +1 -1
- package/dist/components/swirl-symbol-trophy.js +1 -1
- package/dist/components/swirl-symbol-twitter.js +1 -1
- package/dist/components/swirl-symbol-video.js +1 -1
- package/dist/components/swirl-symbol-warehouse.js +1 -1
- package/dist/components/swirl-symbol-water-drop.js +1 -1
- package/dist/components/swirl-symbol-wb-sunny.js +1 -1
- package/dist/components/swirl-symbol-wechat.js +1 -1
- package/dist/components/swirl-symbol-weibo.js +1 -1
- package/dist/components/swirl-symbol-wifi.js +1 -1
- package/dist/components/swirl-symbol-work.js +1 -1
- package/dist/components/swirl-symbol-xing.js +1 -1
- package/dist/components/swirl-symbol-youtube.js +1 -1
- package/dist/components/swirl-symbol.js +1 -1
- package/dist/components/swirl-tab-bar.js +1 -1
- package/dist/components/swirl-tab-bar2.js +1 -0
- package/dist/components/swirl-tab.js +1 -1
- package/dist/components/swirl-table-cell.js +1 -1
- package/dist/components/swirl-table-column.js +1 -1
- package/dist/components/swirl-table-row-group.js +1 -1
- package/dist/components/swirl-table-row.js +1 -1
- package/dist/components/swirl-table.js +1 -1
- package/dist/components/swirl-tabs.js +1 -1
- package/dist/components/swirl-tag.js +1 -1
- package/dist/components/swirl-tag2.js +1 -0
- package/dist/components/swirl-text-input.js +1 -1
- package/dist/components/swirl-text-input2.js +1 -0
- package/dist/components/swirl-text.js +1 -1
- package/dist/components/{p-CLL9tkCx.js → swirl-text2.js} +2 -2
- package/dist/components/swirl-theme-provider.js +1 -1
- package/dist/components/swirl-thumbnail.js +1 -1
- package/dist/components/swirl-time-input.js +1 -1
- package/dist/components/swirl-toast-provider.js +1 -1
- package/dist/components/swirl-toast.js +1 -1
- package/dist/components/swirl-toast2.js +1 -0
- package/dist/components/swirl-toggle-button.js +1 -1
- package/dist/components/swirl-toggle-group.js +1 -1
- package/dist/components/swirl-toolbar.js +1 -1
- package/dist/components/swirl-tooltip.js +1 -1
- package/dist/components/swirl-tooltip2.js +1 -0
- package/dist/components/swirl-tree-navigation-item.js +1 -1
- package/dist/components/swirl-tree-navigation.js +1 -1
- package/dist/components/swirl-tree-view-item.js +1 -1
- package/dist/components/swirl-tree-view.js +1 -1
- package/dist/components/swirl-video-thumbnail.js +1 -1
- package/dist/components/swirl-visually-hidden.js +1 -1
- package/dist/components/swirl-visually-hidden2.js +1 -0
- package/dist/components/wc-datepicker.js +1 -1
- package/dist/components/wc-datepicker2.js +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/swirl-components.js +1 -1
- package/dist/esm/swirl-option-list_2.entry.js +7 -1
- package/dist/esm/swirl-select.entry.js +103 -2
- package/dist/swirl-components/p-34b71786.entry.js +1 -0
- package/dist/swirl-components/p-e185b0d9.entry.js +1 -0
- package/dist/swirl-components/swirl-components.esm.js +1 -1
- package/dist/types/components/swirl-option-list/swirl-option-list.d.ts +1 -0
- package/dist/types/components/swirl-select/swirl-select.d.ts +35 -0
- package/dist/types/components.d.ts +1 -0
- package/package.json +2 -2
- package/dist/components/p-0aalbl4O.js +0 -1
- package/dist/components/p-AP3jliyB.js +0 -1
- package/dist/components/p-B0WN1rps.js +0 -1
- package/dist/components/p-B1lbDVkI.js +0 -7
- package/dist/components/p-B4-IcNlg.js +0 -1
- package/dist/components/p-B4Wd55DN.js +0 -1
- package/dist/components/p-B5qMvC5r.js +0 -1
- package/dist/components/p-B7F6qoij.js +0 -1
- package/dist/components/p-BEO_Ur1m.js +0 -1
- package/dist/components/p-BFpDSLqC.js +0 -1
- package/dist/components/p-BGAf4PfC.js +0 -1
- package/dist/components/p-BGcNhzCf.js +0 -1
- package/dist/components/p-BIzYxcO0.js +0 -1
- package/dist/components/p-BJvOgiIR.js +0 -1
- package/dist/components/p-BNVjmTgJ.js +0 -1
- package/dist/components/p-BPrIUuuy.js +0 -1
- package/dist/components/p-BTRrW2qG.js +0 -1
- package/dist/components/p-BeCXau-Z.js +0 -1
- package/dist/components/p-BgdSkqQE.js +0 -1
- package/dist/components/p-BhEaOHlc.js +0 -1
- package/dist/components/p-BhGrCwfI.js +0 -1
- package/dist/components/p-BhhRVGwJ.js +0 -1
- package/dist/components/p-BjsN_kp8.js +0 -1
- package/dist/components/p-Bk6G6dK-.js +0 -1
- package/dist/components/p-BoRiFGqT.js +0 -1
- package/dist/components/p-BrFFyRJi.js +0 -1
- package/dist/components/p-By1U8whi.js +0 -1
- package/dist/components/p-C7FMQE1P.js +0 -1
- package/dist/components/p-CABm247w.js +0 -1
- package/dist/components/p-CGXLsT-c.js +0 -1
- package/dist/components/p-CNFW8umP.js +0 -1
- package/dist/components/p-CNygDFNS.js +0 -1
- package/dist/components/p-CRzmGPA4.js +0 -1
- package/dist/components/p-CSrAmfZC.js +0 -1
- package/dist/components/p-CVhUr9hV.js +0 -1
- package/dist/components/p-CeFceB6s.js +0 -1
- package/dist/components/p-CkkPNPa1.js +0 -1
- package/dist/components/p-Cq-WMxvn.js +0 -1
- package/dist/components/p-Cqq2weHj.js +0 -1
- package/dist/components/p-CsgXzvRJ.js +0 -1
- package/dist/components/p-CwIjZr_u.js +0 -1
- package/dist/components/p-CxWxJaMr.js +0 -1
- package/dist/components/p-Cz9YHhEr.js +0 -1
- package/dist/components/p-CzZiJ1qc.js +0 -1
- package/dist/components/p-CzgARwlN.js +0 -1
- package/dist/components/p-D3r-p-AU.js +0 -1
- package/dist/components/p-D49fHybA.js +0 -1
- package/dist/components/p-D4WZ6faV.js +0 -1
- package/dist/components/p-D4oJmF1j.js +0 -1
- package/dist/components/p-D6_n1Szo.js +0 -1
- package/dist/components/p-D8u1hQ2f.js +0 -1
- package/dist/components/p-DAv9KTFn.js +0 -1
- package/dist/components/p-DBkxhNQs.js +0 -1
- package/dist/components/p-DCxwPw77.js +0 -1
- package/dist/components/p-DMS1jxJo.js +0 -1
- package/dist/components/p-DN7qemHl.js +0 -1
- package/dist/components/p-DNq43j9j.js +0 -1
- package/dist/components/p-DOAel0Sv.js +0 -1
- package/dist/components/p-DRB4VZpi.js +0 -1
- package/dist/components/p-DRexwmjJ.js +0 -1
- package/dist/components/p-DUOOPGWB.js +0 -1
- package/dist/components/p-DWVJBU8l.js +0 -1
- package/dist/components/p-DXnY4CJZ.js +0 -1
- package/dist/components/p-D_6CI-nU.js +0 -1
- package/dist/components/p-Df474Rg3.js +0 -1
- package/dist/components/p-DocOCmZh.js +0 -1
- package/dist/components/p-DqIJV0bj.js +0 -1
- package/dist/components/p-EssAJG_j.js +0 -1
- package/dist/components/p-NucM91d6.js +0 -1
- package/dist/components/p-Pe7RFGrP.js +0 -1
- package/dist/components/p-WUxuIVzT.js +0 -1
- package/dist/components/p-XhPQOhOB.js +0 -1
- package/dist/components/p-YuQonxPX.js +0 -1
- package/dist/components/p-_9b-fMEm.js +0 -1
- package/dist/components/p-afNp4ghl.js +0 -1
- package/dist/components/p-g-oCTzqh.js +0 -1
- package/dist/components/p-jDELUVrg.js +0 -1
- package/dist/components/p-xECPKfCZ.js +0 -1
- package/dist/components/p-zJ7MHW_r.js +0 -1
- package/dist/swirl-components/p-19563ae1.entry.js +0 -1
- package/dist/swirl-components/p-67832486.entry.js +0 -1
- /package/dist/components/{p-B0kNlhKL.js → bodyScrollLock.esm.js} +0 -0
- /package/dist/components/{p-CLsTbQHn.js → floating-ui.dom.js} +0 -0
- /package/dist/components/{p-DBTxpXCn.js → index.esm.js} +0 -0
- /package/dist/components/{p-CTIzk_ki.js → index2.js} +0 -0
- /package/dist/components/{p-D3UoejeY.js → index3.js} +0 -0
- /package/dist/components/{p-CMrz6687.js → sortable.esm.js} +0 -0
- /package/dist/components/{p-BkSXzL50.js → swirl-tree-view.config.js} +0 -0
- /package/dist/components/{p-DRAQ9S8E.js → utils.js} +0 -0
- /package/dist/components/{p-DD3477fe.js → v4.js} +0 -0
|
@@ -14,6 +14,7 @@ const SwirlSelect = class {
|
|
|
14
14
|
this.searchInputLabel = "Search options";
|
|
15
15
|
this.selectId = Math.round(Math.random() * 1000000).toString();
|
|
16
16
|
this.options = [];
|
|
17
|
+
this.typeaheadBuffer = "";
|
|
17
18
|
this.select = (event) => {
|
|
18
19
|
event.stopPropagation();
|
|
19
20
|
this.value = event.detail;
|
|
@@ -33,6 +34,8 @@ const SwirlSelect = class {
|
|
|
33
34
|
this.onOpen = (event) => {
|
|
34
35
|
this.placement = event.detail.position?.placement;
|
|
35
36
|
this.open = true;
|
|
37
|
+
this.typeaheadBuffer = "";
|
|
38
|
+
clearTimeout(this.typeaheadTimeout);
|
|
36
39
|
if (this.withSearch && Boolean(this.searchInput)) {
|
|
37
40
|
this.searchInput.focus();
|
|
38
41
|
}
|
|
@@ -45,6 +48,8 @@ const SwirlSelect = class {
|
|
|
45
48
|
this.searchInput.value = "";
|
|
46
49
|
this.searchChange.emit("");
|
|
47
50
|
}
|
|
51
|
+
this.typeaheadBuffer = "";
|
|
52
|
+
clearTimeout(this.typeaheadTimeout);
|
|
48
53
|
this.open = false;
|
|
49
54
|
this.input.focus();
|
|
50
55
|
};
|
|
@@ -60,6 +65,11 @@ const SwirlSelect = class {
|
|
|
60
65
|
event.target === this.searchInput) {
|
|
61
66
|
this.optionList.querySelector('[tabIndex="0"]')?.focus();
|
|
62
67
|
}
|
|
68
|
+
else if (this.isTypeaheadKey(event)) {
|
|
69
|
+
event.preventDefault();
|
|
70
|
+
event.stopPropagation();
|
|
71
|
+
this.handleTypeahead(event.key);
|
|
72
|
+
}
|
|
63
73
|
};
|
|
64
74
|
this.onSearchInput = (event) => {
|
|
65
75
|
this.searchChange.emit(event.target.value);
|
|
@@ -73,6 +83,7 @@ const SwirlSelect = class {
|
|
|
73
83
|
}
|
|
74
84
|
disconnectedCallback() {
|
|
75
85
|
this.observer?.disconnect();
|
|
86
|
+
clearTimeout(this.typeaheadTimeout);
|
|
76
87
|
}
|
|
77
88
|
onWindowFocusIn(event) {
|
|
78
89
|
if (event.target === this.el.querySelector("input")) {
|
|
@@ -99,6 +110,96 @@ const SwirlSelect = class {
|
|
|
99
110
|
updateOptions() {
|
|
100
111
|
this.options = querySelectorAllDeep(this.el, "swirl-option-list-item");
|
|
101
112
|
}
|
|
113
|
+
/**
|
|
114
|
+
* Returns true for printable single-character keys that should trigger
|
|
115
|
+
* typeahead, excluding Space (used for selection) and keys combined with
|
|
116
|
+
* modifiers. Ignores events from the search input.
|
|
117
|
+
*/
|
|
118
|
+
isTypeaheadKey(event) {
|
|
119
|
+
if (event.target === this.searchInput) {
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
if (event.metaKey || event.ctrlKey || event.altKey) {
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
return event.key.length === 1 && event.key !== " ";
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Manages the typeahead buffer and delegates to either cycling (repeated
|
|
129
|
+
* same character) or prefix matching (different characters). Resets the
|
|
130
|
+
* buffer if transitioning out of cycling mode. The buffer auto-clears
|
|
131
|
+
* after 500ms of inactivity.
|
|
132
|
+
*/
|
|
133
|
+
handleTypeahead(key) {
|
|
134
|
+
const char = key.toLowerCase();
|
|
135
|
+
clearTimeout(this.typeaheadTimeout);
|
|
136
|
+
const allSameChar = this.typeaheadBuffer.length > 0 &&
|
|
137
|
+
[...this.typeaheadBuffer].every((c) => c === char);
|
|
138
|
+
if (allSameChar) {
|
|
139
|
+
this.typeaheadBuffer += char;
|
|
140
|
+
this.cycleTypeahead(char);
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
const wasCycling = this.typeaheadBuffer.length > 1 &&
|
|
144
|
+
new Set(this.typeaheadBuffer).size === 1;
|
|
145
|
+
this.typeaheadBuffer = wasCycling ? char : this.typeaheadBuffer + char;
|
|
146
|
+
if (!this.prefixMatchTypeahead(this.typeaheadBuffer)) {
|
|
147
|
+
this.typeaheadBuffer = char;
|
|
148
|
+
this.prefixMatchTypeahead(this.typeaheadBuffer);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
this.typeaheadTimeout = setTimeout(() => {
|
|
152
|
+
this.typeaheadBuffer = "";
|
|
153
|
+
}, 500);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Cycles focus/selection through options that start with the given
|
|
157
|
+
* character, wrapping around to the first match after the last one.
|
|
158
|
+
*/
|
|
159
|
+
cycleTypeahead(char) {
|
|
160
|
+
const enabledOptions = this.options.filter((o) => !o.disabled);
|
|
161
|
+
const matching = enabledOptions.filter((o) => o.label?.toLowerCase().startsWith(char));
|
|
162
|
+
if (matching.length === 0) {
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
const anchorValue = this.getTypeaheadAnchorValue();
|
|
166
|
+
const currentIdx = matching.findIndex((o) => o.value === anchorValue);
|
|
167
|
+
const nextIdx = (currentIdx + 1) % matching.length;
|
|
168
|
+
this.applyTypeaheadMatch(matching[nextIdx]);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Finds the first enabled option whose label starts with the given prefix
|
|
172
|
+
* (case-insensitive) and focuses/selects it. Returns whether a match was
|
|
173
|
+
* found, so the caller can fall back to a single-character retry.
|
|
174
|
+
*/
|
|
175
|
+
prefixMatchTypeahead(prefix) {
|
|
176
|
+
const enabledOptions = this.options.filter((o) => !o.disabled);
|
|
177
|
+
const match = enabledOptions.find((o) => o.label?.toLowerCase().startsWith(prefix));
|
|
178
|
+
if (match) {
|
|
179
|
+
this.applyTypeaheadMatch(match);
|
|
180
|
+
return true;
|
|
181
|
+
}
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Returns the value of the currently focused option (when open) or the
|
|
186
|
+
* last selected value (when closed), used as the starting point for cycling.
|
|
187
|
+
*/
|
|
188
|
+
getTypeaheadAnchorValue() {
|
|
189
|
+
if (this.open) {
|
|
190
|
+
const focused = this.options.find((o) => o.querySelector('[role="option"][tabindex="0"]'));
|
|
191
|
+
return focused?.value;
|
|
192
|
+
}
|
|
193
|
+
return this.value?.[this.value.length - 1];
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Applies a typeahead match by focusing the option in the open list.
|
|
197
|
+
*/
|
|
198
|
+
applyTypeaheadMatch(option) {
|
|
199
|
+
if (this.open) {
|
|
200
|
+
this.optionList.focusItemWithValue(option.value);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
102
203
|
getValueLabel() {
|
|
103
204
|
return Boolean(this.value)
|
|
104
205
|
? this.value
|
|
@@ -124,11 +225,11 @@ const SwirlSelect = class {
|
|
|
124
225
|
"select--search-loading": this.searchLoading,
|
|
125
226
|
"select--standalone": this.standalone,
|
|
126
227
|
});
|
|
127
|
-
return (h(Host, { key: '
|
|
228
|
+
return (h(Host, { key: 'fb5381d9847789755c891530848715a66612c73a', onKeyDown: this.onKeyDown }, h("div", { key: 'ec4a8fd2cf3e29ec98b4855e7962808c97232684', class: className }, h("swirl-popover-trigger", { key: 'd8cd5ad295b1b05175c13f5492a44b9d171f07a7', swirlPopover: this.swirlPopover, setAriaAttributes: false }, h("swirl-stack", { key: 'e488349fbb57486ca6916eae73fe3f222503408f', class: "select__value-container" }, this.standalone && (h("span", { key: 'b84c6e890d51940c32780197e1201707fdaabe84', "aria-hidden": "true", class: "select__resize-helper" }, label)), h("input", { key: '5e11eeaca9f63f501c0a776d79e2a920188d1f16', "aria-describedby": this.swirlAriaDescribedby, "aria-disabled": this.disabled ? "true" : undefined, "aria-invalid": ariaInvalid, class: "select__input", disabled: this.disabled, readOnly: true, ref: (el) => (this.input = el), type: "text", value: label }))), h("span", { key: '6a24242f1b1c12b79fb705e905cc56b45edccbb0', class: "select__multi-select-values" }, this.value
|
|
128
229
|
?.map((value) => this.options.find((option) => option.value === value))
|
|
129
230
|
?.map((option) => (h("swirl-tag", { "aria-hidden": "true", label: option?.label,
|
|
130
231
|
// eslint-disable-next-line react/jsx-no-bind
|
|
131
|
-
onRemove: () => this.unselectOption(option?.value), removable: !this.disabled && this.allowDeselect && !option?.disabled })))), h("span", { key: '
|
|
232
|
+
onRemove: () => this.unselectOption(option?.value), removable: !this.disabled && this.allowDeselect && !option?.disabled })))), h("span", { key: '1269e975efb7930b3defdc7e818d044e63bfbf31', class: "select__indicator" }, this.open ? (h("swirl-icon-expand-less", { size: this.standalone ? 20 : 24 })) : (h("swirl-icon-expand-more", { size: this.standalone ? 20 : 24 }))), h("swirl-popover", { key: '8807a75e712facd319f2a7d62466ea8009bf02e4', animation: "scale-in-y", class: "select__popover", id: `select-options-${this.selectId}`, label: this.label, offset: offset, onPopoverClose: this.onClose, onPopoverOpen: this.onOpen, ref: (el) => (this.swirlPopover = el), useContainerWidth: this.standalone ? false : "swirl-form-control" }, this.withSearch && (h("div", { key: '744926136b2d2b85623e1388e2e2bab32e5f597d', class: "select__search" }, h("swirl-icon-search", { key: 'fb629903439586f28dcc89cc4a13180f93d282e4', class: "select__search-icon", size: 20 }), h("input", { key: '7e5e6a98ac828330cb6e3bc5fb735d2bdedfc0c0', "aria-label": this.searchInputLabel, class: "select__search-input", onInput: this.onSearchInput, placeholder: this.searchPlaceholder, ref: (el) => (this.searchInput = el), type: "search" }), this.searchLoading && (h("swirl-spinner", { key: '180c43636f58b88658181b728dbbd40c26cd89bc', class: "select__search-spinner", size: "s" })))), h("swirl-option-list", { key: 'e0c3e2ec010851a20b99ae33bcff619b1f3c067f', allowDeselect: this.allowDeselect, onValueChange: this.select, multiSelect: this.multiSelect, ref: (el) => (this.optionList = el), value: this.value }, !this.searchLoading && (h("div", { key: '1c9712715420c7b2e390577d21cc0fa2f66e163c', "aria-disabled": "true", class: "select__empty-list-label", role: "option" }, h("swirl-text", { key: '8486dce94b93b2bb2471ac26a8ead72aba8b7d4b', color: "subdued", weight: "medium" }, this.emptyListLabel))), h("slot", { key: 'a6684b60611a1b5eab4a19e444b8d6ef113eb59c', onSlotchange: this.onSlotChange }))))));
|
|
132
233
|
}
|
|
133
234
|
get el() { return getElement(this); }
|
|
134
235
|
static get watchers() { return {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e,c as s,h as t,a as i,d as c}from"./p-bQirifsr.js";import{c as l}from"./p-orsBiyT_.js";import{q as a}from"./p-CCck-DTo.js";const r=class{constructor(t){e(this,t),this.searchChange=s(this,"searchChange",7),this.valueChange=s(this,"valueChange",7),this.allowDeselect=!0,this.emptyListLabel="No results found.",this.searchInputLabel="Search options",this.selectId=Math.round(1e6*Math.random()).toString(),this.options=[],this.typeaheadBuffer="",this.select=e=>{e.stopPropagation(),this.value=e.detail,this.multiSelect||this.swirlPopover.close()},this.unselectOption=e=>{this.allowDeselect&&(this.value=this.value.filter((s=>s!==e)))},this.onSlotChange=()=>{this.updateOptions()},this.onOpen=e=>{this.placement=e.detail.position?.placement,this.open=!0,this.typeaheadBuffer="",clearTimeout(this.typeaheadTimeout),this.withSearch&&Boolean(this.searchInput)?this.searchInput.focus():this.optionList.querySelector('[tabIndex="0"]')?.focus()},this.onClose=()=>{Boolean(this.searchInput)&&(this.searchInput.value="",this.searchChange.emit("")),this.typeaheadBuffer="",clearTimeout(this.typeaheadTimeout),this.open=!1,this.input.focus()},this.onKeyDown=e=>{if("Space"===e.code||"Enter"===e.code){if(e.target===this.searchInput)return;e.preventDefault(),this.swirlPopover.open(this.el)}else"ArrowDown"===e.code&&e.target===this.searchInput?this.optionList.querySelector('[tabIndex="0"]')?.focus():this.isTypeaheadKey(e)&&(e.preventDefault(),e.stopPropagation(),this.handleTypeahead(e.key))},this.onSearchInput=e=>{this.searchChange.emit(e.target.value)}}componentWillLoad(){queueMicrotask((()=>{this.updateOptions(),this.observeSlotChanges()}))}disconnectedCallback(){this.observer?.disconnect(),clearTimeout(this.typeaheadTimeout)}onWindowFocusIn(e){e.target===this.el.querySelector("input")&&e.stopImmediatePropagation()}onValueChange(e,s){e?.length===s?.length&&e?.every((e=>s?.includes(e)))||this.valueChange.emit(this.value)}observeSlotChanges(){this.observer=new MutationObserver((()=>{this.updateOptions()})),this.observer.observe(this.el,{childList:!0,subtree:!0})}updateOptions(){this.options=a(this.el,"swirl-option-list-item")}isTypeaheadKey(e){return e.target!==this.searchInput&&!(e.metaKey||e.ctrlKey||e.altKey)&&1===e.key.length&&" "!==e.key}handleTypeahead(e){const s=e.toLowerCase();if(clearTimeout(this.typeaheadTimeout),this.typeaheadBuffer.length>0&&[...this.typeaheadBuffer].every((e=>e===s)))this.typeaheadBuffer+=s,this.cycleTypeahead(s);else{const e=this.typeaheadBuffer.length>1&&1===new Set(this.typeaheadBuffer).size;this.typeaheadBuffer=e?s:this.typeaheadBuffer+s,this.prefixMatchTypeahead(this.typeaheadBuffer)||(this.typeaheadBuffer=s,this.prefixMatchTypeahead(this.typeaheadBuffer))}this.typeaheadTimeout=setTimeout((()=>{this.typeaheadBuffer=""}),500)}cycleTypeahead(e){const s=this.options.filter((e=>!e.disabled)).filter((s=>s.label?.toLowerCase().startsWith(e)));if(0===s.length)return;const t=this.getTypeaheadAnchorValue(),i=s.findIndex((e=>e.value===t));this.applyTypeaheadMatch(s[(i+1)%s.length])}prefixMatchTypeahead(e){const s=this.options.filter((e=>!e.disabled)).find((s=>s.label?.toLowerCase().startsWith(e)));return!!s&&(this.applyTypeaheadMatch(s),!0)}getTypeaheadAnchorValue(){if(this.open){const e=this.options.find((e=>e.querySelector('[role="option"][tabindex="0"]')));return e?.value}return this.value?.[this.value.length-1]}applyTypeaheadMatch(e){this.open&&this.optionList.focusItemWithValue(e.value)}getValueLabel(){return Boolean(this.value)?this.value?.map((e=>this.options.find((s=>s.value===e))?.label)).join(", "):""}render(){const e=this.getValueLabel(),s=!0===this.invalid||!1===this.invalid?String(this.invalid):void 0,c=this.el.closest("swirl-form-control"),a=this.standalone?[-8,0]:c?.inline||"outside"===c?.labelPosition?[0,-12]:[0,-16],r=l("select",`select--placement-${this.placement}`,{"select--disabled":this.disabled,"select--inline":this.inline,"select--multi":this.multiSelect,"select--search-loading":this.searchLoading,"select--standalone":this.standalone});return t(i,{key:"fb5381d9847789755c891530848715a66612c73a",onKeyDown:this.onKeyDown},t("div",{key:"ec4a8fd2cf3e29ec98b4855e7962808c97232684",class:r},t("swirl-popover-trigger",{key:"d8cd5ad295b1b05175c13f5492a44b9d171f07a7",swirlPopover:this.swirlPopover,setAriaAttributes:!1},t("swirl-stack",{key:"e488349fbb57486ca6916eae73fe3f222503408f",class:"select__value-container"},this.standalone&&t("span",{key:"b84c6e890d51940c32780197e1201707fdaabe84","aria-hidden":"true",class:"select__resize-helper"},e),t("input",{key:"5e11eeaca9f63f501c0a776d79e2a920188d1f16","aria-describedby":this.swirlAriaDescribedby,"aria-disabled":this.disabled?"true":void 0,"aria-invalid":s,class:"select__input",disabled:this.disabled,readOnly:!0,ref:e=>this.input=e,type:"text",value:e}))),t("span",{key:"6a24242f1b1c12b79fb705e905cc56b45edccbb0",class:"select__multi-select-values"},this.value?.map((e=>this.options.find((s=>s.value===e))))?.map((e=>t("swirl-tag",{"aria-hidden":"true",label:e?.label,onRemove:()=>this.unselectOption(e?.value),removable:!this.disabled&&this.allowDeselect&&!e?.disabled})))),t("span",{key:"1269e975efb7930b3defdc7e818d044e63bfbf31",class:"select__indicator"},t(this.open?"swirl-icon-expand-less":"swirl-icon-expand-more",{size:this.standalone?20:24})),t("swirl-popover",{key:"8807a75e712facd319f2a7d62466ea8009bf02e4",animation:"scale-in-y",class:"select__popover",id:`select-options-${this.selectId}`,label:this.label,offset:a,onPopoverClose:this.onClose,onPopoverOpen:this.onOpen,ref:e=>this.swirlPopover=e,useContainerWidth:!this.standalone&&"swirl-form-control"},this.withSearch&&t("div",{key:"744926136b2d2b85623e1388e2e2bab32e5f597d",class:"select__search"},t("swirl-icon-search",{key:"fb629903439586f28dcc89cc4a13180f93d282e4",class:"select__search-icon",size:20}),t("input",{key:"7e5e6a98ac828330cb6e3bc5fb735d2bdedfc0c0","aria-label":this.searchInputLabel,class:"select__search-input",onInput:this.onSearchInput,placeholder:this.searchPlaceholder,ref:e=>this.searchInput=e,type:"search"}),this.searchLoading&&t("swirl-spinner",{key:"180c43636f58b88658181b728dbbd40c26cd89bc",class:"select__search-spinner",size:"s"})),t("swirl-option-list",{key:"e0c3e2ec010851a20b99ae33bcff619b1f3c067f",allowDeselect:this.allowDeselect,onValueChange:this.select,multiSelect:this.multiSelect,ref:e=>this.optionList=e,value:this.value},!this.searchLoading&&t("div",{key:"1c9712715420c7b2e390577d21cc0fa2f66e163c","aria-disabled":"true",class:"select__empty-list-label",role:"option"},t("swirl-text",{key:"8486dce94b93b2bb2471ac26a8ead72aba8b7d4b",color:"subdued",weight:"medium"},this.emptyListLabel)),t("slot",{key:"a6684b60611a1b5eab4a19e444b8d6ef113eb59c",onSlotchange:this.onSlotChange})))))}get el(){return c(this)}static get watchers(){return{value:[{onValueChange:0}]}}};r.style='.sc-swirl-select-h{display:block;width:100%}.sc-swirl-select-h *.sc-swirl-select{box-sizing:border-box}.select.sc-swirl-select{position:relative;display:flex;width:100%}.select.sc-swirl-select .sc-swirl-select::part(popover__content),.select.sc-swirl-select .sc-swirl-select [part~="popover__content"]{margin-top:var(--s-space-16)}@media (min-width: 768px){.select.sc-swirl-select .sc-swirl-select::part(popover__scroll-container){padding-top:0}}.select--placement-top-start.sc-swirl-select .sc-swirl-select::part(popover__content),.select--placement-top-start.sc-swirl-select .sc-swirl-select [part~="popover__content"]{margin-top:-2.25rem}.select--multi.sc-swirl-select .select__input.sc-swirl-select{position:absolute;width:100%;height:100%;pointer-events:none;opacity:0}.select--multi.sc-swirl-select .select__multi-select-values.sc-swirl-select{display:flex}.select--disabled.sc-swirl-select .select__input.sc-swirl-select{color:var(--s-text-disabled)}.select--disabled.sc-swirl-select .select__indicator.sc-swirl-select{color:var(--s-icon-disabled)}.select--inline.sc-swirl-select .select__indicator.sc-swirl-select{transform:translateY(-50%)}.select--standalone.sc-swirl-select{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.select--standalone.sc-swirl-select .select__indicator.sc-swirl-select{position:relative;top:auto;right:auto;cursor:pointer;transform:none}.select--standalone.sc-swirl-select .select__input.sc-swirl-select{padding-right:var(--s-space-8);font-weight:var(--s-font-weight-medium);cursor:pointer}.select--standalone.sc-swirl-select .select__value-container.sc-swirl-select{width:-webkit-min-content;width:-moz-min-content;width:min-content}.select--search-loading.sc-swirl-select .select__search-input.sc-swirl-select{padding-right:calc(var(--s-space-12) + 1.5rem + var(--s-space-8))}.select__resize-helper.sc-swirl-select{display:block;width:auto;height:0;margin:0;padding:0;padding-right:calc(1.5rem + var(--s-space-8));padding-right:var(--s-space-8);font:inherit;font-weight:var(--s-font-weight-medium);line-height:var(--s-line-height-base);text-align:left;white-space:pre;white-space:pre;vertical-align:top;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;opacity:0}@media (min-width: 992px) and (max-width: 1439px) and (hover: hover),(min-width: 1440px){.select__resize-helper.sc-swirl-select{font-size:var(--s-font-size-sm);line-height:var(--s-line-height-sm)}}.select__input.sc-swirl-select{display:block;overflow:hidden;width:100%;height:1.25rem;margin:0;padding:0;padding-right:calc(1.5rem + var(--s-space-8));border:none;background-color:transparent;font:inherit;line-height:var(--s-line-height-base);text-align:left;white-space:nowrap;text-overflow:ellipsis;cursor:default}.select__input.sc-swirl-select:focus{outline:none}@media (min-width: 992px) and (max-width: 1439px) and (hover: hover),(min-width: 1440px){.select__input.sc-swirl-select{font-size:var(--s-font-size-sm);line-height:var(--s-line-height-sm)}}.select__multi-select-values.sc-swirl-select{display:none;overflow:hidden;width:100%;min-height:1.25rem;padding-right:calc(1.5rem + var(--s-space-8));flex-wrap:wrap;flex-shrink:0;gap:var(--s-space-8)}.select__multi-select-values.sc-swirl-select .sc-swirl-select::part(tag),.select__multi-select-values.sc-swirl-select .sc-swirl-select [part~="tag"]{height:1.25rem;padding:0 var(--s-space-4)}.select__indicator.sc-swirl-select{position:absolute;top:50%;right:0;display:inline-flex;color:var(--s-icon-default);transform:translateY(calc(-50% - var(--s-space-8)))}.select__search.sc-swirl-select{position:relative;display:flex;width:100%;padding:0.0625rem var(--s-space-8);border-bottom:0.0625rem solid var(--s-border-default);background-color:var(--s-surface-overlay-default)}@media (min-width: 768px){.select__search.sc-swirl-select{position:sticky;z-index:1;top:0;padding-top:var(--s-space-8);padding-right:0.0625rem;padding-left:0.0625rem}}.select__search-icon.sc-swirl-select{position:absolute;top:50%;left:calc(var(--s-space-8) * 2);display:inline-flex;color:var(--s-icon-default);transform:translateY(-50%)}@media (min-width: 768px){.select__search-icon.sc-swirl-select{left:var(--s-space-12);margin-top:var(--s-space-4);padding:0.0625rem}}.select__search-input.sc-swirl-select{width:100%;height:2.5rem;padding-right:var(--s-space-12);padding-left:calc(var(--s-space-12) + 1.25rem + var(--s-space-8));align-items:center;border:none;color:var(--s-text-default);background-color:var(--s-surface-overlay-default);font:inherit;line-height:var(--s-line-height-base);caret-color:var(--s-border-highlight)}.select__search-input.sc-swirl-select:focus:not(:focus-visible){outline:none}.select__search-input.sc-swirl-select:focus-visible{outline-color:var(--s-focus-default)}.select__search-input.sc-swirl-select::-moz-placeholder{color:var(--s-text-subdued)}.select__search-input.sc-swirl-select::placeholder{color:var(--s-text-subdued)}.select__search-input.sc-swirl-select::-webkit-search-decoration,.select__search-input.sc-swirl-select::-webkit-search-cancel-button,.select__search-input.sc-swirl-select::-webkit-search-results-button,.select__search-input.sc-swirl-select::-webkit-search-results-decoration{-webkit-appearance:none;appearance:none}@media (min-width: 992px) and (max-width: 1439px) and (hover: hover),(min-width: 1440px){.select__search-input.sc-swirl-select{font-size:var(--s-font-size-sm);line-height:var(--s-line-height-sm)}}.select__search-spinner.sc-swirl-select{position:absolute;top:50%;right:var(--s-space-12);display:inline-flex;transform:translateY(-50%)}@media (min-width: 768px){.select__search-spinner.sc-swirl-select{margin-top:var(--s-space-4)}}.select__empty-list-label.sc-swirl-select{padding:var(--s-space-12) var(--s-space-12) 0}.select__empty-list-label.sc-swirl-select:not(:only-child){display:none}@media (min-width: 768px){.select__empty-list-label.sc-swirl-select{padding:var(--s-space-12) var(--s-space-12) var(--s-space-8)}}';export{r as swirl_select}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as t,c as i,h as s,a as e,d as a}from"./p-bQirifsr.js";import{S as o}from"./p-CMrz6687.js";import{l as r,q as n}from"./p-CCck-DTo.js";import{v as l}from"./p-DD3477fe.js";import{c as h}from"./p-orsBiyT_.js";const c=class{constructor(s){t(this,s),this.itemDrop=i(this,"itemDrop",7),this.valueChange=i(this,"valueChange",7),this.allowDeselect=!0,this.assistiveTextItemGrabbed="Item grabbed. Use arrow keys to move item up or down. Use spacebar to save position.",this.assistiveTextItemMoving="Current position:",this.assistiveTextItemMoved="Item moved. New position:",this.selectAllLabel="Select all",this.value=[],this.selectAllState=!1,this.selectAllValue=l(),this.onClick=t=>{t.preventDefault();const i=t.target,s=i?.closest("swirl-option-list-item"),e=t.composedPath()[0],a=Boolean(r(e,'[role="option"]'));if(Boolean(s)&&a)if(s.value===this.selectAllValue)this.selectAllChanged();else{const t=this.items.findIndex((t=>t.value===s.value));this.focusItem(t),this.selectItem(t)}else t.preventDefault()},this.onKeyDown=t=>{if("ArrowDown"===t.code)t.preventDefault(),Boolean(this.dragging)?this.moveDraggedItemDown():this.focusNextItem();else if("ArrowUp"===t.code)t.preventDefault(),Boolean(this.dragging)?this.moveDraggedItemUp():this.focusPreviousItem();else if("Space"===t.code||"Enter"===t.code){if(!t.target.classList.contains("option-list-item__drag-handle")&&Boolean(this.dragging))return t.preventDefault(),void this.stopDrag(this.dragging);const i=t.composedPath()[0],s=Boolean(r(i,'[role="option"]')),e=i?.closest("swirl-option-list-item")?.value===this.selectAllValue;if(!s&&!e)return;t.preventDefault(),Boolean(this.dragging)?this.stopDrag(this.dragging):e?this.selectAllChanged():this.selectFocusedItem()}else"Home"===t.code?(t.preventDefault(),this.showSelectAll?this.focusSelectAll():this.focusItem(0)):"End"===t.code?(t.preventDefault(),this.focusItem(this.items.length-1)):"KeyA"===t.code&&(t.metaKey||t.ctrlKey)&&this.multiSelect?(t.preventDefault(),this.selectAllItems()):"Tab"===t.code&&Boolean(this.dragging)&&t.preventDefault()},this.resetTabIndex=()=>{this.removeItemsTabIndex(),this.focusedItem=void 0;const t=this.items[0]?.querySelector('[role="option"]'),i=this.selectAllEl?.querySelector('[role="option"]');(i||t)?.setAttribute("tabIndex","0")},this.selectAllChanged=()=>{if(this.disabled)return;const t=this.items?.length||0;this.updateValue((this.value?.length||0)===t?[]:this.items.map((t=>t.value)))},this.toggleDrag=t=>{const i=t.detail;Boolean(this.dragging)?this.stopDrag(i):this.startDrag(i)},this.startDrag=t=>{this.dragging=t,this.draggingStartIndex=this.getItemIndex(this.dragging),t.setAttribute("dragging","true");const i=this.getItemIndex(this.dragging);this.focusItem(i),this.assistiveText=this.assistiveTextItemGrabbed},this.stopDrag=t=>{this.dragging=void 0,t.removeAttribute("dragging");const i=this.getActiveItemIndex();this.assistiveText=`${this.assistiveTextItemMoved} ${i+1}`,this.itemDrop.emit({item:t,oldIndex:this.draggingStartIndex,newIndex:i}),this.draggingStartIndex=void 0,this.focusItem(i)}}componentDidLoad(){this.updateItems(),this.observeSlotChanges(),this.setItemAllowDragState(),this.setItemDisabledState(),this.setItemContext(),this.syncItemsWithValue(),this.setupDragDrop(),this.setSectionSeparator(),this.setSelectAllState(),this.subscribeToSwirlPopover()}componentDidRender(){this.setupDragDrop()}disconnectedCallback(){this.unsubscribeFromSwirlPopover(),this.observer?.disconnect(),this.sortable?.destroy(),this.removeToggleDragListeners()}removeToggleDragListeners(){this.items?.forEach((t=>{t.removeEventListener("toggleDrag",this.toggleDrag)}))}watchAllowDrag(){this.setItemAllowDragState(),this.setupDragDrop()}watchDisabled(){this.setItemDisabledState()}watchMultiSelect(){this.setItemContext()}watchValue(){this.syncItemsWithValue(),this.setSelectAllState()}async focusItemWithValue(t){const i=this.items.findIndex((i=>i.value===t));i>=0&&this.focusItem(i)}observeSlotChanges(){this.observer=new MutationObserver((()=>{this.updateItems(),this.setItemAllowDragState(),this.setItemDisabledState(),this.setItemContext(),this.syncItemsWithValue(),this.setSelectAllState()})),this.observer.observe(this.listboxEl,{childList:!0,subtree:!0})}setSelectAllState(){const t=this.items?.length||0,i=this.value?.length||0;this.selectAllState=0!==t&&0!==i&&(i===t||"indeterminate")}updateItems(){this.removeToggleDragListeners(),this.items=n(this.el,"swirl-option-list-item").filter((t=>t.value!==this.selectAllValue)),this.selectAllEl?.querySelector('[tabindex="0"]')||this.items.some((t=>t.querySelector('[tabindex="0"]')))||this.resetTabIndex()}removeItemsTabIndex(){this.selectAllEl?.querySelector('[role="option"]')?.removeAttribute("tabIndex"),this.items.forEach((t=>t.querySelector('[role="option"]')?.removeAttribute("tabIndex")))}setItemDisabledState(){this.disabled&&this.items.forEach((t=>t.disabled=!0))}setItemContext(){this.multiSelect?this.items.forEach((t=>t.context="multi-select")):(this.items.forEach((t=>t.context="single-select")),this.value.length>1&&this.updateValue([this.value[0]]))}setupDragDrop(){Boolean(this.sortable)&&this.sortable.destroy(),this.allowDrag&&(this.sortable=o.create(this.listboxEl,{animation:150,draggable:'swirl-option-list-item[allow-drag="true"]',dragClass:"option-list-item--drag",handle:".option-list-item__drag-handle",onEnd:t=>{this.itemDrop.emit({item:t.item,oldIndex:t.oldIndex,newIndex:t.newIndex})}}))}setItemAllowDragState(){if(this.allowDrag&&!this.multiSelect)return void console.error("[SwirlOptionList] Drag can only be allowed for multi select lists.");const t=n(this.el,"swirl-option-list-section");this.allowDrag&&t.length>0?console.error("[SwirlOptionList] Drag can only be allowed for lists without sections."):this.items.forEach(this.allowDrag?t=>{t.setAttribute("allow-drag","true"),t.addEventListener("toggleDrag",this.toggleDrag)}:t=>{t.removeAttribute("allow-drag"),t.removeEventListener("toggleDrag",this.toggleDrag)})}selectItem(t){if(this.disabled)return;const i=this.items[t];if(i.disabled)return;const s=this.value.includes(i.value);s&&!this.allowDeselect||(this.multiSelect||(this.value=[]),this.updateValue(s?this.value.filter((t=>t!==i.value)):[...this.value,i.value]))}updateValue(t){this.value=t,this.valueChange.emit(this.value)}selectFocusedItem(){this.disabled||-1===this.getActiveItemIndex()||this.selectItem(this.getActiveItemIndex())}selectAllItems(){if(this.disabled)return;const t=this.items.every((t=>this.value.includes(t.value)));this.updateValue(t?[]:this.items.map((t=>t.value)))}syncItemsWithValue(){this.items?.forEach((t=>t.selected=this.value.includes(t.value)))}focusItem(t){if(this.disabled)return;this.removeItemsTabIndex();const i=this.items[t]?.querySelector('[role="option"]');Boolean(i)&&(i.setAttribute("tabIndex","0"),i.focus(),this.focusedItem=i)}focusNextItem(){if(this.disabled)return;const t=this.getActiveItemIndex(),i=Math.min(t+1,this.items.length-1);this.focusItem(i)}focusPreviousItem(){const t=this.getActiveItemIndex();if(t<=0&&this.showSelectAll)this.focusSelectAll();else{const i=Math.max(t-1,0);this.focusItem(i)}}focusSelectAll(){const t=this.selectAllEl?.querySelector('[role="option"]');t&&(this.removeItemsTabIndex(),t.setAttribute("tabIndex","0"),t.focus(),this.focusedItem=void 0)}getActiveItemIndex(){return Boolean(this.focusedItem)?this.items.map((t=>t.querySelector('[role="option"]'))).findIndex((t=>t===this.focusedItem)):Boolean(this.selectAllEl)?-1:0}getItemIndex(t){return this.items.map((t=>t)).findIndex((i=>i===t))}moveDraggedItemDown(){const t=this.dragging.nextElementSibling;Boolean(t)&&(t.after(this.dragging),this.updateItems(),this.listboxEl.focus(),this.assistiveText=`${this.assistiveTextItemMoving} ${this.getActiveItemIndex()+1}`)}moveDraggedItemUp(){const t=this.dragging.previousElementSibling;Boolean(t)&&t!==this.selectAllEl&&(t.before(this.dragging),this.updateItems(),this.listboxEl.focus(),this.assistiveText=`${this.assistiveTextItemMoving} ${this.getItemIndex(this.dragging)+1}`)}setSectionSeparator(){this.el&&Array.from(this.el.querySelectorAll("swirl-option-list-section")).filter((t=>t.isConnected)).forEach(((t,i)=>{0===i&&"SWIRL-OPTION-LIST-ITEM"!==t.previousElementSibling?.tagName&&(t.hasSeparator=!1)}))}subscribeToSwirlPopover(){this.swirlPopover=r(this.el,"swirl-popover"),this.swirlPopover?.addEventListener("popoverClose",this.resetTabIndex)}unsubscribeFromSwirlPopover(){this.swirlPopover?.removeEventListener("popoverClose",this.resetTabIndex)}render(){const t=this.multiSelect?"true":void 0,i=Boolean(this.dragging)?0:void 0,a=this.multiSelect&&this.showSelectAll;return s(e,{key:"23dac33782dc5196ebf9ed3069911c4745499e51"},s("swirl-visually-hidden",{key:"31f2e96b74cf92d5bb181f878e0dcbe260f96b83",role:"alert"},this.assistiveText),s("div",{key:"468b98cde9d0dcacc7c00bacc798287a6f094281","aria-label":this.label,"aria-multiselectable":t,class:"option-list",id:this.optionListId,onClick:this.onClick,onKeyDown:this.onKeyDown,ref:t=>this.listboxEl=t,role:"listbox",tabIndex:i},a&&s("swirl-option-list-item",{key:"5f8c970263e40980e6f5162e07ddbe03220bda54",ref:t=>this.selectAllEl=t,label:this.selectAllLabel,disabled:this.disabled,context:"multi-select",selected:!0===this.selectAllState,indeterminate:"indeterminate"===this.selectAllState,value:this.selectAllValue}),s("slot",{key:"50e6464cad68af3ba9a7ecf4a628693445e62503",onSlotchange:this.setSectionSeparator})))}get el(){return a(this)}static get watchers(){return{allowDrag:[{watchAllowDrag:0}],disabled:[{watchDisabled:0}],multiSelect:[{watchMultiSelect:0}],value:[{watchValue:0}]}}};c.style=".sc-swirl-option-list-h{display:block}.sc-swirl-option-list-h *.sc-swirl-option-list{box-sizing:border-box}";const g=class{constructor(s){t(this,s),this.removeTag=i(this,"remove",7),this.iconPosition="start",this.intent="default",this.size="m",this.removalButtonLabel="Remove",this.variant="default",this.onRemove=t=>{this.removeTag?.emit(t)}}componentDidLoad(){this.forceIconProps()}componentWillLoad(){this.forceVariant()}componentDidRender(){this.forceIconProps()}forceIconProps(){const t=this.iconEl?.children[0];t?.setAttribute("size","16")}forceVariant(){Boolean(this.bordered)&&(console.warn('[Swirl] The "bordered" prop of swirl-tag is deprecated and will be removed with the next major release. Please use the "variant" prop as "outline" to achieve the same result.'),this.variant="outline")}render(){const t=h("tag",`tag--icon-position-${this.iconPosition}`,`tag--intent-${this.intent}`,`tag--size-${this.size}`,`tag--variant-${this.variant}`,{"tag--hide-label":this.hideLabel});return s(e,{key:"1761004fec8f52ef477c14dfb032db0cb4a2cae2"},s("span",{key:"1531d418beb787bf5a85b32bf10017d24fe458b7",class:t,part:"tag"},this.icon&&s("span",{key:"95db9c8289b2e770af02cc6eeb370a002b2bd7b1",class:"tag__icon",innerHTML:this.icon,ref:t=>this.iconEl=t}),this.hideLabel?s("swirl-visually-hidden",null,this.label):s("span",{class:"tag__label"},this.label),this.removable&&s("button",{key:"1b99be433002b0a62f07b93ff6dd6e95fafef4c9","aria-label":this.removalButtonLabel,class:"tag__removal-button",onClick:this.onRemove,tabIndex:"true"===this.el.ariaHidden?-1:void 0,type:"button"},s("swirl-icon-close",{key:"2afaee043cd6b5ce579a3aa675beb5dba764539a",size:16}))))}get el(){return a(this)}};g.style=":host{display:inline-flex;max-width:100%}:host *{box-sizing:border-box}.tag{display:inline-flex;max-width:100%;align-items:center;border-radius:var(--s-border-radius-s);color:var(--s-text-default);background-color:var(--swirl-tag-background-default);font-size:var(--s-font-size-sm);font-weight:var(--s-font-weight-medium);line-height:var(--s-line-height-sm);white-space:nowrap;border-style:solid;border-width:var(--s-border-width-default);border-color:transparent}.tag--size-s{padding:var(--s-space-0) var(--s-space-4)}.tag--size-s.tag--icon-position-end .tag__icon{margin-right:calc(-1 * var(--s-space-2))}.tag--size-s .tag__icon{margin-left:calc(-1 * var(--s-space-2))}.tag--size-m{padding:var(--s-space-2) var(--s-space-8)}.tag--icon-position-end .tag__icon{margin-right:calc(-1 * var(--s-space-4));margin-left:var(--s-space-4);order:2}.tag--hide-label{padding-right:0;padding-left:0}.tag--hide-label.tag--size-s .tag__icon{margin-right:0;margin-left:0}.tag--hide-label .tag__icon{margin-right:var(--s-space-2);margin-left:var(--s-space-2)}.tag--variant-outline{border-color:var(--s-border-strong)}.tag--variant-strong{color:var(--s-text-on-status);background-color:var(--s-surface-neutral-default)}.tag--variant-strong .tag__removal-button{color:var(--s-icon-on-status)}.tag--intent-info{color:var(--s-text-info);background-color:var(--s-surface-info-subdued)}.tag--intent-info .tag__removal-button{color:var(--s-icon-info)}.tag--intent-info.tag--variant-outline{border-color:var(--s-border-info)}.tag--intent-info.tag--variant-strong{color:var(--s-text-on-status);background-color:var(--s-surface-info-default)}.tag--intent-info.tag--variant-strong .tag__removal-button{color:var(--s-icon-on-status)}.tag--intent-critical{color:var(--s-text-critical);background-color:var(--s-surface-critical-subdued)}.tag--intent-critical .tag__removal-button{color:var(--s-icon-critical)}.tag--intent-critical.tag--variant-outline{border-color:var(--s-border-critical)}.tag--intent-critical.tag--variant-strong{color:var(--s-text-on-status);background-color:var(--s-surface-critical-default)}.tag--intent-critical.tag--variant-strong .tag__removal-button{color:var(--s-icon-on-status)}.tag--intent-warning{color:var(--s-text-warning);background-color:var(--s-surface-warning-subdued)}.tag--intent-warning .tag__removal-button{color:var(--s-icon-warning)}.tag--intent-warning.tag--variant-outline{border-color:var(--s-border-warning)}.tag--intent-warning.tag--variant-strong{color:var(--s-text-dark);background-color:var(--s-surface-warning-default)}.tag--intent-warning.tag--variant-strong .tag__removal-button{color:var(--s-icon-dark)}.tag--intent-success{color:var(--s-text-success);background-color:var(--s-surface-success-subdued)}.tag--intent-success .tag__removal-button{color:var(--s-icon-success)}.tag--intent-success.tag--variant-outline{border-color:var(--s-border-success)}.tag--intent-success.tag--variant-strong{color:var(--s-text-on-status);background-color:var(--s-surface-success-default)}.tag--intent-success.tag--variant-strong .tag__removal-button{color:var(--s-icon-on-status)}.tag--intent-special{color:var(--s-decorative-grape-text);background-color:var(--s-decorative-grape-surface-subdued)}.tag--intent-special .tag__removal-button{color:var(--s-decorative-grape-text)}.tag--intent-special.tag--variant-outline{border-color:var(--s-decorative-grape-text)}.tag--intent-special.tag--variant-strong{color:var(--s-text-on-status);background-color:var(--s-decorative-grape-surface)}.tag--intent-special.tag--variant-strong .tag__removal-button{color:var(--s-icon-on-status)}.tag--intent-translucent{color:var(--s-text-on-image);background-color:var(--s-surface-on-image-default)}.tag--intent-translucent .tag__removal-button{color:var(--s-icon-on-image)}.tag--intent-translucent.tag--variant-outline{border-color:var(--s-text-on-image)}.tag__icon{display:inline-flex;margin-right:var(--s-space-4);margin-left:calc(-1 * var(--s-space-4));flex-shrink:0;order:0}.tag__label{overflow:hidden;min-width:0;white-space:nowrap;text-overflow:ellipsis;order:1}.tag__removal-button{display:inline-flex;margin-right:calc(-1 * var(--s-space-4));margin-left:var(--s-space-4);padding:0;border:none;color:var(--s-icon-strong);background-color:transparent;cursor:pointer;flex-shrink:0;order:3}.tag__removal-button:focus:not(:focus-visible){outline:none}.tag__removal-button:focus-visible{outline-color:var(--s-focus-default)}";export{c as swirl_option_list,g as swirl_tag}
|