@scalar/components 0.31.1 → 0.32.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/ScalarCard/ScalarCardHeader.vue.d.ts.map +1 -1
- package/dist/components/ScalarCard/ScalarCardHeader.vue.js.map +1 -1
- package/dist/components/ScalarCard/ScalarCardHeader.vue.script.js +2 -2
- package/dist/components/ScalarCard/ScalarCardHeader.vue.script.js.map +1 -1
- package/dist/components/ScalarCombobox/ScalarCombobox.vue.d.ts +15 -1
- package/dist/components/ScalarCombobox/ScalarCombobox.vue.d.ts.map +1 -1
- package/dist/components/ScalarCombobox/ScalarCombobox.vue.js.map +1 -1
- package/dist/components/ScalarCombobox/ScalarCombobox.vue.script.js +20 -5
- package/dist/components/ScalarCombobox/ScalarCombobox.vue.script.js.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.d.ts +15 -1
- package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.d.ts.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.js.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.script.js +22 -7
- package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.script.js.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.d.ts +16 -1
- package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.d.ts.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.js.map +1 -1
- package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.script.js +111 -45
- package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.script.js.map +1 -1
- package/dist/components/ScalarCombobox/types.d.ts +5 -0
- package/dist/components/ScalarCombobox/types.d.ts.map +1 -1
- package/dist/components/ScalarCombobox/types.js.map +1 -1
- package/dist/components/ScalarDropdown/ScalarDropdown.vue.d.ts.map +1 -1
- package/dist/components/ScalarDropdown/ScalarDropdown.vue.js.map +1 -1
- package/dist/components/ScalarDropdown/ScalarDropdown.vue.script.js +2 -2
- package/dist/components/ScalarDropdown/ScalarDropdown.vue.script.js.map +1 -1
- package/dist/components/ScalarMarkdown/ScalarMarkdown.vue.d.ts.map +1 -1
- package/dist/components/ScalarMarkdown/ScalarMarkdown.vue.js.map +1 -1
- package/dist/components/ScalarMarkdown/ScalarMarkdown.vue.script.js +4 -1
- package/dist/components/ScalarMarkdown/ScalarMarkdown.vue.script.js.map +1 -1
- package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.d.ts.map +1 -1
- package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.js.map +1 -1
- package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.script.js +6 -2
- package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.script.js.map +1 -1
- package/dist/components/ScalarMarkdown/index.d.ts +1 -0
- package/dist/components/ScalarMarkdown/index.d.ts.map +1 -1
- package/dist/components/ScalarMarkdown/index.js +2 -1
- package/dist/components/ScalarMarkdown/useMarkdownRenderHooks.d.ts +7 -0
- package/dist/components/ScalarMarkdown/useMarkdownRenderHooks.d.ts.map +1 -0
- package/dist/components/ScalarMarkdown/useMarkdownRenderHooks.js +46 -0
- package/dist/components/ScalarMarkdown/useMarkdownRenderHooks.js.map +1 -0
- package/dist/components/ScalarSidebar/ScalarSidebarGroupToggleButton.vue.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarGroupToggleButton.vue.script.js +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarGroupToggleButton.vue.script.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarGroupToggleSpacer.vue.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarGroupToggleSpacer.vue.script.js +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarGroupToggleSpacer.vue.script.js.map +1 -1
- package/dist/components/ScalarVirtualText/ScalarVirtualTextSearch.vue.d.ts +2 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/style.css +34 -9
- package/dist/vue-styles.css +2 -1
- package/package.json +6 -6
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { useMarkdownRenderHooks } from "./useMarkdownRenderHooks.js";
|
|
1
2
|
import { useBindCx } from "@scalar/use-hooks/useBindCx";
|
|
2
3
|
import { computed, createElementBlock, defineComponent, mergeProps, openBlock, unref, useTemplateRef } from "vue";
|
|
3
4
|
import { htmlFromMarkdown, isHeading, textFromNode } from "@scalar/code-highlight";
|
|
@@ -23,7 +24,8 @@ var ScalarMarkdown_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
|
|
|
23
24
|
},
|
|
24
25
|
setup(__props, { expose: __expose }) {
|
|
25
26
|
const { cx } = useBindCx();
|
|
26
|
-
|
|
27
|
+
const templateRef = useTemplateRef("div");
|
|
28
|
+
__expose({ el: templateRef });
|
|
27
29
|
const transformHeading = (node) => {
|
|
28
30
|
if (!__props.withAnchors) return __props.transform?.(node) || node;
|
|
29
31
|
if (!isHeading(node)) return node;
|
|
@@ -40,6 +42,7 @@ var ScalarMarkdown_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
|
|
|
40
42
|
transformType: __props.transformType
|
|
41
43
|
});
|
|
42
44
|
});
|
|
45
|
+
useMarkdownRenderHooks(templateRef, () => __props.value ?? "", () => html.value);
|
|
43
46
|
return (_ctx, _cache) => {
|
|
44
47
|
return openBlock(), createElementBlock("div", mergeProps({ ref: "div" }, unref(cx)("markdown", { "line-clamp-(--markdown-clamp)": !!__props.clamp }), {
|
|
45
48
|
style: { "--markdown-clamp": __props.clamp },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarMarkdown.vue.script.js","names":[],"sources":["../../../src/components/ScalarMarkdown/ScalarMarkdown.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Markdown component\n *\n * Renders a markdown string as styled HTML with support for\n * headings, links, code blocks, tables, alerts, and more.\n *\n * @example\n * <ScalarMarkdown value=\"# Hello World\" />\n */\nexport default {}\n</script>\n\n<script setup lang=\"ts\">\nimport {\n type Node,\n htmlFromMarkdown,\n isHeading,\n textFromNode,\n} from '@scalar/code-highlight'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed, useTemplateRef } from 'vue'\n\nimport type { ScalarMarkdownProps } from './types'\n\nconst {\n value,\n transform,\n transformType,\n withImages = false,\n withAnchors = false,\n anchorPrefix,\n} = defineProps<ScalarMarkdownProps>()\n\nconst { cx } = useBindCx()\ndefineOptions({ inheritAttrs: false })\n\n// Expose the element ref to the parent component\nconst templateRef = useTemplateRef('div')\ndefineExpose({ el: templateRef })\n\nconst transformHeading = (node: Node) => {\n if (!withAnchors) {\n return transform?.(node) || node\n }\n\n if (!isHeading(node)) {\n return node\n }\n\n const headingText = textFromNode(node)\n\n /** Basic slugify for the heading text */\n const slug = headingText.toLowerCase().replace(/\\s+/g, '-')\n\n /** Return adding anchor prefix if present or just the slug */\n const id = anchorPrefix ? `${anchorPrefix}/description/${slug}` : slug\n\n // Add the id to the heading\n node.data = {\n hProperties: {\n id,\n },\n }\n\n if (transform) {\n return transform(node)\n }\n\n return node\n}\n\nconst html = computed(() => {\n return htmlFromMarkdown(value ?? '', {\n removeTags: withImages ? [] : ['img', 'picture'],\n transform:\n withAnchors && transformType === 'heading' ? transformHeading : transform,\n transformType,\n })\n})\n</script>\n<template>\n <div\n ref=\"div\"\n v-bind=\"cx('markdown', { 'line-clamp-(--markdown-clamp)': !!clamp })\"\n :style=\"{ '--markdown-clamp': clamp }\"\n v-html=\"html\" />\n</template>\n<style>\n@import '@scalar/code-highlight/css/code.css';\n\n.scalar-app {\n /* Base container and variables */\n .markdown {\n --scalar-refs-heading-spacing: 24px;\n --markdown-border: var(--scalar-border-width) solid\n var(--scalar-border-color);\n --markdown-spacing-sm: 12px;\n --markdown-spacing-md: 16px;\n --markdown-line-height: 1.625;\n --markdown-heading-line-height: 1.15;\n\n font-family: var(--scalar-font);\n word-break: break-word;\n line-height: var(--markdown-line-height);\n }\n\n .markdown > * {\n margin-bottom: var(--markdown-spacing-md);\n }\n\n /* margin gets doubled between heading + non heading elements if we don't do this*/\n .markdown > *:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):last-child {\n margin-bottom: 0;\n }\n /* Headings */\n .markdown h1,\n .markdown h2,\n .markdown h3,\n .markdown h4,\n .markdown h5,\n .markdown h6 {\n display: block;\n font-weight: var(--scalar-bold);\n margin-top: var(--scalar-refs-heading-spacing);\n margin-bottom: var(--markdown-spacing-sm);\n line-height: var(--markdown-heading-line-height, 1.15);\n scroll-margin-top: 1rem;\n }\n .markdown h1 {\n font-size: 1.5rem;\n }\n .markdown h2,\n .markdown h3 {\n font-size: 1.25rem;\n }\n .markdown h4,\n .markdown h5,\n .markdown h6 {\n font-size: 1rem;\n }\n\n /* Text formatting and paragraphs */\n .markdown b,\n .markdown strong {\n font-weight: var(--scalar-bold);\n }\n\n .markdown p {\n color: inherit;\n display: block;\n line-height: var(--markdown-line-height);\n }\n\n /* Images */\n .markdown img {\n /**\n * With `display: block` <a><img></a> will take the whole width.\n *\n * @see https://github.com/scalar/scalar/issues/3961\n */\n display: inline-block;\n overflow: hidden;\n border-radius: var(--scalar-radius-md);\n max-width: 100%;\n }\n\n /* Lists */\n .markdown ul,\n .markdown ol {\n display: flex;\n flex-direction: column;\n padding-left: 1.6em;\n gap: 2px;\n line-height: var(--markdown-line-height);\n }\n\n .markdown li {\n margin-top: 2px;\n padding-left: 7px;\n }\n\n ol > li::marker,\n ol > * > li::marker {\n font: var(--scalar-font);\n font-variant-numeric: tabular-nums;\n font-weight: var(--scalar-semibold);\n white-space: nowrap;\n }\n\n /* Level 1, 4, 7 → decimal */\n .markdown ol {\n list-style-type: decimal;\n }\n /* Level 2, 5, 8 → lower-alpha */\n .markdown ol ol {\n list-style-type: lower-alpha;\n }\n\n .markdown ol ol ol ol,\n .markdown ol ol ol ol ol ol ol {\n list-style-type: decimal;\n }\n\n .markdown ol ol ol ol ol,\n .markdown ol ol ol ol ol ol ol ol {\n list-style-type: lower-alpha;\n }\n\n /* Level 3, 6, 9 → lower-roman */\n .markdown ol ol ol {\n list-style-type: lower-roman;\n }\n\n .markdown ol ol ol ol ol ol,\n .markdown ol ol ol ol ol ol ol ol ol {\n list-style-type: lower-roman;\n }\n\n .markdown ul > li,\n .markdown ul > * > li {\n list-style-type: disc;\n }\n\n /* Tables */\n .markdown table {\n display: table;\n table-layout: fixed;\n overflow-x: auto;\n position: relative;\n width: max-content;\n max-width: 100%;\n margin: 1em 0;\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-radius: var(--scalar-radius-md);\n border-spacing: 0;\n }\n\n .markdown tbody,\n .markdown thead {\n vertical-align: middle;\n }\n\n .markdown tbody {\n display: table-row-group;\n }\n\n .markdown thead {\n display: table-header-group;\n }\n\n .markdown tr {\n display: table-row;\n border-color: inherit;\n vertical-align: inherit;\n }\n\n .markdown td,\n .markdown th {\n display: table-cell;\n vertical-align: top;\n min-width: 1em;\n padding: 8.5px 16px;\n line-height: var(--markdown-line-height);\n position: relative;\n /** Break long words in tables */\n word-break: break-word;\n font-size: var(--scalar-small);\n color: var(--scalar-color-1);\n border-right: var(--markdown-border);\n border-bottom: var(--markdown-border);\n }\n\n .markdown td > *,\n .markdown th > * {\n margin-bottom: 0;\n }\n\n .markdown th:empty {\n display: none;\n }\n\n .markdown td:first-of-type,\n .markdown th:first-of-type {\n border-left: none;\n }\n\n .markdown td:last-of-type,\n .markdown th:last-of-type {\n border-right: none;\n }\n\n .markdown tr:last-of-type td {\n border-bottom: none;\n }\n\n .markdown th {\n font-weight: var(--scalar-bold);\n text-align: left;\n border-left-color: transparent;\n background: var(--scalar-background-2);\n }\n\n .markdown th:first-of-type {\n border-top-left-radius: var(--scalar-radius-md);\n }\n\n .markdown th:last-of-type {\n border-top-right-radius: var(--scalar-radius-md);\n }\n\n .markdown tr > [align='left'] {\n text-align: left;\n }\n\n .markdown tr > [align='right'] {\n text-align: right;\n }\n\n .markdown tr > [align='center'] {\n text-align: center;\n }\n\n /* Details */\n .markdown details {\n border: var(--markdown-border);\n border-radius: var(--scalar-radius-xl);\n color: var(--scalar-color-1);\n }\n\n .markdown details > :not(summary) {\n margin: var(--markdown-spacing-md);\n margin-bottom: 0;\n }\n\n .markdown details > p:has(> strong):not(:has(:not(strong))) {\n margin-bottom: 8px;\n }\n\n .markdown details > p:has(> strong):not(:has(:not(strong))) + * {\n margin-top: 0;\n }\n\n .markdown details > table {\n width: calc(100% - calc(var(--markdown-spacing-md) * 2));\n }\n\n .markdown summary {\n border-radius: var(--scalar-radius);\n display: flex;\n align-items: flex-start;\n gap: 8px;\n min-height: 40px;\n padding: 7px 14px;\n position: relative;\n font-weight: var(--scalar-semibold);\n line-height: var(--markdown-line-height);\n cursor: pointer;\n user-select: none;\n }\n\n .markdown summary:hover {\n background-color: var(--scalar-background-2);\n }\n\n .markdown details[open] {\n padding-bottom: var(--markdown-spacing-md);\n }\n\n .markdown details[open] > summary {\n border-bottom: var(--markdown-border);\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n .markdown summary::before {\n display: block;\n content: '';\n flex-shrink: 0;\n width: var(--markdown-spacing-md);\n height: var(--markdown-spacing-md);\n background-color: var(--scalar-color-3);\n mask-image: url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" fill=\"currentColor\" width=\"1em\" height=\"1em\"><path d=\"M181.66,133.66l-80,80a8,8,0,0,1-11.32-11.32L164.69,128,90.34,53.66a8,8,0,0,1,11.32-11.32l80,80A8,8,0,0,1,181.66,133.66Z\"></path></svg>');\n margin-top: 5px;\n }\n\n .markdown summary:hover::before {\n background-color: var(--scalar-color-1);\n }\n\n .markdown details[open] > summary::before {\n transform: rotate(90deg);\n transition: transform 0.1s ease-in-out;\n }\n\n .markdown details:has(+ details) {\n border-bottom: 0;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n margin-bottom: 0;\n }\n\n .markdown details:has(+ details) + details,\n .markdown details:has(+ details) + details > summary {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n\n /* Links */\n .markdown a {\n --font-color: var(--scalar-link-color, var(--scalar-color-accent));\n --font-visited: var(--scalar-link-color-visited, var(--scalar-color-2));\n text-decoration: var(--scalar-text-decoration);\n\n color: var(--font-color);\n font-weight: var(--scalar-link-font-weight, var(--scalar-semibold));\n text-underline-offset: 0.25rem;\n text-decoration-thickness: 1px;\n text-decoration-color: color-mix(\n in srgb,\n var(--font-color) 30%,\n transparent\n );\n }\n\n .markdown a:hover {\n text-decoration-color: var(--scalar-color-1, currentColor);\n color: var(--scalar-link-color-hover, var(--scalar-color-accent));\n -webkit-text-decoration: var(--scalar-text-decoration-hover);\n text-decoration: var(--scalar-text-decoration-hover);\n }\n\n .markdown a:visited {\n color: var(--font-visited);\n }\n\n /* Text effects and formatting */\n .markdown em {\n font-style: italic;\n }\n\n .markdown sup,\n .markdown sub {\n font-size: var(--scalar-micro);\n font-weight: 450;\n }\n\n .markdown sup {\n vertical-align: super;\n }\n\n .markdown sub {\n vertical-align: sub;\n }\n\n .markdown del {\n text-decoration: line-through;\n }\n\n /* Code blocks and inline code */\n .markdown code {\n font-family: var(--scalar-font-code);\n background-color: var(--scalar-background-2);\n box-shadow: 0 0 0 var(--scalar-border-width) var(--scalar-border-color);\n font-size: var(--scalar-micro);\n border-radius: var(--scalar-radius-md);\n padding: 0 3px;\n }\n\n .markdown .hljs {\n font-size: var(--scalar-small);\n }\n\n .markdown pre code {\n display: block;\n white-space: pre;\n padding: var(--markdown-spacing-sm);\n line-height: 1.5;\n margin: var(--markdown-spacing-sm) 0;\n -webkit-overflow-scrolling: touch;\n overflow-x: auto;\n max-width: 100%;\n min-width: 100px;\n }\n\n /* Horizontal rules */\n .markdown hr {\n border: none;\n border-bottom: var(--markdown-border);\n }\n\n /* Blockquotes */\n .markdown blockquote {\n border-left: 2px solid var(--scalar-border-color);\n padding-left: var(--markdown-spacing-sm);\n }\n\n .markdown blockquote > * {\n margin-bottom: var(--markdown-spacing-sm);\n }\n\n /* Markdown Checklist */\n .markdown li.task-list-item {\n position: relative;\n list-style: none;\n }\n\n .markdown li.task-list-item > input {\n display: inline;\n position: absolute;\n top: 0.225em;\n left: -1.4em;\n appearance: none;\n width: var(--markdown-spacing-md);\n height: var(--markdown-spacing-md);\n border: 1px solid var(--scalar-color-3);\n border-radius: var(--scalar-radius);\n }\n\n .markdown li.task-list-item > input[type='checkbox']:checked {\n background-color: var(--scalar-color-1);\n border-color: var(--scalar-color-1);\n }\n\n .markdown li.task-list-item > input[type='checkbox']::before {\n content: '';\n position: absolute;\n left: 5px;\n top: 1px;\n width: 5px;\n height: 10px;\n border: solid var(--scalar-background-1);\n border-width: 0 1.5px 1.5px 0;\n transform: rotate(45deg);\n opacity: 0;\n }\n\n .markdown li.task-list-item > input[type='checkbox']:checked::before {\n opacity: 1;\n }\n\n /* Markdown Alert */\n .markdown .markdown-alert {\n align-items: stretch;\n border-radius: var(--scalar-radius-md);\n background-color: color-mix(\n in srgb,\n var(--scalar-background-2),\n transparent\n );\n border: var(--markdown-border);\n display: flex;\n gap: var(--markdown-spacing-sm);\n padding: 10px 14px;\n position: relative;\n }\n\n .markdown .markdown-alert .markdown-alert-icon::before {\n content: '';\n display: block;\n width: 18px;\n height: 18px;\n background-color: currentColor;\n flex-shrink: 0;\n margin-top: 3px;\n mask-repeat: no-repeat;\n mask-size: contain;\n mask-position: center;\n }\n\n .markdown .markdown-alert.markdown-alert-note {\n background-color: color-mix(\n in srgb,\n var(--scalar-color-blue),\n transparent 97%\n );\n border: var(--scalar-border-width) solid\n color-mix(in srgb, var(--scalar-color-blue), transparent 50%);\n }\n\n .markdown .markdown-alert.markdown-alert-tip {\n background-color: color-mix(\n in srgb,\n var(--scalar-color-2),\n transparent 97%\n );\n border: var(--scalar-border-width) solid\n color-mix(in srgb, var(--scalar-color-2), transparent 50%);\n }\n\n .markdown .markdown-alert.markdown-alert-note .markdown-alert-icon::before,\n .markdown .markdown-alert.markdown-alert-tip .markdown-alert-icon::before {\n mask-image: url('data:image/svg+xml,<svg data-v-852d534d=\"\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" fill=\"currentColor\" class=\"icon-placeholder\"><path d=\"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm16-40a8,8,0,0,1-8,8,16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40A8,8,0,0,1,144,176ZM112,84a12,12,0,1,1,12,12A12,12,0,0,1,112,84Z\"></path></svg>');\n color: var(--scalar-color-blue);\n }\n\n .markdown .markdown-alert.markdown-alert-important,\n .markdown .markdown-alert.markdown-alert-warning {\n background-color: color-mix(\n in srgb,\n var(--scalar-color-orange),\n transparent 97%\n );\n border: var(--scalar-border-width) solid\n color-mix(in srgb, var(--scalar-color-orange), transparent 50%);\n }\n\n .markdown\n .markdown-alert.markdown-alert-important\n .markdown-alert-icon::before,\n .markdown\n .markdown-alert.markdown-alert-warning\n .markdown-alert-icon::before {\n mask-image: url('data:image/svg+xml,<svg data-v-852d534d=\"\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" fill=\"currentColor\" class=\"icon-placeholder\"><path d=\"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z\"></path></svg>');\n }\n\n .markdown .markdown-alert.markdown-alert-caution {\n background-color: color-mix(\n in srgb,\n var(--scalar-color-red),\n transparent 97%\n );\n border: var(--scalar-border-width) solid\n color-mix(in srgb, var(--scalar-color-red), transparent 50%);\n }\n\n .markdown\n .markdown-alert.markdown-alert-caution\n .markdown-alert-icon::before {\n mask-image: url('data:image/svg+xml,<svg data-v-852d534d=\"\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" fill=\"currentColor\" class=\"icon-placeholder\"><path d=\"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm-8-80V80a8,8,0,0,1,16,0v56a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,172Z\"></path></svg>');\n color: var(--scalar-color-red);\n }\n\n .markdown .markdown-alert.markdown-alert-success {\n background-color: color-mix(\n in srgb,\n var(--scalar-color-green),\n transparent 97%\n );\n border: var(--scalar-border-width) solid\n color-mix(in srgb, var(--scalar-color-green), transparent 50%);\n }\n\n .markdown\n .markdown-alert.markdown-alert-success\n .markdown-alert-icon::before {\n mask-image: url('data:image/svg+xml,<svg data-v-852d534d=\"\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" fill=\"currentColor\" class=\"icon-placeholder\"><path d=\"M173.66,98.34a8,8,0,0,1,0,11.32l-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35A8,8,0,0,1,173.66,98.34ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z\"></path></svg>');\n color: var(--scalar-color-green);\n }\n\n .markdown .markdown-alert.markdown-alert-note .markdown-alert-icon::before {\n color: var(--scalar-color-blue);\n }\n\n .markdown .markdown-alert.markdown-alert-tip .markdown-alert-icon::before {\n color: var(--scalar-color-2);\n }\n\n .markdown\n .markdown-alert.markdown-alert-important\n .markdown-alert-icon::before {\n color: var(--scalar-color-purple);\n }\n\n .markdown\n .markdown-alert.markdown-alert-warning\n .markdown-alert-icon::before {\n color: var(--scalar-color-orange);\n }\n\n .markdown .markdown-alert .markdown-alert-content {\n margin: 0;\n line-height: var(--markdown-line-height);\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;EAkCA,MAAM,EAAE,OAAO,UAAU;EAKzB,SAAa,EAAE,IADK,eAAe,KAChB,EAAY,CAAC;EAEhC,MAAM,oBAAoB,SAAe;GACvC,IAAI,CAAC,QAAA,aACH,OAAO,QAAA,YAAY,IAAI,KAAK;GAG9B,IAAI,CAAC,UAAU,IAAI,GACjB,OAAO;;GAMT,MAAM,OAHc,aAAa,IAGpB,CAAA,CAAY,YAAY,CAAC,CAAC,QAAQ,QAAQ,GAAG;GAM1D,KAAK,OAAO,EACV,aAAa,EACX,IALO,QAAA,eAAe,GAAG,QAAA,aAAa,eAAe,SAAS,KAMhE,EACF;GAEA,IAAI,QAAA,WACF,OAAO,QAAA,UAAU,IAAI;GAGvB,OAAO;EACT;EAEA,MAAM,OAAO,eAAe;GAC1B,OAAO,iBAAiB,QAAA,SAAS,IAAI;IACnC,YAAY,QAAA,aAAa,CAAC,IAAI,CAAC,OAAO,SAAS;IAC/C,WACE,QAAA,eAAe,QAAA,kBAAkB,YAAY,mBAAmB,QAAA;IAClE,eAAY,QAAA;GACd,CAAC;EACH,CAAC;;uBAGC,mBAIkB,OAJlB,WAIkB,EAHhB,KAAI,MAAK,GACD,MAAA,EAAA,CAAE,CAAA,YAAA,EAAA,iCAAA,CAAA,CAAkD,QAAA,MAAK,CAAA,GAAA;IAChE,OAAK,EAAA,oBAAwB,QAAA,MAAK;IACnC,WAAQ,KAAA"}
|
|
1
|
+
{"version":3,"file":"ScalarMarkdown.vue.script.js","names":[],"sources":["../../../src/components/ScalarMarkdown/ScalarMarkdown.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Markdown component\n *\n * Renders a markdown string as styled HTML with support for\n * headings, links, code blocks, tables, alerts, and more.\n *\n * @example\n * <ScalarMarkdown value=\"# Hello World\" />\n */\nexport default {}\n</script>\n\n<script setup lang=\"ts\">\nimport {\n type Node,\n htmlFromMarkdown,\n isHeading,\n textFromNode,\n} from '@scalar/code-highlight'\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { computed, useTemplateRef } from 'vue'\n\nimport type { ScalarMarkdownProps } from './types'\nimport { useMarkdownRenderHooks } from './useMarkdownRenderHooks'\n\nconst {\n value,\n transform,\n transformType,\n withImages = false,\n withAnchors = false,\n anchorPrefix,\n} = defineProps<ScalarMarkdownProps>()\n\nconst { cx } = useBindCx()\ndefineOptions({ inheritAttrs: false })\n\n// Expose the element ref to the parent component\nconst templateRef = useTemplateRef('div')\ndefineExpose({ el: templateRef })\n\nconst transformHeading = (node: Node) => {\n if (!withAnchors) {\n return transform?.(node) || node\n }\n\n if (!isHeading(node)) {\n return node\n }\n\n const headingText = textFromNode(node)\n\n /** Basic slugify for the heading text */\n const slug = headingText.toLowerCase().replace(/\\s+/g, '-')\n\n /** Return adding anchor prefix if present or just the slug */\n const id = anchorPrefix ? `${anchorPrefix}/description/${slug}` : slug\n\n // Add the id to the heading\n node.data = {\n hProperties: {\n id,\n },\n }\n\n if (transform) {\n return transform(node)\n }\n\n return node\n}\n\nconst html = computed(() => {\n return htmlFromMarkdown(value ?? '', {\n removeTags: withImages ? [] : ['img', 'picture'],\n transform:\n withAnchors && transformType === 'heading' ? transformHeading : transform,\n transformType,\n })\n})\nuseMarkdownRenderHooks(\n templateRef,\n () => value ?? '',\n () => html.value,\n)\n</script>\n<template>\n <div\n ref=\"div\"\n v-bind=\"cx('markdown', { 'line-clamp-(--markdown-clamp)': !!clamp })\"\n :style=\"{ '--markdown-clamp': clamp }\"\n v-html=\"html\" />\n</template>\n<style>\n@import '@scalar/code-highlight/css/code.css';\n\n.scalar-app {\n /* Base container and variables */\n .markdown {\n --scalar-refs-heading-spacing: 24px;\n --markdown-border: var(--scalar-border-width) solid\n var(--scalar-border-color);\n --markdown-spacing-sm: 12px;\n --markdown-spacing-md: 16px;\n --markdown-line-height: 1.625;\n --markdown-heading-line-height: 1.15;\n\n font-family: var(--scalar-font);\n word-break: break-word;\n line-height: var(--markdown-line-height);\n }\n\n .markdown > * {\n margin-bottom: var(--markdown-spacing-md);\n }\n\n /* margin gets doubled between heading + non heading elements if we don't do this*/\n .markdown > *:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):last-child {\n margin-bottom: 0;\n }\n /* Headings */\n .markdown h1,\n .markdown h2,\n .markdown h3,\n .markdown h4,\n .markdown h5,\n .markdown h6 {\n display: block;\n font-weight: var(--scalar-bold);\n margin-top: var(--scalar-refs-heading-spacing);\n margin-bottom: var(--markdown-spacing-sm);\n line-height: var(--markdown-heading-line-height, 1.15);\n scroll-margin-top: 1rem;\n }\n .markdown h1 {\n font-size: 1.5rem;\n }\n .markdown h2,\n .markdown h3 {\n font-size: 1.25rem;\n }\n .markdown h4,\n .markdown h5,\n .markdown h6 {\n font-size: 1rem;\n }\n\n /* Text formatting and paragraphs */\n .markdown b,\n .markdown strong {\n font-weight: var(--scalar-bold);\n }\n\n .markdown p {\n color: inherit;\n display: block;\n line-height: var(--markdown-line-height);\n }\n\n /* Images */\n .markdown img {\n /**\n * With `display: block` <a><img></a> will take the whole width.\n *\n * @see https://github.com/scalar/scalar/issues/3961\n */\n display: inline-block;\n overflow: hidden;\n border-radius: var(--scalar-radius-md);\n max-width: 100%;\n }\n\n /* Lists */\n .markdown ul,\n .markdown ol {\n display: flex;\n flex-direction: column;\n padding-left: 1.6em;\n gap: 2px;\n line-height: var(--markdown-line-height);\n }\n\n .markdown li {\n margin-top: 2px;\n padding-left: 7px;\n }\n\n ol > li::marker,\n ol > * > li::marker {\n font: var(--scalar-font);\n font-variant-numeric: tabular-nums;\n font-weight: var(--scalar-semibold);\n white-space: nowrap;\n }\n\n /* Level 1, 4, 7 → decimal */\n .markdown ol {\n list-style-type: decimal;\n }\n /* Level 2, 5, 8 → lower-alpha */\n .markdown ol ol {\n list-style-type: lower-alpha;\n }\n\n .markdown ol ol ol ol,\n .markdown ol ol ol ol ol ol ol {\n list-style-type: decimal;\n }\n\n .markdown ol ol ol ol ol,\n .markdown ol ol ol ol ol ol ol ol {\n list-style-type: lower-alpha;\n }\n\n /* Level 3, 6, 9 → lower-roman */\n .markdown ol ol ol {\n list-style-type: lower-roman;\n }\n\n .markdown ol ol ol ol ol ol,\n .markdown ol ol ol ol ol ol ol ol ol {\n list-style-type: lower-roman;\n }\n\n .markdown ul > li,\n .markdown ul > * > li {\n list-style-type: disc;\n }\n\n /* Tables */\n .markdown table {\n display: table;\n table-layout: fixed;\n overflow-x: auto;\n position: relative;\n width: max-content;\n max-width: 100%;\n margin: 1em 0;\n border: var(--scalar-border-width) solid var(--scalar-border-color);\n border-radius: var(--scalar-radius-md);\n border-spacing: 0;\n }\n\n .markdown tbody,\n .markdown thead {\n vertical-align: middle;\n }\n\n .markdown tbody {\n display: table-row-group;\n }\n\n .markdown thead {\n display: table-header-group;\n }\n\n .markdown tr {\n display: table-row;\n border-color: inherit;\n vertical-align: inherit;\n }\n\n .markdown td,\n .markdown th {\n display: table-cell;\n vertical-align: top;\n min-width: 1em;\n padding: 8.5px 16px;\n line-height: var(--markdown-line-height);\n position: relative;\n /** Break long words in tables */\n word-break: break-word;\n font-size: var(--scalar-small);\n color: var(--scalar-color-1);\n border-right: var(--markdown-border);\n border-bottom: var(--markdown-border);\n }\n\n .markdown td > *,\n .markdown th > * {\n margin-bottom: 0;\n }\n\n .markdown th:empty {\n display: none;\n }\n\n .markdown td:first-of-type,\n .markdown th:first-of-type {\n border-left: none;\n }\n\n .markdown td:last-of-type,\n .markdown th:last-of-type {\n border-right: none;\n }\n\n .markdown tr:last-of-type td {\n border-bottom: none;\n }\n\n .markdown th {\n font-weight: var(--scalar-bold);\n text-align: left;\n border-left-color: transparent;\n background: var(--scalar-background-2);\n }\n\n .markdown th:first-of-type {\n border-top-left-radius: var(--scalar-radius-md);\n }\n\n .markdown th:last-of-type {\n border-top-right-radius: var(--scalar-radius-md);\n }\n\n .markdown tr > [align='left'] {\n text-align: left;\n }\n\n .markdown tr > [align='right'] {\n text-align: right;\n }\n\n .markdown tr > [align='center'] {\n text-align: center;\n }\n\n /* Details */\n .markdown details {\n border: var(--markdown-border);\n border-radius: var(--scalar-radius-xl);\n color: var(--scalar-color-1);\n }\n\n .markdown details > :not(summary) {\n margin: var(--markdown-spacing-md);\n margin-bottom: 0;\n }\n\n .markdown details > p:has(> strong):not(:has(:not(strong))) {\n margin-bottom: 8px;\n }\n\n .markdown details > p:has(> strong):not(:has(:not(strong))) + * {\n margin-top: 0;\n }\n\n .markdown details > table {\n width: calc(100% - calc(var(--markdown-spacing-md) * 2));\n }\n\n .markdown summary {\n border-radius: var(--scalar-radius);\n display: flex;\n align-items: flex-start;\n gap: 8px;\n min-height: 40px;\n padding: 7px 14px;\n position: relative;\n font-weight: var(--scalar-semibold);\n line-height: var(--markdown-line-height);\n cursor: pointer;\n user-select: none;\n }\n\n .markdown summary:hover {\n background-color: var(--scalar-background-2);\n }\n\n .markdown details[open] {\n padding-bottom: var(--markdown-spacing-md);\n }\n\n .markdown details[open] > summary {\n border-bottom: var(--markdown-border);\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n .markdown summary::before {\n display: block;\n content: '';\n flex-shrink: 0;\n width: var(--markdown-spacing-md);\n height: var(--markdown-spacing-md);\n background-color: var(--scalar-color-3);\n mask-image: url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" fill=\"currentColor\" width=\"1em\" height=\"1em\"><path d=\"M181.66,133.66l-80,80a8,8,0,0,1-11.32-11.32L164.69,128,90.34,53.66a8,8,0,0,1,11.32-11.32l80,80A8,8,0,0,1,181.66,133.66Z\"></path></svg>');\n margin-top: 5px;\n }\n\n .markdown summary:hover::before {\n background-color: var(--scalar-color-1);\n }\n\n .markdown details[open] > summary::before {\n transform: rotate(90deg);\n transition: transform 0.1s ease-in-out;\n }\n\n .markdown details:has(+ details) {\n border-bottom: 0;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n margin-bottom: 0;\n }\n\n .markdown details:has(+ details) + details,\n .markdown details:has(+ details) + details > summary {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n\n /* Links */\n .markdown a {\n --font-color: var(--scalar-link-color, var(--scalar-color-accent));\n --font-visited: var(--scalar-link-color-visited, var(--scalar-color-2));\n text-decoration: var(--scalar-text-decoration);\n\n color: var(--font-color);\n font-weight: var(--scalar-link-font-weight, var(--scalar-semibold));\n text-underline-offset: 0.25rem;\n text-decoration-thickness: 1px;\n text-decoration-color: color-mix(\n in srgb,\n var(--font-color) 30%,\n transparent\n );\n }\n\n .markdown a:hover {\n text-decoration-color: var(--scalar-color-1, currentColor);\n color: var(--scalar-link-color-hover, var(--scalar-color-accent));\n -webkit-text-decoration: var(--scalar-text-decoration-hover);\n text-decoration: var(--scalar-text-decoration-hover);\n }\n\n .markdown a:visited {\n color: var(--font-visited);\n }\n\n /* Text effects and formatting */\n .markdown em {\n font-style: italic;\n }\n\n .markdown sup,\n .markdown sub {\n font-size: var(--scalar-micro);\n font-weight: 450;\n }\n\n .markdown sup {\n vertical-align: super;\n }\n\n .markdown sub {\n vertical-align: sub;\n }\n\n .markdown del {\n text-decoration: line-through;\n }\n\n /* Code blocks and inline code */\n .markdown code {\n font-family: var(--scalar-font-code);\n background-color: var(--scalar-background-2);\n box-shadow: 0 0 0 var(--scalar-border-width) var(--scalar-border-color);\n font-size: var(--scalar-micro);\n border-radius: var(--scalar-radius-md);\n padding: 0 3px;\n }\n\n .markdown .hljs {\n font-size: var(--scalar-small);\n }\n\n .markdown pre code {\n display: block;\n white-space: pre;\n padding: var(--markdown-spacing-sm);\n line-height: 1.5;\n margin: var(--markdown-spacing-sm) 0;\n -webkit-overflow-scrolling: touch;\n overflow-x: auto;\n max-width: 100%;\n min-width: 100px;\n }\n\n /* Horizontal rules */\n .markdown hr {\n border: none;\n border-bottom: var(--markdown-border);\n }\n\n /* Blockquotes */\n .markdown blockquote {\n border-left: 2px solid var(--scalar-border-color);\n padding-left: var(--markdown-spacing-sm);\n }\n\n .markdown blockquote > * {\n margin-bottom: var(--markdown-spacing-sm);\n }\n\n /* Markdown Checklist */\n .markdown li.task-list-item {\n position: relative;\n list-style: none;\n }\n\n .markdown li.task-list-item > input {\n display: inline;\n position: absolute;\n top: 0.225em;\n left: -1.4em;\n appearance: none;\n width: var(--markdown-spacing-md);\n height: var(--markdown-spacing-md);\n border: 1px solid var(--scalar-color-3);\n border-radius: var(--scalar-radius);\n }\n\n .markdown li.task-list-item > input[type='checkbox']:checked {\n background-color: var(--scalar-color-1);\n border-color: var(--scalar-color-1);\n }\n\n .markdown li.task-list-item > input[type='checkbox']::before {\n content: '';\n position: absolute;\n left: 5px;\n top: 1px;\n width: 5px;\n height: 10px;\n border: solid var(--scalar-background-1);\n border-width: 0 1.5px 1.5px 0;\n transform: rotate(45deg);\n opacity: 0;\n }\n\n .markdown li.task-list-item > input[type='checkbox']:checked::before {\n opacity: 1;\n }\n\n /* Markdown Alert */\n .markdown .markdown-alert {\n align-items: stretch;\n border-radius: var(--scalar-radius-md);\n background-color: color-mix(\n in srgb,\n var(--scalar-background-2),\n transparent\n );\n border: var(--markdown-border);\n display: flex;\n gap: var(--markdown-spacing-sm);\n padding: 10px 14px;\n position: relative;\n }\n\n .markdown .markdown-alert .markdown-alert-icon::before {\n content: '';\n display: block;\n width: 18px;\n height: 18px;\n background-color: currentColor;\n flex-shrink: 0;\n margin-top: 3px;\n mask-repeat: no-repeat;\n mask-size: contain;\n mask-position: center;\n }\n\n .markdown .markdown-alert.markdown-alert-note {\n background-color: color-mix(\n in srgb,\n var(--scalar-color-blue),\n transparent 97%\n );\n border: var(--scalar-border-width) solid\n color-mix(in srgb, var(--scalar-color-blue), transparent 50%);\n }\n\n .markdown .markdown-alert.markdown-alert-tip {\n background-color: color-mix(\n in srgb,\n var(--scalar-color-2),\n transparent 97%\n );\n border: var(--scalar-border-width) solid\n color-mix(in srgb, var(--scalar-color-2), transparent 50%);\n }\n\n .markdown .markdown-alert.markdown-alert-note .markdown-alert-icon::before,\n .markdown .markdown-alert.markdown-alert-tip .markdown-alert-icon::before {\n mask-image: url('data:image/svg+xml,<svg data-v-852d534d=\"\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" fill=\"currentColor\" class=\"icon-placeholder\"><path d=\"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm16-40a8,8,0,0,1-8,8,16,16,0,0,1-16-16V128a8,8,0,0,1,0-16,16,16,0,0,1,16,16v40A8,8,0,0,1,144,176ZM112,84a12,12,0,1,1,12,12A12,12,0,0,1,112,84Z\"></path></svg>');\n color: var(--scalar-color-blue);\n }\n\n .markdown .markdown-alert.markdown-alert-important,\n .markdown .markdown-alert.markdown-alert-warning {\n background-color: color-mix(\n in srgb,\n var(--scalar-color-orange),\n transparent 97%\n );\n border: var(--scalar-border-width) solid\n color-mix(in srgb, var(--scalar-color-orange), transparent 50%);\n }\n\n .markdown\n .markdown-alert.markdown-alert-important\n .markdown-alert-icon::before,\n .markdown\n .markdown-alert.markdown-alert-warning\n .markdown-alert-icon::before {\n mask-image: url('data:image/svg+xml,<svg data-v-852d534d=\"\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" fill=\"currentColor\" class=\"icon-placeholder\"><path d=\"M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z\"></path></svg>');\n }\n\n .markdown .markdown-alert.markdown-alert-caution {\n background-color: color-mix(\n in srgb,\n var(--scalar-color-red),\n transparent 97%\n );\n border: var(--scalar-border-width) solid\n color-mix(in srgb, var(--scalar-color-red), transparent 50%);\n }\n\n .markdown\n .markdown-alert.markdown-alert-caution\n .markdown-alert-icon::before {\n mask-image: url('data:image/svg+xml,<svg data-v-852d534d=\"\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" fill=\"currentColor\" class=\"icon-placeholder\"><path d=\"M128,24A104,104,0,1,0,232,128,104.11,104.11,0,0,0,128,24Zm0,192a88,88,0,1,1,88-88A88.1,88.1,0,0,1,128,216Zm-8-80V80a8,8,0,0,1,16,0v56a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,172Z\"></path></svg>');\n color: var(--scalar-color-red);\n }\n\n .markdown .markdown-alert.markdown-alert-success {\n background-color: color-mix(\n in srgb,\n var(--scalar-color-green),\n transparent 97%\n );\n border: var(--scalar-border-width) solid\n color-mix(in srgb, var(--scalar-color-green), transparent 50%);\n }\n\n .markdown\n .markdown-alert.markdown-alert-success\n .markdown-alert-icon::before {\n mask-image: url('data:image/svg+xml,<svg data-v-852d534d=\"\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" fill=\"currentColor\" class=\"icon-placeholder\"><path d=\"M173.66,98.34a8,8,0,0,1,0,11.32l-56,56a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L112,148.69l50.34-50.35A8,8,0,0,1,173.66,98.34ZM232,128A104,104,0,1,1,128,24,104.11,104.11,0,0,1,232,128Zm-16,0a88,88,0,1,0-88,88A88.1,88.1,0,0,0,216,128Z\"></path></svg>');\n color: var(--scalar-color-green);\n }\n\n .markdown .markdown-alert.markdown-alert-note .markdown-alert-icon::before {\n color: var(--scalar-color-blue);\n }\n\n .markdown .markdown-alert.markdown-alert-tip .markdown-alert-icon::before {\n color: var(--scalar-color-2);\n }\n\n .markdown\n .markdown-alert.markdown-alert-important\n .markdown-alert-icon::before {\n color: var(--scalar-color-purple);\n }\n\n .markdown\n .markdown-alert.markdown-alert-warning\n .markdown-alert-icon::before {\n color: var(--scalar-color-orange);\n }\n\n .markdown .markdown-alert .markdown-alert-content {\n margin: 0;\n line-height: var(--markdown-line-height);\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EAmCA,MAAM,EAAE,OAAO,UAAU;EAIzB,MAAM,cAAc,eAAe,KAAK;EACxC,SAAa,EAAE,IAAI,YAAY,CAAC;EAEhC,MAAM,oBAAoB,SAAe;GACvC,IAAI,CAAC,QAAA,aACH,OAAO,QAAA,YAAY,IAAI,KAAK;GAG9B,IAAI,CAAC,UAAU,IAAI,GACjB,OAAO;;GAMT,MAAM,OAHc,aAAa,IAGpB,CAAA,CAAY,YAAY,CAAC,CAAC,QAAQ,QAAQ,GAAG;GAM1D,KAAK,OAAO,EACV,aAAa,EACX,IALO,QAAA,eAAe,GAAG,QAAA,aAAa,eAAe,SAAS,KAMhE,EACF;GAEA,IAAI,QAAA,WACF,OAAO,QAAA,UAAU,IAAI;GAGvB,OAAO;EACT;EAEA,MAAM,OAAO,eAAe;GAC1B,OAAO,iBAAiB,QAAA,SAAS,IAAI;IACnC,YAAY,QAAA,aAAa,CAAC,IAAI,CAAC,OAAO,SAAS;IAC/C,WACE,QAAA,eAAe,QAAA,kBAAkB,YAAY,mBAAmB,QAAA;IAClE,eAAY,QAAA;GACd,CAAC;EACH,CAAC;EACD,uBACE,mBACM,QAAA,SAAS,UACT,KAAK,KACb;;uBAGE,mBAIkB,OAJlB,WAIkB,EAHhB,KAAI,MAAK,GACD,MAAA,EAAA,CAAE,CAAA,YAAA,EAAA,iCAAA,CAAA,CAAkD,QAAA,MAAK,CAAA,GAAA;IAChE,OAAK,EAAA,oBAAwB,QAAA,MAAK;IACnC,WAAQ,KAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarMarkdownSummary.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarMarkdown/ScalarMarkdownSummary.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScalarMarkdownSummary.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarMarkdown/ScalarMarkdownSummary.vue"],"names":[],"mappings":"AAkIA;;;;;;;;GAQG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY;;;IA6ClB,qCAAqC;iBACxB,OAAO;IACpB,8CAA8C;gBAChC,OAAO;;;;;;;IAHrB,qCAAqC;iBACxB,OAAO;IACpB,8CAA8C;gBAChC,OAAO;;;;;aAkFR,CAAC,KAAK;;KAAgB,KAAK,GAAG;EAYvC,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":"ScalarMarkdownSummary.vue.js","names":[],"sources":["../../../src/components/ScalarMarkdown/ScalarMarkdownSummary.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Markdown Summary component\n *\n * Displays a truncated preview of markdown content with\n * a \"More\" / \"Show Less\" toggle to expand and collapse.\n *\n * @example\n * <ScalarMarkdownSummary value=\"Long markdown text...\" :clamp=\"2\" />\n */\nexport default {}\n</script>\n\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { useResizeObserver } from '@vueuse/core'\nimport { onMounted, useId, useTemplateRef } from 'vue'\n\nimport ScalarMarkdown from './ScalarMarkdown.vue'\nimport type { ScalarMarkdownSummaryProps } from './types'\n\nconst { clamp = 1, ...props } = defineProps<ScalarMarkdownSummaryProps>()\n\nconst id = useId()\n\n/** * Whether the summary is open. */\nconst open = defineModel<boolean>({ default: false })\n\n/** Whether the markdown is being truncated */\nconst truncated = defineModel<boolean>('truncated', { default: false })\n\nconst markdown = useTemplateRef('scalar-markdown')\n\nuseResizeObserver(() => markdown.value?.el, checkTruncation)\n\n/** Check if the markdown is being truncated */\nfunction checkTruncation() {\n const el = markdown.value?.el\n if (!el) {\n return\n }\n truncated.value =\n el.scrollHeight > el.clientHeight
|
|
1
|
+
{"version":3,"file":"ScalarMarkdownSummary.vue.js","names":[],"sources":["../../../src/components/ScalarMarkdown/ScalarMarkdownSummary.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Markdown Summary component\n *\n * Displays a truncated preview of markdown content with\n * a \"More\" / \"Show Less\" toggle to expand and collapse.\n *\n * @example\n * <ScalarMarkdownSummary value=\"Long markdown text...\" :clamp=\"2\" />\n */\nexport default {}\n</script>\n\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { useMutationObserver, useResizeObserver } from '@vueuse/core'\nimport { onMounted, useId, useTemplateRef } from 'vue'\n\nimport ScalarMarkdown from './ScalarMarkdown.vue'\nimport type { ScalarMarkdownSummaryProps } from './types'\n\nconst { clamp = 1, ...props } = defineProps<ScalarMarkdownSummaryProps>()\n\nconst id = useId()\n\n/** * Whether the summary is open. */\nconst open = defineModel<boolean>({ default: false })\n\n/** Whether the markdown is being truncated */\nconst truncated = defineModel<boolean>('truncated', { default: false })\n\nconst markdown = useTemplateRef('scalar-markdown')\n\nuseResizeObserver(() => markdown.value?.el, checkTruncation)\n// Async Markdown enhancements may add a hidden block without changing the summary size.\nuseMutationObserver(() => markdown.value?.el, checkTruncation, {\n childList: true,\n subtree: true,\n})\n\n/** Check if the markdown is being truncated */\nfunction checkTruncation() {\n const el = markdown.value?.el\n if (!el) {\n return\n }\n truncated.value =\n !!el.querySelector('[data-markdown-block]') ||\n el.scrollHeight > el.clientHeight ||\n el.scrollWidth > el.clientWidth\n}\n\nonMounted(checkTruncation)\n\nconst { cx } = useBindCx()\ndefineOptions({ inheritAttrs: false })\n</script>\n<template>\n <div\n v-bind=\"\n cx(\n 'group/summary flex gap-0.5',\n open ? 'flex-col' : 'flex-row items-baseline',\n )\n \">\n <ScalarMarkdown\n v-bind=\"props\"\n :id=\"id\"\n ref=\"scalar-markdown\"\n :clamp=\"open ? undefined : clamp\"\n :class=\"{ 'markdown-summary truncate': !open }\" />\n <button\n v-if=\"!controlled && (truncated || open)\"\n :aria-controls=\"id\"\n :aria-expanded=\"open\"\n class=\"whitespace-nowrap font-medium hover:underline\"\n :class=\"{ 'self-end': open }\"\n type=\"button\"\n @click=\"open = !open\">\n <slot\n name=\"button\"\n :open=\"open\">\n {{ open ? ' Show Less' : 'More' }}\n </slot>\n </button>\n </div>\n</template>\n<style>\n.scalar-app {\n /*\n Summarized markdown styles\n Doubled up to bump specificity\n */\n .markdown.markdown-summary.markdown-summary {\n /* Hide the before and after pseudo-elements for all elements */\n *:before,\n *:after {\n content: none;\n }\n\n *:not(strong, em, a, code) {\n /* Disable formatting for non-inline elements */\n display: contents;\n font-size: inherit;\n font-weight: inherit;\n line-height: var(--markdown-line-height);\n }\n\n /* Hide elements that don't make sense in the summary */\n [data-markdown-block],\n img,\n svg,\n hr,\n pre {\n display: none;\n }\n }\n}\n</style>\n"],"mappings":""}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import ScalarMarkdown_default from "./ScalarMarkdown.vue.js";
|
|
2
2
|
import { useBindCx } from "@scalar/use-hooks/useBindCx";
|
|
3
3
|
import { createCommentVNode, createElementBlock, createPropsRestProxy, createTextVNode, createVNode, defineComponent, guardReactiveProps, mergeModels, mergeProps, normalizeClass, normalizeProps, onMounted, openBlock, renderSlot, toDisplayString, unref, useId, useModel, useTemplateRef } from "vue";
|
|
4
|
-
import { useResizeObserver } from "@vueuse/core";
|
|
4
|
+
import { useMutationObserver, useResizeObserver } from "@vueuse/core";
|
|
5
5
|
//#region src/components/ScalarMarkdown/ScalarMarkdownSummary.vue?vue&type=script&setup=true&lang.ts
|
|
6
6
|
var _hoisted_1 = ["aria-controls", "aria-expanded"];
|
|
7
7
|
var ScalarMarkdownSummary_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
@@ -38,11 +38,15 @@ var ScalarMarkdownSummary_vue_vue_type_script_setup_true_lang_default = /*@__PUR
|
|
|
38
38
|
const truncated = useModel(__props, "truncated");
|
|
39
39
|
const markdown = useTemplateRef("scalar-markdown");
|
|
40
40
|
useResizeObserver(() => markdown.value?.el, checkTruncation);
|
|
41
|
+
useMutationObserver(() => markdown.value?.el, checkTruncation, {
|
|
42
|
+
childList: true,
|
|
43
|
+
subtree: true
|
|
44
|
+
});
|
|
41
45
|
/** Check if the markdown is being truncated */
|
|
42
46
|
function checkTruncation() {
|
|
43
47
|
const el = markdown.value?.el;
|
|
44
48
|
if (!el) return;
|
|
45
|
-
truncated.value = el.scrollHeight > el.clientHeight || el.scrollWidth > el.clientWidth;
|
|
49
|
+
truncated.value = !!el.querySelector("[data-markdown-block]") || el.scrollHeight > el.clientHeight || el.scrollWidth > el.clientWidth;
|
|
46
50
|
}
|
|
47
51
|
onMounted(checkTruncation);
|
|
48
52
|
const { cx } = useBindCx();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarMarkdownSummary.vue.script.js","names":[],"sources":["../../../src/components/ScalarMarkdown/ScalarMarkdownSummary.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Markdown Summary component\n *\n * Displays a truncated preview of markdown content with\n * a \"More\" / \"Show Less\" toggle to expand and collapse.\n *\n * @example\n * <ScalarMarkdownSummary value=\"Long markdown text...\" :clamp=\"2\" />\n */\nexport default {}\n</script>\n\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { useResizeObserver } from '@vueuse/core'\nimport { onMounted, useId, useTemplateRef } from 'vue'\n\nimport ScalarMarkdown from './ScalarMarkdown.vue'\nimport type { ScalarMarkdownSummaryProps } from './types'\n\nconst { clamp = 1, ...props } = defineProps<ScalarMarkdownSummaryProps>()\n\nconst id = useId()\n\n/** * Whether the summary is open. */\nconst open = defineModel<boolean>({ default: false })\n\n/** Whether the markdown is being truncated */\nconst truncated = defineModel<boolean>('truncated', { default: false })\n\nconst markdown = useTemplateRef('scalar-markdown')\n\nuseResizeObserver(() => markdown.value?.el, checkTruncation)\n\n/** Check if the markdown is being truncated */\nfunction checkTruncation() {\n const el = markdown.value?.el\n if (!el) {\n return\n }\n truncated.value =\n el.scrollHeight > el.clientHeight
|
|
1
|
+
{"version":3,"file":"ScalarMarkdownSummary.vue.script.js","names":[],"sources":["../../../src/components/ScalarMarkdown/ScalarMarkdownSummary.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Markdown Summary component\n *\n * Displays a truncated preview of markdown content with\n * a \"More\" / \"Show Less\" toggle to expand and collapse.\n *\n * @example\n * <ScalarMarkdownSummary value=\"Long markdown text...\" :clamp=\"2\" />\n */\nexport default {}\n</script>\n\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\nimport { useMutationObserver, useResizeObserver } from '@vueuse/core'\nimport { onMounted, useId, useTemplateRef } from 'vue'\n\nimport ScalarMarkdown from './ScalarMarkdown.vue'\nimport type { ScalarMarkdownSummaryProps } from './types'\n\nconst { clamp = 1, ...props } = defineProps<ScalarMarkdownSummaryProps>()\n\nconst id = useId()\n\n/** * Whether the summary is open. */\nconst open = defineModel<boolean>({ default: false })\n\n/** Whether the markdown is being truncated */\nconst truncated = defineModel<boolean>('truncated', { default: false })\n\nconst markdown = useTemplateRef('scalar-markdown')\n\nuseResizeObserver(() => markdown.value?.el, checkTruncation)\n// Async Markdown enhancements may add a hidden block without changing the summary size.\nuseMutationObserver(() => markdown.value?.el, checkTruncation, {\n childList: true,\n subtree: true,\n})\n\n/** Check if the markdown is being truncated */\nfunction checkTruncation() {\n const el = markdown.value?.el\n if (!el) {\n return\n }\n truncated.value =\n !!el.querySelector('[data-markdown-block]') ||\n el.scrollHeight > el.clientHeight ||\n el.scrollWidth > el.clientWidth\n}\n\nonMounted(checkTruncation)\n\nconst { cx } = useBindCx()\ndefineOptions({ inheritAttrs: false })\n</script>\n<template>\n <div\n v-bind=\"\n cx(\n 'group/summary flex gap-0.5',\n open ? 'flex-col' : 'flex-row items-baseline',\n )\n \">\n <ScalarMarkdown\n v-bind=\"props\"\n :id=\"id\"\n ref=\"scalar-markdown\"\n :clamp=\"open ? undefined : clamp\"\n :class=\"{ 'markdown-summary truncate': !open }\" />\n <button\n v-if=\"!controlled && (truncated || open)\"\n :aria-controls=\"id\"\n :aria-expanded=\"open\"\n class=\"whitespace-nowrap font-medium hover:underline\"\n :class=\"{ 'self-end': open }\"\n type=\"button\"\n @click=\"open = !open\">\n <slot\n name=\"button\"\n :open=\"open\">\n {{ open ? ' Show Less' : 'More' }}\n </slot>\n </button>\n </div>\n</template>\n<style>\n.scalar-app {\n /*\n Summarized markdown styles\n Doubled up to bump specificity\n */\n .markdown.markdown-summary.markdown-summary {\n /* Hide the before and after pseudo-elements for all elements */\n *:before,\n *:after {\n content: none;\n }\n\n *:not(strong, em, a, code) {\n /* Disable formatting for non-inline elements */\n display: contents;\n font-size: inherit;\n font-weight: inherit;\n line-height: var(--markdown-line-height);\n }\n\n /* Hide elements that don't make sense in the summary */\n [data-markdown-block],\n img,\n svg,\n hr,\n pre {\n display: none;\n }\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBA,MAAM,QAA0B,qBAAA,SAAA,CAAA,OAAA,CAAA;EAEhC,MAAM,KAAK,MAAM;;EAGjB,MAAM,OAAO,SAAoB,SAAA,YAAmB;;EAGpD,MAAM,YAAY,SAAoB,SAAC,WAA+B;EAEtE,MAAM,WAAW,eAAe,iBAAiB;EAEjD,wBAAwB,SAAS,OAAO,IAAI,eAAe;EAE3D,0BAA0B,SAAS,OAAO,IAAI,iBAAiB;GAC7D,WAAW;GACX,SAAS;EACX,CAAC;;EAGD,SAAS,kBAAkB;GACzB,MAAM,KAAK,SAAS,OAAO;GAC3B,IAAI,CAAC,IACH;GAEF,UAAU,QACR,CAAC,CAAC,GAAG,cAAc,uBAAuB,KAC1C,GAAG,eAAe,GAAG,gBACrB,GAAG,cAAc,GAAG;EACxB;EAEA,UAAU,eAAe;EAEzB,MAAM,EAAE,OAAO,UAAU;;uBAIvB,mBA2BM,OAAA,eAAA,mBA1BW,MAAA,EAAA,CAAE,CAAA,8BAAgD,KAAA,QAAI,aAAA,yBAAA,CAAA,CAAA,GAAA,CAMrE,YAKoD,wBALpD,WACU,OAAK;IACZ,IAAI,MAAA,EAAA;IACL,KAAI;IACH,OAAO,KAAA,QAAO,KAAA,IAAY,QAAA;IAC1B,OAAK,EAAA,6BAAA,CAAkC,KAAA,MAAI;;;;;QAErC,QAAA,eAAe,UAAA,SAAa,KAAA,UAAA,UAAA,GADrC,mBAaS,UAAA;;IAXN,iBAAe,MAAA,EAAA;IACf,iBAAe,KAAA;IAChB,OAAK,eAAA,CAAC,iDAA+C,EAAA,YAC/B,KAAA,MAAI,CAAA,CAAA;IAC1B,MAAK;IACJ,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,KAAA,QAAI,CAAI,KAAA;OAChB,WAIO,KAAA,QAAA,UAAA,EAFJ,MAAM,KAAA,MAAI,SAEN,CAAA,gBAAA,gBADF,KAAA,QAAI,eAAA,MAAA,GAAA,CAAA,CAAA,CAAA,CAAA,GAAA,IAAA,UAAA,KAAA,mBAAA,IAAA,IAAA,CAAA,GAAA,EAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarMarkdown/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,6BAA6B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarMarkdown/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { MARKDOWN_RENDER_HOOKS } from "./useMarkdownRenderHooks.js";
|
|
1
2
|
import ScalarMarkdown_default from "./ScalarMarkdown.vue.js";
|
|
2
3
|
import ScalarMarkdownSummary_default from "./ScalarMarkdownSummary.vue.js";
|
|
3
|
-
export { ScalarMarkdown_default as ScalarMarkdown, ScalarMarkdownSummary_default as ScalarMarkdownSummary };
|
|
4
|
+
export { MARKDOWN_RENDER_HOOKS, ScalarMarkdown_default as ScalarMarkdown, ScalarMarkdownSummary_default as ScalarMarkdownSummary };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { MarkdownRenderHook } from '@scalar/helpers/markdown/markdown-render-hook';
|
|
2
|
+
import { type InjectionKey, type Ref } from 'vue';
|
|
3
|
+
/** Per-reference hooks; separate API Reference instances do not share enhancements. */
|
|
4
|
+
export declare const MARKDOWN_RENDER_HOOKS: InjectionKey<readonly MarkdownRenderHook[]>;
|
|
5
|
+
/** Run enhancements after rendering and dispose them when Markdown changes or unmounts. */
|
|
6
|
+
export declare const useMarkdownRenderHooks: (element: Ref<HTMLElement | null>, source: () => string, html: () => string) => void;
|
|
7
|
+
//# sourceMappingURL=useMarkdownRenderHooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMarkdownRenderHooks.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarMarkdown/useMarkdownRenderHooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAA;AACvF,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,GAAG,EAAiB,MAAM,KAAK,CAAA;AAEhE,uFAAuF;AACvF,eAAO,MAAM,qBAAqB,EAAE,YAAY,CAAC,SAAS,kBAAkB,EAAE,CAA0C,CAAA;AAExH,2FAA2F;AAC3F,eAAO,MAAM,sBAAsB,GACjC,SAAS,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,EAChC,QAAQ,MAAM,MAAM,EACpB,MAAM,MAAM,MAAM,KACjB,IAqCF,CAAA"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { inject, watch } from "vue";
|
|
2
|
+
//#region src/components/ScalarMarkdown/useMarkdownRenderHooks.ts
|
|
3
|
+
/** Per-reference hooks; separate API Reference instances do not share enhancements. */
|
|
4
|
+
var MARKDOWN_RENDER_HOOKS = Symbol("scalar-markdown-render-hooks");
|
|
5
|
+
/** Run enhancements after rendering and dispose them when Markdown changes or unmounts. */
|
|
6
|
+
var useMarkdownRenderHooks = (element, source, html) => {
|
|
7
|
+
const hooks = inject(MARKDOWN_RENDER_HOOKS, []);
|
|
8
|
+
watch([
|
|
9
|
+
element,
|
|
10
|
+
source,
|
|
11
|
+
html
|
|
12
|
+
], ([container, markdown], _, onCleanup) => {
|
|
13
|
+
if (!container || !hooks.length) return;
|
|
14
|
+
const controller = new AbortController();
|
|
15
|
+
const cleanups = [];
|
|
16
|
+
onCleanup(() => {
|
|
17
|
+
controller.abort();
|
|
18
|
+
for (const cleanup of cleanups.reverse()) try {
|
|
19
|
+
cleanup();
|
|
20
|
+
} catch (error) {
|
|
21
|
+
console.error("Could not dispose Markdown enhancement:", error);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
for (const hook of hooks) Promise.resolve().then(() => {
|
|
25
|
+
if (controller.signal.aborted) return;
|
|
26
|
+
return hook({
|
|
27
|
+
element: container,
|
|
28
|
+
source: markdown,
|
|
29
|
+
signal: controller.signal
|
|
30
|
+
});
|
|
31
|
+
}).then((cleanup) => {
|
|
32
|
+
if (!cleanup) return;
|
|
33
|
+
if (controller.signal.aborted) cleanup();
|
|
34
|
+
else cleanups.push(cleanup);
|
|
35
|
+
}).catch((error) => {
|
|
36
|
+
if (!controller.signal.aborted) console.error("Could not enhance Markdown:", error);
|
|
37
|
+
});
|
|
38
|
+
}, {
|
|
39
|
+
flush: "post",
|
|
40
|
+
immediate: true
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
//#endregion
|
|
44
|
+
export { MARKDOWN_RENDER_HOOKS, useMarkdownRenderHooks };
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=useMarkdownRenderHooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMarkdownRenderHooks.js","names":[],"sources":["../../../src/components/ScalarMarkdown/useMarkdownRenderHooks.ts"],"sourcesContent":["import type { MarkdownRenderHook } from '@scalar/helpers/markdown/markdown-render-hook'\nimport { type InjectionKey, type Ref, inject, watch } from 'vue'\n\n/** Per-reference hooks; separate API Reference instances do not share enhancements. */\nexport const MARKDOWN_RENDER_HOOKS: InjectionKey<readonly MarkdownRenderHook[]> = Symbol('scalar-markdown-render-hooks')\n\n/** Run enhancements after rendering and dispose them when Markdown changes or unmounts. */\nexport const useMarkdownRenderHooks = (\n element: Ref<HTMLElement | null>,\n source: () => string,\n html: () => string,\n): void => {\n const hooks = inject(MARKDOWN_RENDER_HOOKS, [])\n watch(\n [element, source, html],\n ([container, markdown], _, onCleanup) => {\n if (!container || !hooks.length) return\n const controller = new AbortController()\n const cleanups: (() => void)[] = []\n onCleanup(() => {\n controller.abort()\n for (const cleanup of cleanups.reverse()) {\n try {\n cleanup()\n } catch (error: unknown) {\n // One plugin must not prevent other plugins from releasing their resources.\n console.error('Could not dispose Markdown enhancement:', error)\n }\n }\n })\n for (const hook of hooks) {\n void Promise.resolve()\n .then(() => {\n if (controller.signal.aborted) return\n return hook({ element: container, source: markdown, signal: controller.signal })\n })\n .then((cleanup) => {\n if (!cleanup) return\n if (controller.signal.aborted) cleanup()\n else cleanups.push(cleanup)\n })\n .catch((error: unknown) => {\n if (!controller.signal.aborted) console.error('Could not enhance Markdown:', error)\n })\n }\n },\n { flush: 'post', immediate: true },\n )\n}\n"],"mappings":";;;AAIA,IAAa,wBAAqE,OAAO,8BAA8B;;AAGvH,IAAa,0BACX,SACA,QACA,SACS;CACT,MAAM,QAAQ,OAAO,uBAAuB,CAAC,CAAC;CAC9C,MACE;EAAC;EAAS;EAAQ;CAAI,IACrB,CAAC,WAAW,WAAW,GAAG,cAAc;EACvC,IAAI,CAAC,aAAa,CAAC,MAAM,QAAQ;EACjC,MAAM,aAAa,IAAI,gBAAgB;EACvC,MAAM,WAA2B,CAAC;EAClC,gBAAgB;GACd,WAAW,MAAM;GACjB,KAAK,MAAM,WAAW,SAAS,QAAQ,GACrC,IAAI;IACF,QAAQ;GACV,SAAS,OAAgB;IAEvB,QAAQ,MAAM,2CAA2C,KAAK;GAChE;EAEJ,CAAC;EACD,KAAK,MAAM,QAAQ,OACjB,QAAa,QAAQ,CAAC,CACnB,WAAW;GACV,IAAI,WAAW,OAAO,SAAS;GAC/B,OAAO,KAAK;IAAE,SAAS;IAAW,QAAQ;IAAU,QAAQ,WAAW;GAAO,CAAC;EACjF,CAAC,CAAC,CACD,MAAM,YAAY;GACjB,IAAI,CAAC,SAAS;GACd,IAAI,WAAW,OAAO,SAAS,QAAQ;QAClC,SAAS,KAAK,OAAO;EAC5B,CAAC,CAAC,CACD,OAAO,UAAmB;GACzB,IAAI,CAAC,WAAW,OAAO,SAAS,QAAQ,MAAM,+BAA+B,KAAK;EACpF,CAAC;CAEP,GACA;EAAE,OAAO;EAAQ,WAAW;CAAK,CACnC;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarSidebarGroupToggleButton.vue.js","names":[],"sources":["../../../src/components/ScalarSidebar/ScalarSidebarGroupToggleButton.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Sidebar Group Toggle Button component\n *\n * Provides the standalone expand and collapse control for a discrete\n * ScalarSidebarGroup, where the group label is a control of its own\n * (usually a link) and therefore cannot also own the open state.\n *\n * The button is positioned over the end of the group label, so it needs a\n * positioned ancestor and a ScalarSidebarGroupToggleSpacer inside the label\n * to reserve room for it.\n *\n * @example\n * <ScalarSidebarGroupToggleButton\n * :open=\"open\"\n * @click=\"open = !open\">\n * <template #label>{{ open ? 'Close' : 'Open' }} Authentication</template>\n * </ScalarSidebarGroupToggleButton>\n *\n * @see ScalarSidebarGroup\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { cva, useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport ScalarSidebarGroupToggle from './ScalarSidebarGroupToggle.vue'\n\nconst { open = false } = defineProps<{\n /**\n * Whether or not the group is open\n *\n * @default false\n */\n open?: boolean\n /**\n * Whether or not the group label underneath the button is selected\n *\n * Matches the hover styles of the button to the label it sits on top of.\n */\n selected?: boolean\n}>()\n\ndefineSlots<{\n /** Override the toggle icon */\n default?(props: { open: boolean }): unknown\n /** Override the screen reader label */\n label?(props: { open: boolean }): unknown\n}>()\n\nconst variants = cva({\n base: [\n // Position the button over the end of the group label\n 'absolute top-[1lh] right-1
|
|
1
|
+
{"version":3,"file":"ScalarSidebarGroupToggleButton.vue.js","names":[],"sources":["../../../src/components/ScalarSidebar/ScalarSidebarGroupToggleButton.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Sidebar Group Toggle Button component\n *\n * Provides the standalone expand and collapse control for a discrete\n * ScalarSidebarGroup, where the group label is a control of its own\n * (usually a link) and therefore cannot also own the open state.\n *\n * The button is positioned over the end of the group label, so it needs a\n * positioned ancestor and a ScalarSidebarGroupToggleSpacer inside the label\n * to reserve room for it.\n *\n * @example\n * <ScalarSidebarGroupToggleButton\n * :open=\"open\"\n * @click=\"open = !open\">\n * <template #label>{{ open ? 'Close' : 'Open' }} Authentication</template>\n * </ScalarSidebarGroupToggleButton>\n *\n * @see ScalarSidebarGroup\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { cva, useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport ScalarSidebarGroupToggle from './ScalarSidebarGroupToggle.vue'\n\nconst { open = false } = defineProps<{\n /**\n * Whether or not the group is open\n *\n * @default false\n */\n open?: boolean\n /**\n * Whether or not the group label underneath the button is selected\n *\n * Matches the hover styles of the button to the label it sits on top of.\n */\n selected?: boolean\n}>()\n\ndefineSlots<{\n /** Override the toggle icon */\n default?(props: { open: boolean }): unknown\n /** Override the screen reader label */\n label?(props: { open: boolean }): unknown\n}>()\n\nconst variants = cva({\n base: [\n // Position the button over the end of the group label\n 'absolute top-[1lh] right-1 -translate-y-1/2',\n // Sizing and color\n 'rounded p-1 text-sidebar-c-2',\n ],\n variants: {\n selected: {\n true: 'hover:bg-sidebar-b-1 hover:text-sidebar-c-1',\n false: 'hover:bg-sidebar-b-hover hover:text-sidebar-c-hover',\n },\n },\n defaultVariants: { selected: false },\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <button\n :aria-expanded=\"open\"\n type=\"button\"\n v-bind=\"cx(variants({ selected }))\">\n <slot :open>\n <ScalarSidebarGroupToggle :open>\n <template\n v-if=\"$slots.label\"\n #label>\n <slot\n name=\"label\"\n :open />\n </template>\n </ScalarSidebarGroupToggle>\n </slot>\n </button>\n</template>\n"],"mappings":""}
|
|
@@ -15,7 +15,7 @@ var ScalarSidebarGroupToggleButton_vue_vue_type_script_setup_true_lang_default =
|
|
|
15
15
|
},
|
|
16
16
|
setup(__props) {
|
|
17
17
|
const variants = cva({
|
|
18
|
-
base: ["absolute top-[1lh] right-1
|
|
18
|
+
base: ["absolute top-[1lh] right-1 -translate-y-1/2", "rounded p-1 text-sidebar-c-2"],
|
|
19
19
|
variants: { selected: {
|
|
20
20
|
true: "hover:bg-sidebar-b-1 hover:text-sidebar-c-1",
|
|
21
21
|
false: "hover:bg-sidebar-b-hover hover:text-sidebar-c-hover"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarSidebarGroupToggleButton.vue.script.js","names":["$slots"],"sources":["../../../src/components/ScalarSidebar/ScalarSidebarGroupToggleButton.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Sidebar Group Toggle Button component\n *\n * Provides the standalone expand and collapse control for a discrete\n * ScalarSidebarGroup, where the group label is a control of its own\n * (usually a link) and therefore cannot also own the open state.\n *\n * The button is positioned over the end of the group label, so it needs a\n * positioned ancestor and a ScalarSidebarGroupToggleSpacer inside the label\n * to reserve room for it.\n *\n * @example\n * <ScalarSidebarGroupToggleButton\n * :open=\"open\"\n * @click=\"open = !open\">\n * <template #label>{{ open ? 'Close' : 'Open' }} Authentication</template>\n * </ScalarSidebarGroupToggleButton>\n *\n * @see ScalarSidebarGroup\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { cva, useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport ScalarSidebarGroupToggle from './ScalarSidebarGroupToggle.vue'\n\nconst { open = false } = defineProps<{\n /**\n * Whether or not the group is open\n *\n * @default false\n */\n open?: boolean\n /**\n * Whether or not the group label underneath the button is selected\n *\n * Matches the hover styles of the button to the label it sits on top of.\n */\n selected?: boolean\n}>()\n\ndefineSlots<{\n /** Override the toggle icon */\n default?(props: { open: boolean }): unknown\n /** Override the screen reader label */\n label?(props: { open: boolean }): unknown\n}>()\n\nconst variants = cva({\n base: [\n // Position the button over the end of the group label\n 'absolute top-[1lh] right-1
|
|
1
|
+
{"version":3,"file":"ScalarSidebarGroupToggleButton.vue.script.js","names":["$slots"],"sources":["../../../src/components/ScalarSidebar/ScalarSidebarGroupToggleButton.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Sidebar Group Toggle Button component\n *\n * Provides the standalone expand and collapse control for a discrete\n * ScalarSidebarGroup, where the group label is a control of its own\n * (usually a link) and therefore cannot also own the open state.\n *\n * The button is positioned over the end of the group label, so it needs a\n * positioned ancestor and a ScalarSidebarGroupToggleSpacer inside the label\n * to reserve room for it.\n *\n * @example\n * <ScalarSidebarGroupToggleButton\n * :open=\"open\"\n * @click=\"open = !open\">\n * <template #label>{{ open ? 'Close' : 'Open' }} Authentication</template>\n * </ScalarSidebarGroupToggleButton>\n *\n * @see ScalarSidebarGroup\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { cva, useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport ScalarSidebarGroupToggle from './ScalarSidebarGroupToggle.vue'\n\nconst { open = false } = defineProps<{\n /**\n * Whether or not the group is open\n *\n * @default false\n */\n open?: boolean\n /**\n * Whether or not the group label underneath the button is selected\n *\n * Matches the hover styles of the button to the label it sits on top of.\n */\n selected?: boolean\n}>()\n\ndefineSlots<{\n /** Override the toggle icon */\n default?(props: { open: boolean }): unknown\n /** Override the screen reader label */\n label?(props: { open: boolean }): unknown\n}>()\n\nconst variants = cva({\n base: [\n // Position the button over the end of the group label\n 'absolute top-[1lh] right-1 -translate-y-1/2',\n // Sizing and color\n 'rounded p-1 text-sidebar-c-2',\n ],\n variants: {\n selected: {\n true: 'hover:bg-sidebar-b-1 hover:text-sidebar-c-1',\n false: 'hover:bg-sidebar-b-hover hover:text-sidebar-c-hover',\n },\n },\n defaultVariants: { selected: false },\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <button\n :aria-expanded=\"open\"\n type=\"button\"\n v-bind=\"cx(variants({ selected }))\">\n <slot :open>\n <ScalarSidebarGroupToggle :open>\n <template\n v-if=\"$slots.label\"\n #label>\n <slot\n name=\"label\"\n :open />\n </template>\n </ScalarSidebarGroupToggle>\n </slot>\n </button>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;EAkDA,MAAM,WAAW,IAAI;GACnB,MAAM,CAEJ,+CAEA,8BACF;GACA,UAAU,EACR,UAAU;IACR,MAAM;IACN,OAAO;GACT,EACF;GACA,iBAAiB,EAAE,UAAU,MAAM;EACrC,CAAC;EAGD,MAAM,EAAE,OAAO,UAAU;;uBAGvB,mBAeS,UAfT,WAeS;IAdN,iBAAe,QAAA;IAChB,MAAK;MACG,MAAA,EAAA,CAAE,CAAC,MAAA,QAAA,CAAQ,CAAA,EAAA,UAAG,QAAA,SAAQ,CAAA,CAAA,CAAA,GAAA,CAC9B,WAUO,KAAA,QAAA,WAAA,EAVA,MAAA,QAAA,KAAI,SAUJ,CATL,YAQ2B,kCAAA,EARA,MAAA,QAAA,KAAI,GAAA,YAAA,EAAA,GAAA,EAAA,GAAA,CAErBA,KAAAA,OAAO,QAAA;UACZ;sBAGS,CAFV,WAEU,KAAA,QAAA,SAAA,EAAP,MAAA,QAAA,KAAI,CAAA,CAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarSidebarGroupToggleSpacer.vue.js","names":[],"sources":["../../../src/components/ScalarSidebar/ScalarSidebarGroupToggleSpacer.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Sidebar Group Toggle Spacer component\n *\n * Reserves room at the end of a discrete group label for the\n * ScalarSidebarGroupToggleButton, which is positioned on top of the label\n * and therefore takes up no space of its own.\n *\n * Render it in the label's aside slot so long labels wrap before they run\n * underneath the toggle button.\n *\n * @see ScalarSidebarGroupToggleButton\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div v-bind=\"cx('
|
|
1
|
+
{"version":3,"file":"ScalarSidebarGroupToggleSpacer.vue.js","names":[],"sources":["../../../src/components/ScalarSidebar/ScalarSidebarGroupToggleSpacer.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Sidebar Group Toggle Spacer component\n *\n * Reserves room at the end of a discrete group label for the\n * ScalarSidebarGroupToggleButton, which is positioned on top of the label\n * and therefore takes up no space of its own.\n *\n * Render it in the label's aside slot so long labels wrap before they run\n * underneath the toggle button.\n *\n * @see ScalarSidebarGroupToggleButton\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div v-bind=\"cx('h-4 w-5')\" />\n</template>\n"],"mappings":""}
|
|
@@ -6,7 +6,7 @@ var ScalarSidebarGroupToggleSpacer_vue_vue_type_script_setup_true_lang_default =
|
|
|
6
6
|
setup(__props) {
|
|
7
7
|
const { cx } = useBindCx();
|
|
8
8
|
return (_ctx, _cache) => {
|
|
9
|
-
return openBlock(), createElementBlock("div", normalizeProps(guardReactiveProps(unref(cx)("
|
|
9
|
+
return openBlock(), createElementBlock("div", normalizeProps(guardReactiveProps(unref(cx)("h-4 w-5"))), null, 16);
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
12
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarSidebarGroupToggleSpacer.vue.script.js","names":[],"sources":["../../../src/components/ScalarSidebar/ScalarSidebarGroupToggleSpacer.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Sidebar Group Toggle Spacer component\n *\n * Reserves room at the end of a discrete group label for the\n * ScalarSidebarGroupToggleButton, which is positioned on top of the label\n * and therefore takes up no space of its own.\n *\n * Render it in the label's aside slot so long labels wrap before they run\n * underneath the toggle button.\n *\n * @see ScalarSidebarGroupToggleButton\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div v-bind=\"cx('
|
|
1
|
+
{"version":3,"file":"ScalarSidebarGroupToggleSpacer.vue.script.js","names":[],"sources":["../../../src/components/ScalarSidebar/ScalarSidebarGroupToggleSpacer.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Sidebar Group Toggle Spacer component\n *\n * Reserves room at the end of a discrete group label for the\n * ScalarSidebarGroupToggleButton, which is positioned on top of the label\n * and therefore takes up no space of its own.\n *\n * Render it in the label's aside slot so long labels wrap before they run\n * underneath the toggle button.\n *\n * @see ScalarSidebarGroupToggleButton\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <div v-bind=\"cx('h-4 w-5')\" />\n</template>\n"],"mappings":";;;;;;EAmBA,MAAM,EAAE,OAAO,UAAU;;uBAGvB,mBAA8B,OAAA,eAAA,mBAAjB,MAAA,EAAA,CAAE,CAAA,SAAA,CAAA,CAAA,GAAA,MAAA,EAAA"}
|
|
@@ -25,10 +25,10 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
25
25
|
}, {
|
|
26
26
|
focus: () => void;
|
|
27
27
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
|
|
28
|
+
"update:query": (value: string) => any;
|
|
28
29
|
close: () => any;
|
|
29
30
|
next: () => any;
|
|
30
31
|
prev: () => any;
|
|
31
|
-
"update:query": (value: string) => any;
|
|
32
32
|
}, string, import("vue").PublicProps, Readonly<{
|
|
33
33
|
/** Current search query (v-model) */
|
|
34
34
|
query: string;
|
|
@@ -37,9 +37,9 @@ declare const __VLS_export: import("vue").DefineComponent<{
|
|
|
37
37
|
/** Zero-based index of the currently active match */
|
|
38
38
|
activeMatchIndex: number;
|
|
39
39
|
}> & Readonly<{
|
|
40
|
+
"onUpdate:query"?: ((value: string) => any) | undefined;
|
|
40
41
|
onClose?: (() => any) | undefined;
|
|
41
42
|
onNext?: (() => any) | undefined;
|
|
42
43
|
onPrev?: (() => any) | undefined;
|
|
43
|
-
"onUpdate:query"?: ((value: string) => any) | undefined;
|
|
44
44
|
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
45
45
|
//# sourceMappingURL=ScalarVirtualTextSearch.vue.d.ts.map
|
package/dist/index.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ export type { ScalarListboxOption } from './components/ScalarListbox/index.js';
|
|
|
25
25
|
export { ScalarListbox, ScalarListboxCheckbox, ScalarListboxInput, ScalarListboxItem } from './components/ScalarListbox/index.js';
|
|
26
26
|
export type { LoadingState } from './components/ScalarLoading/index.js';
|
|
27
27
|
export { ScalarLoading, useLoadingState } from './components/ScalarLoading/index.js';
|
|
28
|
-
export { ScalarMarkdown, ScalarMarkdownSummary } from './components/ScalarMarkdown/index.js';
|
|
28
|
+
export { MARKDOWN_RENDER_HOOKS, ScalarMarkdown, ScalarMarkdownSummary } from './components/ScalarMarkdown/index.js';
|
|
29
29
|
export type { ScalarMenuTeamOption, WorkspaceGroup } from './components/ScalarMenu/index.js';
|
|
30
30
|
export { ScalarMenu, ScalarMenuButton, ScalarMenuLink, ScalarMenuProduct, ScalarMenuProducts, ScalarMenuResources, ScalarMenuSection, ScalarMenuSupport, ScalarMenuTeamPicker, ScalarMenuTeamProfile, ScalarMenuWorkspacePicker, } from './components/ScalarMenu/index.js';
|
|
31
31
|
export type { ModalState } from './components/ScalarModal/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":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAE7E,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3G,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AAChG,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AACnF,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,oCAAoC,CAAA;AAC3C,YAAY,EACV,4BAA4B,EAC5B,oBAAoB,EACpB,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAC/G,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1F,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,+BAA+B,CAAA;AACtC,YAAY,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpF,OAAO,EACL,UAAU,EACV,eAAe,EACf,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAChG,YAAY,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC7E,YAAY,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AACxH,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAE7E,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3G,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AAChG,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AACnF,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,oCAAoC,CAAA;AAC3C,YAAY,EACV,4BAA4B,EAC5B,oBAAoB,EACpB,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAC/G,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1F,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,+BAA+B,CAAA;AACtC,YAAY,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpF,OAAO,EACL,UAAU,EACV,eAAe,EACf,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAChG,YAAY,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC7E,YAAY,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,YAAY,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AACrE,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AACxH,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AAC1G,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACnF,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,yBAAyB,CAAA;AAChC,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAChE,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AACjG,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,8BAA8B,EAC9B,8BAA8B,EAC9B,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,WAAW,GACZ,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AACnF,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACxF,YAAY,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AACrE,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,2BAA2B,CAAA;AAClC,YAAY,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAC9F,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAA;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,WAAW,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -59,6 +59,7 @@ import { useTooltip } from "./components/ScalarTooltip/useTooltip.js";
|
|
|
59
59
|
import ScalarHotkeyTooltip_default from "./components/ScalarTooltip/ScalarHotkeyTooltip.vue.js";
|
|
60
60
|
import ScalarTooltip_default from "./components/ScalarTooltip/ScalarTooltip.vue.js";
|
|
61
61
|
import ScalarIconButton_default from "./components/ScalarIconButton/ScalarIconButton.vue.js";
|
|
62
|
+
import { MARKDOWN_RENDER_HOOKS } from "./components/ScalarMarkdown/useMarkdownRenderHooks.js";
|
|
62
63
|
import ScalarMarkdown_default from "./components/ScalarMarkdown/ScalarMarkdown.vue.js";
|
|
63
64
|
import ScalarMarkdownSummary_default from "./components/ScalarMarkdown/ScalarMarkdownSummary.vue.js";
|
|
64
65
|
import ScalarMenuButton_default from "./components/ScalarMenu/ScalarMenuButton.vue.js";
|
|
@@ -110,4 +111,4 @@ import ScalarVirtualCodeBlock_default from "./components/ScalarVirtualCodeBlock/
|
|
|
110
111
|
import ScalarWrappingText_default from "./components/ScalarWrappingText/ScalarWrappingText.vue.js";
|
|
111
112
|
import { addScalarClassesToHeadless } from "./helpers/add-scalar-classes.js";
|
|
112
113
|
import { compose, cva, cx, tw, useBindCx } from "@scalar/use-hooks/useBindCx";
|
|
113
|
-
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, ScalarHeaderColumn_default as ScalarHeaderColumn, 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, ScalarSidebarGroupToggleButton_default as ScalarSidebarGroupToggleButton, ScalarSidebarGroupToggleSpacer_default as ScalarSidebarGroupToggleSpacer, 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, ScalarTristateToggle_default as ScalarTristateToggle, ScalarTristateToggleGroup_default as ScalarTristateToggleGroup, ScalarTristateToggleInput_default as ScalarTristateToggleInput, 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 };
|
|
114
|
+
export { MARKDOWN_RENDER_HOOKS, 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, ScalarHeaderColumn_default as ScalarHeaderColumn, 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, ScalarSidebarGroupToggleButton_default as ScalarSidebarGroupToggleButton, ScalarSidebarGroupToggleSpacer_default as ScalarSidebarGroupToggleSpacer, 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, ScalarTristateToggle_default as ScalarTristateToggle, ScalarTristateToggleGroup_default as ScalarTristateToggleGroup, ScalarTristateToggleInput_default as ScalarTristateToggleInput, 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
|
@@ -91,12 +91,12 @@
|
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
@layer scalar-base {
|
|
94
|
-
body {
|
|
94
|
+
body.scalar-app {
|
|
95
95
|
line-height: inherit;
|
|
96
96
|
margin: 0;
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
-
:root {
|
|
99
|
+
:root, :host {
|
|
100
100
|
--scalar-border-width: .5px;
|
|
101
101
|
--scalar-radius: 3px;
|
|
102
102
|
--scalar-radius-max: 20px;
|
|
@@ -180,7 +180,7 @@
|
|
|
180
180
|
}
|
|
181
181
|
|
|
182
182
|
@media (max-width: 460px) {
|
|
183
|
-
:root {
|
|
183
|
+
:root, :host {
|
|
184
184
|
--scalar-font-size-1: 22px;
|
|
185
185
|
--scalar-font-size-2: 14px;
|
|
186
186
|
--scalar-font-size-3: 12px;
|
|
@@ -188,7 +188,7 @@
|
|
|
188
188
|
}
|
|
189
189
|
|
|
190
190
|
@media (max-width: 720px) {
|
|
191
|
-
:root {
|
|
191
|
+
:root, :host {
|
|
192
192
|
--scalar-heading-1: 24px;
|
|
193
193
|
--scalar-page-description: 20px;
|
|
194
194
|
}
|
|
@@ -196,13 +196,13 @@
|
|
|
196
196
|
|
|
197
197
|
@media (max-resolution: 1.5x) {
|
|
198
198
|
@supports ((-moz-appearance: none)) {
|
|
199
|
-
:root {
|
|
199
|
+
:root, :host {
|
|
200
200
|
--scalar-border-width: 1px;
|
|
201
201
|
}
|
|
202
202
|
}
|
|
203
203
|
}
|
|
204
204
|
|
|
205
|
-
:root {
|
|
205
|
+
:root, :host {
|
|
206
206
|
--scalar-text-decoration: underline;
|
|
207
207
|
--scalar-text-decoration-hover: underline;
|
|
208
208
|
}
|
|
@@ -763,8 +763,8 @@
|
|
|
763
763
|
right: 4px;
|
|
764
764
|
}
|
|
765
765
|
|
|
766
|
-
.scalar-app .right-1\.
|
|
767
|
-
right:
|
|
766
|
+
.scalar-app .right-1\.75 {
|
|
767
|
+
right: 7px;
|
|
768
768
|
}
|
|
769
769
|
|
|
770
770
|
.scalar-app .right-2 {
|
|
@@ -1190,6 +1190,10 @@
|
|
|
1190
1190
|
height: 14px;
|
|
1191
1191
|
}
|
|
1192
1192
|
|
|
1193
|
+
.scalar-app .h-4 {
|
|
1194
|
+
height: 16px;
|
|
1195
|
+
}
|
|
1196
|
+
|
|
1193
1197
|
.scalar-app .h-5 {
|
|
1194
1198
|
height: 20px;
|
|
1195
1199
|
}
|
|
@@ -1294,10 +1298,18 @@
|
|
|
1294
1298
|
width: var(--scalar-sidebar-width);
|
|
1295
1299
|
}
|
|
1296
1300
|
|
|
1301
|
+
.scalar-app .w-2\/3 {
|
|
1302
|
+
width: 66.6667%;
|
|
1303
|
+
}
|
|
1304
|
+
|
|
1297
1305
|
.scalar-app .w-3 {
|
|
1298
1306
|
width: 12px;
|
|
1299
1307
|
}
|
|
1300
1308
|
|
|
1309
|
+
.scalar-app .w-5 {
|
|
1310
|
+
width: 20px;
|
|
1311
|
+
}
|
|
1312
|
+
|
|
1301
1313
|
.scalar-app .w-6 {
|
|
1302
1314
|
width: 24px;
|
|
1303
1315
|
}
|
|
@@ -1446,6 +1458,10 @@
|
|
|
1446
1458
|
flex: 1;
|
|
1447
1459
|
}
|
|
1448
1460
|
|
|
1461
|
+
.scalar-app .flex-auto {
|
|
1462
|
+
flex: auto;
|
|
1463
|
+
}
|
|
1464
|
+
|
|
1449
1465
|
.scalar-app .flex-shrink, .scalar-app .shrink {
|
|
1450
1466
|
flex-shrink: 1;
|
|
1451
1467
|
}
|
|
@@ -1680,6 +1696,10 @@
|
|
|
1680
1696
|
column-gap: 16px;
|
|
1681
1697
|
}
|
|
1682
1698
|
|
|
1699
|
+
.scalar-app .gap-y-1 {
|
|
1700
|
+
row-gap: 4px;
|
|
1701
|
+
}
|
|
1702
|
+
|
|
1683
1703
|
.scalar-app .gap-y-8 {
|
|
1684
1704
|
row-gap: 32px;
|
|
1685
1705
|
}
|
|
@@ -2205,6 +2225,10 @@
|
|
|
2205
2225
|
padding-right: 24px;
|
|
2206
2226
|
}
|
|
2207
2227
|
|
|
2228
|
+
.scalar-app .pr-7\.25 {
|
|
2229
|
+
padding-right: 29px;
|
|
2230
|
+
}
|
|
2231
|
+
|
|
2208
2232
|
.scalar-app .pr-\[100\%\] {
|
|
2209
2233
|
padding-right: 100%;
|
|
2210
2234
|
}
|
|
@@ -4505,7 +4529,8 @@ ol > li::marker,
|
|
|
4505
4529
|
}
|
|
4506
4530
|
|
|
4507
4531
|
/* Hide elements that don't make sense in the summary */
|
|
4508
|
-
|
|
4532
|
+
[data-markdown-block],
|
|
4533
|
+
img,
|
|
4509
4534
|
svg,
|
|
4510
4535
|
hr,
|
|
4511
4536
|
pre {
|