@soybeanjs/ui 0.22.0 → 0.22.2

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/README.md CHANGED
@@ -53,7 +53,7 @@ Every multi-slot headless component exposes a `provide{Name}Ui` function. The st
53
53
  ```ts
54
54
  // In the styled wrapper (src/)
55
55
  const ui = computed(() =>
56
- mergeSlotVariants(
56
+ mergeVariants(
57
57
  accordionVariants({ size: props.size }), // tv() output
58
58
  props.ui, // user overrides
59
59
  { root: props.class } // class prop
package/README.zh-CN.md CHANGED
@@ -53,7 +53,7 @@ SoybeanUI 采用严格的**双层分离**设计:
53
53
  ```ts
54
54
  // 样式包装层 (src/) 中
55
55
  const ui = computed(() =>
56
- mergeSlotVariants(
56
+ mergeVariants(
57
57
  accordionVariants({ size: props.size }), // tv() 计算结果
58
58
  props.ui, // 用户自定义覆盖
59
59
  { root: props.class } // class prop 合并
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import t from"../calendar/calendar.js";import{dateFieldVariants as n}from"../date-field/variants.js";import{datePickerVariants as r}from"./variants.js";import{computed as i,createBlock as a,createVNode as o,defineComponent as s,mergeProps as c,openBlock as l,toHandlers as u,unref as d,withCtx as f}from"vue";import{useForwardListeners as p,useOmitProps as m}from"@soybeanjs/headless/composables";import{DatePickerCompact as h,provideDatePickerUi as g}from"@soybeanjs/headless/date-picker";const _=s({name:`SDatePicker`,__name:`date-picker`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},calendarUi:{},dateFieldProps:{},placement:{},showArrow:{type:Boolean},triggerProps:{},portalProps:{},positionerProps:{},popupProps:{},arrowProps:{},closeProps:{},disabled:{type:Boolean},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean},modal:{type:Boolean},headerProps:{},headingProps:{},prevProps:{},nextProps:{},gridProps:{},gridHeadProps:{},gridBodyProps:{},gridRowProps:{},headCellProps:{},cellProps:{},cellTriggerProps:{},dir:{},locale:{},modelValue:{},defaultValue:{},multiple:{},placeholder:{},defaultPlaceholder:{},readonly:{type:Boolean},pagedNavigation:{type:Boolean},preventDeselect:{type:Boolean},weekStartsOn:{},weekdayFormat:{},calendarLabel:{},fixedWeeks:{type:Boolean},maxValue:{},minValue:{},numberOfMonths:{},initialFocus:{type:Boolean},isDateDisabled:{},isDateUnavailable:{},nextPage:{},prevPage:{},disableDaysOutsideCurrentView:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`update:modelValue`,`update:placeholder`],setup(s,{emit:_}){let v=s,y=_,b=m(v,[`class`,`size`,`ui`]),x=p(y);return g(i(()=>{let t=r({size:v.size}),i=n({size:v.size});return e(Object.assign(t,i),v.ui,{root:v.class})})),(e,n)=>(l(),a(d(h),c(d(b),u(d(x))),{default:f(({calendarProps:e,close:n,onUpdateModelValue:r,onUpdatePlaceholder:i})=>[o(t,c(e,{size:s.size,ui:s.calendarUi,"onUpdate:modelValue":e=>{r(e),n()},"onUpdate:placeholder":i}),null,16,[`size`,`ui`,`onUpdate:modelValue`,`onUpdate:placeholder`])]),_:1},16))}});export{_ as default};
1
+ import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import t from"../calendar/calendar.js";import{dateFieldVariants as n}from"../date-field/variants.js";import{datePickerVariants as r}from"./variants.js";import{computed as i,createBlock as a,createVNode as o,defineComponent as s,mergeProps as c,openBlock as l,toHandlers as u,unref as d,withCtx as f}from"vue";import{useForwardListeners as p,useOmitProps as m}from"@soybeanjs/headless/composables";import{DatePickerCompact as h,provideDatePickerUi as g}from"@soybeanjs/headless/date-picker";const _=s({name:`SDatePicker`,__name:`date-picker`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},calendarUi:{},dateFieldProps:{},placement:{},showArrow:{type:Boolean},triggerProps:{},portalProps:{},positionerProps:{},popupProps:{},arrowProps:{},closeProps:{},disabled:{type:Boolean},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean},modal:{type:Boolean},headerProps:{},headingProps:{},prevProps:{},nextProps:{},gridProps:{},gridHeadProps:{},gridBodyProps:{},gridRowProps:{},headCellProps:{},cellProps:{},cellTriggerProps:{},dir:{},locale:{},modelValue:{},defaultValue:{},multiple:{type:Boolean},placeholder:{},defaultPlaceholder:{},readonly:{type:Boolean},pagedNavigation:{type:Boolean},preventDeselect:{type:Boolean},weekStartsOn:{},weekdayFormat:{},calendarLabel:{},fixedWeeks:{type:Boolean},maxValue:{},minValue:{},numberOfMonths:{},initialFocus:{type:Boolean},isDateDisabled:{},isDateUnavailable:{},nextPage:{},prevPage:{},disableDaysOutsideCurrentView:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:open`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`update:modelValue`,`update:placeholder`],setup(s,{emit:_}){let v=s,y=_,b=m(v,[`class`,`size`,`ui`]),x=p(y);return g(i(()=>{let t=r({size:v.size}),i=n({size:v.size});return e(Object.assign(t,i),v.ui,{root:v.class})})),(e,n)=>(l(),a(d(h),c(d(b),u(d(x))),{default:f(({calendarProps:e,close:n,onUpdateModelValue:r,onUpdatePlaceholder:i})=>[o(t,c(e,{size:s.size,ui:s.calendarUi,"onUpdate:modelValue":e=>{r(e),n()},"onUpdate:placeholder":i}),null,16,[`size`,`ui`,`onUpdate:modelValue`,`onUpdate:placeholder`])]),_:1},16))}});export{_ as default};
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import{miniSizeMap as t}from"../../theme/config.js";import"../../theme/index.js";import{buttonIconVariants as n}from"../button/variants.js";import{inputVariants as r}from"./variants.js";import{computed as i,createBlock as a,createSlots as o,defineComponent as s,guardReactiveProps as c,mergeProps as l,normalizeProps as u,openBlock as d,renderList as f,renderSlot as p,unref as m,useSlots as h,withCtx as g}from"vue";import{useOmitProps as _}from"@soybeanjs/headless/composables";import{keysOf as v}from"@soybeanjs/utils";import{InputCompact as y,provideInputUi as b}from"@soybeanjs/headless/input";const x=s({name:`SInput`,__name:`input`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},inputRef:{type:Function},clearable:{type:Boolean},controlProps:{},clearProps:{},defaultValue:{},modelValue:{},id:{},autofocus:{type:Boolean},disabled:{type:Boolean},maxlength:{},minlength:{},pattern:{},placeholder:{},readonly:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`],setup(s,{emit:x}){let S=s,C=x,w=_(S,[`class`,`size`,`ui`]),T=h(),E=i(()=>v(T));return b(i(()=>{let i=t[S.size??`md`];return e(Object.assign(r({size:S.size}),{$base:{clear:n({size:i,shape:`circle`})}}),S.ui,{root:S.class})})),(e,t)=>(d(),a(m(y),l(m(w),{"onUpdate:modelValue":t[0]||=e=>C(`update:modelValue`,e)}),o({_:2},[f(E.value,t=>({name:t,fn:g(n=>[p(e.$slots,t,u(c(n)))])}))]),1040))}});export{x as default};
1
+ import{mergeVariants as e}from"../../theme/shared.js";import{miniSizeMap as t}from"../../theme/config.js";import"../../theme/index.js";import{buttonIconVariants as n}from"../button/variants.js";import{inputVariants as r}from"./variants.js";import{computed as i,createBlock as a,createSlots as o,defineComponent as s,guardReactiveProps as c,mergeProps as l,normalizeProps as u,openBlock as d,renderList as f,renderSlot as p,unref as m,useSlots as h,withCtx as g}from"vue";import{useOmitProps as _}from"@soybeanjs/headless/composables";import{keysOf as v}from"@soybeanjs/utils";import{InputCompact as y,provideInputUi as b}from"@soybeanjs/headless/input";const x=s({name:`SInput`,__name:`input`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},inputRef:{type:Function},clearable:{type:Boolean},controlProps:{},clearProps:{},defaultValue:{},modelValue:{},disabled:{type:Boolean},readonly:{type:Boolean},rootProps:{},name:{},required:{type:Boolean},id:{},autofocus:{type:Boolean},autocomplete:{},maxlength:{},minlength:{},pattern:{},placeholder:{},type:{}},emits:[`update:modelValue`],setup(s,{emit:x}){let S=s,C=x,w=_(S,[`class`,`size`,`ui`]),T=h(),E=i(()=>v(T));return b(i(()=>{let i=t[S.size??`md`];return e(Object.assign(r({size:S.size}),{$base:{clear:n({size:i,shape:`circle`})}}),S.ui,{root:S.class})})),(e,t)=>(d(),a(m(y),l(m(w),{"onUpdate:modelValue":t[0]||=e=>C(`update:modelValue`,e)}),o({_:2},[f(E.value,t=>({name:t,fn:g(n=>[p(e.$slots,t,u(c(n)))])}))]),1040))}});export{x as default};
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import{miniSizeMap as t}from"../../theme/config.js";import"../../theme/index.js";import{buttonIconVariants as n}from"../button/variants.js";import{inputNumberVariants as r}from"./variants.js";import{computed as i,createBlock as a,createSlots as o,defineComponent as s,guardReactiveProps as c,mergeProps as l,normalizeProps as u,openBlock as d,renderList as f,renderSlot as p,unref as m,useSlots as h,withCtx as g}from"vue";import{useOmitProps as _}from"@soybeanjs/headless/composables";import{keysOf as v}from"@soybeanjs/utils";import{InputNumberCompact as y,provideInputNumberUi as b}from"@soybeanjs/headless/input-number";const x=s({name:`SInputNumber`,__name:`input-number`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},center:{type:Boolean},clearable:{type:Boolean},inputRef:{type:Function},controlProps:{},incrementProps:{},decrementProps:{},clearProps:{},defaultValue:{},modelValue:{},min:{},max:{},step:{},stepSnapping:{type:Boolean},focusOnChange:{type:Boolean},formatOptions:{},locale:{},disableWheelChange:{type:Boolean},invertWheelChange:{type:Boolean},id:{},autofocus:{type:Boolean},disabled:{type:Boolean},maxlength:{},minlength:{},pattern:{},placeholder:{},readonly:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`clear`],setup(s,{emit:x}){let S=s,C=x,w=_(S,[`class`,`size`,`ui`,`center`]),T=h(),E=i(()=>v(T));return b(i(()=>{let i=t[S.size??`md`];return e(Object.assign(r({size:S.size,center:S.center}),{$base:{decrement:n({size:i}),increment:n({size:i}),clear:n({size:i,shape:`circle`})}}),S.ui,{root:S.class})})),(e,t)=>(d(),a(m(y),l(m(w),{"onUpdate:modelValue":t[0]||=e=>C(`update:modelValue`,e)}),o({_:2},[f(E.value,t=>({name:t,fn:g(n=>[p(e.$slots,t,u(c(n)))])}))]),1040))}});export{x as default};
1
+ import{mergeVariants as e}from"../../theme/shared.js";import{miniSizeMap as t}from"../../theme/config.js";import"../../theme/index.js";import{buttonIconVariants as n}from"../button/variants.js";import{inputNumberVariants as r}from"./variants.js";import{computed as i,createBlock as a,createSlots as o,defineComponent as s,guardReactiveProps as c,mergeProps as l,normalizeProps as u,openBlock as d,renderList as f,renderSlot as p,unref as m,useSlots as h,withCtx as g}from"vue";import{useOmitProps as _}from"@soybeanjs/headless/composables";import{keysOf as v}from"@soybeanjs/utils";import{InputNumberCompact as y,provideInputNumberUi as b}from"@soybeanjs/headless/input-number";const x=s({name:`SInputNumber`,__name:`input-number`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},center:{type:Boolean},clearable:{type:Boolean},inputRef:{type:Function},controlProps:{},incrementProps:{},decrementProps:{},clearProps:{},defaultValue:{},modelValue:{},min:{},max:{},step:{},stepSnapping:{type:Boolean},focusOnChange:{type:Boolean},formatOptions:{},locale:{},disableWheelChange:{type:Boolean},invertWheelChange:{type:Boolean},rootProps:{},name:{},required:{type:Boolean},id:{},autofocus:{type:Boolean},autocomplete:{},disabled:{type:Boolean},maxlength:{},minlength:{},pattern:{},placeholder:{},readonly:{type:Boolean},type:{}},emits:[`update:modelValue`,`clear`],setup(s,{emit:x}){let S=s,C=x,w=_(S,[`class`,`size`,`ui`,`center`]),T=h(),E=i(()=>v(T));return b(i(()=>{let i=t[S.size??`md`];return e(Object.assign(r({size:S.size,center:S.center}),{$base:{decrement:n({size:i}),increment:n({size:i}),clear:n({size:i,shape:`circle`})}}),S.ui,{root:S.class})})),(e,t)=>(d(),a(m(y),l(m(w),{"onUpdate:modelValue":t[0]||=e=>C(`update:modelValue`,e)}),o({_:2},[f(E.value,t=>({name:t,fn:g(n=>[p(e.$slots,t,u(c(n)))])}))]),1040))}});export{x as default};
@@ -6,8 +6,8 @@ import { PageTabsOptionData } from "@soybeanjs/headless/page-tabs";
6
6
  //#region src/components/page-tabs/page-tabs.vue.d.ts
7
7
  declare const __VLS_export: <T extends PageTabsOptionData = PageTabsOptionData>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
8
8
  props: _$vue.PublicProps & __VLS_PrettifyLocal<PageTabsProps<T> & {
9
- onClick?: ((tab: T) => any) | undefined;
10
9
  onContextmenu?: ((tab: T) => any) | undefined;
10
+ onClick?: ((tab: T) => any) | undefined;
11
11
  onClose?: ((tab: T) => any) | undefined;
12
12
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
13
13
  "onUpdate:items"?: ((items: T[]) => any) | undefined;
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import{miniSizeMap as t}from"../../theme/config.js";import"../../theme/index.js";import{buttonIconVariants as n}from"../button/variants.js";import{inputVariants as r}from"../input/variants.js";import{computed as i,createBlock as a,createSlots as o,defineComponent as s,guardReactiveProps as c,mergeProps as l,normalizeProps as u,openBlock as d,renderList as f,renderSlot as p,unref as m,useSlots as h,withCtx as g}from"vue";import{useOmitProps as _}from"@soybeanjs/headless/composables";import{keysOf as v}from"@soybeanjs/utils";import{PasswordCompact as y,providePasswordUi as b}from"@soybeanjs/headless/password";const x=s({name:`SPassword`,__name:`password`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},clearable:{type:Boolean},visible:{type:Boolean,default:void 0},inputRef:{},controlProps:{},clearProps:{},visibleProps:{},defaultValue:{},modelValue:{},id:{},autofocus:{type:Boolean},disabled:{type:Boolean},maxlength:{},minlength:{},pattern:{},placeholder:{},readonly:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`update:visible`],setup(s,{emit:x}){let S=s,C=x,w=_(S,[`class`,`size`,`ui`]),T=h(),E=i(()=>v(T));return b(i(()=>{let i=t[S.size??`md`];return e(Object.assign(r({size:S.size}),{$base:{clear:n({size:i,shape:`circle`}),visible:n({size:i})}}),S.ui,{root:S.class})})),(e,t)=>(d(),a(m(y),l(m(w),{"onUpdate:modelValue":t[0]||=e=>C(`update:modelValue`,e),"onUpdate:visible":t[1]||=e=>C(`update:visible`,e)}),o({_:2},[f(E.value,t=>({name:t,fn:g(n=>[p(e.$slots,t,u(c(n)))])}))]),1040))}});export{x as default};
1
+ import{mergeVariants as e}from"../../theme/shared.js";import{miniSizeMap as t}from"../../theme/config.js";import"../../theme/index.js";import{buttonIconVariants as n}from"../button/variants.js";import{inputVariants as r}from"../input/variants.js";import{computed as i,createBlock as a,createSlots as o,defineComponent as s,guardReactiveProps as c,mergeProps as l,normalizeProps as u,openBlock as d,renderList as f,renderSlot as p,unref as m,useSlots as h,withCtx as g}from"vue";import{useOmitProps as _}from"@soybeanjs/headless/composables";import{keysOf as v}from"@soybeanjs/utils";import{PasswordCompact as y,providePasswordUi as b}from"@soybeanjs/headless/password";const x=s({name:`SPassword`,__name:`password`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},visible:{type:Boolean,default:void 0},visibleProps:{},inputRef:{},clearable:{type:Boolean},controlProps:{},clearProps:{},defaultValue:{},modelValue:{},disabled:{type:Boolean},readonly:{type:Boolean},rootProps:{},name:{},required:{type:Boolean},id:{},autofocus:{type:Boolean},autocomplete:{},maxlength:{},minlength:{},pattern:{},placeholder:{},type:{}},emits:[`update:modelValue`,`clear`,`update:visible`],setup(s,{emit:x}){let S=s,C=x,w=_(S,[`class`,`size`,`ui`]),T=h(),E=i(()=>v(T));return b(i(()=>{let i=t[S.size??`md`];return e(Object.assign(r({size:S.size}),{$base:{clear:n({size:i,shape:`circle`}),visible:n({size:i})}}),S.ui,{root:S.class})})),(e,t)=>(d(),a(m(y),l(m(w),{"onUpdate:modelValue":t[0]||=e=>C(`update:modelValue`,e),"onUpdate:visible":t[1]||=e=>C(`update:visible`,e)}),o({_:2},[f(E.value,t=>({name:t,fn:g(n=>[p(e.$slots,t,u(c(n)))])}))]),1040))}});export{x as default};
@@ -4,9 +4,11 @@ import * as _$vue from "vue";
4
4
  //#region src/components/password/password.vue.d.ts
5
5
  type __VLS_Slots = PasswordSlots;
6
6
  declare const __VLS_base: _$vue.DefineComponent<PasswordProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
7
+ clear: (event: PointerEvent) => any;
7
8
  "update:modelValue": (value: string) => any;
8
9
  "update:visible": (visible: boolean) => any;
9
10
  }, string, _$vue.PublicProps, Readonly<PasswordProps> & Readonly<{
11
+ onClear?: ((event: PointerEvent) => any) | undefined;
10
12
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
11
13
  "onUpdate:visible"?: ((visible: boolean) => any) | undefined;
12
14
  }>, {
@@ -13,13 +13,13 @@ type __VLS_Slots = {} & {
13
13
  default?: (props: typeof __VLS_8) => any;
14
14
  };
15
15
  declare const __VLS_base: _$vue.DefineComponent<SplitterPanelProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
16
+ resize: (size: number, prevSize: number | undefined) => any;
16
17
  collapse: () => any;
17
18
  expand: () => any;
18
- resize: (size: number, prevSize: number | undefined) => any;
19
19
  }, string, _$vue.PublicProps, Readonly<SplitterPanelProps> & Readonly<{
20
+ onResize?: ((size: number, prevSize: number | undefined) => any) | undefined;
20
21
  onCollapse?: (() => any) | undefined;
21
22
  onExpand?: (() => any) | undefined;
22
- onResize?: ((size: number, prevSize: number | undefined) => any) | undefined;
23
23
  }>, {}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
24
24
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
25
25
  declare const _default: typeof __VLS_export;
@@ -1 +1 @@
1
- import{mergeVariants as e}from"../../theme/shared.js";import{miniSizeMap as t}from"../../theme/config.js";import"../../theme/index.js";import{buttonIconVariants as n}from"../button/variants.js";import{tagsInputVariants as r}from"./variants.js";import{computed as i,createBlock as a,createSlots as o,defineComponent as s,guardReactiveProps as c,mergeProps as l,normalizeProps as u,openBlock as d,renderSlot as f,toHandlers as p,unref as m,useSlots as h,withCtx as g}from"vue";import{useForwardListeners as _,useOmitProps as v}from"@soybeanjs/headless/composables";import{TagsInputCompact as y,provideTagsInputUi as b}from"@soybeanjs/headless/tags-input";const x=s({name:`STagsInput`,__name:`tags-input`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},clearable:{type:Boolean},controlProps:{},clearProps:{},itemProps:{},itemTextProps:{},itemDeleteProps:{},dir:{},modelValue:{},defaultValue:{},addOnPaste:{type:Boolean},addOnTab:{type:Boolean},addOnBlur:{type:Boolean},duplicate:{type:Boolean},delimiter:{},max:{},displayValue:{type:Function},id:{},autofocus:{type:Boolean},disabled:{type:Boolean},maxlength:{},minlength:{},pattern:{},placeholder:{},readonly:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`invalid`,`addTag`,`removeTag`],setup(s,{emit:x}){let S=s,C=x,w=h(),T=v(S,[`class`,`size`,`ui`]),E=_(C);return b(i(()=>{let i=t[S.size||`md`];return e(Object.assign(r({size:S.size}),{$base:{itemDelete:n({size:i,shape:`circle`}),clear:n({size:S.size})}}),S.ui,{root:S.class})})),(e,t)=>(d(),a(m(y),l(m(T),p(m(E))),o({_:2},[w.item?{name:`item`,fn:g(t=>[f(e.$slots,`item`,u(c(t)))]),key:`0`}:void 0]),1040))}});export{x as default};
1
+ import{mergeVariants as e}from"../../theme/shared.js";import{miniSizeMap as t}from"../../theme/config.js";import"../../theme/index.js";import{buttonIconVariants as n}from"../button/variants.js";import{tagsInputVariants as r}from"./variants.js";import{computed as i,createBlock as a,createSlots as o,defineComponent as s,guardReactiveProps as c,mergeProps as l,normalizeProps as u,openBlock as d,renderSlot as f,toHandlers as p,unref as m,useSlots as h,withCtx as g}from"vue";import{useForwardListeners as _,useOmitProps as v}from"@soybeanjs/headless/composables";import{TagsInputCompact as y,provideTagsInputUi as b}from"@soybeanjs/headless/tags-input";const x=s({name:`STagsInput`,__name:`tags-input`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},clearable:{type:Boolean},controlProps:{},clearProps:{},itemProps:{},itemTextProps:{},itemDeleteProps:{},dir:{},modelValue:{},defaultValue:{},addOnPaste:{type:Boolean},addOnTab:{type:Boolean},addOnBlur:{type:Boolean},duplicate:{type:Boolean},delimiter:{},max:{},displayValue:{type:Function},id:{},autofocus:{type:Boolean},autocomplete:{},disabled:{type:Boolean},maxlength:{},minlength:{},pattern:{},placeholder:{},readonly:{type:Boolean},type:{},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`invalid`,`addTag`,`removeTag`],setup(s,{emit:x}){let S=s,C=x,w=h(),T=v(S,[`class`,`size`,`ui`]),E=_(C);return b(i(()=>{let i=t[S.size||`md`];return e(Object.assign(r({size:S.size}),{$base:{itemDelete:n({size:i,shape:`circle`}),clear:n({size:S.size})}}),S.ui,{root:S.class})})),(e,t)=>(d(),a(m(y),l(m(T),p(m(E))),o({_:2},[w.item?{name:`item`,fn:g(t=>[f(e.$slots,`item`,u(c(t)))]),key:`0`}:void 0]),1040))}});export{x as default};
@@ -1 +1 @@
1
- import{cn as e}from"./merge.js";import{entriesOf as t}from"@soybeanjs/utils";function n(n,...r){return t(o(n).reduce((e,t)=>(l(e,t.targetKey,t.classes,t.prepend),e),{})).reduce((t,[n,i])=>(t[n]=e(...i,...r.filter(Boolean).map(e=>e?.[n]).filter(Boolean)),t),{})}function r(e){return Array.isArray(e)}function i(e){return Array.isArray(e)}function a(e){return e?r(e)?Array.from(e):[e]:[]}function o(e){let{$alias:n,$base:r,...i}=e,o=t(i).map(([e,t])=>({targetKey:e,classes:[c(r?.[e]),t()??``]}));for(let e of a(n)){let{$base:t,...n}=e.variants;for(let[r,i]of s(e.map)){let a=n[r];a&&o.push({targetKey:i,classes:[c(t?.[r]),a()??``],prepend:e.base??!0})}}return o}function s(e){return i(e)?Array.from(e):t(e).reduce((e,[t,n])=>n?[...e,[t,n]]:e,[])}function c(e){return typeof e==`function`?e():e}function l(e,t,n,r=!1){let i=n.filter(Boolean);i.length!==0&&(e[t]||(e[t]=[]),e[t]=r?[...i,...e[t]]:[...e[t],...i])}export{n as mergeVariants};
1
+ import{cn as e}from"./merge.js";import{entriesOf as t}from"@soybeanjs/utils";function n(e){return e!=null&&e!==!1}function r(n,...r){return t(s(n).reduce((e,t)=>(u(e,t.targetKey,t.classes,t.prepend),e),{})).reduce((t,[n,i])=>(t[n]=e(...i,...r.filter(Boolean).map(e=>e?.[n]).filter(Boolean)),t),{})}function i(e){return Array.isArray(e)}function a(e){return Array.isArray(e)}function o(e){return e?i(e)?Array.from(e):[e]:[]}function s(e){let{$alias:n,$base:r,...i}=e,a=t(i).map(([e,t])=>({targetKey:e,classes:[l(r?.[e]),t()??``]}));for(let e of o(n)){let{$base:t,...n}=e.variants;for(let[r,i]of c(e.map)){let o=n[r];o&&a.push({targetKey:i,classes:[l(t?.[r]),o()??``],prepend:e.base??!0})}}return a}function c(e){return a(e)?Array.from(e):t(e).reduce((e,[t,n])=>n?[...e,[t,n]]:e,[])}function l(e){return typeof e==`function`?e():e}function u(e,t,r,i=!1){let a=r.filter(n);e[t]??=[],e[t]=i?[...a,...e[t]]:[...e[t],...a]}export{r as mergeVariants};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soybeanjs/ui",
3
- "version": "0.22.0",
3
+ "version": "0.22.2",
4
4
  "description": "SoybeanUI is built on top of SoybeanHeadless, providing a collection of styled components for Vue 3.",
5
5
  "homepage": "https://github.com/soybeanjs/soybean-ui",
6
6
  "bugs": {
@@ -44,20 +44,17 @@
44
44
  "registry": "https://registry.npmjs.org/"
45
45
  },
46
46
  "dependencies": {
47
- "@formkit/auto-animate": "^0.9.0",
48
47
  "@iconify/vue": "^5.0.1",
49
- "@soybeanjs/colord": "^0.5.0",
50
- "@soybeanjs/hooks": "^0.2.0",
48
+ "@soybeanjs/hooks": "^0.3.0",
51
49
  "@soybeanjs/shadcn-theme": "^0.3.1",
52
50
  "@soybeanjs/utils": "^0.1.1",
53
- "@vueuse/core": "^14.3.0",
54
51
  "clsx": "^2.1.1",
55
52
  "fuse.js": "^7.3.0",
56
53
  "tailwind-merge": "^3.6.0",
57
54
  "tailwind-variants": "^3.2.2",
58
55
  "valibot": "^1.4.0",
59
56
  "zod": "^4.4.3",
60
- "@soybeanjs/headless": "^0.22.0"
57
+ "@soybeanjs/headless": "^0.22.2"
61
58
  },
62
59
  "devDependencies": {
63
60
  "@soybeanjs/cli": "^1.7.2",
@@ -93,8 +90,8 @@
93
90
  "vite-plugin-vue-meta-layouts": "^0.6.1",
94
91
  "vitest": "^4.1.6",
95
92
  "vue": "^3.5.34",
96
- "vue-router": "^5.0.6",
97
- "vue-tsc": "^3.2.8"
93
+ "vue-router": "^5.0.7",
94
+ "vue-tsc": "^3.2.9"
98
95
  },
99
96
  "simple-git-hooks": {
100
97
  "commit-msg": "pnpm soy git-commit-verify",