@soybeanjs/ui 0.0.8 → 0.0.10

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 (226) hide show
  1. package/dist/components/accordion/accordion.js +1 -1
  2. package/dist/components/accordion/accordion.vue.d.ts +3 -3
  3. package/dist/components/accordion/index.d.ts +1 -1
  4. package/dist/components/accordion/types.d.ts +10 -6
  5. package/dist/components/alert/alert.js +1 -1
  6. package/dist/components/alert/alert.vue.d.ts +4 -4
  7. package/dist/components/alert/types.d.ts +7 -3
  8. package/dist/components/alert-dialog/alert-dialog-action.js +1 -1
  9. package/dist/components/alert-dialog/alert-dialog-action.vue.d.ts +3 -3
  10. package/dist/components/alert-dialog/alert-dialog-cancel.js +1 -1
  11. package/dist/components/alert-dialog/alert-dialog-cancel.vue.d.ts +4 -4
  12. package/dist/components/alert-dialog/alert-dialog.js +1 -1
  13. package/dist/components/alert-dialog/alert-dialog.vue.d.ts +4 -4
  14. package/dist/components/avatar/avatar.js +1 -1
  15. package/dist/components/avatar/avatar.vue.d.ts +7 -7
  16. package/dist/components/avatar/types.d.ts +5 -1
  17. package/dist/components/badge/badge.js +1 -1
  18. package/dist/components/badge/badge.vue.d.ts +4 -4
  19. package/dist/components/badge/types.d.ts +5 -1
  20. package/dist/components/breadcrumb/breadcrumb.js +1 -1
  21. package/dist/components/breadcrumb/breadcrumb.vue.d.ts +3 -3
  22. package/dist/components/breadcrumb/types.d.ts +5 -1
  23. package/dist/components/button/button-group.js +1 -1
  24. package/dist/components/button/button-group.vue.d.ts +6 -6
  25. package/dist/components/button/button-icon.js +1 -1
  26. package/dist/components/button/button-icon.vue.d.ts +3 -3
  27. package/dist/components/button/button-link.js +1 -1
  28. package/dist/components/button/button-link.vue.d.ts +5 -5
  29. package/dist/components/button/button-loading.js +1 -1
  30. package/dist/components/button/button-loading.vue.d.ts +3 -3
  31. package/dist/components/button/button.js +1 -1
  32. package/dist/components/button/button.vue.d.ts +4 -4
  33. package/dist/components/button/types.d.ts +2 -1
  34. package/dist/components/card/card.js +1 -1
  35. package/dist/components/card/card.vue.d.ts +3 -3
  36. package/dist/components/card/types.d.ts +5 -1
  37. package/dist/components/checkbox/checkbox-card-group.js +1 -1
  38. package/dist/components/checkbox/checkbox-card-group.vue.d.ts +3 -3
  39. package/dist/components/checkbox/checkbox-card.js +1 -1
  40. package/dist/components/checkbox/checkbox-card.vue.d.ts +8 -8
  41. package/dist/components/checkbox/checkbox-group.vue.d.ts +3 -3
  42. package/dist/components/checkbox/checkbox.js +1 -1
  43. package/dist/components/checkbox/checkbox.vue.d.ts +12 -12
  44. package/dist/components/checkbox/index.d.ts +1 -1
  45. package/dist/components/checkbox/types.d.ts +7 -6
  46. package/dist/components/collapsible/collapsible.js +1 -1
  47. package/dist/components/collapsible/collapsible.vue.d.ts +4 -4
  48. package/dist/components/command/command-group-option.js +1 -1
  49. package/dist/components/command/command-single-option.js +1 -1
  50. package/dist/components/command/command.js +1 -1
  51. package/dist/components/command/command.vue.d.ts +7 -7
  52. package/dist/components/command/context.js +1 -1
  53. package/dist/components/command/index.d.ts +1 -1
  54. package/dist/components/command/types.d.ts +11 -10
  55. package/dist/components/config-provider/config-provider.vue.d.ts +5 -5
  56. package/dist/components/context-menu/context-menu-checkbox.js +1 -1
  57. package/dist/components/context-menu/context-menu-checkbox.vue.d.ts +9 -9
  58. package/dist/components/context-menu/context-menu-radio.js +1 -1
  59. package/dist/components/context-menu/context-menu-radio.vue.d.ts +9 -9
  60. package/dist/components/context-menu/context-menu-wrapper.js +1 -1
  61. package/dist/components/context-menu/context-menu-wrapper.vue.d.ts +13 -13
  62. package/dist/components/context-menu/context-menu.js +1 -1
  63. package/dist/components/context-menu/context-menu.vue.d.ts +9 -9
  64. package/dist/components/context-menu/types.d.ts +23 -4
  65. package/dist/components/dialog/dialog-close.vue.d.ts +2 -2
  66. package/dist/components/dialog/dialog-pure.js +1 -1
  67. package/dist/components/dialog/dialog-pure.vue.d.ts +12 -12
  68. package/dist/components/dialog/dialog.js +1 -1
  69. package/dist/components/dialog/dialog.vue.d.ts +12 -12
  70. package/dist/components/dialog/index.d.ts +1 -1
  71. package/dist/components/dialog/types.d.ts +5 -4
  72. package/dist/components/drawer/drawer-close.vue.d.ts +2 -2
  73. package/dist/components/drawer/drawer.js +1 -1
  74. package/dist/components/drawer/drawer.vue.d.ts +12 -13
  75. package/dist/components/drawer/index.d.ts +1 -1
  76. package/dist/components/drawer/types.d.ts +6 -9
  77. package/dist/components/dropdown-menu/dropdown-menu-checkbox.js +1 -1
  78. package/dist/components/dropdown-menu/dropdown-menu-checkbox.vue.d.ts +9 -9
  79. package/dist/components/dropdown-menu/dropdown-menu-radio.js +1 -1
  80. package/dist/components/dropdown-menu/dropdown-menu-radio.vue.d.ts +9 -9
  81. package/dist/components/dropdown-menu/dropdown-menu-wrapper.js +1 -1
  82. package/dist/components/dropdown-menu/dropdown-menu-wrapper.vue.d.ts +14 -14
  83. package/dist/components/dropdown-menu/dropdown-menu.js +1 -1
  84. package/dist/components/dropdown-menu/dropdown-menu.vue.d.ts +9 -9
  85. package/dist/components/dropdown-menu/types.d.ts +18 -3
  86. package/dist/components/form/form-field-base.js +1 -0
  87. package/dist/components/form/form.js +1 -1
  88. package/dist/components/form/form.vue.d.ts +2 -2
  89. package/dist/components/form/index.d.ts +2 -3
  90. package/dist/components/form/types.d.ts +28 -14
  91. package/dist/components/form/use-form.d.ts +48 -0
  92. package/dist/components/form/use-form.js +1 -0
  93. package/dist/components/icon/icon.vue.d.ts +3 -3
  94. package/dist/components/input/input.js +1 -1
  95. package/dist/components/input/input.vue.d.ts +4 -4
  96. package/dist/components/input/types.d.ts +6 -2
  97. package/dist/components/kbd/kbd.js +1 -1
  98. package/dist/components/kbd/kbd.vue.d.ts +3 -3
  99. package/dist/components/kbd/types.d.ts +2 -1
  100. package/dist/components/label/label.js +1 -1
  101. package/dist/components/label/label.vue.d.ts +2 -2
  102. package/dist/components/label/types.d.ts +2 -1
  103. package/dist/components/layout/layout-trigger.vue.d.ts +2 -2
  104. package/dist/components/layout/layout.js +1 -1
  105. package/dist/components/layout/layout.vue.d.ts +7 -4
  106. package/dist/components/layout/types.d.ts +2 -1
  107. package/dist/components/link/link.js +1 -1
  108. package/dist/components/link/link.vue.d.ts +6 -5
  109. package/dist/components/link/types.d.ts +8 -2
  110. package/dist/components/list/list-item.vue.d.ts +2 -2
  111. package/dist/components/list/list.js +1 -1
  112. package/dist/components/list/list.vue.d.ts +2 -2
  113. package/dist/components/list/types.d.ts +2 -1
  114. package/dist/components/menu/context.js +1 -1
  115. package/dist/components/menu/index.d.ts +1 -1
  116. package/dist/components/menu/menu-checkbox-options.js +1 -1
  117. package/dist/components/menu/menu-checkbox-options.vue.d.ts +3 -3
  118. package/dist/components/menu/menu-option.js +1 -1
  119. package/dist/components/menu/menu-option.vue.d.ts +9 -9
  120. package/dist/components/menu/menu-options.vue.d.ts +9 -9
  121. package/dist/components/menu/menu-radio-options.js +1 -1
  122. package/dist/components/menu/menu-radio-options.vue.d.ts +3 -3
  123. package/dist/components/menu/types.d.ts +4 -8
  124. package/dist/components/navigation-menu/context.js +1 -1
  125. package/dist/components/navigation-menu/index.d.ts +1 -1
  126. package/dist/components/navigation-menu/navigation-menu-option.js +1 -1
  127. package/dist/components/navigation-menu/navigation-menu-sub-option.js +1 -1
  128. package/dist/components/navigation-menu/navigation-menu.js +1 -1
  129. package/dist/components/navigation-menu/navigation-menu.vue.d.ts +11 -11
  130. package/dist/components/navigation-menu/types.d.ts +5 -8
  131. package/dist/components/number-input/number-input.js +1 -1
  132. package/dist/components/number-input/number-input.vue.d.ts +4 -4
  133. package/dist/components/number-input/types.d.ts +2 -1
  134. package/dist/components/pagination/pagination.js +1 -1
  135. package/dist/components/pagination/pagination.vue.d.ts +4 -4
  136. package/dist/components/pagination/types.d.ts +2 -1
  137. package/dist/components/password/password.js +1 -1
  138. package/dist/components/password/password.vue.d.ts +4 -4
  139. package/dist/components/password/types.d.ts +3 -2
  140. package/dist/components/popover/popover.js +1 -1
  141. package/dist/components/popover/popover.vue.d.ts +11 -11
  142. package/dist/components/popover/types.d.ts +5 -1
  143. package/dist/components/radio-group/index.d.ts +1 -1
  144. package/dist/components/radio-group/radio-card-group.js +1 -1
  145. package/dist/components/radio-group/radio-card-group.vue.d.ts +3 -3
  146. package/dist/components/radio-group/radio-card.vue.d.ts +2 -2
  147. package/dist/components/radio-group/radio-group.js +1 -1
  148. package/dist/components/radio-group/radio-group.vue.d.ts +3 -3
  149. package/dist/components/radio-group/radio.vue.d.ts +2 -2
  150. package/dist/components/radio-group/types.d.ts +4 -3
  151. package/dist/components/segment/segment.js +1 -1
  152. package/dist/components/segment/segment.vue.d.ts +3 -3
  153. package/dist/components/segment/types.d.ts +2 -1
  154. package/dist/components/select/select.js +1 -1
  155. package/dist/components/select/select.vue.d.ts +7 -7
  156. package/dist/components/select/types.d.ts +5 -1
  157. package/dist/components/separator/separator.js +1 -1
  158. package/dist/components/separator/separator.vue.d.ts +5 -5
  159. package/dist/components/separator/types.d.ts +2 -1
  160. package/dist/components/switch/switch.js +1 -1
  161. package/dist/components/switch/switch.vue.d.ts +25 -25
  162. package/dist/components/switch/types.d.ts +2 -1
  163. package/dist/components/tabs/index.d.ts +1 -1
  164. package/dist/components/tabs/tabs.js +1 -1
  165. package/dist/components/tabs/tabs.vue.d.ts +3 -3
  166. package/dist/components/tabs/types.d.ts +4 -3
  167. package/dist/components/tag/tag.js +1 -1
  168. package/dist/components/tag/tag.vue.d.ts +4 -4
  169. package/dist/components/tag/types.d.ts +2 -1
  170. package/dist/components/textarea/index.d.ts +1 -1
  171. package/dist/components/textarea/textarea.js +1 -1
  172. package/dist/components/textarea/textarea.vue.d.ts +4 -4
  173. package/dist/components/textarea/types.d.ts +4 -3
  174. package/dist/components/toast/context.js +1 -1
  175. package/dist/components/toast/toast-provider.js +1 -1
  176. package/dist/components/toast/toast.js +1 -1
  177. package/dist/components/toast/types.d.ts +1 -0
  178. package/dist/components/tooltip/tooltip.js +1 -1
  179. package/dist/components/tooltip/tooltip.vue.d.ts +7 -7
  180. package/dist/components/tooltip/types.d.ts +5 -1
  181. package/dist/components/tree/tree-virtualizer.vue.d.ts +5 -5
  182. package/dist/components/tree/tree.vue.d.ts +5 -5
  183. package/dist/components/tree-menu/context.js +1 -1
  184. package/dist/components/tree-menu/index.d.ts +2 -2
  185. package/dist/components/tree-menu/shared.js +1 -1
  186. package/dist/components/tree-menu/tree-menu-option-slot.js +1 -0
  187. package/dist/components/tree-menu/tree-menu-option.js +1 -0
  188. package/dist/components/tree-menu/tree-menu-styled-item.js +1 -0
  189. package/dist/components/tree-menu/tree-menu-styled-item.vue.d.ts +17 -0
  190. package/dist/components/tree-menu/tree-menu.js +1 -1
  191. package/dist/components/tree-menu/tree-menu.vue.d.ts +11 -22
  192. package/dist/components/tree-menu/types.d.ts +78 -45
  193. package/dist/components/virtualizer/virtualizer.vue.d.ts +3 -3
  194. package/dist/constants/components.d.ts +13 -13
  195. package/dist/constants/components.js +1 -1
  196. package/dist/index.d.ts +50 -52
  197. package/dist/index.js +1 -1
  198. package/dist/styles.css +29 -25
  199. package/dist/theme/shared.js +1 -1
  200. package/dist/variants/alert.d.ts +24 -24
  201. package/dist/variants/alert.js +1 -1
  202. package/dist/variants/avatar.js +1 -1
  203. package/dist/variants/badge.d.ts +3 -3
  204. package/dist/variants/checkbox.js +1 -1
  205. package/dist/variants/drawer.js +1 -1
  206. package/dist/variants/form.js +1 -1
  207. package/dist/variants/layout.js +1 -1
  208. package/dist/variants/navigation-menu.js +1 -1
  209. package/dist/variants/pagination.d.ts +3 -3
  210. package/dist/variants/radio-group.d.ts +3 -3
  211. package/dist/variants/separator.d.ts +3 -3
  212. package/dist/variants/switch.d.ts +3 -3
  213. package/dist/variants/tabs.d.ts +3 -3
  214. package/dist/variants/tabs.js +1 -1
  215. package/dist/variants/tag.d.ts +3 -3
  216. package/dist/variants/textarea.d.ts +3 -3
  217. package/dist/variants/toast.d.ts +3 -3
  218. package/dist/variants/tree-menu.js +1 -1
  219. package/package.json +5 -3
  220. package/dist/components/form/form-field-array.js +0 -1
  221. package/dist/components/form/form-field-array.vue.d.ts +0 -71
  222. package/dist/components/form/form-field.js +0 -1
  223. package/dist/components/form/form-field.vue.d.ts +0 -27
  224. package/dist/components/tree-menu/tree-menu-item-wrapper.js +0 -1
  225. package/dist/components/tree-menu/tree-menu-item-wrapper.vue.d.ts +0 -17
  226. package/dist/components/tree-menu/tree-menu-item.js +0 -1
@@ -1 +1 @@
1
- import{tv as e}from"tailwind-variants";const t=e({slots:{root:`flex`,list:`relative inline-flex justify-center items-center bg-muted text-muted-foreground`,trigger:[`relative z-3 inline-flex items-center justify-center flex-1 whitespace-nowrap rounded-md font-medium transition-all-200`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background focus-visible:ring-primary`,`disabled:cursor-not-allowed disabled:opacity-50`],indicator:`absolute top-0 left-0 z-2 transition-[width,height,transform] duration-300`,indicatorContent:`size-full bg-background shadow`,content:`flex-grow self-stretch overflow-hidden focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background focus-visible:ring-primary`},variants:{size:{xs:{root:`text-2xs`,list:`p-0.75`,trigger:`gap-1 px-1.5 py-0.75`},sm:{root:`text-xs`,list:`p-0.875`,trigger:`gap-1.5 px-2 py-1`},md:{root:`text-sm`,list:`p-1`,trigger:`gap-2 px-3 py-1`},lg:{root:`text-base`,list:`p-1.125`,trigger:`gap-2.5 px-4 py-1.125`},xl:{root:`text-lg`,list:`p-1.25`,trigger:`gap-3 px-5 py-1.25`},"2xl":{root:`text-xl`,list:`p-1.5`,trigger:`gap-4 px-6 py-1.5`}},orientation:{horizontal:{root:`flex-col`,indicator:`h-full w-[--soybean-tabs-indicator-size] translate-x-[--soybean-tabs-indicator-position]`},vertical:{list:`flex-col items-stretch`,indicator:`w-full h-[--soybean-tabs-indicator-size] translate-y-[--soybean-tabs-indicator-position]`}},shape:{square:{list:`rounded-md`,indicatorContent:`rounded-md`},rounded:{list:`rounded-full`,indicatorContent:`rounded-full`}},fill:{full:{root:`items-stretch`},auto:{root:`items-start`}},enableIndicator:{false:{trigger:`data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow`}}},compoundVariants:[{size:`xs`,orientation:`horizontal`,class:{indicator:`py-0.75`,content:`mt-1.5`}},{size:`xs`,orientation:`vertical`,class:{indicator:`px-0.75`,content:`ml-1.5`}},{size:`sm`,orientation:`horizontal`,class:{indicator:`py-1`,content:`mt-1.75`}},{size:`sm`,orientation:`vertical`,class:{indicator:`px-1`,content:`ml-1.75`}},{size:`md`,orientation:`horizontal`,class:{indicator:`py-1`,content:`mt-2`}},{size:`md`,orientation:`vertical`,class:{indicator:`px-1`,content:`ml-2`}},{size:`lg`,orientation:`horizontal`,class:{indicator:`py-1.125`,content:`mt-2.5`}},{size:`lg`,orientation:`vertical`,class:{indicator:`px-1.125`,content:`ml-2.5`}},{size:`xl`,orientation:`horizontal`,class:{indicator:`py-1.25`,content:`mt-3`}},{size:`xl`,orientation:`vertical`,class:{indicator:`px-1.25`,content:`ml-3`}},{size:`2xl`,orientation:`horizontal`,class:{indicator:`py-1.5`,content:`mt-3.5`}},{size:`2xl`,orientation:`vertical`,class:{indicator:`px-1.5`,content:`ml-3.5`}}],defaultVariants:{size:`md`,orientation:`horizontal`,shape:`square`,fill:`auto`,enableIndicator:!0}});export{t as tabsVariants};
1
+ import{tv as e}from"tailwind-variants";const t=e({slots:{root:`flex`,list:`relative inline-flex justify-center items-center bg-muted text-muted-foreground`,trigger:[`relative z-3 inline-flex items-center justify-center flex-1 whitespace-nowrap rounded-md font-medium transition-all-200`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background focus-visible:ring-primary`,`disabled:cursor-not-allowed disabled:opacity-50`],indicator:`absolute top-0 left-0 z-2 transition-[width,height,transform] duration-300`,indicatorContent:`w-full h-full bg-background shadow`,content:`flex-grow self-stretch overflow-hidden focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background focus-visible:ring-primary`},variants:{size:{xs:{root:`text-2xs`,list:`p-0.75`,trigger:`gap-1 px-1.5 py-0.75`},sm:{root:`text-xs`,list:`p-0.875`,trigger:`gap-1.5 px-2 py-1`},md:{root:`text-sm`,list:`p-1`,trigger:`gap-2 px-3 py-1`},lg:{root:`text-base`,list:`p-1.125`,trigger:`gap-2.5 px-4 py-1.125`},xl:{root:`text-lg`,list:`p-1.25`,trigger:`gap-3 px-5 py-1.25`},"2xl":{root:`text-xl`,list:`p-1.5`,trigger:`gap-4 px-6 py-1.5`}},orientation:{horizontal:{root:`flex-col`,indicator:`h-full w-[--soybean-tabs-indicator-size] translate-x-[--soybean-tabs-indicator-position]`},vertical:{list:`flex-col items-stretch`,indicator:`w-full h-[--soybean-tabs-indicator-size] translate-y-[--soybean-tabs-indicator-position]`}},shape:{square:{list:`rounded-md`,indicatorContent:`rounded-md`},rounded:{list:`rounded-full`,indicatorContent:`rounded-full`}},fill:{full:{root:`items-stretch`},auto:{root:`items-start`}},enableIndicator:{false:{trigger:`data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow`}}},compoundVariants:[{size:`xs`,orientation:`horizontal`,class:{indicator:`py-0.75`,content:`mt-1.5`}},{size:`xs`,orientation:`vertical`,class:{indicator:`px-0.75`,content:`ml-1.5`}},{size:`sm`,orientation:`horizontal`,class:{indicator:`py-1`,content:`mt-1.75`}},{size:`sm`,orientation:`vertical`,class:{indicator:`px-1`,content:`ml-1.75`}},{size:`md`,orientation:`horizontal`,class:{indicator:`py-1`,content:`mt-2`}},{size:`md`,orientation:`vertical`,class:{indicator:`px-1`,content:`ml-2`}},{size:`lg`,orientation:`horizontal`,class:{indicator:`py-1.125`,content:`mt-2.5`}},{size:`lg`,orientation:`vertical`,class:{indicator:`px-1.125`,content:`ml-2.5`}},{size:`xl`,orientation:`horizontal`,class:{indicator:`py-1.25`,content:`mt-3`}},{size:`xl`,orientation:`vertical`,class:{indicator:`px-1.25`,content:`ml-3`}},{size:`2xl`,orientation:`horizontal`,class:{indicator:`py-1.5`,content:`mt-3.5`}},{size:`2xl`,orientation:`vertical`,class:{indicator:`px-1.5`,content:`ml-3.5`}}],defaultVariants:{size:`md`,orientation:`horizontal`,shape:`square`,fill:`auto`,enableIndicator:!0}});export{t as tabsVariants};
@@ -1,8 +1,8 @@
1
- import * as tailwind_variants25 from "tailwind-variants";
1
+ import * as tailwind_variants21 from "tailwind-variants";
2
2
  import { VariantProps } from "tailwind-variants";
3
3
 
4
4
  //#region src/variants/tag.d.ts
5
- declare const tagVariants: tailwind_variants25.TVReturnType<{
5
+ declare const tagVariants: tailwind_variants21.TVReturnType<{
6
6
  color: {
7
7
  primary: string;
8
8
  destructive: string;
@@ -64,7 +64,7 @@ declare const tagVariants: tailwind_variants25.TVReturnType<{
64
64
  auto: string;
65
65
  rounded: string;
66
66
  };
67
- }, undefined, tailwind_variants25.TVReturnType<{
67
+ }, undefined, tailwind_variants21.TVReturnType<{
68
68
  color: {
69
69
  primary: string;
70
70
  destructive: string;
@@ -1,8 +1,8 @@
1
- import * as tailwind_variants23 from "tailwind-variants";
1
+ import * as tailwind_variants25 from "tailwind-variants";
2
2
  import { VariantProps } from "tailwind-variants";
3
3
 
4
4
  //#region src/variants/textarea.d.ts
5
- declare const textareaVariants: tailwind_variants23.TVReturnType<{
5
+ declare const textareaVariants: tailwind_variants25.TVReturnType<{
6
6
  size: {
7
7
  xs: {
8
8
  root: string;
@@ -118,7 +118,7 @@ declare const textareaVariants: tailwind_variants23.TVReturnType<{
118
118
  control: string[];
119
119
  counter: string;
120
120
  clearable: string;
121
- }, tailwind_variants23.TVReturnType<{
121
+ }, tailwind_variants25.TVReturnType<{
122
122
  size: {
123
123
  xs: {
124
124
  root: string;
@@ -1,9 +1,9 @@
1
- import * as tailwind_variants29 from "tailwind-variants";
1
+ import * as tailwind_variants27 from "tailwind-variants";
2
2
  import { VariantProps } from "tailwind-variants";
3
3
 
4
4
  //#region src/variants/toast.d.ts
5
5
 
6
- declare const toastViewportVariants: tailwind_variants29.TVReturnType<{
6
+ declare const toastViewportVariants: tailwind_variants27.TVReturnType<{
7
7
  size: {
8
8
  xs: string;
9
9
  sm: string;
@@ -37,7 +37,7 @@ declare const toastViewportVariants: tailwind_variants29.TVReturnType<{
37
37
  'bottom-left': string;
38
38
  'bottom-right': string;
39
39
  };
40
- }, undefined, tailwind_variants29.TVReturnType<{
40
+ }, undefined, tailwind_variants27.TVReturnType<{
41
41
  size: {
42
42
  xs: string;
43
43
  sm: string;
@@ -1 +1 @@
1
- import{tv as e}from"tailwind-variants";const t=e({slots:{root:`group flex-1 size-full m-0 overflow-auto data-[state=collapsed]:w-[--soybean-tree-menu-collapsed-width] transition-[width,height]-200 ease-out data-[state=collapsed]:space-y-0`,groupLabel:`flex items-center text-foreground/70 list-none group-data-[state=collapsed]:size-0 group-data-[state=collapsed]:p-0 group-data-[state=collapsed]:opacity-0 group-data-[state=collapsed]:overflow-hidden transition-[height,padding,opacity]-200`,item:[`relative rounded-sm outline-none cursor-pointer select-none list-none`,`data-[selected]:bg-primary/10 data-[selected]:text-primary`,`[&:not([data-selected])]:hover:bg-accent [&:not([data-selected])]:hover:text-accent-foreground`,`[&:not([data-selected])]:focus:bg-accent [&:not([data-selected])]:focus:text-accent-foreground`,`data-[contains-selected]:text-primary data-[contains-selected]:hover:text-primary data-[contains-selected]:focus:text-primary`,`data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50`,`group-data-[state=collapsed]:overflow-hidden`],itemContent:`flex items-center w-full outline-none data-[link]:decoration-none`,itemAbsolute:`absolute top-0 left-0 w-full h-full z-1`,itemLabel:`truncate`,itemLinkIcon:`shrink-0 self-start text-muted-foreground`,itemBadge:``,itemTag:`shrink-0 ml-auto`,itemAction:`absolute -translate-y-1/2 top-1/2`,collapsibleIcon:`shrink-0 ml-auto text-muted-foreground transition-transform-200 data-[expanded]:rotate-90`},variants:{size:{xs:{root:`space-y-0.75 p-1.5 text-2xs`,groupLabel:`h-6 gap-1 px-1.5 py-1 text-3xs`,item:`h-6 px-1.5 py-1 group-data-[state=collapsed]:w-6 text-2xs ml-[calc(var(--soybean-tree-menu-indent)*0.75rem)]`,itemContent:`gap-1.5`,itemLinkIcon:`size-2 -ml-1`,itemAction:`right-1.5`},sm:{root:`space-y-0.875 p-1.75 text-xs`,groupLabel:`h-7 gap-1.5 px-1.75 py-1 text-2xs`,item:`h-7 px-1.75 py-1 group-data-[state=collapsed]:w-7 text-xs ml-[calc(var(--soybean-tree-menu-indent)*0.875rem)]`,itemContent:`gap-1.75`,itemLinkIcon:`size-2.5 -ml-1.5`,itemAction:`right-1.75`},md:{root:`space-y-1 p-2 text-sm`,groupLabel:`h-8 gap-2 px-2 py-1.5 text-xs`,item:`h-8 px-2 py-1.5 group-data-[state=collapsed]:w-8 text-sm ml-[calc(var(--soybean-tree-menu-indent)*1rem)]`,itemContent:`gap-2`,itemLinkIcon:`size-3 -ml-2`,itemAction:`right-2`},lg:{root:`space-y-1.25 p-2.25 text-base`,groupLabel:`h-9 gap-2.5 px-2.25 py-1.5 text-sm`,item:`h-9 px-2.25 py-1.5 group-data-[state=collapsed]:w-9 text-base ml-[calc(var(--soybean-tree-menu-indent)*1.125rem)]`,itemContent:`gap-2.25`,itemLinkIcon:`size-3.5 -ml-2.5`,itemAction:`right-2.25`},xl:{root:`space-y-1.5 p-2.5 text-lg`,groupLabel:`h-10 gap-3 px-2.5 py-1.5 text-base`,item:`h-10 px-2.5 py-2 group-data-[state=collapsed]:w-10 text-lg ml-[calc(var(--soybean-tree-menu-indent)*1.25rem)]`,itemContent:`gap-2.5`,itemLinkIcon:`size-4 -ml-3`,itemAction:`right-2.5`},"2xl":{root:`space-y-2 p-3 text-xl`,groupLabel:`h-12 gap-3.5 px-3 py-2.5 text-lg`,item:`h-12 px-3 py-2.5 group-data-[state=collapsed]:w-12 text-xl ml-[calc(var(--soybean-tree-menu-indent)*1.5rem)]`,itemContent:`gap-3`,itemLinkIcon:`size-5 -ml-4`,itemAction:`right-3`}}},defaultVariants:{size:`md`}});export{t as treeMenuVariants};
1
+ import{tv as e}from"tailwind-variants";const t=e({slots:{root:`group flex-1 flex flex-col w-full h-full overflow-auto data-[state=collapsed]:w-[--soybean-tree-menu-collapsed-width] transition-[width,height]-200 ease-out`,groupRoot:``,group:`flex flex-col m-0 p-0 list-none`,groupLabel:`flex items-center text-foreground/70 group-data-[state=collapsed]:size-0 group-data-[state=collapsed]:p-0 group-data-[state=collapsed]:opacity-0 group-data-[state=collapsed]:overflow-hidden transition-[height,padding,opacity]-200`,item:`relative m-0 p-0 group-data-[state=collapsed]:hover:bg-sidebar-accent group-data-[state=collapsed]:hover:rounded-sm`,button:[`group/button relative flex items-center w-full rounded-sm outline-none cursor-pointer select-none group-data-[state=collapsed]:overflow-hidden`,`data-[active=true]:bg-primary/10 data-[active=true]:text-primary`,`data-[active=false]:hover:bg-sidebar-accent data-[active=false]:focus:bg-sidebar-accent`,`data-[child-active=true]:text-primary`,`data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50`],collapsibleIcon:`shrink-0 ml-auto text-muted-foreground transition-transform-200 group-data-[state=open]/button:rotate-90 group-data-[child-active=true]/button:text-primary`,collapsibleContent:[`overflow-hidden transition will-change-auto`,`data-[state=closed]:animate-collapsible-up data-[state=open]:animate-collapsible-down`],sub:`flex flex-col m-0 list-none ml-[--soybean-tree-menu-indent] border-l border-sidebar-border border-solid`,itemLabel:`truncate`,itemLinkIcon:`shrink-0 self-start text-muted-foreground`,itemBadge:``,itemTag:`shrink-0 ml-auto`,itemAction:`absolute -translate-y-1/2 top-1/2`,itemAbsolute:`absolute top-0 left-0 w-full h-full z-1 cursor-pointer`},variants:{size:{xs:{root:`gap-2 p-1.5 text-2xs data-[state=collapsed]:gap-0.75`,groupLabel:`h-6 gap-1 px-1.5 py-1 text-3xs`,group:`gap-0.75`,button:`gap-1.5 h-6 px-1.5 py-1 group-data-[state=collapsed]:w-6`,sub:`gap-0.75 px-1.5 pt-0.75`,subButton:`gap-1.5 h-6 px-1.5 py-1 group-data-[state=collapsed]:w-6`,itemLinkIcon:`size-2 -ml-1`,itemAction:`right-1.5`},sm:{root:`gap-2.5 p-1.75 text-xs data-[state=collapsed]:gap-0.875`,groupLabel:`h-7 gap-1.5 px-1.75 py-1 text-2xs`,group:`gap-0.875`,button:`gap-1.75 h-7 px-1.75 py-1 group-data-[state=collapsed]:w-7`,sub:`gap-0.875 px-1.75 pt-0.875`,subButton:`gap-1.75 h-7 px-1.75 py-1 group-data-[state=collapsed]:w-7`,itemLinkIcon:`size-2.5 -ml-1.5`,itemAction:`right-1.75`},md:{root:`gap-3 p-2 text-sm data-[state=collapsed]:gap-1`,groupLabel:`h-8 gap-2 px-2 py-1.5 text-xs`,group:`gap-1`,button:`gap-2 h-8 px-2 py-1.5 group-data-[state=collapsed]:w-8`,sub:`gap-1 px-2 pt-1`,subButton:`gap-2 h-8 px-2 py-1.5 group-data-[state=collapsed]:w-8`,itemLinkIcon:`size-3 -ml-2`,itemAction:`right-2`},lg:{root:`gap-3.5 p-2.25 text-base data-[state=collapsed]:gap-1.25`,groupLabel:`h-9 gap-2.5 px-2.25 py-1.5 text-sm`,group:`gap-1.25`,button:`gap-2.25 h-9 px-2.25 py-1.5 group-data-[state=collapsed]:w-9`,sub:`gap-1.25 px-2.25 pt-1.25`,subButton:`gap-2.25 h-9 px-2.25 py-1.5 group-data-[state=collapsed]:w-9`,itemLinkIcon:`size-3.5 -ml-2.5`,itemAction:`right-2.25`},xl:{root:`gap-4 p-2.5 text-lg data-[state=collapsed]:gap-1.5`,groupLabel:`h-10 gap-3 px-2.5 py-1.5 text-base`,group:`gap-1.5`,button:`gap-2.5 h-10 px-2.5 py-2 group-data-[state=collapsed]:w-10`,sub:`gap-1.5 px-2.5 pt-1.5`,subButton:`gap-2.5 h-10 px-2.5 py-2 group-data-[state=collapsed]:w-10`,itemLinkIcon:`size-4 -ml-3`,itemAction:`right-2.5`},"2xl":{root:`gap-5 p-3 text-xl data-[state=collapsed]:gap-2`,groupLabel:`h-12 gap-3.5 px-3 py-2.5 text-lg`,group:`gap-2`,button:`gap-3 h-12 px-3 py-2.5 group-data-[state=collapsed]:w-12`,sub:`gap-2 px-3 pt-2`,subButton:`gap-3 h-12 px-3 py-2.5 group-data-[state=collapsed]:w-12`,itemLinkIcon:`size-5 -ml-4`,itemAction:`right-3`}}},defaultVariants:{size:`md`}});export{t as treeMenuVariants};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@soybeanjs/ui",
3
3
  "type": "module",
4
- "version": "0.0.8",
4
+ "version": "0.0.10",
5
5
  "description": "SoybeanUI is built on top of SoybeanHeadless, providing a collection of styled components for Vue 3.",
6
6
  "author": {
7
7
  "name": "Soybean",
@@ -52,7 +52,9 @@
52
52
  "fuse.js": "^7.1.0",
53
53
  "tailwind-merge": "^3.4.0",
54
54
  "tailwind-variants": "^3.2.2",
55
- "@soybeanjs/headless": "^0.0.8"
55
+ "valibot": "^1.2.0",
56
+ "zod": "^4.3.5",
57
+ "@soybeanjs/headless": "^0.0.10"
56
58
  },
57
59
  "devDependencies": {
58
60
  "@soybeanjs/cli": "^1.4.4",
@@ -81,7 +83,7 @@
81
83
  "vue": "^3.5.26",
82
84
  "vue-eslint-parser": "^10.2.0",
83
85
  "vue-router": "^4.6.4",
84
- "vue-tsc": "^3.2.1"
86
+ "vue-tsc": "^3.2.2"
85
87
  },
86
88
  "simple-git-hooks": {
87
89
  "commit-msg": "pnpm soy git-commit-verify",
@@ -1 +0,0 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import{formVariants as t}from"../../variants/form.js";import{useFormContext as n}from"./context.js";import{computed as r,createBlock as i,createCommentVNode as a,createTextVNode as o,defineComponent as s,guardReactiveProps as c,mergeProps as l,normalizeProps as u,openBlock as d,renderSlot as f,toDisplayString as p,unref as m,useSlots as h,withCtx as g,withDirectives as _}from"vue";import{useOmitProps as v}from"@soybeanjs/headless/composables";import{FormDescription as y,FormError as b,FormFieldArray as x,FormLabel as S,provideFormThemeContext as C}from"@soybeanjs/headless";import{useField as w}from"@soybeanjs/headless/forms";import{vAutoAnimate as T}from"@formkit/auto-animate";var E=s({name:`SFormFieldArray`,__name:`form-field-array`,props:{size:{},ui:{},label:{},description:{},labelProps:{},descriptionProps:{},errorProps:{},name:{}},setup(s){let E=s,D=h(),O=v(E,[`size`,`ui`,`label`,`description`,`labelProps`,`descriptionProps`,`errorProps`]),k=n(`FormFieldArray`),{error:A}=w(()=>E.name),j=r(()=>typeof A.value==`string`),M=r(()=>E.size??k.size.value);C({ui:r(()=>e(t({size:M.value,error:!!A.value}),{...k.ui.value,...E.ui}))});let N=r(()=>({...k.labelProps.value,...E.labelProps})),P=r(()=>({...k.descriptionProps.value,...E.descriptionProps})),F=r(()=>({...k.errorProps.value,...E.errorProps}));return(e,t)=>_((d(),i(m(x),u(c(m(O))),{default:g(t=>[m(D).label||s.label?(d(),i(m(S),u(l({key:0},N.value)),{default:g(()=>[f(e.$slots,`label`,u(c(t)),()=>[o(p(s.label),1)])]),_:2},1040)):a(`v-if`,!0),f(e.$slots,`default`,u(c(t))),m(D).description||s.description?(d(),i(m(y),u(l({key:1},P.value)),{default:g(()=>[f(e.$slots,`description`,u(c(t)),()=>[o(p(s.description),1)])]),_:2},1040)):a(`v-if`,!0),j.value?(d(),i(m(b),u(l({key:2},F.value)),{default:g(()=>[o(p(m(A)),1)]),_:1},16)):a(`v-if`,!0)]),_:3},16)),[[m(T)]])}});export{E as default};
@@ -1,71 +0,0 @@
1
- import { FormFieldArrayProps } from "./types.js";
2
- import * as vue65 from "vue";
3
- import * as _soybeanjs_headless_forms0 from "@soybeanjs/headless/forms";
4
-
5
- //#region src/components/form/form-field-array.vue.d.ts
6
- declare var __VLS_14: {
7
- fields: _soybeanjs_headless_forms0.FormFieldEntry<unknown>[];
8
- dirty: boolean;
9
- error: string | string[] | _soybeanjs_headless_forms0.FormErrors<any> | undefined;
10
- touched: boolean | undefined;
11
- formFieldId: string;
12
- formDescriptionId: string;
13
- formErrorId: string;
14
- append: (value: unknown) => void;
15
- prepend: (value: unknown) => void;
16
- swap: (indexA: number, indexB: number) => void;
17
- remove: (index?: number) => void;
18
- move: (from: number, to: number) => void;
19
- insert: (index: number, value: unknown) => void;
20
- update: (index: number, value: unknown) => void;
21
- replace: ($values: unknown[]) => void;
22
- }, __VLS_16: {
23
- fields: _soybeanjs_headless_forms0.FormFieldEntry<unknown>[];
24
- dirty: boolean;
25
- error: string | string[] | _soybeanjs_headless_forms0.FormErrors<any> | undefined;
26
- touched: boolean | undefined;
27
- formFieldId: string;
28
- formDescriptionId: string;
29
- formErrorId: string;
30
- append: (value: unknown) => void;
31
- prepend: (value: unknown) => void;
32
- swap: (indexA: number, indexB: number) => void;
33
- remove: (index?: number) => void;
34
- move: (from: number, to: number) => void;
35
- insert: (index: number, value: unknown) => void;
36
- update: (index: number, value: unknown) => void;
37
- replace: ($values: unknown[]) => void;
38
- }, __VLS_24: {
39
- fields: _soybeanjs_headless_forms0.FormFieldEntry<unknown>[];
40
- dirty: boolean;
41
- error: string | string[] | _soybeanjs_headless_forms0.FormErrors<any> | undefined;
42
- touched: boolean | undefined;
43
- formFieldId: string;
44
- formDescriptionId: string;
45
- formErrorId: string;
46
- append: (value: unknown) => void;
47
- prepend: (value: unknown) => void;
48
- swap: (indexA: number, indexB: number) => void;
49
- remove: (index?: number) => void;
50
- move: (from: number, to: number) => void;
51
- insert: (index: number, value: unknown) => void;
52
- update: (index: number, value: unknown) => void;
53
- replace: ($values: unknown[]) => void;
54
- };
55
- type __VLS_Slots = {} & {
56
- label?: (props: typeof __VLS_14) => any;
57
- } & {
58
- default?: (props: typeof __VLS_16) => any;
59
- } & {
60
- description?: (props: typeof __VLS_24) => any;
61
- };
62
- declare const __VLS_base: vue65.DefineComponent<FormFieldArrayProps, {}, {}, {}, {}, vue65.ComponentOptionsMixin, vue65.ComponentOptionsMixin, {}, string, vue65.PublicProps, Readonly<FormFieldArrayProps> & Readonly<{}>, {}, {}, {}, {}, string, vue65.ComponentProvideOptions, false, {}, any>;
63
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
64
- declare const _default: typeof __VLS_export;
65
- type __VLS_WithSlots<T, S> = T & {
66
- new (): {
67
- $slots: S;
68
- };
69
- };
70
- //#endregion
71
- export { _default };
@@ -1 +0,0 @@
1
- import{mergeSlotVariants as e}from"../../theme/shared.js";import{formVariants as t}from"../../variants/form.js";import{useFormContext as n}from"./context.js";import{computed as r,createBlock as i,createCommentVNode as a,createTextVNode as o,createVNode as s,defineComponent as c,guardReactiveProps as l,mergeProps as u,normalizeProps as d,openBlock as f,renderSlot as p,toDisplayString as m,unref as h,useSlots as g,withCtx as _,withDirectives as v}from"vue";import{useOmitProps as y}from"@soybeanjs/headless/composables";import{FormDescription as b,FormError as x,FormField as S,FormLabel as C,Slot as w,provideFormThemeContext as T}from"@soybeanjs/headless";import{useField as E}from"@soybeanjs/headless/forms";import{vAutoAnimate as D}from"@formkit/auto-animate";var O=c({name:`SFormField`,__name:`form-field`,props:{size:{},ui:{},label:{},description:{},labelProps:{},descriptionProps:{},errorProps:{},name:{}},setup(c){let O=c,k=g(),A=y(O,[`size`,`ui`,`label`,`description`,`labelProps`,`descriptionProps`,`errorProps`]),j=n(`FormField`),{error:M}=E(()=>O.name),N=r(()=>O.size??j.size.value);T({ui:r(()=>e(t({size:N.value,error:!!M.value}),{...j.ui.value,...O.ui}))});let P=r(()=>({...j.labelProps.value,...O.labelProps})),F=r(()=>({...j.descriptionProps.value,...O.descriptionProps})),I=r(()=>({...j.errorProps.value,...O.errorProps}));return(e,t)=>v((f(),i(h(S),d(l(h(A))),{default:_(({modelValue:t,updateModelValue:n,attrs:r,dirty:l,touched:g,ariaDescribedBy:v,ariaInvalid:y})=>[h(k).label||c.label?(f(),i(h(C),d(u({key:0},P.value)),{default:_(()=>[p(e.$slots,`label`,{},()=>[o(m(c.label),1)])]),_:3},16)):a(`v-if`,!0),s(h(w),{size:N.value,"model-value":t,"aria-described-by":v,"aria-invalid":y,"onUpdate:modelValue":n,onChange:r.onChange,onInput:r.onInput,onBlur:r.onBlur},{default:_(()=>[p(e.$slots,`default`,{dirty:l,error:h(M),touched:g})]),_:2},1032,[`size`,`model-value`,`aria-described-by`,`aria-invalid`,`onUpdate:modelValue`,`onChange`,`onInput`,`onBlur`]),h(k).description||c.description?(f(),i(h(b),d(u({key:1},F.value)),{default:_(()=>[p(e.$slots,`description`,{},()=>[o(m(c.description),1)])]),_:3},16)):a(`v-if`,!0),h(M)?(f(),i(h(x),d(u({key:2},I.value)),{default:_(()=>[o(m(h(M)),1)]),_:1},16)):a(`v-if`,!0)]),_:3},16)),[[h(D)]])}});export{O as default};
@@ -1,27 +0,0 @@
1
- import { FormFieldProps } from "./types.js";
2
- import * as vue60 from "vue";
3
- import * as _soybeanjs_headless_forms0 from "@soybeanjs/headless/forms";
4
-
5
- //#region src/components/form/form-field.vue.d.ts
6
- declare var __VLS_14: {}, __VLS_27: {
7
- dirty: boolean;
8
- error: string | string[] | _soybeanjs_headless_forms0.FormErrors<any> | undefined;
9
- touched: boolean | undefined;
10
- }, __VLS_35: {};
11
- type __VLS_Slots = {} & {
12
- label?: (props: typeof __VLS_14) => any;
13
- } & {
14
- default?: (props: typeof __VLS_27) => any;
15
- } & {
16
- description?: (props: typeof __VLS_35) => any;
17
- };
18
- declare const __VLS_base: vue60.DefineComponent<FormFieldProps, {}, {}, {}, {}, vue60.ComponentOptionsMixin, vue60.ComponentOptionsMixin, {}, string, vue60.PublicProps, Readonly<FormFieldProps> & Readonly<{}>, {}, {}, {}, {}, string, vue60.ComponentProvideOptions, false, {}, any>;
19
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
20
- declare const _default: typeof __VLS_export;
21
- type __VLS_WithSlots<T, S> = T & {
22
- new (): {
23
- $slots: S;
24
- };
25
- };
26
- //#endregion
27
- export { _default };
@@ -1 +0,0 @@
1
- import{useTreeMenuThemeContext as e}from"./context.js";import{treeMenuCssVars as t}from"./shared.js";import{createElementBlock as n,createElementVNode as r,defineComponent as i,normalizeClass as a,openBlock as o,renderSlot as s,unref as c}from"vue";var l=i({name:`STreeMenuItemWrapper`,__name:`tree-menu-item-wrapper`,setup(i){let{ui:l}=e(`STreeMenuItemWrapper`),u=`${t.indent}: 0`;return(e,t)=>(o(),n(`li`,{class:a(c(l).item),"data-level":`0`,style:u},[r(`div`,{class:a(c(l).itemContent)},[s(e.$slots,`default`)],2)],2))}});export{l as default};
@@ -1,17 +0,0 @@
1
- import * as vue288 from "vue";
2
-
3
- //#region src/components/tree-menu/tree-menu-item-wrapper.vue.d.ts
4
- declare var __VLS_1: {};
5
- type __VLS_Slots = {} & {
6
- default?: (props: typeof __VLS_1) => any;
7
- };
8
- declare const __VLS_base: vue288.DefineComponent<{}, {}, {}, {}, {}, vue288.ComponentOptionsMixin, vue288.ComponentOptionsMixin, {}, string, vue288.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, vue288.ComponentProvideOptions, true, {}, any>;
9
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
10
- declare const _default: typeof __VLS_export;
11
- type __VLS_WithSlots<T, S> = T & {
12
- new (): {
13
- $slots: S;
14
- };
15
- };
16
- //#endregion
17
- export { _default };
@@ -1 +0,0 @@
1
- import e from"../button/button-icon.js";import t from"../icon/icon.js";import n from"../badge/badge.js";import r from"../link/link.js";import i from"../dropdown-menu/dropdown-menu.js";import a from"../tag/tag.js";import o from"../tooltip/tooltip.js";import{useTreeMenuContext as s,useTreeMenuThemeContext as c}from"./context.js";import{treeMenuCssVars as l}from"./shared.js";import{Fragment as u,computed as d,createBlock as f,createCommentVNode as p,createElementBlock as m,createElementVNode as h,defineComponent as g,mergeProps as _,normalizeClass as v,openBlock as y,renderSlot as b,resolveDynamicComponent as x,toDisplayString as S,toHandlers as C,unref as w,useAttrs as T,withCtx as E,withModifiers as D}from"vue";import{useForwardListeners as O,usePickProps as k}from"@soybeanjs/headless/composables";import{TreeItem as A}from"@soybeanjs/headless";var j=g({name:`STreeMenuItem`,__name:`tree-menu-item`,props:{actionMenuProps:{},tooltipProps:{},dropdownMenuProps:{},value:{},level:{},disabled:{type:Boolean},disabledSelect:{type:Boolean},disabledToggle:{type:Boolean},asChild:{type:Boolean},as:{},label:{},icon:{},to:{},href:{},linkProps:{},badge:{},badgeProps:{},tag:{},tagProps:{},actions:{},onActionSelect:{type:Function},children:{}},emits:[`selectDropdown`],setup(g,{emit:j}){let M=g,N=j,P=T(),F=O(N),{size:I,collapsed:L}=s(`TreeMenuItem`),{ui:R}=c(`TreeMenuItem`),z=d(()=>!!(M.to||M.href||M.linkProps)),B=d(()=>{let e={disabled:M.disabled,...M.linkProps};return M.to&&(e.to=M.to),M.href&&(e.href=M.href),e}),V=k(M,[`value`,`level`,`disabled`,`disabledSelect`,`disabledToggle`],P),H=d(()=>z.value?r:`button`),U=d(()=>z.value?B.value:{}),W=d(()=>({[l.indent]:M.level-1})),G=d(()=>!!M.children?.length),K=d(()=>L.value&&G.value),q=d(()=>L.value&&!K.value?M.label:void 0),J=d(()=>!!(K.value||q.value)),Y=d(()=>({placement:`right`,...M.tooltipProps})),X=d(()=>({trigger:`hover`,contentProps:{placement:`right`},...M.dropdownMenuProps})),Z=d(()=>({color:`accent`,variant:`raw`,...M.tagProps,content:M.tag})),Q=e=>{N(`selectDropdown`,e.value)};return(r,s)=>(y(),f(w(A),_({class:w(R).item},w(V),{"data-level":g.level,"disabled-toggle":J.value,"disabled-select":J.value,style:W.value},C(w(F))),{default:E(({isExpanded:c})=>[(y(),f(x(H.value),_(U.value,{class:w(R).itemContent,"data-link":z.value?``:void 0,tabindex:`-1`}),{default:E(o=>[b(r.$slots,`leading`,{},()=>[g.icon?(y(),f(t,{key:0,icon:g.icon},null,8,[`icon`])):p(`v-if`,!0)]),b(r.$slots,`default`,{},()=>[g.badge?(y(),f(n,_({key:0},g.badgeProps,{size:w(I),content:g.badge,class:w(R).itemBadge}),{default:E(()=>[h(`span`,{class:v(w(R).itemLabel)},S(g.label),3)]),_:1},16,[`size`,`content`,`class`])):(y(),m(`span`,{key:1,class:v(w(R).itemLabel)},S(g.label),3))]),z.value&&o?.isHref?(y(),f(t,{key:0,icon:`lucide:arrow-up-right`,class:v(w(R).itemLinkIcon)},null,8,[`class`])):p(`v-if`,!0),g.tag?(y(),f(a,_({key:1},Z.value,{size:w(I),content:g.tag,class:w(R).itemTag}),null,16,[`size`,`content`,`class`])):p(`v-if`,!0),g.actions?.length?(y(),f(i,_({key:2},g.actionMenuProps,{size:w(I),items:g.actions,onSelect:g.onActionSelect}),{trigger:E(()=>[w(L)?p(`v-if`,!0):(y(),f(e,{key:0,icon:`lucide:ellipsis`,size:w(I),class:v(w(R).itemAction),onClick:s[0]||=D(()=>{},[`stop`])},null,8,[`size`,`class`]))]),_:1},16,[`size`,`items`,`onSelect`])):p(`v-if`,!0),b(r.$slots,`trailing`),G.value?(y(),f(t,{key:3,icon:`lucide:chevron-right`,"data-expanded":c?``:void 0,class:v(w(R).collapsibleIcon)},null,8,[`data-expanded`,`class`])):p(`v-if`,!0)]),_:2},1040,[`class`,`data-link`])),J.value?(y(),m(u,{key:0},[q.value?(y(),f(o,_({key:0},Y.value,{size:w(I),content:q.value}),{trigger:E(()=>[h(`div`,{class:v(w(R).itemAbsolute)},null,2)]),_:1},16,[`size`,`content`])):p(`v-if`,!0),K.value?(y(),f(i,_({key:1},X.value,{items:g.children??[],disabled:g.disabled,size:w(I),"data-menu":g.label,onSelect:Q}),{trigger:E(()=>[h(`div`,{class:v(w(R).itemAbsolute)},null,2)]),_:1},16,[`items`,`disabled`,`size`,`data-menu`])):p(`v-if`,!0)],64)):p(`v-if`,!0)]),_:3},16,[`class`,`data-level`,`disabled-toggle`,`disabled-select`,`style`]))}});export{j as default};