@scalar/components 0.27.5 → 0.27.6
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/ScalarToggle/ScalarToggle.vue.d.ts.map +1 -1
- package/dist/components/ScalarToggle/ScalarToggle.vue.js.map +1 -1
- package/dist/components/ScalarToggle/ScalarToggle.vue.script.js +14 -23
- package/dist/components/ScalarToggle/ScalarToggle.vue.script.js.map +1 -1
- package/dist/components/ScalarToggle/ScalarToggleSlider.vue.d.ts +12 -0
- package/dist/components/ScalarToggle/ScalarToggleSlider.vue.d.ts.map +1 -0
- package/dist/components/ScalarToggle/ScalarToggleSlider.vue.js +7 -0
- package/dist/components/ScalarToggle/ScalarToggleSlider.vue.js.map +1 -0
- package/dist/components/ScalarToggle/ScalarToggleSlider.vue.script.js +37 -0
- package/dist/components/ScalarToggle/ScalarToggleSlider.vue.script.js.map +1 -0
- package/dist/components/ScalarToggle/ScalarTristateToggle.vue.d.ts +33 -0
- package/dist/components/ScalarToggle/ScalarTristateToggle.vue.d.ts.map +1 -0
- package/dist/components/ScalarToggle/ScalarTristateToggle.vue.js +7 -0
- package/dist/components/ScalarToggle/ScalarTristateToggle.vue.js.map +1 -0
- package/dist/components/ScalarToggle/ScalarTristateToggle.vue.script.js +60 -0
- package/dist/components/ScalarToggle/ScalarTristateToggle.vue.script.js.map +1 -0
- package/dist/components/ScalarToggle/ScalarTristateToggleGroup.vue.d.ts +23 -0
- package/dist/components/ScalarToggle/ScalarTristateToggleGroup.vue.d.ts.map +1 -0
- package/dist/components/ScalarToggle/ScalarTristateToggleGroup.vue.js +7 -0
- package/dist/components/ScalarToggle/ScalarTristateToggleGroup.vue.js.map +1 -0
- package/dist/components/ScalarToggle/ScalarTristateToggleGroup.vue.script.js +45 -0
- package/dist/components/ScalarToggle/ScalarTristateToggleGroup.vue.script.js.map +1 -0
- package/dist/components/ScalarToggle/ScalarTristateToggleInput.vue.d.ts +30 -0
- package/dist/components/ScalarToggle/ScalarTristateToggleInput.vue.d.ts.map +1 -0
- package/dist/components/ScalarToggle/ScalarTristateToggleInput.vue.js +7 -0
- package/dist/components/ScalarToggle/ScalarTristateToggleInput.vue.js.map +1 -0
- package/dist/components/ScalarToggle/ScalarTristateToggleInput.vue.script.js +33 -0
- package/dist/components/ScalarToggle/ScalarTristateToggleInput.vue.script.js.map +1 -0
- package/dist/components/ScalarToggle/index.d.ts +4 -0
- package/dist/components/ScalarToggle/index.d.ts.map +1 -1
- package/dist/components/ScalarToggle/index.js +4 -1
- package/dist/components/ScalarToggle/types.d.ts +11 -0
- package/dist/components/ScalarToggle/types.d.ts.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/style.css +9 -4
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarToggle.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarToggle/ScalarToggle.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScalarToggle.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarToggle/ScalarToggle.vue"],"names":[],"mappings":"AA6CA;;;;;;;;GAQG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY;eAEL,OAAO;YACV,MAAM;;iBAkBH,OAAO;;;;eAnBP,OAAO;YACV,MAAM;;iBAkBH,OAAO;;;kFA4DhB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarToggle.vue.js","names":[],"sources":["../../../src/components/ScalarToggle/ScalarToggle.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Toggle component\n *\n * A switch-style toggle control with support for\n * disabled state and accessible labeling.\n *\n * @example\n * <ScalarToggle v-model=\"enabled\" label=\"Enable feature\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport
|
|
1
|
+
{"version":3,"file":"ScalarToggle.vue.js","names":[],"sources":["../../../src/components/ScalarToggle/ScalarToggle.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Toggle component\n *\n * A switch-style toggle control with support for\n * disabled state and accessible labeling.\n *\n * @example\n * <ScalarToggle v-model=\"enabled\" label=\"Enable feature\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport ScalarToggleSlider from './ScalarToggleSlider.vue'\n\nconst props = defineProps<{\n disabled?: boolean\n label?: string\n}>()\n\nconst model = defineModel<boolean>({ default: false })\n\nfunction toggle() {\n if (props.disabled) {\n return\n }\n model.value = !model.value\n}\n</script>\n<template>\n <ScalarToggleSlider\n :aria-checked=\"model\"\n :class=\"model ? 'bg-c-accent' : ''\"\n :disabled\n :label\n role=\"switch\"\n :thumb=\"model ? 'end' : 'start'\"\n @click=\"toggle\" />\n</template>\n"],"mappings":""}
|
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
//#region src/components/ScalarToggle/ScalarToggle.vue?vue&type=script&setup=true&lang.ts
|
|
4
|
-
var _hoisted_1 = ["aria-checked", "aria-disabled"];
|
|
5
|
-
var _hoisted_2 = {
|
|
6
|
-
key: 0,
|
|
7
|
-
class: "sr-only"
|
|
8
|
-
};
|
|
1
|
+
import ScalarToggleSlider_default from "./ScalarToggleSlider.vue.js";
|
|
2
|
+
import { createBlock, defineComponent, mergeModels, normalizeClass, openBlock, useModel } from "vue";
|
|
9
3
|
var ScalarToggle_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
10
4
|
__name: "ScalarToggle",
|
|
11
5
|
props: /* @__PURE__ */ mergeModels({
|
|
@@ -26,25 +20,22 @@ var ScalarToggle_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
|
|
|
26
20
|
if (props.disabled) return;
|
|
27
21
|
model.value = !model.value;
|
|
28
22
|
}
|
|
29
|
-
const variants = cva({
|
|
30
|
-
base: "relative h-3.5 min-w-6 w-6 cursor-pointer rounded-full bg-b-3 transition-colors duration-300",
|
|
31
|
-
variants: {
|
|
32
|
-
checked: { true: "bg-c-accent" },
|
|
33
|
-
disabled: { true: "cursor-not-allowed opacity-40" }
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
23
|
return (_ctx, _cache) => {
|
|
37
|
-
return openBlock(),
|
|
24
|
+
return openBlock(), createBlock(ScalarToggleSlider_default, {
|
|
38
25
|
"aria-checked": model.value,
|
|
39
|
-
"
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
disabled: __props.disabled
|
|
43
|
-
}))),
|
|
26
|
+
class: normalizeClass(model.value ? "bg-c-accent" : ""),
|
|
27
|
+
disabled: __props.disabled,
|
|
28
|
+
label: __props.label,
|
|
44
29
|
role: "switch",
|
|
45
|
-
|
|
30
|
+
thumb: model.value ? "end" : "start",
|
|
46
31
|
onClick: toggle
|
|
47
|
-
},
|
|
32
|
+
}, null, 8, [
|
|
33
|
+
"aria-checked",
|
|
34
|
+
"class",
|
|
35
|
+
"disabled",
|
|
36
|
+
"label",
|
|
37
|
+
"thumb"
|
|
38
|
+
]);
|
|
48
39
|
};
|
|
49
40
|
}
|
|
50
41
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScalarToggle.vue.script.js","names":[],"sources":["../../../src/components/ScalarToggle/ScalarToggle.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Toggle component\n *\n * A switch-style toggle control with support for\n * disabled state and accessible labeling.\n *\n * @example\n * <ScalarToggle v-model=\"enabled\" label=\"Enable feature\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport
|
|
1
|
+
{"version":3,"file":"ScalarToggle.vue.script.js","names":[],"sources":["../../../src/components/ScalarToggle/ScalarToggle.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Toggle component\n *\n * A switch-style toggle control with support for\n * disabled state and accessible labeling.\n *\n * @example\n * <ScalarToggle v-model=\"enabled\" label=\"Enable feature\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport ScalarToggleSlider from './ScalarToggleSlider.vue'\n\nconst props = defineProps<{\n disabled?: boolean\n label?: string\n}>()\n\nconst model = defineModel<boolean>({ default: false })\n\nfunction toggle() {\n if (props.disabled) {\n return\n }\n model.value = !model.value\n}\n</script>\n<template>\n <ScalarToggleSlider\n :aria-checked=\"model\"\n :class=\"model ? 'bg-c-accent' : ''\"\n :disabled\n :label\n role=\"switch\"\n :thumb=\"model ? 'end' : 'start'\"\n @click=\"toggle\" />\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;EAeA,MAAM,QAAQ;EAKd,MAAM,QAAQ,SAAoB,SAAA,aAAmB;EAErD,SAAS,SAAS;AAChB,OAAI,MAAM,SACR;AAEF,SAAM,QAAQ,CAAC,MAAM;;;uBAIrB,YAOoB,4BAAA;IANjB,gBAAc,MAAA;IACd,OAAK,eAAE,MAAA,QAAK,gBAAA,GAAA;IACZ,UAAA,QAAA;IACA,OAAA,QAAA;IACD,MAAK;IACJ,OAAO,MAAA,QAAK,QAAA;IACZ,SAAO"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
/** Resting position of the thumb within the track */
|
|
3
|
+
thumb?: 'start' | 'center' | 'end';
|
|
4
|
+
/** Visually dims the control and applies a not-allowed cursor */
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
/** Accessible label announced to assistive technology */
|
|
7
|
+
label?: string;
|
|
8
|
+
};
|
|
9
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
10
|
+
declare const _default: typeof __VLS_export;
|
|
11
|
+
export default _default;
|
|
12
|
+
//# sourceMappingURL=ScalarToggleSlider.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScalarToggleSlider.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarToggle/ScalarToggleSlider.vue"],"names":[],"mappings":"AAiDA,KAAK,WAAW,GAAG;IACjB,qDAAqD;IACrD,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAA;IAClC,iEAAiE;IACjE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAC;AAyEF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import ScalarToggleSlider_vue_vue_type_script_setup_true_lang_default from "./ScalarToggleSlider.vue.script.js";
|
|
2
|
+
//#region src/components/ScalarToggle/ScalarToggleSlider.vue
|
|
3
|
+
var ScalarToggleSlider_default = ScalarToggleSlider_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { ScalarToggleSlider_default as default };
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=ScalarToggleSlider.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScalarToggleSlider.vue.js","names":[],"sources":["../../../src/components/ScalarToggle/ScalarToggleSlider.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { cva, useBindCx } from '@scalar/use-hooks/useBindCx'\n\nconst {\n thumb = 'start',\n disabled,\n label,\n} = defineProps<{\n /** Resting position of the thumb within the track */\n thumb?: 'start' | 'center' | 'end'\n /** Visually dims the control and applies a not-allowed cursor */\n disabled?: boolean\n /** Accessible label announced to assistive technology */\n label?: string\n}>()\n\nconst variants = cva({\n base: 'relative h-3.5 min-w-6 w-6 cursor-pointer rounded-full bg-b-3 transition-colors duration-300',\n variants: {\n disabled: { true: 'cursor-not-allowed opacity-40' },\n },\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <button\n :aria-disabled=\"disabled\"\n type=\"button\"\n v-bind=\"cx(variants({ disabled }))\">\n <div\n class=\"absolute left-px top-px flex h-3 w-3 items-center justify-center rounded-full bg-b-1 transition-transform duration-300\"\n :class=\"{\n 'translate-x-1.25': thumb === 'center',\n 'translate-x-2.5': thumb === 'end',\n }\" />\n <span\n v-if=\"label\"\n class=\"sr-only\">\n {{ label }}\n </span>\n </button>\n</template>\n"],"mappings":""}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { cva, useBindCx } from "@scalar/use-hooks/useBindCx";
|
|
2
|
+
import { createCommentVNode, createElementBlock, createElementVNode, defineComponent, mergeProps, normalizeClass, openBlock, toDisplayString, unref } from "vue";
|
|
3
|
+
//#region src/components/ScalarToggle/ScalarToggleSlider.vue?vue&type=script&setup=true&lang.ts
|
|
4
|
+
var _hoisted_1 = ["aria-disabled"];
|
|
5
|
+
var _hoisted_2 = {
|
|
6
|
+
key: 0,
|
|
7
|
+
class: "sr-only"
|
|
8
|
+
};
|
|
9
|
+
var ScalarToggleSlider_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
10
|
+
inheritAttrs: false,
|
|
11
|
+
__name: "ScalarToggleSlider",
|
|
12
|
+
props: {
|
|
13
|
+
thumb: { default: "start" },
|
|
14
|
+
disabled: { type: Boolean },
|
|
15
|
+
label: {}
|
|
16
|
+
},
|
|
17
|
+
setup(__props) {
|
|
18
|
+
const variants = cva({
|
|
19
|
+
base: "relative h-3.5 min-w-6 w-6 cursor-pointer rounded-full bg-b-3 transition-colors duration-300",
|
|
20
|
+
variants: { disabled: { true: "cursor-not-allowed opacity-40" } }
|
|
21
|
+
});
|
|
22
|
+
const { cx } = useBindCx();
|
|
23
|
+
return (_ctx, _cache) => {
|
|
24
|
+
return openBlock(), createElementBlock("button", mergeProps({
|
|
25
|
+
"aria-disabled": __props.disabled,
|
|
26
|
+
type: "button"
|
|
27
|
+
}, unref(cx)(unref(variants)({ disabled: __props.disabled }))), [createElementVNode("div", { class: normalizeClass(["absolute left-px top-px flex h-3 w-3 items-center justify-center rounded-full bg-b-1 transition-transform duration-300", {
|
|
28
|
+
"translate-x-1.25": __props.thumb === "center",
|
|
29
|
+
"translate-x-2.5": __props.thumb === "end"
|
|
30
|
+
}]) }, null, 2), __props.label ? (openBlock(), createElementBlock("span", _hoisted_2, toDisplayString(__props.label), 1)) : createCommentVNode("", true)], 16, _hoisted_1);
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
//#endregion
|
|
35
|
+
export { ScalarToggleSlider_vue_vue_type_script_setup_true_lang_default as default };
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=ScalarToggleSlider.vue.script.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScalarToggleSlider.vue.script.js","names":[],"sources":["../../../src/components/ScalarToggle/ScalarToggleSlider.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { cva, useBindCx } from '@scalar/use-hooks/useBindCx'\n\nconst {\n thumb = 'start',\n disabled,\n label,\n} = defineProps<{\n /** Resting position of the thumb within the track */\n thumb?: 'start' | 'center' | 'end'\n /** Visually dims the control and applies a not-allowed cursor */\n disabled?: boolean\n /** Accessible label announced to assistive technology */\n label?: string\n}>()\n\nconst variants = cva({\n base: 'relative h-3.5 min-w-6 w-6 cursor-pointer rounded-full bg-b-3 transition-colors duration-300',\n variants: {\n disabled: { true: 'cursor-not-allowed opacity-40' },\n },\n})\n\ndefineOptions({ inheritAttrs: false })\nconst { cx } = useBindCx()\n</script>\n<template>\n <button\n :aria-disabled=\"disabled\"\n type=\"button\"\n v-bind=\"cx(variants({ disabled }))\">\n <div\n class=\"absolute left-px top-px flex h-3 w-3 items-center justify-center rounded-full bg-b-1 transition-transform duration-300\"\n :class=\"{\n 'translate-x-1.25': thumb === 'center',\n 'translate-x-2.5': thumb === 'end',\n }\" />\n <span\n v-if=\"label\"\n class=\"sr-only\">\n {{ label }}\n </span>\n </button>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;EAgBA,MAAM,WAAW,IAAI;GACnB,MAAM;GACN,UAAU,EACR,UAAU,EAAE,MAAM,iCAAiC,EACpD;GACF,CAAA;EAGD,MAAM,EAAE,OAAO,WAAU;;uBAGvB,mBAeS,UAfT,WAeS;IAdN,iBAAe,QAAA;IAChB,MAAK;MACG,MAAA,GAAE,CAAC,MAAA,SAAQ,CAAA,EAAA,UAAG,QAAA,UAAQ,CAAA,CAAA,CAAA,EAAA,CAC9B,mBAKO,OAAA,EAJL,OAAK,eAAA,CAAC,0HAAwH;wBACxF,QAAA,UAAK;uBAA0C,QAAA,UAAK;oBAKpF,QAAA,SAAA,WAAA,EADR,mBAIO,QAJP,YAIO,gBADF,QAAA,MAAK,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA,CAAA,EAAA,IAAA,WAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scalar Tristate Toggle component
|
|
3
|
+
*
|
|
4
|
+
* A switch-style toggle control with three states — unset, on, and off —
|
|
5
|
+
* useful for representing an optional boolean that can also be left
|
|
6
|
+
* unset (e.g. "inherit"). Supports a disabled state and accessible
|
|
7
|
+
* labeling.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* <ScalarTristateToggle v-model="overridden" label="Override default" />
|
|
11
|
+
*/
|
|
12
|
+
declare const _default: typeof __VLS_export;
|
|
13
|
+
export default _default;
|
|
14
|
+
declare const __VLS_export: import("vue").DefineComponent<{
|
|
15
|
+
/** Prevents the toggle from being cycled, and dims it visually. */
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
/** Accessible label announced to assistive technology */
|
|
18
|
+
label?: string;
|
|
19
|
+
} & {
|
|
20
|
+
modelValue?: boolean | undefined;
|
|
21
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
22
|
+
"update:modelValue": (value: boolean | undefined) => any;
|
|
23
|
+
}, string, import("vue").PublicProps, Readonly<{
|
|
24
|
+
/** Prevents the toggle from being cycled, and dims it visually. */
|
|
25
|
+
disabled?: boolean;
|
|
26
|
+
/** Accessible label announced to assistive technology */
|
|
27
|
+
label?: string;
|
|
28
|
+
} & {
|
|
29
|
+
modelValue?: boolean | undefined;
|
|
30
|
+
}> & Readonly<{
|
|
31
|
+
"onUpdate:modelValue"?: ((value: boolean | undefined) => any) | undefined;
|
|
32
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
33
|
+
//# sourceMappingURL=ScalarTristateToggle.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScalarTristateToggle.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarToggle/ScalarTristateToggle.vue"],"names":[],"mappings":"AA0EA;;;;;;;;;;GAUG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY;IAEhB,mEAAmE;eACxD,OAAO;IAClB,yDAAyD;YACjD,MAAM;;iBAqCH,OAAO,GAAG,SAAS;;;;IAxC9B,mEAAmE;eACxD,OAAO;IAClB,yDAAyD;YACjD,MAAM;;iBAqCH,OAAO,GAAG,SAAS;;;kFA4D5B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import ScalarTristateToggle_vue_vue_type_script_setup_true_lang_default from "./ScalarTristateToggle.vue.script.js";
|
|
2
|
+
//#region src/components/ScalarToggle/ScalarTristateToggle.vue
|
|
3
|
+
var ScalarTristateToggle_default = ScalarTristateToggle_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { ScalarTristateToggle_default as default };
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=ScalarTristateToggle.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScalarTristateToggle.vue.js","names":[],"sources":["../../../src/components/ScalarToggle/ScalarTristateToggle.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Tristate Toggle component\n *\n * A switch-style toggle control with three states — unset, on, and off —\n * useful for representing an optional boolean that can also be left\n * unset (e.g. \"inherit\"). Supports a disabled state and accessible\n * labeling.\n *\n * @example\n * <ScalarTristateToggle v-model=\"overridden\" label=\"Override default\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport ScalarToggleSlider from './ScalarToggleSlider.vue'\n\nconst props = defineProps<{\n /** Prevents the toggle from being cycled, and dims it visually. */\n disabled?: boolean\n /** Accessible label announced to assistive technology */\n label?: string\n}>()\n\nconst model = defineModel<boolean | undefined>()\n\n/** The current tristate value, derived from the boolean | undefined model. */\nconst state = computed<'unset' | 'on' | 'off'>(() => {\n if (model.value === undefined) {\n return 'unset'\n }\n return model.value ? 'on' : 'off'\n})\n\n/** Slider appearance for each tristate value. */\nconst SLIDER_PROPS = {\n unset: { class: '', thumb: 'center' },\n on: { class: 'bg-green', thumb: 'end' },\n off: { class: 'bg-c-danger', thumb: 'start' },\n} as const\n\n/** Cycles unset -> on -> off -> unset. */\nfunction toggle() {\n if (props.disabled) {\n return\n }\n if (model.value === undefined) {\n model.value = true\n } else if (model.value === true) {\n model.value = false\n } else {\n model.value = undefined\n }\n}\n</script>\n<template>\n <ScalarToggleSlider\n :aria-checked=\"state === 'unset' ? 'mixed' : model\"\n :disabled\n :label\n role=\"checkbox\"\n v-bind=\"SLIDER_PROPS[state]\"\n @click=\"toggle\" />\n</template>\n"],"mappings":""}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import ScalarToggleSlider_default from "./ScalarToggleSlider.vue.js";
|
|
2
|
+
import { computed, createBlock, defineComponent, mergeModels, mergeProps, openBlock, useModel } from "vue";
|
|
3
|
+
var ScalarTristateToggle_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
4
|
+
__name: "ScalarTristateToggle",
|
|
5
|
+
props: /* @__PURE__ */ mergeModels({
|
|
6
|
+
disabled: { type: Boolean },
|
|
7
|
+
label: {}
|
|
8
|
+
}, {
|
|
9
|
+
"modelValue": { type: Boolean },
|
|
10
|
+
"modelModifiers": {}
|
|
11
|
+
}),
|
|
12
|
+
emits: ["update:modelValue"],
|
|
13
|
+
setup(__props) {
|
|
14
|
+
const props = __props;
|
|
15
|
+
const model = useModel(__props, "modelValue");
|
|
16
|
+
/** The current tristate value, derived from the boolean | undefined model. */
|
|
17
|
+
const state = computed(() => {
|
|
18
|
+
if (model.value === void 0) return "unset";
|
|
19
|
+
return model.value ? "on" : "off";
|
|
20
|
+
});
|
|
21
|
+
/** Slider appearance for each tristate value. */
|
|
22
|
+
const SLIDER_PROPS = {
|
|
23
|
+
unset: {
|
|
24
|
+
class: "",
|
|
25
|
+
thumb: "center"
|
|
26
|
+
},
|
|
27
|
+
on: {
|
|
28
|
+
class: "bg-green",
|
|
29
|
+
thumb: "end"
|
|
30
|
+
},
|
|
31
|
+
off: {
|
|
32
|
+
class: "bg-c-danger",
|
|
33
|
+
thumb: "start"
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
/** Cycles unset -> on -> off -> unset. */
|
|
37
|
+
function toggle() {
|
|
38
|
+
if (props.disabled) return;
|
|
39
|
+
if (model.value === void 0) model.value = true;
|
|
40
|
+
else if (model.value === true) model.value = false;
|
|
41
|
+
else model.value = void 0;
|
|
42
|
+
}
|
|
43
|
+
return (_ctx, _cache) => {
|
|
44
|
+
return openBlock(), createBlock(ScalarToggleSlider_default, mergeProps({
|
|
45
|
+
"aria-checked": state.value === "unset" ? "mixed" : model.value,
|
|
46
|
+
disabled: __props.disabled,
|
|
47
|
+
label: __props.label,
|
|
48
|
+
role: "checkbox"
|
|
49
|
+
}, SLIDER_PROPS[state.value], { onClick: toggle }), null, 16, [
|
|
50
|
+
"aria-checked",
|
|
51
|
+
"disabled",
|
|
52
|
+
"label"
|
|
53
|
+
]);
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
//#endregion
|
|
58
|
+
export { ScalarTristateToggle_vue_vue_type_script_setup_true_lang_default as default };
|
|
59
|
+
|
|
60
|
+
//# sourceMappingURL=ScalarTristateToggle.vue.script.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScalarTristateToggle.vue.script.js","names":[],"sources":["../../../src/components/ScalarToggle/ScalarTristateToggle.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Tristate Toggle component\n *\n * A switch-style toggle control with three states — unset, on, and off —\n * useful for representing an optional boolean that can also be left\n * unset (e.g. \"inherit\"). Supports a disabled state and accessible\n * labeling.\n *\n * @example\n * <ScalarTristateToggle v-model=\"overridden\" label=\"Override default\" />\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport ScalarToggleSlider from './ScalarToggleSlider.vue'\n\nconst props = defineProps<{\n /** Prevents the toggle from being cycled, and dims it visually. */\n disabled?: boolean\n /** Accessible label announced to assistive technology */\n label?: string\n}>()\n\nconst model = defineModel<boolean | undefined>()\n\n/** The current tristate value, derived from the boolean | undefined model. */\nconst state = computed<'unset' | 'on' | 'off'>(() => {\n if (model.value === undefined) {\n return 'unset'\n }\n return model.value ? 'on' : 'off'\n})\n\n/** Slider appearance for each tristate value. */\nconst SLIDER_PROPS = {\n unset: { class: '', thumb: 'center' },\n on: { class: 'bg-green', thumb: 'end' },\n off: { class: 'bg-c-danger', thumb: 'start' },\n} as const\n\n/** Cycles unset -> on -> off -> unset. */\nfunction toggle() {\n if (props.disabled) {\n return\n }\n if (model.value === undefined) {\n model.value = true\n } else if (model.value === true) {\n model.value = false\n } else {\n model.value = undefined\n }\n}\n</script>\n<template>\n <ScalarToggleSlider\n :aria-checked=\"state === 'unset' ? 'mixed' : model\"\n :disabled\n :label\n role=\"checkbox\"\n v-bind=\"SLIDER_PROPS[state]\"\n @click=\"toggle\" />\n</template>\n"],"mappings":";;;;;;;;;;;;;EAmBA,MAAM,QAAQ;EAOd,MAAM,QAAQ,SAAgC,SAAA,aAAC;;EAG/C,MAAM,QAAQ,eAAuC;AACnD,OAAI,MAAM,UAAU,KAAA,EAClB,QAAO;AAET,UAAO,MAAM,QAAQ,OAAO;IAC7B;;EAGD,MAAM,eAAe;GACnB,OAAO;IAAE,OAAO;IAAI,OAAO;IAAU;GACrC,IAAI;IAAE,OAAO;IAAY,OAAO;IAAO;GACvC,KAAK;IAAE,OAAO;IAAe,OAAO;IAAS;GAC9C;;EAGD,SAAS,SAAS;AAChB,OAAI,MAAM,SACR;AAEF,OAAI,MAAM,UAAU,KAAA,EAClB,OAAM,QAAQ;YACL,MAAM,UAAU,KACzB,OAAM,QAAQ;OAEd,OAAM,QAAQ,KAAA;;;uBAKhB,YAMoB,4BANpB,WAMoB;IALjB,gBAAc,MAAA,UAAK,UAAA,UAAyB,MAAA;IAC5C,UAAA,QAAA;IACA,OAAA,QAAA;IACD,MAAK;MACG,aAAa,MAAA,QAAK,EACzB,SAAO,QAAM,CAAA,EAAA,MAAA,IAAA;IAAA;IAAA;IAAA;IAAA,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ScalarCheckboxOption } from '../ScalarCheckboxInput/index.js';
|
|
2
|
+
import type { ScalarTristateOption } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Scalar Tristate Toggle Group component
|
|
5
|
+
*
|
|
6
|
+
* A group of tristate toggle inputs, each independently unset, on, or off.
|
|
7
|
+
*/
|
|
8
|
+
declare const _default: typeof __VLS_export;
|
|
9
|
+
export default _default;
|
|
10
|
+
declare const __VLS_export: import("vue").DefineComponent<{
|
|
11
|
+
options?: ScalarCheckboxOption[];
|
|
12
|
+
} & {
|
|
13
|
+
modelValue?: ScalarTristateOption[];
|
|
14
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
15
|
+
"update:modelValue": (value: ScalarTristateOption[]) => any;
|
|
16
|
+
}, string, import("vue").PublicProps, Readonly<{
|
|
17
|
+
options?: ScalarCheckboxOption[];
|
|
18
|
+
} & {
|
|
19
|
+
modelValue?: ScalarTristateOption[];
|
|
20
|
+
}> & Readonly<{
|
|
21
|
+
"onUpdate:modelValue"?: ((value: ScalarTristateOption[]) => any) | undefined;
|
|
22
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
23
|
+
//# sourceMappingURL=ScalarTristateToggleGroup.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScalarTristateToggleGroup.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarToggle/ScalarTristateToggleGroup.vue"],"names":[],"mappings":"AA6CA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAGlE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAGnD;;;;GAIG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY;cAEN,oBAAoB,EAAE;;iBAuBrB,oBAAoB,EAAE;;;;cAvBvB,oBAAoB,EAAE;;iBAuBrB,oBAAoB,EAAE;;;kFAyE/B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import ScalarTristateToggleGroup_vue_vue_type_script_setup_true_lang_default from "./ScalarTristateToggleGroup.vue.script.js";
|
|
2
|
+
//#region src/components/ScalarToggle/ScalarTristateToggleGroup.vue
|
|
3
|
+
var ScalarTristateToggleGroup_default = ScalarTristateToggleGroup_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { ScalarTristateToggleGroup_default as default };
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=ScalarTristateToggleGroup.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScalarTristateToggleGroup.vue.js","names":[],"sources":["../../../src/components/ScalarToggle/ScalarTristateToggleGroup.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Tristate Toggle Group component\n *\n * A group of tristate toggle inputs, each independently unset, on, or off.\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport type { ScalarCheckboxOption } from '../ScalarCheckboxInput'\nimport { ScalarFormInputGroup } from '../ScalarForm'\nimport ScalarTristateToggleInput from './ScalarTristateToggleInput.vue'\nimport type { ScalarTristateOption } from './types'\n\nconst { options = [] } = defineProps<{\n options?: ScalarCheckboxOption[]\n}>()\n\nconst model = defineModel<ScalarTristateOption[]>({ default: [] })\n\n/** Looks up an option's current tristate value; undefined if it has no entry in the model. */\nfunction getValue(option: ScalarCheckboxOption): boolean | undefined {\n return model.value.find((entry) => entry.value === option.value)?.checked\n}\n\n/** Upserts or removes an option's entry in the model based on its new tristate value. */\nfunction setValue(option: ScalarCheckboxOption, checked: boolean | undefined) {\n const rest = model.value.filter((entry) => entry.value !== option.value)\n model.value = checked === undefined ? rest : [...rest, { ...option, checked }]\n}\n</script>\n<template>\n <ScalarFormInputGroup>\n <ScalarTristateToggleInput\n v-for=\"option in options\"\n :key=\"option.value\"\n :modelValue=\"getValue(option)\"\n @update:modelValue=\"(checked) => setValue(option, checked)\">\n {{ option.label }}\n </ScalarTristateToggleInput>\n </ScalarFormInputGroup>\n</template>\n"],"mappings":""}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import ScalarFormInputGroup_default from "../ScalarForm/ScalarFormInputGroup.vue.js";
|
|
2
|
+
import ScalarTristateToggleInput_default from "./ScalarTristateToggleInput.vue.js";
|
|
3
|
+
import { Fragment, createBlock, createElementBlock, createTextVNode, defineComponent, mergeModels, openBlock, renderList, toDisplayString, unref, useModel, withCtx } from "vue";
|
|
4
|
+
var ScalarTristateToggleGroup_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
5
|
+
__name: "ScalarTristateToggleGroup",
|
|
6
|
+
props: /* @__PURE__ */ mergeModels({ options: { default: () => [] } }, {
|
|
7
|
+
"modelValue": { default: [] },
|
|
8
|
+
"modelModifiers": {}
|
|
9
|
+
}),
|
|
10
|
+
emits: ["update:modelValue"],
|
|
11
|
+
setup(__props) {
|
|
12
|
+
const model = useModel(__props, "modelValue");
|
|
13
|
+
/** Looks up an option's current tristate value; undefined if it has no entry in the model. */
|
|
14
|
+
function getValue(option) {
|
|
15
|
+
return model.value.find((entry) => entry.value === option.value)?.checked;
|
|
16
|
+
}
|
|
17
|
+
/** Upserts or removes an option's entry in the model based on its new tristate value. */
|
|
18
|
+
function setValue(option, checked) {
|
|
19
|
+
const rest = model.value.filter((entry) => entry.value !== option.value);
|
|
20
|
+
model.value = checked === void 0 ? rest : [...rest, {
|
|
21
|
+
...option,
|
|
22
|
+
checked
|
|
23
|
+
}];
|
|
24
|
+
}
|
|
25
|
+
return (_ctx, _cache) => {
|
|
26
|
+
return openBlock(), createBlock(unref(ScalarFormInputGroup_default), null, {
|
|
27
|
+
default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.options, (option) => {
|
|
28
|
+
return openBlock(), createBlock(ScalarTristateToggleInput_default, {
|
|
29
|
+
key: option.value,
|
|
30
|
+
modelValue: getValue(option),
|
|
31
|
+
"onUpdate:modelValue": (checked) => setValue(option, checked)
|
|
32
|
+
}, {
|
|
33
|
+
default: withCtx(() => [createTextVNode(toDisplayString(option.label), 1)]),
|
|
34
|
+
_: 2
|
|
35
|
+
}, 1032, ["modelValue", "onUpdate:modelValue"]);
|
|
36
|
+
}), 128))]),
|
|
37
|
+
_: 1
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
//#endregion
|
|
43
|
+
export { ScalarTristateToggleGroup_vue_vue_type_script_setup_true_lang_default as default };
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=ScalarTristateToggleGroup.vue.script.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScalarTristateToggleGroup.vue.script.js","names":[],"sources":["../../../src/components/ScalarToggle/ScalarTristateToggleGroup.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Tristate Toggle Group component\n *\n * A group of tristate toggle inputs, each independently unset, on, or off.\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport type { ScalarCheckboxOption } from '../ScalarCheckboxInput'\nimport { ScalarFormInputGroup } from '../ScalarForm'\nimport ScalarTristateToggleInput from './ScalarTristateToggleInput.vue'\nimport type { ScalarTristateOption } from './types'\n\nconst { options = [] } = defineProps<{\n options?: ScalarCheckboxOption[]\n}>()\n\nconst model = defineModel<ScalarTristateOption[]>({ default: [] })\n\n/** Looks up an option's current tristate value; undefined if it has no entry in the model. */\nfunction getValue(option: ScalarCheckboxOption): boolean | undefined {\n return model.value.find((entry) => entry.value === option.value)?.checked\n}\n\n/** Upserts or removes an option's entry in the model based on its new tristate value. */\nfunction setValue(option: ScalarCheckboxOption, checked: boolean | undefined) {\n const rest = model.value.filter((entry) => entry.value !== option.value)\n model.value = checked === undefined ? rest : [...rest, { ...option, checked }]\n}\n</script>\n<template>\n <ScalarFormInputGroup>\n <ScalarTristateToggleInput\n v-for=\"option in options\"\n :key=\"option.value\"\n :modelValue=\"getValue(option)\"\n @update:modelValue=\"(checked) => setValue(option, checked)\">\n {{ option.label }}\n </ScalarTristateToggleInput>\n </ScalarFormInputGroup>\n</template>\n"],"mappings":";;;;;;;;;;;EAkBA,MAAM,QAAQ,SAAmC,SAAA,aAAgB;;EAGjE,SAAS,SAAS,QAAmD;AACnE,UAAO,MAAM,MAAM,MAAM,UAAU,MAAM,UAAU,OAAO,MAAM,EAAE;;;EAIpE,SAAS,SAAS,QAA8B,SAA8B;GAC5E,MAAM,OAAO,MAAM,MAAM,QAAQ,UAAU,MAAM,UAAU,OAAO,MAAK;AACvE,SAAM,QAAQ,YAAY,KAAA,IAAY,OAAO,CAAC,GAAG,MAAM;IAAE,GAAG;IAAQ;IAAS,CAAA;;;uBAI7E,YAQuB,MAAA,6BAAA,EAAA,MAAA;2BANM,EAAA,UAAA,KAAA,EAD3B,mBAM4B,UAAA,MAAA,WALT,QAAA,UAAV,WAAM;yBADf,YAM4B,mCAAA;MAJzB,KAAK,OAAO;MACZ,YAAY,SAAS,OAAM;MAC3B,wBAAoB,YAAY,SAAS,QAAQ,QAAO;;6BACvC,CAAA,gBAAA,gBAAf,OAAO,MAAK,EAAA,EAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scalar Tristate Toggle Input component
|
|
3
|
+
*
|
|
4
|
+
* A tristate toggle input component for use in forms, supporting an
|
|
5
|
+
* additional "unset" state alongside on/off.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* <ScalarTristateToggleInput v-model="model">
|
|
9
|
+
* Label
|
|
10
|
+
* </ScalarTristateToggleInput>
|
|
11
|
+
*/
|
|
12
|
+
declare const _default: typeof __VLS_export;
|
|
13
|
+
export default _default;
|
|
14
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
15
|
+
modelValue?: boolean | undefined;
|
|
16
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
17
|
+
"update:modelValue": (value: boolean | undefined) => any;
|
|
18
|
+
}, string, import("vue").PublicProps, Readonly<{
|
|
19
|
+
modelValue?: boolean | undefined;
|
|
20
|
+
}> & Readonly<{
|
|
21
|
+
"onUpdate:modelValue"?: ((value: boolean | undefined) => any) | undefined;
|
|
22
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
23
|
+
default?: (props: {}) => any;
|
|
24
|
+
}>;
|
|
25
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
26
|
+
new (): {
|
|
27
|
+
$slots: S;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=ScalarTristateToggleInput.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScalarTristateToggleInput.vue.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarToggle/ScalarTristateToggleInput.vue"],"names":[],"mappings":"AAiDA;;;;;;;;;;GAUG;wBACkB,OAAO,YAAY;AAAxC,wBAAyC;AAGzC,QAAA,MAAM,YAAY;iBAQL,OAAO,GAAG,SAAS;;;;iBAAnB,OAAO,GAAG,SAAS;;;;cA6ElB,CAAC,KAAK,IAAgB,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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import ScalarTristateToggleInput_vue_vue_type_script_setup_true_lang_default from "./ScalarTristateToggleInput.vue.script.js";
|
|
2
|
+
//#region src/components/ScalarToggle/ScalarTristateToggleInput.vue
|
|
3
|
+
var ScalarTristateToggleInput_default = ScalarTristateToggleInput_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { ScalarTristateToggleInput_default as default };
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=ScalarTristateToggleInput.vue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScalarTristateToggleInput.vue.js","names":[],"sources":["../../../src/components/ScalarToggle/ScalarTristateToggleInput.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Tristate Toggle Input component\n *\n * A tristate toggle input component for use in forms, supporting an\n * additional \"unset\" state alongside on/off.\n *\n * @example\n * <ScalarTristateToggleInput v-model=\"model\">\n * Label\n * </ScalarTristateToggleInput>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { ScalarFormInput } from '../ScalarForm'\nimport ScalarTristateToggle from './ScalarTristateToggle.vue'\n\nconst model = defineModel<boolean | undefined>()\n\ndefineOptions({ inheritAttrs: false })\nconst { stylingAttrsCx, otherAttrs } = useBindCx()\n</script>\n<template>\n <ScalarFormInput\n is=\"label\"\n v-bind=\"\n stylingAttrsCx('cursor-pointer gap-2 hover:bg-b-2', {\n 'text-c-1': model !== undefined,\n })\n \">\n <div class=\"flex-1 text-left min-w-0 truncate\"><slot /></div>\n <ScalarTristateToggle\n v-model=\"model\"\n class=\"shrink-0\"\n v-bind=\"otherAttrs\" />\n </ScalarFormInput>\n</template>\n"],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import ScalarFormInput_default from "../ScalarForm/ScalarFormInput.vue.js";
|
|
2
|
+
import ScalarTristateToggle_default from "./ScalarTristateToggle.vue.js";
|
|
3
|
+
import { useBindCx } from "@scalar/use-hooks/useBindCx";
|
|
4
|
+
import { createBlock, createElementVNode, createVNode, defineComponent, mergeProps, openBlock, renderSlot, unref, useModel, withCtx } from "vue";
|
|
5
|
+
//#region src/components/ScalarToggle/ScalarTristateToggleInput.vue?vue&type=script&setup=true&lang.ts
|
|
6
|
+
var _hoisted_1 = { class: "flex-1 text-left min-w-0 truncate" };
|
|
7
|
+
var ScalarTristateToggleInput_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
|
|
8
|
+
inheritAttrs: false,
|
|
9
|
+
__name: "ScalarTristateToggleInput",
|
|
10
|
+
props: {
|
|
11
|
+
"modelValue": { type: Boolean },
|
|
12
|
+
"modelModifiers": {}
|
|
13
|
+
},
|
|
14
|
+
emits: ["update:modelValue"],
|
|
15
|
+
setup(__props) {
|
|
16
|
+
const model = useModel(__props, "modelValue");
|
|
17
|
+
const { stylingAttrsCx, otherAttrs } = useBindCx();
|
|
18
|
+
return (_ctx, _cache) => {
|
|
19
|
+
return openBlock(), createBlock(unref(ScalarFormInput_default), mergeProps({ is: "label" }, unref(stylingAttrsCx)("cursor-pointer gap-2 hover:bg-b-2", { "text-c-1": model.value !== void 0 })), {
|
|
20
|
+
default: withCtx(() => [createElementVNode("div", _hoisted_1, [renderSlot(_ctx.$slots, "default")]), createVNode(ScalarTristateToggle_default, mergeProps({
|
|
21
|
+
modelValue: model.value,
|
|
22
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => model.value = $event),
|
|
23
|
+
class: "shrink-0"
|
|
24
|
+
}, unref(otherAttrs)), null, 16, ["modelValue"])]),
|
|
25
|
+
_: 3
|
|
26
|
+
}, 16);
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
//#endregion
|
|
31
|
+
export { ScalarTristateToggleInput_vue_vue_type_script_setup_true_lang_default as default };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=ScalarTristateToggleInput.vue.script.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScalarTristateToggleInput.vue.script.js","names":[],"sources":["../../../src/components/ScalarToggle/ScalarTristateToggleInput.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Scalar Tristate Toggle Input component\n *\n * A tristate toggle input component for use in forms, supporting an\n * additional \"unset\" state alongside on/off.\n *\n * @example\n * <ScalarTristateToggleInput v-model=\"model\">\n * Label\n * </ScalarTristateToggleInput>\n */\nexport default {}\n</script>\n<script setup lang=\"ts\">\nimport { useBindCx } from '@scalar/use-hooks/useBindCx'\n\nimport { ScalarFormInput } from '../ScalarForm'\nimport ScalarTristateToggle from './ScalarTristateToggle.vue'\n\nconst model = defineModel<boolean | undefined>()\n\ndefineOptions({ inheritAttrs: false })\nconst { stylingAttrsCx, otherAttrs } = useBindCx()\n</script>\n<template>\n <ScalarFormInput\n is=\"label\"\n v-bind=\"\n stylingAttrsCx('cursor-pointer gap-2 hover:bg-b-2', {\n 'text-c-1': model !== undefined,\n })\n \">\n <div class=\"flex-1 text-left min-w-0 truncate\"><slot /></div>\n <ScalarTristateToggle\n v-model=\"model\"\n class=\"shrink-0\"\n v-bind=\"otherAttrs\" />\n </ScalarFormInput>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;EAoBA,MAAM,QAAQ,SAAgC,SAAA,aAAC;EAG/C,MAAM,EAAE,gBAAgB,eAAe,WAAU;;uBAG/C,YAYkB,MAAA,wBAAA,EAZlB,WAYkB,EAXhB,IAAG,SAAO,EACK,MAAA,eAAc,CAAA,qCAAA,EAAA,YAA4D,MAAA,UAAU,KAAA,GAAA,CAAA,CAAA,EAAA;2BAKtC,CAA7D,mBAA6D,OAA7D,YAA6D,CAAd,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA,EACvD,YAGwB,8BAHxB,WAGwB;iBAFb,MAAA;wEAAK,QAAA;KACd,OAAM;OACE,MAAA,WAAU,CAAA,EAAA,MAAA,IAAA,CAAA,aAAA,CAAA,CAAA,CAAA"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
export { default as ScalarToggle } from './ScalarToggle.vue.js';
|
|
2
2
|
export { default as ScalarToggleGroup } from './ScalarToggleGroup.vue.js';
|
|
3
3
|
export { default as ScalarToggleInput } from './ScalarToggleInput.vue.js';
|
|
4
|
+
export { default as ScalarTristateToggle } from './ScalarTristateToggle.vue.js';
|
|
5
|
+
export { default as ScalarTristateToggleGroup } from './ScalarTristateToggleGroup.vue.js';
|
|
6
|
+
export { default as ScalarTristateToggleInput } from './ScalarTristateToggleInput.vue.js';
|
|
7
|
+
export type { ScalarTristateOption } from './types';
|
|
4
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarToggle/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,yBAAyB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarToggle/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AACtE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAC5E,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,iCAAiC,CAAA;AACtF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,iCAAiC,CAAA;AACtF,YAAY,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import ScalarToggle_default from "./ScalarToggle.vue.js";
|
|
2
2
|
import ScalarToggleInput_default from "./ScalarToggleInput.vue.js";
|
|
3
3
|
import ScalarToggleGroup_default from "./ScalarToggleGroup.vue.js";
|
|
4
|
-
|
|
4
|
+
import ScalarTristateToggle_default from "./ScalarTristateToggle.vue.js";
|
|
5
|
+
import ScalarTristateToggleInput_default from "./ScalarTristateToggleInput.vue.js";
|
|
6
|
+
import ScalarTristateToggleGroup_default from "./ScalarTristateToggleGroup.vue.js";
|
|
7
|
+
export { ScalarToggle_default as ScalarToggle, ScalarToggleGroup_default as ScalarToggleGroup, ScalarToggleInput_default as ScalarToggleInput, ScalarTristateToggle_default as ScalarTristateToggle, ScalarTristateToggleGroup_default as ScalarTristateToggleGroup, ScalarTristateToggleInput_default as ScalarTristateToggleInput };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ScalarCheckboxOption } from '../ScalarCheckboxInput/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* A tristate option for ScalarTristateToggleGroup.
|
|
4
|
+
*
|
|
5
|
+
* The `checked` value is only meaningful when the option is present in the
|
|
6
|
+
* model array — absence from the array means the option is unset.
|
|
7
|
+
*/
|
|
8
|
+
export type ScalarTristateOption = ScalarCheckboxOption & {
|
|
9
|
+
checked: boolean;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/ScalarToggle/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAElE;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,oBAAoB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -40,7 +40,8 @@ export { ScalarTeleport, ScalarTeleportRoot, TELEPORT_SYMBOL, useProvideTeleport
|
|
|
40
40
|
export { ScalarTextArea } from './components/ScalarTextArea/index.js';
|
|
41
41
|
export { ScalarTextInput, ScalarTextInputCopy } from './components/ScalarTextInput/index.js';
|
|
42
42
|
export { ScalarThemeSwatches, useThemeSwatches } from './components/ScalarThemeSwatches/index.js';
|
|
43
|
-
export {
|
|
43
|
+
export type { ScalarTristateOption } from './components/ScalarToggle/index.js';
|
|
44
|
+
export { ScalarToggle, ScalarToggleGroup, ScalarToggleInput, ScalarTristateToggle, ScalarTristateToggleGroup, ScalarTristateToggleInput, } from './components/ScalarToggle/index.js';
|
|
44
45
|
export type { ScalarTooltipPlacement, TooltipConfiguration } from './components/ScalarTooltip/index.js';
|
|
45
46
|
export { ScalarHotkeyTooltip, ScalarTooltip, useTooltip } from './components/ScalarTooltip/index.js';
|
|
46
47
|
export { ScalarVirtualCodeBlock } from './components/ScalarVirtualCodeBlock/index.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AAE7E,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3G,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AAChG,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AACnF,OAAO,EACL,qBAAqB,EACrB,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,oCAAoC,CAAA;AAC3C,YAAY,EACV,4BAA4B,EAC5B,oBAAoB,EACpB,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAC/G,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1F,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EACL,gBAAgB,EAChB,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,GACxB,MAAM,+BAA+B,CAAA;AACtC,YAAY,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpF,OAAO,EACL,UAAU,EACV,eAAe,EACf,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -99,9 +99,12 @@ import ScalarThemeSwatches_default from "./components/ScalarThemeSwatches/Scalar
|
|
|
99
99
|
import ScalarToggle_default from "./components/ScalarToggle/ScalarToggle.vue.js";
|
|
100
100
|
import ScalarToggleInput_default from "./components/ScalarToggle/ScalarToggleInput.vue.js";
|
|
101
101
|
import ScalarToggleGroup_default from "./components/ScalarToggle/ScalarToggleGroup.vue.js";
|
|
102
|
+
import ScalarTristateToggle_default from "./components/ScalarToggle/ScalarTristateToggle.vue.js";
|
|
103
|
+
import ScalarTristateToggleInput_default from "./components/ScalarToggle/ScalarTristateToggleInput.vue.js";
|
|
104
|
+
import ScalarTristateToggleGroup_default from "./components/ScalarToggle/ScalarTristateToggleGroup.vue.js";
|
|
102
105
|
import ScalarVirtualText_default from "./components/ScalarVirtualText/ScalarVirtualText.vue.js";
|
|
103
106
|
import ScalarVirtualCodeBlock_default from "./components/ScalarVirtualCodeBlock/ScalarVirtualCodeBlock.vue.js";
|
|
104
107
|
import ScalarWrappingText_default from "./components/ScalarWrappingText/ScalarWrappingText.vue.js";
|
|
105
108
|
import { addScalarClassesToHeadless } from "./helpers/add-scalar-classes.js";
|
|
106
109
|
import { compose, cva, cx, tw, useBindCx } from "@scalar/use-hooks/useBindCx";
|
|
107
|
-
export { ScalarButton_default as ScalarButton, ScalarCard_default as ScalarCard, ScalarCardFooter_default as ScalarCardFooter, ScalarCardHeader_default as ScalarCardHeader, ScalarCardSection_default as ScalarCardSection, ScalarCheckbox_default as ScalarCheckbox, ScalarCheckboxGroup_default as ScalarCheckboxGroup, ScalarCheckboxInput_default as ScalarCheckboxInput, ScalarCheckboxRadioGroup_default as ScalarCheckboxRadioGroup, ScalarCodeBlock_default as ScalarCodeBlock, ScalarCodeBlockCopy_default as ScalarCodeBlockCopy, ScalarColorModeToggle_default as ScalarColorModeToggle, ScalarColorModeToggleButton_default as ScalarColorModeToggleButton, ScalarColorModeToggleIcon_default as ScalarColorModeToggleIcon, ScalarCombobox_default as ScalarCombobox, ScalarComboboxMultiselect_default as ScalarComboboxMultiselect, ScalarCopy_default as ScalarCopy, ScalarCopyBackdrop_default as ScalarCopyBackdrop, ScalarCopyButton_default as ScalarCopyButton, ScalarDropdown_default as ScalarDropdown, ScalarDropdownButton_default as ScalarDropdownButton, ScalarDropdownDivider_default as ScalarDropdownDivider, ScalarDropdownItem_default as ScalarDropdownItem, ScalarDropdownMenu_default as ScalarDropdownMenu, ScalarErrorBoundary_default as ScalarErrorBoundary, ScalarFileUpload_default as ScalarFileUpload, ScalarFileUploadDropTarget_default as ScalarFileUploadDropTarget, ScalarFileUploadError_default as ScalarFileUploadError, ScalarFileUploadFileList_default as ScalarFileUploadFileList, ScalarFileUploadInput_default as ScalarFileUploadInput, ScalarFileUploadInputCompact_default as ScalarFileUploadInputCompact, ScalarFileUploadLoading_default as ScalarFileUploadLoading, ScalarFloating_default as ScalarFloating, ScalarFloatingBackdrop_default as ScalarFloatingBackdrop, ScalarForm_default as ScalarForm, ScalarFormError_default as ScalarFormError, ScalarFormField_default as ScalarFormField, ScalarFormInput_default as ScalarFormInput, ScalarFormInputGroup_default as ScalarFormInputGroup, ScalarFormSection_default as ScalarFormSection, ScalarHeader_default as ScalarHeader, ScalarHeaderButton_default as ScalarHeaderButton, ScalarHotkey_default as ScalarHotkey, ScalarHotkeyTooltip_default as ScalarHotkeyTooltip, ScalarIcon_default as ScalarIcon, ScalarIconButton_default as ScalarIconButton, ScalarIconLegacyAdapter_default as ScalarIconLegacyAdapter, ScalarListbox_default as ScalarListbox, ScalarListboxCheckbox_default as ScalarListboxCheckbox, ScalarListboxInput_default as ScalarListboxInput, ScalarListboxItem_default as ScalarListboxItem, ScalarLoading_default as ScalarLoading, ScalarMarkdown_default as ScalarMarkdown, ScalarMarkdownSummary_default as ScalarMarkdownSummary, ScalarMenu_default as ScalarMenu, ScalarMenuButton_default as ScalarMenuButton, ScalarMenuLink_default as ScalarMenuLink, ScalarMenuProduct_default as ScalarMenuProduct, ScalarMenuProducts_default as ScalarMenuProducts, ScalarMenuResources_default as ScalarMenuResources, ScalarMenuSection_default as ScalarMenuSection, ScalarMenuSupport_default as ScalarMenuSupport, ScalarMenuTeamPicker_default as ScalarMenuTeamPicker, ScalarMenuTeamProfile_default as ScalarMenuTeamProfile, ScalarMenuWorkspacePicker_default as ScalarMenuWorkspacePicker, ScalarModal_default as ScalarModal, ScalarPopover_default as ScalarPopover, ScalarSavePrompt_default as ScalarSavePrompt, ScalarSearchInput_default as ScalarSearchInput, ScalarSearchResultItem_default as ScalarSearchResultItem, ScalarSearchResultList_default as ScalarSearchResultList, ScalarSidebar_default as ScalarSidebar, ScalarSidebarButton_default as ScalarSidebarButton, ScalarSidebarFooter_default as ScalarSidebarFooter, ScalarSidebarGroup_default as ScalarSidebarGroup, ScalarSidebarGroupToggle_default as ScalarSidebarGroupToggle, ScalarSidebarIndent_default as ScalarSidebarIndent, ScalarSidebarItem_default as ScalarSidebarItem, ScalarSidebarItems_default as ScalarSidebarItems, ScalarSidebarNestedItems_default as ScalarSidebarNestedItems, ScalarSidebarSearchButton_default as ScalarSidebarSearchButton, ScalarSidebarSearchInput_default as ScalarSidebarSearchInput, ScalarSidebarSection_default as ScalarSidebarSection, ScalarSidebarSpacer_default as ScalarSidebarSpacer, ScalarTeleport_default as ScalarTeleport, ScalarTeleportRoot_default as ScalarTeleportRoot, ScalarTextArea_default as ScalarTextArea, ScalarTextInput_default as ScalarTextInput, ScalarTextInputCopy_default as ScalarTextInputCopy, ScalarThemeSwatches_default as ScalarThemeSwatches, ScalarToggle_default as ScalarToggle, ScalarToggleGroup_default as ScalarToggleGroup, ScalarToggleInput_default as ScalarToggleInput, ScalarTooltip_default as ScalarTooltip, ScalarVirtualCodeBlock_default as ScalarVirtualCodeBlock, ScalarVirtualText_default as ScalarVirtualText, ScalarWrappingText_default as ScalarWrappingText, TELEPORT_SYMBOL, addScalarClassesToHeadless, compose, cva, cx, formatHotkeySymbols, isGroups as isScalarComboboxGroups, tw, useBindCx, useLoadingState, useModal, useProvideTeleport, useTeleport, useThemeSwatches, useTooltip };
|
|
110
|
+
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, 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
|
@@ -1448,6 +1448,11 @@
|
|
|
1448
1448
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
1449
1449
|
}
|
|
1450
1450
|
|
|
1451
|
+
.scalar-app .translate-x-1\.25 {
|
|
1452
|
+
--tw-translate-x: calc(4px * 1.25);
|
|
1453
|
+
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
1454
|
+
}
|
|
1455
|
+
|
|
1451
1456
|
.scalar-app .translate-x-2\.5 {
|
|
1452
1457
|
--tw-translate-x: calc(4px * 2.5);
|
|
1453
1458
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
@@ -1891,6 +1896,10 @@
|
|
|
1891
1896
|
background-color: var(--scalar-color-danger);
|
|
1892
1897
|
}
|
|
1893
1898
|
|
|
1899
|
+
.scalar-app .bg-green {
|
|
1900
|
+
background-color: var(--scalar-color-green);
|
|
1901
|
+
}
|
|
1902
|
+
|
|
1894
1903
|
.scalar-app .bg-inherit {
|
|
1895
1904
|
background-color: inherit;
|
|
1896
1905
|
}
|
|
@@ -2319,10 +2328,6 @@
|
|
|
2319
2328
|
color: var(--scalar-color-3);
|
|
2320
2329
|
}
|
|
2321
2330
|
|
|
2322
|
-
.scalar-app .text-c-accent {
|
|
2323
|
-
color: var(--scalar-color-accent);
|
|
2324
|
-
}
|
|
2325
|
-
|
|
2326
2331
|
.scalar-app .text-c-alert {
|
|
2327
2332
|
color: var(--scalar-color-alert);
|
|
2328
2333
|
}
|
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.27.
|
|
13
|
+
"version": "0.27.6",
|
|
14
14
|
"engines": {
|
|
15
15
|
"node": ">=22"
|
|
16
16
|
},
|
|
@@ -221,11 +221,11 @@
|
|
|
221
221
|
"radix-vue": "^1.9.17",
|
|
222
222
|
"vue": "^3.5.30",
|
|
223
223
|
"vue-component-type-helpers": "^3.2.6",
|
|
224
|
-
"@scalar/icons": "0.7.3",
|
|
225
224
|
"@scalar/code-highlight": "0.4.1",
|
|
226
|
-
"@scalar/
|
|
225
|
+
"@scalar/icons": "0.7.3",
|
|
226
|
+
"@scalar/helpers": "0.9.0",
|
|
227
227
|
"@scalar/use-hooks": "0.4.7",
|
|
228
|
-
"@scalar/
|
|
228
|
+
"@scalar/themes": "0.16.2"
|
|
229
229
|
},
|
|
230
230
|
"devDependencies": {
|
|
231
231
|
"@playwright/test": "1.59.1",
|