@scalar/components 0.21.3 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/components/ScalarCard/ScalarCard.vue.d.ts.map +1 -1
  2. package/dist/components/ScalarCard/ScalarCard.vue.js.map +1 -1
  3. package/dist/components/ScalarCard/ScalarCard.vue.script.js +1 -1
  4. package/dist/components/ScalarCard/ScalarCard.vue.script.js.map +1 -1
  5. package/dist/components/ScalarCard/ScalarCardSection.vue.d.ts.map +1 -1
  6. package/dist/components/ScalarCard/ScalarCardSection.vue.js.map +1 -1
  7. package/dist/components/ScalarCard/ScalarCardSection.vue.script.js +1 -1
  8. package/dist/components/ScalarCard/ScalarCardSection.vue.script.js.map +1 -1
  9. package/dist/components/ScalarIcon/variants.d.ts +2 -50
  10. package/dist/components/ScalarIcon/variants.d.ts.map +1 -1
  11. package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.d.ts +6 -0
  12. package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.d.ts.map +1 -1
  13. package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.js.map +1 -1
  14. package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.script.js +12 -7
  15. package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.script.js.map +1 -1
  16. package/dist/components/ScalarMenu/ScalarMenuLink.vue.d.ts +2 -0
  17. package/dist/components/ScalarMenu/ScalarMenuLink.vue.d.ts.map +1 -1
  18. package/dist/components/ScalarMenu/ScalarMenuLink.vue.js.map +1 -1
  19. package/dist/components/ScalarMenu/ScalarMenuLink.vue.script.js +7 -6
  20. package/dist/components/ScalarMenu/ScalarMenuLink.vue.script.js.map +1 -1
  21. package/dist/components/ScalarMenu/ScalarMenuTeamPicker.vue.js.map +1 -1
  22. package/dist/components/ScalarMenu/ScalarMenuTeamPicker.vue.script.js +4 -4
  23. package/dist/components/ScalarMenu/ScalarMenuTeamPicker.vue.script.js.map +1 -1
  24. package/dist/components/ScalarMenu/ScalarMenuWorkspacePicker.vue.js.map +1 -1
  25. package/dist/components/ScalarMenu/ScalarMenuWorkspacePicker.vue.script.js +4 -4
  26. package/dist/components/ScalarMenu/ScalarMenuWorkspacePicker.vue.script.js.map +1 -1
  27. package/dist/components/ScalarSidebar/ScalarSidebarFooter.vue.js.map +1 -1
  28. package/dist/components/ScalarSidebar/ScalarSidebarFooter.vue.script.js +1 -1
  29. package/dist/components/ScalarSidebar/ScalarSidebarFooter.vue.script.js.map +1 -1
  30. package/dist/components/ScalarSidebar/ScalarSidebarItems.vue.js.map +1 -1
  31. package/dist/components/ScalarSidebar/ScalarSidebarItems.vue.script.js +1 -1
  32. package/dist/components/ScalarSidebar/ScalarSidebarItems.vue.script.js.map +1 -1
  33. package/dist/components/ScalarSidebar/ScalarSidebarNestedItems.vue.d.ts.map +1 -1
  34. package/dist/components/ScalarSidebar/ScalarSidebarNestedItems.vue.js +1 -0
  35. package/dist/components/ScalarSidebar/ScalarSidebarNestedItems.vue.js.map +1 -1
  36. package/dist/components/ScalarSidebar/ScalarSidebarNestedItems.vue.script.js +11 -14
  37. package/dist/components/ScalarSidebar/ScalarSidebarNestedItems.vue.script.js.map +1 -1
  38. package/dist/components/ScalarSidebar/ScalarSidebarPlayground.vue.d.ts +20 -0
  39. package/dist/components/ScalarSidebar/ScalarSidebarPlayground.vue.d.ts.map +1 -1
  40. package/dist/components/ScalarVirtualText/ScalarVirtualText.vue.d.ts +10 -1
  41. package/dist/components/ScalarVirtualText/ScalarVirtualText.vue.d.ts.map +1 -1
  42. package/dist/components/ScalarVirtualText/ScalarVirtualText.vue.js +3 -1
  43. package/dist/components/ScalarVirtualText/ScalarVirtualText.vue.js.map +1 -1
  44. package/dist/components/ScalarVirtualText/ScalarVirtualText.vue.script.js +183 -37
  45. package/dist/components/ScalarVirtualText/ScalarVirtualText.vue.script.js.map +1 -1
  46. package/dist/components/ScalarVirtualText/ScalarVirtualTextSearch.vue.d.ts +45 -0
  47. package/dist/components/ScalarVirtualText/ScalarVirtualTextSearch.vue.d.ts.map +1 -0
  48. package/dist/components/ScalarVirtualText/ScalarVirtualTextSearch.vue.js +9 -0
  49. package/dist/components/ScalarVirtualText/ScalarVirtualTextSearch.vue.js.map +1 -0
  50. package/dist/components/ScalarVirtualText/ScalarVirtualTextSearch.vue.script.js +101 -0
  51. package/dist/components/ScalarVirtualText/ScalarVirtualTextSearch.vue.script.js.map +1 -0
  52. package/dist/components/ScalarWrappingText/ScalarWrappingText.vue.d.ts.map +1 -1
  53. package/dist/components/ScalarWrappingText/ScalarWrappingText.vue.js.map +1 -1
  54. package/dist/components/ScalarWrappingText/ScalarWrappingText.vue.script.js +4 -2
  55. package/dist/components/ScalarWrappingText/ScalarWrappingText.vue.script.js.map +1 -1
  56. package/dist/docs/useBindCx/MockComponents.d.ts +4 -100
  57. package/dist/docs/useBindCx/MockComponents.d.ts.map +1 -1
  58. package/dist/style.css +137 -11
  59. package/package.json +14 -14
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Floating search bar for ScalarVirtualText
3
+ *
4
+ * Provides find-in-text functionality with match navigation (next/prev)
5
+ * and result count display.
6
+ *
7
+ * @example
8
+ * <ScalarVirtualTextSearch
9
+ * v-model:query="searchQuery"
10
+ * :matchCount="searchMatches.length"
11
+ * :activeMatchIndex="activeMatchIndex"
12
+ * @next="nextMatch"
13
+ * @prev="prevMatch"
14
+ * @close="closeSearch" />
15
+ */
16
+ declare const _default: typeof __VLS_export;
17
+ export default _default;
18
+ declare const __VLS_export: import("vue").DefineComponent<{
19
+ /** Current search query (v-model) */
20
+ query: string;
21
+ /** Total number of matches */
22
+ matchCount: number;
23
+ /** Zero-based index of the currently active match */
24
+ activeMatchIndex: number;
25
+ }, {
26
+ focus: () => void;
27
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
28
+ close: () => any;
29
+ next: () => any;
30
+ prev: () => any;
31
+ "update:query": (value: string) => any;
32
+ }, string, import("vue").PublicProps, Readonly<{
33
+ /** Current search query (v-model) */
34
+ query: string;
35
+ /** Total number of matches */
36
+ matchCount: number;
37
+ /** Zero-based index of the currently active match */
38
+ activeMatchIndex: number;
39
+ }> & Readonly<{
40
+ onClose?: (() => any) | undefined;
41
+ onNext?: (() => any) | undefined;
42
+ onPrev?: (() => any) | undefined;
43
+ "onUpdate:query"?: ((value: string) => any) | undefined;
44
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
45
+ //# sourceMappingURL=ScalarVirtualTextSearch.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScalarVirtualTextSearch.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarVirtualText/ScalarVirtualTextSearch.vue"],"names":[],"mappings":"AAuJA;;;;;;;;;;;;;;GAcG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY;IAEhB,qCAAqC;WAC9B,MAAM;IACb,8BAA8B;gBAClB,MAAM;IAClB,qDAAqD;sBACnC,MAAM;;;;;;;;;IALxB,qCAAqC;WAC9B,MAAM;IACb,8BAA8B;gBAClB,MAAM;IAClB,qDAAqD;sBACnC,MAAM;;;;;;kFAmQtB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import _plugin_vue_export_helper_default from "../../_virtual/_plugin-vue_export-helper.js";
2
+ import ScalarVirtualTextSearch_vue_vue_type_script_setup_true_lang_default from "./ScalarVirtualTextSearch.vue.script.js";
3
+ /* empty css */
4
+ //#region src/components/ScalarVirtualText/ScalarVirtualTextSearch.vue
5
+ var ScalarVirtualTextSearch_default = /* @__PURE__ */ _plugin_vue_export_helper_default(ScalarVirtualTextSearch_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-95edadbb"]]);
6
+ //#endregion
7
+ export { ScalarVirtualTextSearch_default as default };
8
+
9
+ //# sourceMappingURL=ScalarVirtualTextSearch.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScalarVirtualTextSearch.vue.js","names":[],"sources":["../../../src/components/ScalarVirtualText/ScalarVirtualTextSearch.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Floating search bar for ScalarVirtualText\n *\n * Provides find-in-text functionality with match navigation (next/prev)\n * and result count display.\n *\n * @example\n * <ScalarVirtualTextSearch\n * v-model:query=\"searchQuery\"\n * :matchCount=\"searchMatches.length\"\n * :activeMatchIndex=\"activeMatchIndex\"\n * @next=\"nextMatch\"\n * @prev=\"prevMatch\"\n * @close=\"closeSearch\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport {\n ScalarIconCaretDown,\n ScalarIconCaretUp,\n ScalarIconMagnifyingGlass,\n ScalarIconX,\n} from '@scalar/icons'\nimport { nextTick, ref, watch } from 'vue'\n\nconst props = defineProps<{\n /** Current search query (v-model) */\n query: string\n /** Total number of matches */\n matchCount: number\n /** Zero-based index of the currently active match */\n activeMatchIndex: number\n}>()\n\nconst emit = defineEmits<{\n (e: 'update:query', value: string): void\n (e: 'next'): void\n (e: 'prev'): void\n (e: 'close'): void\n}>()\n\nconst searchInputRef = ref<HTMLInputElement | null>(null)\n\nconst localQuery = ref(props.query)\n\nwatch(\n () => props.query,\n (val) => {\n localQuery.value = val\n },\n)\n\nwatch(localQuery, (val) => {\n emit('update:query', val)\n})\n\n/** Focus the input when mounted */\nconst focus = () => {\n void nextTick(() => searchInputRef.value?.focus())\n}\n\n/** Navigate on Enter / Shift+Enter inside the search input */\nconst handleSearchKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n e.preventDefault()\n if (e.shiftKey) emit('prev')\n else emit('next')\n }\n if (e.key === 'Escape') {\n e.preventDefault()\n emit('close')\n }\n}\n\ndefineExpose({ focus })\n</script>\n\n<template>\n <div\n class=\"scalar-virtual-text-search ml-auto mr-2 mt-2 flex h-fit w-fit items-center gap-1 overflow-visible rounded-lg bg-b-2 px-2 py-1 shadow-md\"\n @click.stop>\n <ScalarIconMagnifyingGlass\n class=\"pointer-events-none size-3.5 shrink-0 text-c-3\" />\n <input\n ref=\"searchInputRef\"\n v-model=\"localQuery\"\n aria-label=\"Search in text\"\n autocomplete=\"off\"\n class=\"scalar-virtual-text-search-input min-w-0 w-36 appearance-none border-none bg-transparent px-1 py-0.5 text-xs text-c-1 outline-none\"\n placeholder=\"Find...\"\n spellcheck=\"false\"\n type=\"search\"\n @keydown=\"handleSearchKeydown\" />\n <span\n v-if=\"localQuery\"\n class=\"shrink-0 whitespace-nowrap text-xs tabular-nums text-c-3\">\n {{\n matchCount > 0\n ? `${activeMatchIndex + 1} of ${matchCount}`\n : 'No results'\n }}\n </span>\n <span class=\"mx-0.5 h-3.5 w-px bg-b-3\" />\n <button\n aria-label=\"Previous match\"\n class=\"flex size-5 items-center justify-center rounded text-c-3 hover:bg-b-3 hover:text-c-1 disabled:pointer-events-none disabled:opacity-30\"\n :disabled=\"matchCount === 0\"\n title=\"Previous match (Shift+Enter)\"\n type=\"button\"\n @click=\"emit('prev')\">\n <ScalarIconCaretUp class=\"size-3\" />\n </button>\n <button\n aria-label=\"Next match\"\n class=\"flex size-5 items-center justify-center rounded text-c-3 hover:bg-b-3 hover:text-c-1 disabled:pointer-events-none disabled:opacity-30\"\n :disabled=\"matchCount === 0\"\n title=\"Next match (Enter)\"\n type=\"button\"\n @click=\"emit('next')\">\n <ScalarIconCaretDown class=\"size-3\" />\n </button>\n <button\n aria-label=\"Close search\"\n class=\"flex size-5 items-center justify-center rounded text-c-3 hover:bg-b-3 hover:text-c-1\"\n title=\"Close (Escape)\"\n type=\"button\"\n @click=\"emit('close')\">\n <ScalarIconX class=\"size-3\" />\n </button>\n </div>\n</template>\n\n<style scoped>\n.scalar-virtual-text-search-input::-webkit-search-cancel-button {\n display: none;\n}\n</style>\n"],"mappings":""}
@@ -0,0 +1,101 @@
1
+ import { createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, nextTick, openBlock, ref, toDisplayString, unref, vModelText, watch, withDirectives, withModifiers } from "vue";
2
+ import { ScalarIconCaretDown, ScalarIconCaretUp, ScalarIconMagnifyingGlass, ScalarIconX } from "@scalar/icons";
3
+ //#region src/components/ScalarVirtualText/ScalarVirtualTextSearch.vue?vue&type=script&setup=true&lang.ts
4
+ var _hoisted_1 = {
5
+ key: 0,
6
+ class: "shrink-0 whitespace-nowrap text-xs tabular-nums text-c-3"
7
+ };
8
+ var _hoisted_2 = ["disabled"];
9
+ var _hoisted_3 = ["disabled"];
10
+ var ScalarVirtualTextSearch_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
11
+ __name: "ScalarVirtualTextSearch",
12
+ props: {
13
+ query: {},
14
+ matchCount: {},
15
+ activeMatchIndex: {}
16
+ },
17
+ emits: [
18
+ "update:query",
19
+ "next",
20
+ "prev",
21
+ "close"
22
+ ],
23
+ setup(__props, { expose: __expose, emit: __emit }) {
24
+ const props = __props;
25
+ const emit = __emit;
26
+ const searchInputRef = ref(null);
27
+ const localQuery = ref(props.query);
28
+ watch(() => props.query, (val) => {
29
+ localQuery.value = val;
30
+ });
31
+ watch(localQuery, (val) => {
32
+ emit("update:query", val);
33
+ });
34
+ /** Focus the input when mounted */
35
+ const focus = () => {
36
+ nextTick(() => searchInputRef.value?.focus());
37
+ };
38
+ /** Navigate on Enter / Shift+Enter inside the search input */
39
+ const handleSearchKeydown = (e) => {
40
+ if (e.key === "Enter") {
41
+ e.preventDefault();
42
+ if (e.shiftKey) emit("prev");
43
+ else emit("next");
44
+ }
45
+ if (e.key === "Escape") {
46
+ e.preventDefault();
47
+ emit("close");
48
+ }
49
+ };
50
+ __expose({ focus });
51
+ return (_ctx, _cache) => {
52
+ return openBlock(), createElementBlock("div", {
53
+ class: "scalar-virtual-text-search ml-auto mr-2 mt-2 flex h-fit w-fit items-center gap-1 overflow-visible rounded-lg bg-b-2 px-2 py-1 shadow-md",
54
+ onClick: _cache[4] || (_cache[4] = withModifiers(() => {}, ["stop"]))
55
+ }, [
56
+ createVNode(unref(ScalarIconMagnifyingGlass), { class: "pointer-events-none size-3.5 shrink-0 text-c-3" }),
57
+ withDirectives(createElementVNode("input", {
58
+ ref_key: "searchInputRef",
59
+ ref: searchInputRef,
60
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => localQuery.value = $event),
61
+ "aria-label": "Search in text",
62
+ autocomplete: "off",
63
+ class: "scalar-virtual-text-search-input min-w-0 w-36 appearance-none border-none bg-transparent px-1 py-0.5 text-xs text-c-1 outline-none",
64
+ placeholder: "Find...",
65
+ spellcheck: "false",
66
+ type: "search",
67
+ onKeydown: handleSearchKeydown
68
+ }, null, 544), [[vModelText, localQuery.value]]),
69
+ localQuery.value ? (openBlock(), createElementBlock("span", _hoisted_1, toDisplayString(__props.matchCount > 0 ? `${__props.activeMatchIndex + 1} of ${__props.matchCount}` : "No results"), 1)) : createCommentVNode("", true),
70
+ _cache[5] || (_cache[5] = createElementVNode("span", { class: "mx-0.5 h-3.5 w-px bg-b-3" }, null, -1)),
71
+ createElementVNode("button", {
72
+ "aria-label": "Previous match",
73
+ class: "flex size-5 items-center justify-center rounded text-c-3 hover:bg-b-3 hover:text-c-1 disabled:pointer-events-none disabled:opacity-30",
74
+ disabled: __props.matchCount === 0,
75
+ title: "Previous match (Shift+Enter)",
76
+ type: "button",
77
+ onClick: _cache[1] || (_cache[1] = ($event) => emit("prev"))
78
+ }, [createVNode(unref(ScalarIconCaretUp), { class: "size-3" })], 8, _hoisted_2),
79
+ createElementVNode("button", {
80
+ "aria-label": "Next match",
81
+ class: "flex size-5 items-center justify-center rounded text-c-3 hover:bg-b-3 hover:text-c-1 disabled:pointer-events-none disabled:opacity-30",
82
+ disabled: __props.matchCount === 0,
83
+ title: "Next match (Enter)",
84
+ type: "button",
85
+ onClick: _cache[2] || (_cache[2] = ($event) => emit("next"))
86
+ }, [createVNode(unref(ScalarIconCaretDown), { class: "size-3" })], 8, _hoisted_3),
87
+ createElementVNode("button", {
88
+ "aria-label": "Close search",
89
+ class: "flex size-5 items-center justify-center rounded text-c-3 hover:bg-b-3 hover:text-c-1",
90
+ title: "Close (Escape)",
91
+ type: "button",
92
+ onClick: _cache[3] || (_cache[3] = ($event) => emit("close"))
93
+ }, [createVNode(unref(ScalarIconX), { class: "size-3" })])
94
+ ]);
95
+ };
96
+ }
97
+ });
98
+ //#endregion
99
+ export { ScalarVirtualTextSearch_vue_vue_type_script_setup_true_lang_default as default };
100
+
101
+ //# sourceMappingURL=ScalarVirtualTextSearch.vue.script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScalarVirtualTextSearch.vue.script.js","names":[],"sources":["../../../src/components/ScalarVirtualText/ScalarVirtualTextSearch.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Floating search bar for ScalarVirtualText\n *\n * Provides find-in-text functionality with match navigation (next/prev)\n * and result count display.\n *\n * @example\n * <ScalarVirtualTextSearch\n * v-model:query=\"searchQuery\"\n * :matchCount=\"searchMatches.length\"\n * :activeMatchIndex=\"activeMatchIndex\"\n * @next=\"nextMatch\"\n * @prev=\"prevMatch\"\n * @close=\"closeSearch\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport {\n ScalarIconCaretDown,\n ScalarIconCaretUp,\n ScalarIconMagnifyingGlass,\n ScalarIconX,\n} from '@scalar/icons'\nimport { nextTick, ref, watch } from 'vue'\n\nconst props = defineProps<{\n /** Current search query (v-model) */\n query: string\n /** Total number of matches */\n matchCount: number\n /** Zero-based index of the currently active match */\n activeMatchIndex: number\n}>()\n\nconst emit = defineEmits<{\n (e: 'update:query', value: string): void\n (e: 'next'): void\n (e: 'prev'): void\n (e: 'close'): void\n}>()\n\nconst searchInputRef = ref<HTMLInputElement | null>(null)\n\nconst localQuery = ref(props.query)\n\nwatch(\n () => props.query,\n (val) => {\n localQuery.value = val\n },\n)\n\nwatch(localQuery, (val) => {\n emit('update:query', val)\n})\n\n/** Focus the input when mounted */\nconst focus = () => {\n void nextTick(() => searchInputRef.value?.focus())\n}\n\n/** Navigate on Enter / Shift+Enter inside the search input */\nconst handleSearchKeydown = (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n e.preventDefault()\n if (e.shiftKey) emit('prev')\n else emit('next')\n }\n if (e.key === 'Escape') {\n e.preventDefault()\n emit('close')\n }\n}\n\ndefineExpose({ focus })\n</script>\n\n<template>\n <div\n class=\"scalar-virtual-text-search ml-auto mr-2 mt-2 flex h-fit w-fit items-center gap-1 overflow-visible rounded-lg bg-b-2 px-2 py-1 shadow-md\"\n @click.stop>\n <ScalarIconMagnifyingGlass\n class=\"pointer-events-none size-3.5 shrink-0 text-c-3\" />\n <input\n ref=\"searchInputRef\"\n v-model=\"localQuery\"\n aria-label=\"Search in text\"\n autocomplete=\"off\"\n class=\"scalar-virtual-text-search-input min-w-0 w-36 appearance-none border-none bg-transparent px-1 py-0.5 text-xs text-c-1 outline-none\"\n placeholder=\"Find...\"\n spellcheck=\"false\"\n type=\"search\"\n @keydown=\"handleSearchKeydown\" />\n <span\n v-if=\"localQuery\"\n class=\"shrink-0 whitespace-nowrap text-xs tabular-nums text-c-3\">\n {{\n matchCount > 0\n ? `${activeMatchIndex + 1} of ${matchCount}`\n : 'No results'\n }}\n </span>\n <span class=\"mx-0.5 h-3.5 w-px bg-b-3\" />\n <button\n aria-label=\"Previous match\"\n class=\"flex size-5 items-center justify-center rounded text-c-3 hover:bg-b-3 hover:text-c-1 disabled:pointer-events-none disabled:opacity-30\"\n :disabled=\"matchCount === 0\"\n title=\"Previous match (Shift+Enter)\"\n type=\"button\"\n @click=\"emit('prev')\">\n <ScalarIconCaretUp class=\"size-3\" />\n </button>\n <button\n aria-label=\"Next match\"\n class=\"flex size-5 items-center justify-center rounded text-c-3 hover:bg-b-3 hover:text-c-1 disabled:pointer-events-none disabled:opacity-30\"\n :disabled=\"matchCount === 0\"\n title=\"Next match (Enter)\"\n type=\"button\"\n @click=\"emit('next')\">\n <ScalarIconCaretDown class=\"size-3\" />\n </button>\n <button\n aria-label=\"Close search\"\n class=\"flex size-5 items-center justify-center rounded text-c-3 hover:bg-b-3 hover:text-c-1\"\n title=\"Close (Escape)\"\n type=\"button\"\n @click=\"emit('close')\">\n <ScalarIconX class=\"size-3\" />\n </button>\n </div>\n</template>\n\n<style scoped>\n.scalar-virtual-text-search-input::-webkit-search-cancel-button {\n display: none;\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;EA2BA,MAAM,QAAQ;EASd,MAAM,OAAO;EAOb,MAAM,iBAAiB,IAA6B,KAAI;EAExD,MAAM,aAAa,IAAI,MAAM,MAAK;AAElC,cACQ,MAAM,QACX,QAAQ;AACP,cAAW,QAAQ;IAEvB;AAEA,QAAM,aAAa,QAAQ;AACzB,QAAK,gBAAgB,IAAG;IACzB;;EAGD,MAAM,cAAc;AACb,kBAAe,eAAe,OAAO,OAAO,CAAA;;;EAInD,MAAM,uBAAuB,MAAqB;AAChD,OAAI,EAAE,QAAQ,SAAS;AACrB,MAAE,gBAAe;AACjB,QAAI,EAAE,SAAU,MAAK,OAAM;QACtB,MAAK,OAAM;;AAElB,OAAI,EAAE,QAAQ,UAAU;AACtB,MAAE,gBAAe;AACjB,SAAK,QAAO;;;AAIhB,WAAa,EAAE,OAAO,CAAA;;uBAIpB,mBAmDM,OAAA;IAlDJ,OAAM;IACL,SAAK,OAAA,OAAA,OAAA,KAAA,oBAAN,IAAW,CAAA,OAAA,CAAA;;IACX,YAC2D,MAAA,0BAAA,EAAA,EAAzD,OAAM,kDAAgD,CAAA;mBACxD,mBASmC,SAAA;cAR7B;KAAJ,KAAI;6EACe,QAAA;KACnB,cAAW;KACX,cAAa;KACb,OAAM;KACN,aAAY;KACZ,YAAW;KACX,MAAK;KACJ,WAAS;iCAPD,WAAA,MAAU,CAAA,CAAA;IASb,WAAA,SAAA,WAAA,EADR,mBAQO,QARP,YAQO,gBAJH,QAAA,aAAU,IAAA,GAAoB,QAAA,mBAAgB,EAAA,MAAW,QAAA,eAAA,aAAA,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA;8BAK7D,mBAAyC,QAAA,EAAnC,OAAM,4BAA0B,EAAA,MAAA,GAAA;IACtC,mBAQS,UAAA;KAPP,cAAW;KACX,OAAM;KACL,UAAU,QAAA,eAAU;KACrB,OAAM;KACN,MAAK;KACJ,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,OAAA;QACZ,YAAoC,MAAA,kBAAA,EAAA,EAAjB,OAAM,UAAQ,CAAA,CAAA,EAAA,GAAA,WAAA;IAEnC,mBAQS,UAAA;KAPP,cAAW;KACX,OAAM;KACL,UAAU,QAAA,eAAU;KACrB,OAAM;KACN,MAAK;KACJ,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,OAAA;QACZ,YAAsC,MAAA,oBAAA,EAAA,EAAjB,OAAM,UAAQ,CAAA,CAAA,EAAA,GAAA,WAAA;IAErC,mBAOS,UAAA;KANP,cAAW;KACX,OAAM;KACN,OAAM;KACN,MAAK;KACJ,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,QAAA;QACZ,YAA8B,MAAA,YAAA,EAAA,EAAjB,OAAM,UAAQ,CAAA,CAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScalarWrappingText.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarWrappingText/ScalarWrappingText.vue"],"names":[],"mappings":"AAwDA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAGtD;;;;;;;;;GASG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY,0TAyDd,CAAC"}
1
+ {"version":3,"file":"ScalarWrappingText.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarWrappingText/ScalarWrappingText.vue"],"names":[],"mappings":"AAwDA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAGtD;;;;;;;;;GASG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY,0TA2Dd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScalarWrappingText.vue.js","names":[],"sources":["../../../src/components/ScalarWrappingText/ScalarWrappingText.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Text Wrapping component\n *\n * Adds word breaks to the text to allow improved line wrapping\n *\n * Does not inherit any attributes because it returns a set of html nodes\n *\n * @example\n * <ScalarWrappingText text=\"/this/is/a/long/path/that/needs/to/be/wrapped\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport { PRESETS } from './constants'\nimport type { ScalarWrappingTextProps } from './types'\n\nconst {\n text = '',\n preset = 'path',\n regex,\n} = defineProps<ScalarWrappingTextProps>()\n\n/**\n * Unicode character for zero-width non-joiner\n *\n * @see https://en.wikipedia.org/wiki/Zero-width_non-joiner\n */\nconst ZWNJ = '\\u2060'\n\n// We don't want to inherit any attributes because we going to return many nodes\ndefineOptions({ inheritAttrs: false })\n\nconst words = computed<string[]>(() => {\n const wrapRegex = new RegExp(regex ?? PRESETS[preset], 'g')\n // Insert the marker before each delimiter\n const marked = text.replace(wrapRegex, `${ZWNJ}$&`)\n // Split on the marker and filter out any empty strings\n return marked.split(ZWNJ).filter(Boolean)\n})\n</script>\n<template>\n <template\n v-for=\"(word, i) in words\"\n :key=\"i\">\n <wbr />{{ word }}\n </template>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"ScalarWrappingText.vue.js","names":[],"sources":["../../../src/components/ScalarWrappingText/ScalarWrappingText.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Text Wrapping component\n *\n * Adds word breaks to the text to allow improved line wrapping\n *\n * Does not inherit any attributes because it returns a set of html nodes\n *\n * @example\n * <ScalarWrappingText text=\"/this/is/a/long/path/that/needs/to/be/wrapped\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport { PRESETS } from './constants'\nimport type { ScalarWrappingTextProps } from './types'\n\nconst {\n text = '',\n preset = 'path',\n regex,\n} = defineProps<ScalarWrappingTextProps>()\n\n/**\n * Unicode character for zero-width non-joiner\n *\n * @see https://en.wikipedia.org/wiki/Zero-width_non-joiner\n */\nconst ZWNJ = '\\u2060'\n\n// We don't want to inherit any attributes because we going to return many nodes\ndefineOptions({ inheritAttrs: false })\n\nconst words = computed<string[]>(() => {\n const wrapRegex = new RegExp(regex ?? PRESETS[preset], 'g')\n // Insert the marker before each delimiter\n const marked = text.replace(wrapRegex, `${ZWNJ}$&`)\n // Split on the marker and filter out any empty strings\n return marked.split(ZWNJ).filter(Boolean)\n})\n</script>\n<template>\n <template\n v-for=\"(word, i) in words\"\n :key=\"i\">\n <wbr v-if=\"i !== 0\" />{{ word }}\n </template>\n</template>\n"],"mappings":""}
@@ -1,5 +1,7 @@
1
1
  import { PRESETS } from "./constants.js";
2
- import { Fragment, computed, createElementBlock, createElementVNode, createTextVNode, defineComponent, openBlock, renderList, toDisplayString } from "vue";
2
+ import { Fragment, computed, createCommentVNode, createElementBlock, createTextVNode, defineComponent, openBlock, renderList, toDisplayString } from "vue";
3
+ //#region src/components/ScalarWrappingText/ScalarWrappingText.vue?vue&type=script&setup=true&lang.ts
4
+ var _hoisted_1 = { key: 0 };
3
5
  var ScalarWrappingText_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
4
6
  inheritAttrs: false,
5
7
  __name: "ScalarWrappingText",
@@ -21,7 +23,7 @@ var ScalarWrappingText_vue_vue_type_script_setup_true_lang_default = /* @__PURE_
21
23
  });
22
24
  return (_ctx, _cache) => {
23
25
  return openBlock(true), createElementBlock(Fragment, null, renderList(words.value, (word, i) => {
24
- return openBlock(), createElementBlock(Fragment, { key: i }, [_cache[0] || (_cache[0] = createElementVNode("wbr", null, null, -1)), createTextVNode(toDisplayString(word), 1)], 64);
26
+ return openBlock(), createElementBlock(Fragment, { key: i }, [i !== 0 ? (openBlock(), createElementBlock("wbr", _hoisted_1)) : createCommentVNode("", true), createTextVNode(toDisplayString(word), 1)], 64);
25
27
  }), 128);
26
28
  };
27
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ScalarWrappingText.vue.script.js","names":[],"sources":["../../../src/components/ScalarWrappingText/ScalarWrappingText.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Text Wrapping component\n *\n * Adds word breaks to the text to allow improved line wrapping\n *\n * Does not inherit any attributes because it returns a set of html nodes\n *\n * @example\n * <ScalarWrappingText text=\"/this/is/a/long/path/that/needs/to/be/wrapped\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport { PRESETS } from './constants'\nimport type { ScalarWrappingTextProps } from './types'\n\nconst {\n text = '',\n preset = 'path',\n regex,\n} = defineProps<ScalarWrappingTextProps>()\n\n/**\n * Unicode character for zero-width non-joiner\n *\n * @see https://en.wikipedia.org/wiki/Zero-width_non-joiner\n */\nconst ZWNJ = '\\u2060'\n\n// We don't want to inherit any attributes because we going to return many nodes\ndefineOptions({ inheritAttrs: false })\n\nconst words = computed<string[]>(() => {\n const wrapRegex = new RegExp(regex ?? PRESETS[preset], 'g')\n // Insert the marker before each delimiter\n const marked = text.replace(wrapRegex, `${ZWNJ}$&`)\n // Split on the marker and filter out any empty strings\n return marked.split(ZWNJ).filter(Boolean)\n})\n</script>\n<template>\n <template\n v-for=\"(word, i) in words\"\n :key=\"i\">\n <wbr />{{ word }}\n </template>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;EA8BA,MAAM,OAAO;EAKb,MAAM,QAAQ,eAAyB;GACrC,MAAM,YAAY,IAAI,OAAO,QAAA,SAAS,QAAQ,QAAA,SAAS,IAAG;AAI1D,UAFe,QAAA,KAAK,QAAQ,WAAW,GAAG,KAAK,IAAG,CAEpC,MAAM,KAAK,CAAC,OAAO,QAAO;IACzC;;2BAGC,mBAIW,UAAA,MAAA,WAHW,MAAA,QAAZ,MAAM,MAAC;4DACT,GAAC,EAAA,CAAA,OAAA,OAAA,OAAA,KACP,mBAAO,OAAA,MAAA,MAAA,GAAA,GAAA,gBAAA,gBAAG,KAAI,EAAA,EAAA,CAAA,EAAA,GAAA"}
1
+ {"version":3,"file":"ScalarWrappingText.vue.script.js","names":[],"sources":["../../../src/components/ScalarWrappingText/ScalarWrappingText.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Text Wrapping component\n *\n * Adds word breaks to the text to allow improved line wrapping\n *\n * Does not inherit any attributes because it returns a set of html nodes\n *\n * @example\n * <ScalarWrappingText text=\"/this/is/a/long/path/that/needs/to/be/wrapped\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport { PRESETS } from './constants'\nimport type { ScalarWrappingTextProps } from './types'\n\nconst {\n text = '',\n preset = 'path',\n regex,\n} = defineProps<ScalarWrappingTextProps>()\n\n/**\n * Unicode character for zero-width non-joiner\n *\n * @see https://en.wikipedia.org/wiki/Zero-width_non-joiner\n */\nconst ZWNJ = '\\u2060'\n\n// We don't want to inherit any attributes because we going to return many nodes\ndefineOptions({ inheritAttrs: false })\n\nconst words = computed<string[]>(() => {\n const wrapRegex = new RegExp(regex ?? PRESETS[preset], 'g')\n // Insert the marker before each delimiter\n const marked = text.replace(wrapRegex, `${ZWNJ}$&`)\n // Split on the marker and filter out any empty strings\n return marked.split(ZWNJ).filter(Boolean)\n})\n</script>\n<template>\n <template\n v-for=\"(word, i) in words\"\n :key=\"i\">\n <wbr v-if=\"i !== 0\" />{{ word }}\n </template>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;EA8BA,MAAM,OAAO;EAKb,MAAM,QAAQ,eAAyB;GACrC,MAAM,YAAY,IAAI,OAAO,QAAA,SAAS,QAAQ,QAAA,SAAS,IAAG;AAI1D,UAFe,QAAA,KAAK,QAAQ,WAAW,GAAG,KAAK,IAAG,CAEpC,MAAM,KAAK,CAAC,OAAO,QAAO;IACzC;;2BAGC,mBAIW,UAAA,MAAA,WAHW,MAAA,QAAZ,MAAM,MAAC;4DACT,GAAC,EAAA,CACI,MAAC,KAAA,WAAA,EAAZ,mBAAsB,OAAA,WAAA,IAAA,mBAAA,IAAA,KAAA,EAAA,gBAAA,gBAAG,KAAI,EAAA,EAAA,CAAA,EAAA,GAAA"}
@@ -11,59 +11,11 @@ export declare const SimpleComponent: import("vue").DefineComponent<import("vue"
11
11
  variants: (props?: ({
12
12
  active?: boolean | undefined;
13
13
  } & ({
14
- class?: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | {
15
- [x: string]: any;
16
- } | null | undefined)[] | {
17
- [x: string]: any;
18
- } | null | undefined)[] | {
19
- [x: string]: any;
20
- } | null | undefined)[] | {
21
- [x: string]: any;
22
- } | null | undefined)[] | {
23
- [x: string]: any;
24
- } | null | undefined)[] | {
25
- [x: string]: any;
26
- } | null | undefined)[] | {
27
- [x: string]: any;
28
- } | null | undefined)[] | {
29
- [x: string]: any;
30
- } | null | undefined)[] | {
31
- [x: string]: any;
32
- } | null | undefined)[] | {
33
- [x: string]: any;
34
- } | null | undefined)[] | {
35
- [x: string]: any;
36
- } | null | undefined)[] | {
37
- [x: string]: any;
38
- } | null | undefined;
14
+ class?: import("cva").ClassValue;
39
15
  className?: never;
40
16
  } | {
41
17
  class?: never;
42
- className?: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | {
43
- [x: string]: any;
44
- } | null | undefined)[] | {
45
- [x: string]: any;
46
- } | null | undefined)[] | {
47
- [x: string]: any;
48
- } | null | undefined)[] | {
49
- [x: string]: any;
50
- } | null | undefined)[] | {
51
- [x: string]: any;
52
- } | null | undefined)[] | {
53
- [x: string]: any;
54
- } | null | undefined)[] | {
55
- [x: string]: any;
56
- } | null | undefined)[] | {
57
- [x: string]: any;
58
- } | null | undefined)[] | {
59
- [x: string]: any;
60
- } | null | undefined)[] | {
61
- [x: string]: any;
62
- } | null | undefined)[] | {
63
- [x: string]: any;
64
- } | null | undefined)[] | {
65
- [x: string]: any;
66
- } | null | undefined;
18
+ className?: import("cva").ClassValue;
67
19
  })) | undefined) => string;
68
20
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
69
21
  active: {
@@ -89,59 +41,11 @@ export declare const ComplexComponent: import("vue").DefineComponent<import("vue
89
41
  variants: (props?: ({
90
42
  active?: boolean | undefined;
91
43
  } & ({
92
- class?: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | {
93
- [x: string]: any;
94
- } | null | undefined)[] | {
95
- [x: string]: any;
96
- } | null | undefined)[] | {
97
- [x: string]: any;
98
- } | null | undefined)[] | {
99
- [x: string]: any;
100
- } | null | undefined)[] | {
101
- [x: string]: any;
102
- } | null | undefined)[] | {
103
- [x: string]: any;
104
- } | null | undefined)[] | {
105
- [x: string]: any;
106
- } | null | undefined)[] | {
107
- [x: string]: any;
108
- } | null | undefined)[] | {
109
- [x: string]: any;
110
- } | null | undefined)[] | {
111
- [x: string]: any;
112
- } | null | undefined)[] | {
113
- [x: string]: any;
114
- } | null | undefined)[] | {
115
- [x: string]: any;
116
- } | null | undefined;
44
+ class?: import("cva").ClassValue;
117
45
  className?: never;
118
46
  } | {
119
47
  class?: never;
120
- className?: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | {
121
- [x: string]: any;
122
- } | null | undefined)[] | {
123
- [x: string]: any;
124
- } | null | undefined)[] | {
125
- [x: string]: any;
126
- } | null | undefined)[] | {
127
- [x: string]: any;
128
- } | null | undefined)[] | {
129
- [x: string]: any;
130
- } | null | undefined)[] | {
131
- [x: string]: any;
132
- } | null | undefined)[] | {
133
- [x: string]: any;
134
- } | null | undefined)[] | {
135
- [x: string]: any;
136
- } | null | undefined)[] | {
137
- [x: string]: any;
138
- } | null | undefined)[] | {
139
- [x: string]: any;
140
- } | null | undefined)[] | {
141
- [x: string]: any;
142
- } | null | undefined)[] | {
143
- [x: string]: any;
144
- } | null | undefined;
48
+ className?: import("cva").ClassValue;
145
49
  })) | undefined) => string;
146
50
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
147
51
  active: {
@@ -1 +1 @@
1
- {"version":3,"file":"MockComponents.d.ts","sourceRoot":"","sources":["../../../src/docs/useBindCx/MockComponents.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4EAU1B,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4EAgB3B,CAAA"}
1
+ {"version":3,"file":"MockComponents.d.ts","sourceRoot":"","sources":["../../../src/docs/useBindCx/MockComponents.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;4EAU1B,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4EAgB3B,CAAA"}