@scalar/components 0.27.9 → 0.27.11
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 +1 -1
- package/dist/components/ScalarButton/ScalarButton.vue.script.js +2 -2
- package/dist/components/ScalarButton/ScalarButton.vue.script.js.map +1 -1
- package/dist/components/ScalarButton/constants.js.map +1 -1
- package/dist/components/ScalarCard/ScalarCard.vue.script.js +1 -1
- package/dist/components/ScalarCard/ScalarCard.vue.script.js.map +1 -1
- package/dist/components/ScalarCard/ScalarCardFooter.vue.script.js +1 -1
- package/dist/components/ScalarCard/ScalarCardFooter.vue.script.js.map +1 -1
- package/dist/components/ScalarCard/ScalarCardHeader.vue.script.js +1 -1
- package/dist/components/ScalarCard/ScalarCardHeader.vue.script.js.map +1 -1
- package/dist/components/ScalarCard/ScalarCardSection.vue.script.js +1 -1
- package/dist/components/ScalarCard/ScalarCardSection.vue.script.js.map +1 -1
- package/dist/components/ScalarCard/useCardHeading.js +3 -1
- package/dist/components/ScalarCard/useCardHeading.js.map +1 -1
- package/dist/components/ScalarCheckboxInput/ScalarCheckbox.vue.script.js +1 -1
- package/dist/components/ScalarCheckboxInput/ScalarCheckbox.vue.script.js.map +1 -1
- package/dist/components/ScalarCheckboxInput/ScalarCheckboxGroup.vue.d.ts.map +1 -1
- package/dist/components/ScalarCheckboxInput/ScalarCheckboxGroup.vue.js.map +1 -1
- package/dist/components/ScalarCheckboxInput/ScalarCheckboxGroup.vue.script.js +3 -3
- package/dist/components/ScalarCheckboxInput/ScalarCheckboxGroup.vue.script.js.map +1 -1
- package/dist/components/ScalarCheckboxInput/ScalarCheckboxInput.vue.script.js +2 -2
- package/dist/components/ScalarCheckboxInput/ScalarCheckboxInput.vue.script.js.map +1 -1
- package/dist/components/ScalarCheckboxInput/ScalarCheckboxRadioGroup.vue.d.ts.map +1 -1
- package/dist/components/ScalarCheckboxInput/ScalarCheckboxRadioGroup.vue.script.js +2 -2
- package/dist/components/ScalarCheckboxInput/ScalarCheckboxRadioGroup.vue.script.js.map +1 -1
- package/dist/components/ScalarCodeBlock/ScalarCodeBlock.vue.script.js +1 -1
- package/dist/components/ScalarCodeBlock/ScalarCodeBlock.vue.script.js.map +1 -1
- package/dist/components/ScalarCodeBlock/ScalarCodeBlockCopy.vue.script.js +2 -2
- package/dist/components/ScalarCodeBlock/ScalarCodeBlockCopy.vue.script.js.map +1 -1
- package/dist/components/ScalarCodeBlock/constants.js.map +1 -1
- package/dist/components/ScalarColorModeToggle/ScalarColorModeToggle.vue.d.ts.map +1 -1
- package/dist/components/ScalarColorModeToggle/ScalarColorModeToggle.vue.script.js +1 -1
- package/dist/components/ScalarColorModeToggle/ScalarColorModeToggle.vue.script.js.map +1 -1
- package/dist/components/ScalarColorModeToggle/ScalarColorModeToggleButton.vue.script.js +1 -1
- package/dist/components/ScalarColorModeToggle/ScalarColorModeToggleButton.vue.script.js.map +1 -1
- package/dist/components/ScalarColorModeToggle/ScalarColorModeToggleIcon.vue.js +1 -1
- package/dist/components/ScalarColorModeToggle/ScalarColorModeToggleIcon.vue.script.js +1 -1
- package/dist/components/ScalarColorModeToggle/ScalarColorModeToggleIcon.vue.script.js.map +1 -1
- package/dist/components/ScalarCombobox/ScalarCombobox.vue.d.ts +1 -1
- package/dist/components/ScalarCombobox/ScalarCombobox.vue.d.ts.map +1 -1
- package/dist/components/ScalarCombobox/ScalarCombobox.vue.script.js +3 -3
- package/dist/components/ScalarCombobox/ScalarCombobox.vue.script.js.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.d.ts +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.d.ts.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.js.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.script.js +4 -4
- package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.script.js.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxOption.vue.script.js +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxOption.vue.script.js.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxOptionGroup.vue.script.js +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxOptionGroup.vue.script.js.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.d.ts +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.d.ts.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.js.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.script.js +6 -10
- package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.script.js.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxPopover.vue.d.ts.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxPopover.vue.script.js +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxPopover.vue.script.js.map +1 -1
- package/dist/components/ScalarCombobox/filter-by-option-label.js.map +1 -1
- package/dist/components/ScalarCombobox/types.js.map +1 -1
- package/dist/components/ScalarCopy/ScalarCopy.vue.d.ts.map +1 -1
- package/dist/components/ScalarCopy/ScalarCopy.vue.script.js +2 -2
- package/dist/components/ScalarCopy/ScalarCopy.vue.script.js.map +1 -1
- package/dist/components/ScalarCopy/ScalarCopyBackdrop.vue.script.js +1 -1
- package/dist/components/ScalarCopy/ScalarCopyBackdrop.vue.script.js.map +1 -1
- package/dist/components/ScalarCopy/ScalarCopyButton.vue.script.js +2 -2
- package/dist/components/ScalarCopy/ScalarCopyButton.vue.script.js.map +1 -1
- package/dist/components/ScalarDropdown/ScalarDropdown.vue.script.js +2 -2
- package/dist/components/ScalarDropdown/ScalarDropdown.vue.script.js.map +1 -1
- package/dist/components/ScalarDropdown/ScalarDropdownButton.vue.js +1 -1
- package/dist/components/ScalarDropdown/ScalarDropdownButton.vue.script.js +1 -1
- package/dist/components/ScalarDropdown/ScalarDropdownButton.vue.script.js.map +1 -1
- package/dist/components/ScalarDropdown/ScalarDropdownDivider.vue.js +1 -1
- package/dist/components/ScalarDropdown/ScalarDropdownDivider.vue.js.map +1 -1
- package/dist/components/ScalarDropdown/ScalarDropdownDivider.vue.script.js.map +1 -1
- package/dist/components/ScalarDropdown/ScalarDropdownItem.vue.d.ts.map +1 -1
- package/dist/components/ScalarDropdown/ScalarDropdownItem.vue.js +1 -1
- package/dist/components/ScalarDropdown/ScalarDropdownItem.vue.script.js +1 -1
- package/dist/components/ScalarDropdown/ScalarDropdownItem.vue.script.js.map +1 -1
- package/dist/components/ScalarDropdown/ScalarDropdownMenu.vue.script.js +1 -1
- package/dist/components/ScalarDropdown/ScalarDropdownMenu.vue.script.js.map +1 -1
- package/dist/components/ScalarDropdown/useDropdown.js.map +1 -1
- package/dist/components/ScalarErrorBoundary/ScalarErrorBoundary.vue.script.js +2 -2
- package/dist/components/ScalarErrorBoundary/ScalarErrorBoundary.vue.script.js.map +1 -1
- package/dist/components/ScalarFileUpload/ScalarFileUpload.vue.d.ts.map +1 -1
- package/dist/components/ScalarFileUpload/ScalarFileUpload.vue.script.js +3 -3
- package/dist/components/ScalarFileUpload/ScalarFileUpload.vue.script.js.map +1 -1
- package/dist/components/ScalarFileUpload/ScalarFileUploadDropTarget.vue.script.js +1 -1
- package/dist/components/ScalarFileUpload/ScalarFileUploadDropTarget.vue.script.js.map +1 -1
- package/dist/components/ScalarFileUpload/ScalarFileUploadError.vue.script.js +1 -1
- package/dist/components/ScalarFileUpload/ScalarFileUploadError.vue.script.js.map +1 -1
- package/dist/components/ScalarFileUpload/ScalarFileUploadFileList.vue.d.ts.map +1 -1
- package/dist/components/ScalarFileUpload/ScalarFileUploadFileList.vue.script.js +2 -2
- package/dist/components/ScalarFileUpload/ScalarFileUploadFileList.vue.script.js.map +1 -1
- package/dist/components/ScalarFileUpload/ScalarFileUploadInput.vue.d.ts.map +1 -1
- package/dist/components/ScalarFileUpload/ScalarFileUploadInput.vue.script.js +1 -1
- package/dist/components/ScalarFileUpload/ScalarFileUploadInput.vue.script.js.map +1 -1
- package/dist/components/ScalarFileUpload/ScalarFileUploadInputCompact.vue.script.js +1 -1
- package/dist/components/ScalarFileUpload/ScalarFileUploadInputCompact.vue.script.js.map +1 -1
- package/dist/components/ScalarFileUpload/ScalarFileUploadLoading.vue.script.js +1 -1
- package/dist/components/ScalarFileUpload/ScalarFileUploadLoading.vue.script.js.map +1 -1
- package/dist/components/ScalarFileUpload/types.js.map +1 -1
- package/dist/components/ScalarFloating/ScalarFloating.vue.script.js +4 -2
- package/dist/components/ScalarFloating/ScalarFloating.vue.script.js.map +1 -1
- package/dist/components/ScalarFloating/ScalarFloatingBackdrop.vue.script.js +1 -1
- package/dist/components/ScalarFloating/ScalarFloatingBackdrop.vue.script.js.map +1 -1
- package/dist/components/ScalarFloating/useResizeWithTarget.js.map +1 -1
- package/dist/components/ScalarForm/ScalarForm.vue.script.js +1 -1
- package/dist/components/ScalarForm/ScalarForm.vue.script.js.map +1 -1
- package/dist/components/ScalarForm/ScalarFormError.vue.script.js +1 -1
- package/dist/components/ScalarForm/ScalarFormError.vue.script.js.map +1 -1
- package/dist/components/ScalarForm/ScalarFormField.vue.script.js +1 -1
- package/dist/components/ScalarForm/ScalarFormField.vue.script.js.map +1 -1
- package/dist/components/ScalarForm/ScalarFormInput.vue.script.js +1 -1
- package/dist/components/ScalarForm/ScalarFormInput.vue.script.js.map +1 -1
- package/dist/components/ScalarForm/ScalarFormInputGroup.vue.script.js +1 -1
- package/dist/components/ScalarForm/ScalarFormInputGroup.vue.script.js.map +1 -1
- package/dist/components/ScalarForm/ScalarFormSection.vue.js +1 -1
- package/dist/components/ScalarForm/ScalarFormSection.vue.js.map +1 -1
- package/dist/components/ScalarForm/ScalarFormSection.vue.script.js.map +1 -1
- package/dist/components/ScalarForm/useFormGroups.js.map +1 -1
- package/dist/components/ScalarHeader/ScalarHeader.vue.script.js +1 -1
- package/dist/components/ScalarHeader/ScalarHeader.vue.script.js.map +1 -1
- package/dist/components/ScalarHeader/ScalarHeaderButton.vue.script.js +1 -1
- package/dist/components/ScalarHeader/ScalarHeaderButton.vue.script.js.map +1 -1
- package/dist/components/ScalarHotkey/ScalarHotkey.vue.script.js +1 -1
- package/dist/components/ScalarHotkey/ScalarHotkey.vue.script.js.map +1 -1
- package/dist/components/ScalarHotkey/constants.js.map +1 -1
- package/dist/components/ScalarHotkey/formatHotkey.js +1 -8
- package/dist/components/ScalarHotkey/formatHotkey.js.map +1 -1
- package/dist/components/ScalarIcon/IconList.vue.d.ts.map +1 -1
- package/dist/components/ScalarIcon/ScalarIcon.vue.js +1 -1
- package/dist/components/ScalarIcon/ScalarIcon.vue.script.js +1 -1
- package/dist/components/ScalarIcon/ScalarIcon.vue.script.js.map +1 -1
- package/dist/components/ScalarIcon/ScalarIconLegacyAdapter.vue.script.js +1 -1
- package/dist/components/ScalarIcon/ScalarIconLegacyAdapter.vue.script.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Add.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Add.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/AddTab.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/AddTab.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Alert.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Alert.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/ArrowLeft.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/ArrowLeft.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/ArrowRight.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/ArrowRight.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Brackets.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Brackets.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Branch.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Branch.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Changelog.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Changelog.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Checkmark.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Checkmark.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/ChevronDown.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/ChevronDown.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/ChevronLeft.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/ChevronLeft.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/ChevronRight.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/ChevronRight.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/ChevronUp.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/ChevronUp.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Clipboard.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Clipboard.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Close.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Close.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/CloseTab.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/CloseTab.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/CloseTabs.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/CloseTabs.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Cloud.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Cloud.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/CodeFolder.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/CodeFolder.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Cog.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Cog.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Collection.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Collection.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Cookie.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Cookie.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/DarkMode.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/DarkMode.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Delete.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Delete.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Discord.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Discord.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/DocsPage.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/DocsPage.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Download.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Download.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Duplicate.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Duplicate.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Edit.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Edit.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Ellipses.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Ellipses.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Email.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Email.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Error.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Error.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Example.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Example.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/ExternalLink.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/ExternalLink.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/FilterList.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/FilterList.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Folder.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Folder.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/GitHub.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/GitHub.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/GitHubLine.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/GitHubLine.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Globe.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Globe.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Google.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Google.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Help.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Help.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Hide.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Hide.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/History.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/History.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/House.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/House.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Import.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Import.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Info.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Info.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Key.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Key.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Leave.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Leave.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/LightDarkModeToggle.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/LightDarkModeToggle.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/LightMode.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/LightMode.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Link.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Link.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Lock.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Lock.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Logo.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Logo.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Magic.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Magic.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Markdown.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Markdown.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Menu.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Menu.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/NotAllowed.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/NotAllowed.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Page.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Page.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Pencil.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Pencil.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Play.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Play.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Refresh.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Refresh.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Roadmap.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Roadmap.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Scribble.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Scribble.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Search.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Search.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Server.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Server.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Settings.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Settings.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Show.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Show.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Sort.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Sort.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Terminal.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Terminal.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Trash.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Trash.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Unlock.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Unlock.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Unwatch.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Unwatch.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Upload.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Upload.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/User.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/User.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/UserSwitch.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/UserSwitch.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Users.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Users.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Versions.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Versions.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Wallet.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Wallet.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Watch.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Watch.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/Workspace.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/Workspace.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-framework-angular.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-framework-angular.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-framework-astro.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-framework-astro.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-framework-laravel.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-framework-laravel.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-framework-nextdotjs.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-framework-nextdotjs.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-framework-react.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-framework-react.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-framework-vuedotjs.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-framework-vuedotjs.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-c.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-c.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-clojure.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-clojure.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-csharp.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-csharp.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-css3.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-css3.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-dart.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-dart.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-fsharp.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-fsharp.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-go.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-go.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-html5.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-html5.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-http.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-http.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-java.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-java.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-javascript.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-javascript.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-json.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-json.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-kotlin.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-kotlin.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-node.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-node.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-objc.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-objc.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-ocaml.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-ocaml.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-php.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-php.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-powershell.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-powershell.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-python.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-python.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-r.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-r.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-ruby.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-ruby.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-rust.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-rust.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-scala.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-scala.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-shell.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-shell.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-swift.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-swift.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-typescript.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-language-typescript.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-script-code.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-script-code.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-tool-git.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-tool-git.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/icons/programming-tool-tailwindcss.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/icons/programming-tool-tailwindcss.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/logos/Adonisjs.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/logos/Adonisjs.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/logos/Astro.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/logos/Astro.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/logos/Docusaurus.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/logos/Docusaurus.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/logos/Dotnet.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/logos/Dotnet.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/logos/Elysiajs.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/logos/Elysiajs.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/logos/Express.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/logos/Express.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/logos/Fastapi.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/logos/Fastapi.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/logos/Fastify.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/logos/Fastify.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/logos/Go.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/logos/Go.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/logos/Hono.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/logos/Hono.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/logos/Laravel.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/logos/Laravel.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/logos/Litestar.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/logos/Litestar.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/logos/Nestjs.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/logos/Nestjs.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/logos/Nextjs.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/logos/Nextjs.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/logos/Nitro.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/logos/Nitro.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/logos/Nuxt.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/logos/Nuxt.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/logos/Openapi.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/logos/Openapi.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/logos/Platformatic.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/logos/Platformatic.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/logos/React.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/logos/React.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/logos/Rust.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/logos/Rust.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/logos/Svelte.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/logos/Svelte.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/logos/Vue.svg.virtual.js +1 -1
- package/dist/components/ScalarIcon/logos/Vue.svg.virtual.js.map +1 -1
- package/dist/components/ScalarIcon/utils/index.js +2 -2
- package/dist/components/ScalarIcon/utils/index.js.map +1 -1
- package/dist/components/ScalarIcon/variants.js.map +1 -1
- package/dist/components/ScalarIconButton/ScalarIconButton.vue.script.js +1 -1
- package/dist/components/ScalarIconButton/ScalarIconButton.vue.script.js.map +1 -1
- package/dist/components/ScalarListbox/ScalarListbox.vue.d.ts.map +1 -1
- package/dist/components/ScalarListbox/ScalarListbox.vue.script.js +1 -1
- package/dist/components/ScalarListbox/ScalarListbox.vue.script.js.map +1 -1
- package/dist/components/ScalarListbox/ScalarListboxCheckbox.vue.script.js +1 -1
- package/dist/components/ScalarListbox/ScalarListboxCheckbox.vue.script.js.map +1 -1
- package/dist/components/ScalarListbox/ScalarListboxInput.vue.script.js +1 -1
- package/dist/components/ScalarListbox/ScalarListboxInput.vue.script.js.map +1 -1
- package/dist/components/ScalarListbox/ScalarListboxItem.vue.script.js +1 -1
- package/dist/components/ScalarListbox/ScalarListboxItem.vue.script.js.map +1 -1
- package/dist/components/ScalarLoading/ScalarLoading.vue.js +1 -1
- package/dist/components/ScalarLoading/ScalarLoading.vue.script.js +1 -1
- package/dist/components/ScalarLoading/ScalarLoading.vue.script.js.map +1 -1
- package/dist/components/ScalarLoading/useLoadingState.js.map +1 -1
- package/dist/components/ScalarMarkdown/ScalarMarkdown.vue.script.js +1 -1
- package/dist/components/ScalarMarkdown/ScalarMarkdown.vue.script.js.map +1 -1
- package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.script.js +2 -2
- package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.script.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenu.vue.script.js +1 -1
- package/dist/components/ScalarMenu/ScalarMenu.vue.script.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuButton.vue.script.js +1 -1
- package/dist/components/ScalarMenu/ScalarMenuButton.vue.script.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuLink.vue.script.js +1 -1
- package/dist/components/ScalarMenu/ScalarMenuLink.vue.script.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuProduct.vue.script.js +1 -1
- package/dist/components/ScalarMenu/ScalarMenuProduct.vue.script.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuProducts.vue.d.ts.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuProducts.vue.script.js +1 -1
- package/dist/components/ScalarMenu/ScalarMenuProducts.vue.script.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuResources.vue.script.js +1 -1
- package/dist/components/ScalarMenu/ScalarMenuResources.vue.script.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuSection.vue.script.js +1 -1
- package/dist/components/ScalarMenu/ScalarMenuSection.vue.script.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuSupport.vue.script.js +1 -1
- package/dist/components/ScalarMenu/ScalarMenuSupport.vue.script.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuTeamPicker.vue.d.ts.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuTeamPicker.vue.script.js +1 -1
- package/dist/components/ScalarMenu/ScalarMenuTeamPicker.vue.script.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuTeamProfile.vue.script.js +1 -1
- package/dist/components/ScalarMenu/ScalarMenuTeamProfile.vue.script.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuWorkspacePicker.vue.d.ts.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuWorkspacePicker.vue.script.js +3 -3
- package/dist/components/ScalarMenu/ScalarMenuWorkspacePicker.vue.script.js.map +1 -1
- package/dist/components/ScalarModal/ScalarModal.vue.d.ts.map +1 -1
- package/dist/components/ScalarModal/ScalarModal.vue.js +3 -3
- package/dist/components/ScalarModal/ScalarModal.vue.script.js +1 -1
- package/dist/components/ScalarModal/ScalarModal.vue.script.js.map +1 -1
- package/dist/components/ScalarPopover/ScalarPopover.vue.script.js +1 -1
- package/dist/components/ScalarPopover/ScalarPopover.vue.script.js.map +1 -1
- package/dist/components/ScalarSavePrompt/ScalarSavePrompt.vue.d.ts.map +1 -1
- package/dist/components/ScalarSavePrompt/ScalarSavePrompt.vue.script.js +3 -3
- package/dist/components/ScalarSavePrompt/ScalarSavePrompt.vue.script.js.map +1 -1
- package/dist/components/ScalarSearchInput/ScalarSearchInput.vue.d.ts.map +1 -1
- package/dist/components/ScalarSearchInput/ScalarSearchInput.vue.script.js +2 -2
- package/dist/components/ScalarSearchInput/ScalarSearchInput.vue.script.js.map +1 -1
- package/dist/components/ScalarSearchResults/ScalarSearchResultItem.vue.script.js +1 -1
- package/dist/components/ScalarSearchResults/ScalarSearchResultItem.vue.script.js.map +1 -1
- package/dist/components/ScalarSearchResults/ScalarSearchResultList.vue.script.js +3 -3
- package/dist/components/ScalarSearchResults/ScalarSearchResultList.vue.script.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebar.vue.script.js +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebar.vue.script.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarButton.vue.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarButton.vue.script.js +3 -3
- package/dist/components/ScalarSidebar/ScalarSidebarButton.vue.script.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarFooter.vue.script.js +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarFooter.vue.script.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarGroup.vue.d.ts.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarGroup.vue.script.js +6 -12
- package/dist/components/ScalarSidebar/ScalarSidebarGroup.vue.script.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarGroupToggle.vue.script.js +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarGroupToggle.vue.script.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarIndent.vue.js +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarIndent.vue.script.js +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarIndent.vue.script.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarItem.vue.script.js +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarItem.vue.script.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarItems.vue.script.js +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarItems.vue.script.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarLoading.vue.script.js +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarLoading.vue.script.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarNestedItems.vue.d.ts.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarNestedItems.vue.script.js +4 -4
- package/dist/components/ScalarSidebar/ScalarSidebarNestedItems.vue.script.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarSearchButton.vue.d.ts.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarSearchButton.vue.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarSearchButton.vue.script.js +6 -6
- package/dist/components/ScalarSidebar/ScalarSidebarSearchButton.vue.script.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarSearchInput.vue.d.ts.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarSearchInput.vue.script.js +2 -2
- package/dist/components/ScalarSidebar/ScalarSidebarSearchInput.vue.script.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarSection.vue.script.js +2 -2
- package/dist/components/ScalarSidebar/ScalarSidebarSection.vue.script.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarSpacer.vue.script.js +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarSpacer.vue.script.js.map +1 -1
- package/dist/components/ScalarSidebar/findScrollContainer.js.map +1 -1
- package/dist/components/ScalarSidebar/useSidebarGroups.js +1 -1
- package/dist/components/ScalarSidebar/useSidebarGroups.js.map +1 -1
- package/dist/components/ScalarSidebar/useSidebarNestedItems.js +3 -1
- package/dist/components/ScalarSidebar/useSidebarNestedItems.js.map +1 -1
- package/dist/components/ScalarTeleport/ScalarTeleport.vue.script.js +1 -1
- package/dist/components/ScalarTeleport/ScalarTeleport.vue.script.js.map +1 -1
- package/dist/components/ScalarTeleport/ScalarTeleportRoot.vue.script.js +1 -1
- package/dist/components/ScalarTeleport/ScalarTeleportRoot.vue.script.js.map +1 -1
- package/dist/components/ScalarTeleport/useTeleport.js.map +1 -1
- package/dist/components/ScalarTextArea/ScalarTextArea.vue.d.ts.map +1 -1
- package/dist/components/ScalarTextArea/ScalarTextArea.vue.js.map +1 -1
- package/dist/components/ScalarTextArea/ScalarTextArea.vue.script.js +2 -2
- package/dist/components/ScalarTextArea/ScalarTextArea.vue.script.js.map +1 -1
- package/dist/components/ScalarTextInput/ScalarTextInput.vue.d.ts.map +1 -1
- package/dist/components/ScalarTextInput/ScalarTextInput.vue.js.map +1 -1
- package/dist/components/ScalarTextInput/ScalarTextInput.vue.script.js +4 -4
- package/dist/components/ScalarTextInput/ScalarTextInput.vue.script.js.map +1 -1
- package/dist/components/ScalarTextInput/ScalarTextInputCopy.vue.d.ts.map +1 -1
- package/dist/components/ScalarTextInput/ScalarTextInputCopy.vue.js.map +1 -1
- package/dist/components/ScalarTextInput/ScalarTextInputCopy.vue.script.js +4 -4
- package/dist/components/ScalarTextInput/ScalarTextInputCopy.vue.script.js.map +1 -1
- package/dist/components/ScalarThemeSwatches/ScalarThemeSwatches.vue.script.js +1 -1
- package/dist/components/ScalarThemeSwatches/ScalarThemeSwatches.vue.script.js.map +1 -1
- package/dist/components/ScalarThemeSwatches/useThemeSwatches.js.map +1 -1
- package/dist/components/ScalarToggle/ScalarToggle.vue.d.ts.map +1 -1
- package/dist/components/ScalarToggle/ScalarToggle.vue.script.js +2 -2
- package/dist/components/ScalarToggle/ScalarToggle.vue.script.js.map +1 -1
- package/dist/components/ScalarToggle/ScalarToggleGroup.vue.d.ts.map +1 -1
- package/dist/components/ScalarToggle/ScalarToggleGroup.vue.js.map +1 -1
- package/dist/components/ScalarToggle/ScalarToggleGroup.vue.script.js +3 -3
- package/dist/components/ScalarToggle/ScalarToggleGroup.vue.script.js.map +1 -1
- package/dist/components/ScalarToggle/ScalarToggleInput.vue.script.js +1 -1
- package/dist/components/ScalarToggle/ScalarToggleInput.vue.script.js.map +1 -1
- package/dist/components/ScalarToggle/ScalarToggleSlider.vue.script.js +1 -1
- package/dist/components/ScalarToggle/ScalarToggleSlider.vue.script.js.map +1 -1
- package/dist/components/ScalarToggle/ScalarTristateToggle.vue.d.ts.map +1 -1
- package/dist/components/ScalarToggle/ScalarTristateToggle.vue.script.js +2 -2
- package/dist/components/ScalarToggle/ScalarTristateToggle.vue.script.js.map +1 -1
- package/dist/components/ScalarToggle/ScalarTristateToggleGroup.vue.d.ts.map +1 -1
- package/dist/components/ScalarToggle/ScalarTristateToggleGroup.vue.js.map +1 -1
- package/dist/components/ScalarToggle/ScalarTristateToggleGroup.vue.script.js +3 -3
- package/dist/components/ScalarToggle/ScalarTristateToggleGroup.vue.script.js.map +1 -1
- package/dist/components/ScalarToggle/ScalarTristateToggleInput.vue.script.js +1 -1
- package/dist/components/ScalarToggle/ScalarTristateToggleInput.vue.script.js.map +1 -1
- package/dist/components/ScalarTooltip/ScalarHotkeyTooltip.vue.js.map +1 -1
- package/dist/components/ScalarTooltip/ScalarHotkeyTooltip.vue.script.js +2 -2
- package/dist/components/ScalarTooltip/ScalarHotkeyTooltip.vue.script.js.map +1 -1
- package/dist/components/ScalarTooltip/ScalarTooltip.vue.d.ts.map +1 -1
- package/dist/components/ScalarTooltip/ScalarTooltip.vue.js.map +1 -1
- package/dist/components/ScalarTooltip/ScalarTooltip.vue.script.js +1 -1
- package/dist/components/ScalarTooltip/ScalarTooltip.vue.script.js.map +1 -1
- package/dist/components/ScalarTooltip/useTooltip.d.ts.map +1 -1
- package/dist/components/ScalarTooltip/useTooltip.js +40 -1
- package/dist/components/ScalarTooltip/useTooltip.js.map +1 -1
- package/dist/components/ScalarVirtualCodeBlock/ScalarVirtualCodeBlock.vue.script.js +1 -1
- package/dist/components/ScalarVirtualCodeBlock/ScalarVirtualCodeBlock.vue.script.js.map +1 -1
- package/dist/components/ScalarVirtualText/ScalarVirtualText.vue.d.ts.map +1 -1
- package/dist/components/ScalarVirtualText/ScalarVirtualText.vue.js +1 -1
- package/dist/components/ScalarVirtualText/ScalarVirtualText.vue.script.js +1 -1
- package/dist/components/ScalarVirtualText/ScalarVirtualText.vue.script.js.map +1 -1
- package/dist/components/ScalarVirtualText/ScalarVirtualTextSearch.vue.js +1 -1
- package/dist/components/ScalarVirtualText/ScalarVirtualTextSearch.vue.script.js +1 -1
- package/dist/components/ScalarVirtualText/ScalarVirtualTextSearch.vue.script.js.map +1 -1
- package/dist/components/ScalarWrappingText/ScalarWrappingText.vue.d.ts.map +1 -1
- package/dist/components/ScalarWrappingText/ScalarWrappingText.vue.script.js +1 -1
- package/dist/components/ScalarWrappingText/ScalarWrappingText.vue.script.js.map +1 -1
- package/dist/components/ScalarWrappingText/constants.js +5 -0
- package/dist/components/ScalarWrappingText/constants.js.map +1 -1
- package/dist/helpers/add-scalar-classes.js.map +1 -1
- package/dist/style.css +156 -112
- package/dist/vue-styles.css +83 -77
- package/package.json +11 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarCombobox.vue.script.js","names":["$slots"],"sources":["../../../src/components/ScalarCombobox/ScalarCombobox.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Combobox component\n *\n * A searchable select input with support for filtering, option groups,\n * and custom option rendering.\n *\n * @example\n * <ScalarCombobox v-model=\"selected\" :options=\"options\">\n * <ScalarButton>{{ selected?.label ?? 'Select' }}</ScalarButton>\n * </ScalarCombobox>\n */\nexport default {}\n</script>\n\n<!-- prettier-ignore-attribute generic -->\n<script\n setup\n lang=\"ts\"\n generic=\"O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O>\">\nimport type { ScalarFloatingOptions } from '../ScalarFloating'\nimport ComboboxOptions from './ScalarComboboxOptions.vue'\nimport ComboboxPopover from './ScalarComboboxPopover.vue'\nimport type {\n ComboboxEmits,\n ComboboxSlots,\n FilterFunction,\n Option,\n OptionGroup,\n OptionsOrGroups,\n} from './types'\n\ndefineProps<\n {\n /** The options to display in the combobox */\n options: OptionsOrGroups<O, G>\n /** The placeholder text to display in the combobox */\n placeholder?: string\n /** A function to filter the options based on a query,\n * if not provided, the options will be filtered by option label\n *\n * @see {@link FilterFunction} for more information\n */\n filterFn?: FilterFunction<O, G>\n } & ScalarFloatingOptions\n>()\n\nconst emit = defineEmits<ComboboxEmits>()\n\nconst model = defineModel<O>()\n\ndefineSlots<ComboboxSlots<O, G>>()\n</script>\n<template>\n <ComboboxPopover\n :middleware\n :offset\n :placement=\"placement ?? 'bottom-start'\"\n :resize\n :target\n :teleport>\n <template #default=\"{ open }\">\n <slot :open />\n </template>\n <template #popover=\"{ open, close }\">\n <ComboboxOptions\n :filterFn\n :modelValue=\"model ? [model] : []\"\n :open\n :options\n :placeholder\n @add=\"() => (close(), emit('add'))\"\n @update:modelValue=\"(v) => (close(), (model = v[0]))\">\n <!-- Pass through the combobox slots -->\n <template\n v-if=\"$slots.option\"\n #option=\"props\">\n <slot\n name=\"option\"\n v-bind=\"props\" />\n </template>\n <template\n v-if=\"$slots.group\"\n #group=\"props\">\n <slot\n name=\"group\"\n v-bind=\"props\" />\n </template>\n <template\n v-if=\"$slots.add\"\n #add=\"props\">\n <slot\n name=\"add\"\n v-bind=\"props\" />\n </template>\n </ComboboxOptions>\n </template>\n </ComboboxPopover>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EA+CA,MAAM,OAAO;EAEb,MAAM,QAAQ,SAAc,SAAA,
|
|
1
|
+
{"version":3,"file":"ScalarCombobox.vue.script.js","names":["$slots"],"sources":["../../../src/components/ScalarCombobox/ScalarCombobox.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Combobox component\n *\n * A searchable select input with support for filtering, option groups,\n * and custom option rendering.\n *\n * @example\n * <ScalarCombobox v-model=\"selected\" :options=\"options\">\n * <ScalarButton>{{ selected?.label ?? 'Select' }}</ScalarButton>\n * </ScalarCombobox>\n */\nexport default {}\n</script>\n\n<!-- prettier-ignore-attribute generic -->\n<script\n setup\n lang=\"ts\"\n generic=\"O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O>\">\nimport type { ScalarFloatingOptions } from '../ScalarFloating'\nimport ComboboxOptions from './ScalarComboboxOptions.vue'\nimport ComboboxPopover from './ScalarComboboxPopover.vue'\nimport type {\n ComboboxEmits,\n ComboboxSlots,\n FilterFunction,\n Option,\n OptionGroup,\n OptionsOrGroups,\n} from './types'\n\ndefineProps<\n {\n /** The options to display in the combobox */\n options: OptionsOrGroups<O, G>\n /** The placeholder text to display in the combobox */\n placeholder?: string\n /** A function to filter the options based on a query,\n * if not provided, the options will be filtered by option label\n *\n * @see {@link FilterFunction} for more information\n */\n filterFn?: FilterFunction<O, G>\n } & ScalarFloatingOptions\n>()\n\nconst emit = defineEmits<ComboboxEmits>()\n\nconst model = defineModel<O>()\n\ndefineSlots<ComboboxSlots<O, G>>()\n</script>\n<template>\n <ComboboxPopover\n :middleware\n :offset\n :placement=\"placement ?? 'bottom-start'\"\n :resize\n :target\n :teleport>\n <template #default=\"{ open }\">\n <slot :open />\n </template>\n <template #popover=\"{ open, close }\">\n <ComboboxOptions\n :filterFn\n :modelValue=\"model ? [model] : []\"\n :open\n :options\n :placeholder\n @add=\"() => (close(), emit('add'))\"\n @update:modelValue=\"(v) => (close(), (model = v[0]))\">\n <!-- Pass through the combobox slots -->\n <template\n v-if=\"$slots.option\"\n #option=\"props\">\n <slot\n name=\"option\"\n v-bind=\"props\" />\n </template>\n <template\n v-if=\"$slots.group\"\n #group=\"props\">\n <slot\n name=\"group\"\n v-bind=\"props\" />\n </template>\n <template\n v-if=\"$slots.add\"\n #add=\"props\">\n <slot\n name=\"add\"\n v-bind=\"props\" />\n </template>\n </ComboboxOptions>\n </template>\n </ComboboxPopover>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EA+CA,MAAM,OAAO;EAEb,MAAM,QAAQ,SAAc,SAAA,YAAC;;uBAK3B,YA2CkB,+BAAA;IA1Cf,YAAA,QAAA;IACA,QAAA,QAAA;IACA,WAAW,QAAA,aAAS;IACpB,QAAA,QAAA;IACA,QAAA,QAAA;IACA,UAAA,QAAA;;IACU,SAAO,SACF,EADM,WAAI,CACxB,WAAc,KAAA,QAAA,WAAA,EAAP,KAAI,CAAA,CAAA,CAAA;IAEF,SAAO,SA+BE,EA/BE,MAAM,YAAK,CAC/B,YA8BkB,+BAAA;KA7Bf,UAAA,QAAA;KACA,YAAY,MAAA,QAAK,CAAI,MAAA,KAAK,IAAA,CAAA;KAC1B;KACA,SAAA,QAAA;KACA,aAAA,QAAA;KACA,cAAY,MAAK,GAAI,KAAI,KAAA;KACzB,wBAAoB,OAAO,MAAK,GAAK,MAAA,QAAQ,EAAC;;KAGvCA,KAAAA,OAAO,SAAA;YACZ;mBAAQ,UAAK,CACd,WAEmB,KAAA,QAAA,UAAA,eAAA,mBAAT,KAAK,CAAA,CAAA,CAAA,CAAA;;;KAGTA,KAAAA,OAAO,QAAA;YACZ;mBAAO,UAAK,CACb,WAEmB,KAAA,QAAA,SAAA,eAAA,mBAAT,KAAK,CAAA,CAAA,CAAA,CAAA;;;KAGTA,KAAAA,OAAO,MAAA;YACZ;mBAAK,UAAK,CACX,WAEmB,KAAA,QAAA,OAAA,eAAA,mBAAT,KAAK,CAAA,CAAA,CAAA,CAAA"}
|
|
@@ -463,7 +463,7 @@ declare const __VLS_export: <O extends Option = Option, G extends OptionGroup<O>
|
|
|
463
463
|
slots: ComboboxSlots<O, G>;
|
|
464
464
|
emit: ((evt: "add") => void) & ((event: "update:modelValue", value: O[]) => void);
|
|
465
465
|
}>) => import("vue").VNode & {
|
|
466
|
-
__ctx?: Awaited<typeof __VLS_setup
|
|
466
|
+
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
467
467
|
};
|
|
468
468
|
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
469
469
|
[K in keyof T]: T[K];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarComboboxMultiselect.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarCombobox/ScalarComboboxMultiselect.vue"],"names":[],"mappings":"AAgHA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAG9D,OAAO,KAAK,EAEV,aAAa,EACb,cAAc,EACd,MAAM,EACN,WAAW,EACX,eAAe,EAChB,MAAM,SAAS,CAAA;AAGhB;;;;;;;;;GASG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY,GAAM,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAC3F,aAAa,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAC9D,YAAY,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAC3G,gBAAgB,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAClE;
|
|
1
|
+
{"version":3,"file":"ScalarComboboxMultiselect.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarCombobox/ScalarComboboxMultiselect.vue"],"names":[],"mappings":"AAgHA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAG9D,OAAO,KAAK,EAEV,aAAa,EACb,cAAc,EACd,MAAM,EACN,WAAW,EACX,eAAe,EAChB,MAAM,SAAS,CAAA;AAGhB;;;;;;;;;GASG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY,GAAM,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAC3F,aAAa,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAC9D,YAAY,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAC3G,gBAAgB,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAClE;WAoLO,OAAO,KAAK,EAAE,WAAW,GAAG,mBAAmB,CAAC;QAlLpD,6CAA6C;iBACpC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9B,sDAAsD;sBACxC,MAAM;QACpB;;;;WAIG;mBACQ,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;;qBAyBtB,CAAC,EAAE;;;;KAgJ2E,CAAC,GAAG,CAAC,OAAO,UAAU,SAAS;QAAE,oBAAoB,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YAC5J,CAAC,OAAO,EAAE,OAAO,KAAK,EAAE,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAsB,KAAK,IAAI;WACxE,GAAG;;UAEJ,2EAAoC;EAEvC,KACQ,OAAO,KAAK,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAA;CAAI,CAAC;AACzF,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,CAAC,GAAG,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarComboboxMultiselect.vue.js","names":[],"sources":["../../../src/components/ScalarCombobox/ScalarComboboxMultiselect.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Combobox Multiselect component\n *\n * A searchable select input that supports selecting multiple options.\n *\n * @example\n * <ScalarComboboxMultiselect v-model=\"selected\" :options=\"options\">\n * <ScalarButton>Select items</ScalarButton>\n * </ScalarComboboxMultiselect>\n */\nexport default {}\n</script>\n\n<!-- prettier-ignore-attribute generic -->\n<script\n setup\n lang=\"ts\"\n generic=\" O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O> \">\nimport { ref } from 'vue'\n\nimport type { ScalarFloatingOptions } from '../ScalarFloating'\nimport ComboboxOptions from './ScalarComboboxOptions.vue'\nimport ComboboxPopover from './ScalarComboboxPopover.vue'\nimport type {\n ComboboxEmits,\n ComboboxSlots,\n FilterFunction,\n Option,\n OptionGroup,\n OptionsOrGroups,\n} from './types'\n\ndefineProps<\n {\n /** The options to display in the combobox */\n options: OptionsOrGroups<O, G>\n /** The placeholder text to display in the combobox */\n placeholder?: string\n /** A function to filter the options based on a query,\n * if not provided, the options will be filtered by option label\n *\n * @see {@link FilterFunction} for more information\n */\n filterFn?: FilterFunction<O, G>\n } & ScalarFloatingOptions\n>()\n\nconst emit = defineEmits<ComboboxEmits>()\n\nconst model = defineModel<O[]>({ default: [] })\n\ndefineSlots<ComboboxSlots<O, G>>()\n\n/** Propagate up the popover ref */\nconst comboboxPopoverRef = ref<typeof ComboboxPopover | null>(null)\n\ndefineExpose({ comboboxPopoverRef })\n</script>\n<template>\n <ComboboxPopover\n ref=\"comboboxPopoverRef\"\n :middleware=\"middleware\"\n :offset=\"offset\"\n :placement=\"placement ?? 'bottom-start'\"\n :resize=\"resize\"\n :target=\"target\"\n :teleport=\"teleport\">\n <template #default=\"{ open }\">\n <slot :open />\n </template>\n <template #popover=\"{ open }\">\n <ComboboxOptions\n v-if=\"options?.length\"\n v-model=\"model\"\n :filterFn\n multiselect\n :open\n :options\n :placeholder\n @add=\"emit('add')\">\n <!-- Pass through the combobox slots -->\n <template\n v-if=\"$slots.option\"\n #option=\"props\">\n <slot\n name=\"option\"\n v-bind=\"props\" />\n </template>\n <template\n v-if=\"$slots.group\"\n #group=\"props\">\n <slot\n name=\"group\"\n v-bind=\"props\" />\n </template>\n <template\n v-if=\"$slots.add\"\n #add=\"props\">\n <slot\n name=\"add\"\n v-bind=\"props\" />\n </template>\n </ComboboxOptions>\n </template>\n </ComboboxPopover>\n</template>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"ScalarComboboxMultiselect.vue.js","names":[],"sources":["../../../src/components/ScalarCombobox/ScalarComboboxMultiselect.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Combobox Multiselect component\n *\n * A searchable select input that supports selecting multiple options.\n *\n * @example\n * <ScalarComboboxMultiselect v-model=\"selected\" :options=\"options\">\n * <ScalarButton>Select items</ScalarButton>\n * </ScalarComboboxMultiselect>\n */\nexport default {}\n</script>\n\n<!-- prettier-ignore-attribute generic -->\n<script\n setup\n lang=\"ts\"\n generic=\" O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O> \">\nimport { ref } from 'vue'\n\nimport type { ScalarFloatingOptions } from '../ScalarFloating'\nimport ComboboxOptions from './ScalarComboboxOptions.vue'\nimport ComboboxPopover from './ScalarComboboxPopover.vue'\nimport type {\n ComboboxEmits,\n ComboboxSlots,\n FilterFunction,\n Option,\n OptionGroup,\n OptionsOrGroups,\n} from './types'\n\ndefineProps<\n {\n /** The options to display in the combobox */\n options: OptionsOrGroups<O, G>\n /** The placeholder text to display in the combobox */\n placeholder?: string\n /** A function to filter the options based on a query,\n * if not provided, the options will be filtered by option label\n *\n * @see {@link FilterFunction} for more information\n */\n filterFn?: FilterFunction<O, G>\n } & ScalarFloatingOptions\n>()\n\nconst emit = defineEmits<ComboboxEmits>()\n\nconst model = defineModel<O[]>({ default: () => [] })\n\ndefineSlots<ComboboxSlots<O, G>>()\n\n/** Propagate up the popover ref */\nconst comboboxPopoverRef = ref<typeof ComboboxPopover | null>(null)\n\ndefineExpose({ comboboxPopoverRef })\n</script>\n<template>\n <ComboboxPopover\n ref=\"comboboxPopoverRef\"\n :middleware=\"middleware\"\n :offset=\"offset\"\n :placement=\"placement ?? 'bottom-start'\"\n :resize=\"resize\"\n :target=\"target\"\n :teleport=\"teleport\">\n <template #default=\"{ open }\">\n <slot :open />\n </template>\n <template #popover=\"{ open }\">\n <ComboboxOptions\n v-if=\"options?.length\"\n v-model=\"model\"\n :filterFn\n multiselect\n :open\n :options\n :placeholder\n @add=\"emit('add')\">\n <!-- Pass through the combobox slots -->\n <template\n v-if=\"$slots.option\"\n #option=\"props\">\n <slot\n name=\"option\"\n v-bind=\"props\" />\n </template>\n <template\n v-if=\"$slots.group\"\n #group=\"props\">\n <slot\n name=\"group\"\n v-bind=\"props\" />\n </template>\n <template\n v-if=\"$slots.add\"\n #add=\"props\">\n <slot\n name=\"add\"\n v-bind=\"props\" />\n </template>\n </ComboboxOptions>\n </template>\n </ComboboxPopover>\n</template>\n"],"mappings":""}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import ScalarComboboxOptions_default from "./ScalarComboboxOptions.vue.js";
|
|
2
2
|
import ScalarComboboxPopover_default from "./ScalarComboboxPopover.vue.js";
|
|
3
3
|
import { createBlock, createCommentVNode, createSlots, defineComponent, guardReactiveProps, mergeModels, normalizeProps, openBlock, ref, renderSlot, useModel, withCtx } from "vue";
|
|
4
|
-
var ScalarComboboxMultiselect_vue_vue_type_script_setup_true_lang_default =
|
|
4
|
+
var ScalarComboboxMultiselect_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
5
5
|
__name: "ScalarComboboxMultiselect",
|
|
6
|
-
props:
|
|
6
|
+
props: /*@__PURE__*/ mergeModels({
|
|
7
7
|
options: {},
|
|
8
8
|
placeholder: {},
|
|
9
9
|
filterFn: { type: Function },
|
|
@@ -18,10 +18,10 @@ var ScalarComboboxMultiselect_vue_vue_type_script_setup_true_lang_default = /* @
|
|
|
18
18
|
middleware: {},
|
|
19
19
|
teleport: { type: [Boolean, String] }
|
|
20
20
|
}, {
|
|
21
|
-
"modelValue": { default: [] },
|
|
21
|
+
"modelValue": { default: () => [] },
|
|
22
22
|
"modelModifiers": {}
|
|
23
23
|
}),
|
|
24
|
-
emits:
|
|
24
|
+
emits: /*@__PURE__*/ mergeModels(["add"], ["update:modelValue"]),
|
|
25
25
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
26
26
|
const emit = __emit;
|
|
27
27
|
const model = useModel(__props, "modelValue");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarComboboxMultiselect.vue.script.js","names":["$slots"],"sources":["../../../src/components/ScalarCombobox/ScalarComboboxMultiselect.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Combobox Multiselect component\n *\n * A searchable select input that supports selecting multiple options.\n *\n * @example\n * <ScalarComboboxMultiselect v-model=\"selected\" :options=\"options\">\n * <ScalarButton>Select items</ScalarButton>\n * </ScalarComboboxMultiselect>\n */\nexport default {}\n</script>\n\n<!-- prettier-ignore-attribute generic -->\n<script\n setup\n lang=\"ts\"\n generic=\" O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O> \">\nimport { ref } from 'vue'\n\nimport type { ScalarFloatingOptions } from '../ScalarFloating'\nimport ComboboxOptions from './ScalarComboboxOptions.vue'\nimport ComboboxPopover from './ScalarComboboxPopover.vue'\nimport type {\n ComboboxEmits,\n ComboboxSlots,\n FilterFunction,\n Option,\n OptionGroup,\n OptionsOrGroups,\n} from './types'\n\ndefineProps<\n {\n /** The options to display in the combobox */\n options: OptionsOrGroups<O, G>\n /** The placeholder text to display in the combobox */\n placeholder?: string\n /** A function to filter the options based on a query,\n * if not provided, the options will be filtered by option label\n *\n * @see {@link FilterFunction} for more information\n */\n filterFn?: FilterFunction<O, G>\n } & ScalarFloatingOptions\n>()\n\nconst emit = defineEmits<ComboboxEmits>()\n\nconst model = defineModel<O[]>({ default: [] })\n\ndefineSlots<ComboboxSlots<O, G>>()\n\n/** Propagate up the popover ref */\nconst comboboxPopoverRef = ref<typeof ComboboxPopover | null>(null)\n\ndefineExpose({ comboboxPopoverRef })\n</script>\n<template>\n <ComboboxPopover\n ref=\"comboboxPopoverRef\"\n :middleware=\"middleware\"\n :offset=\"offset\"\n :placement=\"placement ?? 'bottom-start'\"\n :resize=\"resize\"\n :target=\"target\"\n :teleport=\"teleport\">\n <template #default=\"{ open }\">\n <slot :open />\n </template>\n <template #popover=\"{ open }\">\n <ComboboxOptions\n v-if=\"options?.length\"\n v-model=\"model\"\n :filterFn\n multiselect\n :open\n :options\n :placeholder\n @add=\"emit('add')\">\n <!-- Pass through the combobox slots -->\n <template\n v-if=\"$slots.option\"\n #option=\"props\">\n <slot\n name=\"option\"\n v-bind=\"props\" />\n </template>\n <template\n v-if=\"$slots.group\"\n #group=\"props\">\n <slot\n name=\"group\"\n v-bind=\"props\" />\n </template>\n <template\n v-if=\"$slots.add\"\n #add=\"props\">\n <slot\n name=\"add\"\n v-bind=\"props\" />\n </template>\n </ComboboxOptions>\n </template>\n </ComboboxPopover>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EAgDA,MAAM,OAAO;EAEb,MAAM,QAAQ,SAAgB,SAAA,
|
|
1
|
+
{"version":3,"file":"ScalarComboboxMultiselect.vue.script.js","names":["$slots"],"sources":["../../../src/components/ScalarCombobox/ScalarComboboxMultiselect.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Combobox Multiselect component\n *\n * A searchable select input that supports selecting multiple options.\n *\n * @example\n * <ScalarComboboxMultiselect v-model=\"selected\" :options=\"options\">\n * <ScalarButton>Select items</ScalarButton>\n * </ScalarComboboxMultiselect>\n */\nexport default {}\n</script>\n\n<!-- prettier-ignore-attribute generic -->\n<script\n setup\n lang=\"ts\"\n generic=\" O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O> \">\nimport { ref } from 'vue'\n\nimport type { ScalarFloatingOptions } from '../ScalarFloating'\nimport ComboboxOptions from './ScalarComboboxOptions.vue'\nimport ComboboxPopover from './ScalarComboboxPopover.vue'\nimport type {\n ComboboxEmits,\n ComboboxSlots,\n FilterFunction,\n Option,\n OptionGroup,\n OptionsOrGroups,\n} from './types'\n\ndefineProps<\n {\n /** The options to display in the combobox */\n options: OptionsOrGroups<O, G>\n /** The placeholder text to display in the combobox */\n placeholder?: string\n /** A function to filter the options based on a query,\n * if not provided, the options will be filtered by option label\n *\n * @see {@link FilterFunction} for more information\n */\n filterFn?: FilterFunction<O, G>\n } & ScalarFloatingOptions\n>()\n\nconst emit = defineEmits<ComboboxEmits>()\n\nconst model = defineModel<O[]>({ default: () => [] })\n\ndefineSlots<ComboboxSlots<O, G>>()\n\n/** Propagate up the popover ref */\nconst comboboxPopoverRef = ref<typeof ComboboxPopover | null>(null)\n\ndefineExpose({ comboboxPopoverRef })\n</script>\n<template>\n <ComboboxPopover\n ref=\"comboboxPopoverRef\"\n :middleware=\"middleware\"\n :offset=\"offset\"\n :placement=\"placement ?? 'bottom-start'\"\n :resize=\"resize\"\n :target=\"target\"\n :teleport=\"teleport\">\n <template #default=\"{ open }\">\n <slot :open />\n </template>\n <template #popover=\"{ open }\">\n <ComboboxOptions\n v-if=\"options?.length\"\n v-model=\"model\"\n :filterFn\n multiselect\n :open\n :options\n :placeholder\n @add=\"emit('add')\">\n <!-- Pass through the combobox slots -->\n <template\n v-if=\"$slots.option\"\n #option=\"props\">\n <slot\n name=\"option\"\n v-bind=\"props\" />\n </template>\n <template\n v-if=\"$slots.group\"\n #group=\"props\">\n <slot\n name=\"group\"\n v-bind=\"props\" />\n </template>\n <template\n v-if=\"$slots.add\"\n #add=\"props\">\n <slot\n name=\"add\"\n v-bind=\"props\" />\n </template>\n </ComboboxOptions>\n </template>\n </ComboboxPopover>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EAgDA,MAAM,OAAO;EAEb,MAAM,QAAQ,SAAgB,SAAA,YAAsB;;EAKpD,MAAM,qBAAqB,IAAmC,IAAI;EAElE,SAAa,EAAE,mBAAmB,CAAC;;uBAGjC,YA6CkB,+BAAA;aA5CZ;IAAJ,KAAI;IACH,YAAY,QAAA;IACZ,QAAQ,QAAA;IACR,WAAW,QAAA,aAAS;IACpB,QAAQ,QAAA;IACR,QAAQ,QAAA;IACR,UAAU,QAAA;;IACA,SAAO,SACF,EADM,WAAI,CACxB,WAAc,KAAA,QAAA,WAAA,EAAP,KAAI,CAAA,CAAA,CAAA;IAEF,SAAO,SAgCE,EAhCE,WAAI,CAEhB,QAAA,SAAS,UAAA,UAAA,GADjB,YA+BkB,+BAAA;;iBA7BP,MAAA;wEAAK,QAAA;KACb,UAAA,QAAA;KACD,aAAA;KACC;KACA,SAAA,QAAA;KACA,aAAA,QAAA;KACA,OAAG,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,KAAA;;KAGFA,KAAAA,OAAO,SAAA;YACZ;mBAAQ,UAAK,CACd,WAEmB,KAAA,QAAA,UAAA,eAAA,mBAAT,KAAK,CAAA,CAAA,CAAA,CAAA;;;KAGTA,KAAAA,OAAO,QAAA;YACZ;mBAAO,UAAK,CACb,WAEmB,KAAA,QAAA,SAAA,eAAA,mBAAT,KAAK,CAAA,CAAA,CAAA,CAAA;;;KAGTA,KAAAA,OAAO,MAAA;YACZ;mBAAK,UAAK,CACX,WAEmB,KAAA,QAAA,OAAA,eAAA,mBAAT,KAAK,CAAA,CAAA,CAAA,CAAA"}
|
|
@@ -2,7 +2,7 @@ import { cva, cx } from "@scalar/use-hooks/useBindCx";
|
|
|
2
2
|
import { createElementBlock, defineComponent, normalizeClass, openBlock, renderSlot, unref } from "vue";
|
|
3
3
|
//#region src/components/ScalarCombobox/ScalarComboboxOption.vue?vue&type=script&setup=true&lang.ts
|
|
4
4
|
var _hoisted_1 = ["aria-selected"];
|
|
5
|
-
var ScalarComboboxOption_vue_vue_type_script_setup_true_lang_default =
|
|
5
|
+
var ScalarComboboxOption_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
6
6
|
__name: "ScalarComboboxOption",
|
|
7
7
|
props: {
|
|
8
8
|
active: { type: Boolean },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarComboboxOption.vue.script.js","names":[],"sources":["../../../src/components/ScalarCombobox/ScalarComboboxOption.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Combobox Option component\n *\n * A single selectable option within a combobox list.\n * Handles active and selected states.\n *\n * @example\n * <ScalarComboboxOption :active=\"true\" :selected=\"false\">\n * Option Label\n * </ScalarComboboxOption>\n */\nexport default {}\n</script>\n\n<script setup lang=\"ts\">\nimport { cva, cx } from '@scalar/use-hooks/useBindCx'\n\nconst { active, selected } = defineProps<{\n active?: boolean\n selected?: boolean\n}>()\n\nconst variants = cva({\n base: [\n // Group\n 'group/item',\n // Layout\n 'flex min-w-0 items-center gap-1.5 rounded px-2 py-1.5 text-left',\n // Text / background style\n 'truncate bg-transparent text-c-1',\n // Interaction\n 'cursor-pointer hover:bg-b-2',\n ],\n variants: {\n selected: { true: 'text-c-1' },\n active: { true: 'bg-b-2' },\n },\n})\n</script>\n<template>\n <li\n :aria-selected=\"selected\"\n :class=\"cx(variants({ active, selected }))\"\n role=\"option\"\n tabindex=\"-1\">\n <slot\n :active\n :selected />\n </li>\n</template>\n"],"mappings":";;;;;;;;;;;EAuBA,MAAM,WAAW,IAAI;GACnB,MAAM;IAEJ;IAEA;IAEA;IAEA;
|
|
1
|
+
{"version":3,"file":"ScalarComboboxOption.vue.script.js","names":[],"sources":["../../../src/components/ScalarCombobox/ScalarComboboxOption.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Combobox Option component\n *\n * A single selectable option within a combobox list.\n * Handles active and selected states.\n *\n * @example\n * <ScalarComboboxOption :active=\"true\" :selected=\"false\">\n * Option Label\n * </ScalarComboboxOption>\n */\nexport default {}\n</script>\n\n<script setup lang=\"ts\">\nimport { cva, cx } from '@scalar/use-hooks/useBindCx'\n\nconst { active, selected } = defineProps<{\n active?: boolean\n selected?: boolean\n}>()\n\nconst variants = cva({\n base: [\n // Group\n 'group/item',\n // Layout\n 'flex min-w-0 items-center gap-1.5 rounded px-2 py-1.5 text-left',\n // Text / background style\n 'truncate bg-transparent text-c-1',\n // Interaction\n 'cursor-pointer hover:bg-b-2',\n ],\n variants: {\n selected: { true: 'text-c-1' },\n active: { true: 'bg-b-2' },\n },\n})\n</script>\n<template>\n <li\n :aria-selected=\"selected\"\n :class=\"cx(variants({ active, selected }))\"\n role=\"option\"\n tabindex=\"-1\">\n <slot\n :active\n :selected />\n </li>\n</template>\n"],"mappings":";;;;;;;;;;;EAuBA,MAAM,WAAW,IAAI;GACnB,MAAM;IAEJ;IAEA;IAEA;IAEA;GACF;GACA,UAAU;IACR,UAAU,EAAE,MAAM,WAAW;IAC7B,QAAQ,EAAE,MAAM,SAAS;GAC3B;EACF,CAAC;;uBAGC,mBAQK,MAAA;IAPF,iBAAe,QAAA;IACf,OAAK,eAAE,MAAA,EAAA,CAAE,CAAC,MAAA,QAAA,CAAQ,CAAA;KAAA,QAAG,QAAA;KAAM,UAAE,QAAA;IAAQ,CAAA,CAAA,CAAA;IACtC,MAAK;IACL,UAAS;OACT,WAEc,KAAA,QAAA,WAAA;IADX,QAAA,QAAA;IACA,UAAA,QAAA"}
|
|
@@ -6,7 +6,7 @@ var _hoisted_1 = [
|
|
|
6
6
|
"role"
|
|
7
7
|
];
|
|
8
8
|
var _hoisted_2 = ["id"];
|
|
9
|
-
var ScalarComboboxOptionGroup_vue_vue_type_script_setup_true_lang_default =
|
|
9
|
+
var ScalarComboboxOptionGroup_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
10
10
|
__name: "ScalarComboboxOptionGroup",
|
|
11
11
|
props: {
|
|
12
12
|
id: { default: () => useId() },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarComboboxOptionGroup.vue.script.js","names":[],"sources":["../../../src/components/ScalarCombobox/ScalarComboboxOptionGroup.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Combobox Option Group component\n *\n * Groups related options under an optional label within a combobox.\n *\n * @example\n * <ScalarComboboxOptionGroup>\n * <template #label>Group Name</template>\n * <!-- options -->\n * </ScalarComboboxOptionGroup>\n */\nexport default {}\n</script>\n\n<script setup lang=\"ts\">\nimport { useId } from 'vue'\n\nconst { id = useId(), hidden = false } = defineProps<{\n id?: string\n hidden?: boolean\n}>()\n</script>\n<template>\n <div\n :id=\"id\"\n :aria-labelledby=\"id ? `${id}-label` : undefined\"\n class=\"contents\"\n :role=\"hidden ? undefined : 'group'\">\n <div\n v-if=\"!hidden\"\n :id=\"`${id}-label`\"\n class=\"min-w-0 truncate px-2.5 py-1.5 text-c-2\">\n <slot name=\"label\" />\n </div>\n <slot />\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;uBAwBE,mBAYM,OAAA;IAXH,IAAI,QAAA;IACJ,mBAAiB,QAAA,KAAE,GAAM,QAAA,GAAE,UAAW,KAAA;IACvC,OAAM;IACL,MAAM,QAAA,SAAS,KAAA,IAAS;QAEhB,QAAA,UAAA,
|
|
1
|
+
{"version":3,"file":"ScalarComboboxOptionGroup.vue.script.js","names":[],"sources":["../../../src/components/ScalarCombobox/ScalarComboboxOptionGroup.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Combobox Option Group component\n *\n * Groups related options under an optional label within a combobox.\n *\n * @example\n * <ScalarComboboxOptionGroup>\n * <template #label>Group Name</template>\n * <!-- options -->\n * </ScalarComboboxOptionGroup>\n */\nexport default {}\n</script>\n\n<script setup lang=\"ts\">\nimport { useId } from 'vue'\n\nconst { id = useId(), hidden = false } = defineProps<{\n id?: string\n hidden?: boolean\n}>()\n</script>\n<template>\n <div\n :id=\"id\"\n :aria-labelledby=\"id ? `${id}-label` : undefined\"\n class=\"contents\"\n :role=\"hidden ? undefined : 'group'\">\n <div\n v-if=\"!hidden\"\n :id=\"`${id}-label`\"\n class=\"min-w-0 truncate px-2.5 py-1.5 text-c-2\">\n <slot name=\"label\" />\n </div>\n <slot />\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;uBAwBE,mBAYM,OAAA;IAXH,IAAI,QAAA;IACJ,mBAAiB,QAAA,KAAE,GAAM,QAAA,GAAE,UAAW,KAAA;IACvC,OAAM;IACL,MAAM,QAAA,SAAS,KAAA,IAAS;QAEhB,QAAA,UAAA,UAAA,GADT,mBAKM,OAAA;;IAHH,IAAE,GAAK,QAAA,GAAE;IACV,OAAM;OACN,WAAqB,KAAA,QAAA,OAAA,CAAA,GAAA,GAAA,UAAA,KAAA,mBAAA,IAAA,IAAA,GAEvB,WAAQ,KAAA,QAAA,SAAA,CAAA,GAAA,GAAA,UAAA"}
|
|
@@ -38,7 +38,7 @@ declare const __VLS_export: <O extends Option = Option, G extends OptionGroup<O>
|
|
|
38
38
|
slots: Omit<ComboboxSlots<O, G>, "default">;
|
|
39
39
|
emit: ((evt: "add") => void) & ((event: "update:modelValue", value: O[]) => void);
|
|
40
40
|
}>) => import("vue").VNode & {
|
|
41
|
-
__ctx?: Awaited<typeof __VLS_setup
|
|
41
|
+
__ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
|
|
42
42
|
};
|
|
43
43
|
type __VLS_PrettifyLocal<T> = (T extends any ? {
|
|
44
44
|
[K in keyof T]: T[K];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarComboboxOptions.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarCombobox/ScalarComboboxOptions.vue"],"names":[],"mappings":"AAgTA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,eAAe,EAErB,MAAM,SAAS,CAAA;AAGhB;;;;;;;;GAQG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY,GAAK,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAC1F,aAAa,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAC9D,YAAY,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAC3G,gBAAgB,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAClE;
|
|
1
|
+
{"version":3,"file":"ScalarComboboxOptions.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarCombobox/ScalarComboboxOptions.vue"],"names":[],"mappings":"AAgTA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,eAAe,EAErB,MAAM,SAAS,CAAA;AAGhB;;;;;;;;GAQG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY,GAAK,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAC1F,aAAa,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAC9D,YAAY,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAC3G,gBAAgB,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAClE;WAueO,OAAO,KAAK,EAAE,WAAW,GAAG,mBAAmB,CAAC;QAretD,6CAA6C;iBACpC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9B,sDAAsD;sBACxC,MAAM;QACpB;;;;;WAKG;mBACQ,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/B,qEAAqE;sBACvD,OAAO;;qBAqKV,CAAC,EAAE;;;;KAoT2E,CAAC,GAAG,CAAC,OAAO,UAAU,SAAS;QAAE,oBAAoB,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,CAAC,GAAG,EAAE,CAAC;YAC5J,CAAC,OAAO,EAAE,EAAE,KAAK,IAAI;WACtB,GAAG;;UAEJ,2EAAoC;EAEvC,KACQ,OAAO,KAAK,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAA;CAAI,CAAC;AACzF,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,CAAC,GAAG,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarComboboxOptions.vue.js","names":[],"sources":["../../../src/components/ScalarCombobox/ScalarComboboxOptions.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Combobox Options component\n *\n * Renders the searchable option list for a combobox, including\n * filtering, keyboard navigation, and an optional \"add new\" action.\n *\n * @example\n * <ScalarComboboxOptions v-model=\"selected\" :options=\"options\" />\n */\nexport default {}\n</script>\n\n<!-- prettier-ignore-attribute generic -->\n<script\n setup\n lang=\"ts\"\n generic=\"O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O>\">\nimport { filterByOptionLabel } from '@/components/ScalarCombobox/filter-by-option-label'\nimport { ScalarIconMagnifyingGlass, ScalarIconPlus } from '@scalar/icons'\nimport { computed, onMounted, ref, useId, watch } from 'vue'\n\nimport { ScalarListboxCheckbox } from '../ScalarListbox'\nimport ComboboxOption from './ScalarComboboxOption.vue'\nimport ComboboxOptionGroup from './ScalarComboboxOptionGroup.vue'\nimport {\n type ComboboxEmits,\n type ComboboxSlots,\n type FilterFunction,\n type Option,\n type OptionGroup,\n type OptionsOrGroups,\n isGroups,\n} from './types'\n\nconst {\n options: optionsOrGroups,\n placeholder,\n filterFn = filterByOptionLabel,\n multiselect,\n} = defineProps<{\n /** The options to display in the combobox */\n options: OptionsOrGroups<O, G>\n /** The placeholder text to display in the combobox */\n placeholder?: string\n /**\n * A function to filter the options based on a query,\n * if not provided, the options will be filtered by option label\n *\n * @see {@link FilterFunction} for more information\n */\n filterFn?: FilterFunction<O, G>\n /** Whether the combobox is in multiselect mode, defaults to false */\n multiselect?: boolean\n}>()\n\nconst emit = defineEmits<ComboboxEmits>()\n\nconst model = defineModel<O[]>({ default: [] })\n\nconst slots = defineSlots<Omit<ComboboxSlots<O, G>, 'default'>>()\n\ndefineOptions({ inheritAttrs: false })\n\n/** A unique ID for the combobox */\nconst id = `scalar-combobox-items-${useId()}`\n\n/** A static option entry for the \"Add a new option\" option */\nconst addOption: Option = { id: `${useId()}-add`, label: 'Add a new option' }\n\n/** Generate a unique ID for an option */\nfunction getOptionId(option: Option) {\n return `${id}-${option.id}`\n}\n\n/** A flat list of all options */\nconst options = computed<O[]>(() =>\n isGroups(optionsOrGroups)\n ? optionsOrGroups.flatMap((group) => group.options)\n : optionsOrGroups,\n)\n\n/** An list of all groups */\nconst groups = computed<G[]>(\n () =>\n isGroups(optionsOrGroups)\n ? optionsOrGroups // G extends OptionGroup<O>\n : /*\n We know G is an unextended OptionGroup<O> here because of the\n structure of the component props so we can cast it to G\n */\n [{ label: '', options: optionsOrGroups } as G], // G is OptionGroup<O>\n)\n\nconst query = ref<string>('')\nconst activeRef = ref<Option | undefined>(model.value?.[0] ?? options.value[0])\n\n// Clear the query on open and close\nonMounted(() => {\n // Clear the query\n query.value = ''\n\n // Set the active option to the selected option or the first option\n activeRef.value = model.value?.[0] ?? options.value[0]\n\n // Scroll to the selected option\n const selected = model.value[0]\n if (selected) {\n setTimeout(() => {\n const value = model.value[0]\n if (!value) {\n return\n }\n\n document\n ?.getElementById(getOptionId(value))\n ?.scrollIntoView({ block: 'nearest' })\n }, 10)\n }\n})\n\n// Set the top option as active when searching\nwatch(\n () => query.value,\n () => (activeRef.value = withAdd.value[0]),\n)\n\n/** The filtered list of options */\nconst filtered = computed<O[]>(() =>\n filterFn(query.value, options.value, groups.value),\n)\n\n/** The list of filtered options with the \"Add a new option\" option */\nconst withAdd = computed<Option[]>(() =>\n slots.add ? [...filtered.value, addOption] : filtered.value,\n)\n\nfunction toggleSelected(option: Option | undefined) {\n if (!option) {\n return\n }\n\n if (option.id === addOption.id) {\n addNew()\n return\n }\n\n if (multiselect) {\n // Remove from selection list\n if (model.value.some((o) => o.id === option.id)) {\n model.value = model.value.filter((o) => o.id !== option.id)\n }\n // Add to selection list\n else {\n model.value = [\n ...model.value,\n options.value.find((o) => o.id === option.id)!,\n ]\n }\n } else {\n // Set selection for single select mode\n model.value = [options.value.find((o) => o.id === option.id)!]\n }\n}\n\nfunction moveActive(dir: 1 | -1) {\n const list = withAdd.value\n\n // Find active index\n const activeIdx = list.findIndex(\n (option) => option.id === activeRef.value?.id,\n )\n\n // Calculate next index and exit if it's out of bounds\n const nextIdx = activeIdx + dir\n\n if (nextIdx < 0 || nextIdx > list.length - 1) {\n return\n }\n\n activeRef.value = list[nextIdx]! // We know it's in bounds from the check above\n\n if (!activeRef.value) {\n return\n }\n\n // Scroll to the active option\n document?.getElementById(getOptionId(activeRef.value))?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n })\n}\n\nfunction addNew() {\n emit('add')\n query.value = ''\n}\n\n// Manual autofocus for the input\nconst input = ref<HTMLInputElement | null>(null)\n\n// This must be a setTimeout to ensure there is no scroll jump. nextTick does not work here.\nonMounted(() => setTimeout(() => input.value?.focus(), 0))\n</script>\n<template>\n <div class=\"relative flex\">\n <ScalarIconMagnifyingGlass\n class=\"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-c-3 size-4\" />\n <input\n ref=\"input\"\n v-model=\"query\"\n :aria-activedescendant=\"activeRef ? getOptionId(activeRef) : undefined\"\n aria-autocomplete=\"list\"\n :aria-controls=\"id\"\n class=\"min-w-0 flex-1 rounded border-0 py-2.5 pl-8 pr-3 leading-none text-c-1 -outline-offset-1\"\n data-1p-ignore\n :placeholder\n role=\"combobox\"\n tabindex=\"0\"\n type=\"text\"\n @keydown.down.prevent=\"moveActive(1)\"\n @keydown.enter.prevent=\"activeRef && toggleSelected(activeRef)\"\n @keydown.up.prevent=\"moveActive(-1)\" />\n </div>\n <ul\n v-show=\"filtered.length || slots.add\"\n :id=\"id\"\n :aria-multiselectable=\"multiselect\"\n class=\"border-t p-0.75 custom-scroll overscroll-contain flex-1 min-h-0\"\n role=\"listbox\"\n tabindex=\"-1\">\n <ComboboxOptionGroup\n v-for=\"(group, i) in groups\"\n :id=\"`${id}-group-${i}`\"\n :key=\"i\"\n :hidden=\"\n // Only show the group label if there are some results\n !group.options.some((o) => filtered.some((f) => f.id === o.id)) ||\n // And it has a label\n !group.label\n \">\n <template #label>\n <slot\n v-if=\"$slots.group\"\n :group\n name=\"group\" />\n <template v-else>\n {{ group.label }}\n </template>\n </template>\n <template\n v-for=\"option in filtered\"\n :key=\"option.id\">\n <ComboboxOption\n v-if=\"group.options.some((o) => o.id === option.id)\"\n :id=\"getOptionId(option)\"\n v-slot=\"{ active, selected }\"\n :active=\"activeRef?.id === option.id\"\n :selected=\"model.some((o) => o.id === option.id)\"\n @click=\"toggleSelected(option)\"\n @mousedown.prevent\n @mouseenter=\"activeRef = option\">\n <slot\n v-if=\"$slots.option\"\n :active\n name=\"option\"\n :option\n :selected />\n <template v-else>\n <ScalarListboxCheckbox\n :multiselect\n :selected=\"model.some((o) => o.id === option.id)\" />\n <span class=\"inline-block min-w-0 flex-1 truncate text-c-1\">\n {{ option.label }}\n </span>\n </template>\n </ComboboxOption>\n </template>\n </ComboboxOptionGroup>\n <ComboboxOption\n v-if=\"slots.add\"\n :id=\"getOptionId(addOption)\"\n v-slot=\"{ active }\"\n :active=\"activeRef?.id === addOption.id\"\n @click=\"addNew\"\n @mousedown.prevent\n @mouseenter=\"activeRef = addOption\">\n <ScalarIconPlus class=\"size-4 p-px\" />\n <slot\n :active\n name=\"add\" />\n </ComboboxOption>\n </ul>\n</template>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"ScalarComboboxOptions.vue.js","names":[],"sources":["../../../src/components/ScalarCombobox/ScalarComboboxOptions.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Combobox Options component\n *\n * Renders the searchable option list for a combobox, including\n * filtering, keyboard navigation, and an optional \"add new\" action.\n *\n * @example\n * <ScalarComboboxOptions v-model=\"selected\" :options=\"options\" />\n */\nexport default {}\n</script>\n\n<!-- prettier-ignore-attribute generic -->\n<script\n setup\n lang=\"ts\"\n generic=\"O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O>\">\nimport { filterByOptionLabel } from '@/components/ScalarCombobox/filter-by-option-label'\nimport { ScalarIconMagnifyingGlass, ScalarIconPlus } from '@scalar/icons'\nimport { computed, onMounted, ref, useId, watch } from 'vue'\n\nimport { ScalarListboxCheckbox } from '../ScalarListbox'\nimport ComboboxOption from './ScalarComboboxOption.vue'\nimport ComboboxOptionGroup from './ScalarComboboxOptionGroup.vue'\nimport {\n type ComboboxEmits,\n type ComboboxSlots,\n type FilterFunction,\n type Option,\n type OptionGroup,\n type OptionsOrGroups,\n isGroups,\n} from './types'\n\nconst {\n options: optionsOrGroups,\n placeholder,\n filterFn = filterByOptionLabel,\n multiselect,\n} = defineProps<{\n /** The options to display in the combobox */\n options: OptionsOrGroups<O, G>\n /** The placeholder text to display in the combobox */\n placeholder?: string\n /**\n * A function to filter the options based on a query,\n * if not provided, the options will be filtered by option label\n *\n * @see {@link FilterFunction} for more information\n */\n filterFn?: FilterFunction<O, G>\n /** Whether the combobox is in multiselect mode, defaults to false */\n multiselect?: boolean\n}>()\n\nconst emit = defineEmits<ComboboxEmits>()\n\nconst model = defineModel<O[]>({ default: () => [] })\n\nconst slots = defineSlots<Omit<ComboboxSlots<O, G>, 'default'>>()\n\ndefineOptions({ inheritAttrs: false })\n\n/** A unique ID for the combobox */\nconst id = `scalar-combobox-items-${useId()}`\n\n/** A static option entry for the \"Add a new option\" option */\nconst addOption: Option = { id: `${useId()}-add`, label: 'Add a new option' }\n\n/** Generate a unique ID for an option */\nfunction getOptionId(option: Option) {\n return `${id}-${option.id}`\n}\n\n/** A flat list of all options */\nconst options = computed<O[]>(() =>\n isGroups(optionsOrGroups)\n ? optionsOrGroups.flatMap((group) => group.options)\n : optionsOrGroups,\n)\n\n/** An list of all groups */\nconst groups = computed<G[]>(\n () =>\n isGroups(optionsOrGroups)\n ? optionsOrGroups // G extends OptionGroup<O>\n : /*\n We know G is an unextended OptionGroup<O> here because of the\n structure of the component props so we can cast it to G\n */\n [{ label: '', options: optionsOrGroups } as G], // G is OptionGroup<O>\n)\n\nconst query = ref<string>('')\nconst activeRef = ref<Option | undefined>(model.value?.[0] ?? options.value[0])\n\n// Clear the query on open and close\nonMounted(() => {\n // Clear the query\n query.value = ''\n\n // Set the active option to the selected option or the first option\n activeRef.value = model.value?.[0] ?? options.value[0]\n\n // Scroll to the selected option\n const selected = model.value[0]\n if (selected) {\n setTimeout(() => {\n const value = model.value[0]\n if (!value) {\n return\n }\n\n document\n ?.getElementById(getOptionId(value))\n ?.scrollIntoView({ block: 'nearest' })\n }, 10)\n }\n})\n\n// Set the top option as active when searching\nwatch(\n () => query.value,\n () => (activeRef.value = withAdd.value[0]),\n)\n\n/** The filtered list of options */\nconst filtered = computed<O[]>(() =>\n filterFn(query.value, options.value, groups.value),\n)\n\n/** The list of filtered options with the \"Add a new option\" option */\nconst withAdd = computed<Option[]>(() =>\n slots.add ? [...filtered.value, addOption] : filtered.value,\n)\n\nfunction toggleSelected(option: Option | undefined) {\n if (!option) {\n return\n }\n\n if (option.id === addOption.id) {\n addNew()\n return\n }\n\n if (multiselect) {\n // Remove from selection list\n if (model.value.some((o) => o.id === option.id)) {\n model.value = model.value.filter((o) => o.id !== option.id)\n }\n // Add to selection list\n else {\n model.value = [\n ...model.value,\n options.value.find((o) => o.id === option.id)!,\n ]\n }\n } else {\n // Set selection for single select mode\n model.value = [options.value.find((o) => o.id === option.id)!]\n }\n}\n\nfunction moveActive(dir: 1 | -1) {\n const list = withAdd.value\n\n // Find active index\n const activeIdx = list.findIndex(\n (option) => option.id === activeRef.value?.id,\n )\n\n // Calculate next index and exit if it's out of bounds\n const nextIdx = activeIdx + dir\n\n if (nextIdx < 0 || nextIdx > list.length - 1) {\n return\n }\n\n activeRef.value = list[nextIdx]! // We know it's in bounds from the check above\n\n if (!activeRef.value) {\n return\n }\n\n // Scroll to the active option\n document?.getElementById(getOptionId(activeRef.value))?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n })\n}\n\nfunction addNew() {\n emit('add')\n query.value = ''\n}\n\n// Manual autofocus for the input\nconst input = ref<HTMLInputElement | null>(null)\n\n// This must be a setTimeout to ensure there is no scroll jump. nextTick does not work here.\nonMounted(() => setTimeout(() => input.value?.focus(), 0))\n</script>\n<template>\n <div class=\"relative flex\">\n <ScalarIconMagnifyingGlass\n class=\"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-c-3 size-4\" />\n <input\n ref=\"input\"\n v-model=\"query\"\n :aria-activedescendant=\"activeRef ? getOptionId(activeRef) : undefined\"\n aria-autocomplete=\"list\"\n :aria-controls=\"id\"\n class=\"min-w-0 flex-1 rounded border-0 py-2.5 pl-8 pr-3 leading-none text-c-1 -outline-offset-1\"\n data-1p-ignore\n :placeholder\n role=\"combobox\"\n tabindex=\"0\"\n type=\"text\"\n @keydown.down.prevent=\"moveActive(1)\"\n @keydown.enter.prevent=\"activeRef && toggleSelected(activeRef)\"\n @keydown.up.prevent=\"moveActive(-1)\" />\n </div>\n <ul\n v-show=\"filtered.length || slots.add\"\n :id=\"id\"\n :aria-multiselectable=\"multiselect\"\n class=\"border-t p-0.75 custom-scroll overscroll-contain flex-1 min-h-0\"\n role=\"listbox\"\n tabindex=\"-1\">\n <ComboboxOptionGroup\n v-for=\"(group, i) in groups\"\n :id=\"`${id}-group-${i}`\"\n :key=\"i\"\n :hidden=\"\n // Only show the group label if there are some results\n !group.options.some((o) => filtered.some((f) => f.id === o.id)) ||\n // And it has a label\n !group.label\n \">\n <template #label>\n <slot\n v-if=\"$slots.group\"\n :group\n name=\"group\" />\n <template v-else>\n {{ group.label }}\n </template>\n </template>\n <template\n v-for=\"option in filtered\"\n :key=\"option.id\">\n <ComboboxOption\n v-if=\"group.options.some((o) => o.id === option.id)\"\n :id=\"getOptionId(option)\"\n v-slot=\"{ active, selected }\"\n :active=\"activeRef?.id === option.id\"\n :selected=\"model.some((o) => o.id === option.id)\"\n @click=\"toggleSelected(option)\"\n @mousedown.prevent\n @mouseenter=\"activeRef = option\">\n <slot\n v-if=\"$slots.option\"\n :active\n name=\"option\"\n :option\n :selected />\n <template v-else>\n <ScalarListboxCheckbox\n :multiselect\n :selected=\"model.some((o) => o.id === option.id)\" />\n <span class=\"inline-block min-w-0 flex-1 truncate text-c-1\">\n {{ option.label }}\n </span>\n </template>\n </ComboboxOption>\n </template>\n </ComboboxOptionGroup>\n <ComboboxOption\n v-if=\"slots.add\"\n :id=\"getOptionId(addOption)\"\n v-slot=\"{ active }\"\n :active=\"activeRef?.id === addOption.id\"\n @click=\"addNew\"\n @mousedown.prevent\n @mouseenter=\"activeRef = addOption\">\n <ScalarIconPlus class=\"size-4 p-px\" />\n <slot\n :active\n name=\"add\" />\n </ComboboxOption>\n </ul>\n</template>\n"],"mappings":""}
|
|
@@ -10,10 +10,10 @@ var _hoisted_1 = { class: "relative flex" };
|
|
|
10
10
|
var _hoisted_2 = ["aria-activedescendant", "placeholder"];
|
|
11
11
|
var _hoisted_3 = ["aria-multiselectable"];
|
|
12
12
|
var _hoisted_4 = { class: "inline-block min-w-0 flex-1 truncate text-c-1" };
|
|
13
|
-
var ScalarComboboxOptions_vue_vue_type_script_setup_true_lang_default =
|
|
13
|
+
var ScalarComboboxOptions_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
14
14
|
inheritAttrs: false,
|
|
15
15
|
__name: "ScalarComboboxOptions",
|
|
16
|
-
props:
|
|
16
|
+
props: /*@__PURE__*/ mergeModels({
|
|
17
17
|
options: {},
|
|
18
18
|
placeholder: {},
|
|
19
19
|
filterFn: {
|
|
@@ -22,10 +22,10 @@ var ScalarComboboxOptions_vue_vue_type_script_setup_true_lang_default = /* @__PU
|
|
|
22
22
|
},
|
|
23
23
|
multiselect: { type: Boolean }
|
|
24
24
|
}, {
|
|
25
|
-
"modelValue": { default: [] },
|
|
25
|
+
"modelValue": { default: () => [] },
|
|
26
26
|
"modelModifiers": {}
|
|
27
27
|
}),
|
|
28
|
-
emits:
|
|
28
|
+
emits: /*@__PURE__*/ mergeModels(["add"], ["update:modelValue"]),
|
|
29
29
|
setup(__props, { emit: __emit }) {
|
|
30
30
|
const emit = __emit;
|
|
31
31
|
const model = useModel(__props, "modelValue");
|
|
@@ -122,10 +122,7 @@ var ScalarComboboxOptions_vue_vue_type_script_setup_true_lang_default = /* @__PU
|
|
|
122
122
|
key: i,
|
|
123
123
|
hidden: !group.options.some((o) => filtered.value.some((f) => f.id === o.id)) || !group.label
|
|
124
124
|
}, {
|
|
125
|
-
label: withCtx(() => [_ctx.$slots.group ? renderSlot(_ctx.$slots, "group", {
|
|
126
|
-
key: 0,
|
|
127
|
-
group
|
|
128
|
-
}) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode(toDisplayString(group.label), 1)], 64))]),
|
|
125
|
+
label: withCtx(() => [_ctx.$slots.group ? renderSlot(_ctx.$slots, "group", { group }, void 0, void 0, 0) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode(toDisplayString(group.label), 1)], 64))]),
|
|
129
126
|
default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(filtered.value, (option) => {
|
|
130
127
|
return openBlock(), createElementBlock(Fragment, { key: option.id }, [group.options.some((o) => o.id === option.id) ? (openBlock(), createBlock(ScalarComboboxOption_default, {
|
|
131
128
|
key: 0,
|
|
@@ -137,11 +134,10 @@ var ScalarComboboxOptions_vue_vue_type_script_setup_true_lang_default = /* @__PU
|
|
|
137
134
|
onMouseenter: ($event) => activeRef.value = option
|
|
138
135
|
}, {
|
|
139
136
|
default: withCtx(({ active, selected }) => [_ctx.$slots.option ? renderSlot(_ctx.$slots, "option", {
|
|
140
|
-
key: 0,
|
|
141
137
|
active,
|
|
142
138
|
option,
|
|
143
139
|
selected
|
|
144
|
-
}) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createVNode(unref(ScalarListboxCheckbox_default), {
|
|
140
|
+
}, void 0, void 0, 0) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createVNode(unref(ScalarListboxCheckbox_default), {
|
|
145
141
|
multiselect: __props.multiselect,
|
|
146
142
|
selected: model.value.some((o) => o.id === option.id)
|
|
147
143
|
}, null, 8, ["multiselect", "selected"]), createElementVNode("span", _hoisted_4, toDisplayString(option.label), 1)], 64))]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarComboboxOptions.vue.script.js","names":["$slots"],"sources":["../../../src/components/ScalarCombobox/ScalarComboboxOptions.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Combobox Options component\n *\n * Renders the searchable option list for a combobox, including\n * filtering, keyboard navigation, and an optional \"add new\" action.\n *\n * @example\n * <ScalarComboboxOptions v-model=\"selected\" :options=\"options\" />\n */\nexport default {}\n</script>\n\n<!-- prettier-ignore-attribute generic -->\n<script\n setup\n lang=\"ts\"\n generic=\"O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O>\">\nimport { filterByOptionLabel } from '@/components/ScalarCombobox/filter-by-option-label'\nimport { ScalarIconMagnifyingGlass, ScalarIconPlus } from '@scalar/icons'\nimport { computed, onMounted, ref, useId, watch } from 'vue'\n\nimport { ScalarListboxCheckbox } from '../ScalarListbox'\nimport ComboboxOption from './ScalarComboboxOption.vue'\nimport ComboboxOptionGroup from './ScalarComboboxOptionGroup.vue'\nimport {\n type ComboboxEmits,\n type ComboboxSlots,\n type FilterFunction,\n type Option,\n type OptionGroup,\n type OptionsOrGroups,\n isGroups,\n} from './types'\n\nconst {\n options: optionsOrGroups,\n placeholder,\n filterFn = filterByOptionLabel,\n multiselect,\n} = defineProps<{\n /** The options to display in the combobox */\n options: OptionsOrGroups<O, G>\n /** The placeholder text to display in the combobox */\n placeholder?: string\n /**\n * A function to filter the options based on a query,\n * if not provided, the options will be filtered by option label\n *\n * @see {@link FilterFunction} for more information\n */\n filterFn?: FilterFunction<O, G>\n /** Whether the combobox is in multiselect mode, defaults to false */\n multiselect?: boolean\n}>()\n\nconst emit = defineEmits<ComboboxEmits>()\n\nconst model = defineModel<O[]>({ default: [] })\n\nconst slots = defineSlots<Omit<ComboboxSlots<O, G>, 'default'>>()\n\ndefineOptions({ inheritAttrs: false })\n\n/** A unique ID for the combobox */\nconst id = `scalar-combobox-items-${useId()}`\n\n/** A static option entry for the \"Add a new option\" option */\nconst addOption: Option = { id: `${useId()}-add`, label: 'Add a new option' }\n\n/** Generate a unique ID for an option */\nfunction getOptionId(option: Option) {\n return `${id}-${option.id}`\n}\n\n/** A flat list of all options */\nconst options = computed<O[]>(() =>\n isGroups(optionsOrGroups)\n ? optionsOrGroups.flatMap((group) => group.options)\n : optionsOrGroups,\n)\n\n/** An list of all groups */\nconst groups = computed<G[]>(\n () =>\n isGroups(optionsOrGroups)\n ? optionsOrGroups // G extends OptionGroup<O>\n : /*\n We know G is an unextended OptionGroup<O> here because of the\n structure of the component props so we can cast it to G\n */\n [{ label: '', options: optionsOrGroups } as G], // G is OptionGroup<O>\n)\n\nconst query = ref<string>('')\nconst activeRef = ref<Option | undefined>(model.value?.[0] ?? options.value[0])\n\n// Clear the query on open and close\nonMounted(() => {\n // Clear the query\n query.value = ''\n\n // Set the active option to the selected option or the first option\n activeRef.value = model.value?.[0] ?? options.value[0]\n\n // Scroll to the selected option\n const selected = model.value[0]\n if (selected) {\n setTimeout(() => {\n const value = model.value[0]\n if (!value) {\n return\n }\n\n document\n ?.getElementById(getOptionId(value))\n ?.scrollIntoView({ block: 'nearest' })\n }, 10)\n }\n})\n\n// Set the top option as active when searching\nwatch(\n () => query.value,\n () => (activeRef.value = withAdd.value[0]),\n)\n\n/** The filtered list of options */\nconst filtered = computed<O[]>(() =>\n filterFn(query.value, options.value, groups.value),\n)\n\n/** The list of filtered options with the \"Add a new option\" option */\nconst withAdd = computed<Option[]>(() =>\n slots.add ? [...filtered.value, addOption] : filtered.value,\n)\n\nfunction toggleSelected(option: Option | undefined) {\n if (!option) {\n return\n }\n\n if (option.id === addOption.id) {\n addNew()\n return\n }\n\n if (multiselect) {\n // Remove from selection list\n if (model.value.some((o) => o.id === option.id)) {\n model.value = model.value.filter((o) => o.id !== option.id)\n }\n // Add to selection list\n else {\n model.value = [\n ...model.value,\n options.value.find((o) => o.id === option.id)!,\n ]\n }\n } else {\n // Set selection for single select mode\n model.value = [options.value.find((o) => o.id === option.id)!]\n }\n}\n\nfunction moveActive(dir: 1 | -1) {\n const list = withAdd.value\n\n // Find active index\n const activeIdx = list.findIndex(\n (option) => option.id === activeRef.value?.id,\n )\n\n // Calculate next index and exit if it's out of bounds\n const nextIdx = activeIdx + dir\n\n if (nextIdx < 0 || nextIdx > list.length - 1) {\n return\n }\n\n activeRef.value = list[nextIdx]! // We know it's in bounds from the check above\n\n if (!activeRef.value) {\n return\n }\n\n // Scroll to the active option\n document?.getElementById(getOptionId(activeRef.value))?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n })\n}\n\nfunction addNew() {\n emit('add')\n query.value = ''\n}\n\n// Manual autofocus for the input\nconst input = ref<HTMLInputElement | null>(null)\n\n// This must be a setTimeout to ensure there is no scroll jump. nextTick does not work here.\nonMounted(() => setTimeout(() => input.value?.focus(), 0))\n</script>\n<template>\n <div class=\"relative flex\">\n <ScalarIconMagnifyingGlass\n class=\"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-c-3 size-4\" />\n <input\n ref=\"input\"\n v-model=\"query\"\n :aria-activedescendant=\"activeRef ? getOptionId(activeRef) : undefined\"\n aria-autocomplete=\"list\"\n :aria-controls=\"id\"\n class=\"min-w-0 flex-1 rounded border-0 py-2.5 pl-8 pr-3 leading-none text-c-1 -outline-offset-1\"\n data-1p-ignore\n :placeholder\n role=\"combobox\"\n tabindex=\"0\"\n type=\"text\"\n @keydown.down.prevent=\"moveActive(1)\"\n @keydown.enter.prevent=\"activeRef && toggleSelected(activeRef)\"\n @keydown.up.prevent=\"moveActive(-1)\" />\n </div>\n <ul\n v-show=\"filtered.length || slots.add\"\n :id=\"id\"\n :aria-multiselectable=\"multiselect\"\n class=\"border-t p-0.75 custom-scroll overscroll-contain flex-1 min-h-0\"\n role=\"listbox\"\n tabindex=\"-1\">\n <ComboboxOptionGroup\n v-for=\"(group, i) in groups\"\n :id=\"`${id}-group-${i}`\"\n :key=\"i\"\n :hidden=\"\n // Only show the group label if there are some results\n !group.options.some((o) => filtered.some((f) => f.id === o.id)) ||\n // And it has a label\n !group.label\n \">\n <template #label>\n <slot\n v-if=\"$slots.group\"\n :group\n name=\"group\" />\n <template v-else>\n {{ group.label }}\n </template>\n </template>\n <template\n v-for=\"option in filtered\"\n :key=\"option.id\">\n <ComboboxOption\n v-if=\"group.options.some((o) => o.id === option.id)\"\n :id=\"getOptionId(option)\"\n v-slot=\"{ active, selected }\"\n :active=\"activeRef?.id === option.id\"\n :selected=\"model.some((o) => o.id === option.id)\"\n @click=\"toggleSelected(option)\"\n @mousedown.prevent\n @mouseenter=\"activeRef = option\">\n <slot\n v-if=\"$slots.option\"\n :active\n name=\"option\"\n :option\n :selected />\n <template v-else>\n <ScalarListboxCheckbox\n :multiselect\n :selected=\"model.some((o) => o.id === option.id)\" />\n <span class=\"inline-block min-w-0 flex-1 truncate text-c-1\">\n {{ option.label }}\n </span>\n </template>\n </ComboboxOption>\n </template>\n </ComboboxOptionGroup>\n <ComboboxOption\n v-if=\"slots.add\"\n :id=\"getOptionId(addOption)\"\n v-slot=\"{ active }\"\n :active=\"activeRef?.id === addOption.id\"\n @click=\"addNew\"\n @mousedown.prevent\n @mouseenter=\"activeRef = addOption\">\n <ScalarIconPlus class=\"size-4 p-px\" />\n <slot\n :active\n name=\"add\" />\n </ComboboxOption>\n </ul>\n</template>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ScalarComboboxOptions.vue.script.js","names":["$slots"],"sources":["../../../src/components/ScalarCombobox/ScalarComboboxOptions.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Combobox Options component\n *\n * Renders the searchable option list for a combobox, including\n * filtering, keyboard navigation, and an optional \"add new\" action.\n *\n * @example\n * <ScalarComboboxOptions v-model=\"selected\" :options=\"options\" />\n */\nexport default {}\n</script>\n\n<!-- prettier-ignore-attribute generic -->\n<script\n setup\n lang=\"ts\"\n generic=\"O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O>\">\nimport { filterByOptionLabel } from '@/components/ScalarCombobox/filter-by-option-label'\nimport { ScalarIconMagnifyingGlass, ScalarIconPlus } from '@scalar/icons'\nimport { computed, onMounted, ref, useId, watch } from 'vue'\n\nimport { ScalarListboxCheckbox } from '../ScalarListbox'\nimport ComboboxOption from './ScalarComboboxOption.vue'\nimport ComboboxOptionGroup from './ScalarComboboxOptionGroup.vue'\nimport {\n type ComboboxEmits,\n type ComboboxSlots,\n type FilterFunction,\n type Option,\n type OptionGroup,\n type OptionsOrGroups,\n isGroups,\n} from './types'\n\nconst {\n options: optionsOrGroups,\n placeholder,\n filterFn = filterByOptionLabel,\n multiselect,\n} = defineProps<{\n /** The options to display in the combobox */\n options: OptionsOrGroups<O, G>\n /** The placeholder text to display in the combobox */\n placeholder?: string\n /**\n * A function to filter the options based on a query,\n * if not provided, the options will be filtered by option label\n *\n * @see {@link FilterFunction} for more information\n */\n filterFn?: FilterFunction<O, G>\n /** Whether the combobox is in multiselect mode, defaults to false */\n multiselect?: boolean\n}>()\n\nconst emit = defineEmits<ComboboxEmits>()\n\nconst model = defineModel<O[]>({ default: () => [] })\n\nconst slots = defineSlots<Omit<ComboboxSlots<O, G>, 'default'>>()\n\ndefineOptions({ inheritAttrs: false })\n\n/** A unique ID for the combobox */\nconst id = `scalar-combobox-items-${useId()}`\n\n/** A static option entry for the \"Add a new option\" option */\nconst addOption: Option = { id: `${useId()}-add`, label: 'Add a new option' }\n\n/** Generate a unique ID for an option */\nfunction getOptionId(option: Option) {\n return `${id}-${option.id}`\n}\n\n/** A flat list of all options */\nconst options = computed<O[]>(() =>\n isGroups(optionsOrGroups)\n ? optionsOrGroups.flatMap((group) => group.options)\n : optionsOrGroups,\n)\n\n/** An list of all groups */\nconst groups = computed<G[]>(\n () =>\n isGroups(optionsOrGroups)\n ? optionsOrGroups // G extends OptionGroup<O>\n : /*\n We know G is an unextended OptionGroup<O> here because of the\n structure of the component props so we can cast it to G\n */\n [{ label: '', options: optionsOrGroups } as G], // G is OptionGroup<O>\n)\n\nconst query = ref<string>('')\nconst activeRef = ref<Option | undefined>(model.value?.[0] ?? options.value[0])\n\n// Clear the query on open and close\nonMounted(() => {\n // Clear the query\n query.value = ''\n\n // Set the active option to the selected option or the first option\n activeRef.value = model.value?.[0] ?? options.value[0]\n\n // Scroll to the selected option\n const selected = model.value[0]\n if (selected) {\n setTimeout(() => {\n const value = model.value[0]\n if (!value) {\n return\n }\n\n document\n ?.getElementById(getOptionId(value))\n ?.scrollIntoView({ block: 'nearest' })\n }, 10)\n }\n})\n\n// Set the top option as active when searching\nwatch(\n () => query.value,\n () => (activeRef.value = withAdd.value[0]),\n)\n\n/** The filtered list of options */\nconst filtered = computed<O[]>(() =>\n filterFn(query.value, options.value, groups.value),\n)\n\n/** The list of filtered options with the \"Add a new option\" option */\nconst withAdd = computed<Option[]>(() =>\n slots.add ? [...filtered.value, addOption] : filtered.value,\n)\n\nfunction toggleSelected(option: Option | undefined) {\n if (!option) {\n return\n }\n\n if (option.id === addOption.id) {\n addNew()\n return\n }\n\n if (multiselect) {\n // Remove from selection list\n if (model.value.some((o) => o.id === option.id)) {\n model.value = model.value.filter((o) => o.id !== option.id)\n }\n // Add to selection list\n else {\n model.value = [\n ...model.value,\n options.value.find((o) => o.id === option.id)!,\n ]\n }\n } else {\n // Set selection for single select mode\n model.value = [options.value.find((o) => o.id === option.id)!]\n }\n}\n\nfunction moveActive(dir: 1 | -1) {\n const list = withAdd.value\n\n // Find active index\n const activeIdx = list.findIndex(\n (option) => option.id === activeRef.value?.id,\n )\n\n // Calculate next index and exit if it's out of bounds\n const nextIdx = activeIdx + dir\n\n if (nextIdx < 0 || nextIdx > list.length - 1) {\n return\n }\n\n activeRef.value = list[nextIdx]! // We know it's in bounds from the check above\n\n if (!activeRef.value) {\n return\n }\n\n // Scroll to the active option\n document?.getElementById(getOptionId(activeRef.value))?.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n })\n}\n\nfunction addNew() {\n emit('add')\n query.value = ''\n}\n\n// Manual autofocus for the input\nconst input = ref<HTMLInputElement | null>(null)\n\n// This must be a setTimeout to ensure there is no scroll jump. nextTick does not work here.\nonMounted(() => setTimeout(() => input.value?.focus(), 0))\n</script>\n<template>\n <div class=\"relative flex\">\n <ScalarIconMagnifyingGlass\n class=\"pointer-events-none absolute left-2.5 top-1/2 -translate-y-1/2 text-c-3 size-4\" />\n <input\n ref=\"input\"\n v-model=\"query\"\n :aria-activedescendant=\"activeRef ? getOptionId(activeRef) : undefined\"\n aria-autocomplete=\"list\"\n :aria-controls=\"id\"\n class=\"min-w-0 flex-1 rounded border-0 py-2.5 pl-8 pr-3 leading-none text-c-1 -outline-offset-1\"\n data-1p-ignore\n :placeholder\n role=\"combobox\"\n tabindex=\"0\"\n type=\"text\"\n @keydown.down.prevent=\"moveActive(1)\"\n @keydown.enter.prevent=\"activeRef && toggleSelected(activeRef)\"\n @keydown.up.prevent=\"moveActive(-1)\" />\n </div>\n <ul\n v-show=\"filtered.length || slots.add\"\n :id=\"id\"\n :aria-multiselectable=\"multiselect\"\n class=\"border-t p-0.75 custom-scroll overscroll-contain flex-1 min-h-0\"\n role=\"listbox\"\n tabindex=\"-1\">\n <ComboboxOptionGroup\n v-for=\"(group, i) in groups\"\n :id=\"`${id}-group-${i}`\"\n :key=\"i\"\n :hidden=\"\n // Only show the group label if there are some results\n !group.options.some((o) => filtered.some((f) => f.id === o.id)) ||\n // And it has a label\n !group.label\n \">\n <template #label>\n <slot\n v-if=\"$slots.group\"\n :group\n name=\"group\" />\n <template v-else>\n {{ group.label }}\n </template>\n </template>\n <template\n v-for=\"option in filtered\"\n :key=\"option.id\">\n <ComboboxOption\n v-if=\"group.options.some((o) => o.id === option.id)\"\n :id=\"getOptionId(option)\"\n v-slot=\"{ active, selected }\"\n :active=\"activeRef?.id === option.id\"\n :selected=\"model.some((o) => o.id === option.id)\"\n @click=\"toggleSelected(option)\"\n @mousedown.prevent\n @mouseenter=\"activeRef = option\">\n <slot\n v-if=\"$slots.option\"\n :active\n name=\"option\"\n :option\n :selected />\n <template v-else>\n <ScalarListboxCheckbox\n :multiselect\n :selected=\"model.some((o) => o.id === option.id)\" />\n <span class=\"inline-block min-w-0 flex-1 truncate text-c-1\">\n {{ option.label }}\n </span>\n </template>\n </ComboboxOption>\n </template>\n </ComboboxOptionGroup>\n <ComboboxOption\n v-if=\"slots.add\"\n :id=\"getOptionId(addOption)\"\n v-slot=\"{ active }\"\n :active=\"activeRef?.id === addOption.id\"\n @click=\"addNew\"\n @mousedown.prevent\n @mouseenter=\"activeRef = addOption\">\n <ScalarIconPlus class=\"size-4 p-px\" />\n <slot\n :active\n name=\"add\" />\n </ComboboxOption>\n </ul>\n</template>\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarComboboxPopover.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarCombobox/ScalarComboboxPopover.vue"],"names":[],"mappings":"AAsFA,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAG1D;;;;;;;;;;;GAWG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"ScalarComboboxPopover.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarCombobox/ScalarComboboxPopover.vue"],"names":[],"mappings":"AAsFA,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAG1D;;;;;;;;;;;GAWG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mRAsKd,CAAC;AACL,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -3,7 +3,7 @@ import ScalarFloatingBackdrop_default from "../ScalarFloating/ScalarFloatingBack
|
|
|
3
3
|
import { useBindCx } from "@scalar/use-hooks/useBindCx";
|
|
4
4
|
import { createBlock, createSlots, createVNode, defineComponent, guardReactiveProps, mergeProps, normalizeProps, openBlock, ref, renderSlot, unref, withCtx } from "vue";
|
|
5
5
|
import { Popover, PopoverButton, PopoverPanel } from "@headlessui/vue";
|
|
6
|
-
var ScalarComboboxPopover_vue_vue_type_script_setup_true_lang_default =
|
|
6
|
+
var ScalarComboboxPopover_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
7
7
|
inheritAttrs: false,
|
|
8
8
|
__name: "ScalarComboboxPopover",
|
|
9
9
|
props: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarComboboxPopover.vue.script.js","names":["$props"],"sources":["../../../src/components/ScalarCombobox/ScalarComboboxPopover.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Combobox Popover component\n *\n * Wraps combobox content in a floating popover panel.\n * Handles open/close behavior and keyboard interactions.\n *\n * @example\n * <ScalarComboboxPopover>\n * <button>Toggle</button>\n * <template #popover=\"{ close }\">Content</template>\n * </ScalarComboboxPopover>\n */\nexport default {}\n</script>\n\n<script setup lang=\"ts\">\nimport { Popover, PopoverButton, PopoverPanel } from '@headlessui/vue'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { ref } from 'vue'\n\nimport {\n ScalarFloating,\n ScalarFloatingBackdrop,\n type ScalarFloatingOptions,\n} from '../ScalarFloating'\nimport type { ScalarPopoverSlots } from '../ScalarPopover'\n\ndefineProps<ScalarFloatingOptions>()\n\ndefineSlots<ScalarPopoverSlots>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\n/** Expose the popover button so we can close the popup */\nconst popoverButtonRef = ref<typeof PopoverButton | null>(null)\n\n/** Open the popover of the up or down arrows are pressed */\nconst handleKeydown = (e: KeyboardEvent) => {\n if (!['ArrowUp', 'ArrowDown'].includes(e.key)) {\n return\n }\n e.preventDefault()\n e.target?.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter' }))\n}\n\ndefineExpose({ popoverButtonRef })\n</script>\n<template>\n <Popover\n v-slot=\"{ open }\"\n as=\"template\">\n <ScalarFloating v-bind=\"$props\">\n <PopoverButton\n ref=\"popoverButtonRef\"\n as=\"template\"\n @keydown=\"handleKeydown\">\n <slot :open />\n </PopoverButton>\n <template\n v-if=\"open\"\n #floating=\"{ width }\">\n <PopoverPanel\n v-slot=\"{ close }\"\n :style=\"{ width }\"\n v-bind=\"\n cx('relative flex flex-col max-h-[inherit] w-40 rounded text-sm')\n \">\n <slot\n :close\n name=\"popover\"\n :open />\n <ScalarFloatingBackdrop />\n </PopoverPanel>\n </template>\n </ScalarFloating>\n </Popover>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;EAiCA,MAAM,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"ScalarComboboxPopover.vue.script.js","names":["$props"],"sources":["../../../src/components/ScalarCombobox/ScalarComboboxPopover.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Combobox Popover component\n *\n * Wraps combobox content in a floating popover panel.\n * Handles open/close behavior and keyboard interactions.\n *\n * @example\n * <ScalarComboboxPopover>\n * <button>Toggle</button>\n * <template #popover=\"{ close }\">Content</template>\n * </ScalarComboboxPopover>\n */\nexport default {}\n</script>\n\n<script setup lang=\"ts\">\nimport { Popover, PopoverButton, PopoverPanel } from '@headlessui/vue'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { ref } from 'vue'\n\nimport {\n ScalarFloating,\n ScalarFloatingBackdrop,\n type ScalarFloatingOptions,\n} from '../ScalarFloating'\nimport type { ScalarPopoverSlots } from '../ScalarPopover'\n\ndefineProps<ScalarFloatingOptions>()\n\ndefineSlots<ScalarPopoverSlots>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\n/** Expose the popover button so we can close the popup */\nconst popoverButtonRef = ref<typeof PopoverButton | null>(null)\n\n/** Open the popover of the up or down arrows are pressed */\nconst handleKeydown = (e: KeyboardEvent) => {\n if (!['ArrowUp', 'ArrowDown'].includes(e.key)) {\n return\n }\n e.preventDefault()\n e.target?.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter' }))\n}\n\ndefineExpose({ popoverButtonRef })\n</script>\n<template>\n <Popover\n v-slot=\"{ open }\"\n as=\"template\">\n <ScalarFloating v-bind=\"$props\">\n <PopoverButton\n ref=\"popoverButtonRef\"\n as=\"template\"\n @keydown=\"handleKeydown\">\n <slot :open />\n </PopoverButton>\n <template\n v-if=\"open\"\n #floating=\"{ width }\">\n <PopoverPanel\n v-slot=\"{ close }\"\n :style=\"{ width }\"\n v-bind=\"\n cx('relative flex flex-col max-h-[inherit] w-40 rounded text-sm')\n \">\n <slot\n :close\n name=\"popover\"\n :open />\n <ScalarFloatingBackdrop />\n </PopoverPanel>\n </template>\n </ScalarFloating>\n </Popover>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;EAiCA,MAAM,EAAE,OAAO,UAAU;;EAGzB,MAAM,mBAAmB,IAAiC,IAAI;;EAG9D,MAAM,iBAAiB,MAAqB;GAC1C,IAAI,CAAC,CAAC,WAAW,WAAW,CAAC,CAAC,SAAS,EAAE,GAAG,GAC1C;GAEF,EAAE,eAAe;GACjB,EAAE,QAAQ,cAAc,IAAI,cAAc,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAC;EACxE;EAEA,SAAa,EAAE,iBAAiB,CAAC;;uBAG/B,YA2BU,MAAA,OAAA,GAAA,EAzBR,IAAG,WAAU,GAAA;sBAwBI,EAzBP,WAAI,CAEd,YAuBiB,MAAA,sBAAA,GAAA,eAAA,mBAvBOA,KAAAA,MAAM,CAAA,GAAA,YAAA;4BAMZ,CALhB,YAKgB,MAAA,aAAA,GAAA;eAJV;MAAJ,KAAI;MACJ,IAAG;MACF,WAAS;;6BACI,CAAd,WAAc,KAAA,QAAA,WAAA,EAAP,KAAI,CAAA,CAAA,CAAA;;;;QAGL,OAAA;WACL;kBAYc,EAZF,YAAK,CAClB,YAWe,MAAA,YAAA,GAXf,WAWe,EATZ,OAAK,EAAI,MAAK,EAAA,GACM,MAAA,EAAA,CAAE,CAAA,6DAAA,CAAA,GAAA;wBAMb,EARA,YAAK,CAKf,WAGU,KAAA,QAAA,WAAA;OAFP;OAEA;UACH,YAA0B,MAAA,8BAAA,CAAA,CAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-by-option-label.js","names":[],"sources":["../../../src/components/ScalarCombobox/filter-by-option-label.ts"],"sourcesContent":["import type { FilterFunction } from '@/components/ScalarCombobox/types'\nimport type { Option } from '@/components/ScalarListbox/types'\n\nexport const filterByOptionLabel = (<O extends Option>(query: string, options: O[]): O[] => {\n return query === ''\n ? options\n : options.filter((option) => {\n return option.label.toLowerCase().includes(query.toLowerCase())\n })\n}) satisfies FilterFunction\n"],"mappings":";AAGA,IAAa,wBAA0C,OAAe,YAAsB;
|
|
1
|
+
{"version":3,"file":"filter-by-option-label.js","names":[],"sources":["../../../src/components/ScalarCombobox/filter-by-option-label.ts"],"sourcesContent":["import type { FilterFunction } from '@/components/ScalarCombobox/types'\nimport type { Option } from '@/components/ScalarListbox/types'\n\nexport const filterByOptionLabel = (<O extends Option>(query: string, options: O[]): O[] => {\n return query === ''\n ? options\n : options.filter((option) => {\n return option.label.toLowerCase().includes(query.toLowerCase())\n })\n}) satisfies FilterFunction\n"],"mappings":";AAGA,IAAa,wBAA0C,OAAe,YAAsB;CAC1F,OAAO,UAAU,KACb,UACA,QAAQ,QAAQ,WAAW;EACzB,OAAO,OAAO,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,YAAY,CAAC;CAChE,CAAC;AACP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/components/ScalarCombobox/types.ts"],"sourcesContent":["export type Option = {\n id: string\n label: string\n}\n\nexport type OptionGroup<O extends Option = Option> = {\n label: string\n options: O[]\n}\n\nexport type OptionsOrGroups<O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O>> = O[] | G[]\n\n/**\n * Filters which options appear while searching. The combobox passes the\n * current query, a flat list of every option (including those inside groups),\n * and the group objects when the list is grouped (otherwise an empty array).\n *\n * @example Match option labels, case-insensitive (similar to the default combobox filter):\n * ```ts\n * const filterByLabel = ((query, options) =>\n * query === ''\n * ? options\n * : options.filter((o) => o.label.toLowerCase().includes(query.toLowerCase()))\n * ) satisfies FilterFunction\n * ```\n */\nexport type FilterFunction<O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O>> = (\n query: string,\n /* All of the (flattened) options, if there are groups this will be all of the options from all of the groups */\n options: O[],\n /* If there are no groups this array will be empty, if there are groups this will be all of the groups including their options */\n groups: G[],\n) => O[]\n\n/** Type guard to check if an option is a group */\nfunction isGroup(option: Option | OptionGroup | undefined): option is OptionGroup {\n return (option as OptionGroup | undefined)?.options !== undefined\n}\n\n/** Type guard to check if an array of options is an array of groups */\nexport function isGroups(options: Option[] | OptionGroup[]): options is OptionGroup[] {\n if (!options[0]) {\n return false // No options to test, so we assume it's not a group\n }\n return isGroup(options[0])\n}\n\n/** Available events emitted by the combobox */\nexport type ComboboxEmits = {\n /** Emitted when the \"Add a new option\" button is clicked */\n add: []\n}\n\n/** Available slots for the combobox */\nexport type ComboboxSlots<O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O>> = {\n /** The reference element / trigger for the combobox */\n default(props: { open: boolean }): unknown\n /** A template to override the option label */\n option?(props: { option: O; active: boolean; selected: boolean }): unknown\n /** A template to override the group label */\n group?(props: { group: G }): unknown\n /** Creates an \"Add a new option\" button after the options list*/\n add?(props: { active: boolean }): unknown\n}\n"],"mappings":";;AAmCA,SAAS,QAAQ,QAAiE;
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/components/ScalarCombobox/types.ts"],"sourcesContent":["export type Option = {\n id: string\n label: string\n}\n\nexport type OptionGroup<O extends Option = Option> = {\n label: string\n options: O[]\n}\n\nexport type OptionsOrGroups<O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O>> = O[] | G[]\n\n/**\n * Filters which options appear while searching. The combobox passes the\n * current query, a flat list of every option (including those inside groups),\n * and the group objects when the list is grouped (otherwise an empty array).\n *\n * @example Match option labels, case-insensitive (similar to the default combobox filter):\n * ```ts\n * const filterByLabel = ((query, options) =>\n * query === ''\n * ? options\n * : options.filter((o) => o.label.toLowerCase().includes(query.toLowerCase()))\n * ) satisfies FilterFunction\n * ```\n */\nexport type FilterFunction<O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O>> = (\n query: string,\n /* All of the (flattened) options, if there are groups this will be all of the options from all of the groups */\n options: O[],\n /* If there are no groups this array will be empty, if there are groups this will be all of the groups including their options */\n groups: G[],\n) => O[]\n\n/** Type guard to check if an option is a group */\nfunction isGroup(option: Option | OptionGroup | undefined): option is OptionGroup {\n return (option as OptionGroup | undefined)?.options !== undefined\n}\n\n/** Type guard to check if an array of options is an array of groups */\nexport function isGroups(options: Option[] | OptionGroup[]): options is OptionGroup[] {\n if (!options[0]) {\n return false // No options to test, so we assume it's not a group\n }\n return isGroup(options[0])\n}\n\n/** Available events emitted by the combobox */\nexport type ComboboxEmits = {\n /** Emitted when the \"Add a new option\" button is clicked */\n add: []\n}\n\n/** Available slots for the combobox */\nexport type ComboboxSlots<O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O>> = {\n /** The reference element / trigger for the combobox */\n default(props: { open: boolean }): unknown\n /** A template to override the option label */\n option?(props: { option: O; active: boolean; selected: boolean }): unknown\n /** A template to override the group label */\n group?(props: { group: G }): unknown\n /** Creates an \"Add a new option\" button after the options list*/\n add?(props: { active: boolean }): unknown\n}\n"],"mappings":";;AAmCA,SAAS,QAAQ,QAAiE;CAChF,OAAQ,QAAoC,YAAY,KAAA;AAC1D;;AAGA,SAAgB,SAAS,SAA6D;CACpF,IAAI,CAAC,QAAQ,IACX,OAAO;CAET,OAAO,QAAQ,QAAQ,EAAE;AAC3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarCopy.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarCopy/ScalarCopy.vue"],"names":[],"mappings":"AAyEA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAG/D;;;;;;;;;;GAUG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY;aA+BP,OAAO;;;;aAAP,OAAO;;;
|
|
1
|
+
{"version":3,"file":"ScalarCopy.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarCopy/ScalarCopy.vue"],"names":[],"mappings":"AAyEA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAG/D;;;;;;;;;;GAUG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY;aA+BP,OAAO;;;;aAAP,OAAO;;;oGA2Fd,CAAC;AACL,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import ScalarCopyButton_default from "./ScalarCopyButton.vue.js";
|
|
2
2
|
import { createBlock, createSlots, defineComponent, mergeModels, onMounted, openBlock, renderSlot, unref, useModel, watch, withCtx } from "vue";
|
|
3
3
|
import { useClipboard } from "@vueuse/core";
|
|
4
|
-
var ScalarCopy_vue_vue_type_script_setup_true_lang_default =
|
|
4
|
+
var ScalarCopy_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
5
5
|
__name: "ScalarCopy",
|
|
6
|
-
props:
|
|
6
|
+
props: /*@__PURE__*/ mergeModels({
|
|
7
7
|
content: { default: "" },
|
|
8
8
|
placement: {},
|
|
9
9
|
showLabel: { type: Boolean },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarCopy.vue.script.js","names":["$slots"],"sources":["../../../src/components/ScalarCopy/ScalarCopy.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Copy component\n *\n * Provides a copy button and copies content to the clipboard.\n *\n * @example\n * <ScalarCopy>\n * <template #copy>Button label</template>\n * <template #copied>Copied label</template>\n * </ScalarCopy>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useClipboard } from '@vueuse/core'\nimport { onMounted, watch } from 'vue'\n\nimport ScalarCopyButton from './ScalarCopyButton.vue'\nimport type { ScalarCopyProps, ScalarCopySlots } from './types'\n\nconst {\n content = '',\n duration = 1500,\n immediate,\n} = defineProps<ScalarCopyProps>()\n\ndefineSlots<ScalarCopySlots>()\n\nconst copied = defineModel<boolean>('copied', { default: false })\n\nonMounted(() => {\n if (immediate) copy(content)\n})\n\nconst { copy, copied: clipboardCopied } = useClipboard({\n legacy: true,\n copiedDuring: duration,\n})\n\n/** Watch the clipboard copied state and emit it to the consuming component */\nwatch(clipboardCopied, (v) => (copied.value = v))\n</script>\n<template>\n <ScalarCopyButton\n :copied=\"copied || clipboardCopied\"\n :placement\n :showLabel\n @click=\"copy(content)\">\n <template\n v-if=\"$slots.copy\"\n #copy>\n <slot name=\"copy\" />\n </template>\n <template\n v-if=\"$slots.copied\"\n #copied>\n <slot name=\"copied\" />\n </template>\n <template\n v-if=\"$slots.backdrop\"\n #backdrop>\n <slot name=\"backdrop\" />\n </template>\n </ScalarCopyButton>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EA6BA,MAAM,SAAS,SAAoB,SAAC,
|
|
1
|
+
{"version":3,"file":"ScalarCopy.vue.script.js","names":["$slots"],"sources":["../../../src/components/ScalarCopy/ScalarCopy.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Copy component\n *\n * Provides a copy button and copies content to the clipboard.\n *\n * @example\n * <ScalarCopy>\n * <template #copy>Button label</template>\n * <template #copied>Copied label</template>\n * </ScalarCopy>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useClipboard } from '@vueuse/core'\nimport { onMounted, watch } from 'vue'\n\nimport ScalarCopyButton from './ScalarCopyButton.vue'\nimport type { ScalarCopyProps, ScalarCopySlots } from './types'\n\nconst {\n content = '',\n duration = 1500,\n immediate,\n} = defineProps<ScalarCopyProps>()\n\ndefineSlots<ScalarCopySlots>()\n\nconst copied = defineModel<boolean>('copied', { default: false })\n\nonMounted(() => {\n if (immediate) copy(content)\n})\n\nconst { copy, copied: clipboardCopied } = useClipboard({\n legacy: true,\n copiedDuring: duration,\n})\n\n/** Watch the clipboard copied state and emit it to the consuming component */\nwatch(clipboardCopied, (v) => (copied.value = v))\n</script>\n<template>\n <ScalarCopyButton\n :copied=\"copied || clipboardCopied\"\n :placement\n :showLabel\n @click=\"copy(content)\">\n <template\n v-if=\"$slots.copy\"\n #copy>\n <slot name=\"copy\" />\n </template>\n <template\n v-if=\"$slots.copied\"\n #copied>\n <slot name=\"copied\" />\n </template>\n <template\n v-if=\"$slots.backdrop\"\n #backdrop>\n <slot name=\"backdrop\" />\n </template>\n </ScalarCopyButton>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EA6BA,MAAM,SAAS,SAAoB,SAAC,QAA4B;EAEhE,gBAAgB;GACd,IAAI,QAAA,WAAW,KAAK,QAAA,OAAO;EAC7B,CAAC;EAED,MAAM,EAAE,MAAM,QAAQ,oBAAoB,aAAa;GACrD,QAAQ;GACR,cAAc,QAAA;EAChB,CAAC;;EAGD,MAAM,kBAAkB,MAAO,OAAO,QAAQ,CAAE;;uBAG9C,YAoBmB,0BAAA;IAnBhB,QAAQ,OAAA,SAAU,MAAA,eAAA;IAClB,WAAA,QAAA;IACA,WAAA,QAAA;IACA,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,MAAA,IAAA,CAAI,CAAC,QAAA,OAAO;;IAEZA,KAAAA,OAAO,OAAA;WACZ;uBACmB,CAApB,WAAoB,KAAA,QAAA,MAAA,CAAA,CAAA;;;IAGdA,KAAAA,OAAO,SAAA;WACZ;uBACqB,CAAtB,WAAsB,KAAA,QAAA,QAAA,CAAA,CAAA;;;IAGhBA,KAAAA,OAAO,WAAA;WACZ;uBACuB,CAAxB,WAAwB,KAAA,QAAA,UAAA,CAAA,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useBindCx } from "@scalar/use-hooks/useBindCx";
|
|
2
2
|
import { createElementBlock, defineComponent, guardReactiveProps, normalizeProps, openBlock, unref } from "vue";
|
|
3
|
-
var ScalarCopyBackdrop_vue_vue_type_script_setup_true_lang_default =
|
|
3
|
+
var ScalarCopyBackdrop_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
4
4
|
inheritAttrs: false,
|
|
5
5
|
__name: "ScalarCopyBackdrop",
|
|
6
6
|
setup(__props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarCopyBackdrop.vue.script.js","names":[],"sources":["../../../src/components/ScalarCopy/ScalarCopyBackdrop.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Copy Backdrop component\n *\n * A backdrop for the copy button label, this component can be\n * used to override the default backdrop with a custom one.\n *\n * @example\n * <ScalarCopy>\n * <template #backdrop>\n * <ScalarCopyBackdrop class=\"bg-b-2\" />\n * </template>\n * </ScalarCopy>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div v-bind=\"cx('absolute inset-y-0.5 -z-2 left-0 right-0 bg-b-1 rounded')\" />\n</template>\n"],"mappings":";;;;;;EAoBA,MAAM,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"ScalarCopyBackdrop.vue.script.js","names":[],"sources":["../../../src/components/ScalarCopy/ScalarCopyBackdrop.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Copy Backdrop component\n *\n * A backdrop for the copy button label, this component can be\n * used to override the default backdrop with a custom one.\n *\n * @example\n * <ScalarCopy>\n * <template #backdrop>\n * <ScalarCopyBackdrop class=\"bg-b-2\" />\n * </template>\n * </ScalarCopy>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div v-bind=\"cx('absolute inset-y-0.5 -z-2 left-0 right-0 bg-b-1 rounded')\" />\n</template>\n"],"mappings":";;;;;;EAoBA,MAAM,EAAE,OAAO,UAAU;;uBAGvB,mBAA8E,OAAA,eAAA,mBAAjE,MAAA,EAAA,CAAE,CAAA,yDAAA,CAAA,CAAA,GAAA,MAAA,EAAA"}
|
|
@@ -20,10 +20,10 @@ var _hoisted_4 = {
|
|
|
20
20
|
key: 1,
|
|
21
21
|
class: "sr-only"
|
|
22
22
|
};
|
|
23
|
-
var ScalarCopyButton_vue_vue_type_script_setup_true_lang_default =
|
|
23
|
+
var ScalarCopyButton_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
24
24
|
inheritAttrs: false,
|
|
25
25
|
__name: "ScalarCopyButton",
|
|
26
|
-
props:
|
|
26
|
+
props: /*@__PURE__*/ mergeModels({
|
|
27
27
|
showLabel: { type: Boolean },
|
|
28
28
|
placement: { default: "right" }
|
|
29
29
|
}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarCopyButton.vue.script.js","names":[],"sources":["../../../src/components/ScalarCopy/ScalarCopyButton.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Copy Button component\n *\n * A dumb button with copy animations.\n *\n * If you're looking for a button that copies content to the clipboard,\n * use the ScalarCopy component instead.\n *\n * @example\n * <ScalarCopyButton @click=\"handleCopy\">\n * <template #copy>Button label</template>\n * <template #copied>Copied label</template>\n * </ScalarCopyButton>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconCheck, ScalarIconCopy } from '@scalar/icons'\nimport type { ScalarIconComponent } from '@scalar/icons/types'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed } from 'vue'\n\nimport ScalarCopyBackdrop from './ScalarCopyBackdrop.vue'\nimport type { ScalarCopyPlacement, ScalarCopySlots } from './types'\n\nconst { placement = 'right' } = defineProps<{\n /** Whether the label should be shown on hover or always */\n showLabel?: boolean\n /** The placement of the copy button */\n placement?: ScalarCopyPlacement\n}>()\n\ndefineSlots<ScalarCopySlots>()\n\n/** Whether the copy button has been clicked */\nconst copied = defineModel<boolean>('copied', { default: false })\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\nconst icon = computed<ScalarIconComponent>(() => {\n return copied.value ? ScalarIconCheck : ScalarIconCopy\n})\n</script>\n<template>\n <button\n type=\"button\"\n v-bind=\"\n cx(\n 'group/copy-button relative z-0 flex items-center justify-center',\n 'size-6 p-1.25 -m-1 rounded text-xs bg-b-2',\n copied ? 'text-c-1' : 'text-c-2 hover:text-c-1',\n )\n \">\n <Transition\n enterActiveClass=\"transition-transform\"\n enterFromClass=\"scale-0\"\n enterToClass=\"scale-100\"\n leaveActiveClass=\"transition-transform\"\n leaveFromClass=\"scale-100\"\n leaveToClass=\"scale-0\"\n mode=\"out-in\">\n <component\n :is=\"icon\"\n class=\"size-full\" />\n </Transition>\n <div class=\"bg-inherit rounded-[inherit] absolute inset-0 -z-1\" />\n <div\n class=\"group/copy-label absolute flex items-center -inset-y-0.5 rounded\"\n :class=\"{\n 'left-0 pl-[100%]': placement === 'right',\n 'right-0 pr-[100%]': placement === 'left',\n }\">\n <div\n aria-hidden=\"true\"\n class=\"flex items-center py-1.5 mask-y-from-[calc(100%-8px)] mask-y-to-100%\">\n <Transition\n enterActiveClass=\"transition-transform ease-out\"\n enterFromClass=\"translate-y-1.5\"\n enterToClass=\"translate-y-0\"\n leaveActiveClass=\"transition-transform ease-in\"\n leaveFromClass=\"translate-y-0\"\n leaveToClass=\"-translate-y-1.5\"\n mode=\"out-in\">\n <div\n v-if=\"copied\"\n class=\"whitespace-nowrap px-1.5\">\n <slot name=\"copied\">Copied</slot>\n </div>\n <div\n v-else\n class=\"whitespace-nowrap px-1.5\"\n :class=\"{\n 'group-hocus/copy-button:block hidden': !showLabel && !copied,\n }\">\n <slot name=\"copy\">Copy</slot>\n </div>\n </Transition>\n </div>\n <div\n v-if=\"copied\"\n class=\"sr-only\"\n role=\"alert\">\n <slot name=\"copied\">Copied</slot>\n </div>\n <div\n v-else\n class=\"sr-only\">\n <slot name=\"copy\">Copy</slot>\n </div>\n <slot name=\"backdrop\">\n <ScalarCopyBackdrop />\n </slot>\n </div>\n </button>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCA,MAAM,SAAS,SAAoB,SAAC,
|
|
1
|
+
{"version":3,"file":"ScalarCopyButton.vue.script.js","names":[],"sources":["../../../src/components/ScalarCopy/ScalarCopyButton.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Copy Button component\n *\n * A dumb button with copy animations.\n *\n * If you're looking for a button that copies content to the clipboard,\n * use the ScalarCopy component instead.\n *\n * @example\n * <ScalarCopyButton @click=\"handleCopy\">\n * <template #copy>Button label</template>\n * <template #copied>Copied label</template>\n * </ScalarCopyButton>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconCheck, ScalarIconCopy } from '@scalar/icons'\nimport type { ScalarIconComponent } from '@scalar/icons/types'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed } from 'vue'\n\nimport ScalarCopyBackdrop from './ScalarCopyBackdrop.vue'\nimport type { ScalarCopyPlacement, ScalarCopySlots } from './types'\n\nconst { placement = 'right' } = defineProps<{\n /** Whether the label should be shown on hover or always */\n showLabel?: boolean\n /** The placement of the copy button */\n placement?: ScalarCopyPlacement\n}>()\n\ndefineSlots<ScalarCopySlots>()\n\n/** Whether the copy button has been clicked */\nconst copied = defineModel<boolean>('copied', { default: false })\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n\nconst icon = computed<ScalarIconComponent>(() => {\n return copied.value ? ScalarIconCheck : ScalarIconCopy\n})\n</script>\n<template>\n <button\n type=\"button\"\n v-bind=\"\n cx(\n 'group/copy-button relative z-0 flex items-center justify-center',\n 'size-6 p-1.25 -m-1 rounded text-xs bg-b-2',\n copied ? 'text-c-1' : 'text-c-2 hover:text-c-1',\n )\n \">\n <Transition\n enterActiveClass=\"transition-transform\"\n enterFromClass=\"scale-0\"\n enterToClass=\"scale-100\"\n leaveActiveClass=\"transition-transform\"\n leaveFromClass=\"scale-100\"\n leaveToClass=\"scale-0\"\n mode=\"out-in\">\n <component\n :is=\"icon\"\n class=\"size-full\" />\n </Transition>\n <div class=\"bg-inherit rounded-[inherit] absolute inset-0 -z-1\" />\n <div\n class=\"group/copy-label absolute flex items-center -inset-y-0.5 rounded\"\n :class=\"{\n 'left-0 pl-[100%]': placement === 'right',\n 'right-0 pr-[100%]': placement === 'left',\n }\">\n <div\n aria-hidden=\"true\"\n class=\"flex items-center py-1.5 mask-y-from-[calc(100%-8px)] mask-y-to-100%\">\n <Transition\n enterActiveClass=\"transition-transform ease-out\"\n enterFromClass=\"translate-y-1.5\"\n enterToClass=\"translate-y-0\"\n leaveActiveClass=\"transition-transform ease-in\"\n leaveFromClass=\"translate-y-0\"\n leaveToClass=\"-translate-y-1.5\"\n mode=\"out-in\">\n <div\n v-if=\"copied\"\n class=\"whitespace-nowrap px-1.5\">\n <slot name=\"copied\">Copied</slot>\n </div>\n <div\n v-else\n class=\"whitespace-nowrap px-1.5\"\n :class=\"{\n 'group-hocus/copy-button:block hidden': !showLabel && !copied,\n }\">\n <slot name=\"copy\">Copy</slot>\n </div>\n </Transition>\n </div>\n <div\n v-if=\"copied\"\n class=\"sr-only\"\n role=\"alert\">\n <slot name=\"copied\">Copied</slot>\n </div>\n <div\n v-else\n class=\"sr-only\">\n <slot name=\"copy\">Copy</slot>\n </div>\n <slot name=\"backdrop\">\n <ScalarCopyBackdrop />\n </slot>\n </div>\n </button>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCA,MAAM,SAAS,SAAoB,SAAC,QAA4B;EAGhE,MAAM,EAAE,OAAO,UAAU;EAEzB,MAAM,OAAO,eAAoC;GAC/C,OAAO,OAAO,QAAQ,kBAAkB;EAC1C,CAAC;;uBAGC,mBAqES,UArET,WAqES,EApEP,MAAK,SAAQ,GACE,MAAA,EAAA,CAAE,CAAA,mEAAA,6CAA0I,OAAA,QAAM,aAAA,yBAAA,CAAA,GAAA;IAOjK,YAWa,YAAA;KAVX,kBAAiB;KACjB,gBAAe;KACf,cAAa;KACb,kBAAiB;KACjB,gBAAe;KACf,cAAa;KACb,MAAK;;4BAGiB,EAAA,UAAA,GAFtB,YAEsB,wBADf,KAAA,KAAI,GAAA,EACT,OAAM,YAAW,CAAA,EAAA,CAAA;;;8BAErB,mBAAkE,OAAA,EAA7D,OAAM,qDAAoD,GAAA,MAAA,EAAA;IAC/D,mBA8CM,OAAA,EA7CJ,OAAK,eAAA,CAAC,oEAAkE;yBAClC,QAAA,cAAS;0BAA2C,QAAA,cAAS;;KAInG,mBAyBM,OAzBN,YAyBM,CAtBJ,YAqBa,YAAA;MApBX,kBAAiB;MACjB,gBAAe;MACf,cAAa;MACb,kBAAiB;MACjB,gBAAe;MACf,cAAa;MACb,MAAK;;6BAKC,CAHE,OAAA,SAAA,UAAA,GADR,mBAIM,OAJN,YAIM,CADJ,WAAiC,KAAA,QAAA,UAAA,CAAA,SAAA,CAAA,OAAA,OAAA,OAAA,KAAA,gBAAb,UAAM,EAAA,EAAA,CAAA,CAAA,CAAA,MAAA,UAAA,GAE5B,mBAOM,OAAA;;OALJ,OAAK,eAAA,CAAC,4BAA0B,EAAA,wCAAA,CACiC,QAAA,aAAS,CAAK,OAAA,MAAA,CAAA,CAAA;UAG/E,WAA6B,KAAA,QAAA,QAAA,CAAA,SAAA,CAAA,OAAA,OAAA,OAAA,KAAA,gBAAX,QAAI,EAAA,EAAA,CAAA,CAAA,GAAA,CAAA,EAAA,CAAA;;;KAKpB,OAAA,SAAA,UAAA,GADR,mBAKM,OALN,YAKM,CADJ,WAAiC,KAAA,QAAA,UAAA,CAAA,SAAA,CAAA,OAAA,OAAA,OAAA,KAAA,gBAAb,UAAM,EAAA,EAAA,CAAA,CAAA,CAAA,MAAA,UAAA,GAE5B,mBAIM,OAJN,YAIM,CADJ,WAA6B,KAAA,QAAA,QAAA,CAAA,SAAA,CAAA,OAAA,OAAA,OAAA,KAAA,gBAAX,QAAI,EAAA,EAAA,CAAA,CAAA,CAAA;KAExB,WAEO,KAAA,QAAA,YAAA,CAAA,SAAA,CADL,YAAsB,0BAAA,CAAA,CAAA"}
|
|
@@ -11,10 +11,10 @@ var _hoisted_1 = [
|
|
|
11
11
|
"aria-labelledby",
|
|
12
12
|
"onKeydown"
|
|
13
13
|
];
|
|
14
|
-
var ScalarDropdown_vue_vue_type_script_setup_true_lang_default =
|
|
14
|
+
var ScalarDropdown_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
15
15
|
inheritAttrs: false,
|
|
16
16
|
__name: "ScalarDropdown",
|
|
17
|
-
props:
|
|
17
|
+
props: /*@__PURE__*/ mergeModels({
|
|
18
18
|
placement: {},
|
|
19
19
|
offset: { type: [
|
|
20
20
|
Number,
|