@scalar/components 0.31.1 → 0.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/components/ScalarCombobox/ScalarCombobox.vue.d.ts +15 -1
  2. package/dist/components/ScalarCombobox/ScalarCombobox.vue.d.ts.map +1 -1
  3. package/dist/components/ScalarCombobox/ScalarCombobox.vue.js.map +1 -1
  4. package/dist/components/ScalarCombobox/ScalarCombobox.vue.script.js +20 -5
  5. package/dist/components/ScalarCombobox/ScalarCombobox.vue.script.js.map +1 -1
  6. package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.d.ts +15 -1
  7. package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.d.ts.map +1 -1
  8. package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.js.map +1 -1
  9. package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.script.js +22 -7
  10. package/dist/components/ScalarCombobox/ScalarComboboxMultiselect.vue.script.js.map +1 -1
  11. package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.d.ts +16 -1
  12. package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.d.ts.map +1 -1
  13. package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.js.map +1 -1
  14. package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.script.js +111 -45
  15. package/dist/components/ScalarCombobox/ScalarComboboxOptions.vue.script.js.map +1 -1
  16. package/dist/components/ScalarCombobox/types.d.ts +5 -0
  17. package/dist/components/ScalarCombobox/types.d.ts.map +1 -1
  18. package/dist/components/ScalarCombobox/types.js.map +1 -1
  19. package/dist/components/ScalarMarkdown/ScalarMarkdown.vue.d.ts.map +1 -1
  20. package/dist/components/ScalarMarkdown/ScalarMarkdown.vue.js.map +1 -1
  21. package/dist/components/ScalarMarkdown/ScalarMarkdown.vue.script.js +4 -1
  22. package/dist/components/ScalarMarkdown/ScalarMarkdown.vue.script.js.map +1 -1
  23. package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.d.ts.map +1 -1
  24. package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.js.map +1 -1
  25. package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.script.js +6 -2
  26. package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.script.js.map +1 -1
  27. package/dist/components/ScalarMarkdown/index.d.ts +1 -0
  28. package/dist/components/ScalarMarkdown/index.d.ts.map +1 -1
  29. package/dist/components/ScalarMarkdown/index.js +2 -1
  30. package/dist/components/ScalarMarkdown/useMarkdownRenderHooks.d.ts +7 -0
  31. package/dist/components/ScalarMarkdown/useMarkdownRenderHooks.d.ts.map +1 -0
  32. package/dist/components/ScalarMarkdown/useMarkdownRenderHooks.js +46 -0
  33. package/dist/components/ScalarMarkdown/useMarkdownRenderHooks.js.map +1 -0
  34. package/dist/components/ScalarSidebar/ScalarSidebarGroupToggleButton.vue.js.map +1 -1
  35. package/dist/components/ScalarSidebar/ScalarSidebarGroupToggleButton.vue.script.js +1 -1
  36. package/dist/components/ScalarSidebar/ScalarSidebarGroupToggleButton.vue.script.js.map +1 -1
  37. package/dist/components/ScalarSidebar/ScalarSidebarGroupToggleSpacer.vue.js.map +1 -1
  38. package/dist/components/ScalarSidebar/ScalarSidebarGroupToggleSpacer.vue.script.js +1 -1
  39. package/dist/components/ScalarSidebar/ScalarSidebarGroupToggleSpacer.vue.script.js.map +1 -1
  40. package/dist/components/ScalarVirtualText/ScalarVirtualTextSearch.vue.d.ts +2 -2
  41. package/dist/index.d.ts +1 -1
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +2 -1
  44. package/dist/style.css +26 -9
  45. package/dist/vue-styles.css +2 -1
  46. package/package.json +6 -6
@@ -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 || 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 img,\n svg,\n hr,\n pre {\n display: none;\n }\n }\n}\n</style>\n"],"mappings":""}
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 || 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 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;;EAG3D,SAAS,kBAAkB;GACzB,MAAM,KAAK,SAAS,OAAO;GAC3B,IAAI,CAAC,IACH;GAEF,UAAU,QACR,GAAG,eAAe,GAAG,gBAAgB,GAAG,cAAc,GAAG;EAC7D;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
+ {"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,3 +1,4 @@
1
1
  export { default as ScalarMarkdown } from './ScalarMarkdown.vue.js';
2
2
  export { default as ScalarMarkdownSummary } from './ScalarMarkdownSummary.vue.js';
3
+ export { MARKDOWN_RENDER_HOOKS } from './useMarkdownRenderHooks.js';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -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.25 -translate-y-1/2',\n // Sizing and color\n 'rounded p-0.75 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":""}
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.25 -translate-y-1/2", "rounded p-0.75 text-sidebar-c-2"],
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.25 -translate-y-1/2',\n // Sizing and color\n 'rounded p-0.75 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,kDAEA,iCACF;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
+ {"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('size-4')\" />\n</template>\n"],"mappings":""}
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)("size-4"))), null, 16);
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('size-4')\" />\n</template>\n"],"mappings":";;;;;;EAmBA,MAAM,EAAE,OAAO,UAAU;;uBAGvB,mBAA6B,OAAA,eAAA,mBAAhB,MAAA,EAAA,CAAE,CAAA,QAAA,CAAA,CAAA,GAAA,MAAA,EAAA"}
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';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -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\.25 {
767
- right: 5px;
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
  }
@@ -2205,6 +2217,10 @@
2205
2217
  padding-right: 24px;
2206
2218
  }
2207
2219
 
2220
+ .scalar-app .pr-7\.25 {
2221
+ padding-right: 29px;
2222
+ }
2223
+
2208
2224
  .scalar-app .pr-\[100\%\] {
2209
2225
  padding-right: 100%;
2210
2226
  }
@@ -4505,7 +4521,8 @@ ol > li::marker,
4505
4521
  }
4506
4522
 
4507
4523
  /* Hide elements that don't make sense in the summary */
4508
- img,
4524
+ [data-markdown-block],
4525
+ img,
4509
4526
  svg,
4510
4527
  hr,
4511
4528
  pre {
@@ -996,7 +996,8 @@ ol > li::marker,
996
996
  }
997
997
 
998
998
  /* Hide elements that don't make sense in the summary */
999
- img,
999
+ [data-markdown-block],
1000
+ img,
1000
1001
  svg,
1001
1002
  hr,
1002
1003
  pre {
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "url": "git+https://github.com/scalar/scalar.git",
11
11
  "directory": "packages/components"
12
12
  },
13
- "version": "0.31.1",
13
+ "version": "0.32.0",
14
14
  "engines": {
15
15
  "node": ">=22"
16
16
  },
@@ -216,11 +216,11 @@
216
216
  "@floating-ui/vue": "1.1.9",
217
217
  "@headlessui/tailwindcss": "^0.2.2",
218
218
  "@headlessui/vue": "1.7.23",
219
- "@scalar/code-highlight": "0.4.9",
220
- "@scalar/helpers": "0.16.3",
221
- "@scalar/icons": "0.7.6",
222
- "@scalar/themes": "0.19.1",
223
- "@scalar/use-hooks": "0.4.20",
219
+ "@scalar/code-highlight": "0.4.10",
220
+ "@scalar/helpers": "0.16.4",
221
+ "@scalar/icons": "0.7.7",
222
+ "@scalar/themes": "0.19.2",
223
+ "@scalar/use-hooks": "0.4.21",
224
224
  "@vueuse/core": "13.9.0",
225
225
  "cva": "1.0.0-beta.4",
226
226
  "radix-vue": "^1.9.17",