@treeui/vue 0.13.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/TAppShell.cjs.map +1 -1
- package/dist/components/TAppShell.js.map +1 -1
- package/dist/components/TAppShell.vue.d.ts +25 -0
- package/dist/components/TAppShell.vue.d.ts.map +1 -1
- package/dist/components/TAppShell.vue_vue_type_script_setup_true_lang.cjs +1 -1
- package/dist/components/TAppShell.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
- package/dist/components/TAppShell.vue_vue_type_script_setup_true_lang.js +166 -104
- package/dist/components/TAppShell.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/TButton.cjs.map +1 -1
- package/dist/components/TButton.js.map +1 -1
- package/dist/components/TButton.vue.d.ts +8 -2
- package/dist/components/TButton.vue.d.ts.map +1 -1
- package/dist/components/TButton.vue_vue_type_script_setup_true_lang.cjs +1 -1
- package/dist/components/TButton.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
- package/dist/components/TButton.vue_vue_type_script_setup_true_lang.js +12 -3
- package/dist/components/TButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/TChart.cjs.map +1 -1
- package/dist/components/TChart.js.map +1 -1
- package/dist/components/TChart.vue.d.ts.map +1 -1
- package/dist/components/TChart.vue_vue_type_script_setup_true_lang.cjs +1 -1
- package/dist/components/TChart.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
- package/dist/components/TChart.vue_vue_type_script_setup_true_lang.js +58 -58
- package/dist/components/TChart.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/TColorSwatch.cjs +2 -0
- package/dist/components/TColorSwatch.cjs.map +1 -0
- package/dist/components/TColorSwatch.js +7 -0
- package/dist/components/TColorSwatch.js.map +1 -0
- package/dist/components/TColorSwatch.vue.d.ts +33 -0
- package/dist/components/TColorSwatch.vue.d.ts.map +1 -0
- package/dist/components/TColorSwatch.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TColorSwatch.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TColorSwatch.vue_vue_type_script_setup_true_lang.js +63 -0
- package/dist/components/TColorSwatch.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TDropdown.vue.d.ts +1 -1
- package/dist/components/TDropdown.vue.d.ts.map +1 -1
- package/dist/components/TFileUpload.cjs.map +1 -1
- package/dist/components/TFileUpload.js.map +1 -1
- package/dist/components/TFileUpload.vue.d.ts +77 -10
- package/dist/components/TFileUpload.vue.d.ts.map +1 -1
- package/dist/components/TFileUpload.vue_vue_type_script_setup_true_lang.cjs +1 -1
- package/dist/components/TFileUpload.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
- package/dist/components/TFileUpload.vue_vue_type_script_setup_true_lang.js +393 -144
- package/dist/components/TFileUpload.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/TInput.cjs.map +1 -1
- package/dist/components/TInput.js.map +1 -1
- package/dist/components/TInput.vue.d.ts +4 -1
- package/dist/components/TInput.vue.d.ts.map +1 -1
- package/dist/components/TInput.vue_vue_type_script_setup_true_lang.cjs +1 -1
- package/dist/components/TInput.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
- package/dist/components/TInput.vue_vue_type_script_setup_true_lang.js +2 -0
- package/dist/components/TInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/TKbd.cjs +2 -0
- package/dist/components/TKbd.cjs.map +1 -0
- package/dist/components/TKbd.js +7 -0
- package/dist/components/TKbd.js.map +1 -0
- package/dist/components/TKbd.vue.d.ts +18 -0
- package/dist/components/TKbd.vue.d.ts.map +1 -0
- package/dist/components/TKbd.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TKbd.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TKbd.vue_vue_type_script_setup_true_lang.js +12 -0
- package/dist/components/TKbd.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TNavMenu.cjs.map +1 -1
- package/dist/components/TNavMenu.js.map +1 -1
- package/dist/components/TNavMenu.vue.d.ts +9 -0
- package/dist/components/TNavMenu.vue.d.ts.map +1 -1
- package/dist/components/TNavMenu.vue_vue_type_script_setup_true_lang.cjs +1 -1
- package/dist/components/TNavMenu.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
- package/dist/components/TNavMenu.vue_vue_type_script_setup_true_lang.js +67 -55
- package/dist/components/TNavMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/TPage.cjs +2 -0
- package/dist/components/TPage.cjs.map +1 -0
- package/dist/components/TPage.js +7 -0
- package/dist/components/TPage.js.map +1 -0
- package/dist/components/TPage.vue.d.ts +35 -0
- package/dist/components/TPage.vue.d.ts.map +1 -0
- package/dist/components/TPage.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TPage.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TPage.vue_vue_type_script_setup_true_lang.js +49 -0
- package/dist/components/TPage.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TPageHeader.cjs +2 -0
- package/dist/components/TPageHeader.cjs.map +1 -0
- package/dist/components/TPageHeader.js +7 -0
- package/dist/components/TPageHeader.js.map +1 -0
- package/dist/components/TPageHeader.vue.d.ts +40 -0
- package/dist/components/TPageHeader.vue.d.ts.map +1 -0
- package/dist/components/TPageHeader.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TPageHeader.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TPageHeader.vue_vue_type_script_setup_true_lang.js +54 -0
- package/dist/components/TPageHeader.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TPopover.vue.d.ts +1 -1
- package/dist/components/TPopover.vue.d.ts.map +1 -1
- package/dist/components/TSelect.cjs.map +1 -1
- package/dist/components/TSelect.js.map +1 -1
- package/dist/components/TSelect.vue.d.ts +4 -1
- package/dist/components/TSelect.vue.d.ts.map +1 -1
- package/dist/components/TSelect.vue_vue_type_script_setup_true_lang.cjs +1 -1
- package/dist/components/TSelect.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
- package/dist/components/TSelect.vue_vue_type_script_setup_true_lang.js +2 -0
- package/dist/components/TSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/TSidebar.vue_vue_type_script_setup_true_lang.cjs +1 -1
- package/dist/components/TSidebar.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
- package/dist/components/TSidebar.vue_vue_type_script_setup_true_lang.js +1 -4
- package/dist/components/TSidebar.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/TSpacer.cjs +2 -0
- package/dist/components/TSpacer.cjs.map +1 -0
- package/dist/components/TSpacer.js +7 -0
- package/dist/components/TSpacer.js.map +1 -0
- package/dist/components/TSpacer.vue.d.ts +8 -0
- package/dist/components/TSpacer.vue.d.ts.map +1 -0
- package/dist/components/TSpacer.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TSpacer.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TSpacer.vue_vue_type_script_setup_true_lang.js +16 -0
- package/dist/components/TSpacer.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TSplit.cjs +2 -0
- package/dist/components/TSplit.cjs.map +1 -0
- package/dist/components/TSplit.js +7 -0
- package/dist/components/TSplit.js.map +1 -0
- package/dist/components/TSplit.vue.d.ts +38 -0
- package/dist/components/TSplit.vue.d.ts.map +1 -0
- package/dist/components/TSplit.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TSplit.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TSplit.vue_vue_type_script_setup_true_lang.js +43 -0
- package/dist/components/TSplit.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TStack.cjs.map +1 -1
- package/dist/components/TStack.js.map +1 -1
- package/dist/components/TStack.vue.d.ts +3 -0
- package/dist/components/TStack.vue.d.ts.map +1 -1
- package/dist/components/TStack.vue_vue_type_script_setup_true_lang.cjs +1 -1
- package/dist/components/TStack.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
- package/dist/components/TStack.vue_vue_type_script_setup_true_lang.js +6 -1
- package/dist/components/TStack.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/TStackItem.cjs +2 -0
- package/dist/components/TStackItem.cjs.map +1 -0
- package/dist/components/TStackItem.js +7 -0
- package/dist/components/TStackItem.js.map +1 -0
- package/dist/components/TStackItem.vue.d.ts +38 -0
- package/dist/components/TStackItem.vue.d.ts.map +1 -0
- package/dist/components/TStackItem.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TStackItem.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TStackItem.vue_vue_type_script_setup_true_lang.js +45 -0
- package/dist/components/TStackItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TText.cjs +2 -0
- package/dist/components/TText.cjs.map +1 -0
- package/dist/components/TText.js +7 -0
- package/dist/components/TText.js.map +1 -0
- package/dist/components/TText.vue.d.ts +39 -0
- package/dist/components/TText.vue.d.ts.map +1 -0
- package/dist/components/TText.vue_vue_type_script_setup_true_lang.cjs +2 -0
- package/dist/components/TText.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
- package/dist/components/TText.vue_vue_type_script_setup_true_lang.js +32 -0
- package/dist/components/TText.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/TTextarea.cjs.map +1 -1
- package/dist/components/TTextarea.js.map +1 -1
- package/dist/components/TTextarea.vue.d.ts +4 -1
- package/dist/components/TTextarea.vue.d.ts.map +1 -1
- package/dist/components/TTextarea.vue_vue_type_script_setup_true_lang.cjs +1 -1
- package/dist/components/TTextarea.vue_vue_type_script_setup_true_lang.cjs.map +1 -1
- package/dist/components/TTextarea.vue_vue_type_script_setup_true_lang.js +2 -0
- package/dist/components/TTextarea.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/index.d.ts +12 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/composables/useTheme.cjs +2 -0
- package/dist/composables/useTheme.cjs.map +1 -0
- package/dist/composables/useTheme.d.ts +38 -0
- package/dist/composables/useTheme.d.ts.map +1 -0
- package/dist/composables/useTheme.js +54 -0
- package/dist/composables/useTheme.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +64 -55
- package/dist/plugin.cjs +1 -1
- package/dist/plugin.cjs.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +113 -97
- package/dist/plugin.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/contracts.cjs +1 -1
- package/dist/types/contracts.cjs.map +1 -1
- package/dist/types/contracts.d.ts +8 -1
- package/dist/types/contracts.d.ts.map +1 -1
- package/dist/types/contracts.js +8 -2
- package/dist/types/contracts.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { TSize } from '../types/contracts';
|
|
1
|
+
import { TFieldWidth, TSize } from '../types/contracts';
|
|
2
2
|
type __VLS_Props = {
|
|
3
3
|
modelValue?: string;
|
|
4
4
|
size?: TSize;
|
|
5
|
+
/** Inline-size cap. Fluid (`full`) by default. */
|
|
6
|
+
width?: TFieldWidth;
|
|
5
7
|
disabled?: boolean;
|
|
6
8
|
loading?: boolean;
|
|
7
9
|
invalid?: boolean;
|
|
@@ -17,6 +19,7 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {
|
|
|
17
19
|
modelValue: string;
|
|
18
20
|
disabled: boolean;
|
|
19
21
|
size: TSize;
|
|
22
|
+
width: TFieldWidth;
|
|
20
23
|
loading: boolean;
|
|
21
24
|
invalid: boolean;
|
|
22
25
|
placeholder: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TTextarea.vue.d.ts","sourceRoot":"","sources":["../../src/components/TTextarea.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TTextarea.vue.d.ts","sourceRoot":"","sources":["../../src/components/TTextarea.vue"],"names":[],"mappings":"AA8GA,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAO7D,KAAK,WAAW,GAAG;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,kDAAkD;IAClD,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;;;;;;gBAVa,MAAM;cAIR,OAAO;UAHX,KAAK;WAEJ,WAAW;aAET,OAAO;aACP,OAAO;iBACH,MAAM;UACb,MAAM;cACF,OAAO;;;;AAuJtB,wBASG"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("./TSpinner.cjs");let t=require("vue");var n=[`value`,`placeholder`,`disabled`,`rows`,`aria-invalid`],r=(0,t.defineComponent)({inheritAttrs:!1,__name:`TTextarea`,props:{modelValue:{default:``},size:{default:`md`},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},invalid:{type:Boolean,default:!1},placeholder:{default:``},rows:{default:3},autoGrow:{type:Boolean,default:!1}},emits:[`update:modelValue`],setup(r,{emit:i}){let a=r,o=i,s=(0,t.useAttrs)(),c=(0,t.ref)(null),l=(0,t.computed)(()=>[`t-textarea`,`t-textarea--${a.size}`,{"is-disabled":a.disabled,"is-invalid":a.invalid,"is-loading":a.loading},s.class]),u=(0,t.computed)(()=>s.style),d=(0,t.computed)(()=>{let{class:e,style:t,...n}=s;return n}),f=(0,t.computed)(()=>`${a.modelValue??``}`),p=e=>{o(`update:modelValue`,e.target.value)},m=()=>{let e=c.value;!e||!a.autoGrow||(e.style.height=`auto`,e.style.height=`${e.scrollHeight}px`)};return(0,t.watch)(()=>a.modelValue,async()=>{a.autoGrow&&(await(0,t.nextTick)(),m())}),(i,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{class:(0,t.normalizeClass)(l.value),style:(0,t.normalizeStyle)(u.value)},[(0,t.createElementVNode)(`textarea`,(0,t.mergeProps)({ref_key:`textareaRef`,ref:c},d.value,{class:`t-textarea__field`,value:f.value,placeholder:r.placeholder,disabled:r.disabled,rows:r.rows,"aria-invalid":r.invalid||void 0,onInput:p}),null,16,n),r.loading?((0,t.openBlock)(),(0,t.createBlock)(e.default,{key:0,size:`sm`,label:`Loading`})):(0,t.createCommentVNode)(``,!0)],6))}});exports.default=r;
|
|
1
|
+
const e=require("./TSpinner.cjs");let t=require("vue");var n=[`value`,`placeholder`,`disabled`,`rows`,`aria-invalid`],r=(0,t.defineComponent)({inheritAttrs:!1,__name:`TTextarea`,props:{modelValue:{default:``},size:{default:`md`},width:{default:`full`},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},invalid:{type:Boolean,default:!1},placeholder:{default:``},rows:{default:3},autoGrow:{type:Boolean,default:!1}},emits:[`update:modelValue`],setup(r,{emit:i}){let a=r,o=i,s=(0,t.useAttrs)(),c=(0,t.ref)(null),l=(0,t.computed)(()=>[`t-textarea`,`t-textarea--${a.size}`,a.width===`full`?null:`t-field-width--${a.width}`,{"is-disabled":a.disabled,"is-invalid":a.invalid,"is-loading":a.loading},s.class]),u=(0,t.computed)(()=>s.style),d=(0,t.computed)(()=>{let{class:e,style:t,...n}=s;return n}),f=(0,t.computed)(()=>`${a.modelValue??``}`),p=e=>{o(`update:modelValue`,e.target.value)},m=()=>{let e=c.value;!e||!a.autoGrow||(e.style.height=`auto`,e.style.height=`${e.scrollHeight}px`)};return(0,t.watch)(()=>a.modelValue,async()=>{a.autoGrow&&(await(0,t.nextTick)(),m())}),(i,a)=>((0,t.openBlock)(),(0,t.createElementBlock)(`label`,{class:(0,t.normalizeClass)(l.value),style:(0,t.normalizeStyle)(u.value)},[(0,t.createElementVNode)(`textarea`,(0,t.mergeProps)({ref_key:`textareaRef`,ref:c},d.value,{class:`t-textarea__field`,value:f.value,placeholder:r.placeholder,disabled:r.disabled,rows:r.rows,"aria-invalid":r.invalid||void 0,onInput:p}),null,16,n),r.loading?((0,t.openBlock)(),(0,t.createBlock)(e.default,{key:0,size:`sm`,label:`Loading`})):(0,t.createCommentVNode)(``,!0)],6))}});exports.default=r;
|
|
2
2
|
//# sourceMappingURL=TTextarea.vue_vue_type_script_setup_true_lang.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TTextarea.vue_vue_type_script_setup_true_lang.cjs","names":[],"sources":["../../src/components/TTextarea.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, useAttrs, ref, watch, nextTick } from 'vue';\nimport type { TSize } from '../types/contracts';\nimport TSpinner from './TSpinner.vue';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: string;\n size?: TSize;\n disabled?: boolean;\n loading?: boolean;\n invalid?: boolean;\n placeholder?: string;\n rows?: number;\n autoGrow?: boolean;\n }>(),\n {\n modelValue: '',\n size: 'md',\n disabled: false,\n loading: false,\n invalid: false,\n placeholder: '',\n rows: 3,\n autoGrow: false,\n },\n);\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string];\n}>();\n\nconst attrs = useAttrs();\nconst textareaRef = ref<HTMLTextAreaElement | null>(null);\n\nconst rootClasses = computed(() => [\n 't-textarea',\n `t-textarea--${props.size}`,\n {\n 'is-disabled': props.disabled,\n 'is-invalid': props.invalid,\n 'is-loading': props.loading,\n },\n attrs.class,\n]);\n\nconst rootStyle = computed(() => attrs.style);\n\nconst textareaAttrs = computed(() => {\n const { class: _class, style: _style, ...rest } = attrs;\n return rest;\n});\n\nconst stringValue = computed(() => `${props.modelValue ?? ''}`);\n\nconst onInput = (event: Event) => {\n emit('update:modelValue', (event.target as HTMLTextAreaElement).value);\n};\n\nconst adjustHeight = () => {\n const el = textareaRef.value;\n if (!el || !props.autoGrow) return;\n el.style.height = 'auto';\n el.style.height = `${el.scrollHeight}px`;\n};\n\nwatch(\n () => props.modelValue,\n async () => {\n if (!props.autoGrow) return;\n await nextTick();\n adjustHeight();\n },\n);\n</script>\n\n<template>\n <label\n :class=\"rootClasses\"\n :style=\"rootStyle\"\n >\n <textarea\n ref=\"textareaRef\"\n v-bind=\"textareaAttrs\"\n class=\"t-textarea__field\"\n :value=\"stringValue\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :rows=\"rows\"\n :aria-invalid=\"invalid || undefined\"\n @input=\"onInput\"\n />\n <TSpinner\n v-if=\"loading\"\n size=\"sm\"\n label=\"Loading\"\n />\n </label>\n</template>\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"TTextarea.vue_vue_type_script_setup_true_lang.cjs","names":[],"sources":["../../src/components/TTextarea.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, useAttrs, ref, watch, nextTick } from 'vue';\nimport type { TFieldWidth, TSize } from '../types/contracts';\nimport TSpinner from './TSpinner.vue';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: string;\n size?: TSize;\n /** Inline-size cap. Fluid (`full`) by default. */\n width?: TFieldWidth;\n disabled?: boolean;\n loading?: boolean;\n invalid?: boolean;\n placeholder?: string;\n rows?: number;\n autoGrow?: boolean;\n }>(),\n {\n modelValue: '',\n size: 'md',\n width: 'full',\n disabled: false,\n loading: false,\n invalid: false,\n placeholder: '',\n rows: 3,\n autoGrow: false,\n },\n);\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string];\n}>();\n\nconst attrs = useAttrs();\nconst textareaRef = ref<HTMLTextAreaElement | null>(null);\n\nconst rootClasses = computed(() => [\n 't-textarea',\n `t-textarea--${props.size}`,\n props.width !== 'full' ? `t-field-width--${props.width}` : null,\n {\n 'is-disabled': props.disabled,\n 'is-invalid': props.invalid,\n 'is-loading': props.loading,\n },\n attrs.class,\n]);\n\nconst rootStyle = computed(() => attrs.style);\n\nconst textareaAttrs = computed(() => {\n const { class: _class, style: _style, ...rest } = attrs;\n return rest;\n});\n\nconst stringValue = computed(() => `${props.modelValue ?? ''}`);\n\nconst onInput = (event: Event) => {\n emit('update:modelValue', (event.target as HTMLTextAreaElement).value);\n};\n\nconst adjustHeight = () => {\n const el = textareaRef.value;\n if (!el || !props.autoGrow) return;\n el.style.height = 'auto';\n el.style.height = `${el.scrollHeight}px`;\n};\n\nwatch(\n () => props.modelValue,\n async () => {\n if (!props.autoGrow) return;\n await nextTick();\n adjustHeight();\n },\n);\n</script>\n\n<template>\n <label\n :class=\"rootClasses\"\n :style=\"rootStyle\"\n >\n <textarea\n ref=\"textareaRef\"\n v-bind=\"textareaAttrs\"\n class=\"t-textarea__field\"\n :value=\"stringValue\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :rows=\"rows\"\n :aria-invalid=\"invalid || undefined\"\n @input=\"onInput\"\n />\n <TSpinner\n v-if=\"loading\"\n size=\"sm\"\n label=\"Loading\"\n />\n </label>\n</template>\n"],"mappings":"+dASA,IAAM,EAAQ,EA0BR,EAAO,EAIP,GAAA,EAAA,EAAA,SAAA,CAAiB,EACjB,GAAA,EAAA,EAAA,IAAA,CAA8C,IAAI,EAElD,GAAA,EAAA,EAAA,SAAA,KAA6B,CACjC,aACA,eAAe,EAAM,OACrB,EAAM,QAAU,OAA2C,KAAlC,kBAAkB,EAAM,QACjD,CACE,cAAe,EAAM,SACrB,aAAc,EAAM,QACpB,aAAc,EAAM,OACtB,EACA,EAAM,KACR,CAAC,EAEK,GAAA,EAAA,EAAA,SAAA,KAA2B,EAAM,KAAK,EAEtC,GAAA,EAAA,EAAA,SAAA,KAA+B,CACnC,GAAM,CAAE,MAAO,EAAQ,MAAO,EAAQ,GAAG,GAAS,EAClD,OAAO,CACT,CAAC,EAEK,GAAA,EAAA,EAAA,SAAA,KAA6B,GAAG,EAAM,YAAc,IAAI,EAExD,EAAW,GAAiB,CAChC,EAAK,oBAAsB,EAAM,OAA+B,KAAK,CACvE,EAEM,MAAqB,CACzB,IAAM,EAAK,EAAY,MACnB,CAAC,GAAM,CAAC,EAAM,WAClB,EAAG,MAAM,OAAS,OAClB,EAAG,MAAM,OAAS,GAAG,EAAG,aAAa,IACvC,SAEA,EAAA,EAAA,MAAA,KACQ,EAAM,WACZ,SAAY,CACL,EAAM,WACX,MAAA,EAAA,EAAA,SAAA,CAAe,EACf,EAAa,EACf,CACF,qDAwBU,QAAA,CAnBL,OAAA,EAAA,EAAA,eAAA,CAAO,EAAA,KAAW,EAClB,OAAA,EAAA,EAAA,eAAA,CAAO,EAAA,KAAS,6BAYf,YAAA,EAAA,EAAA,WAAA,CAAA,SATI,cAAJ,IAAI,GACI,EAAA,MAAa,CACrB,MAAM,oBACL,MAAO,EAAA,MACP,YAAa,EAAA,YACb,SAAU,EAAA,SACV,KAAM,EAAA,KACN,eAAc,EAAA,SAAW,IAAA,GAClB,uBAGF,EAAA,UAAA,EAAA,EAAA,UAAA,CAAA,GAAA,EAAA,EAAA,YAAA,CAGN,EAAA,QAAA,OAFA,KAAK,KACL,MAAM"}
|
|
@@ -13,6 +13,7 @@ var h = [
|
|
|
13
13
|
props: {
|
|
14
14
|
modelValue: { default: "" },
|
|
15
15
|
size: { default: "md" },
|
|
16
|
+
width: { default: "full" },
|
|
16
17
|
disabled: {
|
|
17
18
|
type: Boolean,
|
|
18
19
|
default: !1
|
|
@@ -37,6 +38,7 @@ var h = [
|
|
|
37
38
|
let _ = o, v = g, y = p(), b = f(null), x = t(() => [
|
|
38
39
|
"t-textarea",
|
|
39
40
|
`t-textarea--${_.size}`,
|
|
41
|
+
_.width === "full" ? null : `t-field-width--${_.width}`,
|
|
40
42
|
{
|
|
41
43
|
"is-disabled": _.disabled,
|
|
42
44
|
"is-invalid": _.invalid,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TTextarea.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../src/components/TTextarea.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, useAttrs, ref, watch, nextTick } from 'vue';\nimport type { TSize } from '../types/contracts';\nimport TSpinner from './TSpinner.vue';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: string;\n size?: TSize;\n disabled?: boolean;\n loading?: boolean;\n invalid?: boolean;\n placeholder?: string;\n rows?: number;\n autoGrow?: boolean;\n }>(),\n {\n modelValue: '',\n size: 'md',\n disabled: false,\n loading: false,\n invalid: false,\n placeholder: '',\n rows: 3,\n autoGrow: false,\n },\n);\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string];\n}>();\n\nconst attrs = useAttrs();\nconst textareaRef = ref<HTMLTextAreaElement | null>(null);\n\nconst rootClasses = computed(() => [\n 't-textarea',\n `t-textarea--${props.size}`,\n {\n 'is-disabled': props.disabled,\n 'is-invalid': props.invalid,\n 'is-loading': props.loading,\n },\n attrs.class,\n]);\n\nconst rootStyle = computed(() => attrs.style);\n\nconst textareaAttrs = computed(() => {\n const { class: _class, style: _style, ...rest } = attrs;\n return rest;\n});\n\nconst stringValue = computed(() => `${props.modelValue ?? ''}`);\n\nconst onInput = (event: Event) => {\n emit('update:modelValue', (event.target as HTMLTextAreaElement).value);\n};\n\nconst adjustHeight = () => {\n const el = textareaRef.value;\n if (!el || !props.autoGrow) return;\n el.style.height = 'auto';\n el.style.height = `${el.scrollHeight}px`;\n};\n\nwatch(\n () => props.modelValue,\n async () => {\n if (!props.autoGrow) return;\n await nextTick();\n adjustHeight();\n },\n);\n</script>\n\n<template>\n <label\n :class=\"rootClasses\"\n :style=\"rootStyle\"\n >\n <textarea\n ref=\"textareaRef\"\n v-bind=\"textareaAttrs\"\n class=\"t-textarea__field\"\n :value=\"stringValue\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :rows=\"rows\"\n :aria-invalid=\"invalid || undefined\"\n @input=\"onInput\"\n />\n <TSpinner\n v-if=\"loading\"\n size=\"sm\"\n label=\"Loading\"\n />\n </label>\n</template>\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"TTextarea.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../src/components/TTextarea.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, useAttrs, ref, watch, nextTick } from 'vue';\nimport type { TFieldWidth, TSize } from '../types/contracts';\nimport TSpinner from './TSpinner.vue';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: string;\n size?: TSize;\n /** Inline-size cap. Fluid (`full`) by default. */\n width?: TFieldWidth;\n disabled?: boolean;\n loading?: boolean;\n invalid?: boolean;\n placeholder?: string;\n rows?: number;\n autoGrow?: boolean;\n }>(),\n {\n modelValue: '',\n size: 'md',\n width: 'full',\n disabled: false,\n loading: false,\n invalid: false,\n placeholder: '',\n rows: 3,\n autoGrow: false,\n },\n);\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string];\n}>();\n\nconst attrs = useAttrs();\nconst textareaRef = ref<HTMLTextAreaElement | null>(null);\n\nconst rootClasses = computed(() => [\n 't-textarea',\n `t-textarea--${props.size}`,\n props.width !== 'full' ? `t-field-width--${props.width}` : null,\n {\n 'is-disabled': props.disabled,\n 'is-invalid': props.invalid,\n 'is-loading': props.loading,\n },\n attrs.class,\n]);\n\nconst rootStyle = computed(() => attrs.style);\n\nconst textareaAttrs = computed(() => {\n const { class: _class, style: _style, ...rest } = attrs;\n return rest;\n});\n\nconst stringValue = computed(() => `${props.modelValue ?? ''}`);\n\nconst onInput = (event: Event) => {\n emit('update:modelValue', (event.target as HTMLTextAreaElement).value);\n};\n\nconst adjustHeight = () => {\n const el = textareaRef.value;\n if (!el || !props.autoGrow) return;\n el.style.height = 'auto';\n el.style.height = `${el.scrollHeight}px`;\n};\n\nwatch(\n () => props.modelValue,\n async () => {\n if (!props.autoGrow) return;\n await nextTick();\n adjustHeight();\n },\n);\n</script>\n\n<template>\n <label\n :class=\"rootClasses\"\n :style=\"rootStyle\"\n >\n <textarea\n ref=\"textareaRef\"\n v-bind=\"textareaAttrs\"\n class=\"t-textarea__field\"\n :value=\"stringValue\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :rows=\"rows\"\n :aria-invalid=\"invalid || undefined\"\n @input=\"onInput\"\n />\n <TSpinner\n v-if=\"loading\"\n size=\"sm\"\n label=\"Loading\"\n />\n </label>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASA,IAAM,IAAQ,GA0BR,IAAO,GAIP,IAAQ,EAAS,GACjB,IAAc,EAAgC,IAAI,GAElD,IAAc,QAAe;GACjC;GACA,eAAe,EAAM;GACrB,EAAM,UAAU,SAA2C,OAAlC,kBAAkB,EAAM;GACjD;IACE,eAAe,EAAM;IACrB,cAAc,EAAM;IACpB,cAAc,EAAM;GACtB;GACA,EAAM;EACR,CAAC,GAEK,IAAY,QAAe,EAAM,KAAK,GAEtC,IAAgB,QAAe;GACnC,IAAM,EAAE,OAAO,GAAQ,OAAO,GAAQ,GAAG,MAAS;GAClD,OAAO;EACT,CAAC,GAEK,IAAc,QAAe,GAAG,EAAM,cAAc,IAAI,GAExD,KAAW,MAAiB;GAChC,EAAK,qBAAsB,EAAM,OAA+B,KAAK;EACvE,GAEM,UAAqB;GACzB,IAAM,IAAK,EAAY;GACnB,CAAC,KAAM,CAAC,EAAM,aAClB,EAAG,MAAM,SAAS,QAClB,EAAG,MAAM,SAAS,GAAG,EAAG,aAAa;EACvC;SAEA,QACQ,EAAM,YACZ,YAAY;GACL,EAAM,aACX,MAAM,EAAS,GACf,EAAa;EACf,CACF,mBAIE,EAoBQ,SAAA;GAnBL,OAAK,EAAE,EAAA,KAAW;GAClB,OAAK,EAAE,EAAA,KAAS;MAEjB,EAUE,YAVF,EAUE;YATI;GAAJ,KAAI;KACI,EAAA,OAAa;GACrB,OAAM;GACL,OAAO,EAAA;GACP,aAAa,EAAA;GACb,UAAU,EAAA;GACV,MAAM,EAAA;GACN,gBAAc,EAAA,WAAW,KAAA;GAClB;oBAGF,EAAA,WAAA,EAAA,GADR,EAIE,GAAA;;GAFA,MAAK;GACL,OAAM"}
|
|
@@ -23,7 +23,7 @@ export { default as TFileUpload } from './TFileUpload.vue';
|
|
|
23
23
|
export { default as TMultiSelect } from './TMultiSelect.vue';
|
|
24
24
|
export type { TMultiSelectOption } from './TMultiSelect.vue';
|
|
25
25
|
export { default as TGrid } from './TGrid.vue';
|
|
26
|
-
export type { TFileUploadRejection, TFileUploadRejectionReason, } from './TFileUpload.vue';
|
|
26
|
+
export type { TFileUploadCancelPayload, TFileUploadFileSlotProps, TFileUploadRejection, TFileUploadRejectionReason, TFileUploadRetryPayload, TFileUploadState, TFileUploadStateSource, TFileUploadStatus, } from './TFileUpload.vue';
|
|
27
27
|
export { default as TNavbar } from './TNavbar.vue';
|
|
28
28
|
export { default as TAppBar } from './TNavbar.vue';
|
|
29
29
|
export { default as TLink } from './TLink.vue';
|
|
@@ -42,8 +42,16 @@ export { default as TInput } from './TInput.vue';
|
|
|
42
42
|
export { default as TNumberInput } from './TNumberInput.vue';
|
|
43
43
|
export { default as TSelectableList } from './TSelectableList.vue';
|
|
44
44
|
export type { TSelectableListItem } from './TSelectableList.vue';
|
|
45
|
+
export { default as TColorSwatch } from './TColorSwatch.vue';
|
|
46
|
+
export type { TColorSwatchOption } from './TColorSwatch.vue';
|
|
45
47
|
export { default as TStack } from './TStack.vue';
|
|
46
48
|
export type { TStackDirection } from './TStack.vue';
|
|
49
|
+
export { default as TStackItem } from './TStackItem.vue';
|
|
50
|
+
export { default as TSplit } from './TSplit.vue';
|
|
51
|
+
export { default as TSpacer } from './TSpacer.vue';
|
|
52
|
+
export { default as TKbd } from './TKbd.vue';
|
|
53
|
+
export { default as TText } from './TText.vue';
|
|
54
|
+
export type { TTextSize, TTextTone, TTextWeight } from './TText.vue';
|
|
47
55
|
export { default as TTreeView } from './TTreeView.vue';
|
|
48
56
|
export type { TTreeViewNode, TTreeViewSelectionMode } from './tree-view';
|
|
49
57
|
export { default as TSteps } from './TSteps.vue';
|
|
@@ -60,6 +68,9 @@ export type { TStatTone, TStatTrendDirection } from './TStat.vue';
|
|
|
60
68
|
export { default as TSwitch } from './TSwitch.vue';
|
|
61
69
|
export { default as TTooltip } from './TTooltip.vue';
|
|
62
70
|
export { default as TFormField } from './TFormField.vue';
|
|
71
|
+
export { default as TPage } from './TPage.vue';
|
|
72
|
+
export type { TPageGap } from './TPage.vue';
|
|
73
|
+
export { default as TPageHeader } from './TPageHeader.vue';
|
|
63
74
|
export { default as TPagination } from './TPagination.vue';
|
|
64
75
|
export { default as TPopover } from './TPopover.vue';
|
|
65
76
|
export { default as TProgress } from './TProgress.vue';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACzD,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACvD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7D,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EACV,oBAAoB,EACpB,0BAA0B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
let e=require("vue"),t=require("@treeui/tokens");var n=[`--tree-color-brand-primary`,`--tree-color-brand-hover`,`--tree-color-brand-soft`,`--tree-color-brand-contrast`,`--tree-color-focus-ring`],r=()=>typeof window<`u`&&typeof document<`u`,i=e=>{if(!e||!r())return{};try{let t=window.localStorage.getItem(e);return t?JSON.parse(t):{}}catch{return{}}},a=(a={})=>{let{storageKey:o=`treeui-theme`,defaultMode:s=`system`,defaultAccent:c=null,target:l}=a,u=i(o),d=(0,e.ref)(u.mode??s),f=(0,e.ref)(u.accent??c),p=(0,e.ref)(!1),m=null,h=e=>{p.value=e.matches};r()&&typeof window.matchMedia==`function`&&(m=window.matchMedia(`(prefers-color-scheme: dark)`),p.value=m.matches,m.addEventListener?.(`change`,h));let g=(0,e.computed)(()=>d.value===`system`?p.value?`dark`:`light`:d.value),_=()=>l??(r()?document.documentElement:null);return(0,e.watch)([g,f],()=>{let e=_();if(e)if(e.dataset.treeTheme=g.value,f.value){let n=(0,t.accentCssVariables)(f.value,g.value);for(let[t,r]of Object.entries(n))e.style.setProperty(t,r)}else for(let t of n)e.style.removeProperty(t)},{immediate:!0}),(0,e.watch)([d,f],()=>{if(!(!o||!r()))try{window.localStorage.setItem(o,JSON.stringify({mode:d.value,accent:f.value}))}catch{}}),(0,e.getCurrentScope)()&&(0,e.onScopeDispose)(()=>{m?.removeEventListener?.(`change`,h),m=null}),{mode:d,resolved:g,accent:f,setMode:e=>{d.value=e},setAccent:e=>{f.value=e}}};exports.useTheme=a;
|
|
2
|
+
//# sourceMappingURL=useTheme.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTheme.cjs","names":[],"sources":["../../src/composables/useTheme.ts"],"sourcesContent":["import {\n computed,\n getCurrentScope,\n onScopeDispose,\n ref,\n watch,\n type ComputedRef,\n type Ref,\n} from 'vue';\nimport { accentCssVariables } from '@treeui/tokens';\n\nexport type TThemeMode = 'system' | 'light' | 'dark';\nexport type TResolvedTheme = 'light' | 'dark';\n\nconst ACCENT_VARIABLES = [\n '--tree-color-brand-primary',\n '--tree-color-brand-hover',\n '--tree-color-brand-soft',\n '--tree-color-brand-contrast',\n '--tree-color-focus-ring',\n] as const;\n\nexport interface UseThemeOptions {\n /** localStorage key for the persisted preference. `null` disables persistence. */\n storageKey?: string | null;\n /** Mode to start from when nothing is persisted. */\n defaultMode?: TThemeMode;\n /** Accent color (hex) to start from. `null` keeps the theme's own brand color. */\n defaultAccent?: string | null;\n /** Element the `data-tree-theme` attribute and accent variables are written to. */\n target?: HTMLElement | null;\n}\n\nexport interface UseThemeReturn {\n /** Requested mode — `system` follows the OS. Writable. */\n mode: Ref<TThemeMode>;\n /** The concrete theme in effect (`system` resolved against the OS). */\n resolved: ComputedRef<TResolvedTheme>;\n /** Accent color override, or `null` for the theme's own brand. Writable. */\n accent: Ref<string | null>;\n setMode: (value: TThemeMode) => void;\n setAccent: (value: string | null) => void;\n}\n\nconst isBrowser = () => typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst readStored = (key: string | null): { mode?: TThemeMode; accent?: string | null } => {\n if (!key || !isBrowser()) {\n return {};\n }\n\n try {\n const raw = window.localStorage.getItem(key);\n return raw ? (JSON.parse(raw) as { mode?: TThemeMode; accent?: string | null }) : {};\n } catch {\n // Storage can be blocked (private mode, disabled cookies) — preferences are\n // best-effort, so fall back to defaults rather than failing to render.\n return {};\n }\n};\n\n/**\n * Theme-mode + accent controller for an app root.\n *\n * Owns the parts of theming that belong to the design system rather than the\n * app: resolving `system` against the OS, writing `data-tree-theme`, persisting\n * the choice, and — crucially — re-deriving a custom accent whenever the active\n * theme flips, so a mid-tone brand color stays legible in both themes.\n *\n * @example\n * const { mode, resolved, accent } = useTheme({ storageKey: 'my-app-theme' });\n * mode.value = 'dark';\n * accent.value = '#0969da';\n */\nexport const useTheme = (options: UseThemeOptions = {}): UseThemeReturn => {\n const {\n storageKey = 'treeui-theme',\n defaultMode = 'system',\n defaultAccent = null,\n target,\n } = options;\n\n const stored = readStored(storageKey);\n\n const mode = ref<TThemeMode>(stored.mode ?? defaultMode);\n const accent = ref<string | null>(stored.accent ?? defaultAccent);\n const systemDark = ref(false);\n\n let query: MediaQueryList | null = null;\n const onSystemChange = (event: MediaQueryListEvent | MediaQueryList) => {\n systemDark.value = event.matches;\n };\n\n if (isBrowser() && typeof window.matchMedia === 'function') {\n query = window.matchMedia('(prefers-color-scheme: dark)');\n systemDark.value = query.matches;\n query.addEventListener?.('change', onSystemChange);\n }\n\n const resolved = computed<TResolvedTheme>(() => {\n if (mode.value === 'system') {\n return systemDark.value ? 'dark' : 'light';\n }\n return mode.value;\n });\n\n const element = () => target ?? (isBrowser() ? document.documentElement : null);\n\n const applyTheme = () => {\n const el = element();\n if (!el) {\n return;\n }\n\n el.dataset.treeTheme = resolved.value;\n\n // Re-derive on every theme flip: the same accent hex needs a different ramp\n // in light vs dark to stay readable.\n if (accent.value) {\n const variables = accentCssVariables(accent.value, resolved.value);\n for (const [name, value] of Object.entries(variables)) {\n el.style.setProperty(name, value);\n }\n } else {\n for (const name of ACCENT_VARIABLES) {\n el.style.removeProperty(name);\n }\n }\n };\n\n const persist = () => {\n if (!storageKey || !isBrowser()) {\n return;\n }\n\n try {\n window.localStorage.setItem(\n storageKey,\n JSON.stringify({ mode: mode.value, accent: accent.value }),\n );\n } catch {\n // Persisting preferences is best-effort.\n }\n };\n\n watch([resolved, accent], applyTheme, { immediate: true });\n watch([mode, accent], persist);\n\n // Guarded so the composable can also be created once at module scope, which\n // is how apps share a single theme controller across components.\n if (getCurrentScope()) {\n onScopeDispose(() => {\n query?.removeEventListener?.('change', onSystemChange);\n query = null;\n });\n }\n\n return {\n mode,\n resolved,\n accent,\n setMode: (value: TThemeMode) => {\n mode.value = value;\n },\n setAccent: (value: string | null) => {\n accent.value = value;\n },\n };\n};\n"],"mappings":"iDAcA,IAAM,EAAmB,CACvB,6BACA,2BACA,0BACA,8BACA,yBACF,EAwBM,MAAkB,OAAO,OAAW,KAAe,OAAO,SAAa,IAEvE,EAAc,GAAsE,CACxF,GAAI,CAAC,GAAO,CAAC,EAAU,EACrB,MAAO,CAAC,EAGV,GAAI,CACF,IAAM,EAAM,OAAO,aAAa,QAAQ,CAAG,EAC3C,OAAO,EAAO,KAAK,MAAM,CAAG,EAAsD,CAAC,CACrF,MAAQ,CAGN,MAAO,CAAC,CACV,CACF,EAea,GAAY,EAA2B,CAAC,IAAsB,CACzE,GAAM,CACJ,aAAa,eACb,cAAc,SACd,gBAAgB,KAChB,UACE,EAEE,EAAS,EAAW,CAAU,EAE9B,GAAA,EAAA,EAAA,IAAA,CAAuB,EAAO,MAAQ,CAAW,EACjD,GAAA,EAAA,EAAA,IAAA,CAA4B,EAAO,QAAU,CAAa,EAC1D,GAAA,EAAA,EAAA,IAAA,CAAiB,EAAK,EAExB,EAA+B,KAC7B,EAAkB,GAAgD,CACtE,EAAW,MAAQ,EAAM,OAC3B,EAEI,EAAU,GAAK,OAAO,OAAO,YAAe,aAC9C,EAAQ,OAAO,WAAW,8BAA8B,EACxD,EAAW,MAAQ,EAAM,QACzB,EAAM,mBAAmB,SAAU,CAAc,GAGnD,IAAM,GAAA,EAAA,EAAA,SAAA,KACA,EAAK,QAAU,SACV,EAAW,MAAQ,OAAS,QAE9B,EAAK,KACb,EAEK,MAAgB,IAAW,EAAU,EAAI,SAAS,gBAAkB,MAmD1E,OAZA,EAAA,EAAA,MAAA,CAAM,CAAC,EAAU,CAAM,MArCE,CACvB,IAAM,EAAK,EAAQ,EACd,KAQL,GAJA,EAAG,QAAQ,UAAY,EAAS,MAI5B,EAAO,MAAO,CAChB,IAAM,GAAA,EAAA,EAAA,mBAAA,CAA+B,EAAO,MAAO,EAAS,KAAK,EACjE,IAAK,GAAM,CAAC,EAAM,KAAU,OAAO,QAAQ,CAAS,EAClD,EAAG,MAAM,YAAY,EAAM,CAAK,CAEpC,MACE,IAAK,IAAM,KAAQ,EACjB,EAAG,MAAM,eAAe,CAAI,CAGlC,EAiBsC,CAAE,UAAW,EAAK,CAAC,GACzD,EAAA,EAAA,MAAA,CAAM,CAAC,EAAM,CAAM,MAhBG,CAChB,MAAC,GAAc,CAAC,EAAU,GAI9B,GAAI,CACF,OAAO,aAAa,QAClB,EACA,KAAK,UAAU,CAAE,KAAM,EAAK,MAAO,OAAQ,EAAO,KAAM,CAAC,CAC3D,CACF,MAAQ,CAER,CACF,CAG6B,GAI7B,EAAA,EAAA,gBAAA,CAAoB,IAClB,EAAA,EAAA,eAAA,KAAqB,CACnB,GAAO,sBAAsB,SAAU,CAAc,EACrD,EAAQ,IACV,CAAC,EAGI,CACL,OACA,WACA,SACA,QAAU,GAAsB,CAC9B,EAAK,MAAQ,CACf,EACA,UAAY,GAAyB,CACnC,EAAO,MAAQ,CACjB,CACF,CACF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ComputedRef, Ref } from 'vue';
|
|
2
|
+
export type TThemeMode = 'system' | 'light' | 'dark';
|
|
3
|
+
export type TResolvedTheme = 'light' | 'dark';
|
|
4
|
+
export interface UseThemeOptions {
|
|
5
|
+
/** localStorage key for the persisted preference. `null` disables persistence. */
|
|
6
|
+
storageKey?: string | null;
|
|
7
|
+
/** Mode to start from when nothing is persisted. */
|
|
8
|
+
defaultMode?: TThemeMode;
|
|
9
|
+
/** Accent color (hex) to start from. `null` keeps the theme's own brand color. */
|
|
10
|
+
defaultAccent?: string | null;
|
|
11
|
+
/** Element the `data-tree-theme` attribute and accent variables are written to. */
|
|
12
|
+
target?: HTMLElement | null;
|
|
13
|
+
}
|
|
14
|
+
export interface UseThemeReturn {
|
|
15
|
+
/** Requested mode — `system` follows the OS. Writable. */
|
|
16
|
+
mode: Ref<TThemeMode>;
|
|
17
|
+
/** The concrete theme in effect (`system` resolved against the OS). */
|
|
18
|
+
resolved: ComputedRef<TResolvedTheme>;
|
|
19
|
+
/** Accent color override, or `null` for the theme's own brand. Writable. */
|
|
20
|
+
accent: Ref<string | null>;
|
|
21
|
+
setMode: (value: TThemeMode) => void;
|
|
22
|
+
setAccent: (value: string | null) => void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Theme-mode + accent controller for an app root.
|
|
26
|
+
*
|
|
27
|
+
* Owns the parts of theming that belong to the design system rather than the
|
|
28
|
+
* app: resolving `system` against the OS, writing `data-tree-theme`, persisting
|
|
29
|
+
* the choice, and — crucially — re-deriving a custom accent whenever the active
|
|
30
|
+
* theme flips, so a mid-tone brand color stays legible in both themes.
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* const { mode, resolved, accent } = useTheme({ storageKey: 'my-app-theme' });
|
|
34
|
+
* mode.value = 'dark';
|
|
35
|
+
* accent.value = '#0969da';
|
|
36
|
+
*/
|
|
37
|
+
export declare const useTheme: (options?: UseThemeOptions) => UseThemeReturn;
|
|
38
|
+
//# sourceMappingURL=useTheme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTheme.d.ts","sourceRoot":"","sources":["../../src/composables/useTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,WAAW,EAChB,KAAK,GAAG,EACT,MAAM,KAAK,CAAC;AAGb,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AACrD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,CAAC;AAU9C,MAAM,WAAW,eAAe;IAC9B,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,oDAAoD;IACpD,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,kFAAkF;IAClF,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,mFAAmF;IACnF,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,0DAA0D;IAC1D,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACtB,uEAAuE;IACvE,QAAQ,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IACtC,4EAA4E;IAC5E,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACrC,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CAC3C;AAmBD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,QAAQ,GAAI,UAAS,eAAoB,KAAG,cA8FxD,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { computed as e, getCurrentScope as t, onScopeDispose as n, ref as r, watch as i } from "vue";
|
|
2
|
+
import { accentCssVariables as a } from "@treeui/tokens";
|
|
3
|
+
//#region src/composables/useTheme.ts
|
|
4
|
+
var o = [
|
|
5
|
+
"--tree-color-brand-primary",
|
|
6
|
+
"--tree-color-brand-hover",
|
|
7
|
+
"--tree-color-brand-soft",
|
|
8
|
+
"--tree-color-brand-contrast",
|
|
9
|
+
"--tree-color-focus-ring"
|
|
10
|
+
], s = () => typeof window < "u" && typeof document < "u", c = (e) => {
|
|
11
|
+
if (!e || !s()) return {};
|
|
12
|
+
try {
|
|
13
|
+
let t = window.localStorage.getItem(e);
|
|
14
|
+
return t ? JSON.parse(t) : {};
|
|
15
|
+
} catch {
|
|
16
|
+
return {};
|
|
17
|
+
}
|
|
18
|
+
}, l = (l = {}) => {
|
|
19
|
+
let { storageKey: u = "treeui-theme", defaultMode: d = "system", defaultAccent: f = null, target: p } = l, m = c(u), h = r(m.mode ?? d), g = r(m.accent ?? f), _ = r(!1), v = null, y = (e) => {
|
|
20
|
+
_.value = e.matches;
|
|
21
|
+
};
|
|
22
|
+
s() && typeof window.matchMedia == "function" && (v = window.matchMedia("(prefers-color-scheme: dark)"), _.value = v.matches, v.addEventListener?.("change", y));
|
|
23
|
+
let b = e(() => h.value === "system" ? _.value ? "dark" : "light" : h.value), x = () => p ?? (s() ? document.documentElement : null);
|
|
24
|
+
return i([b, g], () => {
|
|
25
|
+
let e = x();
|
|
26
|
+
if (e) if (e.dataset.treeTheme = b.value, g.value) {
|
|
27
|
+
let t = a(g.value, b.value);
|
|
28
|
+
for (let [n, r] of Object.entries(t)) e.style.setProperty(n, r);
|
|
29
|
+
} else for (let t of o) e.style.removeProperty(t);
|
|
30
|
+
}, { immediate: !0 }), i([h, g], () => {
|
|
31
|
+
if (!(!u || !s())) try {
|
|
32
|
+
window.localStorage.setItem(u, JSON.stringify({
|
|
33
|
+
mode: h.value,
|
|
34
|
+
accent: g.value
|
|
35
|
+
}));
|
|
36
|
+
} catch {}
|
|
37
|
+
}), t() && n(() => {
|
|
38
|
+
v?.removeEventListener?.("change", y), v = null;
|
|
39
|
+
}), {
|
|
40
|
+
mode: h,
|
|
41
|
+
resolved: b,
|
|
42
|
+
accent: g,
|
|
43
|
+
setMode: (e) => {
|
|
44
|
+
h.value = e;
|
|
45
|
+
},
|
|
46
|
+
setAccent: (e) => {
|
|
47
|
+
g.value = e;
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
//#endregion
|
|
52
|
+
export { l as useTheme };
|
|
53
|
+
|
|
54
|
+
//# sourceMappingURL=useTheme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTheme.js","names":[],"sources":["../../src/composables/useTheme.ts"],"sourcesContent":["import {\n computed,\n getCurrentScope,\n onScopeDispose,\n ref,\n watch,\n type ComputedRef,\n type Ref,\n} from 'vue';\nimport { accentCssVariables } from '@treeui/tokens';\n\nexport type TThemeMode = 'system' | 'light' | 'dark';\nexport type TResolvedTheme = 'light' | 'dark';\n\nconst ACCENT_VARIABLES = [\n '--tree-color-brand-primary',\n '--tree-color-brand-hover',\n '--tree-color-brand-soft',\n '--tree-color-brand-contrast',\n '--tree-color-focus-ring',\n] as const;\n\nexport interface UseThemeOptions {\n /** localStorage key for the persisted preference. `null` disables persistence. */\n storageKey?: string | null;\n /** Mode to start from when nothing is persisted. */\n defaultMode?: TThemeMode;\n /** Accent color (hex) to start from. `null` keeps the theme's own brand color. */\n defaultAccent?: string | null;\n /** Element the `data-tree-theme` attribute and accent variables are written to. */\n target?: HTMLElement | null;\n}\n\nexport interface UseThemeReturn {\n /** Requested mode — `system` follows the OS. Writable. */\n mode: Ref<TThemeMode>;\n /** The concrete theme in effect (`system` resolved against the OS). */\n resolved: ComputedRef<TResolvedTheme>;\n /** Accent color override, or `null` for the theme's own brand. Writable. */\n accent: Ref<string | null>;\n setMode: (value: TThemeMode) => void;\n setAccent: (value: string | null) => void;\n}\n\nconst isBrowser = () => typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst readStored = (key: string | null): { mode?: TThemeMode; accent?: string | null } => {\n if (!key || !isBrowser()) {\n return {};\n }\n\n try {\n const raw = window.localStorage.getItem(key);\n return raw ? (JSON.parse(raw) as { mode?: TThemeMode; accent?: string | null }) : {};\n } catch {\n // Storage can be blocked (private mode, disabled cookies) — preferences are\n // best-effort, so fall back to defaults rather than failing to render.\n return {};\n }\n};\n\n/**\n * Theme-mode + accent controller for an app root.\n *\n * Owns the parts of theming that belong to the design system rather than the\n * app: resolving `system` against the OS, writing `data-tree-theme`, persisting\n * the choice, and — crucially — re-deriving a custom accent whenever the active\n * theme flips, so a mid-tone brand color stays legible in both themes.\n *\n * @example\n * const { mode, resolved, accent } = useTheme({ storageKey: 'my-app-theme' });\n * mode.value = 'dark';\n * accent.value = '#0969da';\n */\nexport const useTheme = (options: UseThemeOptions = {}): UseThemeReturn => {\n const {\n storageKey = 'treeui-theme',\n defaultMode = 'system',\n defaultAccent = null,\n target,\n } = options;\n\n const stored = readStored(storageKey);\n\n const mode = ref<TThemeMode>(stored.mode ?? defaultMode);\n const accent = ref<string | null>(stored.accent ?? defaultAccent);\n const systemDark = ref(false);\n\n let query: MediaQueryList | null = null;\n const onSystemChange = (event: MediaQueryListEvent | MediaQueryList) => {\n systemDark.value = event.matches;\n };\n\n if (isBrowser() && typeof window.matchMedia === 'function') {\n query = window.matchMedia('(prefers-color-scheme: dark)');\n systemDark.value = query.matches;\n query.addEventListener?.('change', onSystemChange);\n }\n\n const resolved = computed<TResolvedTheme>(() => {\n if (mode.value === 'system') {\n return systemDark.value ? 'dark' : 'light';\n }\n return mode.value;\n });\n\n const element = () => target ?? (isBrowser() ? document.documentElement : null);\n\n const applyTheme = () => {\n const el = element();\n if (!el) {\n return;\n }\n\n el.dataset.treeTheme = resolved.value;\n\n // Re-derive on every theme flip: the same accent hex needs a different ramp\n // in light vs dark to stay readable.\n if (accent.value) {\n const variables = accentCssVariables(accent.value, resolved.value);\n for (const [name, value] of Object.entries(variables)) {\n el.style.setProperty(name, value);\n }\n } else {\n for (const name of ACCENT_VARIABLES) {\n el.style.removeProperty(name);\n }\n }\n };\n\n const persist = () => {\n if (!storageKey || !isBrowser()) {\n return;\n }\n\n try {\n window.localStorage.setItem(\n storageKey,\n JSON.stringify({ mode: mode.value, accent: accent.value }),\n );\n } catch {\n // Persisting preferences is best-effort.\n }\n };\n\n watch([resolved, accent], applyTheme, { immediate: true });\n watch([mode, accent], persist);\n\n // Guarded so the composable can also be created once at module scope, which\n // is how apps share a single theme controller across components.\n if (getCurrentScope()) {\n onScopeDispose(() => {\n query?.removeEventListener?.('change', onSystemChange);\n query = null;\n });\n }\n\n return {\n mode,\n resolved,\n accent,\n setMode: (value: TThemeMode) => {\n mode.value = value;\n },\n setAccent: (value: string | null) => {\n accent.value = value;\n },\n };\n};\n"],"mappings":";;;AAcA,IAAM,IAAmB;CACvB;CACA;CACA;CACA;CACA;AACF,GAwBM,UAAkB,OAAO,SAAW,OAAe,OAAO,WAAa,KAEvE,KAAc,MAAsE;CACxF,IAAI,CAAC,KAAO,CAAC,EAAU,GACrB,OAAO,CAAC;CAGV,IAAI;EACF,IAAM,IAAM,OAAO,aAAa,QAAQ,CAAG;EAC3C,OAAO,IAAO,KAAK,MAAM,CAAG,IAAsD,CAAC;CACrF,QAAQ;EAGN,OAAO,CAAC;CACV;AACF,GAea,KAAY,IAA2B,CAAC,MAAsB;CACzE,IAAM,EACJ,gBAAa,gBACb,iBAAc,UACd,mBAAgB,MAChB,cACE,GAEE,IAAS,EAAW,CAAU,GAE9B,IAAO,EAAgB,EAAO,QAAQ,CAAW,GACjD,IAAS,EAAmB,EAAO,UAAU,CAAa,GAC1D,IAAa,EAAI,EAAK,GAExB,IAA+B,MAC7B,KAAkB,MAAgD;EACtE,EAAW,QAAQ,EAAM;CAC3B;CAEA,AAAI,EAAU,KAAK,OAAO,OAAO,cAAe,eAC9C,IAAQ,OAAO,WAAW,8BAA8B,GACxD,EAAW,QAAQ,EAAM,SACzB,EAAM,mBAAmB,UAAU,CAAc;CAGnD,IAAM,IAAW,QACX,EAAK,UAAU,WACV,EAAW,QAAQ,SAAS,UAE9B,EAAK,KACb,GAEK,UAAgB,MAAW,EAAU,IAAI,SAAS,kBAAkB;CAmD1E,OAZA,EAAM,CAAC,GAAU,CAAM,SArCE;EACvB,IAAM,IAAK,EAAQ;EACd,OAQL,IAJA,EAAG,QAAQ,YAAY,EAAS,OAI5B,EAAO,OAAO;GAChB,IAAM,IAAY,EAAmB,EAAO,OAAO,EAAS,KAAK;GACjE,KAAK,IAAM,CAAC,GAAM,MAAU,OAAO,QAAQ,CAAS,GAClD,EAAG,MAAM,YAAY,GAAM,CAAK;EAEpC,OACE,KAAK,IAAM,KAAQ,GACjB,EAAG,MAAM,eAAe,CAAI;CAGlC,GAiBsC,EAAE,WAAW,GAAK,CAAC,GACzD,EAAM,CAAC,GAAM,CAAM,SAhBG;EAChB,OAAC,KAAc,CAAC,EAAU,IAI9B,IAAI;GACF,OAAO,aAAa,QAClB,GACA,KAAK,UAAU;IAAE,MAAM,EAAK;IAAO,QAAQ,EAAO;GAAM,CAAC,CAC3D;EACF,QAAQ,CAER;CACF,CAG6B,GAIzB,EAAgB,KAClB,QAAqB;EAEnB,AADA,GAAO,sBAAsB,UAAU,CAAc,GACrD,IAAQ;CACV,CAAC,GAGI;EACL;EACA;EACA;EACA,UAAU,MAAsB;GAC9B,EAAK,QAAQ;EACf;EACA,YAAY,MAAyB;GACnC,EAAO,QAAQ;EACjB;CACF;AACF"}
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});/* empty css */const e=require("./components/TAccordion.cjs"),t=require("./components/TAccordionItem.cjs"),n=require("./components/TAlert.cjs"),r=require("./components/TBadge.cjs"),ee=require("./components/TBreadcrumb.cjs"),te=require("./components/TBreadcrumbItem.cjs"),i=require("./components/TSpinner.cjs"),a=require("./components/TButton.cjs"),o=require("./components/TCard.cjs"),s=require("./components/TCheckbox.cjs"),c=require("./components/TCombobox.cjs"),l=require("./components/TModal.cjs"),u=require("./components/TConfirmDialog.cjs"),d=require("./components/TContainer.cjs"),f=require("./components/TContextMenu.cjs"),p=require("./components/TDatePicker.cjs"),m=require("./components/TDateTimePicker.cjs"),h=require("./components/TDrawer.cjs"),g=require("./components/TDropdown.cjs"),_=require("./components/TEmptyState.cjs"),v=require("./components/
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});/* empty css */const e=require("./components/TAccordion.cjs"),t=require("./components/TAccordionItem.cjs"),n=require("./components/TAlert.cjs"),r=require("./components/TBadge.cjs"),ee=require("./components/TBreadcrumb.cjs"),te=require("./components/TBreadcrumbItem.cjs"),i=require("./components/TSpinner.cjs"),a=require("./components/TButton.cjs"),o=require("./components/TCard.cjs"),s=require("./components/TCheckbox.cjs"),c=require("./components/TCombobox.cjs"),l=require("./components/TModal.cjs"),u=require("./components/TConfirmDialog.cjs"),d=require("./components/TContainer.cjs"),f=require("./components/TContextMenu.cjs"),p=require("./components/TDatePicker.cjs"),m=require("./components/TDateTimePicker.cjs"),h=require("./components/TDrawer.cjs"),g=require("./components/TDropdown.cjs"),_=require("./components/TEmptyState.cjs"),v=require("./components/TProgress.cjs"),y=require("./components/TFileUpload.cjs"),b=require("./components/TMultiSelect.cjs"),x=require("./components/TGrid.cjs"),S=require("./components/TNavbar.cjs"),C=require("./components/TLink.cjs"),w=require("./components/TNavMenu.cjs"),T=require("./components/TRadio.cjs"),E=require("./components/TRadioGroup.cjs"),D=require("./components/TSelect.cjs"),O=require("./components/TSidebar.cjs"),k=require("./components/TAppShell.cjs"),A=require("./components/TInput.cjs"),j=require("./components/TNumberInput.cjs"),M=require("./components/TSelectableList.cjs"),N=require("./components/TColorSwatch.cjs"),P=require("./components/TStack.cjs"),F=require("./components/TStackItem.cjs"),I=require("./components/TSplit.cjs"),L=require("./components/TSpacer.cjs"),R=require("./components/TKbd.cjs"),z=require("./components/TText.cjs"),B=require("./components/TTreeView.cjs"),V=require("./components/TSteps.cjs"),H=require("./components/TToggleGroup.cjs"),ne=require("./components/TTextarea.cjs"),U=require("./components/TSkeleton.cjs"),W=require("./components/TStat.cjs"),G=require("./components/TSwitch.cjs"),K=require("./components/TTooltip.cjs"),q=require("./components/TFormField.cjs"),J=require("./components/TPage.cjs"),Y=require("./components/TPageHeader.cjs"),X=require("./components/TPagination.cjs"),Z=require("./components/TPopover.cjs"),re=require("./components/TTabs.cjs"),ie=require("./components/TTabList.cjs"),ae=require("./components/TTab.cjs"),oe=require("./components/TTabPanel.cjs"),se=require("./components/TToast.cjs"),ce=require("./composables/useToast.cjs"),le=require("./components/TToastProvider.cjs"),ue=require("./components/TAvatar.cjs"),de=require("./components/TDivider.cjs"),fe=require("./components/TTable.cjs"),pe=require("./components/TTag.cjs"),me=require("./components/TTimeline.cjs"),he=require("./components/TPricingCard.cjs"),ge=require("./components/TPricing.cjs"),_e=require("./components/TMarkdownEditor.cjs"),ve=require("./components/TChart.cjs"),ye=require("./components/TSparkline.cjs"),be=require("./components/TDonutChart.cjs"),xe=require("./components/TIcon.cjs"),Q=require("./plugin.cjs"),$=require("./types/contracts.cjs"),Se=require("./composables/useTheme.cjs");exports.TAccordion=e.default,exports.TAccordionItem=t.default,exports.TAlert=n.default,exports.TAppBar=S.default,exports.TAppShell=k.default,exports.TAvatar=ue.default,exports.TBadge=r.default,exports.TBreadcrumb=ee.default,exports.TBreadcrumbItem=te.default,exports.TButton=a.default,exports.TCard=o.default,exports.TChart=ve.default,exports.TCheckbox=s.default,exports.TColorSwatch=N.default,exports.TCombobox=c.default,exports.TConfirmDialog=u.default,exports.TContainer=d.default,exports.TContextMenu=f.default,exports.TDatePicker=p.default,exports.TDateTimePicker=m.default,exports.TDivider=de.default,exports.TDonutChart=be.default,exports.TDrawer=h.default,exports.TDropdown=g.default,exports.TEmptyState=_.default,exports.TFileUpload=y.default,exports.TFormField=q.default,exports.TGrid=x.default,exports.TIcon=xe.default,exports.TInput=A.default,exports.TKbd=R.default,exports.TLink=C.default,exports.TMarkdownEditor=_e.default,exports.TModal=l.default,exports.TMultiSelect=b.default,exports.TNavMenu=w.default,exports.TNavbar=S.default,exports.TNumberInput=j.default,exports.TPage=J.default,exports.TPageHeader=Y.default,exports.TPagination=X.default,exports.TPopover=Z.default,exports.TPricing=ge.default,exports.TPricingCard=he.default,exports.TProgress=v.default,exports.TRadio=T.default,exports.TRadioGroup=E.default,exports.TSelect=D.default,exports.TSelectableList=M.default,exports.TSidebar=O.default,exports.TSkeleton=U.default,exports.TSpacer=L.default,exports.TSparkline=ye.default,exports.TSpinner=i.default,exports.TSplit=I.default,exports.TStack=P.default,exports.TStackItem=F.default,exports.TStat=W.default,exports.TStepper=V.default,exports.TSteps=V.default,exports.TSwitch=G.default,exports.TTab=ae.default,exports.TTabList=ie.default,exports.TTabPanel=oe.default,exports.TTable=fe.default,exports.TTabs=re.default,exports.TTag=pe.default,exports.TText=z.default,exports.TTextarea=ne.default,exports.TTimeline=me.default,exports.TToast=se.default,exports.TToastProvider=le.default,exports.TToggleGroup=H.default,exports.TTooltip=K.default,exports.TTreeView=B.default,exports.TreeUIPlugin=Q.TreeUIPlugin,exports.default=Q.TreeUIPlugin,exports.install=Q.install,exports.treeCardVariants=$.treeCardVariants,exports.treeDrawerSides=$.treeDrawerSides,exports.treeFieldWidths=$.treeFieldWidths,exports.treeSizes=$.treeSizes,exports.treeTooltipSides=$.treeTooltipSides,exports.treeVariants=$.treeVariants,exports.useTheme=Se.useTheme,exports.useToast=ce.useToast;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export * from './components';
|
|
2
2
|
export * from './plugin';
|
|
3
3
|
export * from './types/contracts';
|
|
4
|
+
export { useTheme } from './composables/useTheme';
|
|
5
|
+
export type { TThemeMode, TResolvedTheme, UseThemeOptions, UseThemeReturn, } from './composables/useTheme';
|
|
4
6
|
export { useToast } from './composables/useToast';
|
|
5
7
|
export type { ToastVariant, ToastPosition, ToastOptions, ToastItem } from './composables/useToast';
|
|
6
8
|
export { TreeUIPlugin as default } from './plugin';
|
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,oBAAoB,CAAC;AAE5B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnG,OAAO,EAAE,YAAY,IAAI,OAAO,EAAE,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAE5B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,YAAY,EACV,UAAU,EACV,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnG,OAAO,EAAE,YAAY,IAAI,OAAO,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,24 +1,25 @@
|
|
|
1
1
|
/* empty css */
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import
|
|
18
|
-
import
|
|
19
|
-
import
|
|
20
|
-
import
|
|
21
|
-
import
|
|
2
|
+
import ee from "./components/TAccordion.js";
|
|
3
|
+
import e from "./components/TAccordionItem.js";
|
|
4
|
+
import t from "./components/TAlert.js";
|
|
5
|
+
import n from "./components/TBadge.js";
|
|
6
|
+
import te from "./components/TBreadcrumb.js";
|
|
7
|
+
import r from "./components/TBreadcrumbItem.js";
|
|
8
|
+
import i from "./components/TSpinner.js";
|
|
9
|
+
import a from "./components/TButton.js";
|
|
10
|
+
import o from "./components/TCard.js";
|
|
11
|
+
import s from "./components/TCheckbox.js";
|
|
12
|
+
import c from "./components/TCombobox.js";
|
|
13
|
+
import l from "./components/TModal.js";
|
|
14
|
+
import u from "./components/TConfirmDialog.js";
|
|
15
|
+
import d from "./components/TContainer.js";
|
|
16
|
+
import f from "./components/TContextMenu.js";
|
|
17
|
+
import p from "./components/TDatePicker.js";
|
|
18
|
+
import m from "./components/TDateTimePicker.js";
|
|
19
|
+
import h from "./components/TDrawer.js";
|
|
20
|
+
import g from "./components/TDropdown.js";
|
|
21
|
+
import _ from "./components/TEmptyState.js";
|
|
22
|
+
import v from "./components/TProgress.js";
|
|
22
23
|
import y from "./components/TFileUpload.js";
|
|
23
24
|
import b from "./components/TMultiSelect.js";
|
|
24
25
|
import x from "./components/TGrid.js";
|
|
@@ -33,38 +34,46 @@ import k from "./components/TAppShell.js";
|
|
|
33
34
|
import A from "./components/TInput.js";
|
|
34
35
|
import j from "./components/TNumberInput.js";
|
|
35
36
|
import M from "./components/TSelectableList.js";
|
|
36
|
-
import N from "./components/
|
|
37
|
-
import P from "./components/
|
|
38
|
-
import F from "./components/
|
|
39
|
-
import I from "./components/
|
|
40
|
-
import L from "./components/
|
|
41
|
-
import R from "./components/
|
|
42
|
-
import
|
|
43
|
-
import
|
|
44
|
-
import
|
|
45
|
-
import
|
|
46
|
-
import
|
|
47
|
-
import
|
|
48
|
-
import
|
|
49
|
-
import
|
|
50
|
-
import
|
|
51
|
-
import
|
|
52
|
-
import
|
|
53
|
-
import
|
|
54
|
-
import
|
|
55
|
-
import
|
|
56
|
-
import
|
|
57
|
-
import
|
|
58
|
-
import
|
|
59
|
-
import
|
|
60
|
-
import
|
|
61
|
-
import
|
|
62
|
-
import
|
|
63
|
-
import
|
|
64
|
-
import
|
|
65
|
-
import
|
|
66
|
-
import
|
|
67
|
-
import
|
|
68
|
-
import
|
|
69
|
-
import
|
|
70
|
-
|
|
37
|
+
import N from "./components/TColorSwatch.js";
|
|
38
|
+
import P from "./components/TStack.js";
|
|
39
|
+
import F from "./components/TStackItem.js";
|
|
40
|
+
import I from "./components/TSplit.js";
|
|
41
|
+
import L from "./components/TSpacer.js";
|
|
42
|
+
import R from "./components/TKbd.js";
|
|
43
|
+
import z from "./components/TText.js";
|
|
44
|
+
import B from "./components/TTreeView.js";
|
|
45
|
+
import V from "./components/TSteps.js";
|
|
46
|
+
import H from "./components/TToggleGroup.js";
|
|
47
|
+
import U from "./components/TTextarea.js";
|
|
48
|
+
import W from "./components/TSkeleton.js";
|
|
49
|
+
import G from "./components/TStat.js";
|
|
50
|
+
import K from "./components/TSwitch.js";
|
|
51
|
+
import q from "./components/TTooltip.js";
|
|
52
|
+
import J from "./components/TFormField.js";
|
|
53
|
+
import Y from "./components/TPage.js";
|
|
54
|
+
import X from "./components/TPageHeader.js";
|
|
55
|
+
import Z from "./components/TPagination.js";
|
|
56
|
+
import Q from "./components/TPopover.js";
|
|
57
|
+
import ne from "./components/TTabs.js";
|
|
58
|
+
import re from "./components/TTabList.js";
|
|
59
|
+
import ie from "./components/TTab.js";
|
|
60
|
+
import ae from "./components/TTabPanel.js";
|
|
61
|
+
import oe from "./components/TToast.js";
|
|
62
|
+
import { useToast as se } from "./composables/useToast.js";
|
|
63
|
+
import ce from "./components/TToastProvider.js";
|
|
64
|
+
import le from "./components/TAvatar.js";
|
|
65
|
+
import ue from "./components/TDivider.js";
|
|
66
|
+
import de from "./components/TTable.js";
|
|
67
|
+
import fe from "./components/TTag.js";
|
|
68
|
+
import pe from "./components/TTimeline.js";
|
|
69
|
+
import me from "./components/TPricingCard.js";
|
|
70
|
+
import he from "./components/TPricing.js";
|
|
71
|
+
import ge from "./components/TMarkdownEditor.js";
|
|
72
|
+
import _e from "./components/TChart.js";
|
|
73
|
+
import ve from "./components/TSparkline.js";
|
|
74
|
+
import ye from "./components/TDonutChart.js";
|
|
75
|
+
import be from "./components/TIcon.js";
|
|
76
|
+
import { TreeUIPlugin as $, install as xe } from "./plugin.js";
|
|
77
|
+
import { treeCardVariants as Se, treeDrawerSides as Ce, treeFieldWidths as we, treeSizes as Te, treeTooltipSides as Ee, treeVariants as De } from "./types/contracts.js";
|
|
78
|
+
import { useTheme as Oe } from "./composables/useTheme.js";
|
|
79
|
+
export { ee as TAccordion, e as TAccordionItem, t as TAlert, S as TAppBar, k as TAppShell, le as TAvatar, n as TBadge, te as TBreadcrumb, r as TBreadcrumbItem, a as TButton, o as TCard, _e as TChart, s as TCheckbox, N as TColorSwatch, c as TCombobox, u as TConfirmDialog, d as TContainer, f as TContextMenu, p as TDatePicker, m as TDateTimePicker, ue as TDivider, ye as TDonutChart, h as TDrawer, g as TDropdown, _ as TEmptyState, y as TFileUpload, J as TFormField, x as TGrid, be as TIcon, A as TInput, R as TKbd, C as TLink, ge as TMarkdownEditor, l as TModal, b as TMultiSelect, w as TNavMenu, S as TNavbar, j as TNumberInput, Y as TPage, X as TPageHeader, Z as TPagination, Q as TPopover, he as TPricing, me as TPricingCard, v as TProgress, T as TRadio, E as TRadioGroup, D as TSelect, M as TSelectableList, O as TSidebar, W as TSkeleton, L as TSpacer, ve as TSparkline, i as TSpinner, I as TSplit, P as TStack, F as TStackItem, G as TStat, V as TStepper, V as TSteps, K as TSwitch, ie as TTab, re as TTabList, ae as TTabPanel, de as TTable, ne as TTabs, fe as TTag, z as TText, U as TTextarea, pe as TTimeline, oe as TToast, ce as TToastProvider, H as TToggleGroup, q as TTooltip, B as TTreeView, $ as TreeUIPlugin, $ as default, xe as install, Se as treeCardVariants, Ce as treeDrawerSides, we as treeFieldWidths, Te as treeSizes, Ee as treeTooltipSides, De as treeVariants, Oe as useTheme, se as useToast };
|
package/dist/plugin.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("./components/TAccordion.cjs"),t=require("./components/TAccordionItem.cjs"),n=require("./components/TAlert.cjs"),r=require("./components/TBadge.cjs"),i=require("./components/TBreadcrumb.cjs"),
|
|
1
|
+
const e=require("./components/TAccordion.cjs"),t=require("./components/TAccordionItem.cjs"),n=require("./components/TAlert.cjs"),r=require("./components/TBadge.cjs"),i=require("./components/TBreadcrumb.cjs"),ee=require("./components/TBreadcrumbItem.cjs"),te=require("./components/TSpinner.cjs"),a=require("./components/TButton.cjs"),o=require("./components/TCard.cjs"),s=require("./components/TCheckbox.cjs"),c=require("./components/TCombobox.cjs"),l=require("./components/TModal.cjs"),u=require("./components/TConfirmDialog.cjs"),d=require("./components/TContainer.cjs"),f=require("./components/TContextMenu.cjs"),p=require("./components/TDatePicker.cjs"),m=require("./components/TDateTimePicker.cjs"),h=require("./components/TDrawer.cjs"),g=require("./components/TDropdown.cjs"),_=require("./components/TEmptyState.cjs"),v=require("./components/TProgress.cjs"),y=require("./components/TFileUpload.cjs"),b=require("./components/TMultiSelect.cjs"),x=require("./components/TGrid.cjs"),S=require("./components/TNavbar.cjs"),C=require("./components/TLink.cjs"),w=require("./components/TNavMenu.cjs"),T=require("./components/TRadio.cjs"),E=require("./components/TRadioGroup.cjs"),D=require("./components/TSelect.cjs"),O=require("./components/TSidebar.cjs"),k=require("./components/TAppShell.cjs"),A=require("./components/TInput.cjs"),j=require("./components/TNumberInput.cjs"),M=require("./components/TSelectableList.cjs"),N=require("./components/TColorSwatch.cjs"),P=require("./components/TStack.cjs"),F=require("./components/TStackItem.cjs"),I=require("./components/TSplit.cjs"),L=require("./components/TSpacer.cjs"),R=require("./components/TKbd.cjs"),z=require("./components/TText.cjs"),B=require("./components/TTreeView.cjs"),V=require("./components/TSteps.cjs"),H=require("./components/TToggleGroup.cjs"),U=require("./components/TTextarea.cjs"),W=require("./components/TSkeleton.cjs"),G=require("./components/TStat.cjs"),K=require("./components/TSwitch.cjs"),q=require("./components/TTooltip.cjs"),J=require("./components/TFormField.cjs"),Y=require("./components/TPage.cjs"),X=require("./components/TPageHeader.cjs"),Z=require("./components/TPagination.cjs"),Q=require("./components/TPopover.cjs"),ne=require("./components/TTabs.cjs"),re=require("./components/TTabList.cjs"),ie=require("./components/TTab.cjs"),ae=require("./components/TTabPanel.cjs"),oe=require("./components/TToast.cjs"),se=require("./components/TToastProvider.cjs"),ce=require("./components/TAvatar.cjs"),le=require("./components/TDivider.cjs"),ue=require("./components/TTable.cjs"),de=require("./components/TTag.cjs"),fe=require("./components/TTimeline.cjs"),pe=require("./components/TPricingCard.cjs"),me=require("./components/TPricing.cjs"),he=require("./components/TMarkdownEditor.cjs"),ge=require("./components/TChart.cjs"),_e=require("./components/TSparkline.cjs"),ve=require("./components/TDonutChart.cjs"),ye=require("./components/TIcon.cjs");var be={TAccordion:e.default,TAccordionItem:t.default,TAlert:n.default,TBadge:r.default,TBreadcrumb:i.default,TBreadcrumbItem:ee.default,TButton:a.default,TCard:o.default,TCheckbox:s.default,TCombobox:c.default,TConfirmDialog:u.default,TContainer:d.default,TContextMenu:f.default,TDatePicker:p.default,TDateTimePicker:m.default,TDrawer:h.default,TDropdown:g.default,TEmptyState:_.default,TFileUpload:y.default,TFormField:J.default,TGrid:x.default,TAppBar:S.default,TInput:A.default,TLink:C.default,TNavMenu:w.default,TNavbar:S.default,TMultiSelect:b.default,TModal:l.default,TNumberInput:j.default,TPage:Y.default,TPageHeader:X.default,TRadio:T.default,TRadioGroup:E.default,TSelectableList:M.default,TSelect:D.default,TSidebar:O.default,TAppShell:k.default,TSkeleton:W.default,TSpinner:te.default,TColorSwatch:N.default,TStack:P.default,TStackItem:F.default,TSplit:I.default,TSpacer:L.default,TKbd:R.default,TText:z.default,TStat:G.default,TStepper:V.default,TSteps:V.default,TSwitch:K.default,TTextarea:U.default,TTabs:ne.default,TTabList:re.default,TTab:ie.default,TTabPanel:ae.default,TToggleGroup:H.default,TToast:oe.default,TToastProvider:se.default,TPagination:Z.default,TPopover:Q.default,TProgress:v.default,TTooltip:q.default,TAvatar:ce.default,TDivider:le.default,TTable:ue.default,TTag:de.default,TTreeView:B.default,TTimeline:fe.default,TPricing:me.default,TPricingCard:pe.default,TMarkdownEditor:he.default,TChart:ge.default,TSparkline:_e.default,TDonutChart:ve.default,TIcon:ye.default},$={install(e){Object.entries(be).forEach(([t,n])=>{e.component(t,n)})}},xe=$.install;exports.TreeUIPlugin=$,exports.install=xe;
|
|
2
2
|
//# sourceMappingURL=plugin.cjs.map
|
package/dist/plugin.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.cjs","names":[],"sources":["../src/plugin.ts"],"sourcesContent":["import type { App, Plugin } from 'vue';\nimport {\n TAccordion,\n TAccordionItem,\n TAlert,\n TBadge,\n TBreadcrumb,\n TBreadcrumbItem,\n TButton,\n TCard,\n TCheckbox,\n TCombobox,\n TConfirmDialog,\n TContainer,\n TContextMenu,\n TDatePicker,\n TDateTimePicker,\n TDrawer,\n TDropdown,\n TEmptyState,\n TFileUpload,\n TFormField,\n TGrid,\n TAppBar,\n TInput,\n TLink,\n TNavMenu,\n TNavbar,\n TMultiSelect,\n TModal,\n TNumberInput,\n TPagination,\n TPopover,\n TProgress,\n TRadio,\n TRadioGroup,\n TSelectableList,\n TSelect,\n TSidebar,\n TAppShell,\n TSkeleton,\n TSpinner,\n TStack,\n TStat,\n TStepper,\n TSteps,\n TSwitch,\n TTextarea,\n TTabs,\n TTabList,\n TTab,\n TTabPanel,\n TToggleGroup,\n TToast,\n TToastProvider,\n TTooltip,\n TAvatar,\n TDivider,\n TTable,\n TTag,\n TTreeView,\n TTimeline,\n TPricing,\n TPricingCard,\n TMarkdownEditor,\n TChart,\n TSparkline,\n TDonutChart,\n TIcon,\n} from './components';\n\nconst components = {\n TAccordion,\n TAccordionItem,\n TAlert,\n TBadge,\n TBreadcrumb,\n TBreadcrumbItem,\n TButton,\n TCard,\n TCheckbox,\n TCombobox,\n TConfirmDialog,\n TContainer,\n TContextMenu,\n TDatePicker,\n TDateTimePicker,\n TDrawer,\n TDropdown,\n TEmptyState,\n TFileUpload,\n TFormField,\n TGrid,\n TAppBar,\n TInput,\n TLink,\n TNavMenu,\n TNavbar,\n TMultiSelect,\n TModal,\n TNumberInput,\n TRadio,\n TRadioGroup,\n TSelectableList,\n TSelect,\n TSidebar,\n TAppShell,\n TSkeleton,\n TSpinner,\n TStack,\n TStat,\n TStepper,\n TSteps,\n TSwitch,\n TTextarea,\n TTabs,\n TTabList,\n TTab,\n TTabPanel,\n TToggleGroup,\n TToast,\n TToastProvider,\n TPagination,\n TPopover,\n TProgress,\n TTooltip,\n TAvatar,\n TDivider,\n TTable,\n TTag,\n TTreeView,\n TTimeline,\n TPricing,\n TPricingCard,\n TMarkdownEditor,\n TChart,\n TSparkline,\n TDonutChart,\n TIcon,\n};\n\nexport const TreeUIPlugin: Plugin = {\n install(app: App) {\n Object.entries(components).forEach(([name, component]) => {\n app.component(name, component);\n });\n },\n};\n\nexport const install = TreeUIPlugin.install;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin.cjs","names":[],"sources":["../src/plugin.ts"],"sourcesContent":["import type { App, Plugin } from 'vue';\nimport {\n TAccordion,\n TAccordionItem,\n TAlert,\n TBadge,\n TBreadcrumb,\n TBreadcrumbItem,\n TButton,\n TCard,\n TCheckbox,\n TCombobox,\n TConfirmDialog,\n TContainer,\n TContextMenu,\n TDatePicker,\n TDateTimePicker,\n TDrawer,\n TDropdown,\n TEmptyState,\n TFileUpload,\n TFormField,\n TGrid,\n TAppBar,\n TInput,\n TLink,\n TNavMenu,\n TNavbar,\n TMultiSelect,\n TModal,\n TNumberInput,\n TPage,\n TPageHeader,\n TPagination,\n TPopover,\n TProgress,\n TRadio,\n TRadioGroup,\n TSelectableList,\n TSelect,\n TSidebar,\n TAppShell,\n TSkeleton,\n TSpinner,\n TColorSwatch,\n TStack,\n TStackItem,\n TSplit,\n TSpacer,\n TKbd,\n TText,\n TStat,\n TStepper,\n TSteps,\n TSwitch,\n TTextarea,\n TTabs,\n TTabList,\n TTab,\n TTabPanel,\n TToggleGroup,\n TToast,\n TToastProvider,\n TTooltip,\n TAvatar,\n TDivider,\n TTable,\n TTag,\n TTreeView,\n TTimeline,\n TPricing,\n TPricingCard,\n TMarkdownEditor,\n TChart,\n TSparkline,\n TDonutChart,\n TIcon,\n} from './components';\n\nconst components = {\n TAccordion,\n TAccordionItem,\n TAlert,\n TBadge,\n TBreadcrumb,\n TBreadcrumbItem,\n TButton,\n TCard,\n TCheckbox,\n TCombobox,\n TConfirmDialog,\n TContainer,\n TContextMenu,\n TDatePicker,\n TDateTimePicker,\n TDrawer,\n TDropdown,\n TEmptyState,\n TFileUpload,\n TFormField,\n TGrid,\n TAppBar,\n TInput,\n TLink,\n TNavMenu,\n TNavbar,\n TMultiSelect,\n TModal,\n TNumberInput,\n TPage,\n TPageHeader,\n TRadio,\n TRadioGroup,\n TSelectableList,\n TSelect,\n TSidebar,\n TAppShell,\n TSkeleton,\n TSpinner,\n TColorSwatch,\n TStack,\n TStackItem,\n TSplit,\n TSpacer,\n TKbd,\n TText,\n TStat,\n TStepper,\n TSteps,\n TSwitch,\n TTextarea,\n TTabs,\n TTabList,\n TTab,\n TTabPanel,\n TToggleGroup,\n TToast,\n TToastProvider,\n TPagination,\n TPopover,\n TProgress,\n TTooltip,\n TAvatar,\n TDivider,\n TTable,\n TTag,\n TTreeView,\n TTimeline,\n TPricing,\n TPricingCard,\n TMarkdownEditor,\n TChart,\n TSparkline,\n TDonutChart,\n TIcon,\n};\n\nexport const TreeUIPlugin: Plugin = {\n install(app: App) {\n Object.entries(components).forEach(([name, component]) => {\n app.component(name, component);\n });\n },\n};\n\nexport const install = TreeUIPlugin.install;\n"],"mappings":"02FA+EA,IAAM,GAAa,CACjB,WAAA,EAAA,QACA,eAAA,EAAA,QACA,OAAA,EAAA,QACA,OAAA,EAAA,QACA,YAAA,EAAA,QACA,gBAAA,GAAA,QACA,QAAA,EAAA,QACA,MAAA,EAAA,QACA,UAAA,EAAA,QACA,UAAA,EAAA,QACA,eAAA,EAAA,QACA,WAAA,EAAA,QACA,aAAA,EAAA,QACA,YAAA,EAAA,QACA,gBAAA,EAAA,QACA,QAAA,EAAA,QACA,UAAA,EAAA,QACA,YAAA,EAAA,QACA,YAAA,EAAA,QACA,WAAA,EAAA,QACA,MAAA,EAAA,QACA,QAAA,EAAA,QACA,OAAA,EAAA,QACA,MAAA,EAAA,QACA,SAAA,EAAA,QACA,QAAA,EAAA,QACA,aAAA,EAAA,QACA,OAAA,EAAA,QACA,aAAA,EAAA,QACA,MAAA,EAAA,QACA,YAAA,EAAA,QACA,OAAA,EAAA,QACA,YAAA,EAAA,QACA,gBAAA,EAAA,QACA,QAAA,EAAA,QACA,SAAA,EAAA,QACA,UAAA,EAAA,QACA,UAAA,EAAA,QACA,SAAA,GAAA,QACA,aAAA,EAAA,QACA,OAAA,EAAA,QACA,WAAA,EAAA,QACA,OAAA,EAAA,QACA,QAAA,EAAA,QACA,KAAA,EAAA,QACA,MAAA,EAAA,QACA,MAAA,EAAA,QACA,SAAA,EAAA,QACA,OAAA,EAAA,QACA,QAAA,EAAA,QACA,UAAA,EAAA,QACA,MAAA,GAAA,QACA,SAAA,GAAA,QACA,KAAA,GAAA,QACA,UAAA,GAAA,QACA,aAAA,EAAA,QACA,OAAA,GAAA,QACA,eAAA,GAAA,QACA,YAAA,EAAA,QACA,SAAA,EAAA,QACA,UAAA,EAAA,QACA,SAAA,EAAA,QACA,QAAA,GAAA,QACA,SAAA,GAAA,QACA,OAAA,GAAA,QACA,KAAA,GAAA,QACA,UAAA,EAAA,QACA,UAAA,GAAA,QACA,SAAA,GAAA,QACA,aAAA,GAAA,QACA,gBAAA,GAAA,QACA,OAAA,GAAA,QACA,WAAA,GAAA,QACA,YAAA,GAAA,QACA,MAAA,GAAA,OACF,EAEa,EAAuB,CAClC,QAAQ,EAAU,CAChB,OAAO,QAAQ,EAAU,CAAC,CAAC,SAAS,CAAC,EAAM,KAAe,CACxD,EAAI,UAAU,EAAM,CAAS,CAC/B,CAAC,CACH,CACF,EAEa,GAAU,EAAa"}
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AA6JvC,eAAO,MAAM,YAAY,EAAE,MAM1B,CAAC;AAEF,eAAO,MAAM,OAAO,sCAAuB,CAAC"}
|