@scalar/components 0.21.1 → 0.21.2

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.
Files changed (168) hide show
  1. package/dist/components/ScalarCodeBlock/ScalarCodeBlock.vue.d.ts +38 -9
  2. package/dist/components/ScalarCodeBlock/ScalarCodeBlock.vue.d.ts.map +1 -1
  3. package/dist/components/ScalarCodeBlock/ScalarCodeBlock.vue.js.map +1 -1
  4. package/dist/components/ScalarCodeBlock/ScalarCodeBlock.vue.script.js +0 -5
  5. package/dist/components/ScalarCodeBlock/ScalarCodeBlock.vue.script.js.map +1 -1
  6. package/dist/components/ScalarCodeBlock/ScalarCodeBlockCopy.vue.d.ts +28 -16
  7. package/dist/components/ScalarCodeBlock/ScalarCodeBlockCopy.vue.d.ts.map +1 -1
  8. package/dist/components/ScalarCodeBlock/ScalarCodeBlockCopy.vue.js.map +1 -1
  9. package/dist/components/ScalarCodeBlock/ScalarCodeBlockCopy.vue.script.js.map +1 -1
  10. package/dist/components/ScalarCombobox/ScalarCombobox.vue.d.ts +13 -2
  11. package/dist/components/ScalarCombobox/ScalarCombobox.vue.d.ts.map +1 -1
  12. package/dist/components/ScalarCombobox/ScalarCombobox.vue.js.map +1 -1
  13. package/dist/components/ScalarCombobox/ScalarCombobox.vue.script.js +0 -1
  14. package/dist/components/ScalarCombobox/ScalarCombobox.vue.script.js.map +1 -1
  15. package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.d.ts +12 -2
  16. package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.d.ts.map +1 -1
  17. package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.js.map +1 -1
  18. package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.script.js +0 -1
  19. package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.script.js.map +1 -1
  20. package/dist/components/ScalarCombobox/ScalarComboboxOption.vue.d.ts +23 -13
  21. package/dist/components/ScalarCombobox/ScalarComboboxOption.vue.d.ts.map +1 -1
  22. package/dist/components/ScalarCombobox/ScalarComboboxOption.vue.js.map +1 -1
  23. package/dist/components/ScalarCombobox/ScalarComboboxOption.vue.script.js.map +1 -1
  24. package/dist/components/ScalarCombobox/ScalarComboboxOptionGroup.vue.d.ts +21 -11
  25. package/dist/components/ScalarCombobox/ScalarComboboxOptionGroup.vue.d.ts.map +1 -1
  26. package/dist/components/ScalarCombobox/ScalarComboboxOptionGroup.vue.js.map +1 -1
  27. package/dist/components/ScalarCombobox/ScalarComboboxOptionGroup.vue.script.js.map +1 -1
  28. package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.d.ts +11 -2
  29. package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.d.ts.map +1 -1
  30. package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.js.map +1 -1
  31. package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.script.js.map +1 -1
  32. package/dist/components/ScalarCombobox/ScalarComboboxPopover.vue.d.ts +16 -6
  33. package/dist/components/ScalarCombobox/ScalarComboboxPopover.vue.d.ts.map +1 -1
  34. package/dist/components/ScalarCombobox/ScalarComboboxPopover.vue.js.map +1 -1
  35. package/dist/components/ScalarCombobox/ScalarComboboxPopover.vue.script.js +0 -1
  36. package/dist/components/ScalarCombobox/ScalarComboboxPopover.vue.script.js.map +1 -1
  37. package/dist/components/ScalarErrorBoundary/ScalarErrorBoundary.vue.d.ts +14 -6
  38. package/dist/components/ScalarErrorBoundary/ScalarErrorBoundary.vue.d.ts.map +1 -1
  39. package/dist/components/ScalarErrorBoundary/ScalarErrorBoundary.vue.js.map +1 -1
  40. package/dist/components/ScalarErrorBoundary/ScalarErrorBoundary.vue.script.js.map +1 -1
  41. package/dist/components/ScalarFloating/ScalarFloating.vue.d.ts +19 -9
  42. package/dist/components/ScalarFloating/ScalarFloating.vue.d.ts.map +1 -1
  43. package/dist/components/ScalarFloating/ScalarFloating.vue.js.map +1 -1
  44. package/dist/components/ScalarFloating/ScalarFloating.vue.script.js +0 -1
  45. package/dist/components/ScalarFloating/ScalarFloating.vue.script.js.map +1 -1
  46. package/dist/components/ScalarForm/ScalarFormError.vue.d.ts +20 -11
  47. package/dist/components/ScalarForm/ScalarFormError.vue.d.ts.map +1 -1
  48. package/dist/components/ScalarForm/ScalarFormError.vue.js.map +1 -1
  49. package/dist/components/ScalarForm/ScalarFormError.vue.script.js +0 -1
  50. package/dist/components/ScalarForm/ScalarFormError.vue.script.js.map +1 -1
  51. package/dist/components/ScalarHotkey/ScalarHotkey.vue.d.ts +15 -5
  52. package/dist/components/ScalarHotkey/ScalarHotkey.vue.d.ts.map +1 -1
  53. package/dist/components/ScalarHotkey/ScalarHotkey.vue.js.map +1 -1
  54. package/dist/components/ScalarHotkey/ScalarHotkey.vue.script.js.map +1 -1
  55. package/dist/components/ScalarIcon/IconList.vue.d.ts +15 -4
  56. package/dist/components/ScalarIcon/IconList.vue.d.ts.map +1 -1
  57. package/dist/components/ScalarListbox/ScalarListbox.vue.d.ts +37 -24
  58. package/dist/components/ScalarListbox/ScalarListbox.vue.d.ts.map +1 -1
  59. package/dist/components/ScalarListbox/ScalarListbox.vue.js.map +1 -1
  60. package/dist/components/ScalarListbox/ScalarListbox.vue.script.js.map +1 -1
  61. package/dist/components/ScalarListbox/ScalarListboxCheckbox.vue.d.ts +17 -5
  62. package/dist/components/ScalarListbox/ScalarListboxCheckbox.vue.d.ts.map +1 -1
  63. package/dist/components/ScalarListbox/ScalarListboxCheckbox.vue.js.map +1 -1
  64. package/dist/components/ScalarListbox/ScalarListboxCheckbox.vue.script.js +0 -1
  65. package/dist/components/ScalarListbox/ScalarListboxCheckbox.vue.script.js.map +1 -1
  66. package/dist/components/ScalarListbox/ScalarListboxItem.vue.d.ts +16 -5
  67. package/dist/components/ScalarListbox/ScalarListboxItem.vue.d.ts.map +1 -1
  68. package/dist/components/ScalarListbox/ScalarListboxItem.vue.js.map +1 -1
  69. package/dist/components/ScalarListbox/ScalarListboxItem.vue.script.js +0 -1
  70. package/dist/components/ScalarListbox/ScalarListboxItem.vue.script.js.map +1 -1
  71. package/dist/components/ScalarMarkdown/ScalarMarkdown.vue.d.ts +11 -2
  72. package/dist/components/ScalarMarkdown/ScalarMarkdown.vue.d.ts.map +1 -1
  73. package/dist/components/ScalarMarkdown/ScalarMarkdown.vue.js.map +1 -1
  74. package/dist/components/ScalarMarkdown/ScalarMarkdown.vue.script.js.map +1 -1
  75. package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.d.ts +26 -17
  76. package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.d.ts.map +1 -1
  77. package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.js.map +1 -1
  78. package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.script.js.map +1 -1
  79. package/dist/components/ScalarMenu/ScalarMenu.vue.d.ts +15 -6
  80. package/dist/components/ScalarMenu/ScalarMenu.vue.d.ts.map +1 -1
  81. package/dist/components/ScalarMenu/ScalarMenu.vue.js.map +1 -1
  82. package/dist/components/ScalarMenu/ScalarMenu.vue.script.js +0 -1
  83. package/dist/components/ScalarMenu/ScalarMenu.vue.script.js.map +1 -1
  84. package/dist/components/ScalarMenu/ScalarMenuButton.vue.d.ts +10 -3
  85. package/dist/components/ScalarMenu/ScalarMenuButton.vue.d.ts.map +1 -1
  86. package/dist/components/ScalarMenu/ScalarMenuButton.vue.js.map +1 -1
  87. package/dist/components/ScalarMenu/ScalarMenuButton.vue.script.js.map +1 -1
  88. package/dist/components/ScalarMenu/ScalarMenuLink.vue.d.ts +21 -10
  89. package/dist/components/ScalarMenu/ScalarMenuLink.vue.d.ts.map +1 -1
  90. package/dist/components/ScalarMenu/ScalarMenuLink.vue.js.map +1 -1
  91. package/dist/components/ScalarMenu/ScalarMenuLink.vue.script.js.map +1 -1
  92. package/dist/components/ScalarMenu/ScalarMenuProduct.vue.d.ts +21 -10
  93. package/dist/components/ScalarMenu/ScalarMenuProduct.vue.d.ts.map +1 -1
  94. package/dist/components/ScalarMenu/ScalarMenuProduct.vue.js.map +1 -1
  95. package/dist/components/ScalarMenu/ScalarMenuProduct.vue.script.js +0 -1
  96. package/dist/components/ScalarMenu/ScalarMenuProduct.vue.script.js.map +1 -1
  97. package/dist/components/ScalarMenu/ScalarMenuProducts.vue.d.ts +22 -11
  98. package/dist/components/ScalarMenu/ScalarMenuProducts.vue.d.ts.map +1 -1
  99. package/dist/components/ScalarMenu/ScalarMenuProducts.vue.js.map +1 -1
  100. package/dist/components/ScalarMenu/ScalarMenuProducts.vue.script.js +0 -1
  101. package/dist/components/ScalarMenu/ScalarMenuProducts.vue.script.js.map +1 -1
  102. package/dist/components/ScalarMenu/ScalarMenuResources.vue.d.ts +9 -1
  103. package/dist/components/ScalarMenu/ScalarMenuResources.vue.d.ts.map +1 -1
  104. package/dist/components/ScalarMenu/ScalarMenuResources.vue.js.map +1 -1
  105. package/dist/components/ScalarMenu/ScalarMenuResources.vue.script.js +0 -1
  106. package/dist/components/ScalarMenu/ScalarMenuResources.vue.script.js.map +1 -1
  107. package/dist/components/ScalarMenu/ScalarMenuSection.vue.d.ts +14 -6
  108. package/dist/components/ScalarMenu/ScalarMenuSection.vue.d.ts.map +1 -1
  109. package/dist/components/ScalarMenu/ScalarMenuSection.vue.js.map +1 -1
  110. package/dist/components/ScalarMenu/ScalarMenuSection.vue.script.js +0 -1
  111. package/dist/components/ScalarMenu/ScalarMenuSection.vue.script.js.map +1 -1
  112. package/dist/components/ScalarMenu/ScalarMenuSupport.vue.d.ts +9 -1
  113. package/dist/components/ScalarMenu/ScalarMenuSupport.vue.d.ts.map +1 -1
  114. package/dist/components/ScalarMenu/ScalarMenuSupport.vue.js.map +1 -1
  115. package/dist/components/ScalarMenu/ScalarMenuSupport.vue.script.js +0 -1
  116. package/dist/components/ScalarMenu/ScalarMenuSupport.vue.script.js.map +1 -1
  117. package/dist/components/ScalarMenu/ScalarMenuTeamPicker.vue.d.ts +19 -6
  118. package/dist/components/ScalarMenu/ScalarMenuTeamPicker.vue.d.ts.map +1 -1
  119. package/dist/components/ScalarMenu/ScalarMenuTeamPicker.vue.js.map +1 -1
  120. package/dist/components/ScalarMenu/ScalarMenuTeamPicker.vue.script.js +0 -1
  121. package/dist/components/ScalarMenu/ScalarMenuTeamPicker.vue.script.js.map +1 -1
  122. package/dist/components/ScalarMenu/ScalarMenuTeamProfile.vue.d.ts +16 -5
  123. package/dist/components/ScalarMenu/ScalarMenuTeamProfile.vue.d.ts.map +1 -1
  124. package/dist/components/ScalarMenu/ScalarMenuTeamProfile.vue.js.map +1 -1
  125. package/dist/components/ScalarMenu/ScalarMenuTeamProfile.vue.script.js.map +1 -1
  126. package/dist/components/ScalarMenu/ScalarMenuWorkspacePicker.vue.d.ts +20 -9
  127. package/dist/components/ScalarMenu/ScalarMenuWorkspacePicker.vue.d.ts.map +1 -1
  128. package/dist/components/ScalarMenu/ScalarMenuWorkspacePicker.vue.js.map +1 -1
  129. package/dist/components/ScalarMenu/ScalarMenuWorkspacePicker.vue.script.js.map +1 -1
  130. package/dist/components/ScalarModal/ScalarModal.vue.d.ts +13 -2
  131. package/dist/components/ScalarModal/ScalarModal.vue.d.ts.map +1 -1
  132. package/dist/components/ScalarModal/ScalarModal.vue.js +1 -1
  133. package/dist/components/ScalarModal/ScalarModal.vue.js.map +1 -1
  134. package/dist/components/ScalarModal/ScalarModal.vue.script.js +13 -0
  135. package/dist/components/ScalarModal/ScalarModal.vue.script.js.map +1 -1
  136. package/dist/components/ScalarPopover/ScalarPopover.vue.d.ts +19 -7
  137. package/dist/components/ScalarPopover/ScalarPopover.vue.d.ts.map +1 -1
  138. package/dist/components/ScalarPopover/ScalarPopover.vue.js.map +1 -1
  139. package/dist/components/ScalarPopover/ScalarPopover.vue.script.js +0 -1
  140. package/dist/components/ScalarPopover/ScalarPopover.vue.script.js.map +1 -1
  141. package/dist/components/ScalarSearchResults/ScalarSearchResultItem.vue.d.ts +23 -13
  142. package/dist/components/ScalarSearchResults/ScalarSearchResultItem.vue.d.ts.map +1 -1
  143. package/dist/components/ScalarSearchResults/ScalarSearchResultItem.vue.js.map +1 -1
  144. package/dist/components/ScalarSearchResults/ScalarSearchResultItem.vue.script.js.map +1 -1
  145. package/dist/components/ScalarSearchResults/ScalarSearchResultList.vue.d.ts +21 -11
  146. package/dist/components/ScalarSearchResults/ScalarSearchResultList.vue.d.ts.map +1 -1
  147. package/dist/components/ScalarSearchResults/ScalarSearchResultList.vue.js.map +1 -1
  148. package/dist/components/ScalarSearchResults/ScalarSearchResultList.vue.script.js +0 -1
  149. package/dist/components/ScalarSearchResults/ScalarSearchResultList.vue.script.js.map +1 -1
  150. package/dist/components/ScalarSidebar/ScalarSidebarSearchButton.vue.d.ts +16 -8
  151. package/dist/components/ScalarSidebar/ScalarSidebarSearchButton.vue.d.ts.map +1 -1
  152. package/dist/components/ScalarSidebar/ScalarSidebarSearchButton.vue.js.map +1 -1
  153. package/dist/components/ScalarSidebar/ScalarSidebarSearchButton.vue.script.js.map +1 -1
  154. package/dist/components/ScalarSidebar/ScalarSidebarSearchInput.vue.d.ts +21 -9
  155. package/dist/components/ScalarSidebar/ScalarSidebarSearchInput.vue.d.ts.map +1 -1
  156. package/dist/components/ScalarSidebar/ScalarSidebarSearchInput.vue.js.map +1 -1
  157. package/dist/components/ScalarSidebar/ScalarSidebarSearchInput.vue.script.js.map +1 -1
  158. package/dist/components/ScalarToggle/ScalarToggle.vue.d.ts +20 -9
  159. package/dist/components/ScalarToggle/ScalarToggle.vue.d.ts.map +1 -1
  160. package/dist/components/ScalarToggle/ScalarToggle.vue.js.map +1 -1
  161. package/dist/components/ScalarToggle/ScalarToggle.vue.script.js.map +1 -1
  162. package/dist/components/ScalarVirtualText/ScalarVirtualText.vue.d.ts +24 -5
  163. package/dist/components/ScalarVirtualText/ScalarVirtualText.vue.d.ts.map +1 -1
  164. package/dist/components/ScalarVirtualText/ScalarVirtualText.vue.js.map +1 -1
  165. package/dist/components/ScalarVirtualText/ScalarVirtualText.vue.script.js +0 -1
  166. package/dist/components/ScalarVirtualText/ScalarVirtualText.vue.script.js.map +1 -1
  167. package/dist/style.css +13 -13
  168. package/package.json +4 -4
@@ -1,26 +1,57 @@
1
1
  import type { StandardLanguageKey } from './types';
2
- type BaseProps = {
2
+ /**
3
+ * Scalar Code Block component
4
+ *
5
+ * Renders syntax-highlighted code using highlight.js.
6
+ * Supports line numbers, credential masking, and an optional copy button.
7
+ *
8
+ * @example
9
+ * <ScalarCodeBlock content="const x = 1" lang="javascript" />
10
+ */
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
13
+ declare const __VLS_export: import("vue").DefineComponent<({
3
14
  content?: string | object;
4
15
  prettyPrintedContent?: string;
5
16
  lang?: StandardLanguageKey | string;
6
17
  lineNumbers?: boolean;
7
18
  hideCredentials?: string | string[];
8
- copy?: 'always' | 'hover' | false;
9
- };
10
- declare const __VLS_export: import("vue").DefineComponent<(BaseProps & {
19
+ copy?: "always" | "hover" | false;
20
+ } & {
11
21
  /** Raw unformatted object or string content */
12
22
  content: string | object;
13
- }) | (BaseProps & {
23
+ }) | ({
24
+ content?: string | object;
25
+ prettyPrintedContent?: string;
26
+ lang?: StandardLanguageKey | string;
27
+ lineNumbers?: boolean;
28
+ hideCredentials?: string | string[];
29
+ copy?: "always" | "hover" | false;
30
+ } & {
14
31
  /**
15
32
  * Pre-pretty printed content string for better performance
16
33
  *
17
34
  * Avoids unnecessary costly re-serialization of large content
18
35
  */
19
36
  prettyPrintedContent: string;
20
- }), {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<(BaseProps & {
37
+ }), {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<({
38
+ content?: string | object;
39
+ prettyPrintedContent?: string;
40
+ lang?: StandardLanguageKey | string;
41
+ lineNumbers?: boolean;
42
+ hideCredentials?: string | string[];
43
+ copy?: "always" | "hover" | false;
44
+ } & {
21
45
  /** Raw unformatted object or string content */
22
46
  content: string | object;
23
- }) | (BaseProps & {
47
+ }) | ({
48
+ content?: string | object;
49
+ prettyPrintedContent?: string;
50
+ lang?: StandardLanguageKey | string;
51
+ lineNumbers?: boolean;
52
+ hideCredentials?: string | string[];
53
+ copy?: "always" | "hover" | false;
54
+ } & {
24
55
  /**
25
56
  * Pre-pretty printed content string for better performance
26
57
  *
@@ -28,6 +59,4 @@ declare const __VLS_export: import("vue").DefineComponent<(BaseProps & {
28
59
  */
29
60
  prettyPrintedContent: string;
30
61
  })> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
31
- declare const _default: typeof __VLS_export;
32
- export default _default;
33
62
  //# sourceMappingURL=ScalarCodeBlock.vue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScalarCodeBlock.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarCodeBlock/ScalarCodeBlock.vue"],"names":[],"mappings":"AAsJA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAElD,KAAK,SAAS,GAAG;IACf,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,IAAI,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAAA;IACnC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACnC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAA;CAClC,CAAA;AA2LD,QAAA,MAAM,YAAY;IAjLR,+CAA+C;aACtC,MAAM,GAAG,MAAM;;IAGxB;;;;OAIG;0BACmB,MAAM;;IAT5B,+CAA+C;aACtC,MAAM,GAAG,MAAM;;IAGxB;;;;OAIG;0BACmB,MAAM;kGA0KpC,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"ScalarCodeBlock.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarCodeBlock/ScalarCodeBlock.vue"],"names":[],"mappings":"AAkKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAGlD;;;;;;;;GAQG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY;cAEN,MAAM,GAAG,MAAM;2BACF,MAAM;WACtB,mBAAmB,GAAG,MAAM;kBACrB,OAAO;sBACH,MAAM,GAAG,MAAM,EAAE;WAC5B,QAAQ,GAAG,OAAO,GAAG,KAAK;;IAWzB,+CAA+C;aACtC,MAAM,GAAG,MAAM;;cAjBtB,MAAM,GAAG,MAAM;2BACF,MAAM;WACtB,mBAAmB,GAAG,MAAM;kBACrB,OAAO;sBACH,MAAM,GAAG,MAAM,EAAE;WAC5B,QAAQ,GAAG,OAAO,GAAG,KAAK;;IAezB;;;;OAIG;0BACmB,MAAM;;cAzB1B,MAAM,GAAG,MAAM;2BACF,MAAM;WACtB,mBAAmB,GAAG,MAAM;kBACrB,OAAO;sBACH,MAAM,GAAG,MAAM,EAAE;WAC5B,QAAQ,GAAG,OAAO,GAAG,KAAK;;IAWzB,+CAA+C;aACtC,MAAM,GAAG,MAAM;;cAjBtB,MAAM,GAAG,MAAM;2BACF,MAAM;WACtB,mBAAmB,GAAG,MAAM;kBACrB,OAAO;sBACH,MAAM,GAAG,MAAM,EAAE;WAC5B,QAAQ,GAAG,OAAO,GAAG,KAAK;;IAezB;;;;OAIG;0BACmB,MAAM;kGA2KlC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScalarCodeBlock.vue.js","names":[],"sources":["../../../src/components/ScalarCodeBlock/ScalarCodeBlock.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport ScalarCopyBackdrop from '@/components/ScalarCopy/ScalarCopyBackdrop.vue'\nimport { standardLanguages, syntaxHighlight } from '@scalar/code-highlight'\nimport { prettyPrintJson } from '@scalar/helpers/json/pretty-print-json'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed, useId } from 'vue'\n\nimport { ScalarCodeBlockCopy } from '../ScalarCodeBlock'\nimport type { StandardLanguageKey } from './types'\n\ntype BaseProps = {\n content?: string | object\n prettyPrintedContent?: string\n lang?: StandardLanguageKey | string\n lineNumbers?: boolean\n hideCredentials?: string | string[]\n copy?: 'always' | 'hover' | false\n}\n\n/**\n * Uses highlight.js for syntax highlighting\n *\n * Requires at least one of content or prettyPrintedContent\n */\nconst {\n lang = 'plaintext',\n lineNumbers = false,\n copy = 'hover',\n content,\n prettyPrintedContent,\n hideCredentials,\n} = defineProps<\n BaseProps &\n (\n | {\n /** Raw unformatted object or string content */\n content: string | object\n }\n | {\n /**\n * Pre-pretty printed content string for better performance\n *\n * Avoids unnecessary costly re-serialization of large content\n */\n prettyPrintedContent: string\n }\n )\n>()\n\n/** Base id for the code block */\nconst id = useId()\n\n/** Formatted the content into an indented json string */\nconst prettyContent = computed(\n () => prettyPrintedContent || prettyPrintJson(content ?? ''),\n)\n\nconst highlightedCode = computed(() => {\n const html = syntaxHighlight(prettyContent.value, {\n lang: lang.trim(),\n languages: standardLanguages,\n lineNumbers: lineNumbers,\n maskCredentials: hideCredentials,\n })\n\n // Need to remove the wrapping <pre> element so we can use v-html without another wrapper\n return html.slice(5, -6)\n})\n\n/** Determine if the content is a single line */\nconst isOneLine = computed(() => !prettyContent.value.includes('\\n'))\n\nconst isContentValid = computed(() => {\n return (\n prettyContent.value !== null &&\n prettyContent.value !== 'null' &&\n prettyContent.value !== '404 Not Found'\n )\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n v-bind=\"\n cx(\n 'scalar-code-block group/code-block flex flex-col',\n 'relative bg-b-1 min-h-0 min-w-0 focus-visible:outline',\n )\n \">\n <div\n tabindex=\"0\"\n class=\"custom-scroll overflow-x-auto p-2 -outline-offset-2 min-h-0 min-w-0 flex-1\">\n <pre\n :id=\"id\"\n class=\"m-0 bg-transparent text-nowrap whitespace-pre w-fit\"\n v-html=\"highlightedCode\" />\n </div>\n <ScalarCodeBlockCopy\n v-if=\"copy && isContentValid\"\n class=\"scalar-code-copy absolute\"\n :class=\"[\n isOneLine\n ? 'top-[calc(10px+0.5lh)] -translate-y-1/2 m-0 right-1'\n : 'top-2.5 right-2.5',\n { 'opacity-100': copy === 'always' },\n ]\"\n :content=\"prettyContent\"\n :showLang=\"!isOneLine\"\n :lang=\"lang\"\n :aria-controls=\"id\">\n <template #backdrop>\n <ScalarCopyBackdrop\n class=\"scalar-code-copy-backdrop\"\n :class=\"[\n isOneLine\n ? '-inset-y-0.75 -right-1 group-hocus-within/code-block:-left-0.5 left-3'\n : '-right-1.5 -top-1',\n ]\" />\n </template>\n </ScalarCodeBlockCopy>\n </div>\n</template>\n<style>\n@reference '../../style.css';\n@import '@scalar/code-highlight/css/code.css';\n\n/** Make the copy button label backdrop match the background */\n.scalar-code-block.bg-b-1 .scalar-code-copy-backdrop {\n @apply bg-b-1;\n}\n.scalar-code-block.bg-b-2 .scalar-code-copy-backdrop {\n @apply bg-b-2;\n}\n/** Make the copy button one shade darker than the background */\n.scalar-code-block.bg-b-2 .scalar-code-copy {\n @apply bg-b-3;\n}\n</style>\n"],"mappings":""}
1
+ {"version":3,"file":"ScalarCodeBlock.vue.js","names":[],"sources":["../../../src/components/ScalarCodeBlock/ScalarCodeBlock.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Code Block component\n *\n * Renders syntax-highlighted code using highlight.js.\n * Supports line numbers, credential masking, and an optional copy button.\n *\n * @example\n * <ScalarCodeBlock content=\"const x = 1\" lang=\"javascript\" />\n */\nexport default {}\n</script>\n<script lang=\"ts\" setup>\nimport ScalarCopyBackdrop from '@/components/ScalarCopy/ScalarCopyBackdrop.vue'\nimport { standardLanguages, syntaxHighlight } from '@scalar/code-highlight'\nimport { prettyPrintJson } from '@scalar/helpers/json/pretty-print-json'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed, useId } from 'vue'\n\nimport { ScalarCodeBlockCopy } from '../ScalarCodeBlock'\nimport type { StandardLanguageKey } from './types'\n\ntype BaseProps = {\n content?: string | object\n prettyPrintedContent?: string\n lang?: StandardLanguageKey | string\n lineNumbers?: boolean\n hideCredentials?: string | string[]\n copy?: 'always' | 'hover' | false\n}\n\n/**\n * Uses highlight.js for syntax highlighting\n *\n * Requires at least one of content or prettyPrintedContent\n */\nconst {\n lang = 'plaintext',\n lineNumbers = false,\n copy = 'hover',\n content,\n prettyPrintedContent,\n hideCredentials,\n} = defineProps<\n BaseProps &\n (\n | {\n /** Raw unformatted object or string content */\n content: string | object\n }\n | {\n /**\n * Pre-pretty printed content string for better performance\n *\n * Avoids unnecessary costly re-serialization of large content\n */\n prettyPrintedContent: string\n }\n )\n>()\n\n/** Base id for the code block */\nconst id = useId()\n\n/** Formatted the content into an indented json string */\nconst prettyContent = computed(\n () => prettyPrintedContent || prettyPrintJson(content ?? ''),\n)\n\nconst highlightedCode = computed(() => {\n const html = syntaxHighlight(prettyContent.value, {\n lang: lang.trim(),\n languages: standardLanguages,\n lineNumbers: lineNumbers,\n maskCredentials: hideCredentials,\n })\n\n // Need to remove the wrapping <pre> element so we can use v-html without another wrapper\n return html.slice(5, -6)\n})\n\n/** Determine if the content is a single line */\nconst isOneLine = computed(() => !prettyContent.value.includes('\\n'))\n\nconst isContentValid = computed(() => {\n return (\n prettyContent.value !== null &&\n prettyContent.value !== 'null' &&\n prettyContent.value !== '404 Not Found'\n )\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n v-bind=\"\n cx(\n 'scalar-code-block group/code-block flex flex-col',\n 'relative bg-b-1 min-h-0 min-w-0 focus-visible:outline',\n )\n \">\n <div\n tabindex=\"0\"\n class=\"custom-scroll overflow-x-auto p-2 -outline-offset-2 min-h-0 min-w-0 flex-1\">\n <pre\n :id=\"id\"\n class=\"m-0 bg-transparent text-nowrap whitespace-pre w-fit\"\n v-html=\"highlightedCode\" />\n </div>\n <ScalarCodeBlockCopy\n v-if=\"copy && isContentValid\"\n class=\"scalar-code-copy absolute\"\n :class=\"[\n isOneLine\n ? 'top-[calc(10px+0.5lh)] -translate-y-1/2 m-0 right-1'\n : 'top-2.5 right-2.5',\n { 'opacity-100': copy === 'always' },\n ]\"\n :content=\"prettyContent\"\n :showLang=\"!isOneLine\"\n :lang=\"lang\"\n :aria-controls=\"id\">\n <template #backdrop>\n <ScalarCopyBackdrop\n class=\"scalar-code-copy-backdrop\"\n :class=\"[\n isOneLine\n ? '-inset-y-0.75 -right-1 group-hocus-within/code-block:-left-0.5 left-3'\n : '-right-1.5 -top-1',\n ]\" />\n </template>\n </ScalarCodeBlockCopy>\n </div>\n</template>\n<style>\n@reference '../../style.css';\n@import '@scalar/code-highlight/css/code.css';\n\n/** Make the copy button label backdrop match the background */\n.scalar-code-block.bg-b-1 .scalar-code-copy-backdrop {\n @apply bg-b-1;\n}\n.scalar-code-block.bg-b-2 .scalar-code-copy-backdrop {\n @apply bg-b-2;\n}\n/** Make the copy button one shade darker than the background */\n.scalar-code-block.bg-b-2 .scalar-code-copy {\n @apply bg-b-3;\n}\n</style>\n"],"mappings":""}
@@ -10,11 +10,6 @@ var _hoisted_1 = {
10
10
  class: "custom-scroll overflow-x-auto p-2 -outline-offset-2 min-h-0 min-w-0 flex-1"
11
11
  };
12
12
  var _hoisted_2 = ["id", "innerHTML"];
13
- /**
14
- * Uses highlight.js for syntax highlighting
15
- *
16
- * Requires at least one of content or prettyPrintedContent
17
- */
18
13
  var ScalarCodeBlock_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
19
14
  inheritAttrs: false,
20
15
  __name: "ScalarCodeBlock",
@@ -1 +1 @@
1
- {"version":3,"file":"ScalarCodeBlock.vue.script.js","names":[],"sources":["../../../src/components/ScalarCodeBlock/ScalarCodeBlock.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport ScalarCopyBackdrop from '@/components/ScalarCopy/ScalarCopyBackdrop.vue'\nimport { standardLanguages, syntaxHighlight } from '@scalar/code-highlight'\nimport { prettyPrintJson } from '@scalar/helpers/json/pretty-print-json'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed, useId } from 'vue'\n\nimport { ScalarCodeBlockCopy } from '../ScalarCodeBlock'\nimport type { StandardLanguageKey } from './types'\n\ntype BaseProps = {\n content?: string | object\n prettyPrintedContent?: string\n lang?: StandardLanguageKey | string\n lineNumbers?: boolean\n hideCredentials?: string | string[]\n copy?: 'always' | 'hover' | false\n}\n\n/**\n * Uses highlight.js for syntax highlighting\n *\n * Requires at least one of content or prettyPrintedContent\n */\nconst {\n lang = 'plaintext',\n lineNumbers = false,\n copy = 'hover',\n content,\n prettyPrintedContent,\n hideCredentials,\n} = defineProps<\n BaseProps &\n (\n | {\n /** Raw unformatted object or string content */\n content: string | object\n }\n | {\n /**\n * Pre-pretty printed content string for better performance\n *\n * Avoids unnecessary costly re-serialization of large content\n */\n prettyPrintedContent: string\n }\n )\n>()\n\n/** Base id for the code block */\nconst id = useId()\n\n/** Formatted the content into an indented json string */\nconst prettyContent = computed(\n () => prettyPrintedContent || prettyPrintJson(content ?? ''),\n)\n\nconst highlightedCode = computed(() => {\n const html = syntaxHighlight(prettyContent.value, {\n lang: lang.trim(),\n languages: standardLanguages,\n lineNumbers: lineNumbers,\n maskCredentials: hideCredentials,\n })\n\n // Need to remove the wrapping <pre> element so we can use v-html without another wrapper\n return html.slice(5, -6)\n})\n\n/** Determine if the content is a single line */\nconst isOneLine = computed(() => !prettyContent.value.includes('\\n'))\n\nconst isContentValid = computed(() => {\n return (\n prettyContent.value !== null &&\n prettyContent.value !== 'null' &&\n prettyContent.value !== '404 Not Found'\n )\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n v-bind=\"\n cx(\n 'scalar-code-block group/code-block flex flex-col',\n 'relative bg-b-1 min-h-0 min-w-0 focus-visible:outline',\n )\n \">\n <div\n tabindex=\"0\"\n class=\"custom-scroll overflow-x-auto p-2 -outline-offset-2 min-h-0 min-w-0 flex-1\">\n <pre\n :id=\"id\"\n class=\"m-0 bg-transparent text-nowrap whitespace-pre w-fit\"\n v-html=\"highlightedCode\" />\n </div>\n <ScalarCodeBlockCopy\n v-if=\"copy && isContentValid\"\n class=\"scalar-code-copy absolute\"\n :class=\"[\n isOneLine\n ? 'top-[calc(10px+0.5lh)] -translate-y-1/2 m-0 right-1'\n : 'top-2.5 right-2.5',\n { 'opacity-100': copy === 'always' },\n ]\"\n :content=\"prettyContent\"\n :showLang=\"!isOneLine\"\n :lang=\"lang\"\n :aria-controls=\"id\">\n <template #backdrop>\n <ScalarCopyBackdrop\n class=\"scalar-code-copy-backdrop\"\n :class=\"[\n isOneLine\n ? '-inset-y-0.75 -right-1 group-hocus-within/code-block:-left-0.5 left-3'\n : '-right-1.5 -top-1',\n ]\" />\n </template>\n </ScalarCodeBlockCopy>\n </div>\n</template>\n<style>\n@reference '../../style.css';\n@import '@scalar/code-highlight/css/code.css';\n\n/** Make the copy button label backdrop match the background */\n.scalar-code-block.bg-b-1 .scalar-code-copy-backdrop {\n @apply bg-b-1;\n}\n.scalar-code-block.bg-b-2 .scalar-code-copy-backdrop {\n @apply bg-b-2;\n}\n/** Make the copy button one shade darker than the background */\n.scalar-code-block.bg-b-2 .scalar-code-copy {\n @apply bg-b-3;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkDA,MAAM,KAAK,OAAM;;EAGjB,MAAM,gBAAgB,eACd,QAAA,wBAAwB,gBAAgB,QAAA,WAAW,GAAG,CAC9D;EAEA,MAAM,kBAAkB,eAAe;AASrC,UARa,gBAAgB,cAAc,OAAO;IAChD,MAAM,QAAA,KAAK,MAAM;IACjB,WAAW;IACX,aAAa,QAAA;IACb,iBAAiB,QAAA;IAClB,CAAA,CAGW,MAAM,GAAG,GAAE;IACxB;;EAGD,MAAM,YAAY,eAAe,CAAC,cAAc,MAAM,SAAS,KAAK,CAAA;EAEpE,MAAM,iBAAiB,eAAe;AACpC,UACE,cAAc,UAAU,QACxB,cAAc,UAAU,UACxB,cAAc,UAAU;IAE3B;EAGD,MAAM,EAAE,OAAO,WAAU;;uBAGvB,mBAsCM,OAAA,eAAA,mBArCW,MAAA,GAAE,CAAA,oDAAA,wDAAA,CAAA,CAAA,EAAA,CAMjB,mBAOM,OAPN,YAOM,CAJJ,mBAG6B,OAAA;IAF1B,IAAI,MAAA,GAAE;IACP,OAAM;IACN,WAAQ,gBAAA;8BAGJ,QAAA,QAAQ,eAAA,SAAA,WAAA,EADhB,YAsBsB,MAAA,4BAAA,EAAA;;IApBpB,OAAK,eAAA,CAAC,6BAA2B,CACf,UAAA,QAAA,wDAAA,qBAAA,EAAA,eAAsI,QAAA,SAAI,UAAA,CAAA,CAAA,CAAA;IAM3J,SAAS,cAAA;IACT,UAAQ,CAAG,UAAA;IACX,MAAM,QAAA;IACN,iBAAe,MAAA,GAAE;;IACP,UAAQ,cAOV,CANP,YAMO,4BAAA,EALL,OAAK,eAAA,CAAC,6BAA2B,CACX,UAAA,QAAA,0EAAA,oBAAA,CAAA,CAAA,EAAA,EAAA,MAAA,GAAA,CAAA,QAAA,CAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"ScalarCodeBlock.vue.script.js","names":[],"sources":["../../../src/components/ScalarCodeBlock/ScalarCodeBlock.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Code Block component\n *\n * Renders syntax-highlighted code using highlight.js.\n * Supports line numbers, credential masking, and an optional copy button.\n *\n * @example\n * <ScalarCodeBlock content=\"const x = 1\" lang=\"javascript\" />\n */\nexport default {}\n</script>\n<script lang=\"ts\" setup>\nimport ScalarCopyBackdrop from '@/components/ScalarCopy/ScalarCopyBackdrop.vue'\nimport { standardLanguages, syntaxHighlight } from '@scalar/code-highlight'\nimport { prettyPrintJson } from '@scalar/helpers/json/pretty-print-json'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed, useId } from 'vue'\n\nimport { ScalarCodeBlockCopy } from '../ScalarCodeBlock'\nimport type { StandardLanguageKey } from './types'\n\ntype BaseProps = {\n content?: string | object\n prettyPrintedContent?: string\n lang?: StandardLanguageKey | string\n lineNumbers?: boolean\n hideCredentials?: string | string[]\n copy?: 'always' | 'hover' | false\n}\n\n/**\n * Uses highlight.js for syntax highlighting\n *\n * Requires at least one of content or prettyPrintedContent\n */\nconst {\n lang = 'plaintext',\n lineNumbers = false,\n copy = 'hover',\n content,\n prettyPrintedContent,\n hideCredentials,\n} = defineProps<\n BaseProps &\n (\n | {\n /** Raw unformatted object or string content */\n content: string | object\n }\n | {\n /**\n * Pre-pretty printed content string for better performance\n *\n * Avoids unnecessary costly re-serialization of large content\n */\n prettyPrintedContent: string\n }\n )\n>()\n\n/** Base id for the code block */\nconst id = useId()\n\n/** Formatted the content into an indented json string */\nconst prettyContent = computed(\n () => prettyPrintedContent || prettyPrintJson(content ?? ''),\n)\n\nconst highlightedCode = computed(() => {\n const html = syntaxHighlight(prettyContent.value, {\n lang: lang.trim(),\n languages: standardLanguages,\n lineNumbers: lineNumbers,\n maskCredentials: hideCredentials,\n })\n\n // Need to remove the wrapping <pre> element so we can use v-html without another wrapper\n return html.slice(5, -6)\n})\n\n/** Determine if the content is a single line */\nconst isOneLine = computed(() => !prettyContent.value.includes('\\n'))\n\nconst isContentValid = computed(() => {\n return (\n prettyContent.value !== null &&\n prettyContent.value !== 'null' &&\n prettyContent.value !== '404 Not Found'\n )\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div\n v-bind=\"\n cx(\n 'scalar-code-block group/code-block flex flex-col',\n 'relative bg-b-1 min-h-0 min-w-0 focus-visible:outline',\n )\n \">\n <div\n tabindex=\"0\"\n class=\"custom-scroll overflow-x-auto p-2 -outline-offset-2 min-h-0 min-w-0 flex-1\">\n <pre\n :id=\"id\"\n class=\"m-0 bg-transparent text-nowrap whitespace-pre w-fit\"\n v-html=\"highlightedCode\" />\n </div>\n <ScalarCodeBlockCopy\n v-if=\"copy && isContentValid\"\n class=\"scalar-code-copy absolute\"\n :class=\"[\n isOneLine\n ? 'top-[calc(10px+0.5lh)] -translate-y-1/2 m-0 right-1'\n : 'top-2.5 right-2.5',\n { 'opacity-100': copy === 'always' },\n ]\"\n :content=\"prettyContent\"\n :showLang=\"!isOneLine\"\n :lang=\"lang\"\n :aria-controls=\"id\">\n <template #backdrop>\n <ScalarCopyBackdrop\n class=\"scalar-code-copy-backdrop\"\n :class=\"[\n isOneLine\n ? '-inset-y-0.75 -right-1 group-hocus-within/code-block:-left-0.5 left-3'\n : '-right-1.5 -top-1',\n ]\" />\n </template>\n </ScalarCodeBlockCopy>\n </div>\n</template>\n<style>\n@reference '../../style.css';\n@import '@scalar/code-highlight/css/code.css';\n\n/** Make the copy button label backdrop match the background */\n.scalar-code-block.bg-b-1 .scalar-code-copy-backdrop {\n @apply bg-b-1;\n}\n.scalar-code-block.bg-b-2 .scalar-code-copy-backdrop {\n @apply bg-b-2;\n}\n/** Make the copy button one shade darker than the background */\n.scalar-code-block.bg-b-2 .scalar-code-copy {\n @apply bg-b-3;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8DA,MAAM,KAAK,OAAM;;EAGjB,MAAM,gBAAgB,eACd,QAAA,wBAAwB,gBAAgB,QAAA,WAAW,GAAG,CAC9D;EAEA,MAAM,kBAAkB,eAAe;AASrC,UARa,gBAAgB,cAAc,OAAO;IAChD,MAAM,QAAA,KAAK,MAAM;IACjB,WAAW;IACX,aAAa,QAAA;IACb,iBAAiB,QAAA;IAClB,CAAA,CAGW,MAAM,GAAG,GAAE;IACxB;;EAGD,MAAM,YAAY,eAAe,CAAC,cAAc,MAAM,SAAS,KAAK,CAAA;EAEpE,MAAM,iBAAiB,eAAe;AACpC,UACE,cAAc,UAAU,QACxB,cAAc,UAAU,UACxB,cAAc,UAAU;IAE3B;EAGD,MAAM,EAAE,OAAO,WAAU;;uBAGvB,mBAsCM,OAAA,eAAA,mBArCW,MAAA,GAAE,CAAA,oDAAA,wDAAA,CAAA,CAAA,EAAA,CAMjB,mBAOM,OAPN,YAOM,CAJJ,mBAG6B,OAAA;IAF1B,IAAI,MAAA,GAAE;IACP,OAAM;IACN,WAAQ,gBAAA;8BAGJ,QAAA,QAAQ,eAAA,SAAA,WAAA,EADhB,YAsBsB,MAAA,4BAAA,EAAA;;IApBpB,OAAK,eAAA,CAAC,6BAA2B,CACf,UAAA,QAAA,wDAAA,qBAAA,EAAA,eAAsI,QAAA,SAAI,UAAA,CAAA,CAAA,CAAA;IAM3J,SAAS,cAAA;IACT,UAAQ,CAAG,UAAA;IACX,MAAM,QAAA;IACN,iBAAe,MAAA,GAAE;;IACP,UAAQ,cAOV,CANP,YAMO,4BAAA,EALL,OAAK,eAAA,CAAC,6BAA2B,CACX,UAAA,QAAA,0EAAA,oBAAA,CAAA,CAAA,EAAA,EAAA,MAAA,GAAA,CAAA,QAAA,CAAA,CAAA,CAAA"}
@@ -1,28 +1,40 @@
1
1
  import type { StandardLanguageKey } from './types';
2
- type __VLS_Props = {
2
+ /**
3
+ * Scalar Code Block Copy button
4
+ *
5
+ * Displays a copy-to-clipboard button with an optional language label.
6
+ * Used internally by ScalarCodeBlock.
7
+ *
8
+ * @example
9
+ * <ScalarCodeBlockCopy content="const x = 1" lang="javascript" />
10
+ */
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
13
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
3
14
  /** Whether to show the language label */
4
15
  showLang?: boolean;
5
16
  /** Content to copy to clipboard */
6
17
  content: string | object;
7
18
  /** Language of the code block */
8
19
  lang?: StandardLanguageKey | string;
9
- };
10
- type __VLS_ModelProps = {
11
- 'copied'?: boolean;
12
- };
13
- type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
14
- declare var __VLS_10: {};
15
- type __VLS_Slots = {} & {
16
- backdrop?: (props: typeof __VLS_10) => any;
17
- };
18
- declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
20
+ } & {
21
+ copied?: boolean;
22
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
19
23
  "update:copied": (value: boolean) => any;
20
- }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
24
+ }, string, import("vue").PublicProps, Readonly<{
25
+ /** Whether to show the language label */
26
+ showLang?: boolean;
27
+ /** Content to copy to clipboard */
28
+ content: string | object;
29
+ /** Language of the code block */
30
+ lang?: StandardLanguageKey | string;
31
+ } & {
32
+ copied?: boolean;
33
+ }> & Readonly<{
21
34
  "onUpdate:copied"?: ((value: boolean) => any) | undefined;
22
- }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
23
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
24
- declare const _default: typeof __VLS_export;
25
- export default _default;
35
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
36
+ backdrop?: (props: {}) => any;
37
+ }>;
26
38
  type __VLS_WithSlots<T, S> = T & {
27
39
  new (): {
28
40
  $slots: S;
@@ -1 +1 @@
1
- {"version":3,"file":"ScalarCodeBlockCopy.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarCodeBlock/ScalarCodeBlockCopy.vue"],"names":[],"mappings":"AA8EA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAElD,KAAK,WAAW,GAAG;IACjB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,mCAAmC;IACnC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;IACxB,iCAAiC;IACjC,IAAI,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAAA;CACpC,CAAC;AAwBF,KAAK,gBAAgB,GAAG;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAKF,KAAK,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;AA8FxD,QAAA,IAAI,QAAQ,IAAW,CAAE;AACzB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAKjD,QAAA,MAAM,UAAU;;;;kFAGd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"ScalarCodeBlockCopy.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarCodeBlock/ScalarCodeBlockCopy.vue"],"names":[],"mappings":"AA0FA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAGlD;;;;;;;;GAQG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY;IAEhB,yCAAyC;eAC9B,OAAO;IAClB,mCAAmC;aAC1B,MAAM,GAAG,MAAM;IACxB,iCAAiC;WAC1B,mBAAmB,GAAG,MAAM;;aA0B1B,OAAO;;;;IA/BhB,yCAAyC;eAC9B,OAAO;IAClB,mCAAmC;aAC1B,MAAM,GAAG,MAAM;IACxB,iCAAiC;WAC1B,mBAAmB,GAAG,MAAM;;aA0B1B,OAAO;;;;eAsGH,CAAC,KAAK,IAAiB,KAAK,GAAG;EAU1C,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":"ScalarCodeBlockCopy.vue.js","names":[],"sources":["../../../src/components/ScalarCodeBlock/ScalarCodeBlockCopy.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarCopy } from '@/components/ScalarCopy'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed } from 'vue'\n\nimport { LANGUAGE_LABELS } from './constants'\nimport type { StandardLanguageKey } from './types'\n\nconst { content } = defineProps<{\n /** Whether to show the language label */\n showLang?: boolean\n /** Content to copy to clipboard */\n content: string | object\n /** Language of the code block */\n lang?: StandardLanguageKey | string\n}>()\n\nconst copied = defineModel<boolean>('copied', { default: false })\n\n/** Handles the copy button click */\nconst contentToCopy = computed<string>(() => {\n return typeof content === 'string'\n ? content\n : JSON.stringify(content, null, 2)\n})\n\n/** Type guard to check if the language is a standard language */\nconst isStandardLanguage = (lang: string): lang is StandardLanguageKey =>\n lang in LANGUAGE_LABELS\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n\n<template>\n <ScalarCopy\n :content=\"contentToCopy\"\n showLabel\n v-model:copied=\"copied\"\n placement=\"left\"\n v-bind=\"{\n ...cx(\n copied\n ? 'opacity-100'\n : 'opacity-0 group-hocus-within/code-block:opacity-100',\n ),\n }\">\n <template\n v-if=\"lang\"\n #copy>\n <span class=\"hidden group-hocus-within/code-block:inline\">\n <span\n v-if=\"showLang\"\n class=\"group-hocus/copy-button:sr-only\"\n :class=\"{ capitalize: !isStandardLanguage(lang) }\">\n {{ isStandardLanguage(lang) ? LANGUAGE_LABELS[lang] : lang }}\n </span>\n <span\n :class=\"{\n 'group-hocus/copy-button:not-sr-only sr-only': showLang,\n }\"\n >Copy</span\n >\n </span>\n </template>\n <template #backdrop>\n <slot name=\"backdrop\" />\n </template>\n </ScalarCopy>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"ScalarCodeBlockCopy.vue.js","names":[],"sources":["../../../src/components/ScalarCodeBlock/ScalarCodeBlockCopy.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Code Block Copy button\n *\n * Displays a copy-to-clipboard button with an optional language label.\n * Used internally by ScalarCodeBlock.\n *\n * @example\n * <ScalarCodeBlockCopy content=\"const x = 1\" lang=\"javascript\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarCopy } from '@/components/ScalarCopy'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed } from 'vue'\n\nimport { LANGUAGE_LABELS } from './constants'\nimport type { StandardLanguageKey } from './types'\n\nconst { content } = defineProps<{\n /** Whether to show the language label */\n showLang?: boolean\n /** Content to copy to clipboard */\n content: string | object\n /** Language of the code block */\n lang?: StandardLanguageKey | string\n}>()\n\nconst copied = defineModel<boolean>('copied', { default: false })\n\n/** Handles the copy button click */\nconst contentToCopy = computed<string>(() => {\n return typeof content === 'string'\n ? content\n : JSON.stringify(content, null, 2)\n})\n\n/** Type guard to check if the language is a standard language */\nconst isStandardLanguage = (lang: string): lang is StandardLanguageKey =>\n lang in LANGUAGE_LABELS\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n\n<template>\n <ScalarCopy\n :content=\"contentToCopy\"\n showLabel\n v-model:copied=\"copied\"\n placement=\"left\"\n v-bind=\"{\n ...cx(\n copied\n ? 'opacity-100'\n : 'opacity-0 group-hocus-within/code-block:opacity-100',\n ),\n }\">\n <template\n v-if=\"lang\"\n #copy>\n <span class=\"hidden group-hocus-within/code-block:inline\">\n <span\n v-if=\"showLang\"\n class=\"group-hocus/copy-button:sr-only\"\n :class=\"{ capitalize: !isStandardLanguage(lang) }\">\n {{ isStandardLanguage(lang) ? LANGUAGE_LABELS[lang] : lang }}\n </span>\n <span\n :class=\"{\n 'group-hocus/copy-button:not-sr-only sr-only': showLang,\n }\"\n >Copy</span\n >\n </span>\n </template>\n <template #backdrop>\n <slot name=\"backdrop\" />\n </template>\n </ScalarCopy>\n</template>\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"ScalarCodeBlockCopy.vue.script.js","names":[],"sources":["../../../src/components/ScalarCodeBlock/ScalarCodeBlockCopy.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ScalarCopy } from '@/components/ScalarCopy'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed } from 'vue'\n\nimport { LANGUAGE_LABELS } from './constants'\nimport type { StandardLanguageKey } from './types'\n\nconst { content } = defineProps<{\n /** Whether to show the language label */\n showLang?: boolean\n /** Content to copy to clipboard */\n content: string | object\n /** Language of the code block */\n lang?: StandardLanguageKey | string\n}>()\n\nconst copied = defineModel<boolean>('copied', { default: false })\n\n/** Handles the copy button click */\nconst contentToCopy = computed<string>(() => {\n return typeof content === 'string'\n ? content\n : JSON.stringify(content, null, 2)\n})\n\n/** Type guard to check if the language is a standard language */\nconst isStandardLanguage = (lang: string): lang is StandardLanguageKey =>\n lang in LANGUAGE_LABELS\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n\n<template>\n <ScalarCopy\n :content=\"contentToCopy\"\n showLabel\n v-model:copied=\"copied\"\n placement=\"left\"\n v-bind=\"{\n ...cx(\n copied\n ? 'opacity-100'\n : 'opacity-0 group-hocus-within/code-block:opacity-100',\n ),\n }\">\n <template\n v-if=\"lang\"\n #copy>\n <span class=\"hidden group-hocus-within/code-block:inline\">\n <span\n v-if=\"showLang\"\n class=\"group-hocus/copy-button:sr-only\"\n :class=\"{ capitalize: !isStandardLanguage(lang) }\">\n {{ isStandardLanguage(lang) ? LANGUAGE_LABELS[lang] : lang }}\n </span>\n <span\n :class=\"{\n 'group-hocus/copy-button:not-sr-only sr-only': showLang,\n }\"\n >Copy</span\n >\n </span>\n </template>\n <template #backdrop>\n <slot name=\"backdrop\" />\n </template>\n </ScalarCopy>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;EAiBA,MAAM,SAAS,SAAoB,SAAC,SAA4B;;EAGhE,MAAM,gBAAgB,eAAuB;AAC3C,UAAO,OAAO,QAAA,YAAY,WACtB,QAAA,UACA,KAAK,UAAU,QAAA,SAAS,MAAM,EAAC;IACpC;;EAGD,MAAM,sBAAsB,SAC1B,QAAQ;EAGV,MAAM,EAAE,OAAO,WAAU;;uBAIvB,YAiCa,MAAA,mBAAA,EAjCb,WAiCa;IAhCV,SAAS,cAAA;IACV,WAAA;IACQ,QAAQ,OAAA;oEAAM,QAAA;IACtB,WAAU;WACS,MAAA,GAAE,CAAU,OAAA,QAAA,gBAAA,sDAAA,EAAA,CAAA,EAAA,YAAA;IAyBpB,UAAQ,cACO,CAAxB,WAAwB,KAAA,QAAA,WAAA,CAAA,CAAA;;OAlBlB,QAAA,OAAA;UACL;sBAcM,CAbP,mBAaO,QAbP,YAaO,CAXG,QAAA,YAAA,WAAA,EADR,mBAKO,QAAA;;KAHL,OAAK,eAAA,CAAC,mCAAiC,EAAA,YAAA,CAChB,mBAAmB,QAAA,KAAI,EAAA,CAAA,CAAA;uBAC3C,mBAAmB,QAAA,KAAI,GAAI,MAAA,gBAAe,CAAC,QAAA,QAAQ,QAAA,KAAI,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA,EAE5D,mBAKC,QAAA,EAJE,OAAK,eAAA,EAAA,+CAA+D,QAAA,UAAA,CAAA,EAAA,EAGpE,QAAI,EAAA,CAAA,CAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"ScalarCodeBlockCopy.vue.script.js","names":[],"sources":["../../../src/components/ScalarCodeBlock/ScalarCodeBlockCopy.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Code Block Copy button\n *\n * Displays a copy-to-clipboard button with an optional language label.\n * Used internally by ScalarCodeBlock.\n *\n * @example\n * <ScalarCodeBlockCopy content=\"const x = 1\" lang=\"javascript\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarCopy } from '@/components/ScalarCopy'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed } from 'vue'\n\nimport { LANGUAGE_LABELS } from './constants'\nimport type { StandardLanguageKey } from './types'\n\nconst { content } = defineProps<{\n /** Whether to show the language label */\n showLang?: boolean\n /** Content to copy to clipboard */\n content: string | object\n /** Language of the code block */\n lang?: StandardLanguageKey | string\n}>()\n\nconst copied = defineModel<boolean>('copied', { default: false })\n\n/** Handles the copy button click */\nconst contentToCopy = computed<string>(() => {\n return typeof content === 'string'\n ? content\n : JSON.stringify(content, null, 2)\n})\n\n/** Type guard to check if the language is a standard language */\nconst isStandardLanguage = (lang: string): lang is StandardLanguageKey =>\n lang in LANGUAGE_LABELS\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n\n<template>\n <ScalarCopy\n :content=\"contentToCopy\"\n showLabel\n v-model:copied=\"copied\"\n placement=\"left\"\n v-bind=\"{\n ...cx(\n copied\n ? 'opacity-100'\n : 'opacity-0 group-hocus-within/code-block:opacity-100',\n ),\n }\">\n <template\n v-if=\"lang\"\n #copy>\n <span class=\"hidden group-hocus-within/code-block:inline\">\n <span\n v-if=\"showLang\"\n class=\"group-hocus/copy-button:sr-only\"\n :class=\"{ capitalize: !isStandardLanguage(lang) }\">\n {{ isStandardLanguage(lang) ? LANGUAGE_LABELS[lang] : lang }}\n </span>\n <span\n :class=\"{\n 'group-hocus/copy-button:not-sr-only sr-only': showLang,\n }\"\n >Copy</span\n >\n </span>\n </template>\n <template #backdrop>\n <slot name=\"backdrop\" />\n </template>\n </ScalarCopy>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;EA6BA,MAAM,SAAS,SAAoB,SAAC,SAA4B;;EAGhE,MAAM,gBAAgB,eAAuB;AAC3C,UAAO,OAAO,QAAA,YAAY,WACtB,QAAA,UACA,KAAK,UAAU,QAAA,SAAS,MAAM,EAAC;IACpC;;EAGD,MAAM,sBAAsB,SAC1B,QAAQ;EAGV,MAAM,EAAE,OAAO,WAAU;;uBAIvB,YAiCa,MAAA,mBAAA,EAjCb,WAiCa;IAhCV,SAAS,cAAA;IACV,WAAA;IACQ,QAAQ,OAAA;oEAAM,QAAA;IACtB,WAAU;WACS,MAAA,GAAE,CAAU,OAAA,QAAA,gBAAA,sDAAA,EAAA,CAAA,EAAA,YAAA;IAyBpB,UAAQ,cACO,CAAxB,WAAwB,KAAA,QAAA,WAAA,CAAA,CAAA;;OAlBlB,QAAA,OAAA;UACL;sBAcM,CAbP,mBAaO,QAbP,YAaO,CAXG,QAAA,YAAA,WAAA,EADR,mBAKO,QAAA;;KAHL,OAAK,eAAA,CAAC,mCAAiC,EAAA,YAAA,CAChB,mBAAmB,QAAA,KAAI,EAAA,CAAA,CAAA;uBAC3C,mBAAmB,QAAA,KAAI,GAAI,MAAA,gBAAe,CAAC,QAAA,QAAQ,QAAA,KAAI,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA,EAE5D,mBAKC,QAAA,EAJE,OAAK,eAAA,EAAA,+CAA+D,QAAA,UAAA,CAAA,EAAA,EAGpE,QAAI,EAAA,CAAA,CAAA,CAAA,CAAA"}
@@ -1,5 +1,18 @@
1
1
  import type { ScalarFloatingOptions } from '../ScalarFloating';
2
2
  import type { ComboboxSlots, FilterFunction, Option, OptionGroup, OptionsOrGroups } from './types.js';
3
+ /**
4
+ * Scalar Combobox component
5
+ *
6
+ * A searchable select input with support for filtering, option groups,
7
+ * and custom option rendering.
8
+ *
9
+ * @example
10
+ * <ScalarCombobox v-model="selected" :options="options">
11
+ * <ScalarButton>{{ selected?.label ?? 'Select' }}</ScalarButton>
12
+ * </ScalarCombobox>
13
+ */
14
+ declare const _default: typeof __VLS_export;
15
+ export default _default;
3
16
  declare const __VLS_export: <O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
4
17
  props: import("vue").PublicProps & __VLS_PrettifyLocal<({
5
18
  /** The options to display in the combobox */
@@ -27,8 +40,6 @@ declare const __VLS_export: <O extends Option = Option, G extends OptionGroup<O>
27
40
  }>) => import("vue").VNode & {
28
41
  __ctx?: Awaited<typeof __VLS_setup>;
29
42
  };
30
- declare const _default: typeof __VLS_export;
31
- export default _default;
32
43
  type __VLS_PrettifyLocal<T> = (T extends any ? {
33
44
  [K in keyof T]: T[K];
34
45
  } : {
@@ -1 +1 @@
1
- {"version":3,"file":"ScalarCombobox.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarCombobox/ScalarCombobox.vue"],"names":[],"mappings":"AAuFA,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;AAEhB,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;WAgKO,OAAO,KAAK,EAAE,WAAW,GAAG,mBAAmB,CAAC;QA9JpD,6CAA6C;iBACpC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9B,sDAAsD;sBACxC,MAAM;QACpB;;;;WAIG;mBACQ,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;;qBAgBtB,CAAC;;;;KAqI6E,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,qFAAoC;EAEvC,KACQ,OAAO,KAAK,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,WAAW,CAAC,CAAA;CAAI,CAAC;wBACvD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,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
+ {"version":3,"file":"ScalarCombobox.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarCombobox/ScalarCombobox.vue"],"names":[],"mappings":"AAsGA,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;;;;;;;;;;GAUG;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;WAgKO,OAAO,KAAK,EAAE,WAAW,GAAG,mBAAmB,CAAC;QA9JpD,6CAA6C;iBACpC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9B,sDAAsD;sBACxC,MAAM;QACpB;;;;WAIG;mBACQ,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;;qBAgBtB,CAAC;;;;KAqI6E,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,qFAAoC;EAEvC,KACQ,OAAO,KAAK,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,WAAW,CAAC,CAAA;CAAI,CAAC;AAC5E,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":"ScalarCombobox.vue.js","names":[],"sources":["../../../src/components/ScalarCombobox/ScalarCombobox.vue"],"sourcesContent":["<!-- 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":""}
1
+ {"version":3,"file":"ScalarCombobox.vue.js","names":[],"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":""}
@@ -1,7 +1,6 @@
1
1
  import ScalarComboboxOptions_default from "./ScalarComboboxOptions.vue.js";
2
2
  import ScalarComboboxPopover_default from "./ScalarComboboxPopover.vue.js";
3
3
  import { createBlock, createSlots, createVNode, defineComponent, guardReactiveProps, mergeModels, normalizeProps, openBlock, renderSlot, useModel, withCtx } from "vue";
4
- //#region src/components/ScalarCombobox/ScalarCombobox.vue?vue&type=script&setup=true&lang.ts
5
4
  var ScalarCombobox_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
6
5
  __name: "ScalarCombobox",
7
6
  props: /* @__PURE__ */ mergeModels({
@@ -1 +1 @@
1
- {"version":3,"file":"ScalarCombobox.vue.script.js","names":["$slots"],"sources":["../../../src/components/ScalarCombobox/ScalarCombobox.vue"],"sourcesContent":["<!-- 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":";;;;;;;;;;;;;;;;;;;;;;;;;;EAgCA,MAAM,OAAO;EAEb,MAAM,QAAQ,SAAc,SAAA,aAAC;;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,MAAI,CAAA,CAAA,CAAA;IAEF,SAAO,SA+BE,EA/BE,MAAM,YAAK,CAC/B,YA8BkB,+BAAA;KA7Bf,UAAA,QAAA;KACA,YAAY,MAAA,QAAK,CAAI,MAAA,MAAK,GAAA,EAAA;KAC1B;KACA,SAAA,QAAA;KACA,aAAA,QAAA;KACA,cAAY,OAAK,EAAI,KAAI,MAAA;KACzB,wBAAoB,OAAO,OAAK,EAAK,MAAA,QAAQ,EAAC;;KAGvCA,KAAAA,OAAO,SAAA;YACZ;mBAAQ,UAAK,CACd,WAEmB,KAAA,QAAA,UAAA,eAAA,mBAAT,MAAK,CAAA,CAAA,CAAA,CAAA;;;KAGTA,KAAAA,OAAO,QAAA;YACZ;mBAAO,UAAK,CACb,WAEmB,KAAA,QAAA,SAAA,eAAA,mBAAT,MAAK,CAAA,CAAA,CAAA,CAAA;;;KAGTA,KAAAA,OAAO,MAAA;YACZ;mBAAK,UAAK,CACX,WAEmB,KAAA,QAAA,OAAA,eAAA,mBAAT,MAAK,CAAA,CAAA,CAAA,CAAA"}
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,aAAC;;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,MAAI,CAAA,CAAA,CAAA;IAEF,SAAO,SA+BE,EA/BE,MAAM,YAAK,CAC/B,YA8BkB,+BAAA;KA7Bf,UAAA,QAAA;KACA,YAAY,MAAA,QAAK,CAAI,MAAA,MAAK,GAAA,EAAA;KAC1B;KACA,SAAA,QAAA;KACA,aAAA,QAAA;KACA,cAAY,OAAK,EAAI,KAAI,MAAA;KACzB,wBAAoB,OAAO,OAAK,EAAK,MAAA,QAAQ,EAAC;;KAGvCA,KAAAA,OAAO,SAAA;YACZ;mBAAQ,UAAK,CACd,WAEmB,KAAA,QAAA,UAAA,eAAA,mBAAT,MAAK,CAAA,CAAA,CAAA,CAAA;;;KAGTA,KAAAA,OAAO,QAAA;YACZ;mBAAO,UAAK,CACb,WAEmB,KAAA,QAAA,SAAA,eAAA,mBAAT,MAAK,CAAA,CAAA,CAAA,CAAA;;;KAGTA,KAAAA,OAAO,MAAA;YACZ;mBAAK,UAAK,CACX,WAEmB,KAAA,QAAA,OAAA,eAAA,mBAAT,MAAK,CAAA,CAAA,CAAA,CAAA"}
@@ -1,5 +1,17 @@
1
1
  import type { ScalarFloatingOptions } from '../ScalarFloating';
2
2
  import type { ComboboxSlots, FilterFunction, Option, OptionGroup, OptionsOrGroups } from './types.js';
3
+ /**
4
+ * Scalar Combobox Multiselect component
5
+ *
6
+ * A searchable select input that supports selecting multiple options.
7
+ *
8
+ * @example
9
+ * <ScalarComboboxMultiselect v-model="selected" :options="options">
10
+ * <ScalarButton>Select items</ScalarButton>
11
+ * </ScalarComboboxMultiselect>
12
+ */
13
+ declare const _default: typeof __VLS_export;
14
+ export default _default;
3
15
  declare const __VLS_export: <O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
4
16
  props: import("vue").PublicProps & __VLS_PrettifyLocal<({
5
17
  /** The options to display in the combobox */
@@ -453,8 +465,6 @@ declare const __VLS_export: <O extends Option = Option, G extends OptionGroup<O>
453
465
  }>) => import("vue").VNode & {
454
466
  __ctx?: Awaited<typeof __VLS_setup>;
455
467
  };
456
- declare const _default: typeof __VLS_export;
457
- export default _default;
458
468
  type __VLS_PrettifyLocal<T> = (T extends any ? {
459
469
  [K in keyof T]: T[K];
460
470
  } : {
@@ -1 +1 @@
1
- {"version":3,"file":"ScalarComboboxMultiselect.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarCombobox/ScalarComboboxMultiselect.vue"],"names":[],"mappings":"AAkGA,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;AAEhB,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;WAmLO,OAAO,KAAK,EAAE,WAAW,GAAG,mBAAmB,CAAC;QAjLpD,6CAA6C;iBACpC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9B,sDAAsD;sBACxC,MAAM;QACpB;;;;WAIG;mBACQ,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;;qBAyBtB,CAAC,EAAE;;;;KA+I2E,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,OAAO,CAAC,OAAO,WAAW,CAAC,CAAA;CAAI,CAAC;wBACvD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,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
+ {"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;WAmLO,OAAO,KAAK,EAAE,WAAW,GAAG,mBAAmB,CAAC;QAjLpD,6CAA6C;iBACpC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9B,sDAAsD;sBACxC,MAAM;QACpB;;;;WAIG;mBACQ,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;;qBAyBtB,CAAC,EAAE;;;;KA+I2E,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,OAAO,CAAC,OAAO,WAAW,CAAC,CAAA;CAAI,CAAC;AAC5E,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":["<!-- 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,7 +1,6 @@
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
- //#region src/components/ScalarCombobox/ScalarComboboxMultiselect.vue?vue&type=script&setup=true&lang.ts
5
4
  var ScalarComboboxMultiselect_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
6
5
  __name: "ScalarComboboxMultiselect",
7
6
  props: /* @__PURE__ */ mergeModels({
@@ -1 +1 @@
1
- {"version":3,"file":"ScalarComboboxMultiselect.vue.script.js","names":["$slots"],"sources":["../../../src/components/ScalarCombobox/ScalarComboboxMultiselect.vue"],"sourcesContent":["<!-- 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":";;;;;;;;;;;;;;;;;;;;;;;;;;EAkCA,MAAM,OAAO;EAEb,MAAM,QAAQ,SAAgB,SAAA,aAAgB;;EAK9C,MAAM,qBAAqB,IAAmC,KAAI;AAElE,WAAa,EAAE,oBAAoB,CAAA;;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,MAAI,CAAA,CAAA,CAAA;IAEF,SAAO,SAgCE,EAhCE,WAAI,CAEhB,QAAA,SAAS,UAAA,WAAA,EADjB,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,MAAA;;KAGFA,KAAAA,OAAO,SAAA;YACZ;mBAAQ,UAAK,CACd,WAEmB,KAAA,QAAA,UAAA,eAAA,mBAAT,MAAK,CAAA,CAAA,CAAA,CAAA;;;KAGTA,KAAAA,OAAO,QAAA;YACZ;mBAAO,UAAK,CACb,WAEmB,KAAA,QAAA,SAAA,eAAA,mBAAT,MAAK,CAAA,CAAA,CAAA,CAAA;;;KAGTA,KAAAA,OAAO,MAAA;YACZ;mBAAK,UAAK,CACX,WAEmB,KAAA,QAAA,OAAA,eAAA,mBAAT,MAAK,CAAA,CAAA,CAAA,CAAA"}
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,aAAgB;;EAK9C,MAAM,qBAAqB,IAAmC,KAAI;AAElE,WAAa,EAAE,oBAAoB,CAAA;;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,MAAI,CAAA,CAAA,CAAA;IAEF,SAAO,SAgCE,EAhCE,WAAI,CAEhB,QAAA,SAAS,UAAA,WAAA,EADjB,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,MAAA;;KAGFA,KAAAA,OAAO,SAAA;YACZ;mBAAQ,UAAK,CACd,WAEmB,KAAA,QAAA,UAAA,eAAA,mBAAT,MAAK,CAAA,CAAA,CAAA,CAAA;;;KAGTA,KAAAA,OAAO,QAAA;YACZ;mBAAO,UAAK,CACb,WAEmB,KAAA,QAAA,SAAA,eAAA,mBAAT,MAAK,CAAA,CAAA,CAAA,CAAA;;;KAGTA,KAAAA,OAAO,MAAA;YACZ;mBAAK,UAAK,CACX,WAEmB,KAAA,QAAA,OAAA,eAAA,mBAAT,MAAK,CAAA,CAAA,CAAA,CAAA"}
@@ -1,18 +1,28 @@
1
- type __VLS_Props = {
2
- active?: boolean;
3
- selected?: boolean;
4
- };
5
- declare var __VLS_1: {
6
- active: boolean;
7
- selected: boolean;
8
- };
9
- type __VLS_Slots = {} & {
10
- default?: (props: typeof __VLS_1) => any;
11
- };
12
- 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>;
13
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
1
+ /**
2
+ * Scalar Combobox Option component
3
+ *
4
+ * A single selectable option within a combobox list.
5
+ * Handles active and selected states.
6
+ *
7
+ * @example
8
+ * <ScalarComboboxOption :active="true" :selected="false">
9
+ * Option Label
10
+ * </ScalarComboboxOption>
11
+ */
14
12
  declare const _default: typeof __VLS_export;
15
13
  export default _default;
14
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
15
+ active?: boolean;
16
+ selected?: boolean;
17
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
18
+ active?: boolean;
19
+ selected?: boolean;
20
+ }> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
21
+ default?: (props: {
22
+ active: boolean;
23
+ selected: boolean;
24
+ }) => any;
25
+ }>;
16
26
  type __VLS_WithSlots<T, S> = T & {
17
27
  new (): {
18
28
  $slots: S;
@@ -1 +1 @@
1
- {"version":3,"file":"ScalarComboboxOption.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarCombobox/ScalarComboboxOption.vue"],"names":[],"mappings":"AAyCA,KAAK,WAAW,GAAG;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAC;AAkDF,QAAA,IAAI,OAAO;;;CAAW,CAAE;AACxB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAK/C,QAAA,MAAM,UAAU,kSAEd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"ScalarComboboxOption.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarCombobox/ScalarComboboxOption.vue"],"names":[],"mappings":"AAyDA;;;;;;;;;;GAUG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY;aAEP,OAAO;eACL,OAAO;;aADT,OAAO;eACL,OAAO;;cAqDN,CAAC,KAAK;;;KAAgB,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":"ScalarComboboxOption.vue.js","names":[],"sources":["../../../src/components/ScalarCombobox/ScalarComboboxOption.vue"],"sourcesContent":["<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":""}
1
+ {"version":3,"file":"ScalarComboboxOption.vue.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":""}
@@ -1 +1 @@
1
- {"version":3,"file":"ScalarComboboxOption.vue.script.js","names":[],"sources":["../../../src/components/ScalarCombobox/ScalarComboboxOption.vue"],"sourcesContent":["<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":";;;;;;;;;;;EAQA,MAAM,WAAW,IAAI;GACnB,MAAM;IAEJ;IAEA;IAEA;IAEA;IACD;GACD,UAAU;IACR,UAAU,EAAE,MAAM,YAAY;IAC9B,QAAQ,EAAE,MAAM,UAAU;IAC3B;GACF,CAAA;;uBAGC,mBAQK,MAAA;IAPF,iBAAe,QAAA;IACf,OAAK,eAAE,MAAA,GAAE,CAAC,MAAA,SAAQ,CAAA;KAAA,QAAG,QAAA;KAAM,UAAE,QAAA;KAAQ,CAAA,CAAA,CAAA;IACtC,MAAK;IACL,UAAS;OACT,WAEc,KAAA,QAAA,WAAA;IADX,QAAA,QAAA;IACA,UAAA,QAAA"}
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;IACD;GACD,UAAU;IACR,UAAU,EAAE,MAAM,YAAY;IAC9B,QAAQ,EAAE,MAAM,UAAU;IAC3B;GACF,CAAA;;uBAGC,mBAQK,MAAA;IAPF,iBAAe,QAAA;IACf,OAAK,eAAE,MAAA,GAAE,CAAC,MAAA,SAAQ,CAAA;KAAA,QAAG,QAAA;KAAM,UAAE,QAAA;KAAQ,CAAA,CAAA,CAAA;IACtC,MAAK;IACL,UAAS;OACT,WAEc,KAAA,QAAA,WAAA;IADX,QAAA,QAAA;IACA,UAAA,QAAA"}
@@ -1,17 +1,27 @@
1
- type __VLS_Props = {
1
+ /**
2
+ * Scalar Combobox Option Group component
3
+ *
4
+ * Groups related options under an optional label within a combobox.
5
+ *
6
+ * @example
7
+ * <ScalarComboboxOptionGroup>
8
+ * <template #label>Group Name</template>
9
+ * <!-- options -->
10
+ * </ScalarComboboxOptionGroup>
11
+ */
12
+ declare const _default: typeof __VLS_export;
13
+ export default _default;
14
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
2
15
  id?: string;
3
16
  hidden?: boolean;
4
- };
5
- declare var __VLS_1: {}, __VLS_3: {};
6
- type __VLS_Slots = {} & {
7
- label?: (props: typeof __VLS_1) => any;
17
+ }, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
18
+ id?: string;
19
+ hidden?: boolean;
20
+ }> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
21
+ label?: (props: {}) => any;
8
22
  } & {
9
- default?: (props: typeof __VLS_3) => any;
10
- };
11
- 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>;
12
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
13
- declare const _default: typeof __VLS_export;
14
- export default _default;
23
+ default?: (props: {}) => any;
24
+ }>;
15
25
  type __VLS_WithSlots<T, S> = T & {
16
26
  new (): {
17
27
  $slots: S;
@@ -1 +1 @@
1
- {"version":3,"file":"ScalarComboboxOptionGroup.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarCombobox/ScalarComboboxOptionGroup.vue"],"names":[],"mappings":"AA4BA,KAAK,WAAW,GAAG;IACjB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAC;AAwCF,QAAA,IAAI,OAAO,IAAU,EAAE,OAAO,IAAW,CAAE;AAC3C,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC1C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAG/C,QAAA,MAAM,UAAU,kSAEd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"ScalarComboboxOptionGroup.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarCombobox/ScalarComboboxOptionGroup.vue"],"names":[],"mappings":"AA4CA;;;;;;;;;;GAUG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY;SAEX,MAAM;aACF,OAAO;;SADX,MAAM;aACF,OAAO;;YA2CN,CAAC,KAAK,IAAgB,KAAK,GAAG;;cAC5B,CAAC,KAAK,IAAgB,KAAK,GAAG;EAOxC,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":"ScalarComboboxOptionGroup.vue.js","names":[],"sources":["../../../src/components/ScalarCombobox/ScalarComboboxOptionGroup.vue"],"sourcesContent":["<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":""}
1
+ {"version":3,"file":"ScalarComboboxOptionGroup.vue.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":""}
@@ -1 +1 @@
1
- {"version":3,"file":"ScalarComboboxOptionGroup.vue.script.js","names":[],"sources":["../../../src/components/ScalarCombobox/ScalarComboboxOptionGroup.vue"],"sourcesContent":["<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":";;;;;;;;;;;;;;;;;;;uBASE,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,WAAA,EADT,mBAKM,OAAA;;IAHH,IAAE,GAAK,QAAA,GAAE;IACV,OAAM;OACN,WAAqB,KAAA,QAAA,QAAA,CAAA,EAAA,GAAA,WAAA,IAAA,mBAAA,IAAA,KAAA,EAEvB,WAAQ,KAAA,QAAA,UAAA,CAAA,EAAA,GAAA,WAAA"}
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,WAAA,EADT,mBAKM,OAAA;;IAHH,IAAE,GAAK,QAAA,GAAE;IACV,OAAM;OACN,WAAqB,KAAA,QAAA,QAAA,CAAA,EAAA,GAAA,WAAA,IAAA,mBAAA,IAAA,KAAA,EAEvB,WAAQ,KAAA,QAAA,UAAA,CAAA,EAAA,GAAA,WAAA"}
@@ -1,4 +1,15 @@
1
1
  import { type ComboboxSlots, type FilterFunction, type Option, type OptionGroup, type OptionsOrGroups } from './types.js';
2
+ /**
3
+ * Scalar Combobox Options component
4
+ *
5
+ * Renders the searchable option list for a combobox, including
6
+ * filtering, keyboard navigation, and an optional "add new" action.
7
+ *
8
+ * @example
9
+ * <ScalarComboboxOptions v-model="selected" :options="options" />
10
+ */
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
2
13
  declare const __VLS_export: <O extends Option = Option, G extends OptionGroup<O> = OptionGroup<O>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
3
14
  props: import("vue").PublicProps & __VLS_PrettifyLocal<({
4
15
  /** The options to display in the combobox */
@@ -29,8 +40,6 @@ declare const __VLS_export: <O extends Option = Option, G extends OptionGroup<O>
29
40
  }>) => import("vue").VNode & {
30
41
  __ctx?: Awaited<typeof __VLS_setup>;
31
42
  };
32
- declare const _default: typeof __VLS_export;
33
- export default _default;
34
43
  type __VLS_PrettifyLocal<T> = (T extends any ? {
35
44
  [K in keyof T]: T[K];
36
45
  } : {