@scalar/components 0.26.1 → 0.27.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ScalarCodeBlock/ScalarCodeBlock.vue.js.map +1 -1
- package/dist/components/ScalarCodeBlock/ScalarCodeBlock.vue.script.js +1 -1
- package/dist/components/ScalarCodeBlock/ScalarCodeBlock.vue.script.js.map +1 -1
- package/dist/components/ScalarTeleport/useTeleport.d.ts.map +1 -1
- package/dist/components/ScalarTeleport/useTeleport.js +2 -3
- package/dist/components/ScalarTeleport/useTeleport.js.map +1 -1
- package/dist/components/ScalarVirtualCodeBlock/ScalarVirtualCodeBlock.vue.d.ts +33 -0
- package/dist/components/ScalarVirtualCodeBlock/ScalarVirtualCodeBlock.vue.d.ts.map +1 -0
- package/dist/components/ScalarVirtualCodeBlock/ScalarVirtualCodeBlock.vue.js +7 -0
- package/dist/components/ScalarVirtualCodeBlock/ScalarVirtualCodeBlock.vue.js.map +1 -0
- package/dist/components/ScalarVirtualCodeBlock/ScalarVirtualCodeBlock.vue.script.js +46 -0
- package/dist/components/ScalarVirtualCodeBlock/ScalarVirtualCodeBlock.vue.script.js.map +1 -0
- package/dist/components/ScalarVirtualCodeBlock/index.d.ts +2 -0
- package/dist/components/ScalarVirtualCodeBlock/index.d.ts.map +1 -0
- package/dist/components/ScalarVirtualCodeBlock/index.js +2 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/style.css +7 -10
- package/package.json +11 -7
|
@@ -1 +1 @@
|
|
|
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-
|
|
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-1/2 -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/** Disable font ligatures so code renders with literal characters */\n.scalar-code-block pre {\n font-variant-ligatures: none;\n}\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":""}
|
|
@@ -53,7 +53,7 @@ var ScalarCodeBlock_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
|
|
|
53
53
|
innerHTML: highlightedCode.value
|
|
54
54
|
}, null, 8, _hoisted_2)]), __props.copy && isContentValid.value ? (openBlock(), createBlock(unref(ScalarCodeBlockCopy_default), {
|
|
55
55
|
key: 0,
|
|
56
|
-
class: normalizeClass(["scalar-code-copy absolute", [isOneLine.value ? "top-
|
|
56
|
+
class: normalizeClass(["scalar-code-copy absolute", [isOneLine.value ? "top-1/2 -translate-y-1/2 m-0 right-1" : "top-2.5 right-2.5", { "opacity-100": __props.copy === "always" }]]),
|
|
57
57
|
content: prettyContent.value,
|
|
58
58
|
showLang: !isOneLine.value,
|
|
59
59
|
lang: __props.lang,
|
|
@@ -1 +1 @@
|
|
|
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-
|
|
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-1/2 -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/** Disable font ligatures so code renders with literal characters */\n.scalar-code-block pre {\n font-variant-ligatures: none;\n}\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,yCAAA,qBAAA,EAAA,eAAuH,QAAA,SAAI,UAAA,CAAA,CAAA,CAAA;IAM5I,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTeleport.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarTeleport/useTeleport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useTeleport.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarTeleport/useTeleport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAA0B,MAAM,KAAK,CAAA;AAE/D;;GAEG;AACH,eAAO,MAAM,eAAe,EAAe,YAAY,CAAC,MAAM,CAAC,CAAA;AAE/D;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,cAAwC,CAAA;AAEhE;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,KAAK,MAAM,WAM7C,CAAA"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { inject, provide } from "vue";
|
|
2
|
-
import { nanoid } from "nanoid";
|
|
1
|
+
import { inject, provide, useId } from "vue";
|
|
3
2
|
//#region src/components/ScalarTeleport/useTeleport.ts
|
|
4
3
|
/**
|
|
5
4
|
* The teleport target
|
|
@@ -19,7 +18,7 @@ var useTeleport = () => inject(TELEPORT_SYMBOL, "body");
|
|
|
19
18
|
* @see https://vuejs.org/guide/components/provide-inject.html#provide-inject
|
|
20
19
|
*/
|
|
21
20
|
var useProvideTeleport = (id) => {
|
|
22
|
-
const targetId = id ?? `scalar-teleport-${
|
|
21
|
+
const targetId = id ?? `scalar-teleport-${useId()}`;
|
|
23
22
|
provide(TELEPORT_SYMBOL, `#${targetId}`);
|
|
24
23
|
return targetId;
|
|
25
24
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTeleport.js","names":[],"sources":["../../../src/components/ScalarTeleport/useTeleport.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"useTeleport.js","names":[],"sources":["../../../src/components/ScalarTeleport/useTeleport.ts"],"sourcesContent":["import { type InjectionKey, inject, provide, useId } from 'vue'\n\n/**\n * The teleport target\n */\nexport const TELEPORT_SYMBOL = Symbol() as InjectionKey<string>\n\n/**\n * Get the nearest teleport target id from `useProvideTeleport`\n *\n * Falls back to `body` if no teleport target id is found\n *\n * @see {@link useProvideTeleport}\n */\nexport const useTeleport = () => inject(TELEPORT_SYMBOL, 'body')\n\n/**\n * Provides a teleport target id using Vue's `provide`\n *\n * @see https://vuejs.org/guide/components/provide-inject.html#provide-inject\n */\nexport const useProvideTeleport = (id?: string) => {\n // `useId` produces ids that are stable across SSR and client hydration,\n // avoiding a mismatch on the teleport target id.\n const targetId = id ?? `scalar-teleport-${useId()}`\n provide(TELEPORT_SYMBOL, `#${targetId}`)\n return targetId\n}\n"],"mappings":";;;;;AAKA,IAAa,kBAAkB,QAAQ;;;;;;;;AASvC,IAAa,oBAAoB,OAAO,iBAAiB,OAAO;;;;;;AAOhE,IAAa,sBAAsB,OAAgB;CAGjD,MAAM,WAAW,MAAM,mBAAmB,OAAO;AACjD,SAAQ,iBAAiB,IAAI,WAAW;AACxC,QAAO"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { StandardLanguageKey } from '../ScalarCodeBlock/types';
|
|
2
|
+
/**
|
|
3
|
+
* Scalar Virtual Code Block component
|
|
4
|
+
*
|
|
5
|
+
* Renders large blocks of code using virtualized scrolling with a copy button.
|
|
6
|
+
* Used as a fallback for ScalarCodeBlock when content exceeds the performance
|
|
7
|
+
* threshold for syntax highlighting.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* <ScalarVirtualCodeBlock content="large json string" lang="json" />
|
|
11
|
+
*/
|
|
12
|
+
declare const _default: typeof __VLS_export;
|
|
13
|
+
export default _default;
|
|
14
|
+
declare const __VLS_export: import("vue").DefineComponent<{
|
|
15
|
+
/** Text content to display */
|
|
16
|
+
content: string;
|
|
17
|
+
/** Language label for the copy button */
|
|
18
|
+
lang?: StandardLanguageKey | string;
|
|
19
|
+
/** Copy button visibility: 'always', 'hover', or false */
|
|
20
|
+
copy?: "always" | "hover" | false;
|
|
21
|
+
/** Height of each line in pixels */
|
|
22
|
+
lineHeight?: number;
|
|
23
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
24
|
+
/** Text content to display */
|
|
25
|
+
content: string;
|
|
26
|
+
/** Language label for the copy button */
|
|
27
|
+
lang?: StandardLanguageKey | string;
|
|
28
|
+
/** Copy button visibility: 'always', 'hover', or false */
|
|
29
|
+
copy?: "always" | "hover" | false;
|
|
30
|
+
/** Height of each line in pixels */
|
|
31
|
+
lineHeight?: number;
|
|
32
|
+
}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
33
|
+
//# sourceMappingURL=ScalarVirtualCodeBlock.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScalarVirtualCodeBlock.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarVirtualCodeBlock/ScalarVirtualCodeBlock.vue"],"names":[],"mappings":"AAyEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAKnE;;;;;;;;;GASG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY;IAEhB,8BAA8B;aACrB,MAAM;IACf,yCAAyC;WAClC,mBAAmB,GAAG,MAAM;IACnC,0DAA0D;WACnD,QAAQ,GAAG,OAAO,GAAG,KAAK;IACjC,oCAAoC;iBACvB,MAAM;;IAPnB,8BAA8B;aACrB,MAAM;IACf,yCAAyC;WAClC,mBAAmB,GAAG,MAAM;IACnC,0DAA0D;WACnD,QAAQ,GAAG,OAAO,GAAG,KAAK;IACjC,oCAAoC;iBACvB,MAAM;iGAsGjB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import ScalarVirtualCodeBlock_vue_vue_type_script_setup_true_lang_default from "./ScalarVirtualCodeBlock.vue.script.js";
|
|
2
|
+
//#region src/components/ScalarVirtualCodeBlock/ScalarVirtualCodeBlock.vue
|
|
3
|
+
var ScalarVirtualCodeBlock_default = ScalarVirtualCodeBlock_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { ScalarVirtualCodeBlock_default as default };
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=ScalarVirtualCodeBlock.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScalarVirtualCodeBlock.vue.js","names":[],"sources":["../../../src/components/ScalarVirtualCodeBlock/ScalarVirtualCodeBlock.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Virtual Code Block component\n *\n * Renders large blocks of code using virtualized scrolling with a copy button.\n * Used as a fallback for ScalarCodeBlock when content exceeds the performance\n * threshold for syntax highlighting.\n *\n * @example\n * <ScalarVirtualCodeBlock content=\"large json string\" lang=\"json\" />\n */\nexport default {}\n</script>\n<script lang=\"ts\" setup>\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport ScalarCodeBlockCopy from '../ScalarCodeBlock/ScalarCodeBlockCopy.vue'\nimport type { StandardLanguageKey } from '../ScalarCodeBlock/types'\nimport ScalarCopyBackdrop from '../ScalarCopy/ScalarCopyBackdrop.vue'\nimport ScalarVirtualText from '../ScalarVirtualText/ScalarVirtualText.vue'\n\nconst {\n content,\n lang = 'plaintext',\n copy = 'hover',\n lineHeight = 20,\n} = defineProps<{\n /** Text content to display */\n content: string\n /** Language label for the copy button */\n lang?: StandardLanguageKey | string\n /** Copy button visibility: 'always', 'hover', or false */\n copy?: 'always' | 'hover' | false\n /** Height of each line in pixels */\n lineHeight?: number\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',\n )\n \">\n <ScalarVirtualText\n containerClass=\"custom-scroll overflow-auto flex flex-1 max-h-screen\"\n contentClass=\"language-plaintext whitespace-pre font-code text-base p-2\"\n :lineHeight=\"lineHeight\"\n :text=\"content\" />\n <ScalarCodeBlockCopy\n v-if=\"copy\"\n class=\"scalar-code-copy absolute top-2.5 right-2.5\"\n :class=\"[{ 'opacity-100': copy === 'always' }]\"\n :content=\"content\"\n :showLang=\"true\"\n :lang=\"lang\">\n <template #backdrop>\n <ScalarCopyBackdrop\n class=\"scalar-code-copy-backdrop -right-1.5 -top-1\" />\n </template>\n </ScalarCodeBlockCopy>\n </div>\n</template>\n"],"mappings":""}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import ScalarCopyBackdrop_default from "../ScalarCopy/ScalarCopyBackdrop.vue.js";
|
|
2
|
+
import ScalarCodeBlockCopy_default from "../ScalarCodeBlock/ScalarCodeBlockCopy.vue.js";
|
|
3
|
+
import ScalarVirtualText_default from "../ScalarVirtualText/ScalarVirtualText.vue.js";
|
|
4
|
+
import { useBindCx } from "@scalar/use-hooks/useBindCx";
|
|
5
|
+
import { createBlock, createCommentVNode, createElementBlock, createVNode, defineComponent, guardReactiveProps, normalizeClass, normalizeProps, openBlock, unref, withCtx } from "vue";
|
|
6
|
+
var ScalarVirtualCodeBlock_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
7
|
+
inheritAttrs: false,
|
|
8
|
+
__name: "ScalarVirtualCodeBlock",
|
|
9
|
+
props: {
|
|
10
|
+
content: {},
|
|
11
|
+
lang: { default: "plaintext" },
|
|
12
|
+
copy: {
|
|
13
|
+
type: [String, Boolean],
|
|
14
|
+
default: "hover"
|
|
15
|
+
},
|
|
16
|
+
lineHeight: { default: 20 }
|
|
17
|
+
},
|
|
18
|
+
setup(__props) {
|
|
19
|
+
const { cx } = useBindCx();
|
|
20
|
+
return (_ctx, _cache) => {
|
|
21
|
+
return openBlock(), createElementBlock("div", normalizeProps(guardReactiveProps(unref(cx)("scalar-code-block group/code-block flex flex-col", "relative bg-b-1 min-h-0 min-w-0"))), [createVNode(ScalarVirtualText_default, {
|
|
22
|
+
containerClass: "custom-scroll overflow-auto flex flex-1 max-h-screen",
|
|
23
|
+
contentClass: "language-plaintext whitespace-pre font-code text-base p-2",
|
|
24
|
+
lineHeight: __props.lineHeight,
|
|
25
|
+
text: __props.content
|
|
26
|
+
}, null, 8, ["lineHeight", "text"]), __props.copy ? (openBlock(), createBlock(ScalarCodeBlockCopy_default, {
|
|
27
|
+
key: 0,
|
|
28
|
+
class: normalizeClass(["scalar-code-copy absolute top-2.5 right-2.5", [{ "opacity-100": __props.copy === "always" }]]),
|
|
29
|
+
content: __props.content,
|
|
30
|
+
showLang: true,
|
|
31
|
+
lang: __props.lang
|
|
32
|
+
}, {
|
|
33
|
+
backdrop: withCtx(() => [createVNode(ScalarCopyBackdrop_default, { class: "scalar-code-copy-backdrop -right-1.5 -top-1" })]),
|
|
34
|
+
_: 1
|
|
35
|
+
}, 8, [
|
|
36
|
+
"class",
|
|
37
|
+
"content",
|
|
38
|
+
"lang"
|
|
39
|
+
])) : createCommentVNode("", true)], 16);
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
//#endregion
|
|
44
|
+
export { ScalarVirtualCodeBlock_vue_vue_type_script_setup_true_lang_default as default };
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=ScalarVirtualCodeBlock.vue.script.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScalarVirtualCodeBlock.vue.script.js","names":[],"sources":["../../../src/components/ScalarVirtualCodeBlock/ScalarVirtualCodeBlock.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Virtual Code Block component\n *\n * Renders large blocks of code using virtualized scrolling with a copy button.\n * Used as a fallback for ScalarCodeBlock when content exceeds the performance\n * threshold for syntax highlighting.\n *\n * @example\n * <ScalarVirtualCodeBlock content=\"large json string\" lang=\"json\" />\n */\nexport default {}\n</script>\n<script lang=\"ts\" setup>\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport ScalarCodeBlockCopy from '../ScalarCodeBlock/ScalarCodeBlockCopy.vue'\nimport type { StandardLanguageKey } from '../ScalarCodeBlock/types'\nimport ScalarCopyBackdrop from '../ScalarCopy/ScalarCopyBackdrop.vue'\nimport ScalarVirtualText from '../ScalarVirtualText/ScalarVirtualText.vue'\n\nconst {\n content,\n lang = 'plaintext',\n copy = 'hover',\n lineHeight = 20,\n} = defineProps<{\n /** Text content to display */\n content: string\n /** Language label for the copy button */\n lang?: StandardLanguageKey | string\n /** Copy button visibility: 'always', 'hover', or false */\n copy?: 'always' | 'hover' | false\n /** Height of each line in pixels */\n lineHeight?: number\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',\n )\n \">\n <ScalarVirtualText\n containerClass=\"custom-scroll overflow-auto flex flex-1 max-h-screen\"\n contentClass=\"language-plaintext whitespace-pre font-code text-base p-2\"\n :lineHeight=\"lineHeight\"\n :text=\"content\" />\n <ScalarCodeBlockCopy\n v-if=\"copy\"\n class=\"scalar-code-copy absolute top-2.5 right-2.5\"\n :class=\"[{ 'opacity-100': copy === 'always' }]\"\n :content=\"content\"\n :showLang=\"true\"\n :lang=\"lang\">\n <template #backdrop>\n <ScalarCopyBackdrop\n class=\"scalar-code-copy-backdrop -right-1.5 -top-1\" />\n </template>\n </ScalarCodeBlockCopy>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;EAsCA,MAAM,EAAE,OAAO,WAAU;;uBAGvB,mBAwBM,OAAA,eAAA,mBAvBW,MAAA,GAAE,CAAA,oDAAA,kCAAA,CAAA,CAAA,EAAA,CAMjB,YAIoB,2BAAA;IAHlB,gBAAe;IACf,cAAa;IACZ,YAAY,QAAA;IACZ,MAAM,QAAA;wCAED,QAAA,QAAA,WAAA,EADR,YAWsB,6BAAA;;IATpB,OAAK,eAAA,CAAC,+CAA6C,CAAA,EAAA,eACzB,QAAA,SAAI,UAAA,CAAA,CAAA,CAAA;IAC7B,SAAS,QAAA;IACT,UAAU;IACV,MAAM,QAAA;;IACI,UAAQ,cAEuC,CADxD,YACwD,4BAAA,EAAtD,OAAM,+CAA6C,CAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarVirtualCodeBlock/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,8BAA8B,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -43,6 +43,7 @@ export { ScalarThemeSwatches, useThemeSwatches } from './components/ScalarThemeS
|
|
|
43
43
|
export { ScalarToggle, ScalarToggleGroup, ScalarToggleInput } from './components/ScalarToggle/index.js';
|
|
44
44
|
export type { ScalarTooltipPlacement, TooltipConfiguration } from './components/ScalarTooltip/index.js';
|
|
45
45
|
export { ScalarHotkeyTooltip, ScalarTooltip, useTooltip } from './components/ScalarTooltip/index.js';
|
|
46
|
+
export { ScalarVirtualCodeBlock } from './components/ScalarVirtualCodeBlock/index.js';
|
|
46
47
|
export { ScalarVirtualText } from './components/ScalarVirtualText/index.js';
|
|
47
48
|
export { ScalarWrappingText } from './components/ScalarWrappingText/index.js';
|
|
48
49
|
export { addScalarClassesToHeadless } from './helpers/index.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -100,7 +100,8 @@ import ScalarToggle_default from "./components/ScalarToggle/ScalarToggle.vue.js"
|
|
|
100
100
|
import ScalarToggleInput_default from "./components/ScalarToggle/ScalarToggleInput.vue.js";
|
|
101
101
|
import ScalarToggleGroup_default from "./components/ScalarToggle/ScalarToggleGroup.vue.js";
|
|
102
102
|
import ScalarVirtualText_default from "./components/ScalarVirtualText/ScalarVirtualText.vue.js";
|
|
103
|
+
import ScalarVirtualCodeBlock_default from "./components/ScalarVirtualCodeBlock/ScalarVirtualCodeBlock.vue.js";
|
|
103
104
|
import ScalarWrappingText_default from "./components/ScalarWrappingText/ScalarWrappingText.vue.js";
|
|
104
105
|
import { addScalarClassesToHeadless } from "./helpers/add-scalar-classes.js";
|
|
105
106
|
import { compose, cva, cx, tw, useBindCx } from "@scalar/use-hooks/useBindCx";
|
|
106
|
-
export { ScalarButton_default as ScalarButton, ScalarCard_default as ScalarCard, ScalarCardFooter_default as ScalarCardFooter, ScalarCardHeader_default as ScalarCardHeader, ScalarCardSection_default as ScalarCardSection, ScalarCheckbox_default as ScalarCheckbox, ScalarCheckboxGroup_default as ScalarCheckboxGroup, ScalarCheckboxInput_default as ScalarCheckboxInput, ScalarCheckboxRadioGroup_default as ScalarCheckboxRadioGroup, ScalarCodeBlock_default as ScalarCodeBlock, ScalarCodeBlockCopy_default as ScalarCodeBlockCopy, ScalarColorModeToggle_default as ScalarColorModeToggle, ScalarColorModeToggleButton_default as ScalarColorModeToggleButton, ScalarColorModeToggleIcon_default as ScalarColorModeToggleIcon, ScalarCombobox_default as ScalarCombobox, ScalarComboboxMultiselect_default as ScalarComboboxMultiselect, ScalarCopy_default as ScalarCopy, ScalarCopyBackdrop_default as ScalarCopyBackdrop, ScalarCopyButton_default as ScalarCopyButton, ScalarDropdown_default as ScalarDropdown, ScalarDropdownButton_default as ScalarDropdownButton, ScalarDropdownDivider_default as ScalarDropdownDivider, ScalarDropdownItem_default as ScalarDropdownItem, ScalarDropdownMenu_default as ScalarDropdownMenu, ScalarErrorBoundary_default as ScalarErrorBoundary, ScalarFileUpload_default as ScalarFileUpload, ScalarFileUploadDropTarget_default as ScalarFileUploadDropTarget, ScalarFileUploadError_default as ScalarFileUploadError, ScalarFileUploadFileList_default as ScalarFileUploadFileList, ScalarFileUploadInput_default as ScalarFileUploadInput, ScalarFileUploadInputCompact_default as ScalarFileUploadInputCompact, ScalarFileUploadLoading_default as ScalarFileUploadLoading, ScalarFloating_default as ScalarFloating, ScalarFloatingBackdrop_default as ScalarFloatingBackdrop, ScalarForm_default as ScalarForm, ScalarFormError_default as ScalarFormError, ScalarFormField_default as ScalarFormField, ScalarFormInput_default as ScalarFormInput, ScalarFormInputGroup_default as ScalarFormInputGroup, ScalarFormSection_default as ScalarFormSection, ScalarHeader_default as ScalarHeader, ScalarHeaderButton_default as ScalarHeaderButton, ScalarHotkey_default as ScalarHotkey, ScalarHotkeyTooltip_default as ScalarHotkeyTooltip, ScalarIcon_default as ScalarIcon, ScalarIconButton_default as ScalarIconButton, ScalarIconLegacyAdapter_default as ScalarIconLegacyAdapter, ScalarListbox_default as ScalarListbox, ScalarListboxCheckbox_default as ScalarListboxCheckbox, ScalarListboxInput_default as ScalarListboxInput, ScalarListboxItem_default as ScalarListboxItem, ScalarLoading_default as ScalarLoading, ScalarMarkdown_default as ScalarMarkdown, ScalarMarkdownSummary_default as ScalarMarkdownSummary, ScalarMenu_default as ScalarMenu, ScalarMenuButton_default as ScalarMenuButton, ScalarMenuLink_default as ScalarMenuLink, ScalarMenuProduct_default as ScalarMenuProduct, ScalarMenuProducts_default as ScalarMenuProducts, ScalarMenuResources_default as ScalarMenuResources, ScalarMenuSection_default as ScalarMenuSection, ScalarMenuSupport_default as ScalarMenuSupport, ScalarMenuTeamPicker_default as ScalarMenuTeamPicker, ScalarMenuTeamProfile_default as ScalarMenuTeamProfile, ScalarMenuWorkspacePicker_default as ScalarMenuWorkspacePicker, ScalarModal_default as ScalarModal, ScalarPopover_default as ScalarPopover, ScalarSavePrompt_default as ScalarSavePrompt, ScalarSearchInput_default as ScalarSearchInput, ScalarSearchResultItem_default as ScalarSearchResultItem, ScalarSearchResultList_default as ScalarSearchResultList, ScalarSidebar_default as ScalarSidebar, ScalarSidebarButton_default as ScalarSidebarButton, ScalarSidebarFooter_default as ScalarSidebarFooter, ScalarSidebarGroup_default as ScalarSidebarGroup, ScalarSidebarGroupToggle_default as ScalarSidebarGroupToggle, ScalarSidebarIndent_default as ScalarSidebarIndent, ScalarSidebarItem_default as ScalarSidebarItem, ScalarSidebarItems_default as ScalarSidebarItems, ScalarSidebarNestedItems_default as ScalarSidebarNestedItems, ScalarSidebarSearchButton_default as ScalarSidebarSearchButton, ScalarSidebarSearchInput_default as ScalarSidebarSearchInput, ScalarSidebarSection_default as ScalarSidebarSection, ScalarSidebarSpacer_default as ScalarSidebarSpacer, ScalarTeleport_default as ScalarTeleport, ScalarTeleportRoot_default as ScalarTeleportRoot, ScalarTextArea_default as ScalarTextArea, ScalarTextInput_default as ScalarTextInput, ScalarTextInputCopy_default as ScalarTextInputCopy, ScalarThemeSwatches_default as ScalarThemeSwatches, ScalarToggle_default as ScalarToggle, ScalarToggleGroup_default as ScalarToggleGroup, ScalarToggleInput_default as ScalarToggleInput, ScalarTooltip_default as ScalarTooltip, ScalarVirtualText_default as ScalarVirtualText, ScalarWrappingText_default as ScalarWrappingText, TELEPORT_SYMBOL, addScalarClassesToHeadless, compose, cva, cx, formatHotkeySymbols, isGroups as isScalarComboboxGroups, tw, useBindCx, useLoadingState, useModal, useProvideTeleport, useTeleport, useThemeSwatches, useTooltip };
|
|
107
|
+
export { ScalarButton_default as ScalarButton, ScalarCard_default as ScalarCard, ScalarCardFooter_default as ScalarCardFooter, ScalarCardHeader_default as ScalarCardHeader, ScalarCardSection_default as ScalarCardSection, ScalarCheckbox_default as ScalarCheckbox, ScalarCheckboxGroup_default as ScalarCheckboxGroup, ScalarCheckboxInput_default as ScalarCheckboxInput, ScalarCheckboxRadioGroup_default as ScalarCheckboxRadioGroup, ScalarCodeBlock_default as ScalarCodeBlock, ScalarCodeBlockCopy_default as ScalarCodeBlockCopy, ScalarColorModeToggle_default as ScalarColorModeToggle, ScalarColorModeToggleButton_default as ScalarColorModeToggleButton, ScalarColorModeToggleIcon_default as ScalarColorModeToggleIcon, ScalarCombobox_default as ScalarCombobox, ScalarComboboxMultiselect_default as ScalarComboboxMultiselect, ScalarCopy_default as ScalarCopy, ScalarCopyBackdrop_default as ScalarCopyBackdrop, ScalarCopyButton_default as ScalarCopyButton, ScalarDropdown_default as ScalarDropdown, ScalarDropdownButton_default as ScalarDropdownButton, ScalarDropdownDivider_default as ScalarDropdownDivider, ScalarDropdownItem_default as ScalarDropdownItem, ScalarDropdownMenu_default as ScalarDropdownMenu, ScalarErrorBoundary_default as ScalarErrorBoundary, ScalarFileUpload_default as ScalarFileUpload, ScalarFileUploadDropTarget_default as ScalarFileUploadDropTarget, ScalarFileUploadError_default as ScalarFileUploadError, ScalarFileUploadFileList_default as ScalarFileUploadFileList, ScalarFileUploadInput_default as ScalarFileUploadInput, ScalarFileUploadInputCompact_default as ScalarFileUploadInputCompact, ScalarFileUploadLoading_default as ScalarFileUploadLoading, ScalarFloating_default as ScalarFloating, ScalarFloatingBackdrop_default as ScalarFloatingBackdrop, ScalarForm_default as ScalarForm, ScalarFormError_default as ScalarFormError, ScalarFormField_default as ScalarFormField, ScalarFormInput_default as ScalarFormInput, ScalarFormInputGroup_default as ScalarFormInputGroup, ScalarFormSection_default as ScalarFormSection, ScalarHeader_default as ScalarHeader, ScalarHeaderButton_default as ScalarHeaderButton, ScalarHotkey_default as ScalarHotkey, ScalarHotkeyTooltip_default as ScalarHotkeyTooltip, ScalarIcon_default as ScalarIcon, ScalarIconButton_default as ScalarIconButton, ScalarIconLegacyAdapter_default as ScalarIconLegacyAdapter, ScalarListbox_default as ScalarListbox, ScalarListboxCheckbox_default as ScalarListboxCheckbox, ScalarListboxInput_default as ScalarListboxInput, ScalarListboxItem_default as ScalarListboxItem, ScalarLoading_default as ScalarLoading, ScalarMarkdown_default as ScalarMarkdown, ScalarMarkdownSummary_default as ScalarMarkdownSummary, ScalarMenu_default as ScalarMenu, ScalarMenuButton_default as ScalarMenuButton, ScalarMenuLink_default as ScalarMenuLink, ScalarMenuProduct_default as ScalarMenuProduct, ScalarMenuProducts_default as ScalarMenuProducts, ScalarMenuResources_default as ScalarMenuResources, ScalarMenuSection_default as ScalarMenuSection, ScalarMenuSupport_default as ScalarMenuSupport, ScalarMenuTeamPicker_default as ScalarMenuTeamPicker, ScalarMenuTeamProfile_default as ScalarMenuTeamProfile, ScalarMenuWorkspacePicker_default as ScalarMenuWorkspacePicker, ScalarModal_default as ScalarModal, ScalarPopover_default as ScalarPopover, ScalarSavePrompt_default as ScalarSavePrompt, ScalarSearchInput_default as ScalarSearchInput, ScalarSearchResultItem_default as ScalarSearchResultItem, ScalarSearchResultList_default as ScalarSearchResultList, ScalarSidebar_default as ScalarSidebar, ScalarSidebarButton_default as ScalarSidebarButton, ScalarSidebarFooter_default as ScalarSidebarFooter, ScalarSidebarGroup_default as ScalarSidebarGroup, ScalarSidebarGroupToggle_default as ScalarSidebarGroupToggle, ScalarSidebarIndent_default as ScalarSidebarIndent, ScalarSidebarItem_default as ScalarSidebarItem, ScalarSidebarItems_default as ScalarSidebarItems, ScalarSidebarNestedItems_default as ScalarSidebarNestedItems, ScalarSidebarSearchButton_default as ScalarSidebarSearchButton, ScalarSidebarSearchInput_default as ScalarSidebarSearchInput, ScalarSidebarSection_default as ScalarSidebarSection, ScalarSidebarSpacer_default as ScalarSidebarSpacer, ScalarTeleport_default as ScalarTeleport, ScalarTeleportRoot_default as ScalarTeleportRoot, ScalarTextArea_default as ScalarTextArea, ScalarTextInput_default as ScalarTextInput, ScalarTextInputCopy_default as ScalarTextInputCopy, ScalarThemeSwatches_default as ScalarThemeSwatches, ScalarToggle_default as ScalarToggle, ScalarToggleGroup_default as ScalarToggleGroup, ScalarToggleInput_default as ScalarToggleInput, ScalarTooltip_default as ScalarTooltip, ScalarVirtualCodeBlock_default as ScalarVirtualCodeBlock, ScalarVirtualText_default as ScalarVirtualText, ScalarWrappingText_default as ScalarWrappingText, TELEPORT_SYMBOL, addScalarClassesToHeadless, compose, cva, cx, formatHotkeySymbols, isGroups as isScalarComboboxGroups, tw, useBindCx, useLoadingState, useModal, useProvideTeleport, useTeleport, useThemeSwatches, useTooltip };
|
package/dist/style.css
CHANGED
|
@@ -101,12 +101,9 @@
|
|
|
101
101
|
--scalar-radius: 3px;
|
|
102
102
|
--scalar-radius-lg: 6px;
|
|
103
103
|
--scalar-radius-xl: 8px;
|
|
104
|
-
--scalar-font: "Inter", -
|
|
105
|
-
"
|
|
106
|
-
--scalar-font-code: "JetBrains Mono", ui-monospace, Menlo, Monaco,
|
|
107
|
-
"Cascadia Mono", "Segoe UI Mono", "Roboto Mono", "Oxygen Mono",
|
|
108
|
-
"Ubuntu Monospace", "Source Code Pro", "Fira Mono", "Droid Sans Mono",
|
|
109
|
-
"Courier New", monospace;
|
|
104
|
+
--scalar-font: "Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
|
|
105
|
+
"Noto Color Emoji";
|
|
106
|
+
--scalar-font-code: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
110
107
|
--scalar-heading-1: 24px;
|
|
111
108
|
--scalar-page-description: 16px;
|
|
112
109
|
--scalar-heading-2: 20px;
|
|
@@ -707,10 +704,6 @@
|
|
|
707
704
|
top: 1lh;
|
|
708
705
|
}
|
|
709
706
|
|
|
710
|
-
.scalar-app .top-\[calc\(10px\+0\.5lh\)\] {
|
|
711
|
-
top: calc(10px + .5lh);
|
|
712
|
-
}
|
|
713
|
-
|
|
714
707
|
.scalar-app .top-px {
|
|
715
708
|
top: 1px;
|
|
716
709
|
}
|
|
@@ -1235,6 +1228,10 @@
|
|
|
1235
1228
|
max-height: calc(var(--radix-popper-available-height) - 8px);
|
|
1236
1229
|
}
|
|
1237
1230
|
|
|
1231
|
+
.scalar-app .max-h-screen {
|
|
1232
|
+
max-height: 100vh;
|
|
1233
|
+
}
|
|
1234
|
+
|
|
1238
1235
|
.scalar-app .min-h-0 {
|
|
1239
1236
|
min-height: 0;
|
|
1240
1237
|
}
|
package/package.json
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"url": "git+https://github.com/scalar/scalar.git",
|
|
11
11
|
"directory": "packages/components"
|
|
12
12
|
},
|
|
13
|
-
"version": "0.
|
|
13
|
+
"version": "0.27.1",
|
|
14
14
|
"engines": {
|
|
15
15
|
"node": ">=22"
|
|
16
16
|
},
|
|
@@ -189,6 +189,11 @@
|
|
|
189
189
|
"import": "./dist/components/ScalarTooltip/index.js",
|
|
190
190
|
"default": "./dist/components/ScalarTooltip/index.js"
|
|
191
191
|
},
|
|
192
|
+
"./virtual-code-block": {
|
|
193
|
+
"types": "./dist/components/ScalarVirtualCodeBlock/index.d.ts",
|
|
194
|
+
"import": "./dist/components/ScalarVirtualCodeBlock/index.js",
|
|
195
|
+
"default": "./dist/components/ScalarVirtualCodeBlock/index.js"
|
|
196
|
+
},
|
|
192
197
|
"./virtual-text": {
|
|
193
198
|
"types": "./dist/components/ScalarVirtualText/index.d.ts",
|
|
194
199
|
"import": "./dist/components/ScalarVirtualText/index.js",
|
|
@@ -213,15 +218,14 @@
|
|
|
213
218
|
"@headlessui/vue": "1.7.23",
|
|
214
219
|
"@vueuse/core": "13.9.0",
|
|
215
220
|
"cva": "1.0.0-beta.4",
|
|
216
|
-
"nanoid": "^5.1.6",
|
|
217
221
|
"radix-vue": "^1.9.17",
|
|
218
222
|
"vue": "^3.5.30",
|
|
219
223
|
"vue-component-type-helpers": "^3.2.6",
|
|
220
|
-
"@scalar/
|
|
221
|
-
"@scalar/
|
|
222
|
-
"@scalar/
|
|
223
|
-
"@scalar/themes": "0.
|
|
224
|
-
"@scalar/
|
|
224
|
+
"@scalar/helpers": "0.8.2",
|
|
225
|
+
"@scalar/code-highlight": "0.3.5",
|
|
226
|
+
"@scalar/use-hooks": "0.4.6",
|
|
227
|
+
"@scalar/themes": "0.16.0",
|
|
228
|
+
"@scalar/icons": "0.7.3"
|
|
225
229
|
},
|
|
226
230
|
"devDependencies": {
|
|
227
231
|
"@playwright/test": "1.59.1",
|