@scalar/components 0.21.1 → 0.21.3
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/dist/components/ScalarButton/ScalarButton.vue.js.map +1 -1
- package/dist/components/ScalarButton/ScalarButton.vue.script.js +1 -1
- package/dist/components/ScalarButton/ScalarButton.vue.script.js.map +1 -1
- package/dist/components/ScalarButton/constants.d.ts +1 -1
- package/dist/components/ScalarButton/constants.js +1 -1
- package/dist/components/ScalarButton/constants.js.map +1 -1
- package/dist/components/ScalarCodeBlock/ScalarCodeBlock.vue.d.ts +38 -9
- package/dist/components/ScalarCodeBlock/ScalarCodeBlock.vue.d.ts.map +1 -1
- package/dist/components/ScalarCodeBlock/ScalarCodeBlock.vue.js.map +1 -1
- package/dist/components/ScalarCodeBlock/ScalarCodeBlock.vue.script.js +0 -5
- package/dist/components/ScalarCodeBlock/ScalarCodeBlock.vue.script.js.map +1 -1
- package/dist/components/ScalarCodeBlock/ScalarCodeBlockCopy.vue.d.ts +28 -16
- package/dist/components/ScalarCodeBlock/ScalarCodeBlockCopy.vue.d.ts.map +1 -1
- package/dist/components/ScalarCodeBlock/ScalarCodeBlockCopy.vue.js.map +1 -1
- package/dist/components/ScalarCodeBlock/ScalarCodeBlockCopy.vue.script.js.map +1 -1
- package/dist/components/ScalarCombobox/ScalarCombobox.vue.d.ts +13 -2
- package/dist/components/ScalarCombobox/ScalarCombobox.vue.d.ts.map +1 -1
- package/dist/components/ScalarCombobox/ScalarCombobox.vue.js.map +1 -1
- package/dist/components/ScalarCombobox/ScalarCombobox.vue.script.js +0 -1
- package/dist/components/ScalarCombobox/ScalarCombobox.vue.script.js.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.d.ts +12 -2
- 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 +0 -1
- package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.script.js.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxOption.vue.d.ts +23 -13
- package/dist/components/ScalarCombobox/ScalarComboboxOption.vue.d.ts.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxOption.vue.js.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxOption.vue.script.js.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxOptionGroup.vue.d.ts +21 -11
- package/dist/components/ScalarCombobox/ScalarComboboxOptionGroup.vue.d.ts.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxOptionGroup.vue.js.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxOptionGroup.vue.script.js.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.d.ts +11 -2
- 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.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxPopover.vue.d.ts +16 -6
- package/dist/components/ScalarCombobox/ScalarComboboxPopover.vue.d.ts.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxPopover.vue.js.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxPopover.vue.script.js +0 -1
- package/dist/components/ScalarCombobox/ScalarComboboxPopover.vue.script.js.map +1 -1
- package/dist/components/ScalarErrorBoundary/ScalarErrorBoundary.vue.d.ts +14 -6
- package/dist/components/ScalarErrorBoundary/ScalarErrorBoundary.vue.d.ts.map +1 -1
- package/dist/components/ScalarErrorBoundary/ScalarErrorBoundary.vue.js.map +1 -1
- package/dist/components/ScalarErrorBoundary/ScalarErrorBoundary.vue.script.js.map +1 -1
- package/dist/components/ScalarFileUpload/ScalarFileUploadFileList.vue.js.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/ScalarFloating/ScalarFloating.vue.d.ts +19 -9
- package/dist/components/ScalarFloating/ScalarFloating.vue.d.ts.map +1 -1
- package/dist/components/ScalarFloating/ScalarFloating.vue.js.map +1 -1
- package/dist/components/ScalarFloating/ScalarFloating.vue.script.js +0 -1
- package/dist/components/ScalarFloating/ScalarFloating.vue.script.js.map +1 -1
- package/dist/components/ScalarForm/ScalarFormError.vue.d.ts +20 -11
- package/dist/components/ScalarForm/ScalarFormError.vue.d.ts.map +1 -1
- package/dist/components/ScalarForm/ScalarFormError.vue.js.map +1 -1
- package/dist/components/ScalarForm/ScalarFormError.vue.script.js +0 -1
- package/dist/components/ScalarForm/ScalarFormError.vue.script.js.map +1 -1
- package/dist/components/ScalarHotkey/ScalarHotkey.vue.d.ts +15 -5
- package/dist/components/ScalarHotkey/ScalarHotkey.vue.d.ts.map +1 -1
- package/dist/components/ScalarHotkey/ScalarHotkey.vue.js.map +1 -1
- package/dist/components/ScalarHotkey/ScalarHotkey.vue.script.js.map +1 -1
- package/dist/components/ScalarIcon/IconList.vue.d.ts +15 -4
- package/dist/components/ScalarIcon/IconList.vue.d.ts.map +1 -1
- package/dist/components/ScalarListbox/ScalarListbox.vue.d.ts +37 -24
- package/dist/components/ScalarListbox/ScalarListbox.vue.d.ts.map +1 -1
- package/dist/components/ScalarListbox/ScalarListbox.vue.js.map +1 -1
- package/dist/components/ScalarListbox/ScalarListbox.vue.script.js.map +1 -1
- package/dist/components/ScalarListbox/ScalarListboxCheckbox.vue.d.ts +17 -5
- package/dist/components/ScalarListbox/ScalarListboxCheckbox.vue.d.ts.map +1 -1
- package/dist/components/ScalarListbox/ScalarListboxCheckbox.vue.js.map +1 -1
- package/dist/components/ScalarListbox/ScalarListboxCheckbox.vue.script.js +0 -1
- package/dist/components/ScalarListbox/ScalarListboxCheckbox.vue.script.js.map +1 -1
- package/dist/components/ScalarListbox/ScalarListboxItem.vue.d.ts +16 -5
- package/dist/components/ScalarListbox/ScalarListboxItem.vue.d.ts.map +1 -1
- package/dist/components/ScalarListbox/ScalarListboxItem.vue.js.map +1 -1
- package/dist/components/ScalarListbox/ScalarListboxItem.vue.script.js +0 -1
- package/dist/components/ScalarListbox/ScalarListboxItem.vue.script.js.map +1 -1
- package/dist/components/ScalarMarkdown/ScalarMarkdown.vue.d.ts +11 -2
- package/dist/components/ScalarMarkdown/ScalarMarkdown.vue.d.ts.map +1 -1
- package/dist/components/ScalarMarkdown/ScalarMarkdown.vue.js.map +1 -1
- package/dist/components/ScalarMarkdown/ScalarMarkdown.vue.script.js.map +1 -1
- package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.d.ts +26 -17
- package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.d.ts.map +1 -1
- package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.js.map +1 -1
- package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.script.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenu.vue.d.ts +15 -6
- package/dist/components/ScalarMenu/ScalarMenu.vue.d.ts.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenu.vue.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenu.vue.script.js +0 -1
- package/dist/components/ScalarMenu/ScalarMenu.vue.script.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuButton.vue.d.ts +10 -3
- package/dist/components/ScalarMenu/ScalarMenuButton.vue.d.ts.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuButton.vue.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuButton.vue.script.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuLink.vue.d.ts +21 -10
- package/dist/components/ScalarMenu/ScalarMenuLink.vue.d.ts.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuLink.vue.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuLink.vue.script.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuProduct.vue.d.ts +21 -10
- package/dist/components/ScalarMenu/ScalarMenuProduct.vue.d.ts.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuProduct.vue.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuProduct.vue.script.js +0 -1
- package/dist/components/ScalarMenu/ScalarMenuProduct.vue.script.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuProducts.vue.d.ts +22 -11
- package/dist/components/ScalarMenu/ScalarMenuProducts.vue.d.ts.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuProducts.vue.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuProducts.vue.script.js +0 -1
- package/dist/components/ScalarMenu/ScalarMenuProducts.vue.script.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuResources.vue.d.ts +9 -1
- package/dist/components/ScalarMenu/ScalarMenuResources.vue.d.ts.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuResources.vue.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuResources.vue.script.js +0 -1
- package/dist/components/ScalarMenu/ScalarMenuResources.vue.script.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuSection.vue.d.ts +14 -6
- package/dist/components/ScalarMenu/ScalarMenuSection.vue.d.ts.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuSection.vue.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuSection.vue.script.js +0 -1
- package/dist/components/ScalarMenu/ScalarMenuSection.vue.script.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuSupport.vue.d.ts +9 -1
- package/dist/components/ScalarMenu/ScalarMenuSupport.vue.d.ts.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuSupport.vue.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuSupport.vue.script.js +0 -1
- package/dist/components/ScalarMenu/ScalarMenuSupport.vue.script.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuTeamPicker.vue.d.ts +19 -6
- package/dist/components/ScalarMenu/ScalarMenuTeamPicker.vue.d.ts.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuTeamPicker.vue.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuTeamPicker.vue.script.js +0 -1
- package/dist/components/ScalarMenu/ScalarMenuTeamPicker.vue.script.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuTeamProfile.vue.d.ts +16 -5
- package/dist/components/ScalarMenu/ScalarMenuTeamProfile.vue.d.ts.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuTeamProfile.vue.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuTeamProfile.vue.script.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuWorkspacePicker.vue.d.ts +20 -9
- package/dist/components/ScalarMenu/ScalarMenuWorkspacePicker.vue.d.ts.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuWorkspacePicker.vue.js.map +1 -1
- package/dist/components/ScalarMenu/ScalarMenuWorkspacePicker.vue.script.js.map +1 -1
- package/dist/components/ScalarModal/ScalarModal.vue.d.ts +13 -2
- package/dist/components/ScalarModal/ScalarModal.vue.d.ts.map +1 -1
- package/dist/components/ScalarModal/ScalarModal.vue.js +1 -1
- package/dist/components/ScalarModal/ScalarModal.vue.js.map +1 -1
- package/dist/components/ScalarModal/ScalarModal.vue.script.js +13 -0
- package/dist/components/ScalarModal/ScalarModal.vue.script.js.map +1 -1
- package/dist/components/ScalarPopover/ScalarPopover.vue.d.ts +19 -7
- package/dist/components/ScalarPopover/ScalarPopover.vue.d.ts.map +1 -1
- package/dist/components/ScalarPopover/ScalarPopover.vue.js.map +1 -1
- package/dist/components/ScalarPopover/ScalarPopover.vue.script.js +0 -1
- package/dist/components/ScalarPopover/ScalarPopover.vue.script.js.map +1 -1
- package/dist/components/ScalarSavePrompt/ScalarSavePrompt.vue.d.ts +38 -0
- package/dist/components/ScalarSavePrompt/ScalarSavePrompt.vue.d.ts.map +1 -0
- package/dist/components/ScalarSavePrompt/ScalarSavePrompt.vue.js +7 -0
- package/dist/components/ScalarSavePrompt/ScalarSavePrompt.vue.js.map +1 -0
- package/dist/components/ScalarSavePrompt/ScalarSavePrompt.vue.script.js +66 -0
- package/dist/components/ScalarSavePrompt/ScalarSavePrompt.vue.script.js.map +1 -0
- package/dist/components/ScalarSavePrompt/index.d.ts +2 -0
- package/dist/components/ScalarSavePrompt/index.d.ts.map +1 -0
- package/dist/components/ScalarSearchResults/ScalarSearchResultItem.vue.d.ts +23 -13
- package/dist/components/ScalarSearchResults/ScalarSearchResultItem.vue.d.ts.map +1 -1
- package/dist/components/ScalarSearchResults/ScalarSearchResultItem.vue.js.map +1 -1
- package/dist/components/ScalarSearchResults/ScalarSearchResultItem.vue.script.js.map +1 -1
- package/dist/components/ScalarSearchResults/ScalarSearchResultList.vue.d.ts +21 -11
- package/dist/components/ScalarSearchResults/ScalarSearchResultList.vue.d.ts.map +1 -1
- package/dist/components/ScalarSearchResults/ScalarSearchResultList.vue.js.map +1 -1
- package/dist/components/ScalarSearchResults/ScalarSearchResultList.vue.script.js +0 -1
- package/dist/components/ScalarSearchResults/ScalarSearchResultList.vue.script.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarSearchButton.vue.d.ts +16 -8
- 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.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarSearchInput.vue.d.ts +21 -9
- package/dist/components/ScalarSidebar/ScalarSidebarSearchInput.vue.d.ts.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarSearchInput.vue.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarSearchInput.vue.script.js.map +1 -1
- package/dist/components/ScalarToggle/ScalarToggle.vue.d.ts +20 -9
- package/dist/components/ScalarToggle/ScalarToggle.vue.d.ts.map +1 -1
- package/dist/components/ScalarToggle/ScalarToggle.vue.js.map +1 -1
- package/dist/components/ScalarToggle/ScalarToggle.vue.script.js.map +1 -1
- package/dist/components/ScalarVirtualText/ScalarVirtualText.vue.d.ts +24 -5
- package/dist/components/ScalarVirtualText/ScalarVirtualText.vue.d.ts.map +1 -1
- package/dist/components/ScalarVirtualText/ScalarVirtualText.vue.js.map +1 -1
- package/dist/components/ScalarVirtualText/ScalarVirtualText.vue.script.js +0 -1
- package/dist/components/ScalarVirtualText/ScalarVirtualText.vue.script.js.map +1 -1
- package/dist/index.d.ts +47 -36
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -6
- package/dist/style.css +89 -18
- package/package.json +12 -10
- package/dist/index.js.map +0 -1
|
@@ -1,14 +1,26 @@
|
|
|
1
1
|
import { type ScalarFloatingOptions } from '../ScalarFloating';
|
|
2
2
|
import type { Slots } from './types';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Scalar Popover component
|
|
5
|
+
*
|
|
6
|
+
* A floating panel that appears when a trigger element is clicked.
|
|
7
|
+
* Built on HeadlessUI Popover with Floating UI positioning.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* <ScalarPopover>
|
|
11
|
+
* <button>Open</button>
|
|
12
|
+
* <template #popover="{ close }">Popover content</template>
|
|
13
|
+
* </ScalarPopover>
|
|
14
|
+
*/
|
|
10
15
|
declare const _default: typeof __VLS_export;
|
|
11
16
|
export default _default;
|
|
17
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
18
|
+
/** Automatically focus the popover panel when it opens */
|
|
19
|
+
focus?: boolean;
|
|
20
|
+
} & ScalarFloatingOptions, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
21
|
+
/** Automatically focus the popover panel when it opens */
|
|
22
|
+
focus?: boolean;
|
|
23
|
+
} & ScalarFloatingOptions> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, Slots>;
|
|
12
24
|
type __VLS_WithSlots<T, S> = T & {
|
|
13
25
|
new (): {
|
|
14
26
|
$slots: S;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarPopover.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarPopover/ScalarPopover.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScalarPopover.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarPopover/ScalarPopover.vue"],"names":[],"mappings":"AAwEA,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAGpC;;;;;;;;;;;GAWG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY;IAEd,0DAA0D;YAClD,OAAO;;IADf,0DAA0D;YAClD,OAAO;iIAuIf,CAAC;AACL,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarPopover.vue.js","names":[],"sources":["../../../src/components/ScalarPopover/ScalarPopover.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Popover, PopoverButton, PopoverPanel } from '@headlessui/vue'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport {\n ScalarFloating,\n ScalarFloatingBackdrop,\n type ScalarFloatingOptions,\n} from '../ScalarFloating'\nimport type { Slots } from './types'\n\ndefineProps<\n {\n /** Automatically focus the popover panel when it opens */\n focus?: boolean\n } & ScalarFloatingOptions\n>()\n\ndefineSlots<Slots>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <Popover\n v-slot=\"{ open }\"\n as=\"template\">\n <ScalarFloating v-bind=\"$props\">\n <PopoverButton as=\"template\">\n <slot :open=\"open\" />\n </PopoverButton>\n <template #floating=\"{ width, height }\">\n <PopoverPanel\n v-slot=\"{ close }\"\n :focus=\"focus\"\n :style=\"{ width, height }\"\n v-bind=\"cx('relative flex flex-col p-0.75')\">\n <slot\n :close=\"() => close()\"\n name=\"popover\"\n :open=\"open\" />\n <slot\n name=\"backdrop\"\n :open=\"open\">\n <ScalarFloatingBackdrop />\n </slot>\n </PopoverPanel>\n </template>\n </ScalarFloating>\n </Popover>\n</template>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"ScalarPopover.vue.js","names":[],"sources":["../../../src/components/ScalarPopover/ScalarPopover.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Popover component\n *\n * A floating panel that appears when a trigger element is clicked.\n * Built on HeadlessUI Popover with Floating UI positioning.\n *\n * @example\n * <ScalarPopover>\n * <button>Open</button>\n * <template #popover=\"{ close }\">Popover content</template>\n * </ScalarPopover>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { Popover, PopoverButton, PopoverPanel } from '@headlessui/vue'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport {\n ScalarFloating,\n ScalarFloatingBackdrop,\n type ScalarFloatingOptions,\n} from '../ScalarFloating'\nimport type { Slots } from './types'\n\ndefineProps<\n {\n /** Automatically focus the popover panel when it opens */\n focus?: boolean\n } & ScalarFloatingOptions\n>()\n\ndefineSlots<Slots>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <Popover\n v-slot=\"{ open }\"\n as=\"template\">\n <ScalarFloating v-bind=\"$props\">\n <PopoverButton as=\"template\">\n <slot :open=\"open\" />\n </PopoverButton>\n <template #floating=\"{ width, height }\">\n <PopoverPanel\n v-slot=\"{ close }\"\n :focus=\"focus\"\n :style=\"{ width, height }\"\n v-bind=\"cx('relative flex flex-col p-0.75')\">\n <slot\n :close=\"() => close()\"\n name=\"popover\"\n :open=\"open\" />\n <slot\n name=\"backdrop\"\n :open=\"open\">\n <ScalarFloatingBackdrop />\n </slot>\n </PopoverPanel>\n </template>\n </ScalarFloating>\n </Popover>\n</template>\n"],"mappings":""}
|
|
@@ -3,7 +3,6 @@ import ScalarFloatingBackdrop_default from "../ScalarFloating/ScalarFloatingBack
|
|
|
3
3
|
import { useBindCx } from "@scalar/use-hooks/useBindCx";
|
|
4
4
|
import { createBlock, createVNode, defineComponent, guardReactiveProps, mergeProps, normalizeProps, openBlock, renderSlot, unref, withCtx } from "vue";
|
|
5
5
|
import { Popover, PopoverButton, PopoverPanel } from "@headlessui/vue";
|
|
6
|
-
//#region src/components/ScalarPopover/ScalarPopover.vue?vue&type=script&setup=true&lang.ts
|
|
7
6
|
var ScalarPopover_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
8
7
|
inheritAttrs: false,
|
|
9
8
|
__name: "ScalarPopover",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarPopover.vue.script.js","names":["$props"],"sources":["../../../src/components/ScalarPopover/ScalarPopover.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { Popover, PopoverButton, PopoverPanel } from '@headlessui/vue'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport {\n ScalarFloating,\n ScalarFloatingBackdrop,\n type ScalarFloatingOptions,\n} from '../ScalarFloating'\nimport type { Slots } from './types'\n\ndefineProps<\n {\n /** Automatically focus the popover panel when it opens */\n focus?: boolean\n } & ScalarFloatingOptions\n>()\n\ndefineSlots<Slots>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <Popover\n v-slot=\"{ open }\"\n as=\"template\">\n <ScalarFloating v-bind=\"$props\">\n <PopoverButton as=\"template\">\n <slot :open=\"open\" />\n </PopoverButton>\n <template #floating=\"{ width, height }\">\n <PopoverPanel\n v-slot=\"{ close }\"\n :focus=\"focus\"\n :style=\"{ width, height }\"\n v-bind=\"cx('relative flex flex-col p-0.75')\">\n <slot\n :close=\"() => close()\"\n name=\"popover\"\n :open=\"open\" />\n <slot\n name=\"backdrop\"\n :open=\"open\">\n <ScalarFloatingBackdrop />\n </slot>\n </PopoverPanel>\n </template>\n </ScalarFloating>\n </Popover>\n</template>\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScalarPopover.vue.script.js","names":["$props"],"sources":["../../../src/components/ScalarPopover/ScalarPopover.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Popover component\n *\n * A floating panel that appears when a trigger element is clicked.\n * Built on HeadlessUI Popover with Floating UI positioning.\n *\n * @example\n * <ScalarPopover>\n * <button>Open</button>\n * <template #popover=\"{ close }\">Popover content</template>\n * </ScalarPopover>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { Popover, PopoverButton, PopoverPanel } from '@headlessui/vue'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport {\n ScalarFloating,\n ScalarFloatingBackdrop,\n type ScalarFloatingOptions,\n} from '../ScalarFloating'\nimport type { Slots } from './types'\n\ndefineProps<\n {\n /** Automatically focus the popover panel when it opens */\n focus?: boolean\n } & ScalarFloatingOptions\n>()\n\ndefineSlots<Slots>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <Popover\n v-slot=\"{ open }\"\n as=\"template\">\n <ScalarFloating v-bind=\"$props\">\n <PopoverButton as=\"template\">\n <slot :open=\"open\" />\n </PopoverButton>\n <template #floating=\"{ width, height }\">\n <PopoverPanel\n v-slot=\"{ close }\"\n :focus=\"focus\"\n :style=\"{ width, height }\"\n v-bind=\"cx('relative flex flex-col p-0.75')\">\n <slot\n :close=\"() => close()\"\n name=\"popover\"\n :open=\"open\" />\n <slot\n name=\"backdrop\"\n :open=\"open\">\n <ScalarFloatingBackdrop />\n </slot>\n </PopoverPanel>\n </template>\n </ScalarFloating>\n </Popover>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;EAoCA,MAAM,EAAE,OAAO,WAAU;;uBAGvB,YAyBU,MAAA,QAAA,EAAA,EAvBR,IAAG,YAAU,EAAA;sBAsBI,EAvBP,WAAI,CAEd,YAqBiB,MAAA,uBAAA,EAAA,eAAA,mBArBOA,KAAAA,OAAM,CAAA,EAAA;KAIjB,UAAQ,SAeF,EAfM,OAAO,aAAM,CAClC,YAce,MAAA,aAAA,EAdf,WAce;MAZZ,OAAO,QAAA;MACP,OAAK;OAAI;OAAO;OAAM;QACf,MAAA,GAAE,CAAA,gCAAA,CAAA,EAAA;wBAIO,EAPP,YAAK,CAIf,WAGiB,KAAA,QAAA,WAAA;OAFd,aAAa,OAAK;OAEZ;UACT,WAIO,KAAA,QAAA,YAAA,EAFE,MAAI,QAEN,CADL,YAA0B,MAAA,+BAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;4BAdhB,CAFhB,YAEgB,MAAA,cAAA,EAAA,EAFD,IAAG,YAAU,EAAA;6BACL,CAArB,WAAqB,KAAA,QAAA,WAAA,EAAR,MAAI,CAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { LoadingState } from '../ScalarLoading';
|
|
2
|
+
/**
|
|
3
|
+
* Scalar save prompt
|
|
4
|
+
*
|
|
5
|
+
* Placeholder shell — wire layout, modal, and actions in the host.
|
|
6
|
+
*/
|
|
7
|
+
declare const _default: typeof __VLS_export;
|
|
8
|
+
export default _default;
|
|
9
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
10
|
+
loader?: LoadingState;
|
|
11
|
+
} & {
|
|
12
|
+
modelValue?: boolean;
|
|
13
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
14
|
+
"update:modelValue": (value: boolean) => any;
|
|
15
|
+
} & {
|
|
16
|
+
save: () => any;
|
|
17
|
+
discard: () => any;
|
|
18
|
+
}, string, import("vue").PublicProps, Readonly<{
|
|
19
|
+
loader?: LoadingState;
|
|
20
|
+
} & {
|
|
21
|
+
modelValue?: boolean;
|
|
22
|
+
}> & Readonly<{
|
|
23
|
+
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
24
|
+
onSave?: (() => any) | undefined;
|
|
25
|
+
onDiscard?: (() => any) | undefined;
|
|
26
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
27
|
+
default?: (props: {}) => any;
|
|
28
|
+
} & {
|
|
29
|
+
discard?: (props: {}) => any;
|
|
30
|
+
} & {
|
|
31
|
+
save?: (props: {}) => any;
|
|
32
|
+
}>;
|
|
33
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
34
|
+
new (): {
|
|
35
|
+
$slots: S;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=ScalarSavePrompt.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScalarSavePrompt.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarSavePrompt/ScalarSavePrompt.vue"],"names":[],"mappings":"AA2FA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAGpD;;;;GAIG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY;aAEP,YAAY;;iBAoBV,OAAO;;;;;;;aApBT,YAAY;;iBAoBV,OAAO;;;;;;cAqLN,CAAC,KAAK,IAAgB,KAAK,GAAG;;cAC9B,CAAC,KAAK,IAAiB,KAAK,GAAG;;WAClC,CAAC,KAAK,IAAiB,KAAK,GAAG;EAUtC,CAAC;AACL,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import ScalarSavePrompt_vue_vue_type_script_setup_true_lang_default from "./ScalarSavePrompt.vue.script.js";
|
|
2
|
+
//#region src/components/ScalarSavePrompt/ScalarSavePrompt.vue
|
|
3
|
+
var ScalarSavePrompt_default = ScalarSavePrompt_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { ScalarSavePrompt_default as default };
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=ScalarSavePrompt.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScalarSavePrompt.vue.js","names":[],"sources":["../../../src/components/ScalarSavePrompt/ScalarSavePrompt.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar save prompt\n *\n * Placeholder shell — wire layout, modal, and actions in the host.\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport {\n ScalarIconArrowCounterClockwise,\n ScalarIconFloppyDisk,\n} from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { ScalarButton } from '../ScalarButton'\nimport type { LoadingState } from '../ScalarLoading'\n\ndefineProps<{\n loader?: LoadingState\n}>()\n\nconst emit = defineEmits<{\n (e: 'save'): void\n (e: 'discard'): void\n}>()\n\nconst dirty = defineModel<boolean>({ default: false })\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <Transition\n enterActiveClass=\"transition-transform ease-spring duration-400\"\n enterFromClass=\"translate-y-[200%]\"\n enterToClass=\"translate-y-0\"\n leaveActiveClass=\"transition-transform ease-in duration-100\"\n leaveFromClass=\"translate-y-0\"\n leaveToClass=\"translate-y-[200%]\">\n <div\n v-if=\"dirty || loader?.isActive\"\n aria-live=\"polite\"\n v-bind=\"\n cx(\n 'flex items-center gap-2',\n 'w-content max-w-screen-padded-4 z-context',\n 'fixed left-1/2 -translate-x-1/2 bottom-4',\n 'bg-b-2 p-4 shadow-lg rounded-xl',\n )\n \">\n <div class=\"min-w-0 flex-1 text-c-1 text-base font-medium\">\n <slot>You have unsaved changes</slot>\n </div>\n <div class=\"flex -m-2 shrink-0\">\n <ScalarButton\n size=\"sm\"\n variant=\"ghost\"\n @click=\"emit('discard')\">\n <template #icon>\n <ScalarIconArrowCounterClockwise\n class=\"size-full\"\n weight=\"bold\" />\n </template>\n <slot name=\"discard\">Undo</slot>\n </ScalarButton>\n <ScalarButton\n :loader\n size=\"sm\"\n @click=\"emit('save')\">\n <template #icon>\n <ScalarIconFloppyDisk\n class=\"size-full\"\n weight=\"bold\" />\n </template>\n <slot name=\"save\">Save</slot>\n </ScalarButton>\n </div>\n </div>\n </Transition>\n</template>\n"],"mappings":""}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import ScalarButton_default from "../ScalarButton/ScalarButton.vue.js";
|
|
2
|
+
import { useBindCx } from "@scalar/use-hooks/useBindCx";
|
|
3
|
+
import { Transition, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeModels, mergeProps, openBlock, renderSlot, unref, useModel, withCtx } from "vue";
|
|
4
|
+
import { ScalarIconArrowCounterClockwise, ScalarIconFloppyDisk } from "@scalar/icons";
|
|
5
|
+
//#region src/components/ScalarSavePrompt/ScalarSavePrompt.vue?vue&type=script&setup=true&lang.ts
|
|
6
|
+
var _hoisted_1 = { class: "min-w-0 flex-1 text-c-1 text-base font-medium" };
|
|
7
|
+
var _hoisted_2 = { class: "flex -m-2 shrink-0" };
|
|
8
|
+
var ScalarSavePrompt_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
9
|
+
inheritAttrs: false,
|
|
10
|
+
__name: "ScalarSavePrompt",
|
|
11
|
+
props: /* @__PURE__ */ mergeModels({ loader: {} }, {
|
|
12
|
+
"modelValue": {
|
|
13
|
+
type: Boolean,
|
|
14
|
+
default: false
|
|
15
|
+
},
|
|
16
|
+
"modelModifiers": {}
|
|
17
|
+
}),
|
|
18
|
+
emits: /* @__PURE__ */ mergeModels(["save", "discard"], ["update:modelValue"]),
|
|
19
|
+
setup(__props, { emit: __emit }) {
|
|
20
|
+
const emit = __emit;
|
|
21
|
+
const dirty = useModel(__props, "modelValue");
|
|
22
|
+
const { cx } = useBindCx();
|
|
23
|
+
return (_ctx, _cache) => {
|
|
24
|
+
return openBlock(), createBlock(Transition, {
|
|
25
|
+
enterActiveClass: "transition-transform ease-spring duration-400",
|
|
26
|
+
enterFromClass: "translate-y-[200%]",
|
|
27
|
+
enterToClass: "translate-y-0",
|
|
28
|
+
leaveActiveClass: "transition-transform ease-in duration-100",
|
|
29
|
+
leaveFromClass: "translate-y-0",
|
|
30
|
+
leaveToClass: "translate-y-[200%]"
|
|
31
|
+
}, {
|
|
32
|
+
default: withCtx(() => [dirty.value || __props.loader?.isActive ? (openBlock(), createElementBlock("div", mergeProps({
|
|
33
|
+
key: 0,
|
|
34
|
+
"aria-live": "polite"
|
|
35
|
+
}, unref(cx)("flex items-center gap-2", "w-content max-w-screen-padded-4 z-context", "fixed left-1/2 -translate-x-1/2 bottom-4", "bg-b-2 p-4 shadow-lg rounded-xl")), [createElementVNode("div", _hoisted_1, [renderSlot(_ctx.$slots, "default", {}, () => [_cache[2] || (_cache[2] = createTextVNode("You have unsaved changes", -1))])]), createElementVNode("div", _hoisted_2, [createVNode(unref(ScalarButton_default), {
|
|
36
|
+
size: "sm",
|
|
37
|
+
variant: "ghost",
|
|
38
|
+
onClick: _cache[0] || (_cache[0] = ($event) => emit("discard"))
|
|
39
|
+
}, {
|
|
40
|
+
icon: withCtx(() => [createVNode(unref(ScalarIconArrowCounterClockwise), {
|
|
41
|
+
class: "size-full",
|
|
42
|
+
weight: "bold"
|
|
43
|
+
})]),
|
|
44
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "discard", {}, () => [_cache[3] || (_cache[3] = createTextVNode("Undo", -1))])]),
|
|
45
|
+
_: 3
|
|
46
|
+
}), createVNode(unref(ScalarButton_default), {
|
|
47
|
+
loader: __props.loader,
|
|
48
|
+
size: "sm",
|
|
49
|
+
onClick: _cache[1] || (_cache[1] = ($event) => emit("save"))
|
|
50
|
+
}, {
|
|
51
|
+
icon: withCtx(() => [createVNode(unref(ScalarIconFloppyDisk), {
|
|
52
|
+
class: "size-full",
|
|
53
|
+
weight: "bold"
|
|
54
|
+
})]),
|
|
55
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "save", {}, () => [_cache[4] || (_cache[4] = createTextVNode("Save", -1))])]),
|
|
56
|
+
_: 3
|
|
57
|
+
}, 8, ["loader"])])], 16)) : createCommentVNode("", true)]),
|
|
58
|
+
_: 3
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
//#endregion
|
|
64
|
+
export { ScalarSavePrompt_vue_vue_type_script_setup_true_lang_default as default };
|
|
65
|
+
|
|
66
|
+
//# sourceMappingURL=ScalarSavePrompt.vue.script.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScalarSavePrompt.vue.script.js","names":[],"sources":["../../../src/components/ScalarSavePrompt/ScalarSavePrompt.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar save prompt\n *\n * Placeholder shell — wire layout, modal, and actions in the host.\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport {\n ScalarIconArrowCounterClockwise,\n ScalarIconFloppyDisk,\n} from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { ScalarButton } from '../ScalarButton'\nimport type { LoadingState } from '../ScalarLoading'\n\ndefineProps<{\n loader?: LoadingState\n}>()\n\nconst emit = defineEmits<{\n (e: 'save'): void\n (e: 'discard'): void\n}>()\n\nconst dirty = defineModel<boolean>({ default: false })\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <Transition\n enterActiveClass=\"transition-transform ease-spring duration-400\"\n enterFromClass=\"translate-y-[200%]\"\n enterToClass=\"translate-y-0\"\n leaveActiveClass=\"transition-transform ease-in duration-100\"\n leaveFromClass=\"translate-y-0\"\n leaveToClass=\"translate-y-[200%]\">\n <div\n v-if=\"dirty || loader?.isActive\"\n aria-live=\"polite\"\n v-bind=\"\n cx(\n 'flex items-center gap-2',\n 'w-content max-w-screen-padded-4 z-context',\n 'fixed left-1/2 -translate-x-1/2 bottom-4',\n 'bg-b-2 p-4 shadow-lg rounded-xl',\n )\n \">\n <div class=\"min-w-0 flex-1 text-c-1 text-base font-medium\">\n <slot>You have unsaved changes</slot>\n </div>\n <div class=\"flex -m-2 shrink-0\">\n <ScalarButton\n size=\"sm\"\n variant=\"ghost\"\n @click=\"emit('discard')\">\n <template #icon>\n <ScalarIconArrowCounterClockwise\n class=\"size-full\"\n weight=\"bold\" />\n </template>\n <slot name=\"discard\">Undo</slot>\n </ScalarButton>\n <ScalarButton\n :loader\n size=\"sm\"\n @click=\"emit('save')\">\n <template #icon>\n <ScalarIconFloppyDisk\n class=\"size-full\"\n weight=\"bold\" />\n </template>\n <slot name=\"save\">Save</slot>\n </ScalarButton>\n </div>\n </div>\n </Transition>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;EAsBA,MAAM,OAAO;EAKb,MAAM,QAAQ,SAAoB,SAAA,aAAmB;EAGrD,MAAM,EAAE,OAAO,WAAU;;uBAGvB,YA8Ca,YAAA;IA7CX,kBAAiB;IACjB,gBAAe;IACf,cAAa;IACb,kBAAiB;IACjB,gBAAe;IACf,cAAa;;2BAuCP,CArCE,MAAA,SAAS,QAAA,QAAQ,YAAA,WAAA,EADzB,mBAsCM,OAtCN,WAsCM;;KApCJ,aAAU;OACO,MAAA,GAAE,CAAA,2BAAA,6CAAA,4CAAA,kCAAA,CAAA,EAAA,CAQnB,mBAEM,OAFN,YAEM,CADJ,WAAqC,KAAA,QAAA,WAAA,EAAA,QAAA,CAAA,OAAA,OAAA,OAAA,KAAA,gBAA/B,4BAAwB,GAAA,EAAA,CAAA,CAAA,CAAA,EAEhC,mBAuBM,OAvBN,YAuBM,CAtBJ,YAUe,MAAA,qBAAA,EAAA;KATb,MAAK;KACL,SAAQ;KACP,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,UAAA;;KACD,MAAI,cAGK,CAFlB,YAEkB,MAAA,gCAAA,EAAA;MADhB,OAAM;MACN,QAAO;;4BAEqB,CAAhC,WAAgC,KAAA,QAAA,WAAA,EAAA,QAAA,CAAA,OAAA,OAAA,OAAA,KAAA,gBAAX,QAAI,GAAA,EAAA,CAAA,CAAA,CAAA;;QAE3B,YAUe,MAAA,qBAAA,EAAA;KATZ,QAAA,QAAA;KACD,MAAK;KACJ,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,OAAA;;KACD,MAAI,cAGK,CAFlB,YAEkB,MAAA,qBAAA,EAAA;MADhB,OAAM;MACN,QAAO;;4BAEkB,CAA7B,WAA6B,KAAA,QAAA,QAAA,EAAA,QAAA,CAAA,OAAA,OAAA,OAAA,KAAA,gBAAX,QAAI,GAAA,EAAA,CAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarSavePrompt/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAA"}
|
|
@@ -1,23 +1,33 @@
|
|
|
1
1
|
import type { ScalarIconComponent } from '@scalar/icons/types';
|
|
2
2
|
import { type Icon } from '../ScalarIcon';
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Scalar Search Result Item component
|
|
5
|
+
*
|
|
6
|
+
* A single search result entry with an optional icon, description, and addon slot.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* <ScalarSearchResultItem :icon="ScalarIconFile">
|
|
10
|
+
* Result Title
|
|
11
|
+
* <template #description>Result description</template>
|
|
12
|
+
* </ScalarSearchResultItem>
|
|
13
|
+
*/
|
|
14
|
+
declare const _default: typeof __VLS_export;
|
|
15
|
+
export default _default;
|
|
16
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
4
17
|
icon?: Icon | ScalarIconComponent;
|
|
5
18
|
selected?: boolean;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
19
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
20
|
+
icon?: Icon | ScalarIconComponent;
|
|
21
|
+
selected?: boolean;
|
|
22
|
+
}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
23
|
+
icon?: (props: {}) => any;
|
|
10
24
|
} & {
|
|
11
|
-
default?: (props:
|
|
25
|
+
default?: (props: {}) => any;
|
|
12
26
|
} & {
|
|
13
|
-
addon?: (props:
|
|
27
|
+
addon?: (props: {}) => any;
|
|
14
28
|
} & {
|
|
15
|
-
description?: (props:
|
|
16
|
-
}
|
|
17
|
-
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
18
|
-
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
19
|
-
declare const _default: typeof __VLS_export;
|
|
20
|
-
export default _default;
|
|
29
|
+
description?: (props: {}) => any;
|
|
30
|
+
}>;
|
|
21
31
|
type __VLS_WithSlots<T, S> = T & {
|
|
22
32
|
new (): {
|
|
23
33
|
$slots: S;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarSearchResultItem.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarSearchResults/ScalarSearchResultItem.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScalarSearchResultItem.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarSearchResults/ScalarSearchResultItem.vue"],"names":[],"mappings":"AA2EA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAG9D,OAAO,EAAE,KAAK,IAAI,EAA2B,MAAM,eAAe,CAAA;AAGlE;;;;;;;;;;GAUG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY;WAET,IAAI,GAAG,mBAAmB;eACtB,OAAO;;WADX,IAAI,GAAG,mBAAmB;eACtB,OAAO;;WAkHT,CAAC,KAAK,IAAgB,KAAK,GAAG;;cAC3B,CAAC,KAAK,IAAgB,KAAK,GAAG;;YAChC,CAAC,KAAK,IAAiB,KAAK,GAAG;;kBACzB,CAAC,KAAK,IAAiB,KAAK,GAAG;EAS7C,CAAC;AACL,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarSearchResultItem.vue.js","names":[],"sources":["../../../src/components/ScalarSearchResults/ScalarSearchResultItem.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ScalarIconComponent } from '@scalar/icons/types'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { type Icon, ScalarIconLegacyAdapter } from '../ScalarIcon'\n\ndefineProps<{\n icon?: Icon | ScalarIconComponent\n selected?: boolean\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <a\n :aria-selected=\"selected\"\n role=\"option\"\n tabindex=\"-1\"\n v-bind=\"\n cx(\n 'group flex cursor-pointer gap-2 rounded px-2 py-1.5 no-underline hover:bg-b-2 text-base/5',\n { 'bg-b-2': selected },\n )\n \">\n <!-- Icon -->\n <div\n v-if=\"icon\"\n class=\"flex h-fit items-center text-sm font-medium text-c-3 group-hover:text-c-1\">\n <slot name=\"icon\">\n <ScalarIconLegacyAdapter\n v-if=\"icon\"\n class=\"size-4\"\n :icon=\"icon\" />\n </slot>\n <span> </span>\n </div>\n <!-- Content -->\n <div class=\"flex min-w-0 flex-1 flex-col gap-0.5\">\n <div class=\"flex items-center gap-1\">\n <div\n class=\"flex-1 truncate zoomed:whitespace-normal! wrap-break-word font-medium\">\n <slot />\n </div>\n <div\n v-if=\"$slots.addon\"\n class=\"text-base text-c-2\">\n <slot name=\"addon\" />\n </div>\n </div>\n <div\n v-if=\"$slots.description\"\n class=\"truncate zoomed:whitespace-normal! wrap-break-word text-c-2\">\n <slot name=\"description\" />\n </div>\n </div>\n </a>\n</template>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"ScalarSearchResultItem.vue.js","names":[],"sources":["../../../src/components/ScalarSearchResults/ScalarSearchResultItem.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Search Result Item component\n *\n * A single search result entry with an optional icon, description, and addon slot.\n *\n * @example\n * <ScalarSearchResultItem :icon=\"ScalarIconFile\">\n * Result Title\n * <template #description>Result description</template>\n * </ScalarSearchResultItem>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport type { ScalarIconComponent } from '@scalar/icons/types'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { type Icon, ScalarIconLegacyAdapter } from '../ScalarIcon'\n\ndefineProps<{\n icon?: Icon | ScalarIconComponent\n selected?: boolean\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <a\n :aria-selected=\"selected\"\n role=\"option\"\n tabindex=\"-1\"\n v-bind=\"\n cx(\n 'group flex cursor-pointer gap-2 rounded px-2 py-1.5 no-underline hover:bg-b-2 text-base/5',\n { 'bg-b-2': selected },\n )\n \">\n <!-- Icon -->\n <div\n v-if=\"icon\"\n class=\"flex h-fit items-center text-sm font-medium text-c-3 group-hover:text-c-1\">\n <slot name=\"icon\">\n <ScalarIconLegacyAdapter\n v-if=\"icon\"\n class=\"size-4\"\n :icon=\"icon\" />\n </slot>\n <span> </span>\n </div>\n <!-- Content -->\n <div class=\"flex min-w-0 flex-1 flex-col gap-0.5\">\n <div class=\"flex items-center gap-1\">\n <div\n class=\"flex-1 truncate zoomed:whitespace-normal! wrap-break-word font-medium\">\n <slot />\n </div>\n <div\n v-if=\"$slots.addon\"\n class=\"text-base text-c-2\">\n <slot name=\"addon\" />\n </div>\n </div>\n <div\n v-if=\"$slots.description\"\n class=\"truncate zoomed:whitespace-normal! wrap-break-word text-c-2\">\n <slot name=\"description\" />\n </div>\n </div>\n </a>\n</template>\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarSearchResultItem.vue.script.js","names":["$slots"],"sources":["../../../src/components/ScalarSearchResults/ScalarSearchResultItem.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ScalarIconComponent } from '@scalar/icons/types'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { type Icon, ScalarIconLegacyAdapter } from '../ScalarIcon'\n\ndefineProps<{\n icon?: Icon | ScalarIconComponent\n selected?: boolean\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <a\n :aria-selected=\"selected\"\n role=\"option\"\n tabindex=\"-1\"\n v-bind=\"\n cx(\n 'group flex cursor-pointer gap-2 rounded px-2 py-1.5 no-underline hover:bg-b-2 text-base/5',\n { 'bg-b-2': selected },\n )\n \">\n <!-- Icon -->\n <div\n v-if=\"icon\"\n class=\"flex h-fit items-center text-sm font-medium text-c-3 group-hover:text-c-1\">\n <slot name=\"icon\">\n <ScalarIconLegacyAdapter\n v-if=\"icon\"\n class=\"size-4\"\n :icon=\"icon\" />\n </slot>\n <span> </span>\n </div>\n <!-- Content -->\n <div class=\"flex min-w-0 flex-1 flex-col gap-0.5\">\n <div class=\"flex items-center gap-1\">\n <div\n class=\"flex-1 truncate zoomed:whitespace-normal! wrap-break-word font-medium\">\n <slot />\n </div>\n <div\n v-if=\"$slots.addon\"\n class=\"text-base text-c-2\">\n <slot name=\"addon\" />\n </div>\n </div>\n <div\n v-if=\"$slots.description\"\n class=\"truncate zoomed:whitespace-normal! wrap-break-word text-c-2\">\n <slot name=\"description\" />\n </div>\n </div>\n </a>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"ScalarSearchResultItem.vue.script.js","names":["$slots"],"sources":["../../../src/components/ScalarSearchResults/ScalarSearchResultItem.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Search Result Item component\n *\n * A single search result entry with an optional icon, description, and addon slot.\n *\n * @example\n * <ScalarSearchResultItem :icon=\"ScalarIconFile\">\n * Result Title\n * <template #description>Result description</template>\n * </ScalarSearchResultItem>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport type { ScalarIconComponent } from '@scalar/icons/types'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { type Icon, ScalarIconLegacyAdapter } from '../ScalarIcon'\n\ndefineProps<{\n icon?: Icon | ScalarIconComponent\n selected?: boolean\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <a\n :aria-selected=\"selected\"\n role=\"option\"\n tabindex=\"-1\"\n v-bind=\"\n cx(\n 'group flex cursor-pointer gap-2 rounded px-2 py-1.5 no-underline hover:bg-b-2 text-base/5',\n { 'bg-b-2': selected },\n )\n \">\n <!-- Icon -->\n <div\n v-if=\"icon\"\n class=\"flex h-fit items-center text-sm font-medium text-c-3 group-hover:text-c-1\">\n <slot name=\"icon\">\n <ScalarIconLegacyAdapter\n v-if=\"icon\"\n class=\"size-4\"\n :icon=\"icon\" />\n </slot>\n <span> </span>\n </div>\n <!-- Content -->\n <div class=\"flex min-w-0 flex-1 flex-col gap-0.5\">\n <div class=\"flex items-center gap-1\">\n <div\n class=\"flex-1 truncate zoomed:whitespace-normal! wrap-break-word font-medium\">\n <slot />\n </div>\n <div\n v-if=\"$slots.addon\"\n class=\"text-base text-c-2\">\n <slot name=\"addon\" />\n </div>\n </div>\n <div\n v-if=\"$slots.description\"\n class=\"truncate zoomed:whitespace-normal! wrap-break-word text-c-2\">\n <slot name=\"description\" />\n </div>\n </div>\n </a>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BA,MAAM,EAAE,OAAO,WAAU;;uBAGvB,mBAyCI,KAzCJ,WAyCI;IAxCD,iBAAe,QAAA;IAChB,MAAK;IACL,UAAS;MACM,MAAA,GAAE,CAAA,6FAAA,EAAA,UAA2H,QAAA,UAAQ,CAAA,CAAA,EAAA,CAQ5I,QAAA,QAAA,WAAA,EADR,mBAUM,OAVN,YAUM,CAPJ,WAKO,KAAA,QAAA,QAAA,EAAA,QAAA,CAHG,QAAA,QAAA,WAAA,EADR,YAGiB,MAAA,gCAAA,EAAA;;IADf,OAAM;IACL,MAAM,QAAA;sFAEX,mBAAqB,QAAA,MAAf,KAAQ,GAAA,EAAA,CAAA,IAAA,mBAAA,IAAA,KAAA,EAGhB,mBAiBM,OAjBN,YAiBM,CAhBJ,mBAUM,OAVN,YAUM,CATJ,mBAGM,OAHN,YAGM,CADJ,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA,EAGFA,KAAAA,OAAO,SAAA,WAAA,EADf,mBAIM,OAJN,YAIM,CADJ,WAAqB,KAAA,QAAA,QAAA,CAAA,CAAA,IAAA,mBAAA,IAAA,KAAA,CAAA,CAAA,EAIjBA,KAAAA,OAAO,eAAA,WAAA,EADf,mBAIM,OAJN,YAIM,CADJ,WAA2B,KAAA,QAAA,cAAA,CAAA,CAAA,IAAA,mBAAA,IAAA,KAAA,CAAA,CAAA,CAAA,EAAA,IAAA,WAAA"}
|
|
@@ -1,16 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Scalar Search Result List component
|
|
3
|
+
*
|
|
4
|
+
* A container for search result items with a "no results" fallback.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* <ScalarSearchResultList :noResults="results.length === 0">
|
|
8
|
+
* <ScalarSearchResultItem v-for="r in results" :key="r.id">
|
|
9
|
+
* {{ r.label }}
|
|
10
|
+
* </ScalarSearchResultItem>
|
|
11
|
+
* </ScalarSearchResultList>
|
|
12
|
+
*/
|
|
12
13
|
declare const _default: typeof __VLS_export;
|
|
13
14
|
export default _default;
|
|
15
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
16
|
+
noResults?: boolean;
|
|
17
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
18
|
+
noResults?: boolean;
|
|
19
|
+
}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
20
|
+
noResults?: (props: {}) => any;
|
|
21
|
+
} & {
|
|
22
|
+
default?: (props: {}) => any;
|
|
23
|
+
}>;
|
|
14
24
|
type __VLS_WithSlots<T, S> = T & {
|
|
15
25
|
new (): {
|
|
16
26
|
$slots: S;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarSearchResultList.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarSearchResults/ScalarSearchResultList.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScalarSearchResultList.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarSearchResults/ScalarSearchResultList.vue"],"names":[],"mappings":"AAiDA;;;;;;;;;;;GAWG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY;gBAEJ,OAAO;;gBAAP,OAAO;;gBAqDL,CAAC,KAAK,IAAgB,KAAK,GAAG;;cAChC,CAAC,KAAK,IAAgB,KAAK,GAAG;EASxC,CAAC;AACL,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarSearchResultList.vue.js","names":[],"sources":["../../../src/components/ScalarSearchResults/ScalarSearchResultList.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineProps<{\n noResults?: boolean\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n role=\"listbox\"\n v-bind=\"cx('flex flex-col')\">\n <slot\n v-if=\"noResults\"\n name=\"noResults\">\n <div class=\"flex flex-col items-center gap-2 px-3 py-4\">\n <div\n class=\"text-base font-medium text-c-2\"\n role=\"alert\">\n No results found\n </div>\n </div>\n </slot>\n <slot />\n </div>\n</template>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"ScalarSearchResultList.vue.js","names":[],"sources":["../../../src/components/ScalarSearchResults/ScalarSearchResultList.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Search Result List component\n *\n * A container for search result items with a \"no results\" fallback.\n *\n * @example\n * <ScalarSearchResultList :noResults=\"results.length === 0\">\n * <ScalarSearchResultItem v-for=\"r in results\" :key=\"r.id\">\n * {{ r.label }}\n * </ScalarSearchResultItem>\n * </ScalarSearchResultList>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineProps<{\n noResults?: boolean\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n role=\"listbox\"\n v-bind=\"cx('flex flex-col')\">\n <slot\n v-if=\"noResults\"\n name=\"noResults\">\n <div class=\"flex flex-col items-center gap-2 px-3 py-4\">\n <div\n class=\"text-base font-medium text-c-2\"\n role=\"alert\">\n No results found\n </div>\n </div>\n </slot>\n <slot />\n </div>\n</template>\n"],"mappings":""}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { useBindCx } from "@scalar/use-hooks/useBindCx";
|
|
2
2
|
import { createCommentVNode, createElementBlock, createElementVNode, defineComponent, mergeProps, openBlock, renderSlot, unref } from "vue";
|
|
3
|
-
//#region src/components/ScalarSearchResults/ScalarSearchResultList.vue?vue&type=script&setup=true&lang.ts
|
|
4
3
|
var ScalarSearchResultList_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
5
4
|
inheritAttrs: false,
|
|
6
5
|
__name: "ScalarSearchResultList",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarSearchResultList.vue.script.js","names":[],"sources":["../../../src/components/ScalarSearchResults/ScalarSearchResultList.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineProps<{\n noResults?: boolean\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n role=\"listbox\"\n v-bind=\"cx('flex flex-col')\">\n <slot\n v-if=\"noResults\"\n name=\"noResults\">\n <div class=\"flex flex-col items-center gap-2 px-3 py-4\">\n <div\n class=\"text-base font-medium text-c-2\"\n role=\"alert\">\n No results found\n </div>\n </div>\n </slot>\n <slot />\n </div>\n</template>\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScalarSearchResultList.vue.script.js","names":[],"sources":["../../../src/components/ScalarSearchResults/ScalarSearchResultList.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Search Result List component\n *\n * A container for search result items with a \"no results\" fallback.\n *\n * @example\n * <ScalarSearchResultList :noResults=\"results.length === 0\">\n * <ScalarSearchResultItem v-for=\"r in results\" :key=\"r.id\">\n * {{ r.label }}\n * </ScalarSearchResultItem>\n * </ScalarSearchResultList>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineProps<{\n noResults?: boolean\n}>()\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n role=\"listbox\"\n v-bind=\"cx('flex flex-col')\">\n <slot\n v-if=\"noResults\"\n name=\"noResults\">\n <div class=\"flex flex-col items-center gap-2 px-3 py-4\">\n <div\n class=\"text-base font-medium text-c-2\"\n role=\"alert\">\n No results found\n </div>\n </div>\n </slot>\n <slot />\n </div>\n</template>\n"],"mappings":";;;;;;;EAuBA,MAAM,EAAE,OAAO,WAAU;;uBAGvB,mBAeM,OAfN,WAeM,EAdJ,MAAK,WAAS,EACN,MAAA,GAAE,CAAA,gBAAA,CAAA,EAAA,CAEF,QAAA,YADR,WAUO,KAAA,QAAA,aAAA,EAAA,KAAA,GAAA,QAAA,CAAA,OAAA,OAAA,OAAA,KAPL,mBAMM,OAAA,EAND,OAAM,8CAA4C,EAAA,CACrD,mBAIM,OAAA;IAHJ,OAAM;IACN,MAAK;MAAQ,qBAEf,CAAA,EAAA,GAAA,EAAA,CAAA,GAAA,mBAAA,IAAA,KAAA,EAGJ,WAAQ,KAAA,QAAA,UAAA,CAAA,EAAA,GAAA"}
|
|
@@ -1,13 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Scalar Sidebar Search Button component
|
|
3
|
+
*
|
|
4
|
+
* A styled button that serves as a search trigger in the sidebar.
|
|
5
|
+
* Displays a magnifying glass icon and an optional keyboard shortcut.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* <ScalarSidebarSearchButton>
|
|
9
|
+
* <template #shortcut>⌘K</template>
|
|
10
|
+
* </ScalarSidebarSearchButton>
|
|
11
|
+
*/
|
|
9
12
|
declare const _default: typeof __VLS_export;
|
|
10
13
|
export default _default;
|
|
14
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, {
|
|
15
|
+
default?: (props: {}) => any;
|
|
16
|
+
} & {
|
|
17
|
+
shortcut?: (props: {}) => any;
|
|
18
|
+
}>;
|
|
11
19
|
type __VLS_WithSlots<T, S> = T & {
|
|
12
20
|
new (): {
|
|
13
21
|
$slots: S;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarSidebarSearchButton.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarSidebar/ScalarSidebarSearchButton.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScalarSidebarSearchButton.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarSidebar/ScalarSidebarSearchButton.vue"],"names":[],"mappings":"AAoDA;;;;;;;;;;GAUG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY;cAyEJ,CAAC,KAAK,IAAgB,KAAK,GAAG;;eAC7B,CAAC,KAAK,IAAgB,KAAK,GAAG;EAQzC,CAAC;AACL,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarSidebarSearchButton.vue.js","names":[],"sources":["../../../src/components/ScalarSidebar/ScalarSidebarSearchButton.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIconMagnifyingGlass } from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <button\n role=\"search\"\n type=\"button\"\n v-bind=\"\n cx(\n 'flex items-center rounded border text-base h-8 gap-1 pl-2 pr-1',\n 'bg-sidebar-b-search border-sidebar-border-search text-sidebar-c-search',\n )\n \">\n <ScalarIconMagnifyingGlass class=\"size-4\" />\n <span class=\"flex-1 text-left leading-none\">\n <slot>Search...</slot>\n </span>\n <span\n v-if=\"$slots.shortcut\"\n class=\"uppercase text-sidebar-c-2 leading-none py-1 px-1.25 rounded text-xs font-medium border\">\n <span class=\"sr-only\">Keyboard Shortcut:</span>\n <kbd>\n <slot name=\"shortcut\" />\n </kbd>\n </span>\n </button>\n</template>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"ScalarSidebarSearchButton.vue.js","names":[],"sources":["../../../src/components/ScalarSidebar/ScalarSidebarSearchButton.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Sidebar Search Button component\n *\n * A styled button that serves as a search trigger in the sidebar.\n * Displays a magnifying glass icon and an optional keyboard shortcut.\n *\n * @example\n * <ScalarSidebarSearchButton>\n * <template #shortcut>⌘K</template>\n * </ScalarSidebarSearchButton>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconMagnifyingGlass } from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <button\n role=\"search\"\n type=\"button\"\n v-bind=\"\n cx(\n 'flex items-center rounded border text-base h-8 gap-1 pl-2 pr-1',\n 'bg-sidebar-b-search border-sidebar-border-search text-sidebar-c-search',\n )\n \">\n <ScalarIconMagnifyingGlass class=\"size-4\" />\n <span class=\"flex-1 text-left leading-none\">\n <slot>Search...</slot>\n </span>\n <span\n v-if=\"$slots.shortcut\"\n class=\"uppercase text-sidebar-c-2 leading-none py-1 px-1.25 rounded text-xs font-medium border\">\n <span class=\"sr-only\">Keyboard Shortcut:</span>\n <kbd>\n <slot name=\"shortcut\" />\n </kbd>\n </span>\n </button>\n</template>\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarSidebarSearchButton.vue.script.js","names":["$slots"],"sources":["../../../src/components/ScalarSidebar/ScalarSidebarSearchButton.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIconMagnifyingGlass } from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <button\n role=\"search\"\n type=\"button\"\n v-bind=\"\n cx(\n 'flex items-center rounded border text-base h-8 gap-1 pl-2 pr-1',\n 'bg-sidebar-b-search border-sidebar-border-search text-sidebar-c-search',\n )\n \">\n <ScalarIconMagnifyingGlass class=\"size-4\" />\n <span class=\"flex-1 text-left leading-none\">\n <slot>Search...</slot>\n </span>\n <span\n v-if=\"$slots.shortcut\"\n class=\"uppercase text-sidebar-c-2 leading-none py-1 px-1.25 rounded text-xs font-medium border\">\n <span class=\"sr-only\">Keyboard Shortcut:</span>\n <kbd>\n <slot name=\"shortcut\" />\n </kbd>\n </span>\n </button>\n</template>\n"],"mappings":";;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"ScalarSidebarSearchButton.vue.script.js","names":["$slots"],"sources":["../../../src/components/ScalarSidebar/ScalarSidebarSearchButton.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Sidebar Search Button component\n *\n * A styled button that serves as a search trigger in the sidebar.\n * Displays a magnifying glass icon and an optional keyboard shortcut.\n *\n * @example\n * <ScalarSidebarSearchButton>\n * <template #shortcut>⌘K</template>\n * </ScalarSidebarSearchButton>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconMagnifyingGlass } from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <button\n role=\"search\"\n type=\"button\"\n v-bind=\"\n cx(\n 'flex items-center rounded border text-base h-8 gap-1 pl-2 pr-1',\n 'bg-sidebar-b-search border-sidebar-border-search text-sidebar-c-search',\n )\n \">\n <ScalarIconMagnifyingGlass class=\"size-4\" />\n <span class=\"flex-1 text-left leading-none\">\n <slot>Search...</slot>\n </span>\n <span\n v-if=\"$slots.shortcut\"\n class=\"uppercase text-sidebar-c-2 leading-none py-1 px-1.25 rounded text-xs font-medium border\">\n <span class=\"sr-only\">Keyboard Shortcut:</span>\n <kbd>\n <slot name=\"shortcut\" />\n </kbd>\n </span>\n </button>\n</template>\n"],"mappings":";;;;;;;;;;;;;EAmBA,MAAM,EAAE,OAAO,WAAU;;uBAGvB,mBAqBS,UArBT,WAqBS;IApBP,MAAK;IACL,MAAK;MACU,MAAA,GAAE,CAAA,kEAAA,yEAAA,CAAA,EAAA;IAMjB,YAA4C,MAAA,0BAAA,EAAA,EAAjB,OAAM,UAAQ,CAAA;IACzC,mBAEO,QAFP,YAEO,CADL,WAAsB,KAAA,QAAA,WAAA,EAAA,QAAA,CAAA,OAAA,OAAA,OAAA,KAAA,gBAAhB,aAAS,GAAA,EAAA,CAAA,CAAA,CAAA;IAGTA,KAAAA,OAAO,YAAA,WAAA,EADf,mBAOO,QAPP,YAOO,CAAA,OAAA,OAAA,OAAA,KAJL,mBAA+C,QAAA,EAAzC,OAAM,WAAS,EAAC,sBAAkB,GAAA,GACxC,mBAEM,OAAA,MAAA,CADJ,WAAwB,KAAA,QAAA,WAAA,CAAA,CAAA,CAAA,CAAA,IAAA,mBAAA,IAAA,KAAA"}
|
|
@@ -1,18 +1,30 @@
|
|
|
1
1
|
import { type LoadingState } from '../ScalarLoading';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Scalar Sidebar Search Input component
|
|
4
|
+
*
|
|
5
|
+
* An inline search input for the sidebar with a clear button
|
|
6
|
+
* and optional loading indicator.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* <ScalarSidebarSearchInput v-model="query" />
|
|
10
|
+
*/
|
|
11
|
+
declare const _default: typeof __VLS_export;
|
|
12
|
+
export default _default;
|
|
13
|
+
declare const __VLS_export: import("vue").DefineComponent<{
|
|
3
14
|
autofocus?: boolean;
|
|
4
15
|
loader?: LoadingState;
|
|
5
16
|
label?: string;
|
|
6
|
-
}
|
|
7
|
-
type __VLS_ModelProps = {
|
|
17
|
+
} & {
|
|
8
18
|
modelValue?: string;
|
|
9
|
-
}
|
|
10
|
-
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
11
|
-
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
19
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
12
20
|
"update:modelValue": (value: string | undefined) => any;
|
|
13
|
-
}, string, import("vue").PublicProps, Readonly<
|
|
21
|
+
}, string, import("vue").PublicProps, Readonly<{
|
|
22
|
+
autofocus?: boolean;
|
|
23
|
+
loader?: LoadingState;
|
|
24
|
+
label?: string;
|
|
25
|
+
} & {
|
|
26
|
+
modelValue?: string;
|
|
27
|
+
}> & Readonly<{
|
|
14
28
|
"onUpdate:modelValue"?: ((value: string | undefined) => any) | undefined;
|
|
15
29
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
16
|
-
declare const _default: typeof __VLS_export;
|
|
17
|
-
export default _default;
|
|
18
30
|
//# sourceMappingURL=ScalarSidebarSearchInput.vue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarSidebarSearchInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarSidebar/ScalarSidebarSearchInput.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScalarSidebarSearchInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarSidebar/ScalarSidebarSearchInput.vue"],"names":[],"mappings":"AAuFA,OAAO,EAAE,KAAK,YAAY,EAAiB,MAAM,kBAAkB,CAAA;AAGnE;;;;;;;;GAQG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY;gBAEJ,OAAO;aACV,YAAY;YACb,MAAM;;iBAwBH,MAAM;;;;gBA1BL,OAAO;aACV,YAAY;YACb,MAAM;;iBAwBH,MAAM;;;kFA+Hf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarSidebarSearchInput.vue.js","names":[],"sources":["../../../src/components/ScalarSidebar/ScalarSidebarSearchInput.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIconMagnifyingGlass, ScalarIconX } from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { onMounted, ref } from 'vue'\n\nimport { ScalarIconButton } from '../ScalarIconButton'\nimport { type LoadingState, ScalarLoading } from '../ScalarLoading'\n\nconst { autofocus } = defineProps<{\n autofocus?: boolean\n loader?: LoadingState\n label?: string\n}>()\n\nconst inputRef = ref<HTMLInputElement | null>(null)\n\nconst model = defineModel<string>()\n\nfunction handleClear() {\n model.value = ''\n // Push focus back to the input\n if (inputRef.value) {\n inputRef.value.focus()\n }\n}\n\ndefineOptions({ inheritAttrs: false })\nconst { stylingAttrsCx, otherAttrs } = useBindCx()\n\nonMounted(() => autofocus && inputRef.value?.focus())\n</script>\n<template>\n <label\n v-bind=\"\n stylingAttrsCx(\n 'flex items-center rounded border text-base has-[:focus-visible]:bg-sidebar-b-1 has-[:focus-visible]:outline h-8 gap-1 pl-2 pr-1.5',\n 'bg-sidebar-b-search border-sidebar-border-search',\n model ? 'text-sidebar-c-1' : 'text-sidebar-c-search',\n )\n \">\n <ScalarIconMagnifyingGlass class=\"text-sidebar-c-search size-4\" />\n <input\n ref=\"inputRef\"\n v-bind=\"otherAttrs\"\n v-model=\"model\"\n :aria-label=\"label ?? 'Enter search query'\"\n autocapitalize=\"off\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n class=\"flex-1 appearance-none rounded border-none bg-transparent outline-none\"\n placeholder=\"Search...\"\n spellcheck=\"false\"\n type=\"search\" />\n <ScalarLoading\n v-if=\"loader && loader.isActive\"\n class=\"mr-3 self-center\"\n :loader\n size=\"md\" />\n <ScalarIconButton\n v-else-if=\"model\"\n class=\"p-0.25 size-4\"\n :icon=\"ScalarIconX\"\n label=\"Clear Search\"\n weight=\"bold\"\n @click.stop.prevent=\"handleClear\" />\n </label>\n</template>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"ScalarSidebarSearchInput.vue.js","names":[],"sources":["../../../src/components/ScalarSidebar/ScalarSidebarSearchInput.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Sidebar Search Input component\n *\n * An inline search input for the sidebar with a clear button\n * and optional loading indicator.\n *\n * @example\n * <ScalarSidebarSearchInput v-model=\"query\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconMagnifyingGlass, ScalarIconX } from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { onMounted, ref } from 'vue'\n\nimport { ScalarIconButton } from '../ScalarIconButton'\nimport { type LoadingState, ScalarLoading } from '../ScalarLoading'\n\nconst { autofocus } = defineProps<{\n autofocus?: boolean\n loader?: LoadingState\n label?: string\n}>()\n\nconst inputRef = ref<HTMLInputElement | null>(null)\n\nconst model = defineModel<string>()\n\nfunction handleClear() {\n model.value = ''\n // Push focus back to the input\n if (inputRef.value) {\n inputRef.value.focus()\n }\n}\n\ndefineOptions({ inheritAttrs: false })\nconst { stylingAttrsCx, otherAttrs } = useBindCx()\n\nonMounted(() => autofocus && inputRef.value?.focus())\n</script>\n<template>\n <label\n v-bind=\"\n stylingAttrsCx(\n 'flex items-center rounded border text-base has-[:focus-visible]:bg-sidebar-b-1 has-[:focus-visible]:outline h-8 gap-1 pl-2 pr-1.5',\n 'bg-sidebar-b-search border-sidebar-border-search',\n model ? 'text-sidebar-c-1' : 'text-sidebar-c-search',\n )\n \">\n <ScalarIconMagnifyingGlass class=\"text-sidebar-c-search size-4\" />\n <input\n ref=\"inputRef\"\n v-bind=\"otherAttrs\"\n v-model=\"model\"\n :aria-label=\"label ?? 'Enter search query'\"\n autocapitalize=\"off\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n class=\"flex-1 appearance-none rounded border-none bg-transparent outline-none\"\n placeholder=\"Search...\"\n spellcheck=\"false\"\n type=\"search\" />\n <ScalarLoading\n v-if=\"loader && loader.isActive\"\n class=\"mr-3 self-center\"\n :loader\n size=\"md\" />\n <ScalarIconButton\n v-else-if=\"model\"\n class=\"p-0.25 size-4\"\n :icon=\"ScalarIconX\"\n label=\"Clear Search\"\n weight=\"bold\"\n @click.stop.prevent=\"handleClear\" />\n </label>\n</template>\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarSidebarSearchInput.vue.script.js","names":[],"sources":["../../../src/components/ScalarSidebar/ScalarSidebarSearchInput.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarIconMagnifyingGlass, ScalarIconX } from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { onMounted, ref } from 'vue'\n\nimport { ScalarIconButton } from '../ScalarIconButton'\nimport { type LoadingState, ScalarLoading } from '../ScalarLoading'\n\nconst { autofocus } = defineProps<{\n autofocus?: boolean\n loader?: LoadingState\n label?: string\n}>()\n\nconst inputRef = ref<HTMLInputElement | null>(null)\n\nconst model = defineModel<string>()\n\nfunction handleClear() {\n model.value = ''\n // Push focus back to the input\n if (inputRef.value) {\n inputRef.value.focus()\n }\n}\n\ndefineOptions({ inheritAttrs: false })\nconst { stylingAttrsCx, otherAttrs } = useBindCx()\n\nonMounted(() => autofocus && inputRef.value?.focus())\n</script>\n<template>\n <label\n v-bind=\"\n stylingAttrsCx(\n 'flex items-center rounded border text-base has-[:focus-visible]:bg-sidebar-b-1 has-[:focus-visible]:outline h-8 gap-1 pl-2 pr-1.5',\n 'bg-sidebar-b-search border-sidebar-border-search',\n model ? 'text-sidebar-c-1' : 'text-sidebar-c-search',\n )\n \">\n <ScalarIconMagnifyingGlass class=\"text-sidebar-c-search size-4\" />\n <input\n ref=\"inputRef\"\n v-bind=\"otherAttrs\"\n v-model=\"model\"\n :aria-label=\"label ?? 'Enter search query'\"\n autocapitalize=\"off\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n class=\"flex-1 appearance-none rounded border-none bg-transparent outline-none\"\n placeholder=\"Search...\"\n spellcheck=\"false\"\n type=\"search\" />\n <ScalarLoading\n v-if=\"loader && loader.isActive\"\n class=\"mr-3 self-center\"\n :loader\n size=\"md\" />\n <ScalarIconButton\n v-else-if=\"model\"\n class=\"p-0.25 size-4\"\n :icon=\"ScalarIconX\"\n label=\"Clear Search\"\n weight=\"bold\"\n @click.stop.prevent=\"handleClear\" />\n </label>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"ScalarSidebarSearchInput.vue.script.js","names":[],"sources":["../../../src/components/ScalarSidebar/ScalarSidebarSearchInput.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Sidebar Search Input component\n *\n * An inline search input for the sidebar with a clear button\n * and optional loading indicator.\n *\n * @example\n * <ScalarSidebarSearchInput v-model=\"query\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconMagnifyingGlass, ScalarIconX } from '@scalar/icons'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { onMounted, ref } from 'vue'\n\nimport { ScalarIconButton } from '../ScalarIconButton'\nimport { type LoadingState, ScalarLoading } from '../ScalarLoading'\n\nconst { autofocus } = defineProps<{\n autofocus?: boolean\n loader?: LoadingState\n label?: string\n}>()\n\nconst inputRef = ref<HTMLInputElement | null>(null)\n\nconst model = defineModel<string>()\n\nfunction handleClear() {\n model.value = ''\n // Push focus back to the input\n if (inputRef.value) {\n inputRef.value.focus()\n }\n}\n\ndefineOptions({ inheritAttrs: false })\nconst { stylingAttrsCx, otherAttrs } = useBindCx()\n\nonMounted(() => autofocus && inputRef.value?.focus())\n</script>\n<template>\n <label\n v-bind=\"\n stylingAttrsCx(\n 'flex items-center rounded border text-base has-[:focus-visible]:bg-sidebar-b-1 has-[:focus-visible]:outline h-8 gap-1 pl-2 pr-1.5',\n 'bg-sidebar-b-search border-sidebar-border-search',\n model ? 'text-sidebar-c-1' : 'text-sidebar-c-search',\n )\n \">\n <ScalarIconMagnifyingGlass class=\"text-sidebar-c-search size-4\" />\n <input\n ref=\"inputRef\"\n v-bind=\"otherAttrs\"\n v-model=\"model\"\n :aria-label=\"label ?? 'Enter search query'\"\n autocapitalize=\"off\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n class=\"flex-1 appearance-none rounded border-none bg-transparent outline-none\"\n placeholder=\"Search...\"\n spellcheck=\"false\"\n type=\"search\" />\n <ScalarLoading\n v-if=\"loader && loader.isActive\"\n class=\"mr-3 self-center\"\n :loader\n size=\"md\" />\n <ScalarIconButton\n v-else-if=\"model\"\n class=\"p-0.25 size-4\"\n :icon=\"ScalarIconX\"\n label=\"Clear Search\"\n weight=\"bold\"\n @click.stop.prevent=\"handleClear\" />\n </label>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EA0BA,MAAM,WAAW,IAA6B,KAAI;EAElD,MAAM,QAAQ,SAAmB,SAAA,aAAC;EAElC,SAAS,cAAc;AACrB,SAAM,QAAQ;AAEd,OAAI,SAAS,MACX,UAAS,MAAM,OAAM;;EAKzB,MAAM,EAAE,gBAAgB,eAAe,WAAU;AAEjD,kBAAgB,QAAA,aAAa,SAAS,OAAO,OAAO,CAAA;;uBAGlD,mBAiCQ,SAAA,eAAA,mBAhCS,MAAA,eAAc,CAAA,qIAAA,oDAAmN,MAAA,QAAK,qBAAA,wBAAA,CAAA,CAAA,EAAA;IAOrP,YAAkE,MAAA,0BAAA,EAAA,EAAvC,OAAM,gCAA8B,CAAA;mBAC/D,mBAWkB,SAXlB,WAWkB;cAVZ;KAAJ,KAAI;OACI,MAAA,WAAU,EAAA;wEACJ,QAAA;KACb,cAAY,QAAA,SAAK;KAClB,gBAAe;KACf,cAAa;KACb,aAAY;KACZ,OAAM;KACN,aAAY;KACZ,YAAW;KACX,MAAK;6CARI,MAAA,MAAK,CAAA,CAAA;IAUR,QAAA,UAAU,QAAA,OAAO,YAAA,WAAA,EADzB,YAIc,MAAA,sBAAA,EAAA;;KAFZ,OAAM;KACL,QAAA,QAAA;KACD,MAAK;+BAEM,MAAA,SAAA,WAAA,EADb,YAMsC,MAAA,yBAAA,EAAA;;KAJpC,OAAM;KACL,MAAM,MAAA,YAAW;KAClB,OAAM;KACN,QAAO;KACN,SAAK,cAAe,aAAW,CAAA,QAAA,UAAA,CAAA"}
|
|
@@ -1,16 +1,27 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Scalar Toggle component
|
|
3
|
+
*
|
|
4
|
+
* A switch-style toggle control with support for
|
|
5
|
+
* disabled state and accessible labeling.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* <ScalarToggle v-model="enabled" label="Enable feature" />
|
|
9
|
+
*/
|
|
10
|
+
declare const _default: typeof __VLS_export;
|
|
11
|
+
export default _default;
|
|
12
|
+
declare const __VLS_export: import("vue").DefineComponent<{
|
|
2
13
|
disabled?: boolean;
|
|
3
14
|
label?: string;
|
|
4
|
-
}
|
|
5
|
-
type __VLS_ModelProps = {
|
|
15
|
+
} & {
|
|
6
16
|
modelValue?: boolean;
|
|
7
|
-
}
|
|
8
|
-
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
9
|
-
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
17
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
10
18
|
"update:modelValue": (value: boolean) => any;
|
|
11
|
-
}, string, import("vue").PublicProps, Readonly<
|
|
19
|
+
}, string, import("vue").PublicProps, Readonly<{
|
|
20
|
+
disabled?: boolean;
|
|
21
|
+
label?: string;
|
|
22
|
+
} & {
|
|
23
|
+
modelValue?: boolean;
|
|
24
|
+
}> & Readonly<{
|
|
12
25
|
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
13
26
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
14
|
-
declare const _default: typeof __VLS_export;
|
|
15
|
-
export default _default;
|
|
16
27
|
//# sourceMappingURL=ScalarToggle.vue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarToggle.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarToggle/ScalarToggle.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScalarToggle.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarToggle/ScalarToggle.vue"],"names":[],"mappings":"AA6DA;;;;;;;;GAQG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY;eAEL,OAAO;YACV,MAAM;;iBA0BH,OAAO;;;;eA3BP,OAAO;YACV,MAAM;;iBA0BH,OAAO;;;kFAoEhB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarToggle.vue.js","names":[],"sources":["../../../src/components/ScalarToggle/ScalarToggle.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { cva, cx } from '@scalar/use-hooks/useBindCx'\n\nconst props = defineProps<{\n disabled?: boolean\n label?: string\n}>()\n\nconst model = defineModel<boolean>({ default: false })\n\nfunction toggle() {\n if (props.disabled) {\n return\n }\n model.value = !model.value\n}\n\nconst variants = cva({\n base: 'relative h-3.5 min-w-6 w-6 cursor-pointer rounded-full bg-b-3 transition-colors duration-300',\n variants: {\n checked: { true: 'bg-c-accent' },\n disabled: { true: 'cursor-not-allowed opacity-40' },\n },\n})\n</script>\n<template>\n <button\n :aria-checked=\"model\"\n :aria-disabled=\"disabled\"\n :class=\"cx(variants({ checked: model, disabled }))\"\n role=\"switch\"\n type=\"button\"\n @click=\"toggle\">\n <div\n class=\"absolute left-px top-px flex h-3 w-3 items-center justify-center rounded-full bg-b-1 text-c-accent transition-transform duration-300\"\n :class=\"{ 'translate-x-2.5': model }\" />\n <span\n v-if=\"label\"\n class=\"sr-only\">\n {{ label }}\n </span>\n </button>\n</template>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"ScalarToggle.vue.js","names":[],"sources":["../../../src/components/ScalarToggle/ScalarToggle.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Toggle component\n *\n * A switch-style toggle control with support for\n * disabled state and accessible labeling.\n *\n * @example\n * <ScalarToggle v-model=\"enabled\" label=\"Enable feature\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { cva, cx } from '@scalar/use-hooks/useBindCx'\n\nconst props = defineProps<{\n disabled?: boolean\n label?: string\n}>()\n\nconst model = defineModel<boolean>({ default: false })\n\nfunction toggle() {\n if (props.disabled) {\n return\n }\n model.value = !model.value\n}\n\nconst variants = cva({\n base: 'relative h-3.5 min-w-6 w-6 cursor-pointer rounded-full bg-b-3 transition-colors duration-300',\n variants: {\n checked: { true: 'bg-c-accent' },\n disabled: { true: 'cursor-not-allowed opacity-40' },\n },\n})\n</script>\n<template>\n <button\n :aria-checked=\"model\"\n :aria-disabled=\"disabled\"\n :class=\"cx(variants({ checked: model, disabled }))\"\n role=\"switch\"\n type=\"button\"\n @click=\"toggle\">\n <div\n class=\"absolute left-px top-px flex h-3 w-3 items-center justify-center rounded-full bg-b-1 text-c-accent transition-transform duration-300\"\n :class=\"{ 'translate-x-2.5': model }\" />\n <span\n v-if=\"label\"\n class=\"sr-only\">\n {{ label }}\n </span>\n </button>\n</template>\n"],"mappings":""}
|