@scalar/components 0.21.2 → 0.21.4
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/ScalarButton/ScalarButton.vue.js.map +1 -1
- package/dist/components/ScalarButton/ScalarButton.vue.script.js +1 -1
- package/dist/components/ScalarButton/ScalarButton.vue.script.js.map +1 -1
- package/dist/components/ScalarButton/constants.d.ts +1 -1
- package/dist/components/ScalarButton/constants.js +1 -1
- package/dist/components/ScalarButton/constants.js.map +1 -1
- package/dist/components/ScalarCard/ScalarCard.vue.d.ts.map +1 -1
- package/dist/components/ScalarCard/ScalarCard.vue.js.map +1 -1
- package/dist/components/ScalarCard/ScalarCard.vue.script.js +1 -1
- package/dist/components/ScalarCard/ScalarCard.vue.script.js.map +1 -1
- package/dist/components/ScalarCard/ScalarCardSection.vue.d.ts.map +1 -1
- package/dist/components/ScalarCard/ScalarCardSection.vue.js.map +1 -1
- package/dist/components/ScalarCard/ScalarCardSection.vue.script.js +1 -1
- package/dist/components/ScalarCard/ScalarCardSection.vue.script.js.map +1 -1
- package/dist/components/ScalarFileUpload/ScalarFileUploadFileList.vue.js.map +1 -1
- package/dist/components/ScalarFileUpload/ScalarFileUploadFileList.vue.script.js +2 -2
- package/dist/components/ScalarFileUpload/ScalarFileUploadFileList.vue.script.js.map +1 -1
- package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.d.ts +6 -0
- 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 +12 -7
- package/dist/components/ScalarMarkdown/ScalarMarkdownSummary.vue.script.js.map +1 -1
- package/dist/components/ScalarSavePrompt/ScalarSavePrompt.vue.d.ts +38 -0
- package/dist/components/ScalarSavePrompt/ScalarSavePrompt.vue.d.ts.map +1 -0
- package/dist/components/ScalarSavePrompt/ScalarSavePrompt.vue.js +7 -0
- package/dist/components/ScalarSavePrompt/ScalarSavePrompt.vue.js.map +1 -0
- package/dist/components/ScalarSavePrompt/ScalarSavePrompt.vue.script.js +66 -0
- package/dist/components/ScalarSavePrompt/ScalarSavePrompt.vue.script.js.map +1 -0
- package/dist/components/ScalarSavePrompt/index.d.ts +2 -0
- package/dist/components/ScalarSavePrompt/index.d.ts.map +1 -0
- package/dist/components/ScalarSidebar/ScalarSidebarItems.vue.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarItems.vue.script.js +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarItems.vue.script.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarNestedItems.vue.d.ts.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarNestedItems.vue.js +1 -0
- package/dist/components/ScalarSidebar/ScalarSidebarNestedItems.vue.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarNestedItems.vue.script.js +11 -14
- package/dist/components/ScalarSidebar/ScalarSidebarNestedItems.vue.script.js.map +1 -1
- package/dist/components/ScalarSidebar/ScalarSidebarPlayground.vue.d.ts +20 -0
- package/dist/components/ScalarSidebar/ScalarSidebarPlayground.vue.d.ts.map +1 -1
- package/dist/components/ScalarWrappingText/ScalarWrappingText.vue.d.ts.map +1 -1
- package/dist/components/ScalarWrappingText/ScalarWrappingText.vue.js.map +1 -1
- package/dist/components/ScalarWrappingText/ScalarWrappingText.vue.script.js +4 -2
- package/dist/components/ScalarWrappingText/ScalarWrappingText.vue.script.js.map +1 -1
- package/dist/index.d.ts +47 -36
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -6
- package/dist/style.css +117 -7
- package/package.json +12 -10
- package/dist/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarSidebarNestedItems.vue.js","names":[],"sources":["../../../src/components/ScalarSidebar/ScalarSidebarNestedItems.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Sidebar Nested Items component\n *\n * A provides list of items thats presented over the parent list\n * Needs to be nested inside a ScalarSidebarItems component\n *\n * @example\n * <ScalarSidebarNestedItems v-model=\"open\">\n * <!-- Item text -->\n * <template #items>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * </template>\n * </ScalarSidebarNestedItems>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconArrowRight, ScalarIconCaretLeft } from '@scalar/icons'\nimport { nextTick, ref, useTemplateRef } from 'vue'\n\nimport ScalarSidebarButton from './ScalarSidebarButton.vue'\nimport ScalarSidebarItems from './ScalarSidebarItems.vue'\nimport ScalarSidebarSpacer from './ScalarSidebarSpacer.vue'\nimport { findScrollContainer } from './findScrollContainer'\nimport type { ScalarSidebarGroupProps } from './types'\nimport { useSidebarGroups } from './useSidebarGroups'\nimport { useSidebarNestedItem } from './useSidebarNestedItems'\n\nconst { controlled } = defineProps<ScalarSidebarGroupProps>()\n\nconst emit = defineEmits<{\n /** Emitted when the nested item button is clicked */\n (e: 'click', event: MouseEvent): void\n /** Emitted when the back button is clicked */\n (e: 'back', event: MouseEvent): void\n}>()\n\nconst open = defineModel<boolean>('open', { default: false })\nuseSidebarNestedItem(open)\n\ndefineSlots<{\n /** The text content of the button */\n 'default'?: () => unknown\n /** Override the entire button */\n 'button'?: () => unknown\n /** Override the icon */\n 'icon'?: () => unknown\n /** Override the aside slot */\n 'aside'?: () => unknown\n /** Override the back button */\n 'back'?: () => unknown\n /** Override the back button label */\n 'back-label'?: () => unknown\n /** The list of sidebar subitems */\n 'items'?: () => unknown\n}>()\n\nconst { level } = useSidebarGroups({ reset: true })\n\n/** The root element ref */\nconst el = useTemplateRef('el')\n\n/** How far down to offset the nested items by when animating them in */\nconst offset = ref(0)\n\n// Transition hooks\n\nfunction onOpen() {\n // Calculate how far down the nearest scroll container is scrolled\n // We offset the nested items by this amount when animating them\n // in so they appear in line with the parent items list.\n offset.value = findScrollContainer(el.value).scrollTop ?? 0\n\n // Focus the first button in the nested items\n nextTick(() =>\n el.value\n ?.querySelector<HTMLButtonElement>('button:not([aria-expanded=\"true\"])')\n ?.focus({ preventScroll: true }),\n )\n}\nfunction onOpened() {\n /** Reset the scroll position of the scroll container after opening */\n findScrollContainer(el.value).scrollTop = 0\n}\nfunction onClose() {\n nextTick(() => {\n el.value?.querySelector('button')?.focus({ preventScroll: true })\n findScrollContainer(el.value).scrollTop = offset.value\n })\n}\n\ndefineOptions({ inheritAttrs: false })\n\n/** Handle the click event for the nested items button */\nconst handleClick = (event: MouseEvent) => {\n // Bubble up the click event\n emit('click', event)\n if (!controlled) {\n // Only toggle the open state if the group is uncontrolled\n open.value = true\n }\n}\n\n/** Handle the back button click event */\nconst handleBack = (event: MouseEvent) => {\n // Bubble up the back event\n emit('back', event)\n if (!controlled) {\n // Only toggle the open state if the group is uncontrolled\n open.value = false\n }\n}\n</script>\n<template>\n <li\n ref=\"el\"\n class=\"group/item group/nested-items contents\"\n :class=\"{ 'group/nested-items-open': open }\"\n :style=\"{ '--nested-items-offset': `${offset}px` }\">\n <slot name=\"button\">\n <ScalarSidebarButton\n is=\"button\"\n :aria-expanded=\"open\"\n :disabled\n :icon\n :indent=\"level\"\n :selected\n v-bind=\"$attrs\"\n @click=\"handleClick\">\n <template\n v-if=\"$slots.icon\"\n #icon>\n <slot name=\"icon\" />\n </template>\n <slot />\n <template #aside>\n <slot name=\"aside\">\n <ScalarIconArrowRight class=\"size-4 text-sidebar-c-2\" />\n </slot>\n </template>\n </ScalarSidebarButton>\n </slot>\n <!-- Make sure the div is around for the entire transition -->\n <Transition\n :duration=\"300\"\n enterActiveClass=\"top-(--nested-items-offset)!\"\n leaveActiveClass=\"top-(--nested-items-offset)!\"\n @afterEnter=\"onOpened\"\n @enter=\"onOpen\"\n @leave=\"onClose\">\n <div\n v-if=\"open\"\n class=\"absolute inset-0 translate-x-full\">\n <ScalarSidebarItems v-bind=\"$attrs\">\n <slot name=\"back\">\n
|
|
1
|
+
{"version":3,"file":"ScalarSidebarNestedItems.vue.js","names":[],"sources":["../../../src/components/ScalarSidebar/ScalarSidebarNestedItems.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Sidebar Nested Items component\n *\n * A provides list of items thats presented over the parent list\n * Needs to be nested inside a ScalarSidebarItems component\n *\n * @example\n * <ScalarSidebarNestedItems v-model=\"open\">\n * <!-- Item text -->\n * <template #items>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * </template>\n * </ScalarSidebarNestedItems>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconArrowRight, ScalarIconCaretLeft } from '@scalar/icons'\nimport { nextTick, ref, useTemplateRef } from 'vue'\n\nimport ScalarSidebarButton from './ScalarSidebarButton.vue'\nimport ScalarSidebarItems from './ScalarSidebarItems.vue'\nimport ScalarSidebarSpacer from './ScalarSidebarSpacer.vue'\nimport { findScrollContainer } from './findScrollContainer'\nimport type { ScalarSidebarGroupProps } from './types'\nimport { useSidebarGroups } from './useSidebarGroups'\nimport { useSidebarNestedItem } from './useSidebarNestedItems'\n\nconst { controlled } = defineProps<ScalarSidebarGroupProps>()\n\nconst emit = defineEmits<{\n /** Emitted when the nested item button is clicked */\n (e: 'click', event: MouseEvent): void\n /** Emitted when the back button is clicked */\n (e: 'back', event: MouseEvent): void\n}>()\n\nconst open = defineModel<boolean>('open', { default: false })\nuseSidebarNestedItem(open)\n\ndefineSlots<{\n /** The text content of the button */\n 'default'?: () => unknown\n /** Override the entire button */\n 'button'?: () => unknown\n /** Override the icon */\n 'icon'?: () => unknown\n /** Override the aside slot */\n 'aside'?: () => unknown\n /** Override the back button */\n 'back'?: () => unknown\n /** Override the back button label */\n 'back-label'?: () => unknown\n /** The list of sidebar subitems */\n 'items'?: () => unknown\n}>()\n\nconst { level } = useSidebarGroups({ reset: true })\n\n/** The root element ref */\nconst el = useTemplateRef('el')\n\n/** How far down to offset the nested items by when animating them in */\nconst offset = ref(0)\n\n// Transition hooks\n\nfunction onOpen() {\n // Calculate how far down the nearest scroll container is scrolled\n // We offset the nested items by this amount when animating them\n // in so they appear in line with the parent items list.\n offset.value = findScrollContainer(el.value).scrollTop ?? 0\n\n // Focus the first button in the nested items\n nextTick(() =>\n el.value\n ?.querySelector<HTMLButtonElement>('button:not([aria-expanded=\"true\"])')\n ?.focus({ preventScroll: true }),\n )\n}\nfunction onOpened() {\n /** Reset the scroll position of the scroll container after opening */\n findScrollContainer(el.value).scrollTop = 0\n}\nfunction onClose() {\n nextTick(() => {\n el.value?.querySelector('button')?.focus({ preventScroll: true })\n findScrollContainer(el.value).scrollTop = offset.value\n })\n}\n\ndefineOptions({ inheritAttrs: false })\n\n/** Handle the click event for the nested items button */\nconst handleClick = (event: MouseEvent) => {\n // Bubble up the click event\n emit('click', event)\n if (!controlled) {\n // Only toggle the open state if the group is uncontrolled\n open.value = true\n }\n}\n\n/** Handle the back button click event */\nconst handleBack = (event: MouseEvent) => {\n // Bubble up the back event\n emit('back', event)\n if (!controlled) {\n // Only toggle the open state if the group is uncontrolled\n open.value = false\n }\n}\n</script>\n<template>\n <li\n ref=\"el\"\n class=\"group/item group/nested-items contents\"\n :class=\"{ 'group/nested-items-open': open }\"\n :style=\"{ '--nested-items-offset': `${offset}px` }\">\n <slot name=\"button\">\n <ScalarSidebarButton\n is=\"button\"\n :aria-expanded=\"open\"\n :disabled\n :icon\n :indent=\"level\"\n :selected\n v-bind=\"$attrs\"\n @click=\"handleClick\">\n <template\n v-if=\"$slots.icon\"\n #icon>\n <slot name=\"icon\" />\n </template>\n <slot />\n <template #aside>\n <slot name=\"aside\">\n <ScalarIconArrowRight class=\"size-4 text-sidebar-c-2\" />\n </slot>\n </template>\n </ScalarSidebarButton>\n </slot>\n <!-- Make sure the div is around for the entire transition -->\n <Transition\n :duration=\"300\"\n enterActiveClass=\"top-(--nested-items-offset)!\"\n leaveActiveClass=\"top-(--nested-items-offset)!\"\n @afterEnter=\"onOpened\"\n @enter=\"onOpen\"\n @leave=\"onClose\">\n <div\n v-if=\"open\"\n class=\"absolute inset-0 translate-x-full\">\n <ScalarSidebarItems v-bind=\"$attrs\">\n <div\n class=\"flex flex-col gap-px sticky top-(--scalar-sidebar-sticky-offset,0) p-(--scalar-sidebar-padding) -m-(--scalar-sidebar-padding) mb-0 pb-0 bg-sidebar-b-1 z-1 animate-sidebar-border-bottom border-b-sidebar-border\">\n <slot name=\"back\">\n <ScalarSidebarButton\n is=\"button\"\n class=\"text-sidebar-c-1 font-sidebar-active hover:text-sidebar-c-1\"\n @click=\"handleBack\">\n <template #icon>\n <ScalarIconCaretLeft class=\"size-4 -m-px text-sidebar-c-2\" />\n </template>\n <slot name=\"back-label\">Back</slot>\n </ScalarSidebarButton>\n </slot>\n <ScalarSidebarSpacer class=\"h-3\" />\n </div>\n <slot name=\"items\" />\n </ScalarSidebarItems>\n </div>\n </Transition>\n </li>\n</template>\n\n<style>\n@reference \"../../style.css\";\n\n.animate-sidebar-border-bottom {\n animation: border-bottom forwards;\n animation-timeline: scroll();\n animation-range-end: 1px;\n}\n\n@keyframes border-bottom {\n from {\n border-bottom-width: 0;\n }\n to {\n border-bottom-width: var(--scalar-border-width);\n }\n}\n</style>\n"],"mappings":""}
|
|
@@ -4,13 +4,14 @@ import { useSidebarNestedItem } from "./useSidebarNestedItems.js";
|
|
|
4
4
|
import ScalarSidebarItems_default from "./ScalarSidebarItems.vue.js";
|
|
5
5
|
import ScalarSidebarSpacer_default from "./ScalarSidebarSpacer.vue.js";
|
|
6
6
|
import { findScrollContainer } from "./findScrollContainer.js";
|
|
7
|
-
import { Transition, createCommentVNode, createElementBlock, createSlots, createTextVNode, createVNode, defineComponent, guardReactiveProps, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, openBlock, ref, renderSlot, unref, useModel, useTemplateRef, withCtx } from "vue";
|
|
7
|
+
import { Transition, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, guardReactiveProps, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, openBlock, ref, renderSlot, unref, useModel, useTemplateRef, withCtx } from "vue";
|
|
8
8
|
import { ScalarIconArrowRight, ScalarIconCaretLeft } from "@scalar/icons";
|
|
9
9
|
//#region src/components/ScalarSidebar/ScalarSidebarNestedItems.vue?vue&type=script&setup=true&lang.ts
|
|
10
10
|
var _hoisted_1 = {
|
|
11
11
|
key: 0,
|
|
12
12
|
class: "absolute inset-0 translate-x-full"
|
|
13
13
|
};
|
|
14
|
+
var _hoisted_2 = { class: "flex flex-col gap-px sticky top-(--scalar-sidebar-sticky-offset,0) p-(--scalar-sidebar-padding) -m-(--scalar-sidebar-padding) mb-0 pb-0 bg-sidebar-b-1 z-1 animate-sidebar-border-bottom border-b-sidebar-border" };
|
|
14
15
|
var ScalarSidebarNestedItems_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
15
16
|
inheritAttrs: false,
|
|
16
17
|
__name: "ScalarSidebarNestedItems",
|
|
@@ -100,19 +101,15 @@ var ScalarSidebarNestedItems_vue_vue_type_script_setup_true_lang_default = /* @_
|
|
|
100
101
|
onLeave: onClose
|
|
101
102
|
}, {
|
|
102
103
|
default: withCtx(() => [open.value ? (openBlock(), createElementBlock("div", _hoisted_1, [createVNode(ScalarSidebarItems_default, normalizeProps(guardReactiveProps(_ctx.$attrs)), {
|
|
103
|
-
default: withCtx(() => [
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
})]),
|
|
113
|
-
createVNode(ScalarSidebarSpacer_default, { class: "h-3" }),
|
|
114
|
-
renderSlot(_ctx.$slots, "items")
|
|
115
|
-
]),
|
|
104
|
+
default: withCtx(() => [createElementVNode("div", _hoisted_2, [renderSlot(_ctx.$slots, "back", {}, () => [createVNode(ScalarSidebarButton_default, {
|
|
105
|
+
is: "button",
|
|
106
|
+
class: "text-sidebar-c-1 font-sidebar-active hover:text-sidebar-c-1",
|
|
107
|
+
onClick: handleBack
|
|
108
|
+
}, {
|
|
109
|
+
icon: withCtx(() => [createVNode(unref(ScalarIconCaretLeft), { class: "size-4 -m-px text-sidebar-c-2" })]),
|
|
110
|
+
default: withCtx(() => [renderSlot(_ctx.$slots, "back-label", {}, () => [_cache[0] || (_cache[0] = createTextVNode("Back", -1))])]),
|
|
111
|
+
_: 3
|
|
112
|
+
})]), createVNode(ScalarSidebarSpacer_default, { class: "h-3" })]), renderSlot(_ctx.$slots, "items")]),
|
|
116
113
|
_: 3
|
|
117
114
|
}, 16)])) : createCommentVNode("", true)]),
|
|
118
115
|
_: 3
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarSidebarNestedItems.vue.script.js","names":["$attrs","$slots"],"sources":["../../../src/components/ScalarSidebar/ScalarSidebarNestedItems.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Sidebar Nested Items component\n *\n * A provides list of items thats presented over the parent list\n * Needs to be nested inside a ScalarSidebarItems component\n *\n * @example\n * <ScalarSidebarNestedItems v-model=\"open\">\n * <!-- Item text -->\n * <template #items>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * </template>\n * </ScalarSidebarNestedItems>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconArrowRight, ScalarIconCaretLeft } from '@scalar/icons'\nimport { nextTick, ref, useTemplateRef } from 'vue'\n\nimport ScalarSidebarButton from './ScalarSidebarButton.vue'\nimport ScalarSidebarItems from './ScalarSidebarItems.vue'\nimport ScalarSidebarSpacer from './ScalarSidebarSpacer.vue'\nimport { findScrollContainer } from './findScrollContainer'\nimport type { ScalarSidebarGroupProps } from './types'\nimport { useSidebarGroups } from './useSidebarGroups'\nimport { useSidebarNestedItem } from './useSidebarNestedItems'\n\nconst { controlled } = defineProps<ScalarSidebarGroupProps>()\n\nconst emit = defineEmits<{\n /** Emitted when the nested item button is clicked */\n (e: 'click', event: MouseEvent): void\n /** Emitted when the back button is clicked */\n (e: 'back', event: MouseEvent): void\n}>()\n\nconst open = defineModel<boolean>('open', { default: false })\nuseSidebarNestedItem(open)\n\ndefineSlots<{\n /** The text content of the button */\n 'default'?: () => unknown\n /** Override the entire button */\n 'button'?: () => unknown\n /** Override the icon */\n 'icon'?: () => unknown\n /** Override the aside slot */\n 'aside'?: () => unknown\n /** Override the back button */\n 'back'?: () => unknown\n /** Override the back button label */\n 'back-label'?: () => unknown\n /** The list of sidebar subitems */\n 'items'?: () => unknown\n}>()\n\nconst { level } = useSidebarGroups({ reset: true })\n\n/** The root element ref */\nconst el = useTemplateRef('el')\n\n/** How far down to offset the nested items by when animating them in */\nconst offset = ref(0)\n\n// Transition hooks\n\nfunction onOpen() {\n // Calculate how far down the nearest scroll container is scrolled\n // We offset the nested items by this amount when animating them\n // in so they appear in line with the parent items list.\n offset.value = findScrollContainer(el.value).scrollTop ?? 0\n\n // Focus the first button in the nested items\n nextTick(() =>\n el.value\n ?.querySelector<HTMLButtonElement>('button:not([aria-expanded=\"true\"])')\n ?.focus({ preventScroll: true }),\n )\n}\nfunction onOpened() {\n /** Reset the scroll position of the scroll container after opening */\n findScrollContainer(el.value).scrollTop = 0\n}\nfunction onClose() {\n nextTick(() => {\n el.value?.querySelector('button')?.focus({ preventScroll: true })\n findScrollContainer(el.value).scrollTop = offset.value\n })\n}\n\ndefineOptions({ inheritAttrs: false })\n\n/** Handle the click event for the nested items button */\nconst handleClick = (event: MouseEvent) => {\n // Bubble up the click event\n emit('click', event)\n if (!controlled) {\n // Only toggle the open state if the group is uncontrolled\n open.value = true\n }\n}\n\n/** Handle the back button click event */\nconst handleBack = (event: MouseEvent) => {\n // Bubble up the back event\n emit('back', event)\n if (!controlled) {\n // Only toggle the open state if the group is uncontrolled\n open.value = false\n }\n}\n</script>\n<template>\n <li\n ref=\"el\"\n class=\"group/item group/nested-items contents\"\n :class=\"{ 'group/nested-items-open': open }\"\n :style=\"{ '--nested-items-offset': `${offset}px` }\">\n <slot name=\"button\">\n <ScalarSidebarButton\n is=\"button\"\n :aria-expanded=\"open\"\n :disabled\n :icon\n :indent=\"level\"\n :selected\n v-bind=\"$attrs\"\n @click=\"handleClick\">\n <template\n v-if=\"$slots.icon\"\n #icon>\n <slot name=\"icon\" />\n </template>\n <slot />\n <template #aside>\n <slot name=\"aside\">\n <ScalarIconArrowRight class=\"size-4 text-sidebar-c-2\" />\n </slot>\n </template>\n </ScalarSidebarButton>\n </slot>\n <!-- Make sure the div is around for the entire transition -->\n <Transition\n :duration=\"300\"\n enterActiveClass=\"top-(--nested-items-offset)!\"\n leaveActiveClass=\"top-(--nested-items-offset)!\"\n @afterEnter=\"onOpened\"\n @enter=\"onOpen\"\n @leave=\"onClose\">\n <div\n v-if=\"open\"\n class=\"absolute inset-0 translate-x-full\">\n <ScalarSidebarItems v-bind=\"$attrs\">\n <slot name=\"back\">\n
|
|
1
|
+
{"version":3,"file":"ScalarSidebarNestedItems.vue.script.js","names":["$attrs","$slots"],"sources":["../../../src/components/ScalarSidebar/ScalarSidebarNestedItems.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Sidebar Nested Items component\n *\n * A provides list of items thats presented over the parent list\n * Needs to be nested inside a ScalarSidebarItems component\n *\n * @example\n * <ScalarSidebarNestedItems v-model=\"open\">\n * <!-- Item text -->\n * <template #items>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * <ScalarSidebarItem>...</ScalarSidebarItem>\n * </template>\n * </ScalarSidebarNestedItems>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { ScalarIconArrowRight, ScalarIconCaretLeft } from '@scalar/icons'\nimport { nextTick, ref, useTemplateRef } from 'vue'\n\nimport ScalarSidebarButton from './ScalarSidebarButton.vue'\nimport ScalarSidebarItems from './ScalarSidebarItems.vue'\nimport ScalarSidebarSpacer from './ScalarSidebarSpacer.vue'\nimport { findScrollContainer } from './findScrollContainer'\nimport type { ScalarSidebarGroupProps } from './types'\nimport { useSidebarGroups } from './useSidebarGroups'\nimport { useSidebarNestedItem } from './useSidebarNestedItems'\n\nconst { controlled } = defineProps<ScalarSidebarGroupProps>()\n\nconst emit = defineEmits<{\n /** Emitted when the nested item button is clicked */\n (e: 'click', event: MouseEvent): void\n /** Emitted when the back button is clicked */\n (e: 'back', event: MouseEvent): void\n}>()\n\nconst open = defineModel<boolean>('open', { default: false })\nuseSidebarNestedItem(open)\n\ndefineSlots<{\n /** The text content of the button */\n 'default'?: () => unknown\n /** Override the entire button */\n 'button'?: () => unknown\n /** Override the icon */\n 'icon'?: () => unknown\n /** Override the aside slot */\n 'aside'?: () => unknown\n /** Override the back button */\n 'back'?: () => unknown\n /** Override the back button label */\n 'back-label'?: () => unknown\n /** The list of sidebar subitems */\n 'items'?: () => unknown\n}>()\n\nconst { level } = useSidebarGroups({ reset: true })\n\n/** The root element ref */\nconst el = useTemplateRef('el')\n\n/** How far down to offset the nested items by when animating them in */\nconst offset = ref(0)\n\n// Transition hooks\n\nfunction onOpen() {\n // Calculate how far down the nearest scroll container is scrolled\n // We offset the nested items by this amount when animating them\n // in so they appear in line with the parent items list.\n offset.value = findScrollContainer(el.value).scrollTop ?? 0\n\n // Focus the first button in the nested items\n nextTick(() =>\n el.value\n ?.querySelector<HTMLButtonElement>('button:not([aria-expanded=\"true\"])')\n ?.focus({ preventScroll: true }),\n )\n}\nfunction onOpened() {\n /** Reset the scroll position of the scroll container after opening */\n findScrollContainer(el.value).scrollTop = 0\n}\nfunction onClose() {\n nextTick(() => {\n el.value?.querySelector('button')?.focus({ preventScroll: true })\n findScrollContainer(el.value).scrollTop = offset.value\n })\n}\n\ndefineOptions({ inheritAttrs: false })\n\n/** Handle the click event for the nested items button */\nconst handleClick = (event: MouseEvent) => {\n // Bubble up the click event\n emit('click', event)\n if (!controlled) {\n // Only toggle the open state if the group is uncontrolled\n open.value = true\n }\n}\n\n/** Handle the back button click event */\nconst handleBack = (event: MouseEvent) => {\n // Bubble up the back event\n emit('back', event)\n if (!controlled) {\n // Only toggle the open state if the group is uncontrolled\n open.value = false\n }\n}\n</script>\n<template>\n <li\n ref=\"el\"\n class=\"group/item group/nested-items contents\"\n :class=\"{ 'group/nested-items-open': open }\"\n :style=\"{ '--nested-items-offset': `${offset}px` }\">\n <slot name=\"button\">\n <ScalarSidebarButton\n is=\"button\"\n :aria-expanded=\"open\"\n :disabled\n :icon\n :indent=\"level\"\n :selected\n v-bind=\"$attrs\"\n @click=\"handleClick\">\n <template\n v-if=\"$slots.icon\"\n #icon>\n <slot name=\"icon\" />\n </template>\n <slot />\n <template #aside>\n <slot name=\"aside\">\n <ScalarIconArrowRight class=\"size-4 text-sidebar-c-2\" />\n </slot>\n </template>\n </ScalarSidebarButton>\n </slot>\n <!-- Make sure the div is around for the entire transition -->\n <Transition\n :duration=\"300\"\n enterActiveClass=\"top-(--nested-items-offset)!\"\n leaveActiveClass=\"top-(--nested-items-offset)!\"\n @afterEnter=\"onOpened\"\n @enter=\"onOpen\"\n @leave=\"onClose\">\n <div\n v-if=\"open\"\n class=\"absolute inset-0 translate-x-full\">\n <ScalarSidebarItems v-bind=\"$attrs\">\n <div\n class=\"flex flex-col gap-px sticky top-(--scalar-sidebar-sticky-offset,0) p-(--scalar-sidebar-padding) -m-(--scalar-sidebar-padding) mb-0 pb-0 bg-sidebar-b-1 z-1 animate-sidebar-border-bottom border-b-sidebar-border\">\n <slot name=\"back\">\n <ScalarSidebarButton\n is=\"button\"\n class=\"text-sidebar-c-1 font-sidebar-active hover:text-sidebar-c-1\"\n @click=\"handleBack\">\n <template #icon>\n <ScalarIconCaretLeft class=\"size-4 -m-px text-sidebar-c-2\" />\n </template>\n <slot name=\"back-label\">Back</slot>\n </ScalarSidebarButton>\n </slot>\n <ScalarSidebarSpacer class=\"h-3\" />\n </div>\n <slot name=\"items\" />\n </ScalarSidebarItems>\n </div>\n </Transition>\n </li>\n</template>\n\n<style>\n@reference \"../../style.css\";\n\n.animate-sidebar-border-bottom {\n animation: border-bottom forwards;\n animation-timeline: scroll();\n animation-range-end: 1px;\n}\n\n@keyframes border-bottom {\n from {\n border-bottom-width: 0;\n }\n to {\n border-bottom-width: var(--scalar-border-width);\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCA,MAAM,OAAO;EAOb,MAAM,OAAO,SAAoB,SAAC,OAA0B;AAC5D,uBAAqB,KAAI;EAmBzB,MAAM,EAAE,UAAU,iBAAiB,EAAE,OAAO,MAAM,CAAA;;EAGlD,MAAM,KAAK,eAAe,KAAI;;EAG9B,MAAM,SAAS,IAAI,EAAC;EAIpB,SAAS,SAAS;AAIhB,UAAO,QAAQ,oBAAoB,GAAG,MAAM,CAAC,aAAa;AAG1D,kBACE,GAAG,OACC,cAAiC,uCAAoC,EACrE,MAAM,EAAE,eAAe,MAAM,CAAC,CACpC;;EAEF,SAAS,WAAW;;AAElB,uBAAoB,GAAG,MAAM,CAAC,YAAY;;EAE5C,SAAS,UAAU;AACjB,kBAAe;AACb,OAAG,OAAO,cAAc,SAAS,EAAE,MAAM,EAAE,eAAe,MAAM,CAAA;AAChE,wBAAoB,GAAG,MAAM,CAAC,YAAY,OAAO;KAClD;;;EAMH,MAAM,eAAe,UAAsB;AAEzC,QAAK,SAAS,MAAK;AACnB,OAAI,CAAC,QAAA,WAEH,MAAK,QAAQ;;;EAKjB,MAAM,cAAc,UAAsB;AAExC,QAAK,QAAQ,MAAK;AAClB,OAAI,CAAC,QAAA,WAEH,MAAK,QAAQ;;;uBAKf,mBA2DK,MAAA;aA1DC;IAAJ,KAAI;IACJ,OAAK,eAAA,CAAC,0CAAwC,EAAA,2BACT,KAAA,OAAI,CAAA,CAAA;IACxC,OAAK,eAAA,EAAA,yBAAA,GAAgC,OAAA,MAAM,KAAA,CAAA;OAC5C,WAsBO,KAAA,QAAA,UAAA,EAAA,QAAA,CArBL,YAoBsB,6BApBtB,WAoBsB;IAnBpB,IAAG;IACF,iBAAe,KAAA;IACf,UAAA,QAAA;IACA,MAAA,QAAA;IACA,QAAQ,MAAA,MAAK;IACb,UAAA,QAAA;MACOA,KAAAA,QAAM,EACb,SAAO,aAAW,CAAA,EAAA,YAAA;IAOR,OAAK,cAGP,CAFP,WAEO,KAAA,QAAA,SAAA,EAAA,QAAA,CADL,YAAwD,MAAA,qBAAA,EAAA,EAAlC,OAAM,2BAAyB,CAAA,CAAA,CAAA,CAAA,CAAA;2BAHjD,CAAR,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA;;OAJAC,KAAAA,OAAO,OAAA;UACZ;sBACmB,CAApB,WAAoB,KAAA,QAAA,OAAA,CAAA,CAAA;;;;;;;;SAW1B,YA6Ba,YAAA;IA5BV,UAAU;IACX,kBAAiB;IACjB,kBAAiB;IAChB,cAAY;IACZ,SAAO;IACP,SAAO;;2BAsBF,CApBE,KAAA,SAAA,WAAA,EADR,mBAqBM,OArBN,YAqBM,CAlBJ,YAiBqB,4BAAA,eAAA,mBAjBOD,KAAAA,OAAM,CAAA,EAAA;4BAe1B,CAdN,mBAcM,OAdN,YAcM,CAZJ,WAUO,KAAA,QAAA,QAAA,EAAA,QAAA,CATL,YAQsB,6BAAA;MAPpB,IAAG;MACH,OAAM;MACL,SAAO;;MACG,MAAI,cACgD,CAA7D,YAA6D,MAAA,oBAAA,EAAA,EAAxC,OAAM,iCAA+B,CAAA,CAAA,CAAA;6BAEzB,CAAnC,WAAmC,KAAA,QAAA,cAAA,EAAA,QAAA,CAAA,OAAA,OAAA,OAAA,KAAA,gBAAX,QAAI,GAAA,EAAA,CAAA,CAAA,CAAA;;WAGhC,YAAmC,6BAAA,EAAd,OAAM,OAAK,CAAA,CAAA,CAAA,EAElC,WAAqB,KAAA,QAAA,QAAA,CAAA,CAAA"}
|
|
@@ -12,6 +12,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
12
12
|
* @default 20 (px)
|
|
13
13
|
*/
|
|
14
14
|
indent?: number;
|
|
15
|
+
/**
|
|
16
|
+
* Overrides --scalar-sidebar-padding
|
|
17
|
+
* @default 12 (px)
|
|
18
|
+
*/
|
|
19
|
+
padding?: number;
|
|
20
|
+
/**
|
|
21
|
+
* Overrides --scalar-sidebar-width
|
|
22
|
+
* @default 288 (px)
|
|
23
|
+
*/
|
|
24
|
+
width?: number;
|
|
15
25
|
/**
|
|
16
26
|
* Sets --scalar-sidebar-background-1
|
|
17
27
|
* @default var(--scalar-background-1)
|
|
@@ -92,6 +102,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
|
92
102
|
* @default 20 (px)
|
|
93
103
|
*/
|
|
94
104
|
indent?: number;
|
|
105
|
+
/**
|
|
106
|
+
* Overrides --scalar-sidebar-padding
|
|
107
|
+
* @default 12 (px)
|
|
108
|
+
*/
|
|
109
|
+
padding?: number;
|
|
110
|
+
/**
|
|
111
|
+
* Overrides --scalar-sidebar-width
|
|
112
|
+
* @default 288 (px)
|
|
113
|
+
*/
|
|
114
|
+
width?: number;
|
|
95
115
|
/**
|
|
96
116
|
* Sets --scalar-sidebar-background-1
|
|
97
117
|
* @default var(--scalar-background-1)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarSidebarPlayground.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarSidebar/ScalarSidebarPlayground.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScalarSidebarPlayground.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarSidebar/ScalarSidebarPlayground.vue"],"names":[],"mappings":"AAgKA;;;;;GAKG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY;IAEhB;;;OAGG;aACM,MAAM;IACf;;;OAGG;cACO,MAAM;IAChB;;;OAGG;YACK,MAAM;IACd;;;OAGG;oBACa,MAAM;IACtB;;;OAGG;eACQ,MAAM;IACjB;;;OAGG;eACQ,MAAM;IACjB;;;OAGG;kBACW,MAAM;IACpB;;;OAGG;0BACmB,MAAM;IAC5B;;;OAGG;qBACc,MAAM;IACvB;;;OAGG;2BACoB,MAAM;IAC7B;;;OAGG;sBACe,MAAM;IACxB;;;OAGG;mBACY,MAAM;IACrB;;;OAGG;wBACiB,MAAM;IAC1B;;;OAGG;yBACkB,MAAM;IAC3B;;;OAGG;uBACgB,MAAM;IACzB;;;OAGG;kBACW,MAAM;IACpB;;;OAGG;wBACiB,MAAM;;eAQf,MAAM;;;;IA5FjB;;;OAGG;aACM,MAAM;IACf;;;OAGG;cACO,MAAM;IAChB;;;OAGG;YACK,MAAM;IACd;;;OAGG;oBACa,MAAM;IACtB;;;OAGG;eACQ,MAAM;IACjB;;;OAGG;eACQ,MAAM;IACjB;;;OAGG;kBACW,MAAM;IACpB;;;OAGG;0BACmB,MAAM;IAC5B;;;OAGG;qBACc,MAAM;IACvB;;;OAGG;2BACoB,MAAM;IAC7B;;;OAGG;sBACe,MAAM;IACxB;;;OAGG;mBACY,MAAM;IACrB;;;OAGG;wBACiB,MAAM;IAC1B;;;OAGG;yBACkB,MAAM;IAC3B;;;OAGG;uBACgB,MAAM;IACzB;;;OAGG;kBACW,MAAM;IACpB;;;OAGG;wBACiB,MAAM;;eAQf,MAAM;;;;aAmJN,CAAC,KAAK,IAAgB,KAAK,GAAG;;cAC7B,CAAC,KAAK,IAAiB,KAAK,GAAG;;aAChC,CAAC,KAAK,IAAiB,KAAK,GAAG;EAUxC,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":"ScalarWrappingText.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarWrappingText/ScalarWrappingText.vue"],"names":[],"mappings":"AAwDA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAGtD;;;;;;;;;GASG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"ScalarWrappingText.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarWrappingText/ScalarWrappingText.vue"],"names":[],"mappings":"AAwDA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAGtD;;;;;;;;;GASG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY,0TA2Dd,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarWrappingText.vue.js","names":[],"sources":["../../../src/components/ScalarWrappingText/ScalarWrappingText.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Text Wrapping component\n *\n * Adds word breaks to the text to allow improved line wrapping\n *\n * Does not inherit any attributes because it returns a set of html nodes\n *\n * @example\n * <ScalarWrappingText text=\"/this/is/a/long/path/that/needs/to/be/wrapped\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport { PRESETS } from './constants'\nimport type { ScalarWrappingTextProps } from './types'\n\nconst {\n text = '',\n preset = 'path',\n regex,\n} = defineProps<ScalarWrappingTextProps>()\n\n/**\n * Unicode character for zero-width non-joiner\n *\n * @see https://en.wikipedia.org/wiki/Zero-width_non-joiner\n */\nconst ZWNJ = '\\u2060'\n\n// We don't want to inherit any attributes because we going to return many nodes\ndefineOptions({ inheritAttrs: false })\n\nconst words = computed<string[]>(() => {\n const wrapRegex = new RegExp(regex ?? PRESETS[preset], 'g')\n // Insert the marker before each delimiter\n const marked = text.replace(wrapRegex, `${ZWNJ}$&`)\n // Split on the marker and filter out any empty strings\n return marked.split(ZWNJ).filter(Boolean)\n})\n</script>\n<template>\n <template\n v-for=\"(word, i) in words\"\n :key=\"i\">\n <wbr />{{ word }}\n </template>\n</template>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"ScalarWrappingText.vue.js","names":[],"sources":["../../../src/components/ScalarWrappingText/ScalarWrappingText.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Text Wrapping component\n *\n * Adds word breaks to the text to allow improved line wrapping\n *\n * Does not inherit any attributes because it returns a set of html nodes\n *\n * @example\n * <ScalarWrappingText text=\"/this/is/a/long/path/that/needs/to/be/wrapped\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport { PRESETS } from './constants'\nimport type { ScalarWrappingTextProps } from './types'\n\nconst {\n text = '',\n preset = 'path',\n regex,\n} = defineProps<ScalarWrappingTextProps>()\n\n/**\n * Unicode character for zero-width non-joiner\n *\n * @see https://en.wikipedia.org/wiki/Zero-width_non-joiner\n */\nconst ZWNJ = '\\u2060'\n\n// We don't want to inherit any attributes because we going to return many nodes\ndefineOptions({ inheritAttrs: false })\n\nconst words = computed<string[]>(() => {\n const wrapRegex = new RegExp(regex ?? PRESETS[preset], 'g')\n // Insert the marker before each delimiter\n const marked = text.replace(wrapRegex, `${ZWNJ}$&`)\n // Split on the marker and filter out any empty strings\n return marked.split(ZWNJ).filter(Boolean)\n})\n</script>\n<template>\n <template\n v-for=\"(word, i) in words\"\n :key=\"i\">\n <wbr v-if=\"i !== 0\" />{{ word }}\n </template>\n</template>\n"],"mappings":""}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { PRESETS } from "./constants.js";
|
|
2
|
-
import { Fragment, computed,
|
|
2
|
+
import { Fragment, computed, createCommentVNode, createElementBlock, createTextVNode, defineComponent, openBlock, renderList, toDisplayString } from "vue";
|
|
3
|
+
//#region src/components/ScalarWrappingText/ScalarWrappingText.vue?vue&type=script&setup=true&lang.ts
|
|
4
|
+
var _hoisted_1 = { key: 0 };
|
|
3
5
|
var ScalarWrappingText_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
4
6
|
inheritAttrs: false,
|
|
5
7
|
__name: "ScalarWrappingText",
|
|
@@ -21,7 +23,7 @@ var ScalarWrappingText_vue_vue_type_script_setup_true_lang_default = /* @__PURE_
|
|
|
21
23
|
});
|
|
22
24
|
return (_ctx, _cache) => {
|
|
23
25
|
return openBlock(true), createElementBlock(Fragment, null, renderList(words.value, (word, i) => {
|
|
24
|
-
return openBlock(), createElementBlock(Fragment, { key: i }, [
|
|
26
|
+
return openBlock(), createElementBlock(Fragment, { key: i }, [i !== 0 ? (openBlock(), createElementBlock("wbr", _hoisted_1)) : createCommentVNode("", true), createTextVNode(toDisplayString(word), 1)], 64);
|
|
25
27
|
}), 128);
|
|
26
28
|
};
|
|
27
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarWrappingText.vue.script.js","names":[],"sources":["../../../src/components/ScalarWrappingText/ScalarWrappingText.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Text Wrapping component\n *\n * Adds word breaks to the text to allow improved line wrapping\n *\n * Does not inherit any attributes because it returns a set of html nodes\n *\n * @example\n * <ScalarWrappingText text=\"/this/is/a/long/path/that/needs/to/be/wrapped\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport { PRESETS } from './constants'\nimport type { ScalarWrappingTextProps } from './types'\n\nconst {\n text = '',\n preset = 'path',\n regex,\n} = defineProps<ScalarWrappingTextProps>()\n\n/**\n * Unicode character for zero-width non-joiner\n *\n * @see https://en.wikipedia.org/wiki/Zero-width_non-joiner\n */\nconst ZWNJ = '\\u2060'\n\n// We don't want to inherit any attributes because we going to return many nodes\ndefineOptions({ inheritAttrs: false })\n\nconst words = computed<string[]>(() => {\n const wrapRegex = new RegExp(regex ?? PRESETS[preset], 'g')\n // Insert the marker before each delimiter\n const marked = text.replace(wrapRegex, `${ZWNJ}$&`)\n // Split on the marker and filter out any empty strings\n return marked.split(ZWNJ).filter(Boolean)\n})\n</script>\n<template>\n <template\n v-for=\"(word, i) in words\"\n :key=\"i\">\n <wbr />{{ word }}\n </template>\n</template>\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScalarWrappingText.vue.script.js","names":[],"sources":["../../../src/components/ScalarWrappingText/ScalarWrappingText.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Text Wrapping component\n *\n * Adds word breaks to the text to allow improved line wrapping\n *\n * Does not inherit any attributes because it returns a set of html nodes\n *\n * @example\n * <ScalarWrappingText text=\"/this/is/a/long/path/that/needs/to/be/wrapped\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport { PRESETS } from './constants'\nimport type { ScalarWrappingTextProps } from './types'\n\nconst {\n text = '',\n preset = 'path',\n regex,\n} = defineProps<ScalarWrappingTextProps>()\n\n/**\n * Unicode character for zero-width non-joiner\n *\n * @see https://en.wikipedia.org/wiki/Zero-width_non-joiner\n */\nconst ZWNJ = '\\u2060'\n\n// We don't want to inherit any attributes because we going to return many nodes\ndefineOptions({ inheritAttrs: false })\n\nconst words = computed<string[]>(() => {\n const wrapRegex = new RegExp(regex ?? PRESETS[preset], 'g')\n // Insert the marker before each delimiter\n const marked = text.replace(wrapRegex, `${ZWNJ}$&`)\n // Split on the marker and filter out any empty strings\n return marked.split(ZWNJ).filter(Boolean)\n})\n</script>\n<template>\n <template\n v-for=\"(word, i) in words\"\n :key=\"i\">\n <wbr v-if=\"i !== 0\" />{{ word }}\n </template>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;EA8BA,MAAM,OAAO;EAKb,MAAM,QAAQ,eAAyB;GACrC,MAAM,YAAY,IAAI,OAAO,QAAA,SAAS,QAAQ,QAAA,SAAS,IAAG;AAI1D,UAFe,QAAA,KAAK,QAAQ,WAAW,GAAG,KAAK,IAAG,CAEpC,MAAM,KAAK,CAAC,OAAO,QAAO;IACzC;;2BAGC,mBAIW,UAAA,MAAA,WAHW,MAAA,QAAZ,MAAM,MAAC;4DACT,GAAC,EAAA,CACI,MAAC,KAAA,WAAA,EAAZ,mBAAsB,OAAA,WAAA,IAAA,mBAAA,IAAA,KAAA,EAAA,gBAAA,gBAAG,KAAI,EAAA,EAAA,CAAA,EAAA,GAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,39 +1,50 @@
|
|
|
1
1
|
import './style.css';
|
|
2
2
|
export { compose, cva, cx, tw, useBindCx } from '@scalar/use-hooks/useBindCx';
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
export
|
|
11
|
-
export
|
|
12
|
-
export
|
|
13
|
-
export
|
|
14
|
-
export
|
|
15
|
-
export
|
|
16
|
-
export
|
|
17
|
-
export
|
|
18
|
-
export
|
|
19
|
-
export
|
|
20
|
-
export
|
|
21
|
-
export
|
|
22
|
-
export
|
|
23
|
-
export
|
|
24
|
-
export
|
|
25
|
-
export
|
|
26
|
-
export
|
|
27
|
-
export
|
|
28
|
-
export
|
|
29
|
-
export
|
|
30
|
-
export
|
|
31
|
-
export
|
|
32
|
-
export
|
|
33
|
-
export
|
|
34
|
-
export
|
|
35
|
-
export
|
|
36
|
-
export
|
|
37
|
-
export
|
|
38
|
-
|
|
3
|
+
export type { ScalarButtonSize, ScalarButtonVariant } from './components/ScalarButton';
|
|
4
|
+
export { ScalarButton } from './components/ScalarButton';
|
|
5
|
+
export { ScalarCard, ScalarCardFooter, ScalarCardHeader, ScalarCardSection } from './components/ScalarCard';
|
|
6
|
+
export type { ScalarCheckboxOption, ScalarCheckboxType } from './components/ScalarCheckboxInput';
|
|
7
|
+
export { ScalarCheckbox, ScalarCheckboxGroup, ScalarCheckboxInput, ScalarCheckboxRadioGroup, } from './components/ScalarCheckboxInput';
|
|
8
|
+
export { ScalarCodeBlock, ScalarCodeBlockCopy } from './components/ScalarCodeBlock';
|
|
9
|
+
export { ScalarColorModeToggle, ScalarColorModeToggleButton, ScalarColorModeToggleIcon, } from './components/ScalarColorModeToggle';
|
|
10
|
+
export type { ScalarComboboxFilterFunction, ScalarComboboxOption, ScalarComboboxOptionGroup, ScalarComboboxOptionsOrGroups, } from './components/ScalarCombobox';
|
|
11
|
+
export { ScalarCombobox, ScalarComboboxMultiselect, isScalarComboboxGroups } from './components/ScalarCombobox';
|
|
12
|
+
export { ScalarCopy, ScalarCopyBackdrop, ScalarCopyButton } from './components/ScalarCopy';
|
|
13
|
+
export { ScalarDropdown, ScalarDropdownButton, ScalarDropdownDivider, ScalarDropdownItem, ScalarDropdownMenu, } from './components/ScalarDropdown';
|
|
14
|
+
export { ScalarErrorBoundary } from './components/ScalarErrorBoundary';
|
|
15
|
+
export { ScalarFileUpload, ScalarFileUploadDropTarget, ScalarFileUploadError, ScalarFileUploadFileList, ScalarFileUploadInput, ScalarFileUploadInputCompact, ScalarFileUploadLoading, } from './components/ScalarFileUpload';
|
|
16
|
+
export type { ScalarFloatingOptions } from './components/ScalarFloating';
|
|
17
|
+
export { ScalarFloating, ScalarFloatingBackdrop } from './components/ScalarFloating';
|
|
18
|
+
export { ScalarForm, ScalarFormError, ScalarFormField, ScalarFormInput, ScalarFormInputGroup, ScalarFormSection, } from './components/ScalarForm';
|
|
19
|
+
export { ScalarHeader, ScalarHeaderButton } from './components/ScalarHeader';
|
|
20
|
+
export type { ScalarHotkeyModifier } from './components/ScalarHotkey';
|
|
21
|
+
export { ScalarHotkey, formatHotkeySymbols } from './components/ScalarHotkey';
|
|
22
|
+
export type { Icon } from './components/ScalarIcon';
|
|
23
|
+
export { ScalarIcon, ScalarIconLegacyAdapter } from './components/ScalarIcon';
|
|
24
|
+
export { ScalarIconButton } from './components/ScalarIconButton';
|
|
25
|
+
export type { ScalarListboxOption } from './components/ScalarListbox';
|
|
26
|
+
export { ScalarListbox, ScalarListboxCheckbox, ScalarListboxInput, ScalarListboxItem } from './components/ScalarListbox';
|
|
27
|
+
export type { LoadingState } from './components/ScalarLoading';
|
|
28
|
+
export { ScalarLoading, useLoadingState } from './components/ScalarLoading';
|
|
29
|
+
export { ScalarMarkdown, ScalarMarkdownSummary } from './components/ScalarMarkdown';
|
|
30
|
+
export type { ScalarMenuTeamOption, WorkspaceGroup } from './components/ScalarMenu';
|
|
31
|
+
export { ScalarMenu, ScalarMenuButton, ScalarMenuLink, ScalarMenuProduct, ScalarMenuProducts, ScalarMenuResources, ScalarMenuSection, ScalarMenuSupport, ScalarMenuTeamPicker, ScalarMenuTeamProfile, ScalarMenuWorkspacePicker, } from './components/ScalarMenu';
|
|
32
|
+
export type { ModalState } from './components/ScalarModal';
|
|
33
|
+
export { ScalarModal, useModal } from './components/ScalarModal';
|
|
34
|
+
export type { ScalarPopoverSlots } from './components/ScalarPopover';
|
|
35
|
+
export { ScalarPopover } from './components/ScalarPopover';
|
|
36
|
+
export { ScalarSavePrompt } from './components/ScalarSavePrompt';
|
|
37
|
+
export { ScalarSearchInput } from './components/ScalarSearchInput';
|
|
38
|
+
export { ScalarSearchResultItem, ScalarSearchResultList } from './components/ScalarSearchResults';
|
|
39
|
+
export { ScalarSidebar, ScalarSidebarButton, ScalarSidebarFooter, ScalarSidebarGroup, ScalarSidebarGroupToggle, ScalarSidebarIndent, ScalarSidebarItem, ScalarSidebarItems, ScalarSidebarNestedItems, ScalarSidebarSearchButton, ScalarSidebarSearchInput, ScalarSidebarSection, ScalarSidebarSpacer, } from './components/ScalarSidebar';
|
|
40
|
+
export { ScalarTeleport, ScalarTeleportRoot, TELEPORT_SYMBOL, useProvideTeleport, useTeleport, } from './components/ScalarTeleport';
|
|
41
|
+
export { ScalarTextArea } from './components/ScalarTextArea';
|
|
42
|
+
export { ScalarTextInput, ScalarTextInputCopy } from './components/ScalarTextInput';
|
|
43
|
+
export { ScalarThemeSwatches, useThemeSwatches } from './components/ScalarThemeSwatches';
|
|
44
|
+
export { ScalarToggle, ScalarToggleGroup, ScalarToggleInput } from './components/ScalarToggle';
|
|
45
|
+
export type { ScalarTooltipPlacement, TooltipConfiguration } from './components/ScalarTooltip';
|
|
46
|
+
export { ScalarHotkeyTooltip, ScalarTooltip, useTooltip } from './components/ScalarTooltip';
|
|
47
|
+
export { ScalarVirtualText } from './components/ScalarVirtualText';
|
|
48
|
+
export { ScalarWrappingText } from './components/ScalarWrappingText';
|
|
49
|
+
export { addScalarClassesToHeadless } from './helpers';
|
|
39
50
|
//# sourceMappingURL=index.d.ts.map
|
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,aAAa,CAAA;AAEpB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAE7E,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAEpB,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,MAAM,2BAA2B,CAAA;AAC5E,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;AACnF,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,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,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC9F,YAAY,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAC9F,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAC3F,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
|
@@ -75,6 +75,7 @@ import ScalarMenuWorkspacePicker_default from "./components/ScalarMenu/ScalarMen
|
|
|
75
75
|
import { useModal } from "./components/ScalarModal/ScalarModal.vue.script.js";
|
|
76
76
|
import ScalarModal_default from "./components/ScalarModal/ScalarModal.vue.js";
|
|
77
77
|
import ScalarPopover_default from "./components/ScalarPopover/ScalarPopover.vue.js";
|
|
78
|
+
import ScalarSavePrompt_default from "./components/ScalarSavePrompt/ScalarSavePrompt.vue.js";
|
|
78
79
|
import ScalarSearchInput_default from "./components/ScalarSearchInput/ScalarSearchInput.vue.js";
|
|
79
80
|
import ScalarSearchResultItem_default from "./components/ScalarSearchResults/ScalarSearchResultItem.vue.js";
|
|
80
81
|
import ScalarSearchResultList_default from "./components/ScalarSearchResults/ScalarSearchResultList.vue.js";
|
|
@@ -103,9 +104,4 @@ import ScalarVirtualText_default from "./components/ScalarVirtualText/ScalarVirt
|
|
|
103
104
|
import ScalarWrappingText_default from "./components/ScalarWrappingText/ScalarWrappingText.vue.js";
|
|
104
105
|
import { addScalarClassesToHeadless } from "./helpers/add-scalar-classes.js";
|
|
105
106
|
import { compose, cva, cx, tw, useBindCx } from "@scalar/use-hooks/useBindCx";
|
|
106
|
-
|
|
107
|
-
/** biome-ignore-end lint/performance/noReExportAll: re-exports indexes */
|
|
108
|
-
//#endregion
|
|
109
|
-
export { ScalarButton_default as ScalarButton, ScalarCard_default as ScalarCard, ScalarCardFooter_default as ScalarCardFooter, ScalarCardHeader_default as ScalarCardHeader, ScalarCardSection_default as ScalarCardSection, ScalarCheckbox_default as ScalarCheckbox, ScalarCheckboxGroup_default as ScalarCheckboxGroup, ScalarCheckboxInput_default as ScalarCheckboxInput, ScalarCheckboxRadioGroup_default as ScalarCheckboxRadioGroup, ScalarCodeBlock_default as ScalarCodeBlock, ScalarCodeBlockCopy_default as ScalarCodeBlockCopy, ScalarColorModeToggle_default as ScalarColorModeToggle, ScalarColorModeToggleButton_default as ScalarColorModeToggleButton, ScalarColorModeToggleIcon_default as ScalarColorModeToggleIcon, ScalarCombobox_default as ScalarCombobox, ScalarComboboxMultiselect_default as ScalarComboboxMultiselect, ScalarCopy_default as ScalarCopy, ScalarCopyBackdrop_default as ScalarCopyBackdrop, ScalarCopyButton_default as ScalarCopyButton, ScalarDropdown_default as ScalarDropdown, ScalarDropdownButton_default as ScalarDropdownButton, ScalarDropdownDivider_default as ScalarDropdownDivider, ScalarDropdownItem_default as ScalarDropdownItem, ScalarDropdownMenu_default as ScalarDropdownMenu, ScalarErrorBoundary_default as ScalarErrorBoundary, ScalarFileUpload_default as ScalarFileUpload, ScalarFileUploadDropTarget_default as ScalarFileUploadDropTarget, ScalarFileUploadError_default as ScalarFileUploadError, ScalarFileUploadFileList_default as ScalarFileUploadFileList, ScalarFileUploadInput_default as ScalarFileUploadInput, ScalarFileUploadInputCompact_default as ScalarFileUploadInputCompact, ScalarFileUploadLoading_default as ScalarFileUploadLoading, ScalarFloating_default as ScalarFloating, ScalarFloatingBackdrop_default as ScalarFloatingBackdrop, ScalarForm_default as ScalarForm, ScalarFormError_default as ScalarFormError, ScalarFormField_default as ScalarFormField, ScalarFormInput_default as ScalarFormInput, ScalarFormInputGroup_default as ScalarFormInputGroup, ScalarFormSection_default as ScalarFormSection, ScalarHeader_default as ScalarHeader, ScalarHeaderButton_default as ScalarHeaderButton, ScalarHotkey_default as ScalarHotkey, ScalarHotkeyTooltip_default as ScalarHotkeyTooltip, ScalarIcon_default as ScalarIcon, ScalarIconButton_default as ScalarIconButton, ScalarIconLegacyAdapter_default as ScalarIconLegacyAdapter, ScalarListbox_default as ScalarListbox, ScalarListboxCheckbox_default as ScalarListboxCheckbox, ScalarListboxInput_default as ScalarListboxInput, ScalarListboxItem_default as ScalarListboxItem, ScalarLoading_default as ScalarLoading, ScalarMarkdown_default as ScalarMarkdown, ScalarMarkdownSummary_default as ScalarMarkdownSummary, ScalarMenu_default as ScalarMenu, ScalarMenuButton_default as ScalarMenuButton, ScalarMenuLink_default as ScalarMenuLink, ScalarMenuProduct_default as ScalarMenuProduct, ScalarMenuProducts_default as ScalarMenuProducts, ScalarMenuResources_default as ScalarMenuResources, ScalarMenuSection_default as ScalarMenuSection, ScalarMenuSupport_default as ScalarMenuSupport, ScalarMenuTeamPicker_default as ScalarMenuTeamPicker, ScalarMenuTeamProfile_default as ScalarMenuTeamProfile, ScalarMenuWorkspacePicker_default as ScalarMenuWorkspacePicker, ScalarModal_default as ScalarModal, ScalarPopover_default as ScalarPopover, ScalarSearchInput_default as ScalarSearchInput, ScalarSearchResultItem_default as ScalarSearchResultItem, ScalarSearchResultList_default as ScalarSearchResultList, ScalarSidebar_default as ScalarSidebar, ScalarSidebarButton_default as ScalarSidebarButton, ScalarSidebarFooter_default as ScalarSidebarFooter, ScalarSidebarGroup_default as ScalarSidebarGroup, ScalarSidebarGroupToggle_default as ScalarSidebarGroupToggle, ScalarSidebarIndent_default as ScalarSidebarIndent, ScalarSidebarItem_default as ScalarSidebarItem, ScalarSidebarItems_default as ScalarSidebarItems, ScalarSidebarNestedItems_default as ScalarSidebarNestedItems, ScalarSidebarSearchButton_default as ScalarSidebarSearchButton, ScalarSidebarSearchInput_default as ScalarSidebarSearchInput, ScalarSidebarSection_default as ScalarSidebarSection, ScalarSidebarSpacer_default as ScalarSidebarSpacer, ScalarTeleport_default as ScalarTeleport, ScalarTeleportRoot_default as ScalarTeleportRoot, ScalarTextArea_default as ScalarTextArea, ScalarTextInput_default as ScalarTextInput, ScalarTextInputCopy_default as ScalarTextInputCopy, ScalarThemeSwatches_default as ScalarThemeSwatches, ScalarToggle_default as ScalarToggle, ScalarToggleGroup_default as ScalarToggleGroup, ScalarToggleInput_default as ScalarToggleInput, ScalarTooltip_default as ScalarTooltip, ScalarVirtualText_default as ScalarVirtualText, ScalarWrappingText_default as ScalarWrappingText, TELEPORT_SYMBOL, addScalarClassesToHeadless, compose, cva, cx, formatHotkeySymbols, isGroups as isScalarComboboxGroups, tw, useBindCx, useLoadingState, useModal, useProvideTeleport, useTeleport, useThemeSwatches, useTooltip };
|
|
110
|
-
|
|
111
|
-
//# sourceMappingURL=index.js.map
|
|
107
|
+
export { ScalarButton_default as ScalarButton, ScalarCard_default as ScalarCard, ScalarCardFooter_default as ScalarCardFooter, ScalarCardHeader_default as ScalarCardHeader, ScalarCardSection_default as ScalarCardSection, ScalarCheckbox_default as ScalarCheckbox, ScalarCheckboxGroup_default as ScalarCheckboxGroup, ScalarCheckboxInput_default as ScalarCheckboxInput, ScalarCheckboxRadioGroup_default as ScalarCheckboxRadioGroup, ScalarCodeBlock_default as ScalarCodeBlock, ScalarCodeBlockCopy_default as ScalarCodeBlockCopy, ScalarColorModeToggle_default as ScalarColorModeToggle, ScalarColorModeToggleButton_default as ScalarColorModeToggleButton, ScalarColorModeToggleIcon_default as ScalarColorModeToggleIcon, ScalarCombobox_default as ScalarCombobox, ScalarComboboxMultiselect_default as ScalarComboboxMultiselect, ScalarCopy_default as ScalarCopy, ScalarCopyBackdrop_default as ScalarCopyBackdrop, ScalarCopyButton_default as ScalarCopyButton, ScalarDropdown_default as ScalarDropdown, ScalarDropdownButton_default as ScalarDropdownButton, ScalarDropdownDivider_default as ScalarDropdownDivider, ScalarDropdownItem_default as ScalarDropdownItem, ScalarDropdownMenu_default as ScalarDropdownMenu, ScalarErrorBoundary_default as ScalarErrorBoundary, ScalarFileUpload_default as ScalarFileUpload, ScalarFileUploadDropTarget_default as ScalarFileUploadDropTarget, ScalarFileUploadError_default as ScalarFileUploadError, ScalarFileUploadFileList_default as ScalarFileUploadFileList, ScalarFileUploadInput_default as ScalarFileUploadInput, ScalarFileUploadInputCompact_default as ScalarFileUploadInputCompact, ScalarFileUploadLoading_default as ScalarFileUploadLoading, ScalarFloating_default as ScalarFloating, ScalarFloatingBackdrop_default as ScalarFloatingBackdrop, ScalarForm_default as ScalarForm, ScalarFormError_default as ScalarFormError, ScalarFormField_default as ScalarFormField, ScalarFormInput_default as ScalarFormInput, ScalarFormInputGroup_default as ScalarFormInputGroup, ScalarFormSection_default as ScalarFormSection, ScalarHeader_default as ScalarHeader, ScalarHeaderButton_default as ScalarHeaderButton, ScalarHotkey_default as ScalarHotkey, ScalarHotkeyTooltip_default as ScalarHotkeyTooltip, ScalarIcon_default as ScalarIcon, ScalarIconButton_default as ScalarIconButton, ScalarIconLegacyAdapter_default as ScalarIconLegacyAdapter, ScalarListbox_default as ScalarListbox, ScalarListboxCheckbox_default as ScalarListboxCheckbox, ScalarListboxInput_default as ScalarListboxInput, ScalarListboxItem_default as ScalarListboxItem, ScalarLoading_default as ScalarLoading, ScalarMarkdown_default as ScalarMarkdown, ScalarMarkdownSummary_default as ScalarMarkdownSummary, ScalarMenu_default as ScalarMenu, ScalarMenuButton_default as ScalarMenuButton, ScalarMenuLink_default as ScalarMenuLink, ScalarMenuProduct_default as ScalarMenuProduct, ScalarMenuProducts_default as ScalarMenuProducts, ScalarMenuResources_default as ScalarMenuResources, ScalarMenuSection_default as ScalarMenuSection, ScalarMenuSupport_default as ScalarMenuSupport, ScalarMenuTeamPicker_default as ScalarMenuTeamPicker, ScalarMenuTeamProfile_default as ScalarMenuTeamProfile, ScalarMenuWorkspacePicker_default as ScalarMenuWorkspacePicker, ScalarModal_default as ScalarModal, ScalarPopover_default as ScalarPopover, ScalarSavePrompt_default as ScalarSavePrompt, ScalarSearchInput_default as ScalarSearchInput, ScalarSearchResultItem_default as ScalarSearchResultItem, ScalarSearchResultList_default as ScalarSearchResultList, ScalarSidebar_default as ScalarSidebar, ScalarSidebarButton_default as ScalarSidebarButton, ScalarSidebarFooter_default as ScalarSidebarFooter, ScalarSidebarGroup_default as ScalarSidebarGroup, ScalarSidebarGroupToggle_default as ScalarSidebarGroupToggle, ScalarSidebarIndent_default as ScalarSidebarIndent, ScalarSidebarItem_default as ScalarSidebarItem, ScalarSidebarItems_default as ScalarSidebarItems, ScalarSidebarNestedItems_default as ScalarSidebarNestedItems, ScalarSidebarSearchButton_default as ScalarSidebarSearchButton, ScalarSidebarSearchInput_default as ScalarSidebarSearchInput, ScalarSidebarSection_default as ScalarSidebarSection, ScalarSidebarSpacer_default as ScalarSidebarSpacer, ScalarTeleport_default as ScalarTeleport, ScalarTeleportRoot_default as ScalarTeleportRoot, ScalarTextArea_default as ScalarTextArea, ScalarTextInput_default as ScalarTextInput, ScalarTextInputCopy_default as ScalarTextInputCopy, ScalarThemeSwatches_default as ScalarThemeSwatches, ScalarToggle_default as ScalarToggle, ScalarToggleGroup_default as ScalarToggleGroup, ScalarToggleInput_default as ScalarToggleInput, ScalarTooltip_default as ScalarTooltip, 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
|
@@ -1098,6 +1098,20 @@ img,
|
|
|
1098
1098
|
display: flex;
|
|
1099
1099
|
}
|
|
1100
1100
|
/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
|
|
1101
|
+
.animate-sidebar-border-bottom {
|
|
1102
|
+
animation: forwards border-bottom;
|
|
1103
|
+
animation-timeline: scroll();
|
|
1104
|
+
animation-range-end: 1px;
|
|
1105
|
+
}
|
|
1106
|
+
@keyframes border-bottom {
|
|
1107
|
+
from {
|
|
1108
|
+
border-bottom-width: 0;
|
|
1109
|
+
}
|
|
1110
|
+
to {
|
|
1111
|
+
border-bottom-width: var(--scalar-border-width);
|
|
1112
|
+
}
|
|
1113
|
+
}
|
|
1114
|
+
/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
|
|
1101
1115
|
.group\/sidebar-section:first-of-type > .group\/spacer-before, .group\/sidebar-section:last-of-type > .group\/spacer-after {
|
|
1102
1116
|
height: 0;
|
|
1103
1117
|
}
|
|
@@ -1405,6 +1419,7 @@ img,
|
|
|
1405
1419
|
--scalar-text-decoration-hover: underline;
|
|
1406
1420
|
--scalar-link-font-weight: inherit;
|
|
1407
1421
|
--scalar-sidebar-indent: 20px;
|
|
1422
|
+
--scalar-sidebar-padding: 12px;
|
|
1408
1423
|
}
|
|
1409
1424
|
|
|
1410
1425
|
.dark-mode {
|
|
@@ -1837,6 +1852,10 @@ img,
|
|
|
1837
1852
|
}
|
|
1838
1853
|
}
|
|
1839
1854
|
|
|
1855
|
+
:where(.scalar-app) [class*="rotate-"], :where(.scalar-app) [class*="translate-"], :where(.scalar-app) [class*="scale-"] {
|
|
1856
|
+
transform: none;
|
|
1857
|
+
}
|
|
1858
|
+
|
|
1840
1859
|
.scalar-app .pointer-events-none {
|
|
1841
1860
|
pointer-events: none;
|
|
1842
1861
|
}
|
|
@@ -1930,6 +1949,10 @@ img,
|
|
|
1930
1949
|
top: var(--nested-items-offset) !important;
|
|
1931
1950
|
}
|
|
1932
1951
|
|
|
1952
|
+
.scalar-app .top-\(--scalar-sidebar-sticky-offset\,0\) {
|
|
1953
|
+
top: var(--scalar-sidebar-sticky-offset, 0);
|
|
1954
|
+
}
|
|
1955
|
+
|
|
1933
1956
|
.scalar-app .top-0 {
|
|
1934
1957
|
top: 0;
|
|
1935
1958
|
}
|
|
@@ -1998,10 +2021,18 @@ img,
|
|
|
1998
2021
|
right: 10px;
|
|
1999
2022
|
}
|
|
2000
2023
|
|
|
2024
|
+
.scalar-app .bottom-4 {
|
|
2025
|
+
bottom: 16px;
|
|
2026
|
+
}
|
|
2027
|
+
|
|
2001
2028
|
.scalar-app .left-0 {
|
|
2002
2029
|
left: 0;
|
|
2003
2030
|
}
|
|
2004
2031
|
|
|
2032
|
+
.scalar-app .left-1\/2 {
|
|
2033
|
+
left: 50%;
|
|
2034
|
+
}
|
|
2035
|
+
|
|
2005
2036
|
.scalar-app .left-2 {
|
|
2006
2037
|
left: 8px;
|
|
2007
2038
|
}
|
|
@@ -2107,6 +2138,10 @@ img,
|
|
|
2107
2138
|
margin: 0 !important;
|
|
2108
2139
|
}
|
|
2109
2140
|
|
|
2141
|
+
.scalar-app .-m-\(--scalar-sidebar-padding\) {
|
|
2142
|
+
margin: calc(var(--scalar-sidebar-padding) * -1);
|
|
2143
|
+
}
|
|
2144
|
+
|
|
2110
2145
|
.scalar-app .-m-0\.5 {
|
|
2111
2146
|
margin: -2px;
|
|
2112
2147
|
}
|
|
@@ -2119,6 +2154,10 @@ img,
|
|
|
2119
2154
|
margin: -6px;
|
|
2120
2155
|
}
|
|
2121
2156
|
|
|
2157
|
+
.scalar-app .-m-2 {
|
|
2158
|
+
margin: -8px;
|
|
2159
|
+
}
|
|
2160
|
+
|
|
2122
2161
|
.scalar-app .-m-px {
|
|
2123
2162
|
margin: -1px;
|
|
2124
2163
|
}
|
|
@@ -2318,11 +2357,6 @@ img,
|
|
|
2318
2357
|
height: 14px;
|
|
2319
2358
|
}
|
|
2320
2359
|
|
|
2321
|
-
.scalar-app .size-3\.25 {
|
|
2322
|
-
width: 13px;
|
|
2323
|
-
height: 13px;
|
|
2324
|
-
}
|
|
2325
|
-
|
|
2326
2360
|
.scalar-app .size-4 {
|
|
2327
2361
|
width: 16px;
|
|
2328
2362
|
height: 16px;
|
|
@@ -2471,6 +2505,10 @@ img,
|
|
|
2471
2505
|
min-height: 48px;
|
|
2472
2506
|
}
|
|
2473
2507
|
|
|
2508
|
+
.scalar-app .w-\(--scalar-sidebar-width\) {
|
|
2509
|
+
width: var(--scalar-sidebar-width);
|
|
2510
|
+
}
|
|
2511
|
+
|
|
2474
2512
|
.scalar-app .w-3 {
|
|
2475
2513
|
width: 12px;
|
|
2476
2514
|
}
|
|
@@ -2539,6 +2577,10 @@ img,
|
|
|
2539
2577
|
width: var(--scalar-border-width);
|
|
2540
2578
|
}
|
|
2541
2579
|
|
|
2580
|
+
.scalar-app .w-content {
|
|
2581
|
+
width: 720px;
|
|
2582
|
+
}
|
|
2583
|
+
|
|
2542
2584
|
.scalar-app .w-dvw {
|
|
2543
2585
|
width: 100dvw;
|
|
2544
2586
|
}
|
|
@@ -2587,6 +2629,10 @@ img,
|
|
|
2587
2629
|
max-width: inherit;
|
|
2588
2630
|
}
|
|
2589
2631
|
|
|
2632
|
+
.scalar-app .max-w-screen-padded-4 {
|
|
2633
|
+
max-width: calc(100vw - 32px);
|
|
2634
|
+
}
|
|
2635
|
+
|
|
2590
2636
|
.scalar-app .max-w-xs {
|
|
2591
2637
|
max-width: 320px;
|
|
2592
2638
|
}
|
|
@@ -2619,6 +2665,11 @@ img,
|
|
|
2619
2665
|
flex-shrink: 0;
|
|
2620
2666
|
}
|
|
2621
2667
|
|
|
2668
|
+
.scalar-app .-translate-x-1\/2 {
|
|
2669
|
+
--tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
|
|
2670
|
+
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
2671
|
+
}
|
|
2672
|
+
|
|
2622
2673
|
.scalar-app .-translate-x-full {
|
|
2623
2674
|
--tw-translate-x: -100%;
|
|
2624
2675
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
@@ -2664,6 +2715,11 @@ img,
|
|
|
2664
2715
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
2665
2716
|
}
|
|
2666
2717
|
|
|
2718
|
+
.scalar-app .translate-y-\[200\%\] {
|
|
2719
|
+
--tw-translate-y: 200%;
|
|
2720
|
+
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
2721
|
+
}
|
|
2722
|
+
|
|
2667
2723
|
.scalar-app .scale-0 {
|
|
2668
2724
|
--tw-scale-x: 0%;
|
|
2669
2725
|
--tw-scale-y: 0%;
|
|
@@ -2997,6 +3053,10 @@ img,
|
|
|
2997
3053
|
border-color: var(--scalar-sidebar-search-border-color, var(--scalar-border-color));
|
|
2998
3054
|
}
|
|
2999
3055
|
|
|
3056
|
+
.scalar-app .border-b-sidebar-border {
|
|
3057
|
+
border-bottom-color: var(--scalar-sidebar-border-color, var(--scalar-border-color));
|
|
3058
|
+
}
|
|
3059
|
+
|
|
3000
3060
|
.scalar-app .bg-\(--bg-light\) {
|
|
3001
3061
|
background-color: var(--bg-light);
|
|
3002
3062
|
}
|
|
@@ -3154,6 +3214,10 @@ img,
|
|
|
3154
3214
|
mask-repeat: repeat;
|
|
3155
3215
|
}
|
|
3156
3216
|
|
|
3217
|
+
.scalar-app .p-\(--scalar-sidebar-padding\) {
|
|
3218
|
+
padding: var(--scalar-sidebar-padding);
|
|
3219
|
+
}
|
|
3220
|
+
|
|
3157
3221
|
.scalar-app .p-0 {
|
|
3158
3222
|
padding: 0;
|
|
3159
3223
|
}
|
|
@@ -3619,6 +3683,11 @@ img,
|
|
|
3619
3683
|
transition-duration: .3s;
|
|
3620
3684
|
}
|
|
3621
3685
|
|
|
3686
|
+
.scalar-app .duration-400 {
|
|
3687
|
+
--tw-duration: .4s;
|
|
3688
|
+
transition-duration: .4s;
|
|
3689
|
+
}
|
|
3690
|
+
|
|
3622
3691
|
.scalar-app .ease-in {
|
|
3623
3692
|
--tw-ease: var(--ease-in);
|
|
3624
3693
|
transition-timing-function: var(--ease-in);
|
|
@@ -3634,6 +3703,47 @@ img,
|
|
|
3634
3703
|
transition-timing-function: var(--ease-out);
|
|
3635
3704
|
}
|
|
3636
3705
|
|
|
3706
|
+
.scalar-app .ease-spring {
|
|
3707
|
+
--tw-ease: linear(0,
|
|
3708
|
+
.008 1.1%,
|
|
3709
|
+
.034 2.3%,
|
|
3710
|
+
.134 4.9%,
|
|
3711
|
+
.264 7.3%,
|
|
3712
|
+
.683 14.3%,
|
|
3713
|
+
.797 16.5%,
|
|
3714
|
+
.89 18.6%,
|
|
3715
|
+
.967 20.7%,
|
|
3716
|
+
1.027 22.8%,
|
|
3717
|
+
1.073 25%,
|
|
3718
|
+
1.104 27.3%,
|
|
3719
|
+
1.123 30.6%,
|
|
3720
|
+
1.119 34.3%,
|
|
3721
|
+
1.018 49.5%,
|
|
3722
|
+
.988 58.6%,
|
|
3723
|
+
.985 65.2%,
|
|
3724
|
+
1 84.5%,
|
|
3725
|
+
1);
|
|
3726
|
+
transition-timing-function: linear(0,
|
|
3727
|
+
.008 1.1%,
|
|
3728
|
+
.034 2.3%,
|
|
3729
|
+
.134 4.9%,
|
|
3730
|
+
.264 7.3%,
|
|
3731
|
+
.683 14.3%,
|
|
3732
|
+
.797 16.5%,
|
|
3733
|
+
.89 18.6%,
|
|
3734
|
+
.967 20.7%,
|
|
3735
|
+
1.027 22.8%,
|
|
3736
|
+
1.073 25%,
|
|
3737
|
+
1.104 27.3%,
|
|
3738
|
+
1.123 30.6%,
|
|
3739
|
+
1.119 34.3%,
|
|
3740
|
+
1.018 49.5%,
|
|
3741
|
+
.988 58.6%,
|
|
3742
|
+
.985 65.2%,
|
|
3743
|
+
1 84.5%,
|
|
3744
|
+
1);
|
|
3745
|
+
}
|
|
3746
|
+
|
|
3637
3747
|
.scalar-app .outline-none {
|
|
3638
3748
|
--tw-outline-style: none;
|
|
3639
3749
|
outline-style: none;
|
|
@@ -3771,12 +3881,12 @@ img,
|
|
|
3771
3881
|
font-family: inherit;
|
|
3772
3882
|
}
|
|
3773
3883
|
|
|
3774
|
-
.scalar-app .first\:rounded-t-\[inherit\]:first-child
|
|
3884
|
+
.scalar-app .first\:rounded-t-\[inherit\]:first-child {
|
|
3775
3885
|
border-top-left-radius: inherit;
|
|
3776
3886
|
border-top-right-radius: inherit;
|
|
3777
3887
|
}
|
|
3778
3888
|
|
|
3779
|
-
.scalar-app .last\:rounded-b-\[inherit\]:last-child
|
|
3889
|
+
.scalar-app .last\:rounded-b-\[inherit\]:last-child {
|
|
3780
3890
|
border-bottom-right-radius: inherit;
|
|
3781
3891
|
border-bottom-left-radius: inherit;
|
|
3782
3892
|
}
|