@soybeanjs/ui 0.15.0-beta.2 → 0.15.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/dist/components/accordion/accordion.js +1 -1
  2. package/dist/components/accordion/variants.js +1 -1
  3. package/dist/components/affix/affix.js +1 -1
  4. package/dist/components/affix/affix.vue.d.ts +4 -2
  5. package/dist/components/affix/index.d.ts +1 -3
  6. package/dist/components/affix/types.d.ts +4 -5
  7. package/dist/components/alert/alert.js +1 -1
  8. package/dist/components/alert/alert.vue.d.ts +2 -15
  9. package/dist/components/alert/index.d.ts +1 -1
  10. package/dist/components/alert/types.d.ts +7 -15
  11. package/dist/components/anchor/anchor.js +1 -1
  12. package/dist/components/anchor/anchor.vue.d.ts +1 -1
  13. package/dist/components/anchor/index.d.ts +3 -3
  14. package/dist/components/anchor/types.d.ts +7 -24
  15. package/dist/components/autocomplete/autocomplete.js +1 -1
  16. package/dist/components/autocomplete/autocomplete.vue.d.ts +4 -26
  17. package/dist/components/autocomplete/index.d.ts +1 -1
  18. package/dist/components/autocomplete/types.d.ts +7 -85
  19. package/dist/components/autocomplete/variants.js +1 -1
  20. package/dist/components/backtop/backtop.js +1 -0
  21. package/dist/components/backtop/backtop.vue.d.ts +34 -0
  22. package/dist/components/backtop/index.d.ts +4 -0
  23. package/dist/components/backtop/index.js +1 -0
  24. package/dist/components/backtop/types.d.ts +33 -0
  25. package/dist/components/backtop/variants.js +1 -0
  26. package/dist/components/breadcrumb/breadcrumb.js +1 -1
  27. package/dist/components/breadcrumb/breadcrumb.vue.d.ts +3 -33
  28. package/dist/components/breadcrumb/index.d.ts +1 -1
  29. package/dist/components/breadcrumb/types.d.ts +6 -38
  30. package/dist/components/breadcrumb/variants.js +1 -1
  31. package/dist/components/button/button-group.js +1 -1
  32. package/dist/components/button/button-icon.js +1 -1
  33. package/dist/components/button/button-loading.js +1 -1
  34. package/dist/components/button/button.js +1 -1
  35. package/dist/components/button/index.js +1 -1
  36. package/dist/components/button/variants.d.ts +1 -1
  37. package/dist/components/button/variants.js +1 -1
  38. package/dist/components/carousel/types.d.ts +1 -1
  39. package/dist/components/carousel/variants.js +1 -1
  40. package/dist/components/checkbox/checkbox-card-group.js +1 -1
  41. package/dist/components/checkbox/checkbox-card-group.vue.d.ts +4 -5
  42. package/dist/components/checkbox/checkbox-card.js +1 -1
  43. package/dist/components/checkbox/checkbox-card.vue.d.ts +3 -5
  44. package/dist/components/checkbox/checkbox-group.js +1 -1
  45. package/dist/components/checkbox/checkbox-group.vue.d.ts +4 -5
  46. package/dist/components/checkbox/checkbox.js +1 -1
  47. package/dist/components/checkbox/checkbox.vue.d.ts +2 -11
  48. package/dist/components/checkbox/index.d.ts +2 -4
  49. package/dist/components/checkbox/index.js +1 -1
  50. package/dist/components/checkbox/types.d.ts +31 -31
  51. package/dist/components/checkbox/variants.d.ts +3 -0
  52. package/dist/components/checkbox/variants.js +1 -1
  53. package/dist/components/clipboard/clipboard.js +1 -0
  54. package/dist/components/clipboard/clipboard.vue.d.ts +55 -0
  55. package/dist/components/clipboard/index.d.ts +3 -0
  56. package/dist/components/clipboard/index.js +1 -0
  57. package/dist/components/clipboard/types.d.ts +16 -0
  58. package/dist/components/clipboard/variants.d.ts +1 -0
  59. package/dist/components/color-area/color-area.vue.d.ts +2 -2
  60. package/dist/components/color-area/variants.js +1 -1
  61. package/dist/components/color-field/variants.js +1 -1
  62. package/dist/components/color-picker/color-picker.vue.d.ts +6 -6
  63. package/dist/components/color-slider/color-slider.vue.d.ts +2 -2
  64. package/dist/components/color-swatch-picker/color-swatch-picker.js +1 -1
  65. package/dist/components/combobox/combobox.js +1 -1
  66. package/dist/components/combobox/combobox.vue.d.ts +5 -48
  67. package/dist/components/combobox/index.d.ts +3 -3
  68. package/dist/components/combobox/types.d.ts +6 -60
  69. package/dist/components/combobox/variants.js +1 -1
  70. package/dist/components/command/command.js +1 -1
  71. package/dist/components/command/command.vue.d.ts +3 -23
  72. package/dist/components/command/index.d.ts +4 -2
  73. package/dist/components/command/types.d.ts +8 -90
  74. package/dist/components/config-provider/config-provider.js +1 -1
  75. package/dist/components/config-provider/config-provider.vue.d.ts +2 -2
  76. package/dist/components/config-provider/types.d.ts +3 -2
  77. package/dist/components/context-menu/context-menu-checkbox.js +1 -1
  78. package/dist/components/context-menu/context-menu-checkbox.vue.d.ts +2 -2
  79. package/dist/components/context-menu/context-menu-radio.js +1 -1
  80. package/dist/components/context-menu/context-menu-radio.vue.d.ts +2 -2
  81. package/dist/components/context-menu/context-menu-wrapper.js +1 -1
  82. package/dist/components/context-menu/context-menu.js +1 -1
  83. package/dist/components/dialog/dialog-provider.js +1 -0
  84. package/dist/components/dialog/dialog-provider.vue.d.ts +7 -0
  85. package/dist/components/dialog/dialog.js +1 -1
  86. package/dist/components/dialog/dialog.vue.d.ts +9 -29
  87. package/dist/components/dialog/index.d.ts +4 -5
  88. package/dist/components/dialog/index.js +1 -1
  89. package/dist/components/dialog/types.d.ts +7 -34
  90. package/dist/components/dialog/variants.js +1 -1
  91. package/dist/components/drawer/drawer.js +1 -1
  92. package/dist/components/drawer/drawer.vue.d.ts +9 -29
  93. package/dist/components/drawer/index.d.ts +2 -3
  94. package/dist/components/drawer/index.js +1 -1
  95. package/dist/components/drawer/types.d.ts +4 -6
  96. package/dist/components/drawer/variants.js +1 -1
  97. package/dist/components/dropdown-menu/dropdown-menu-checkbox.js +1 -1
  98. package/dist/components/dropdown-menu/dropdown-menu-checkbox.vue.d.ts +2 -2
  99. package/dist/components/dropdown-menu/dropdown-menu-radio.js +1 -1
  100. package/dist/components/dropdown-menu/dropdown-menu-radio.vue.d.ts +2 -2
  101. package/dist/components/dropdown-menu/dropdown-menu-wrapper.js +1 -1
  102. package/dist/components/dropdown-menu/dropdown-menu.js +1 -1
  103. package/dist/components/editable/variants.js +1 -1
  104. package/dist/components/empty/variants.js +1 -1
  105. package/dist/components/input/variants.js +1 -1
  106. package/dist/components/input-otp/index.d.ts +4 -0
  107. package/dist/components/input-otp/index.js +1 -0
  108. package/dist/components/input-otp/input-otp.js +1 -0
  109. package/dist/components/input-otp/input-otp.vue.d.ts +37 -0
  110. package/dist/components/input-otp/types.d.ts +16 -0
  111. package/dist/components/input-otp/variants.js +1 -0
  112. package/dist/components/kbd/types.d.ts +2 -2
  113. package/dist/components/layout/layout.js +1 -1
  114. package/dist/components/layout/variants.js +1 -1
  115. package/dist/components/menu/variants.js +1 -1
  116. package/dist/components/menubar/menubar.vue.d.ts +2 -2
  117. package/dist/components/navigation-menu/navigation-menu.vue.d.ts +2 -2
  118. package/dist/components/navigation-menu/variants.js +1 -1
  119. package/dist/components/page-tabs/page-tabs.vue.d.ts +1 -1
  120. package/dist/components/pagination/variants.js +1 -1
  121. package/dist/components/popconfirm/popconfirm.js +1 -1
  122. package/dist/components/popconfirm/popconfirm.vue.d.ts +2 -2
  123. package/dist/components/popover/popover.js +1 -1
  124. package/dist/components/progress/index.d.ts +4 -6
  125. package/dist/components/progress/index.js +1 -1
  126. package/dist/components/progress/progress-circle.js +1 -1
  127. package/dist/components/progress/progress-provider.js +1 -0
  128. package/dist/components/progress/progress-provider.vue.d.ts +8 -0
  129. package/dist/components/progress/progress.js +1 -1
  130. package/dist/components/progress/types.d.ts +3 -23
  131. package/dist/components/progress/variants.js +1 -1
  132. package/dist/components/radio-group/index.d.ts +3 -3
  133. package/dist/components/radio-group/index.js +1 -1
  134. package/dist/components/radio-group/radio-group.js +1 -1
  135. package/dist/components/radio-group/types.d.ts +5 -14
  136. package/dist/components/radio-group/variants.js +1 -1
  137. package/dist/components/segment/index.d.ts +2 -1
  138. package/dist/components/segment/segment.js +1 -1
  139. package/dist/components/segment/segment.vue.d.ts +6 -11
  140. package/dist/components/segment/types.d.ts +6 -16
  141. package/dist/components/select/index.d.ts +1 -1
  142. package/dist/components/select/select.js +1 -1
  143. package/dist/components/select/select.vue.d.ts +4 -30
  144. package/dist/components/select/types.d.ts +6 -74
  145. package/dist/components/select/variants.js +1 -1
  146. package/dist/components/slider/variants.js +1 -1
  147. package/dist/components/splitter/splitter-panel.vue.d.ts +2 -2
  148. package/dist/components/splitter/variants.js +1 -1
  149. package/dist/components/stepper/variants.js +1 -1
  150. package/dist/components/switch/variants.js +1 -1
  151. package/dist/components/table/hooks.js +1 -1
  152. package/dist/components/table/variants.js +1 -1
  153. package/dist/components/tabs/index.d.ts +3 -3
  154. package/dist/components/tabs/tabs.js +1 -1
  155. package/dist/components/tabs/tabs.vue.d.ts +6 -15
  156. package/dist/components/tabs/types.d.ts +8 -18
  157. package/dist/components/tabs/variants.js +1 -1
  158. package/dist/components/tags-input/variants.js +1 -1
  159. package/dist/components/textarea/variants.js +1 -1
  160. package/dist/components/toast/styles.js +0 -4
  161. package/dist/components/toast/toaster.js +1 -1
  162. package/dist/components/toast/toaster.vue.d.ts +0 -1
  163. package/dist/components/toast/variants.js +1 -1
  164. package/dist/components/toggle/variants.js +1 -1
  165. package/dist/components/toggle-group/toggle-group.js +1 -1
  166. package/dist/components/toggle-group/variants.js +1 -1
  167. package/dist/components/tree-menu/tree-menu-option-slot.js +1 -1
  168. package/dist/constants/components.d.ts +3 -2
  169. package/dist/constants/components.js +1 -1
  170. package/dist/index.d.ts +134 -139
  171. package/dist/index.js +1 -1
  172. package/dist/styles.css +49 -32
  173. package/dist/theme/shared.js +1 -1
  174. package/package.json +15 -12
  175. package/dist/components/alert-dialog/alert-dialog-cancel.js +0 -1
  176. package/dist/components/alert-dialog/alert-dialog-cancel.vue.d.ts +0 -25
  177. package/dist/components/alert-dialog/alert-dialog-confirm.js +0 -1
  178. package/dist/components/alert-dialog/alert-dialog-confirm.vue.d.ts +0 -22
  179. package/dist/components/alert-dialog/alert-dialog.js +0 -1
  180. package/dist/components/alert-dialog/alert-dialog.vue.d.ts +0 -45
  181. package/dist/components/alert-dialog/context.d.ts +0 -5
  182. package/dist/components/alert-dialog/context.js +0 -1
  183. package/dist/components/alert-dialog/dialog-provider.js +0 -1
  184. package/dist/components/alert-dialog/index.d.ts +0 -7
  185. package/dist/components/alert-dialog/index.js +0 -1
  186. package/dist/components/alert-dialog/types.d.ts +0 -103
  187. package/dist/components/anchor/anchor-item.js +0 -1
  188. package/dist/components/anchor/context.js +0 -1
  189. package/dist/components/autocomplete/autocomplete-group-option.js +0 -1
  190. package/dist/components/autocomplete/autocomplete-option.js +0 -1
  191. package/dist/components/autocomplete/autocomplete-single-option.js +0 -1
  192. package/dist/components/autocomplete/context.js +0 -1
  193. package/dist/components/autocomplete/shared.js +0 -1
  194. package/dist/components/bottom-sheet/bottom-sheet-close.js +0 -1
  195. package/dist/components/bottom-sheet/bottom-sheet-close.vue.d.ts +0 -18
  196. package/dist/components/bottom-sheet/bottom-sheet.js +0 -1
  197. package/dist/components/bottom-sheet/bottom-sheet.vue.d.ts +0 -72
  198. package/dist/components/bottom-sheet/index.d.ts +0 -3
  199. package/dist/components/bottom-sheet/index.js +0 -1
  200. package/dist/components/bottom-sheet/types.d.ts +0 -31
  201. package/dist/components/bottom-sheet/variants.js +0 -1
  202. package/dist/components/breadcrumb/shared.js +0 -1
  203. package/dist/components/combobox/combobox-group-option.js +0 -1
  204. package/dist/components/combobox/combobox-option.js +0 -1
  205. package/dist/components/combobox/combobox-single-option.js +0 -1
  206. package/dist/components/combobox/shared.js +0 -1
  207. package/dist/components/command/command-group-option.js +0 -1
  208. package/dist/components/command/command-option.js +0 -1
  209. package/dist/components/command/command-single-option.js +0 -1
  210. package/dist/components/command/context.js +0 -1
  211. package/dist/components/command/shared.js +0 -1
  212. package/dist/components/dialog/dialog-close.js +0 -1
  213. package/dist/components/dialog/dialog-close.vue.d.ts +0 -18
  214. package/dist/components/dialog/dialog-pure.js +0 -1
  215. package/dist/components/dialog/dialog-pure.vue.d.ts +0 -47
  216. package/dist/components/drawer/drawer-close.js +0 -1
  217. package/dist/components/drawer/drawer-close.vue.d.ts +0 -18
  218. package/dist/components/progress/context.d.ts +0 -5
  219. package/dist/components/progress/context.js +0 -1
  220. package/dist/components/progress/loading-bar.js +0 -1
  221. package/dist/components/progress/loading-bar.vue.d.ts +0 -25
  222. package/dist/components/progress/shared.d.ts +0 -7
  223. package/dist/components/progress/shared.js +0 -1
  224. package/dist/components/select/select-group-option.js +0 -1
  225. package/dist/components/select/select-option.js +0 -1
  226. package/dist/components/select/select-single-option.js +0 -1
  227. package/dist/components/select/shared.js +0 -1
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{accordionVariants as t}from"./variants.js";import{computed as n,createBlock as r,createSlots as i,defineComponent as a,guardReactiveProps as o,mergeProps as s,normalizeProps as c,openBlock as l,renderList as u,renderSlot as d,toHandlers as f,unref as p,useSlots as m,withCtx as h}from"vue";import{useForwardListeners as g,useOmitProps as _}from"@soybeanjs/headless/composables";import{AccordionCompact as v,provideAccordionUi as y}from"@soybeanjs/headless";import{keysOf as b}from"@soybeanjs/utils";const x=a({name:`SAccordion`,__name:`accordion`,props:{class:{},size:{},ui:{},items:{},itemProps:{},headerProps:{},triggerProps:{},contentProps:{},descriptionProps:{},collapsible:{type:Boolean},dir:{},disabled:{type:Boolean},orientation:{},unmountOnHide:{type:Boolean},modelValue:{},defaultValue:{},multiple:{},singleClearable:{type:Boolean}},emits:[`update:modelValue`],setup(a,{emit:x}){let S=a,C=x,w=m(),T=_(S,[`class`,`size`,`ui`]),E=g(C),D=n(()=>b(w).filter(e=>e!==`item`));return y(n(()=>e(t({size:S.size}),S.ui,{root:S.class}))),(e,t)=>(l(),r(p(v),s(p(T),f(p(E))),i({item:h(t=>[d(e.$slots,`item`,c(o(t)))]),_:2},[u(D.value,t=>({name:t,fn:h(n=>[d(e.$slots,t,c(o(n)))])}))]),1040))}});export{x as default};
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{accordionVariants as t}from"./variants.js";import{computed as n,createBlock as r,createSlots as i,defineComponent as a,guardReactiveProps as o,mergeProps as s,normalizeProps as c,openBlock as l,renderList as u,renderSlot as d,toHandlers as f,unref as p,useSlots as m,withCtx as h}from"vue";import{useForwardListeners as g,useOmitProps as _}from"@soybeanjs/headless/composables";import{AccordionCompact as v,provideAccordionUi as y}from"@soybeanjs/headless";import{keysOf as b}from"@soybeanjs/utils";const x=a({name:`SAccordion`,__name:`accordion`,props:{class:{},size:{},ui:{},items:{},itemProps:{},headerProps:{},triggerProps:{},contentProps:{},descriptionProps:{},collapsible:{type:Boolean},dir:{},disabled:{type:Boolean},orientation:{},unmountOnHide:{type:Boolean},modelValue:{},defaultValue:{},multiple:{},clearable:{type:Boolean},selectionBehavior:{}},emits:[`update:modelValue`],setup(a,{emit:x}){let S=a,C=x,w=m(),T=_(S,[`class`,`size`,`ui`]),E=g(C),D=n(()=>b(w).filter(e=>e!==`item`));return y(n(()=>e(t({size:S.size}),S.ui,{root:S.class}))),(e,t)=>(l(),r(p(v),s(p(T),f(p(E))),i({item:h(t=>[d(e.$slots,`item`,c(o(t)))]),_:2},[u(D.value,t=>({name:t,fn:h(n=>[d(e.$slots,t,c(o(n)))])}))]),1040))}});export{x as default};
@@ -1 +1 @@
1
- import{tv as e}from"tailwind-variants";const t=e({slots:{root:``,item:`border-b`,header:`flex`,content:[`overflow-hidden transition will-change-auto`,`data-[state=open]:animate-accordion-down data-[state=closed]:animate-accordion-up`],description:`m-0`,trigger:[`flex-1 flex items-center justify-start font-medium transition-all-200 bg-transparent`,`focus-visible:outline-none focus-visible:ring-3 focus-visible:ring-offset-background focus-visible:ring-primary/30`,`hover:underline [&[data-state=open]>.trigger-icon]:rotate-180`],triggerLeadingIcon:`shrink-0`,triggerIcon:`trigger-icon ml-auto shrink-0 text-muted-foreground transition-transform-200`},variants:{size:{xs:{root:`text-2xs`,description:`pb-3`,trigger:`py-3 gap-2.5`},sm:{root:`text-xs`,description:`pb-3.5`,trigger:`py-3.5 gap-3`},md:{root:`text-sm`,description:`pb-4`,trigger:`py-4 gap-3.5`},lg:{root:`text-base`,description:`pb-4.5`,trigger:`py-4.5 gap-4`},xl:{root:`text-lg`,description:`pb-5`,trigger:`py-5 gap-4.5`},"2xl":{root:`text-2xl`,description:`pb-6`,trigger:`py-6 gap-5`}}},defaultVariants:{size:`md`}});export{t as accordionVariants};
1
+ import{tv as e}from"tailwind-variants";const t=e({slots:{root:``,item:`border-b`,header:`flex`,content:[`overflow-hidden transition will-change-auto`,`data-[state=open]:animate-accordion-down data-[state=closed]:animate-accordion-up`],description:`m-0`,trigger:[`flex-1 flex items-center justify-start font-medium transition-all-200 bg-transparent`,`outline-none focus-visible:ring-3 focus-visible:ring-offset-background focus-visible:ring-primary/30`,`hover:underline [&[data-state=open]>.trigger-icon]:rotate-180`],triggerLeadingIcon:`shrink-0`,triggerIcon:`trigger-icon ml-auto shrink-0 text-muted-foreground transition-transform-200`},variants:{size:{xs:{root:`text-2xs`,description:`pb-3`,trigger:`py-3 gap-2.5`},sm:{root:`text-xs`,description:`pb-3.5`,trigger:`py-3.5 gap-3`},md:{root:`text-sm`,description:`pb-4`,trigger:`py-4 gap-3.5`},lg:{root:`text-base`,description:`pb-4.5`,trigger:`py-4.5 gap-4`},xl:{root:`text-lg`,description:`pb-5`,trigger:`py-5 gap-4.5`},"2xl":{root:`text-2xl`,description:`pb-6`,trigger:`py-6 gap-5`}}},defaultVariants:{size:`md`}});export{t as accordionVariants};
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{affixVariants as t}from"./variants.js";import{computed as n,createBlock as r,createVNode as i,defineComponent as a,mergeProps as o,openBlock as s,renderSlot as c,toHandlers as l,unref as u,withCtx as d}from"vue";import{useForwardListeners as f,useOmitProps as p}from"@soybeanjs/headless/composables";import{AffixContent as m,AffixPlaceholder as h,AffixRoot as g,provideAffixUi as _}from"@soybeanjs/headless";const v=a({name:`SAffix`,__name:`affix`,props:{class:{},ui:{},placeholderProps:{},contentProps:{},offsetTop:{},offsetBottom:{},target:{type:[String,Function,null]}},emits:[`change`],setup(a,{emit:v}){let y=a,b=v,x=p(y,[`class`,`ui`,`placeholderProps`,`contentProps`]),S=f(b);return _(n(()=>e(t(),y.ui,{content:y.class}))),(e,t)=>(s(),r(u(g),o(u(x),l(u(S))),{default:d(()=>[i(u(h)),i(u(m),null,{default:d(()=>[c(e.$slots,`default`)]),_:3})]),_:3},16))}});export{v as default};
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{affixVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,guardReactiveProps as a,mergeProps as o,normalizeProps as s,openBlock as c,renderSlot 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{AffixCompact as h,provideAffixUi as g}from"@soybeanjs/headless";const _=i({name:`SAffix`,__name:`affix`,props:{class:{},ui:{},placeholderProps:{},contentProps:{},offsetTop:{},offsetBottom:{},target:{type:[String,Function,null]}},emits:[`change`],setup(i,{emit:_}){let v=i,y=_,b=m(v,[`class`,`ui`]),x=p(y);return g(n(()=>e(t(),v.ui,{content:v.class}))),(e,t)=>(c(),r(d(h),o(d(b),u(d(x))),{default:f(t=>[l(e.$slots,`default`,s(a(t)))]),_:3},16))}});export{_ as default};
@@ -2,9 +2,11 @@ import { AffixProps } from "./types.js";
2
2
  import * as _$vue from "vue";
3
3
 
4
4
  //#region src/components/affix/affix.vue.d.ts
5
- declare var __VLS_19: {};
5
+ declare var __VLS_8: {
6
+ affixed: boolean;
7
+ };
6
8
  type __VLS_Slots = {} & {
7
- default?: (props: typeof __VLS_19) => any;
9
+ default?: (props: typeof __VLS_8) => any;
8
10
  };
9
11
  declare const __VLS_base: _$vue.DefineComponent<AffixProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
10
12
  change: (affixed: boolean) => any;
@@ -1,4 +1,2 @@
1
1
  import { AffixEmits, AffixProps } from "./types.js";
2
- import { _default } from "./affix.vue.js";
3
- import { AffixRootEmits, AffixRootExposed, AffixRootProps, AffixTarget, AffixUi, AffixUiSlot } from "@soybeanjs/headless/affix";
4
- export { type AffixRootEmits, type AffixRootExposed, type AffixRootProps, type AffixTarget, type AffixUi, type AffixUiSlot };
2
+ import { _default } from "./affix.vue.js";
@@ -1,15 +1,14 @@
1
- import { AffixContentProps, AffixPlaceholderProps, AffixRootEmits, AffixRootProps, AffixUi, ClassValue } from "@soybeanjs/headless";
1
+ import { ClassValue } from "@soybeanjs/headless";
2
+ import { AffixCompactEmits, AffixCompactProps, AffixUi } from "@soybeanjs/headless/affix";
2
3
 
3
4
  //#region src/components/affix/types.d.ts
4
- interface AffixProps extends AffixRootProps {
5
+ interface AffixProps extends AffixCompactProps {
5
6
  /**
6
7
  * Additional class names to apply to the content element.
7
8
  */
8
9
  class?: ClassValue;
9
10
  ui?: Partial<AffixUi>;
10
- placeholderProps?: AffixPlaceholderProps;
11
- contentProps?: AffixContentProps;
12
11
  }
13
- type AffixEmits = AffixRootEmits;
12
+ type AffixEmits = AffixCompactEmits;
14
13
  //#endregion
15
14
  export { AffixEmits, AffixProps };
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import t from"../icon/icon.js";import n from"../button/button-icon.js";import{alertVariants as r}from"./variants.js";import{computed as i,createBlock as a,createCommentVNode as o,createTextVNode as s,createVNode as c,defineComponent as l,guardReactiveProps as u,mergeProps as d,normalizeClass as f,normalizeProps as p,openBlock as m,renderSlot as h,toDisplayString as g,unref as _,useSlots as v,withCtx as y}from"vue";import{AlertClose as b,AlertContent as x,AlertDescription as S,AlertRoot as C,AlertTitle as w,provideAlertUi as T}from"@soybeanjs/headless";const E=l({name:`SAlert`,__name:`alert`,props:{class:{},size:{},color:{},variant:{},ui:{},title:{},description:{},icon:{},closable:{type:Boolean},contentProps:{},titleProps:{},descriptionProps:{},closeProps:{},open:{type:Boolean,default:void 0}},emits:[`update:open`],setup(l,{emit:E}){let D=l,O=E,k=v(),A=i(()=>e(r({size:D.size,color:D.color,variant:D.variant}),D.ui,{root:D.class}));return T(A),(e,r)=>(m(),a(_(C),{open:l.open,"onUpdate:open":r[0]||=e=>O(`update:open`,e)},{default:y(()=>[h(e.$slots,`leading`,{},()=>[c(t,{icon:l.icon,class:f(A.value.icon)},null,8,[`icon`,`class`])]),c(_(x),p(u(l.contentProps)),{default:y(()=>[_(k).title||l.title?(m(),a(_(w),p(d({key:0},l.titleProps)),{default:y(()=>[h(e.$slots,`title`,{},()=>[s(g(l.title),1)])]),_:3},16)):o(`v-if`,!0),_(k).description||l.description?(m(),a(_(S),p(d({key:1},l.descriptionProps)),{default:y(()=>[h(e.$slots,`description`,{},()=>[s(g(l.description),1)])]),_:3},16)):o(`v-if`,!0),h(e.$slots,`default`)]),_:3},16),h(e.$slots,`trailing`),l.closable?(m(),a(_(b),d({key:0},l.closeProps,{"as-child":``}),{default:y(()=>[h(e.$slots,`close`,{},()=>[c(n,{icon:`lucide:x`,size:l.size},null,8,[`size`])])]),_:3},16)):o(`v-if`,!0)]),_:3},8,[`open`]))}});export{E as default};
1
+ import{mergeBaseVariants as e,mergeSlotVariants as t}from"../../theme/shared.js";import{miniSizeMap as n}from"../../theme/config.js";import"../../theme/index.js";import{alertVariants as r}from"./variants.js";import{buttonVariants as i}from"../button/variants.js";import{computed as a,createBlock as o,createSlots as s,defineComponent as c,mergeProps as l,openBlock as u,renderList as d,renderSlot as f,unref as p,useSlots as m,withCtx as h}from"vue";import{useOmitProps as g}from"@soybeanjs/headless/composables";import{AlertCompact as _,provideAlertUi as v}from"@soybeanjs/headless";import{keysOf as y}from"@soybeanjs/utils";const b=c({name:`SAlert`,__name:`alert`,props:{class:{},size:{},color:{},variant:{},ui:{},title:{},description:{},icon:{},closable:{type:Boolean},contentProps:{},titleProps:{},descriptionProps:{},closeProps:{},open:{type:Boolean,default:void 0}},emits:[`update:open`],setup(c,{emit:b}){let x=c,S=b,C=m(),w=g(x,[`class`,`size`,`color`,`variant`,`ui`]),T=a(()=>y(C));return v(a(()=>t(e(r({size:x.size,color:x.color,variant:x.variant}),{close:i({variant:`ghost`,color:`accent`,size:n[x.size??`md`],shape:`square`,fitContent:!0})}),x.ui,{root:x.class}))),(e,t)=>(u(),o(p(_),l(p(w),{"onUpdate:open":t[0]||=e=>S(`update:open`,e)}),s({_:2},[d(T.value,t=>({name:t,fn:h(()=>[f(e.$slots,t)])}))]),1040))}});export{b as default};
@@ -1,21 +1,8 @@
1
- import { AlertProps } from "./types.js";
1
+ import { AlertProps, AlertSlots } from "./types.js";
2
2
  import * as _$vue from "vue";
3
3
 
4
4
  //#region src/components/alert/alert.vue.d.ts
5
- declare var __VLS_10: {}, __VLS_29: {}, __VLS_37: {}, __VLS_39: {}, __VLS_41: {}, __VLS_49: {};
6
- type __VLS_Slots = {} & {
7
- leading?: (props: typeof __VLS_10) => any;
8
- } & {
9
- title?: (props: typeof __VLS_29) => any;
10
- } & {
11
- description?: (props: typeof __VLS_37) => any;
12
- } & {
13
- default?: (props: typeof __VLS_39) => any;
14
- } & {
15
- trailing?: (props: typeof __VLS_41) => any;
16
- } & {
17
- close?: (props: typeof __VLS_49) => any;
18
- };
5
+ type __VLS_Slots = AlertSlots;
19
6
  declare const __VLS_base: _$vue.DefineComponent<AlertProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
20
7
  "update:open": (open: boolean) => any;
21
8
  }, string, _$vue.PublicProps, Readonly<AlertProps> & Readonly<{
@@ -1,5 +1,5 @@
1
1
  import { AlertVariant } from "./variants.js";
2
- import { AlertEmits, AlertExtendedUi, AlertProps } from "./types.js";
2
+ import { AlertEmits, AlertExtendedUi, AlertProps, AlertSlots } from "./types.js";
3
3
  import { _default } from "./alert.vue.js";
4
4
  import { AlertCloseProps, AlertContentProps, AlertDescriptionProps, AlertRootEmits, AlertRootProps, AlertTitleProps } from "@soybeanjs/headless/alert";
5
5
  export { type AlertCloseProps, type AlertContentProps, type AlertDescriptionProps, type AlertRootEmits, type AlertRootProps, type AlertTitleProps };
@@ -1,12 +1,11 @@
1
1
  import { ThemeColor, ThemeSize } from "../../theme/types.js";
2
- import { IconValue } from "../icon/types.js";
3
2
  import { AlertVariant } from "./variants.js";
4
- import { AlertCloseProps, AlertContentProps, AlertDescriptionProps, AlertRootEmits, AlertRootProps, AlertTitleProps, AlertUiSlot, ClassValue, UiClass } from "@soybeanjs/headless";
3
+ import { ClassValue } from "@soybeanjs/headless";
4
+ import { AlertCompactEmits, AlertCompactProps, AlertCompactSlots, AlertUi } from "@soybeanjs/headless/alert";
5
5
 
6
6
  //#region src/components/alert/types.d.ts
7
- type AlertExtraUiSlot = 'icon';
8
- type AlertExtendedUi = UiClass<AlertUiSlot | AlertExtraUiSlot>;
9
- interface AlertProps extends AlertRootProps {
7
+ type AlertExtendedUi = AlertUi;
8
+ interface AlertProps extends AlertCompactProps {
10
9
  /**
11
10
  * root class
12
11
  */
@@ -15,15 +14,8 @@ interface AlertProps extends AlertRootProps {
15
14
  color?: ThemeColor;
16
15
  variant?: AlertVariant;
17
16
  ui?: Partial<AlertExtendedUi>;
18
- title?: string;
19
- description?: string;
20
- icon?: IconValue;
21
- closable?: boolean;
22
- contentProps?: AlertContentProps;
23
- titleProps?: AlertTitleProps;
24
- descriptionProps?: AlertDescriptionProps;
25
- closeProps?: AlertCloseProps;
26
17
  }
27
- type AlertEmits = AlertRootEmits;
18
+ type AlertEmits = AlertCompactEmits;
19
+ type AlertSlots = AlertCompactSlots;
28
20
  //#endregion
29
- export { AlertEmits, AlertExtendedUi, AlertProps };
21
+ export { AlertEmits, AlertExtendedUi, AlertProps, AlertSlots };
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{provideExtraAnchorUi as t}from"./context.js";import n from"./anchor-item.js";import{anchorVariants as r}from"./variants.js";import{Fragment as i,computed as a,createBlock as o,createElementBlock as s,defineComponent as c,mergeProps as l,openBlock as u,renderList as d,toHandlers as f,unref as p,withCtx as m}from"vue";import{useForwardListeners as h,useOmitProps as g}from"@soybeanjs/headless/composables";import{AnchorRoot as _,provideAnchorUi as v}from"@soybeanjs/headless";const y=c({name:`SAnchor`,__name:`anchor`,props:{color:{},size:{},ui:{},class:{},items:{},sticky:{type:Boolean,default:!0},linkProps:{},indicatorProps:{},titleProps:{},subProps:{},bounds:{},dir:{},getContainer:{},getCurrentAnchor:{},modelValue:{},offsetTop:{default:0},orientation:{},replace:{type:Boolean},targetOffset:{},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`activeChange`,`itemSelect`],setup(c,{emit:y}){let b=c,x=y,S=g(b,[`color`,`size`,`ui`,`class`,`items`,`sticky`,`linkProps`,`indicatorProps`,`titleProps`,`subProps`]),C=h(x),w=a(()=>({"--soybean-anchor-offset-top":`${b.offsetTop}px`})),T=a(()=>e(r({color:b.color,orientation:b.orientation,size:b.size,sticky:b.sticky}),b.ui,{root:b.class}));return v(T),t(T),(e,t)=>(u(),o(p(_),l(p(S),{style:w.value},f(p(C))),{default:m(({modelValue:e})=>[(u(!0),s(i,null,d(c.items,t=>(u(),o(n,{key:t.href,item:t,"link-props":c.linkProps,"indicator-props":c.indicatorProps,"title-props":c.titleProps,"sub-props":c.subProps,"model-value":e,ui:T.value},null,8,[`item`,`link-props`,`indicator-props`,`title-props`,`sub-props`,`model-value`,`ui`]))),128))]),_:1},16,[`style`]))}});export{y as default};
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{anchorVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,mergeProps as a,openBlock as o,toHandlers as s,unref as c}from"vue";import{useForwardListeners as l,useOmitProps as u}from"@soybeanjs/headless/composables";import{AnchorCompact as d,provideAnchorUi as f}from"@soybeanjs/headless";const p=i({name:`SAnchor`,__name:`anchor`,props:{color:{},size:{},ui:{},class:{},sticky:{type:Boolean,default:!0},items:{},linkProps:{},indicatorProps:{},titleProps:{},subProps:{},bounds:{},dir:{},getContainer:{},getCurrentAnchor:{},modelValue:{},offsetTop:{default:0},orientation:{},replace:{type:Boolean},targetOffset:{},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`activeChange`,`itemSelect`],setup(i,{emit:p}){let m=i,h=p,g=u(m,[`color`,`size`,`ui`,`class`,`sticky`]),_=l(h),v=n(()=>({"--soybean-anchor-offset-top":`${m.offsetTop}px`}));return f(n(()=>e(t({color:m.color,orientation:m.orientation,size:m.size,sticky:m.sticky}),m.ui,{root:m.class}))),(e,t)=>(o(),r(c(d),a(c(g),{items:i.items,style:v.value},s(c(_))),null,16,[`items`,`style`]))}});export{p as default};
@@ -15,8 +15,8 @@ declare const __VLS_export: _$vue.DefineComponent<AnchorProps, {}, {}, {}, {}, _
15
15
  href: string;
16
16
  }) => any) | undefined;
17
17
  }>, {
18
- sticky: boolean;
19
18
  offsetTop: number;
19
+ sticky: boolean;
20
20
  }, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
21
21
  declare const _default: typeof __VLS_export;
22
22
  //#endregion
@@ -1,4 +1,4 @@
1
- import { AnchorEmits, AnchorExtendedUi, AnchorExtraUiSlot, AnchorItemData, AnchorItemProps, AnchorProps } from "./types.js";
1
+ import { AnchorEmits, AnchorExtendedUi, AnchorExtraUiSlot, AnchorItemData, AnchorProps } from "./types.js";
2
2
  import { _default } from "./anchor.vue.js";
3
- import { AnchorContainer, AnchorLinkProps, AnchorRootEmits, AnchorRootProps, AnchorUi, AnchorUiSlot } from "@soybeanjs/headless/anchor";
4
- export { type AnchorContainer, type AnchorLinkProps, type AnchorRootEmits, type AnchorRootProps, type AnchorUi, type AnchorUiSlot };
3
+ import { AnchorContainer, AnchorLinkProps, AnchorRootEmits, AnchorRootProps, AnchorUi, AnchorUiSlot as AnchorUiSlot$1 } from "@soybeanjs/headless/anchor";
4
+ export { type AnchorContainer, type AnchorLinkProps, type AnchorRootEmits, type AnchorRootProps, type AnchorUi, type AnchorUiSlot$1 as AnchorUiSlot };
@@ -1,34 +1,17 @@
1
1
  import { ThemeColor, ThemeSize } from "../../theme/types.js";
2
- import { HTMLAttributes } from "vue";
3
- import { AnchorLinkProps, AnchorRootEmits, AnchorRootProps, AnchorUiSlot, ClassValue, UiClass } from "@soybeanjs/headless";
2
+ import { ClassValue, UiClass } from "@soybeanjs/headless";
3
+ import { AnchorCompactEmits, AnchorCompactProps, AnchorItemData, AnchorUiSlot } from "@soybeanjs/headless/anchor";
4
4
 
5
5
  //#region src/components/anchor/types.d.ts
6
- interface AnchorItemData extends Pick<AnchorLinkProps, 'disabled' | 'href' | 'target'> {
7
- children?: AnchorItemData[];
8
- title?: string;
9
- }
10
- interface AnchorItemProps extends /** @vue-ignore */HTMLAttributes {
11
- modelValue?: string;
12
- item: AnchorItemData;
13
- linkProps?: AnchorLinkProps;
14
- indicatorProps?: HTMLAttributes;
15
- titleProps?: HTMLAttributes;
16
- subProps?: HTMLAttributes;
17
- }
18
- type AnchorExtraUiSlot = 'sub' | 'item' | 'indicator' | 'title';
19
- type AnchorExtendedUi = UiClass<AnchorUiSlot | AnchorExtraUiSlot>;
20
- interface AnchorProps extends AnchorRootProps {
6
+ type AnchorExtraUiSlot = Exclude<AnchorUiSlot, 'root' | 'link'>;
7
+ type AnchorExtendedUi = UiClass<AnchorUiSlot>;
8
+ interface AnchorProps extends AnchorCompactProps {
21
9
  color?: ThemeColor;
22
10
  size?: ThemeSize;
23
11
  ui?: Partial<AnchorExtendedUi>;
24
12
  class?: ClassValue;
25
- items: AnchorItemData[];
26
13
  sticky?: boolean;
27
- linkProps?: AnchorLinkProps;
28
- indicatorProps?: HTMLAttributes;
29
- titleProps?: HTMLAttributes;
30
- subProps?: HTMLAttributes;
31
14
  }
32
- type AnchorEmits = AnchorRootEmits;
15
+ type AnchorEmits = AnchorCompactEmits;
33
16
  //#endregion
34
- export { AnchorEmits, AnchorExtendedUi, AnchorExtraUiSlot, AnchorItemData, AnchorItemProps, AnchorProps };
17
+ export { AnchorEmits, AnchorExtendedUi, AnchorExtraUiSlot, type AnchorItemData, AnchorProps };
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import t from"../icon/icon.js";import{provideAutocompleteExtraUi as n}from"./context.js";import{getAutocompleteItemOptions as r,getAutocompleteSearchOptions as i}from"./shared.js";import a from"./autocomplete-option.js";import{autocompleteVariants as o}from"./variants.js";import{Fragment as s,computed as c,createBlock as l,createCommentVNode as u,createElementBlock as d,createSlots as f,createTextVNode as p,createVNode as m,defineComponent as h,guardReactiveProps as g,mergeProps as _,normalizeClass as v,normalizeProps as y,openBlock as b,renderList as x,renderSlot as S,toDisplayString as C,unref as w,useSlots as T,withCtx as E}from"vue";import{useControllableState as D,useOmitProps as O}from"@soybeanjs/headless/composables";import{AutocompleteAnchor as k,AutocompleteContent as A,AutocompleteInput as j,AutocompletePortal as M,AutocompleteRoot as N,AutocompleteTrigger as P,AutocompleteViewport as F,provideAutocompleteUi as I}from"@soybeanjs/headless";import{useFuse as L}from"@vueuse/integrations/useFuse";import{defu as R}from"defu";const z=[`aria-label`,`onClick`],B=h({name:`SAutocomplete`,__name:`autocomplete`,props:{class:{},size:{},ui:{},modelValue:{default:void 0},defaultValue:{},items:{},placeholder:{},clearable:{type:Boolean,default:!1},clearLabel:{default:`Clear input`},emptyLabel:{default:`No results found.`},fuseOptions:{},anchorProps:{},inputProps:{},triggerProps:{},portalProps:{},contentProps:{},viewportProps:{},groupProps:{},groupLabelProps:{},itemProps:{},itemIndicatorProps:{},separatorProps:{},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean},dir:{},disabled:{type:Boolean},highlightOnHover:{type:Boolean},openOnFocus:{type:Boolean},openOnClick:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`update:open`,`highlight`,`select`],setup(h,{emit:B}){let V=h,H=B,U=T(),W=c(()=>Object.keys(U).filter(e=>e===`group-label`||e.startsWith(`item-`))),G=O(V,[`class`,`size`,`ui`,`items`,`modelValue`,`defaultValue`,`placeholder`,`clearable`,`clearLabel`,`emptyLabel`,`fuseOptions`,`anchorProps`,`inputProps`,`triggerProps`,`portalProps`,`contentProps`,`viewportProps`,`groupProps`,`groupLabelProps`,`itemProps`,`itemIndicatorProps`,`separatorProps`]),K=D(()=>V.modelValue,e=>{H(`update:modelValue`,e??``)},V.defaultValue??``),q=c(()=>R(V.fuseOptions,{fuseOptions:{ignoreLocation:!0,threshold:.3,keys:[`label`,`value`,`keywords`,`groupLabel`]},matchAllWhenSearchEmpty:!0})),J=c(()=>i(V.items)),{results:Y}=L(c(()=>K.value),J,q),X=c(()=>r(Y.value.map(e=>e.item))),Z=c(()=>e(o({size:V.size}),V.ui,{root:V.class})),Q=c(()=>({root:Z.value.root,anchor:Z.value.anchor,inputRoot:Z.value.inputRoot,inputControl:Z.value.inputControl,trigger:Z.value.trigger,content:Z.value.content,viewport:Z.value.viewport,group:Z.value.group,groupLabel:Z.value.groupLabel,item:Z.value.item,itemIndicator:Z.value.itemIndicator,separator:Z.value.separator})),$=c(()=>({inputIcon:Z.value.inputIcon,inputClearable:Z.value.inputClearable,triggerIcon:Z.value.triggerIcon,itemText:Z.value.itemText,itemIcon:Z.value.itemIcon,empty:Z.value.empty})),ee=c(()=>({...V.inputProps,id:V.inputProps?.id??V.id,placeholder:V.placeholder??V.inputProps?.placeholder}));I(Q),n($);let te=e=>{H(`select`,e)};return(e,n)=>(b(),l(w(N),_(w(G),{"model-value":w(K),onHighlight:n[1]||=e=>H(`highlight`,e),"onUpdate:modelValue":n[2]||=e=>K.value=e,"onUpdate:open":n[3]||=e=>H(`update:open`,e)}),{default:E(()=>[m(w(k),y(g(h.anchorProps)),{default:E(()=>[m(w(j),y(g(ee.value)),{leading:E(()=>[S(e.$slots,`input-leading`,{},()=>[m(t,{icon:`lucide:search`,class:v(Z.value.inputIcon)},null,8,[`class`])])]),trailing:E(({clear:n})=>[h.clearable&&w(K)?(b(),d(`button`,{key:0,type:`button`,class:v(Z.value.inputClearable),"aria-label":h.clearLabel,onClick:n},[m(t,{icon:`lucide:x`,class:`size-1em`,"aria-hidden":`true`})],10,z)):u(`v-if`,!0),S(e.$slots,`input-trailing`)]),_:3},16),m(w(P),_(h.triggerProps,{"aria-label":`Toggle suggestions`}),{default:E(()=>[S(e.$slots,`trigger-icon`,{},()=>[m(t,{icon:`lucide:chevrons-up-down`,class:v(Z.value.triggerIcon)},null,8,[`class`])])]),_:3},16)]),_:3},16),m(w(M),y(g(h.portalProps)),{default:E(()=>[m(w(A),y(g(h.contentProps)),{default:E(()=>[m(w(F),y(g(h.viewportProps)),{default:E(()=>[X.value.length?u(`v-if`,!0):(b(),d(`div`,{key:0,class:v(Z.value.empty)},[S(e.$slots,`empty`,{},()=>[p(C(h.emptyLabel),1)])],2)),(b(!0),d(s,null,x(X.value,(t,r)=>(b(),l(a,{key:`items`in t?`group-${t.label}-${r}`:t.value,item:t,"group-props":h.groupProps,"group-label-props":h.groupLabelProps,"item-props":h.itemProps,"item-indicator-props":h.itemIndicatorProps,"separator-props":h.separatorProps,onSelect:n[0]||=e=>te(e)},f({_:2},[x(W.value,t=>({name:t,fn:E(n=>[S(e.$slots,t,_({ref_for:!0},n))])}))]),1032,[`item`,`group-props`,`group-label-props`,`item-props`,`item-indicator-props`,`separator-props`]))),128))]),_:3},16)]),_:3},16)]),_:3},16)]),_:3},16,[`model-value`]))}});export{B as default};
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{autocompleteVariants as t}from"./variants.js";import{computed as n,createBlock as r,createCommentVNode as i,createSlots as a,defineComponent as o,guardReactiveProps as s,mergeProps as c,normalizeProps as l,openBlock as u,renderList 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{AutocompleteCompact as y,provideAutocompleteUi as b}from"@soybeanjs/headless";import{keysOf as x}from"@soybeanjs/utils";const S=o({name:`SAutocomplete`,__name:`autocomplete`,props:{class:{},size:{},ui:{},modelValue:{default:void 0},defaultValue:{},items:{},placeholder:{},clearable:{type:Boolean,default:!1},clearLabel:{default:`Clear input`},emptyLabel:{default:`No results found.`},fuseOptions:{},anchorProps:{},inputProps:{},triggerProps:{},portalProps:{},contentProps:{},viewportProps:{},groupProps:{},groupLabelProps:{},itemProps:{},itemIndicatorProps:{},separatorProps:{},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean},dir:{},disabled:{type:Boolean},highlightOnHover:{type:Boolean},openOnFocus:{type:Boolean},openOnClick:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`update:open`,`highlight`,`select`],setup(o,{emit:S}){let C=o,w=S,T=h(),E=v(C,[`class`,`size`,`ui`]),D=_(w),O=n(()=>x(T));return b(n(()=>e(t({size:C.size}),C.ui,{root:C.class}))),(e,t)=>(u(),r(m(y),c(m(E),{items:o.items},p(m(D))),a({_:2},[d(O.value,t=>({name:t,fn:g(n=>[i(` @vue-ignore ignore vue slot props type `),f(e.$slots,t,l(s(n)))])}))]),1040,[`items`]))}});export{S as default};
@@ -1,4 +1,4 @@
1
- import { AutocompleteOptionData, AutocompleteProps, AutocompleteSingleOptionData } from "./types.js";
1
+ import { AutocompleteProps, AutocompleteSingleOptionData, AutocompleteSlots } from "./types.js";
2
2
  import * as _$vue from "vue";
3
3
  import * as _$_soybeanjs_headless0 from "@soybeanjs/headless";
4
4
 
@@ -6,38 +6,16 @@ import * as _$_soybeanjs_headless0 from "@soybeanjs/headless";
6
6
  declare const __VLS_export: <T extends AutocompleteSingleOptionData = AutocompleteSingleOptionData>(__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<{
7
7
  props: _$vue.PublicProps & __VLS_PrettifyLocal<AutocompleteProps<T> & {
8
8
  onSelect?: ((item: T) => any) | undefined;
9
- "onUpdate:open"?: ((value: boolean) => any) | undefined;
10
9
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
10
+ "onUpdate:open"?: ((value: boolean) => any) | undefined;
11
11
  onHighlight?: ((payload?: _$_soybeanjs_headless0.AutocompleteHighlightPayload | undefined) => any) | undefined;
12
12
  }> & (typeof globalThis extends {
13
13
  __VLS_PROPS_FALLBACK: infer P;
14
14
  } ? P : {});
15
15
  expose: (exposed: {}) => void;
16
16
  attrs: any;
17
- slots: {
18
- 'input-leading'?: () => any;
19
- 'input-trailing'?: () => any;
20
- 'trigger-icon'?: () => any;
21
- empty?: () => any;
22
- 'group-label'?: (props: {
23
- item: Extract<AutocompleteOptionData<T>, {
24
- items: T[];
25
- }>;
26
- }) => any;
27
- 'item-leading'?: (props: {
28
- item: T;
29
- }) => any;
30
- 'item-label'?: (props: {
31
- item: T;
32
- }) => any;
33
- 'item-trailing'?: (props: {
34
- item: T;
35
- }) => any;
36
- 'item-indicator'?: (props: {
37
- item: T;
38
- }) => any;
39
- };
40
- emit: ((evt: "select", item: T) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "update:modelValue", value: string) => void) & ((evt: "highlight", payload?: _$_soybeanjs_headless0.AutocompleteHighlightPayload | undefined) => void);
17
+ slots: AutocompleteSlots<T>;
18
+ emit: ((evt: "select", item: T) => void) & ((evt: "update:modelValue", value: string) => void) & ((evt: "update:open", value: boolean) => void) & ((evt: "highlight", payload?: _$_soybeanjs_headless0.AutocompleteHighlightPayload | undefined) => void);
41
19
  }>) => _$vue.VNode & {
42
20
  __ctx?: Awaited<typeof __VLS_setup>;
43
21
  };
@@ -1,4 +1,4 @@
1
- import { AutocompleteEmits, AutocompleteExtraUiSlot, AutocompleteGroupOptionData, AutocompleteGroupOptionEmits, AutocompleteGroupOptionProps, AutocompleteOptionData, AutocompleteOptionEmits, AutocompleteOptionProps, AutocompleteProps, AutocompleteSearchOptionData, AutocompleteSingleOptionData, AutocompleteSingleOptionEmits, AutocompleteSingleOptionProps, AutocompleteUi } from "./types.js";
1
+ import { AutocompleteEmits, AutocompleteGroupOptionData, AutocompleteOptionData, AutocompleteProps, AutocompleteSearchOptionData, AutocompleteSingleOptionData as AutocompleteSingleOptionData$1, AutocompleteSlots, AutocompleteUi } from "./types.js";
2
2
  import { _default } from "./autocomplete.vue.js";
3
3
  import { AutocompleteAnchorProps, AutocompleteContentProps, AutocompleteGroupLabelProps, AutocompleteGroupProps, AutocompleteHighlightPayload, AutocompleteInputProps, AutocompleteItemEmits, AutocompleteItemIndicatorProps, AutocompleteItemProps, AutocompletePortalProps, AutocompleteRootEmits, AutocompleteRootProps, AutocompleteSeparatorProps, AutocompleteTriggerProps, AutocompleteUi as HeadlessAutocompleteUi, AutocompleteUiSlot, AutocompleteViewportProps } from "@soybeanjs/headless/autocomplete";
4
4
  export { type AutocompleteAnchorProps, type AutocompleteContentProps, type AutocompleteGroupLabelProps, type AutocompleteGroupProps, type AutocompleteHighlightPayload, type AutocompleteInputProps, type AutocompleteItemEmits, type AutocompleteItemIndicatorProps, type AutocompleteItemProps, type AutocompletePortalProps, type AutocompleteRootEmits, type AutocompleteRootProps, type AutocompleteSeparatorProps, type AutocompleteTriggerProps, type AutocompleteUiSlot, type AutocompleteViewportProps, type HeadlessAutocompleteUi };
@@ -1,94 +1,16 @@
1
1
  import { ThemeSize } from "../../theme/types.js";
2
- import { IconValue } from "../icon/types.js";
3
- import { HTMLAttributes } from "vue";
4
- import { AutocompleteAnchorProps, AutocompleteContentProps, AutocompleteGroupLabelProps, AutocompleteGroupProps, AutocompleteInputProps, AutocompleteItemIndicatorProps, AutocompleteItemProps, AutocompletePortalProps, AutocompleteRootEmits, AutocompleteRootProps, AutocompleteSeparatorProps, AutocompleteTriggerProps, AutocompleteUiSlot, AutocompleteViewportProps, ClassValue, UiClass } from "@soybeanjs/headless";
5
- import { UseFuseOptions } from "@vueuse/integrations/useFuse";
2
+ import { ClassValue } from "@soybeanjs/headless";
3
+ import { AutocompleteCompactEmits, AutocompleteCompactProps, AutocompleteCompactSlots, AutocompleteGroupOptionData, AutocompleteOptionData, AutocompleteSearchOptionData, AutocompleteSingleOptionData, AutocompleteSingleOptionData as AutocompleteSingleOptionData$1, AutocompleteUi as HeadlessAutocompleteUi } from "@soybeanjs/headless/autocomplete";
6
4
 
7
5
  //#region src/components/autocomplete/types.d.ts
8
- interface AutocompleteSingleOptionData extends Pick<AutocompleteItemProps, 'disabled' | 'value'> {
9
- /** Display label in the option list. */
10
- label?: string;
11
- /** Icon displayed before the option text. */
12
- icon?: IconValue;
13
- /** Additional keywords used for filtering. */
14
- keywords?: string[];
15
- /** Whether to show a separator after this option. */
16
- separator?: boolean;
17
- }
18
- interface AutocompleteGroupOptionData<T extends AutocompleteSingleOptionData = AutocompleteSingleOptionData> {
19
- /** Group label in the option list. */
20
- label: string;
21
- /** Whether to show a separator after this group. */
22
- separator?: boolean;
23
- items: T[];
24
- }
25
- type AutocompleteOptionData<T extends AutocompleteSingleOptionData = AutocompleteSingleOptionData> = T | AutocompleteGroupOptionData<T>;
26
- interface AutocompleteSearchOptionData extends AutocompleteSingleOptionData {
27
- groupLabel?: string;
28
- groupValue?: string;
29
- groupSeparator?: boolean;
30
- }
31
- interface AutocompleteSingleOptionProps<T extends AutocompleteSingleOptionData = AutocompleteSingleOptionData> extends /** @vue-ignore */Omit<HTMLAttributes, 'onSelect'> {
32
- item: T;
33
- itemIndicatorProps?: AutocompleteItemIndicatorProps;
34
- separatorProps?: AutocompleteSeparatorProps;
35
- }
36
- type AutocompleteSingleOptionEmits<T extends AutocompleteSingleOptionData = AutocompleteSingleOptionData> = {
37
- select: [item: T];
38
- };
39
- interface AutocompleteGroupOptionProps<T extends AutocompleteSingleOptionData = AutocompleteSingleOptionData> {
40
- item: AutocompleteGroupOptionData<T>;
41
- groupProps?: AutocompleteGroupProps;
42
- groupLabelProps?: AutocompleteGroupLabelProps;
43
- itemProps?: Omit<AutocompleteItemProps, 'disabled' | 'value'>;
44
- itemIndicatorProps?: AutocompleteItemIndicatorProps;
45
- separatorProps?: AutocompleteSeparatorProps;
46
- }
47
- type AutocompleteGroupOptionEmits<T extends AutocompleteSingleOptionData = AutocompleteSingleOptionData> = {
48
- select: [item: T];
49
- };
50
- interface AutocompleteOptionProps<T extends AutocompleteSingleOptionData = AutocompleteSingleOptionData> {
51
- item: AutocompleteOptionData<T>;
52
- groupProps?: AutocompleteGroupProps;
53
- groupLabelProps?: AutocompleteGroupLabelProps;
54
- itemProps?: Omit<AutocompleteItemProps, 'disabled' | 'value'>;
55
- itemIndicatorProps?: AutocompleteItemIndicatorProps;
56
- separatorProps?: AutocompleteSeparatorProps;
57
- }
58
- type AutocompleteOptionEmits<T extends AutocompleteSingleOptionData = AutocompleteSingleOptionData> = {
59
- select: [item: T];
60
- };
61
- type AutocompleteExtraUiSlot = 'inputIcon' | 'inputClearable' | 'triggerIcon' | 'itemText' | 'itemIcon' | 'empty';
62
- type AutocompleteUi = UiClass<AutocompleteUiSlot | AutocompleteExtraUiSlot>;
63
- interface AutocompleteProps<T extends AutocompleteSingleOptionData = AutocompleteSingleOptionData> extends Omit<AutocompleteRootProps, 'defaultValue' | 'modelValue'> {
6
+ type AutocompleteUi = HeadlessAutocompleteUi;
7
+ interface AutocompleteProps<T extends AutocompleteSingleOptionData = AutocompleteSingleOptionData> extends AutocompleteCompactProps<T> {
64
8
  /** Root class. */
65
9
  class?: ClassValue;
66
10
  size?: ThemeSize;
67
11
  ui?: Partial<AutocompleteUi>;
68
- /** The controlled value of the autocomplete input. */
69
- modelValue?: string;
70
- /** The initial value of the autocomplete input. */
71
- defaultValue?: string;
72
- items: AutocompleteOptionData<T>[];
73
- placeholder?: string;
74
- clearable?: boolean;
75
- clearLabel?: string;
76
- emptyLabel?: string;
77
- fuseOptions?: UseFuseOptions<AutocompleteSearchOptionData>;
78
- anchorProps?: AutocompleteAnchorProps;
79
- inputProps?: AutocompleteInputProps;
80
- triggerProps?: AutocompleteTriggerProps;
81
- portalProps?: AutocompletePortalProps;
82
- contentProps?: AutocompleteContentProps;
83
- viewportProps?: AutocompleteViewportProps;
84
- groupProps?: AutocompleteGroupProps;
85
- groupLabelProps?: AutocompleteGroupLabelProps;
86
- itemProps?: Omit<AutocompleteItemProps, 'disabled' | 'value'>;
87
- itemIndicatorProps?: AutocompleteItemIndicatorProps;
88
- separatorProps?: AutocompleteSeparatorProps;
89
12
  }
90
- type AutocompleteEmits<T extends AutocompleteSingleOptionData = AutocompleteSingleOptionData> = AutocompleteRootEmits & {
91
- select: [item: T];
92
- };
13
+ type AutocompleteEmits<T extends AutocompleteSingleOptionData = AutocompleteSingleOptionData> = AutocompleteCompactEmits<T>;
14
+ type AutocompleteSlots<T extends AutocompleteSingleOptionData = AutocompleteSingleOptionData> = AutocompleteCompactSlots<T>;
93
15
  //#endregion
94
- export { AutocompleteEmits, AutocompleteExtraUiSlot, AutocompleteGroupOptionData, AutocompleteGroupOptionEmits, AutocompleteGroupOptionProps, AutocompleteOptionData, AutocompleteOptionEmits, AutocompleteOptionProps, AutocompleteProps, AutocompleteSearchOptionData, AutocompleteSingleOptionData, AutocompleteSingleOptionEmits, AutocompleteSingleOptionProps, AutocompleteUi };
16
+ export { AutocompleteEmits, type AutocompleteGroupOptionData, type AutocompleteOptionData, AutocompleteProps, type AutocompleteSearchOptionData, type AutocompleteSingleOptionData$1 as AutocompleteSingleOptionData, AutocompleteSlots, AutocompleteUi };
@@ -1 +1 @@
1
- import{tv as e}from"tailwind-variants";const t=e({slots:{root:`flex w-full flex-col`,anchor:[`group flex w-full items-center rounded-md border border-input bg-background text-foreground shadow-xs transition-all-150`,`focus-within:outline-none focus-within:ring-3 focus-within:ring-offset-background focus-within:ring-primary/30`,`data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50`],inputRoot:`flex min-w-0 grow items-center gap-2 bg-transparent`,inputControl:`min-w-0 grow border-0 bg-transparent px-0 outline-none placeholder:text-muted-foreground`,inputIcon:`shrink-0 text-muted-foreground`,inputClearable:[`flex shrink-0 items-center justify-center rounded-sm text-muted-foreground opacity-70 outline-none transition-opacity`,`hover:opacity-100 focus-visible:ring-2 focus-visible:ring-ring/50 focus-visible:ring-offset-1`,`disabled:cursor-not-allowed disabled:opacity-40`],trigger:`flex shrink-0 items-center justify-center text-muted-foreground outline-none disabled:cursor-not-allowed`,triggerIcon:`size-1em`,content:[`relative z-50 min-w-[--soybean-popper-anchor-width] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md`,`data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,`data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95`,`data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`],viewport:`max-h-80 overflow-y-auto overflow-x-hidden p-1`,empty:`py-6 text-center text-sm text-muted-foreground`,group:`overflow-hidden`,groupLabel:`px-2 py-1.5 text-xs font-medium text-muted-foreground`,item:[`relative flex w-full items-center rounded-sm outline-none select-none`,`data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`],itemIcon:`shrink-0 text-muted-foreground`,itemText:`grow truncate text-left`,itemIndicator:`ml-auto shrink-0 text-muted-foreground`,separator:`-mx-1 my-1 h-px bg-border`},variants:{size:{xs:{anchor:`min-h-6 gap-1 px-1.5 text-2xs`,inputRoot:`gap-1`,content:`text-2xs`,viewport:`max-h-70 p-0.75`,groupLabel:`px-1 py-1 text-3xs`,item:`gap-1 px-1 py-1`,separator:`-mx-0.75 my-0.75`},sm:{anchor:`min-h-7 gap-1.5 px-2 text-xs`,inputRoot:`gap-1.5`,content:`text-xs`,viewport:`max-h-75 p-0.875`,groupLabel:`px-1.5 py-1.25 text-2xs`,item:`gap-1.5 px-1.5 py-1.25`,separator:`-mx-0.875 my-0.875`},md:{anchor:`min-h-8 gap-2 px-2.5 text-sm`,inputRoot:`gap-2`,content:`text-sm`,viewport:`max-h-80 p-1`,groupLabel:`px-2 py-1.5 text-xs`,item:`gap-2 px-2 py-1.5`,separator:`-mx-1 my-1`},lg:{anchor:`min-h-9 gap-2.5 px-3 text-base`,inputRoot:`gap-2.5`,content:`text-base`,viewport:`max-h-90 p-1.25`,groupLabel:`px-2.5 py-1.75 text-sm`,item:`gap-2.5 px-2.5 py-1.75`,separator:`-mx-1.25 my-1.25`},xl:{anchor:`min-h-10 gap-3 px-3.5 text-lg`,inputRoot:`gap-3`,content:`text-lg`,viewport:`max-h-100 p-1.5`,groupLabel:`px-3 py-2 text-base`,item:`gap-3 px-3 py-2`,separator:`-mx-1.5 my-1.5`},"2xl":{anchor:`min-h-12 gap-3.5 px-4 text-xl`,inputRoot:`gap-3.5`,content:`text-xl`,viewport:`max-h-115 p-1.75`,groupLabel:`px-3.5 py-2.5 text-lg`,item:`gap-3.5 px-3.5 py-2.5`,separator:`-mx-1.75 my-1.75`}}},defaultVariants:{size:`md`}});export{t as autocompleteVariants};
1
+ import{tv as e}from"tailwind-variants";const t=e({slots:{root:`flex w-full flex-col`,anchor:[`group flex w-full items-center rounded-md border border-input bg-background text-foreground shadow-xs transition-all-150`,`outline-none focus-within:ring-3 focus-within:ring-offset-background focus-within:ring-primary/30`,`data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50`],inputRoot:`flex min-w-0 grow items-center gap-2 bg-transparent`,inputControl:`min-w-0 grow border-0 bg-transparent px-0 outline-none placeholder:text-muted-foreground`,inputIcon:`shrink-0 text-muted-foreground`,inputClearable:[`flex shrink-0 items-center justify-center rounded-sm text-muted-foreground opacity-70 outline-none transition-opacity`,`hover:opacity-100 focus-visible:ring-2 focus-visible:ring-ring/50 focus-visible:ring-offset-1`,`disabled:cursor-not-allowed disabled:opacity-40`],trigger:`flex shrink-0 items-center justify-center text-muted-foreground outline-none disabled:cursor-not-allowed`,triggerIcon:`size-1em`,content:[`relative z-50 min-w-[--soybean-popper-anchor-width] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md`,`data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,`data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95`,`data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`],viewport:`max-h-80 overflow-y-auto overflow-x-hidden p-1`,empty:`py-6 text-center text-sm text-muted-foreground`,group:`overflow-hidden`,groupLabel:`px-2 py-1.5 text-xs font-medium text-muted-foreground`,item:[`relative flex w-full items-center rounded-sm outline-none select-none`,`data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`],itemIcon:`shrink-0 text-muted-foreground`,itemText:`grow truncate text-left`,itemIndicator:`ml-auto shrink-0 text-muted-foreground`,separator:`-mx-1 my-1 h-px bg-border`},variants:{size:{xs:{anchor:`min-h-6 gap-1 px-1.5 text-2xs`,inputRoot:`gap-1`,content:`text-2xs`,viewport:`max-h-70 p-0.75`,groupLabel:`px-1 py-1 text-3xs`,item:`gap-1 px-1 py-1`,separator:`-mx-0.75 my-0.75`},sm:{anchor:`min-h-7 gap-1.5 px-2 text-xs`,inputRoot:`gap-1.5`,content:`text-xs`,viewport:`max-h-75 p-0.875`,groupLabel:`px-1.5 py-1.25 text-2xs`,item:`gap-1.5 px-1.5 py-1.25`,separator:`-mx-0.875 my-0.875`},md:{anchor:`min-h-8 gap-2 px-2.5 text-sm`,inputRoot:`gap-2`,content:`text-sm`,viewport:`max-h-80 p-1`,groupLabel:`px-2 py-1.5 text-xs`,item:`gap-2 px-2 py-1.5`,separator:`-mx-1 my-1`},lg:{anchor:`min-h-9 gap-2.5 px-3 text-base`,inputRoot:`gap-2.5`,content:`text-base`,viewport:`max-h-90 p-1.25`,groupLabel:`px-2.5 py-1.75 text-sm`,item:`gap-2.5 px-2.5 py-1.75`,separator:`-mx-1.25 my-1.25`},xl:{anchor:`min-h-10 gap-3 px-3.5 text-lg`,inputRoot:`gap-3`,content:`text-lg`,viewport:`max-h-100 p-1.5`,groupLabel:`px-3 py-2 text-base`,item:`gap-3 px-3 py-2`,separator:`-mx-1.5 my-1.5`},"2xl":{anchor:`min-h-12 gap-3.5 px-4 text-xl`,inputRoot:`gap-3.5`,content:`text-xl`,viewport:`max-h-115 p-1.75`,groupLabel:`px-3.5 py-2.5 text-lg`,item:`gap-3.5 px-3.5 py-2.5`,separator:`-mx-1.75 my-1.75`}}},defaultVariants:{size:`md`}});export{t as autocompleteVariants};
@@ -0,0 +1 @@
1
+ import{cn as e}from"../../theme/merge.js";import"../../theme/index.js";import{buttonVariants as t}from"../button/variants.js";import n from"../icon/icon.js";import{backtopVariants as r}from"./variants.js";import{computed as i,createBlock as a,createVNode as o,defineComponent as s,mergeProps as c,openBlock as l,renderSlot as u,toHandlers as d,unref as f,withCtx as p}from"vue";import{useForwardListeners as m,useOmitProps as h}from"@soybeanjs/headless/composables";import{Backtop as g}from"@soybeanjs/headless/backtop";const _=s({name:`SBacktop`,__name:`backtop`,props:{class:{},color:{default:`primary`},size:{default:`lg`},variant:{default:`solid`},shape:{default:`circle`},shadow:{default:`lg`},fitContent:{type:Boolean,default:!0},icon:{default:`lucide:arrow-up`},iconClass:{},iconProps:{},visibilityHeight:{},target:{},duration:{}},emits:[`change`,`click`],setup(s,{emit:_}){let v=s,y=_,b=h(v,[`class`,`color`,`size`,`variant`,`shape`,`shadow`,`fitContent`,`icon`,`iconClass`,`iconProps`]),x=m(y),S=i(()=>e(r(),t({color:v.color,size:v.size,variant:v.variant,shape:v.shape,shadow:v.shadow,fitContent:v.fitContent}),v.class));return(e,t)=>(l(),a(f(g),c(f(b),{class:S.value},d(f(x))),{default:p(()=>[u(e.$slots,`default`,{},()=>[o(n,c(s.iconProps,{icon:s.icon,class:s.iconClass}),null,16,[`icon`,`class`])])]),_:3},16,[`class`]))}});export{_ as default};
@@ -0,0 +1,34 @@
1
+ import { ThemeColor, ThemeSize } from "../../theme/types.js";
2
+ import { ButtonShadow, ButtonShape, ButtonVariant } from "../button/variants.js";
3
+ import { BacktopProps } from "./types.js";
4
+ import * as _$vue from "vue";
5
+
6
+ //#region src/components/backtop/backtop.vue.d.ts
7
+ declare var __VLS_8: {};
8
+ type __VLS_Slots = {} & {
9
+ default?: (props: typeof __VLS_8) => any;
10
+ };
11
+ declare const __VLS_base: _$vue.DefineComponent<BacktopProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
12
+ change: (visible: boolean) => any;
13
+ click: (event: MouseEvent) => any;
14
+ }, string, _$vue.PublicProps, Readonly<BacktopProps> & Readonly<{
15
+ onChange?: ((visible: boolean) => any) | undefined;
16
+ onClick?: ((event: MouseEvent) => any) | undefined;
17
+ }>, {
18
+ icon: string;
19
+ size: ThemeSize;
20
+ variant: ButtonVariant;
21
+ color: ThemeColor;
22
+ shape: ButtonShape;
23
+ shadow: ButtonShadow;
24
+ fitContent: boolean;
25
+ }, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
26
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
27
+ declare const _default: typeof __VLS_export;
28
+ type __VLS_WithSlots<T, S> = T & {
29
+ new (): {
30
+ $slots: S;
31
+ };
32
+ };
33
+ //#endregion
34
+ export { _default };
@@ -0,0 +1,4 @@
1
+ import { BacktopEmits as BacktopEmits$1, BacktopProps as BacktopProps$1 } from "./types.js";
2
+ import { _default } from "./backtop.vue.js";
3
+ import { BacktopExposed, BacktopTarget } from "@soybeanjs/headless/backtop";
4
+ export { type BacktopExposed, type BacktopTarget };
@@ -0,0 +1 @@
1
+ import"./backtop.js";
@@ -0,0 +1,33 @@
1
+ import { ThemeColor, ThemeSize } from "../../theme/types.js";
2
+ import { IconProps } from "../icon/types.js";
3
+ import { ButtonShadow, ButtonShape, ButtonVariant } from "../button/variants.js";
4
+ import { ClassValue } from "@soybeanjs/headless";
5
+ import { BacktopEmits, BacktopProps } from "@soybeanjs/headless/backtop";
6
+
7
+ //#region src/components/backtop/types.d.ts
8
+ interface BacktopProps$1 extends BacktopProps {
9
+ class?: ClassValue;
10
+ color?: ThemeColor;
11
+ size?: ThemeSize;
12
+ variant?: ButtonVariant;
13
+ shape?: ButtonShape;
14
+ shadow?: ButtonShadow;
15
+ fitContent?: boolean;
16
+ /**
17
+ * The icon name of iconify.
18
+ *
19
+ * @default 'lucide:arrow-up'
20
+ */
21
+ icon?: string;
22
+ /**
23
+ * The class of the icon.
24
+ */
25
+ iconClass?: ClassValue;
26
+ /**
27
+ * The props of the icon.
28
+ */
29
+ iconProps?: Partial<IconProps>;
30
+ }
31
+ type BacktopEmits$1 = BacktopEmits;
32
+ //#endregion
33
+ export { BacktopEmits$1 as BacktopEmits, BacktopProps$1 as BacktopProps };
@@ -0,0 +1 @@
1
+ import{tv as e}from"tailwind-variants";const t=e({base:`fixed bottom-6 end-6 z-50`});export{t as backtopVariants};
@@ -1 +1 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import t from"../icon/icon.js";import{breadcrumbVariants as n}from"./variants.js";import{getEllipsisRange as r}from"./shared.js";import{Fragment as i,computed as a,createBlock as o,createCommentVNode as s,createElementBlock as c,createTextVNode as l,createVNode as u,defineComponent as d,guardReactiveProps as f,mergeProps as p,normalizeProps as m,openBlock as h,renderList as g,renderSlot as _,toDisplayString as v,unref as y,withCtx as b}from"vue";import{useOmitProps as x}from"@soybeanjs/headless/composables";import{BreadcrumbEllipsis as S,BreadcrumbItem as C,BreadcrumbLink as w,BreadcrumbList as T,BreadcrumbPage as E,BreadcrumbRoot as D,BreadcrumbSeparator as O,provideBreadcrumbUi as k}from"@soybeanjs/headless";const A=d({name:`SBreadcrumb`,__name:`breadcrumb`,props:{class:{},size:{},ui:{},items:{},ellipsis:{type:[Boolean,Array,null]},listProps:{},itemProps:{},linkProps:{},pageProps:{},separatorProps:{},ellipsisProps:{}},emits:[`click`],setup(d,{emit:A}){let j=d,M=A,N=x(j,[`class`,`size`,`ui`,`items`,`ellipsis`,`listProps`,`itemProps`,`linkProps`,`pageProps`,`separatorProps`,`ellipsisProps`]),P=a(()=>e(n({size:j.size}),j.ui,{root:j.class})),F=a(()=>r(j.items,j.ellipsis)),I=a(()=>F.value?.[0]),L=a(()=>{if(!F.value)return j.items;let[e,t]=F.value;return[...j.items.slice(0,e),...j.items.slice(t)]}),R=a(()=>{if(!F.value)return[];let[e,t]=F.value;return j.items.slice(e,t)});function z(e){M(`click`,e)}return k(P),(e,n)=>(h(),o(y(D),m(f(y(N))),{default:b(()=>[u(y(T),m(f(d.listProps)),{default:b(()=>[(h(!0),c(i,null,g(L.value,(n,r)=>(h(),c(i,{key:n.value||r},[I.value&&r===I.value?(h(),c(i,{key:0},[_(e.$slots,`ellipsis`,{ellipsisItems:R.value},()=>[u(y(S),p({ref_for:!0},d.ellipsisProps),{default:b(()=>[_(e.$slots,`ellipsis-icon`,{},()=>[u(t,{icon:`lucide:ellipsis`})])]),_:3},16)]),u(y(O),p({ref_for:!0},d.separatorProps),{default:b(()=>[_(e.$slots,`separator`,{},()=>[u(t,{icon:`lucide:chevron-right`})])]),_:3},16)],64)):s(`v-if`,!0),u(y(C),p({ref_for:!0},d.itemProps,{onClick:e=>z(n)}),{default:b(()=>[_(e.$slots,`item-leading`,{item:n},()=>[u(t,{icon:n.icon},null,8,[`icon`])]),_(e.$slots,`default`,{item:n},()=>[n.to||n.href?(h(),o(y(w),p({key:0,ref_for:!0},d.linkProps,{disabled:n.disabled,to:n.to,href:n.href,target:n.target,external:n.external}),{default:b(()=>[_(e.$slots,`item-link`,{item:n},()=>[l(v(n.label),1)])]),_:2},1040,[`disabled`,`to`,`href`,`target`,`external`])):(h(),o(y(E),p({key:1,ref_for:!0},d.pageProps),{default:b(()=>[_(e.$slots,`item-label`,{item:n},()=>[l(v(n.label),1)])]),_:2},1040))]),_(e.$slots,`item-trailing`,{item:n})]),_:2},1040,[`onClick`]),r<L.value.length-1?(h(),o(y(O),p({key:1,ref_for:!0},d.separatorProps),{default:b(()=>[_(e.$slots,`separator`,{},()=>[u(t,{icon:`lucide:chevron-right`})])]),_:3},16)):s(`v-if`,!0)],64))),128))]),_:3},16)]),_:3},16))}});export{A as default};
1
+ import{mergeSlotVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{breadcrumbVariants as t}from"./variants.js";import{computed as n,createBlock as r,createCommentVNode as i,createSlots as a,defineComponent as o,guardReactiveProps as s,mergeProps as c,normalizeProps as l,openBlock as u,renderList 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{BreadcrumbCompact as y,provideBreadcrumbUi as b}from"@soybeanjs/headless";import{keysOf as x}from"@soybeanjs/utils";const S=o({name:`SBreadcrumb`,__name:`breadcrumb`,props:{class:{},size:{},ui:{},items:{},ellipsis:{type:[Boolean,Array,null]},listProps:{},itemProps:{},linkProps:{},pageProps:{},separatorProps:{},ellipsisProps:{}},emits:[`click`],setup(o,{emit:S}){let C=o,w=S,T=h(),E=v(C,[`class`,`size`,`ui`]),D=_(w),O=n(()=>x(T));return b(n(()=>e(t({size:C.size}),C.ui,{root:C.class}))),(e,t)=>(u(),r(m(y),c(m(E),p(m(D))),a({_:2},[d(O.value,t=>({name:t,fn:g(n=>[i(` @vue-ignore ignore vue slot props type `),f(e.$slots,t,l(s(n)))])}))]),1040))}});export{S as default};
@@ -1,4 +1,4 @@
1
- import { BreadcrumbEmits, BreadcrumbOptionData, BreadcrumbProps } from "./types.js";
1
+ import { BreadcrumbOptionData, BreadcrumbProps, BreadcrumbSlots } from "./types.js";
2
2
  import * as _$vue from "vue";
3
3
 
4
4
  //#region src/components/breadcrumb/breadcrumb.vue.d.ts
@@ -10,38 +10,8 @@ declare const __VLS_export: <T extends BreadcrumbOptionData = BreadcrumbOptionDa
10
10
  } ? P : {});
11
11
  expose: (exposed: {}) => void;
12
12
  attrs: any;
13
- slots: {
14
- ellipsis?: (props: {
15
- ellipsisItems: T[];
16
- }) => any;
17
- } & {
18
- 'ellipsis-icon'?: (props: {}) => any;
19
- } & {
20
- separator?: (props: {}) => any;
21
- } & {
22
- 'item-leading'?: (props: {
23
- item: T;
24
- }) => any;
25
- } & {
26
- default?: (props: {
27
- item: T;
28
- }) => any;
29
- } & {
30
- 'item-link'?: (props: {
31
- item: T;
32
- }) => any;
33
- } & {
34
- 'item-label'?: (props: {
35
- item: T;
36
- }) => any;
37
- } & {
38
- 'item-trailing'?: (props: {
39
- item: T;
40
- }) => any;
41
- } & {
42
- separator?: (props: {}) => any;
43
- };
44
- emit: BreadcrumbEmits<T>;
13
+ slots: BreadcrumbSlots<T>;
14
+ emit: (evt: "click", item: T) => void;
45
15
  }>) => _$vue.VNode & {
46
16
  __ctx?: Awaited<typeof __VLS_setup>;
47
17
  };
@@ -1,4 +1,4 @@
1
- import { BreadcrumbEmits, BreadcrumbOptionData, BreadcrumbProps } from "./types.js";
1
+ import { BreadcrumbEmits, BreadcrumbOptionData as BreadcrumbOptionData$1, BreadcrumbProps, BreadcrumbSlots } from "./types.js";
2
2
  import { _default } from "./breadcrumb.vue.js";
3
3
  import { BreadcrumbEllipsis as SBreadcrumbEllipsis, BreadcrumbEllipsisProps, BreadcrumbItemProps, BreadcrumbLinkProps, BreadcrumbListProps, BreadcrumbPage as SBreadcrumbPage, BreadcrumbPageProps, BreadcrumbRootProps, BreadcrumbSeparatorProps } from "@soybeanjs/headless/breadcrumb";
4
4
  export { type BreadcrumbEllipsisProps, type BreadcrumbItemProps, type BreadcrumbLinkProps, type BreadcrumbListProps, type BreadcrumbPageProps, type BreadcrumbRootProps, type BreadcrumbSeparatorProps, SBreadcrumbEllipsis, SBreadcrumbPage };