@indielayer/ui 1.18.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (861) hide show
  1. package/docs/assets/css/hljs.css +0 -1
  2. package/docs/assets/css/tailwind.css +35 -10
  3. package/docs/components/common/CodePreview.vue +1 -1
  4. package/docs/components/common/CodeSnippet.vue +30 -18
  5. package/docs/components/common/DocsHero.vue +3 -3
  6. package/docs/components/common/DocumentPage.vue +29 -27
  7. package/docs/components/common/ExampleBlocks.vue +147 -8
  8. package/docs/components/menu/DocsMenu.vue +3 -1
  9. package/docs/components/toolbar/PreToolbar.vue +1 -1
  10. package/docs/components/toolbar/Toolbar.vue +1 -1
  11. package/docs/components/toolbar/ToolbarSearch.vue +3 -3
  12. package/docs/main.ts +5 -0
  13. package/docs/pages/colors.vue +11 -19
  14. package/docs/pages/component/button/variants.vue +1 -1
  15. package/docs/pages/component/drawer/index.vue +1 -1
  16. package/docs/pages/component/empty/actions.vue +11 -0
  17. package/docs/pages/component/empty/bordered.vue +7 -0
  18. package/docs/pages/component/empty/index.vue +43 -0
  19. package/docs/pages/component/empty/usage.vue +6 -0
  20. package/docs/pages/component/form/usage.vue +36 -0
  21. package/docs/pages/component/formGroup/index.vue +1 -1
  22. package/docs/pages/component/icon/formats.vue +65 -0
  23. package/docs/pages/component/icon/index.vue +11 -4
  24. package/docs/pages/component/icon/usage.vue +52 -4
  25. package/docs/pages/component/image/index.vue +16 -2
  26. package/docs/pages/component/image/sizing.vue +42 -0
  27. package/docs/pages/component/image/states.vue +45 -0
  28. package/docs/pages/component/image/usage.vue +9 -6
  29. package/docs/pages/component/infiniteLoader/composable.vue +7 -5
  30. package/docs/pages/component/infiniteLoader/usage.vue +7 -5
  31. package/docs/pages/component/input/index.vue +1 -1
  32. package/docs/pages/component/input/variants.vue +11 -0
  33. package/docs/pages/component/inputGroup/index.vue +43 -0
  34. package/docs/pages/component/inputGroup/mixed.vue +18 -0
  35. package/docs/pages/component/inputGroup/usage.vue +20 -0
  36. package/docs/pages/component/inputGroup/validation.vue +33 -0
  37. package/docs/pages/component/radio/index.vue +23 -9
  38. package/docs/pages/component/radio/payment-method.vue +28 -0
  39. package/docs/pages/component/radio/radio-button-form-group.vue +28 -0
  40. package/docs/pages/component/radio/radio-button.vue +26 -0
  41. package/docs/pages/component/skeleton/usage.vue +1 -1
  42. package/docs/pages/component/stepper/index.vue +9 -2
  43. package/docs/pages/component/stepper/usage.vue +56 -12
  44. package/docs/pages/component/stepper/wizard.vue +126 -0
  45. package/docs/pages/component/table/index.vue +1 -1
  46. package/docs/pages/component/table/states.vue +5 -3
  47. package/docs/pages/component/table/virtual.vue +1 -1
  48. package/docs/pages/component/tooltip/content.vue +11 -0
  49. package/docs/pages/component/tooltip/index.vue +30 -2
  50. package/docs/pages/component/tooltip/placement.vue +18 -0
  51. package/docs/pages/component/tooltip/states.vue +5 -0
  52. package/docs/pages/component/tooltip/toggle-tip.vue +6 -0
  53. package/docs/pages/component/tooltip/usage.vue +8 -9
  54. package/docs/pages/component/virtualGrid/usage.vue +5 -2
  55. package/docs/pages/component/virtualList/dynamicHeight.vue +8 -8
  56. package/docs/pages/component/virtualList/usage.vue +5 -2
  57. package/docs/pages/index.vue +30 -33
  58. package/docs/search/components.json +1 -1
  59. package/docs/search/index.json +1 -1
  60. package/docs/utils/shikiHighlighter.ts +22 -0
  61. package/exports/nuxt.mjs +1 -1
  62. package/exports/nuxt.plugin.js +1 -0
  63. package/exports/tailwind.css +74 -0
  64. package/lib/_virtual/_plugin-vue_export-helper.js +7 -8
  65. package/lib/_virtual/_rolldown/runtime.js +17 -0
  66. package/lib/common/colors.js +370 -19
  67. package/lib/common/icons.d.ts +1 -0
  68. package/lib/common/icons.js +4 -22
  69. package/lib/common/inputGroupRadius.d.ts +2 -0
  70. package/lib/common/inputGroupRadius.js +6 -0
  71. package/lib/common/props.d.ts +27 -0
  72. package/lib/common/props.js +18 -0
  73. package/lib/common/utils.js +17 -24
  74. package/lib/componentDefaults.d.ts +18 -0
  75. package/lib/components/accordion/Accordion.js +5 -0
  76. package/lib/components/accordion/Accordion.vue.d.ts +3 -4
  77. package/lib/components/accordion/Accordion.vue_vue_type_script_setup_true_lang.js +37 -0
  78. package/lib/components/accordion/AccordionItem.js +5 -0
  79. package/lib/components/accordion/AccordionItem.vue.d.ts +3 -4
  80. package/lib/components/accordion/AccordionItem.vue_vue_type_script_setup_true_lang.js +138 -0
  81. package/lib/components/accordion/theme/Accordion.base.theme.js +4 -8
  82. package/lib/components/accordion/theme/Accordion.carbon.theme.js +4 -4
  83. package/lib/components/accordion/theme/AccordionItem.base.theme.js +14 -16
  84. package/lib/components/accordion/theme/AccordionItem.carbon.theme.js +4 -4
  85. package/lib/components/alert/Alert.js +6 -0
  86. package/lib/components/alert/Alert.vue.d.ts +12 -16
  87. package/lib/components/alert/Alert.vue_vue_type_script_setup_true_lang.js +54 -0
  88. package/lib/components/alert/Alert.vue_vue_type_style_index_0_lang.module.js +6 -0
  89. package/lib/components/alert/theme/Alert.base.theme.js +38 -40
  90. package/lib/components/alert/theme/Alert.carbon.theme.js +38 -40
  91. package/lib/components/avatar/Avatar.js +6 -0
  92. package/lib/components/avatar/Avatar.vue.d.ts +6 -8
  93. package/lib/components/avatar/Avatar.vue_vue_type_script_setup_true_lang.js +66 -0
  94. package/lib/components/avatar/Avatar.vue_vue_type_style_index_0_lang.module.js +3 -0
  95. package/lib/components/avatar/theme/Avatar.base.theme.js +17 -21
  96. package/lib/components/avatar/theme/Avatar.carbon.theme.js +4 -4
  97. package/lib/components/badge/Badge.js +5 -0
  98. package/lib/components/badge/Badge.vue.d.ts +6 -8
  99. package/lib/components/badge/Badge.vue_vue_type_script_setup_true_lang.js +76 -0
  100. package/lib/components/badge/theme/Badge.base.theme.js +9 -11
  101. package/lib/components/badge/theme/Badge.carbon.theme.js +4 -4
  102. package/lib/components/breadcrumbs/Breadcrumbs.js +5 -0
  103. package/lib/components/breadcrumbs/Breadcrumbs.vue.d.ts +6 -8
  104. package/lib/components/breadcrumbs/Breadcrumbs.vue_vue_type_script_setup_true_lang.js +62 -0
  105. package/lib/components/breadcrumbs/theme/Breadcrumbs.base.theme.js +8 -10
  106. package/lib/components/breadcrumbs/theme/Breadcrumbs.carbon.theme.js +7 -9
  107. package/lib/components/button/Button.js +6 -0
  108. package/lib/components/button/Button.vue.d.ts +23 -28
  109. package/lib/components/button/Button.vue_vue_type_script_setup_true_lang.js +139 -0
  110. package/lib/components/button/Button.vue_vue_type_style_index_0_scoped_4402fde2_lang.module.js +6 -0
  111. package/lib/components/button/ButtonGroup.js +6 -0
  112. package/lib/components/button/ButtonGroup.vue.d.ts +21 -20
  113. package/lib/components/button/ButtonGroup.vue_vue_type_script_setup_true_lang.js +45 -0
  114. package/lib/components/button/ButtonGroup.vue_vue_type_style_index_0_lang.module.js +7 -0
  115. package/lib/components/button/theme/Button.base.theme.js +139 -140
  116. package/lib/components/button/theme/Button.carbon.theme.js +136 -137
  117. package/lib/components/button/theme/ButtonGroup.base.theme.js +4 -8
  118. package/lib/components/button/theme/ButtonGroup.carbon.theme.js +4 -8
  119. package/lib/components/card/Card.js +5 -0
  120. package/lib/components/card/Card.vue.d.ts +3 -4
  121. package/lib/components/card/Card.vue_vue_type_script_setup_true_lang.js +26 -0
  122. package/lib/components/card/theme/Card.base.theme.js +4 -8
  123. package/lib/components/card/theme/Card.carbon.theme.js +4 -4
  124. package/lib/components/carousel/Carousel.js +5 -0
  125. package/lib/components/carousel/Carousel.vue.d.ts +3 -4
  126. package/lib/components/carousel/Carousel.vue_vue_type_script_setup_true_lang.js +91 -0
  127. package/lib/components/carousel/CarouselSlide.js +6 -0
  128. package/lib/components/carousel/CarouselSlide.vue_vue_type_script_setup_true_lang.js +26 -0
  129. package/lib/components/carousel/CarouselSlide.vue_vue_type_style_index_0_scoped_e90d2127_lang.module.js +4 -0
  130. package/lib/components/carousel/theme/Carousel.base.theme.js +14 -16
  131. package/lib/components/carousel/theme/Carousel.carbon.theme.js +4 -4
  132. package/lib/components/carousel/theme/CarouselSlide.base.theme.js +4 -8
  133. package/lib/components/carousel/theme/CarouselSlide.carbon.theme.js +4 -4
  134. package/lib/components/checkbox/Checkbox.js +6 -0
  135. package/lib/components/checkbox/Checkbox.vue.d.ts +3 -4
  136. package/lib/components/checkbox/Checkbox.vue_vue_type_script_setup_true_lang.js +129 -0
  137. package/lib/components/checkbox/Checkbox.vue_vue_type_style_index_0_lang.module.js +4 -0
  138. package/lib/components/checkbox/theme/Checkbox.base.theme.js +58 -58
  139. package/lib/components/checkbox/theme/Checkbox.carbon.theme.js +58 -58
  140. package/lib/components/container/Container.js +5 -0
  141. package/lib/components/container/Container.vue_vue_type_script_setup_true_lang.js +28 -0
  142. package/lib/components/container/theme/Container.base.theme.js +7 -11
  143. package/lib/components/container/theme/Container.carbon.theme.js +4 -4
  144. package/lib/components/datepicker/Datepicker.js +6 -0
  145. package/lib/components/datepicker/Datepicker.vue.d.ts +9 -5
  146. package/lib/components/datepicker/Datepicker.vue_vue_type_script_setup_true_lang.js +638 -0
  147. package/lib/components/datepicker/theme/Datepicker.base.theme.js +26 -61
  148. package/lib/components/datepicker/theme/Datepicker.carbon.theme.js +4 -4
  149. package/lib/components/divider/Divider.js +5 -0
  150. package/lib/components/divider/Divider.vue.d.ts +4 -6
  151. package/lib/components/divider/Divider.vue_vue_type_script_setup_true_lang.js +43 -0
  152. package/lib/components/divider/theme/Divider.base.theme.js +8 -10
  153. package/lib/components/divider/theme/Divider.carbon.theme.js +4 -4
  154. package/lib/components/drawer/Drawer.js +5 -0
  155. package/lib/components/drawer/Drawer.vue_vue_type_script_setup_true_lang.js +149 -0
  156. package/lib/components/drawer/theme/Drawer.base.theme.js +7 -9
  157. package/lib/components/drawer/theme/Drawer.carbon.theme.js +4 -4
  158. package/lib/components/empty/Empty.js +5 -0
  159. package/lib/components/empty/Empty.vue.d.ts +62 -0
  160. package/lib/components/empty/Empty.vue_vue_type_script_setup_true_lang.js +67 -0
  161. package/lib/components/empty/index.d.ts +2 -0
  162. package/lib/components/empty/theme/Empty.base.theme.d.ts +3 -0
  163. package/lib/components/empty/theme/Empty.base.theme.js +20 -0
  164. package/lib/components/empty/theme/Empty.carbon.theme.d.ts +3 -0
  165. package/lib/components/empty/theme/Empty.carbon.theme.js +5 -0
  166. package/lib/components/form/Form.js +5 -0
  167. package/lib/components/form/Form.vue_vue_type_script_setup_true_lang.js +97 -0
  168. package/lib/components/form/theme/Form.base.theme.js +10 -12
  169. package/lib/components/form/theme/Form.carbon.theme.js +10 -12
  170. package/lib/components/formGroup/FormGroup.js +5 -0
  171. package/lib/components/formGroup/FormGroup.vue.d.ts +9 -2
  172. package/lib/components/formGroup/FormGroup.vue_vue_type_script_setup_true_lang.js +91 -0
  173. package/lib/components/formGroup/theme/FormGroup.base.theme.js +7 -11
  174. package/lib/components/formGroup/theme/FormGroup.carbon.theme.js +7 -11
  175. package/lib/components/icon/Icon.js +5 -0
  176. package/lib/components/icon/Icon.vue.d.ts +3 -4
  177. package/lib/components/icon/Icon.vue_vue_type_script_setup_true_lang.js +85 -0
  178. package/lib/components/icon/theme/Icon.base.theme.js +4 -11
  179. package/lib/components/icon/theme/Icon.carbon.theme.js +4 -11
  180. package/lib/components/image/Image.js +5 -0
  181. package/lib/components/image/Image.vue_vue_type_script_setup_true_lang.js +25 -0
  182. package/lib/components/image/theme/Image.base.theme.js +4 -8
  183. package/lib/components/image/theme/Image.carbon.theme.js +4 -4
  184. package/lib/components/index.d.ts +3 -0
  185. package/lib/components/index.js +128 -120
  186. package/lib/components/input/Input.js +5 -0
  187. package/lib/components/input/Input.vue.d.ts +17 -17
  188. package/lib/components/input/Input.vue_vue_type_script_setup_true_lang.js +238 -0
  189. package/lib/components/input/theme/Input.base.theme.js +22 -16
  190. package/lib/components/input/theme/Input.carbon.theme.js +21 -16
  191. package/lib/components/inputFooter/InputFooter.js +5 -0
  192. package/lib/components/inputFooter/InputFooter.vue.d.ts +4 -6
  193. package/lib/components/inputFooter/InputFooter.vue_vue_type_script_setup_true_lang.js +37 -0
  194. package/lib/components/inputFooter/theme/InputFooter.base.theme.js +10 -12
  195. package/lib/components/inputFooter/theme/InputFooter.carbon.theme.js +10 -12
  196. package/lib/components/inputGroup/InputGroup.js +5 -0
  197. package/lib/components/inputGroup/InputGroup.vue.d.ts +164 -0
  198. package/lib/components/inputGroup/InputGroup.vue_vue_type_script_setup_true_lang.js +120 -0
  199. package/lib/components/inputGroup/index.d.ts +2 -0
  200. package/lib/components/inputGroup/theme/InputGroup.base.theme.d.ts +3 -0
  201. package/lib/components/inputGroup/theme/InputGroup.base.theme.js +4 -0
  202. package/lib/components/inputGroup/theme/InputGroup.carbon.theme.d.ts +3 -0
  203. package/lib/components/inputGroup/theme/InputGroup.carbon.theme.js +5 -0
  204. package/lib/components/label/Label.js +5 -0
  205. package/lib/components/label/Label.vue.d.ts +8 -5
  206. package/lib/components/label/Label.vue_vue_type_script_setup_true_lang.js +59 -0
  207. package/lib/components/label/theme/Label.base.theme.js +13 -15
  208. package/lib/components/label/theme/Label.carbon.theme.js +10 -12
  209. package/lib/components/link/Link.js +6 -0
  210. package/lib/components/link/Link.vue.d.ts +9 -12
  211. package/lib/components/link/Link.vue_vue_type_script_setup_true_lang.js +47 -0
  212. package/lib/components/link/Link.vue_vue_type_style_index_0_scoped_8e0e4d08_lang.module.js +6 -0
  213. package/lib/components/link/theme/Link.base.theme.js +18 -24
  214. package/lib/components/link/theme/Link.carbon.theme.js +18 -24
  215. package/lib/components/loader/Loader.js +5 -0
  216. package/lib/components/loader/Loader.vue_vue_type_script_setup_true_lang.js +61 -0
  217. package/lib/components/loader/theme/Loader.base.theme.js +9 -11
  218. package/lib/components/loader/theme/Loader.carbon.theme.js +9 -11
  219. package/lib/components/menu/Menu.js +5 -0
  220. package/lib/components/menu/Menu.vue.d.ts +6 -8
  221. package/lib/components/menu/Menu.vue_vue_type_script_setup_true_lang.js +178 -0
  222. package/lib/components/menu/MenuItem.js +6 -0
  223. package/lib/components/menu/MenuItem.vue.d.ts +6 -8
  224. package/lib/components/menu/MenuItem.vue_vue_type_script_setup_true_lang.js +149 -0
  225. package/lib/components/menu/MenuItem.vue_vue_type_style_index_0_scoped_2a6b7341_lang.module.js +7 -0
  226. package/lib/components/menu/theme/Menu.base.theme.js +4 -8
  227. package/lib/components/menu/theme/Menu.carbon.theme.js +4 -4
  228. package/lib/components/menu/theme/MenuItem.base.theme.js +71 -75
  229. package/lib/components/menu/theme/MenuItem.carbon.theme.js +4 -4
  230. package/lib/components/modal/Modal.js +5 -0
  231. package/lib/components/modal/Modal.vue_vue_type_script_setup_true_lang.js +194 -0
  232. package/lib/components/modal/theme/Modal.base.theme.js +25 -27
  233. package/lib/components/modal/theme/Modal.carbon.theme.js +27 -29
  234. package/lib/components/notifications/Notifications.js +5 -0
  235. package/lib/components/notifications/Notifications.vue_vue_type_script_setup_true_lang.js +234 -0
  236. package/lib/components/notifications/theme/Notifications.base.theme.js +8 -10
  237. package/lib/components/notifications/theme/Notifications.carbon.theme.js +8 -10
  238. package/lib/components/pagination/Pagination.js +5 -0
  239. package/lib/components/pagination/Pagination.vue.d.ts +3 -4
  240. package/lib/components/pagination/Pagination.vue_vue_type_script_setup_true_lang.js +152 -0
  241. package/lib/components/pagination/PaginationItem.js +5 -0
  242. package/lib/components/pagination/PaginationItem.vue.d.ts +3 -4
  243. package/lib/components/pagination/PaginationItem.vue_vue_type_script_setup_true_lang.js +44 -0
  244. package/lib/components/pagination/theme/Pagination.base.theme.js +12 -12
  245. package/lib/components/pagination/theme/Pagination.carbon.theme.js +4 -4
  246. package/lib/components/pagination/theme/PaginationItem.base.theme.js +4 -8
  247. package/lib/components/pagination/theme/PaginationItem.carbon.theme.js +4 -4
  248. package/lib/components/popover/Popover.js +6 -0
  249. package/lib/components/popover/Popover.vue_vue_type_script_setup_true_lang.js +189 -0
  250. package/lib/components/popover/PopoverContainer.js +5 -0
  251. package/lib/components/popover/PopoverContainer.vue_vue_type_script_setup_true_lang.js +22 -0
  252. package/lib/components/popover/theme/Popover.base.theme.js +7 -9
  253. package/lib/components/popover/theme/Popover.carbon.theme.js +4 -4
  254. package/lib/components/popover/theme/PopoverContainer.base.theme.js +4 -8
  255. package/lib/components/popover/theme/PopoverContainer.carbon.theme.js +4 -8
  256. package/lib/components/progress/Progress.js +5 -0
  257. package/lib/components/progress/Progress.vue.d.ts +6 -8
  258. package/lib/components/progress/Progress.vue_vue_type_script_setup_true_lang.js +38 -0
  259. package/lib/components/progress/theme/Progress.base.theme.js +13 -17
  260. package/lib/components/progress/theme/Progress.carbon.theme.js +4 -4
  261. package/lib/components/qrCode/QrCode.js +5 -0
  262. package/lib/components/qrCode/QrCode.vue_vue_type_script_setup_true_lang.js +79 -0
  263. package/lib/components/qrCode/qrcodegen.js +766 -571
  264. package/lib/components/qrCode/theme/QrCode.base.theme.js +4 -8
  265. package/lib/components/qrCode/theme/QrCode.carbon.theme.js +4 -4
  266. package/lib/components/radio/Radio.js +6 -0
  267. package/lib/components/radio/Radio.vue.d.ts +3 -4
  268. package/lib/components/radio/Radio.vue_vue_type_script_setup_true_lang.js +116 -0
  269. package/lib/components/radio/Radio.vue_vue_type_style_index_0_lang.module.js +7 -0
  270. package/lib/components/radio/theme/Radio.base.theme.js +69 -69
  271. package/lib/components/radio/theme/Radio.carbon.theme.js +63 -63
  272. package/lib/components/radioButton/RadioButton.js +6 -0
  273. package/lib/components/radioButton/RadioButton.vue.d.ts +182 -0
  274. package/lib/components/radioButton/RadioButton.vue_vue_type_script_setup_true_lang.js +83 -0
  275. package/lib/components/radioButton/RadioButton.vue_vue_type_style_index_0_lang.module.js +6 -0
  276. package/lib/components/radioButton/index.d.ts +2 -0
  277. package/lib/components/radioButton/theme/RadioButton.base.theme.d.ts +3 -0
  278. package/lib/components/radioButton/theme/RadioButton.base.theme.js +110 -0
  279. package/lib/components/radioButton/theme/RadioButton.carbon.theme.d.ts +3 -0
  280. package/lib/components/radioButton/theme/RadioButton.carbon.theme.js +15 -0
  281. package/lib/components/scroll/Scroll.js +6 -0
  282. package/lib/components/scroll/Scroll.vue.d.ts +9 -12
  283. package/lib/components/scroll/Scroll.vue_vue_type_script_setup_true_lang.js +48 -0
  284. package/lib/components/scroll/Scroll.vue_vue_type_style_index_0_lang.module.js +12 -0
  285. package/lib/components/scroll/theme/Scroll.base.theme.js +4 -8
  286. package/lib/components/scroll/theme/Scroll.carbon.theme.js +4 -4
  287. package/lib/components/select/Select.js +5 -0
  288. package/lib/components/select/Select.vue.d.ts +81 -239
  289. package/lib/components/select/Select.vue_vue_type_script_setup_true_lang.js +548 -0
  290. package/lib/components/select/theme/Select.base.theme.js +26 -25
  291. package/lib/components/select/theme/Select.carbon.theme.js +23 -23
  292. package/lib/components/skeleton/Skeleton.js +5 -0
  293. package/lib/components/skeleton/Skeleton.vue_vue_type_script_setup_true_lang.js +30 -0
  294. package/lib/components/skeleton/theme/Skeleton.base.theme.js +7 -11
  295. package/lib/components/skeleton/theme/Skeleton.carbon.theme.js +4 -4
  296. package/lib/components/slider/Slider.js +7 -0
  297. package/lib/components/slider/Slider.vue_vue_type_script_setup_true_lang.js +106 -0
  298. package/lib/components/slider/theme/Slider.base.theme.js +17 -19
  299. package/lib/components/slider/theme/Slider.carbon.theme.js +4 -4
  300. package/lib/components/spacer/Spacer.js +9 -11
  301. package/lib/components/spinner/Spinner.js +5 -0
  302. package/lib/components/spinner/Spinner.vue_vue_type_script_setup_true_lang.js +23 -0
  303. package/lib/components/stepper/Stepper.js +5 -0
  304. package/lib/components/stepper/Stepper.vue.d.ts +137 -32
  305. package/lib/components/stepper/Stepper.vue_vue_type_script_setup_true_lang.js +377 -0
  306. package/lib/components/stepper/index.d.ts +1 -1
  307. package/lib/components/stepper/theme/Stepper.base.theme.js +33 -20
  308. package/lib/components/stepper/theme/Stepper.carbon.theme.js +4 -4
  309. package/lib/components/tab/Tab.js +5 -0
  310. package/lib/components/tab/Tab.vue.d.ts +3 -4
  311. package/lib/components/tab/Tab.vue_vue_type_script_setup_true_lang.js +139 -0
  312. package/lib/components/tab/TabGroup.js +5 -0
  313. package/lib/components/tab/TabGroup.vue.d.ts +6 -8
  314. package/lib/components/tab/TabGroup.vue_vue_type_script_setup_true_lang.js +122 -0
  315. package/lib/components/tab/theme/Tab.base.theme.js +13 -15
  316. package/lib/components/tab/theme/Tab.carbon.theme.js +16 -18
  317. package/lib/components/tab/theme/TabGroup.base.theme.js +30 -30
  318. package/lib/components/tab/theme/TabGroup.carbon.theme.js +30 -30
  319. package/lib/components/table/Table.js +5 -0
  320. package/lib/components/table/Table.vue.d.ts +49 -304
  321. package/lib/components/table/Table.vue_vue_type_script_setup_true_lang.js +385 -0
  322. package/lib/components/table/TableBody.js +9 -14
  323. package/lib/components/table/TableCell.js +5 -0
  324. package/lib/components/table/TableCell.vue.d.ts +6 -8
  325. package/lib/components/table/TableCell.vue_vue_type_script_setup_true_lang.js +81 -0
  326. package/lib/components/table/TableHead.js +5 -0
  327. package/lib/components/table/TableHead.vue.d.ts +4 -6
  328. package/lib/components/table/TableHead.vue_vue_type_script_setup_true_lang.js +17 -0
  329. package/lib/components/table/TableHeader.js +5 -0
  330. package/lib/components/table/TableHeader.vue.d.ts +3 -4
  331. package/lib/components/table/TableHeader.vue_vue_type_script_setup_true_lang.js +78 -0
  332. package/lib/components/table/TableRow.js +5 -0
  333. package/lib/components/table/TableRow.vue.d.ts +9 -12
  334. package/lib/components/table/TableRow.vue_vue_type_script_setup_true_lang.js +39 -0
  335. package/lib/components/table/theme/Table.base.theme.js +11 -13
  336. package/lib/components/table/theme/Table.carbon.theme.js +11 -13
  337. package/lib/components/table/theme/TableCell.base.theme.js +7 -11
  338. package/lib/components/table/theme/TableCell.carbon.theme.js +7 -11
  339. package/lib/components/table/theme/TableHead.base.theme.js +10 -12
  340. package/lib/components/table/theme/TableHead.carbon.theme.js +10 -12
  341. package/lib/components/table/theme/TableHeader.base.theme.js +14 -16
  342. package/lib/components/table/theme/TableHeader.carbon.theme.js +10 -12
  343. package/lib/components/table/theme/TableRow.base.theme.js +7 -11
  344. package/lib/components/table/theme/TableRow.carbon.theme.js +7 -11
  345. package/lib/components/tag/Tag.js +5 -0
  346. package/lib/components/tag/Tag.vue.d.ts +12 -16
  347. package/lib/components/tag/Tag.vue_vue_type_script_setup_true_lang.js +62 -0
  348. package/lib/components/tag/theme/Tag.base.theme.js +21 -23
  349. package/lib/components/tag/theme/Tag.carbon.theme.js +21 -23
  350. package/lib/components/textarea/Textarea.js +5 -0
  351. package/lib/components/textarea/Textarea.vue.d.ts +26 -29
  352. package/lib/components/textarea/Textarea.vue_vue_type_script_setup_true_lang.js +197 -0
  353. package/lib/components/textarea/theme/Textarea.base.theme.js +17 -13
  354. package/lib/components/textarea/theme/Textarea.carbon.theme.js +16 -13
  355. package/lib/components/themeProvider/ThemeProvider.js +5 -0
  356. package/lib/components/themeProvider/ThemeProvider.vue_vue_type_script_setup_true_lang.js +15 -0
  357. package/lib/components/toggle/Toggle.js +5 -0
  358. package/lib/components/toggle/Toggle.vue.d.ts +3 -4
  359. package/lib/components/toggle/Toggle.vue_vue_type_script_setup_true_lang.js +101 -0
  360. package/lib/components/toggle/theme/Toggle.base.theme.js +23 -28
  361. package/lib/components/toggle/theme/Toggle.carbon.theme.js +4 -4
  362. package/lib/components/tooltip/ToggleTip.js +5 -0
  363. package/lib/components/tooltip/ToggleTip.vue_vue_type_script_setup_true_lang.js +25 -0
  364. package/lib/components/tooltip/Tooltip.js +5 -0
  365. package/lib/components/tooltip/Tooltip.vue_vue_type_script_setup_true_lang.js +105 -0
  366. package/lib/components/tooltip/theme/Tooltip.base.theme.js +4 -8
  367. package/lib/components/tooltip/theme/Tooltip.carbon.theme.js +4 -4
  368. package/lib/components/upload/Upload.js +5 -0
  369. package/lib/components/upload/Upload.vue.d.ts +23 -9
  370. package/lib/components/upload/Upload.vue_vue_type_script_setup_true_lang.js +261 -0
  371. package/lib/components/upload/theme/Upload.base.theme.js +4 -8
  372. package/lib/components/upload/theme/Upload.carbon.theme.js +4 -4
  373. package/lib/composables/index.d.ts +1 -0
  374. package/lib/composables/keys.d.ts +2 -0
  375. package/lib/composables/keys.js +4 -12
  376. package/lib/composables/resolveComponentDefaults.d.ts +4 -0
  377. package/lib/composables/resolveComponentDefaults.js +15 -0
  378. package/lib/composables/useCSS.js +29 -25
  379. package/lib/composables/useColors.js +44 -51
  380. package/lib/composables/useCommon.js +15 -17
  381. package/lib/composables/useFocusTrap.js +50 -53
  382. package/lib/composables/useInputtable.d.ts +12 -2
  383. package/lib/composables/useInputtable.js +135 -113
  384. package/lib/composables/useInteractive.js +14 -20
  385. package/lib/composables/useNotifications.js +8 -8
  386. package/lib/composables/useTheme.js +44 -56
  387. package/lib/composables/useVirtualList.d.ts +1 -2
  388. package/lib/composables/useVirtualList.js +120 -115
  389. package/lib/create.d.ts +2 -0
  390. package/lib/create.js +21 -24
  391. package/lib/index.d.ts +1 -0
  392. package/lib/index.js +87 -169
  393. package/lib/index.umd.js +57 -41
  394. package/lib/install.js +14 -18
  395. package/lib/node_modules/.pnpm/@floating-ui_core@1.5.3/node_modules/@floating-ui/core/dist/floating-ui.core.js +321 -489
  396. package/lib/node_modules/.pnpm/@floating-ui_dom@1.1.1/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.js +288 -215
  397. package/lib/node_modules/.pnpm/@floating-ui_utils@0.2.1/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +99 -115
  398. package/lib/node_modules/.pnpm/@vuepic_vue-datepicker@11.0.2_vue@3.5.34_typescript@5.2.2_/node_modules/@vuepic/vue-datepicker/dist/vue-datepicker.js +5380 -0
  399. package/lib/node_modules/.pnpm/@vueuse_core@11.1.0_vue@3.5.34_typescript@5.2.2_/node_modules/@vueuse/core/index.js +407 -0
  400. package/lib/node_modules/.pnpm/@vueuse_shared@11.1.0_vue@3.5.34_typescript@5.2.2_/node_modules/@vueuse/shared/index.js +75 -0
  401. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/addLeadingZeros.js +5 -6
  402. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/defaultOptions.js +6 -6
  403. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/formatters.js +378 -513
  404. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/lightFormatters.js +42 -58
  405. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/longFormatters.js +39 -51
  406. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +7 -17
  407. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/normalizeDates.js +7 -10
  408. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/normalizeInterval.js +10 -7
  409. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/protectedTokens.js +19 -17
  410. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/add.js +10 -19
  411. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addDays.js +8 -9
  412. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addHours.js +7 -8
  413. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addMilliseconds.js +7 -8
  414. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addMonths.js +11 -20
  415. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addQuarters.js +6 -7
  416. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addYears.js +6 -7
  417. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/compareAsc.js +7 -8
  418. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constants.js +6 -9
  419. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructFrom.js +6 -7
  420. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarDays.js +10 -15
  421. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarYears.js +7 -12
  422. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInYears.js +11 -16
  423. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachDayOfInterval.js +14 -19
  424. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachQuarterOfInterval.js +13 -19
  425. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfQuarter.js +7 -8
  426. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfWeek.js +8 -10
  427. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfYear.js +7 -8
  428. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/format.js +57 -58
  429. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDay.js +6 -7
  430. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDayOfYear.js +9 -10
  431. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDaysInMonth.js +8 -9
  432. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDefaultOptions.js +6 -7
  433. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getHours.js +6 -7
  434. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISODay.js +7 -8
  435. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeek.js +10 -11
  436. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeekYear.js +13 -14
  437. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getMinutes.js +6 -7
  438. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getMonth.js +6 -7
  439. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getQuarter.js +7 -8
  440. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getSeconds.js +6 -7
  441. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeek.js +10 -11
  442. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeekYear.js +14 -16
  443. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getYear.js +6 -7
  444. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isAfter.js +6 -7
  445. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isBefore.js +6 -7
  446. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isDate.js +5 -6
  447. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isEqual.js +6 -7
  448. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameQuarter.js +8 -13
  449. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isValid.js +7 -8
  450. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js +8 -8
  451. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js +16 -17
  452. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchFn.js +19 -28
  453. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js +17 -16
  454. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js +68 -69
  455. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js +31 -32
  456. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js +11 -11
  457. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/localize.js +200 -153
  458. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/match.js +123 -109
  459. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US.js +17 -18
  460. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/Parser.js +15 -21
  461. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/Setter.js +29 -40
  462. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/constants.js +29 -48
  463. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js +45 -48
  464. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js +45 -48
  465. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DateParser.js +63 -60
  466. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js +40 -50
  467. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayParser.js +61 -44
  468. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js +43 -48
  469. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/EraParser.js +24 -29
  470. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js +26 -20
  471. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js +14 -21
  472. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js +28 -31
  473. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js +30 -31
  474. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js +31 -32
  475. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js +29 -32
  476. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js +73 -98
  477. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js +27 -47
  478. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js +27 -47
  479. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js +39 -48
  480. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js +33 -39
  481. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js +76 -73
  482. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js +38 -47
  483. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js +47 -68
  484. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js +22 -31
  485. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/MonthParser.js +58 -70
  486. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js +57 -69
  487. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/SecondParser.js +22 -31
  488. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js +76 -73
  489. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js +58 -70
  490. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js +57 -69
  491. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js +14 -20
  492. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js +14 -20
  493. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/YearParser.js +42 -48
  494. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers.js +66 -66
  495. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/utils.js +64 -93
  496. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse.js +61 -88
  497. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/set.js +9 -10
  498. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setDay.js +9 -11
  499. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setHours.js +7 -8
  500. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setISODay.js +9 -10
  501. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setISOWeek.js +8 -9
  502. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setMilliseconds.js +7 -8
  503. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setMinutes.js +7 -8
  504. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setMonth.js +11 -12
  505. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setSeconds.js +7 -8
  506. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setWeek.js +8 -9
  507. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setYear.js +8 -9
  508. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfDay.js +7 -8
  509. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfISOWeek.js +9 -7
  510. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfISOWeekYear.js +9 -10
  511. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfMonth.js +7 -8
  512. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfQuarter.js +7 -8
  513. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfWeek.js +8 -10
  514. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfWeekYear.js +10 -12
  515. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfYear.js +7 -8
  516. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/sub.js +9 -18
  517. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subDays.js +6 -7
  518. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subMonths.js +6 -7
  519. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subYears.js +6 -7
  520. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/toDate.js +6 -7
  521. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/transpose.js +9 -16
  522. package/lib/node_modules/.pnpm/floating-vue@5.2.2_@nuxt_kit@4.4.6_magicast@0.5.3__vue@3.5.34_typescript@5.2.2_/node_modules/floating-vue/dist/floating-vue.js +1243 -0
  523. package/lib/node_modules/.pnpm/vue-demi@0.14.10_vue@3.5.34_typescript@5.2.2_/node_modules/vue-demi/lib/index.js +28 -0
  524. package/lib/nuxt.mjs +1 -1
  525. package/lib/nuxt.plugin.js +1 -0
  526. package/lib/tailwind.css +74 -0
  527. package/lib/theme.d.ts +4 -1
  528. package/lib/theme.js +12 -13
  529. package/lib/themes/base/components.d.ts +3 -0
  530. package/lib/themes/base/components.js +118 -108
  531. package/lib/themes/base/index.js +10 -10
  532. package/lib/themes/base/styles.d.ts +1 -1
  533. package/lib/themes/base/styles.js +4 -91
  534. package/lib/themes/carbon/components.d.ts +3 -0
  535. package/lib/themes/carbon/components.js +118 -108
  536. package/lib/themes/carbon/index.js +23 -13
  537. package/lib/themes/carbon/styles.d.ts +1 -1
  538. package/lib/themes/carbon/styles.js +4 -87
  539. package/lib/version.d.ts +1 -1
  540. package/lib/version.js +4 -4
  541. package/lib/virtual/components/infiniteLoader/InfiniteLoader.js +5 -0
  542. package/lib/virtual/components/infiniteLoader/InfiniteLoader.vue_vue_type_script_setup_true_lang.js +18 -0
  543. package/lib/virtual/components/virtualGrid/VirtualGrid.js +5 -0
  544. package/lib/virtual/components/virtualGrid/VirtualGrid.vue_vue_type_script_setup_true_lang.js +194 -0
  545. package/lib/virtual/components/virtualList/VirtualList.js +5 -0
  546. package/lib/virtual/components/virtualList/VirtualList.vue_vue_type_script_setup_true_lang.js +139 -0
  547. package/lib/virtual/components/virtualList/isDynamicRowHeight.js +5 -5
  548. package/lib/virtual/components/virtualList/useDynamicRowHeight.js +58 -67
  549. package/lib/virtual/composables/infinite-loader/scanForUnloadedIndices.js +26 -40
  550. package/lib/virtual/composables/infinite-loader/useInfiniteLoader.js +30 -41
  551. package/lib/virtual/core/createCachedBounds.js +40 -54
  552. package/lib/virtual/core/getEstimatedSize.js +11 -21
  553. package/lib/virtual/core/getOffsetForIndex.js +17 -39
  554. package/lib/virtual/core/getStartStopIndices.js +21 -30
  555. package/lib/virtual/core/useCachedBounds.js +10 -16
  556. package/lib/virtual/core/useIsRtl.js +10 -14
  557. package/lib/virtual/core/useItemSize.js +15 -26
  558. package/lib/virtual/core/useVirtualizer.js +145 -170
  559. package/lib/virtual/utils/adjustScrollOffsetForRtl.js +15 -23
  560. package/lib/virtual/utils/assert.js +5 -6
  561. package/lib/virtual/utils/getRTLOffsetType.js +12 -12
  562. package/lib/virtual/utils/getScrollbarSize.js +10 -10
  563. package/lib/virtual/utils/isRtl.js +10 -11
  564. package/lib/virtual/utils/parseNumericStyleValue.js +10 -14
  565. package/lib/virtual/utils/shallowCompare.js +9 -13
  566. package/package.json +20 -22
  567. package/src/common/__tests__/inputGroupRadius.spec.ts +14 -0
  568. package/src/common/icons.ts +1 -0
  569. package/src/common/inputGroupRadius.ts +11 -0
  570. package/src/common/props.ts +34 -0
  571. package/src/componentDefaults.ts +19 -0
  572. package/src/components/accordion/Accordion.vue +3 -1
  573. package/src/components/accordion/AccordionItem.vue +3 -1
  574. package/src/components/alert/Alert.vue +28 -24
  575. package/src/components/avatar/Avatar.vue +5 -3
  576. package/src/components/badge/Badge.vue +7 -3
  577. package/src/components/breadcrumbs/Breadcrumbs.vue +4 -2
  578. package/src/components/button/Button.vue +98 -55
  579. package/src/components/button/ButtonGroup.vue +23 -25
  580. package/src/components/button/theme/Button.base.theme.ts +7 -2
  581. package/src/components/button/theme/Button.carbon.theme.ts +8 -2
  582. package/src/components/card/Card.vue +3 -1
  583. package/src/components/card/theme/Card.base.theme.ts +1 -1
  584. package/src/components/carousel/Carousel.vue +3 -1
  585. package/src/components/carousel/CarouselSlide.vue +1 -1
  586. package/src/components/checkbox/Checkbox.vue +7 -7
  587. package/src/components/checkbox/theme/Checkbox.carbon.theme.ts +1 -1
  588. package/src/components/datepicker/Datepicker.vue +32 -10
  589. package/src/components/divider/Divider.vue +3 -2
  590. package/src/components/divider/theme/Divider.base.theme.ts +2 -2
  591. package/src/components/empty/Empty.vue +86 -0
  592. package/src/components/empty/__tests__/Empty.spec.ts +11 -0
  593. package/src/components/empty/index.ts +2 -0
  594. package/src/components/empty/theme/Empty.base.theme.ts +40 -0
  595. package/src/components/empty/theme/Empty.carbon.theme.ts +7 -0
  596. package/src/components/formGroup/FormGroup.vue +19 -7
  597. package/src/components/formGroup/__tests__/FormGroup.spec.ts +37 -2
  598. package/src/components/formGroup/theme/FormGroup.base.theme.ts +7 -3
  599. package/src/components/formGroup/theme/FormGroup.carbon.theme.ts +7 -3
  600. package/src/components/icon/Icon.vue +3 -1
  601. package/src/components/index.ts +3 -0
  602. package/src/components/input/Input.vue +114 -35
  603. package/src/components/input/__tests__/Input.spec.ts +28 -1
  604. package/src/components/input/theme/Input.base.theme.ts +10 -1
  605. package/src/components/input/theme/Input.carbon.theme.ts +5 -0
  606. package/src/components/inputFooter/InputFooter.vue +3 -1
  607. package/src/components/inputGroup/InputGroup.vue +185 -0
  608. package/src/components/inputGroup/__tests__/InputGroup.spec.ts +104 -0
  609. package/src/components/inputGroup/index.ts +2 -0
  610. package/src/components/inputGroup/theme/InputGroup.base.theme.ts +9 -0
  611. package/src/components/inputGroup/theme/InputGroup.carbon.theme.ts +7 -0
  612. package/src/components/label/Label.vue +23 -3
  613. package/src/components/label/theme/Label.base.theme.ts +2 -2
  614. package/src/components/label/theme/Label.carbon.theme.ts +2 -2
  615. package/src/components/link/Link.vue +34 -29
  616. package/src/components/menu/Menu.vue +4 -2
  617. package/src/components/menu/MenuItem.vue +39 -41
  618. package/src/components/pagination/Pagination.vue +3 -1
  619. package/src/components/pagination/PaginationItem.vue +3 -1
  620. package/src/components/popover/Popover.vue +12 -15
  621. package/src/components/progress/Progress.vue +4 -2
  622. package/src/components/radio/Radio.vue +27 -24
  623. package/src/components/radio/theme/Radio.base.theme.ts +1 -1
  624. package/src/components/radio/theme/Radio.carbon.theme.ts +1 -1
  625. package/src/components/radioButton/RadioButton.vue +154 -0
  626. package/src/components/radioButton/__tests__/RadioButton.spec.ts +48 -0
  627. package/src/components/radioButton/index.ts +2 -0
  628. package/src/components/radioButton/theme/RadioButton.base.theme.ts +155 -0
  629. package/src/components/radioButton/theme/RadioButton.carbon.theme.ts +31 -0
  630. package/src/components/scroll/Scroll.vue +6 -4
  631. package/src/components/select/Select.vue +57 -16
  632. package/src/components/select/theme/Select.base.theme.ts +7 -1
  633. package/src/components/select/theme/Select.carbon.theme.ts +2 -0
  634. package/src/components/slider/Slider.vue +19 -8
  635. package/src/components/spacer/Spacer.tsx +1 -1
  636. package/src/components/spacer/__tests__/Spacer.spec.ts +1 -1
  637. package/src/components/stepper/Stepper.vue +603 -80
  638. package/src/components/stepper/__tests__/Stepper.spec.ts +199 -5
  639. package/src/components/stepper/index.ts +4 -0
  640. package/src/components/stepper/theme/Stepper.base.theme.ts +49 -19
  641. package/src/components/tab/Tab.vue +6 -2
  642. package/src/components/tab/TabGroup.vue +8 -4
  643. package/src/components/table/Table.vue +31 -11
  644. package/src/components/table/TableCell.vue +4 -2
  645. package/src/components/table/TableHead.vue +3 -1
  646. package/src/components/table/TableHeader.vue +3 -1
  647. package/src/components/table/TableRow.vue +5 -3
  648. package/src/components/table/__tests__/Table.spec.ts +53 -0
  649. package/src/components/table/theme/Table.carbon.theme.ts +1 -1
  650. package/src/components/tag/Tag.vue +12 -8
  651. package/src/components/textarea/Textarea.vue +83 -19
  652. package/src/components/textarea/theme/Textarea.base.theme.ts +10 -1
  653. package/src/components/textarea/theme/Textarea.carbon.theme.ts +5 -0
  654. package/src/components/toggle/Toggle.vue +3 -1
  655. package/src/components/upload/Upload.vue +6 -2
  656. package/src/composables/__tests__/resolveComponentDefaults.spec.ts +139 -0
  657. package/src/composables/index.ts +1 -0
  658. package/src/composables/keys.ts +2 -0
  659. package/src/composables/resolveComponentDefaults.ts +33 -0
  660. package/src/composables/useInputtable.ts +56 -9
  661. package/src/composables/useTheme.ts +10 -3
  662. package/src/composables/useVirtualList.ts +1 -2
  663. package/src/create.ts +2 -0
  664. package/src/index.ts +1 -0
  665. package/src/theme.ts +6 -0
  666. package/src/themes/base/components.ts +3 -0
  667. package/src/themes/base/styles.ts +28 -20
  668. package/src/themes/carbon/components.ts +3 -0
  669. package/src/themes/carbon/styles.ts +25 -17
  670. package/src/version.ts +1 -1
  671. package/src/virtual/components/virtualList/VirtualList.test.ts +42 -4
  672. package/src/virtual/core/useVirtualizer.ts +18 -4
  673. package/docs/pages/component/radio/variants.vue +0 -39
  674. package/exports/tailwind.preset.js +0 -40
  675. package/lib/components/accordion/Accordion.vue.js +0 -40
  676. package/lib/components/accordion/Accordion.vue2.js +0 -4
  677. package/lib/components/accordion/AccordionItem.vue.js +0 -150
  678. package/lib/components/accordion/AccordionItem.vue2.js +0 -4
  679. package/lib/components/accordion/__tests__/Accordion.spec.d.ts +0 -1
  680. package/lib/components/alert/Alert.vue.js +0 -9
  681. package/lib/components/alert/Alert.vue2.js +0 -62
  682. package/lib/components/alert/Alert.vue3.js +0 -8
  683. package/lib/components/alert/__tests__/Alert.spec.d.ts +0 -1
  684. package/lib/components/avatar/Avatar.vue.js +0 -9
  685. package/lib/components/avatar/Avatar.vue2.js +0 -76
  686. package/lib/components/avatar/Avatar.vue3.js +0 -7
  687. package/lib/components/avatar/__tests__/Avatar.spec.d.ts +0 -1
  688. package/lib/components/badge/Badge.vue.js +0 -93
  689. package/lib/components/badge/Badge.vue2.js +0 -4
  690. package/lib/components/badge/__tests__/Badge.spec.d.ts +0 -1
  691. package/lib/components/breadcrumbs/Breadcrumbs.vue.js +0 -69
  692. package/lib/components/breadcrumbs/Breadcrumbs.vue2.js +0 -4
  693. package/lib/components/breadcrumbs/__tests__/Breadcrumbs.spec.d.ts +0 -1
  694. package/lib/components/button/Button.vue.js +0 -9
  695. package/lib/components/button/Button.vue2.js +0 -117
  696. package/lib/components/button/Button.vue3.js +0 -8
  697. package/lib/components/button/ButtonGroup.vue.js +0 -9
  698. package/lib/components/button/ButtonGroup.vue2.js +0 -53
  699. package/lib/components/button/ButtonGroup.vue3.js +0 -7
  700. package/lib/components/button/__tests__/ Button.spec.d.ts +0 -1
  701. package/lib/components/button/__tests__/ ButtonGroup.spec.d.ts +0 -1
  702. package/lib/components/card/Card.vue.js +0 -30
  703. package/lib/components/card/Card.vue2.js +0 -4
  704. package/lib/components/card/__tests__/Card.spec.d.ts +0 -1
  705. package/lib/components/carousel/Carousel.vue.js +0 -97
  706. package/lib/components/carousel/Carousel.vue2.js +0 -4
  707. package/lib/components/carousel/CarouselSlide.vue.js +0 -9
  708. package/lib/components/carousel/CarouselSlide.vue2.js +0 -32
  709. package/lib/components/carousel/CarouselSlide.vue3.js +0 -6
  710. package/lib/components/carousel/__tests__/Carousel.spec.d.ts +0 -1
  711. package/lib/components/checkbox/Checkbox.vue.js +0 -9
  712. package/lib/components/checkbox/Checkbox.vue2.js +0 -143
  713. package/lib/components/checkbox/Checkbox.vue3.js +0 -6
  714. package/lib/components/checkbox/__tests__/Checkbox.spec.d.ts +0 -1
  715. package/lib/components/container/Container.vue.js +0 -33
  716. package/lib/components/container/Container.vue2.js +0 -4
  717. package/lib/components/container/__tests__/Container.spec.d.ts +0 -1
  718. package/lib/components/datepicker/Datepicker.vue.js +0 -309
  719. package/lib/components/datepicker/Datepicker.vue2.js +0 -4
  720. package/lib/components/datepicker/Datepicker.vue3.js +0 -5
  721. package/lib/components/datepicker/__tests__/Datepicker.spec.d.ts +0 -1
  722. package/lib/components/divider/Divider.vue.js +0 -52
  723. package/lib/components/divider/Divider.vue2.js +0 -4
  724. package/lib/components/divider/__tests__/Divider.spec.d.ts +0 -1
  725. package/lib/components/drawer/Drawer.vue.js +0 -160
  726. package/lib/components/drawer/Drawer.vue2.js +0 -4
  727. package/lib/components/drawer/__tests__/Drawer.spec.d.ts +0 -1
  728. package/lib/components/form/Form.vue.js +0 -111
  729. package/lib/components/form/Form.vue2.js +0 -4
  730. package/lib/components/form/__tests__/Form.spec.d.ts +0 -1
  731. package/lib/components/formGroup/FormGroup.vue.js +0 -91
  732. package/lib/components/formGroup/FormGroup.vue2.js +0 -4
  733. package/lib/components/formGroup/__tests__/FormGroup.spec.d.ts +0 -1
  734. package/lib/components/icon/Icon.vue.js +0 -73
  735. package/lib/components/icon/Icon.vue2.js +0 -4
  736. package/lib/components/icon/__tests__/Icon.spec.d.ts +0 -1
  737. package/lib/components/image/Image.vue.js +0 -31
  738. package/lib/components/image/Image.vue2.js +0 -4
  739. package/lib/components/image/__tests__/Image.spec.d.ts +0 -1
  740. package/lib/components/input/Input.vue.js +0 -164
  741. package/lib/components/input/Input.vue2.js +0 -4
  742. package/lib/components/input/__tests__/Input.spec.d.ts +0 -1
  743. package/lib/components/inputFooter/InputFooter.vue.js +0 -43
  744. package/lib/components/inputFooter/InputFooter.vue2.js +0 -4
  745. package/lib/components/inputFooter/__tests__/InputFooter.spec.d.ts +0 -1
  746. package/lib/components/label/Label.vue.js +0 -54
  747. package/lib/components/label/Label.vue2.js +0 -4
  748. package/lib/components/label/__tests__/Label.spec.d.ts +0 -1
  749. package/lib/components/link/Link.vue.js +0 -9
  750. package/lib/components/link/Link.vue2.js +0 -47
  751. package/lib/components/link/Link.vue3.js +0 -8
  752. package/lib/components/link/__tests__/Link.spec.d.ts +0 -1
  753. package/lib/components/loader/Loader.vue.js +0 -54
  754. package/lib/components/loader/Loader.vue2.js +0 -4
  755. package/lib/components/loader/__tests__/Loader.spec.d.ts +0 -1
  756. package/lib/components/menu/Menu.vue.js +0 -141
  757. package/lib/components/menu/Menu.vue2.js +0 -4
  758. package/lib/components/menu/MenuItem.vue.js +0 -9
  759. package/lib/components/menu/MenuItem.vue2.js +0 -164
  760. package/lib/components/menu/MenuItem.vue3.js +0 -7
  761. package/lib/components/menu/__tests__/Menu.spec.d.ts +0 -1
  762. package/lib/components/menu/__tests__/MenuItem.spec.d.ts +0 -1
  763. package/lib/components/modal/Modal.vue.js +0 -211
  764. package/lib/components/modal/Modal.vue2.js +0 -4
  765. package/lib/components/modal/__tests__/Modal.spec.d.ts +0 -1
  766. package/lib/components/notifications/Notifications.vue.js +0 -266
  767. package/lib/components/notifications/Notifications.vue2.js +0 -4
  768. package/lib/components/notifications/__tests__/Notifications.spec.d.ts +0 -1
  769. package/lib/components/pagination/Pagination.vue.js +0 -131
  770. package/lib/components/pagination/Pagination.vue2.js +0 -4
  771. package/lib/components/pagination/PaginationItem.vue.js +0 -47
  772. package/lib/components/pagination/PaginationItem.vue2.js +0 -4
  773. package/lib/components/pagination/__tests__/Pagination.spec.d.ts +0 -1
  774. package/lib/components/pagination/__tests__/PaginationItem.spec.d.ts +0 -1
  775. package/lib/components/popover/Popover.vue.js +0 -134
  776. package/lib/components/popover/Popover.vue2.js +0 -4
  777. package/lib/components/popover/Popover.vue3.js +0 -5
  778. package/lib/components/popover/PopoverContainer.vue.js +0 -29
  779. package/lib/components/popover/PopoverContainer.vue2.js +0 -4
  780. package/lib/components/popover/__tests__/Popover.spec.d.ts +0 -1
  781. package/lib/components/popover/__tests__/PopoverContainer.spec.d.ts +0 -1
  782. package/lib/components/progress/Progress.vue.js +0 -50
  783. package/lib/components/progress/Progress.vue2.js +0 -4
  784. package/lib/components/progress/__tests__/Progress.spec.d.ts +0 -1
  785. package/lib/components/qrCode/QrCode.vue.js +0 -93
  786. package/lib/components/qrCode/QrCode.vue2.js +0 -4
  787. package/lib/components/qrCode/__tests__/QrCode.spec.d.ts +0 -1
  788. package/lib/components/radio/Radio.vue.js +0 -9
  789. package/lib/components/radio/Radio.vue2.js +0 -132
  790. package/lib/components/radio/Radio.vue3.js +0 -10
  791. package/lib/components/radio/__tests__/Radio.spec.d.ts +0 -1
  792. package/lib/components/scroll/Scroll.vue.js +0 -9
  793. package/lib/components/scroll/Scroll.vue2.js +0 -63
  794. package/lib/components/scroll/Scroll.vue3.js +0 -17
  795. package/lib/components/scroll/__tests__/Scroll.spec.d.ts +0 -1
  796. package/lib/components/select/Select.vue.js +0 -696
  797. package/lib/components/select/Select.vue2.js +0 -4
  798. package/lib/components/select/__tests__/Select.spec.d.ts +0 -1
  799. package/lib/components/skeleton/Skeleton.vue.js +0 -39
  800. package/lib/components/skeleton/Skeleton.vue2.js +0 -4
  801. package/lib/components/skeleton/__tests__/Skeleton.spec.d.ts +0 -1
  802. package/lib/components/slider/Slider.vue.js +0 -7
  803. package/lib/components/slider/Slider.vue2.js +0 -103
  804. package/lib/components/slider/Slider.vue3.js +0 -4
  805. package/lib/components/slider/__tests__/Slider.spec.d.ts +0 -1
  806. package/lib/components/spacer/__tests__/Spacer.spec.d.ts +0 -1
  807. package/lib/components/spinner/Spinner.vue.js +0 -27
  808. package/lib/components/spinner/Spinner.vue2.js +0 -4
  809. package/lib/components/spinner/__tests__/Spinner.spec.d.ts +0 -1
  810. package/lib/components/stepper/Stepper.vue.js +0 -129
  811. package/lib/components/stepper/Stepper.vue2.js +0 -4
  812. package/lib/components/stepper/__tests__/Stepper.spec.d.ts +0 -1
  813. package/lib/components/tab/Tab.vue.js +0 -150
  814. package/lib/components/tab/Tab.vue2.js +0 -4
  815. package/lib/components/tab/TabGroup.vue.js +0 -135
  816. package/lib/components/tab/TabGroup.vue2.js +0 -4
  817. package/lib/components/tab/__tests__/Tab.spec.d.ts +0 -1
  818. package/lib/components/tab/__tests__/TabGroup.spec.d.ts +0 -1
  819. package/lib/components/table/Table.vue.js +0 -424
  820. package/lib/components/table/Table.vue2.js +0 -4
  821. package/lib/components/table/TableCell.vue.js +0 -65
  822. package/lib/components/table/TableCell.vue2.js +0 -4
  823. package/lib/components/table/TableHead.vue.js +0 -24
  824. package/lib/components/table/TableHead.vue2.js +0 -4
  825. package/lib/components/table/TableHeader.vue.js +0 -82
  826. package/lib/components/table/TableHeader.vue2.js +0 -4
  827. package/lib/components/table/TableRow.vue.js +0 -30
  828. package/lib/components/table/TableRow.vue2.js +0 -4
  829. package/lib/components/table/__tests__/Table.spec.d.ts +0 -1
  830. package/lib/components/tag/Tag.vue.js +0 -73
  831. package/lib/components/tag/Tag.vue2.js +0 -4
  832. package/lib/components/tag/__tests__/Tag.spec.d.ts +0 -1
  833. package/lib/components/textarea/Textarea.vue.js +0 -141
  834. package/lib/components/textarea/Textarea.vue2.js +0 -4
  835. package/lib/components/textarea/__tests__/Textarea.spec.d.ts +0 -1
  836. package/lib/components/themeProvider/ThemeProvider.vue.js +0 -18
  837. package/lib/components/themeProvider/ThemeProvider.vue2.js +0 -4
  838. package/lib/components/toggle/Toggle.vue.js +0 -108
  839. package/lib/components/toggle/Toggle.vue2.js +0 -4
  840. package/lib/components/toggle/__tests__/Toggle.spec.d.ts +0 -1
  841. package/lib/components/tooltip/ToggleTip.vue.js +0 -29
  842. package/lib/components/tooltip/ToggleTip.vue2.js +0 -4
  843. package/lib/components/tooltip/Tooltip.vue.js +0 -132
  844. package/lib/components/tooltip/Tooltip.vue2.js +0 -4
  845. package/lib/components/tooltip/__tests__/ToggleTip.spec.d.ts +0 -1
  846. package/lib/components/tooltip/__tests__/Tooltip.spec.d.ts +0 -1
  847. package/lib/components/upload/Upload.vue.js +0 -275
  848. package/lib/components/upload/Upload.vue2.js +0 -4
  849. package/lib/components/upload/__tests__/Upload.spec.d.ts +0 -1
  850. package/lib/node_modules/.pnpm/@vuepic_vue-datepicker@11.0.2_vue@3.5.10_typescript@5.2.2_/node_modules/@vuepic/vue-datepicker/dist/main.css.js +0 -4
  851. package/lib/node_modules/.pnpm/@vuepic_vue-datepicker@11.0.2_vue@3.5.10_typescript@5.2.2_/node_modules/@vuepic/vue-datepicker/dist/vue-datepicker.js +0 -5210
  852. package/lib/node_modules/.pnpm/@vueuse_core@11.1.0_vue@3.5.10_typescript@5.2.2_/node_modules/@vueuse/core/index.js +0 -501
  853. package/lib/node_modules/.pnpm/@vueuse_shared@11.1.0_vue@3.5.10_typescript@5.2.2_/node_modules/@vueuse/shared/index.js +0 -96
  854. package/lib/node_modules/.pnpm/floating-vue@5.2.2_@nuxt_kit@3.10.1_rollup@3.29.4__vue@3.5.10_typescript@5.2.2_/node_modules/floating-vue/dist/floating-vue.js +0 -1371
  855. package/lib/tailwind.preset.js +0 -40
  856. package/lib/virtual/components/infiniteLoader/InfiniteLoader.vue.js +0 -21
  857. package/lib/virtual/components/infiniteLoader/InfiniteLoader.vue2.js +0 -4
  858. package/lib/virtual/components/virtualGrid/VirtualGrid.vue.js +0 -241
  859. package/lib/virtual/components/virtualGrid/VirtualGrid.vue2.js +0 -4
  860. package/lib/virtual/components/virtualList/VirtualList.vue.js +0 -159
  861. package/lib/virtual/components/virtualList/VirtualList.vue2.js +0 -4
@@ -1,4 +1,6 @@
1
1
  <script lang="ts">
2
+ import { optionalBooleanProp } from '../../common/props'
3
+
2
4
  const tagProps = {
3
5
  ...useCommon.props(),
4
6
  ...useColors.props('secondary'),
@@ -6,10 +8,10 @@ const tagProps = {
6
8
  type: String,
7
9
  default: 'span',
8
10
  },
9
- rounded: Boolean,
10
- removable: Boolean,
11
- outlined: Boolean,
12
- filled: Boolean,
11
+ rounded: optionalBooleanProp(),
12
+ removable: optionalBooleanProp(),
13
+ outlined: optionalBooleanProp(),
14
+ filled: optionalBooleanProp(),
13
15
  disabled: Boolean,
14
16
  to: [String, Object],
15
17
  }
@@ -32,11 +34,13 @@ import { computed, useAttrs, type ExtractPublicPropTypes } from 'vue'
32
34
  import { useColors } from '../../composables/useColors'
33
35
  import { useCommon } from '../../composables/useCommon'
34
36
  import { useTheme, type ThemeComponent } from '../../composables/useTheme'
37
+ import { useResolvedComponentProps } from '../../composables/resolveComponentDefaults'
35
38
  import { closeIcon } from '../../common/icons'
36
39
 
37
40
  import XIcon from '../icon/Icon.vue'
38
41
 
39
42
  const props = defineProps(tagProps)
43
+ const resolvedProps = useResolvedComponentProps('Tag', props)
40
44
 
41
45
  defineEmits(['remove'])
42
46
 
@@ -65,15 +69,15 @@ const { styles, classes, className } = useTheme('Tag', {}, props)
65
69
  [
66
70
  className,
67
71
  classes.wrapper,
68
- outlined ?
72
+ resolvedProps.outlined ?
69
73
  'border-[color:var(--x-tag-border)] dark:border-[color:var(--x-tag-dark-border)]' :
70
74
  '!border-transparent bg-[color:var(--x-tag-bg)] dark:bg-[color:var(--x-tag-dark-bg)]',
71
- rounded ? 'rounded-full' : 'rounded'
75
+ resolvedProps.rounded ? 'rounded-full' : 'rounded'
72
76
  ]"
73
77
  >
74
78
  <span
75
79
  class="max-w-full"
76
- :class="{'pr-4': removable }"
80
+ :class="{'pr-4': resolvedProps.removable }"
77
81
  >
78
82
  <div class="flex items-center gap-2">
79
83
  <slot name="prefix"></slot>
@@ -83,7 +87,7 @@ const { styles, classes, className } = useTheme('Tag', {}, props)
83
87
  </div>
84
88
  </div>
85
89
 
86
- <div v-if="removable" class="absolute right-1.5 top-0 h-full flex items-center">
90
+ <div v-if="resolvedProps.removable" class="absolute right-1.5 top-0 h-full flex items-center">
87
91
  <x-icon
88
92
  :size="closeIconSize"
89
93
  :icon="closeIcon"
@@ -1,4 +1,6 @@
1
1
  <script lang="ts">
2
+ import { optionalBooleanProp } from '../../common/props'
3
+
2
4
  const textareaProps = {
3
5
  ...useCommon.props(),
4
6
  ...useInteractive.props(),
@@ -16,18 +18,18 @@ const textareaProps = {
16
18
  min: [Number, String],
17
19
  minlength: [Number, String],
18
20
  placeholder: String,
19
- adjustToText: Boolean,
20
- preventEnter: Boolean,
21
- block: Boolean,
22
- resizable: Boolean,
23
- showCounter: Boolean,
24
- clearable: Boolean,
21
+ adjustToText: optionalBooleanProp(),
22
+ preventEnter: optionalBooleanProp(),
23
+ block: optionalBooleanProp(),
24
+ resizable: optionalBooleanProp(),
25
+ showCounter: optionalBooleanProp(),
26
+ clearable: optionalBooleanProp(),
25
27
  }
26
28
 
27
29
  export type TextareaProps = ExtractPublicPropTypes<typeof textareaProps>
28
30
 
29
- type InternalClasses = 'wrapper' | 'input' | 'icon'
30
- type InternalExtraData = { errorInternal: Ref<boolean>; }
31
+ type InternalClasses = 'wrapper' | 'input' | 'icon' | 'adornment' | 'adornmentStart' | 'adornmentEnd' | 'adornmentIcon' | 'adornmentSlot'
32
+ type InternalExtraData = { errorInternal: Ref<boolean>; isInsideInputGroup: boolean; inputGroupPosition: import('../../common/inputGroupRadius').InputGroupPosition | undefined; }
31
33
 
32
34
  export interface TextareaTheme extends ThemeComponent<TextareaProps, InternalClasses, InternalExtraData> {}
33
35
 
@@ -40,7 +42,7 @@ export default {
40
42
  </script>
41
43
 
42
44
  <script setup lang="ts">
43
- import { ref, watch, type ExtractPublicPropTypes, type Ref, useAttrs, computed } from 'vue'
45
+ import { ref, inject, watch, type ExtractPublicPropTypes, type Ref, useAttrs, computed, useSlots } from 'vue'
44
46
  import { useResizeObserver, useEventListener } from '@vueuse/core'
45
47
  import { useCSS } from '../../composables/useCSS'
46
48
  import { useTheme, type ThemeComponent } from '../../composables/useTheme'
@@ -48,6 +50,8 @@ import { useCommon } from '../../composables/useCommon'
48
50
  import { useColors } from '../../composables/useColors'
49
51
  import { useInputtable } from '../../composables/useInputtable'
50
52
  import { useInteractive } from '../../composables/useInteractive'
53
+ import type { Size } from '../../composables/useCommon'
54
+ import { injectInputGroupKey } from '../../composables/keys'
51
55
 
52
56
  import XLabel from '../label/Label.vue'
53
57
  import XInputFooter from '../inputFooter/InputFooter.vue'
@@ -56,6 +60,17 @@ import { closeIcon } from '../../common/icons'
56
60
 
57
61
  const props = defineProps(textareaProps)
58
62
 
63
+ const inputGroup = inject(injectInputGroupKey, {
64
+ registerChild: () => {},
65
+ unregisterChild: () => {},
66
+ registerInput: () => {},
67
+ unregisterInput: () => {},
68
+ getPosition: () => 'only',
69
+ childOrder: computed(() => []),
70
+ isInsideInputGroup: false,
71
+ groupProps: {},
72
+ })
73
+
59
74
  const emit = defineEmits(useInputtable.emits())
60
75
 
61
76
  const attrs = useAttrs()
@@ -104,13 +119,26 @@ const { focus, blur } = useInteractive(elRef)
104
119
  const {
105
120
  errorInternal,
106
121
  hideFooterInternal,
122
+ hideLabelInternal,
107
123
  isInsideForm,
124
+ isInsideInputGroup,
125
+ inputGroupPosition,
108
126
  inputListeners,
109
127
  reset,
110
128
  validate,
111
129
  setError,
112
130
  } = useInputtable(props, { focus, emit })
113
131
 
132
+ const computedSize = computed((): Size => inputGroup.groupProps?.size ?? props.size)
133
+ const isDisabled = computed(() => props.disabled || !!inputGroup.groupProps?.disabled)
134
+ const computedLabel = computed(() => (hideLabelInternal.value ? undefined : props.label))
135
+
136
+ const themeProps = computed(() => ({
137
+ ...props,
138
+ size: computedSize.value,
139
+ disabled: isDisabled.value,
140
+ }))
141
+
114
142
  const currentLength = computed(() => {
115
143
  const value = props.modelValue
116
144
 
@@ -119,13 +147,33 @@ const currentLength = computed(() => {
119
147
 
120
148
  const showClearIcon = computed(() => props.clearable && props.modelValue !== '')
121
149
 
150
+ const slots = useSlots()
151
+ const hasPrefixSlot = computed(() => !!slots.prefix)
152
+ const hasSuffixSlot = computed(() => !!slots.suffix)
153
+ const hasRightAdornment = computed(() => hasSuffixSlot.value || showClearIcon.value)
154
+
155
+ const leftPaddingClass = computed(() => (hasPrefixSlot.value ? '!pl-10' : ''))
156
+
157
+ const rightPaddingClass = computed(() => {
158
+ const units = (showClearIcon.value ? 1 : 0) + (hasSuffixSlot.value ? 1 : 0)
159
+
160
+ if (units >= 2) return '!pr-16'
161
+ if (units === 1) return '!pr-10'
162
+
163
+ return ''
164
+ })
165
+
122
166
  function isEmpty(value: typeof props.modelValue) {
123
167
  if (typeof value === 'undefined' || value === null) return true
124
168
 
125
169
  return false
126
170
  }
127
171
 
128
- const { styles, classes, className } = useTheme('Textarea', {}, props, { errorInternal })
172
+ const { styles, classes, className } = useTheme('Textarea', {}, themeProps, {
173
+ errorInternal,
174
+ isInsideInputGroup,
175
+ inputGroupPosition,
176
+ })
129
177
 
130
178
  defineExpose({ focus, blur, reset, validate, setError })
131
179
  </script>
@@ -134,10 +182,11 @@ defineExpose({ focus, blur, reset, validate, setError })
134
182
  <x-label
135
183
  :style="styles"
136
184
  :block="block"
137
- :disabled="disabled"
185
+ :disabled="isDisabled"
138
186
  :required="required"
139
187
  :is-inside-form="isInsideForm"
140
- :label="label"
188
+ :is-inside-input-group="isInsideInputGroup"
189
+ :label="computedLabel"
141
190
  :class="[
142
191
  className,
143
192
  classes.wrapper,
@@ -145,7 +194,15 @@ defineExpose({ focus, blur, reset, validate, setError })
145
194
  :tooltip="tooltip"
146
195
  >
147
196
  <div class="relative">
148
- <slot name="prefix"></slot>
197
+ <div
198
+ v-if="hasPrefixSlot"
199
+ :class="[classes.adornment, classes.adornmentStart]"
200
+ >
201
+ <div :class="classes.adornmentSlot">
202
+ <slot name="prefix" ></slot>
203
+ </div>
204
+ </div>
205
+
149
206
  <textarea
150
207
  :id="id"
151
208
  ref="elRef"
@@ -156,8 +213,10 @@ defineExpose({ focus, blur, reset, validate, setError })
156
213
  errorInternal
157
214
  ? 'border-error-500 dark:border-error-400 focus:outline-error-500'
158
215
  : 'focus:outline-[color:var(--x-textarea-border)]',
216
+ leftPaddingClass,
217
+ rightPaddingClass,
159
218
  ]"
160
- :disabled="disabled"
219
+ :disabled="isDisabled"
161
220
  :max="max"
162
221
  :maxlength="maxlength"
163
222
  :min="min"
@@ -174,16 +233,21 @@ defineExpose({ focus, blur, reset, validate, setError })
174
233
  @input="onInput"
175
234
  ></textarea>
176
235
 
177
- <slot name="suffix">
236
+ <div
237
+ v-if="hasRightAdornment"
238
+ :class="[classes.adornment, classes.adornmentEnd]"
239
+ >
240
+ <div v-if="hasSuffixSlot" :class="classes.adornmentSlot">
241
+ <slot name="suffix" ></slot>
242
+ </div>
178
243
  <x-icon
179
244
  v-if="showClearIcon"
180
- :size="size"
245
+ :size="computedSize"
181
246
  :icon="closeIcon"
182
- class="right-2 cursor-pointer"
183
- :class="classes.icon"
247
+ :class="[classes.adornmentIcon, 'cursor-pointer']"
184
248
  @click="reset()"
185
249
  />
186
- </slot>
250
+ </div>
187
251
  </div>
188
252
 
189
253
  <x-input-footer
@@ -1,11 +1,15 @@
1
1
  import type { TextareaTheme } from '../Textarea.vue'
2
+ import { inputGroupRadiusClasses } from '../../../common/inputGroupRadius'
2
3
 
3
4
  const theme: TextareaTheme = {
4
5
  classes: {
5
6
  wrapper: '',
6
7
 
7
8
  input: ({ props, data }) => {
8
- const classes = ['appearance-none block w-full placeholder-secondary-400 dark:placeholder-secondary-500 outline-transparent outline outline-2 outline-offset-[-1px] transition duration-150 ease-in-out border-secondary-300 dark:border-secondary-700 border shadow-sm rounded-md']
9
+ const classes = ['appearance-none block w-full placeholder-secondary-400 dark:placeholder-secondary-500 outline-transparent outline outline-2 outline-offset-[-1px] transition duration-150 ease-in-out border-secondary-300 dark:border-secondary-700 border shadow-xs']
10
+
11
+ if (!data.isInsideInputGroup) classes.push('rounded-md')
12
+ else classes.push(...inputGroupRadiusClasses(data.inputGroupPosition))
9
13
 
10
14
  if (!props.resizable) classes.push('resize-none')
11
15
  if (!data.errorInternal && !props.disabled) classes.push('hover:border-secondary-400 dark:hover:border-secondary-500')
@@ -24,6 +28,11 @@ const theme: TextareaTheme = {
24
28
  },
25
29
 
26
30
  icon: 'text-secondary-600 dark:text-secondary-300 absolute my-auto inset-y-0',
31
+ adornment: 'absolute inset-y-0 z-10 flex items-center gap-1.5 pointer-events-none',
32
+ adornmentStart: 'left-0 pl-2',
33
+ adornmentEnd: 'right-0 pr-2 top-2 items-start',
34
+ adornmentIcon: 'shrink-0 text-secondary-600 dark:text-secondary-300 pointer-events-auto',
35
+ adornmentSlot: 'shrink-0 pointer-events-auto text-secondary-600 dark:text-secondary-300 text-sm',
27
36
  },
28
37
  }
29
38
 
@@ -25,6 +25,11 @@ const theme: TextareaTheme = {
25
25
  },
26
26
 
27
27
  icon: 'text-secondary-600 dark:text-secondary-300 absolute my-auto inset-y-0',
28
+ adornment: 'absolute inset-y-0 z-10 flex items-center gap-1.5 pointer-events-none',
29
+ adornmentStart: 'left-0 pl-2',
30
+ adornmentEnd: 'right-0 pr-2 top-2 items-start',
31
+ adornmentIcon: 'shrink-0 text-secondary-600 dark:text-secondary-300 pointer-events-auto',
32
+ adornmentSlot: 'shrink-0 pointer-events-auto text-secondary-600 dark:text-secondary-300 text-sm',
28
33
  },
29
34
  }
30
35
 
@@ -1,10 +1,12 @@
1
1
  <script lang="ts">
2
+ import { optionalBooleanProp } from '../../common/props'
3
+
2
4
  const toggleProps = {
3
5
  ...useCommon.props(),
4
6
  ...useColors.props('primary'),
5
7
  ...useInteractive.props(),
6
8
  ...useInputtable.props(),
7
- glow: Boolean,
9
+ glow: optionalBooleanProp(),
8
10
  }
9
11
 
10
12
  export type ToggleProps = ExtractPublicPropTypes<typeof toggleProps>
@@ -1,4 +1,6 @@
1
1
  <script lang="ts">
2
+ import { optionalBooleanProp } from '../../common/props'
3
+
2
4
  const validators = {
3
5
  ...useCommon.validators(),
4
6
  variant: ['box'] as const,
@@ -8,7 +10,7 @@ const uploadProps = {
8
10
  ...useInputtable.props(),
9
11
  placeholder: String,
10
12
  accept: String,
11
- multiple: Boolean,
13
+ multiple: optionalBooleanProp(),
12
14
  maxFiles: [Number, String],
13
15
  maxFileSize: [Number, String],
14
16
  variant: {
@@ -24,7 +26,7 @@ const uploadProps = {
24
26
  type: String as PropType<'POST' | 'PUT'>,
25
27
  default: 'POST',
26
28
  },
27
- withCredentials: Boolean,
29
+ withCredentials: optionalBooleanProp(),
28
30
  fileFormDataName: {
29
31
  type: String,
30
32
  default: 'file',
@@ -291,6 +293,7 @@ const {
291
293
  errorInternal,
292
294
  hideFooterInternal,
293
295
  isInsideForm,
296
+ isInsideInputGroup,
294
297
  inputListeners,
295
298
  isFirstValidation,
296
299
  validate,
@@ -314,6 +317,7 @@ defineExpose({ focus, blur, reset, validate, setError })
314
317
  :disabled="disabled"
315
318
  :required="required"
316
319
  :is-inside-form="isInsideForm"
320
+ :is-inside-input-group="isInsideInputGroup"
317
321
  :label="label"
318
322
  :tooltip="tooltip"
319
323
  >
@@ -0,0 +1,139 @@
1
+ import { describe, it, expect } from 'vitest'
2
+ import { mount } from '@vue/test-utils'
3
+ import { resolvePropsWithDefaults } from '../resolveComponentDefaults'
4
+ import { injectOptionsKey, injectThemeKey } from '../keys'
5
+ import Alert from '../../components/alert/Alert.vue'
6
+ import Button from '../../components/button/Button.vue'
7
+ import Input from '../../components/input/Input.vue'
8
+ import type { InputProps } from '../../components/input/Input.vue'
9
+ import BaseTheme from '../../themes/base'
10
+
11
+ describe('resolvePropsWithDefaults', () => {
12
+ it('applies configured defaults when prop is undefined', () => {
13
+ const resolved = resolvePropsWithDefaults<{ type: string; outlined?: boolean; light?: boolean; }>(
14
+ { type: 'success' },
15
+ { outlined: true, light: true },
16
+ )
17
+
18
+ expect(resolved).toEqual({ type: 'success', outlined: true, light: true })
19
+ })
20
+
21
+ it('does not override explicit prop values', () => {
22
+ const resolved = resolvePropsWithDefaults(
23
+ { outlined: false },
24
+ { outlined: true },
25
+ )
26
+
27
+ expect(resolved.outlined).toBe(false)
28
+ })
29
+
30
+ it('returns props unchanged when no defaults configured', () => {
31
+ const props = { type: 'error' as const }
32
+
33
+ expect(resolvePropsWithDefaults(props, undefined)).toEqual(props)
34
+ })
35
+ })
36
+
37
+ describe('Alert with UI defaults', () => {
38
+ function mountAlert(props: Record<string, unknown> = {}, defaults?: Record<string, unknown>) {
39
+ return mount(Alert, {
40
+ props,
41
+ global: {
42
+ provide: {
43
+ [injectOptionsKey as symbol]: defaults ? { defaults: { Alert: defaults } } : {},
44
+ [injectThemeKey as symbol]: BaseTheme,
45
+ },
46
+ },
47
+ })
48
+ }
49
+
50
+ it('applies outlined default when prop is omitted (not coerced to false)', () => {
51
+ const wrapper = mountAlert(
52
+ { type: 'success', color: 'success' },
53
+ { outlined: true },
54
+ )
55
+
56
+ expect(wrapper.attributes('style')).toContain('transparent')
57
+ })
58
+
59
+ it('uses light and outlined defaults from injectOptionsKey', () => {
60
+ const wrapper = mountAlert(
61
+ { type: 'success', color: 'success' },
62
+ { outlined: true, light: true },
63
+ )
64
+
65
+ const style = wrapper.attributes('style') || ''
66
+
67
+ expect(style).toContain('#f0fdf4')
68
+ expect(style).toContain('#16a34a')
69
+ })
70
+
71
+ it('respects explicit outlined=false over defaults', () => {
72
+ const withDefaults = mountAlert(
73
+ { type: 'success', color: 'success' },
74
+ { outlined: true, light: true },
75
+ )
76
+ const explicit = mountAlert(
77
+ {
78
+ type: 'success',
79
+ color: 'success',
80
+ outlined: false,
81
+ light: true,
82
+ },
83
+ { outlined: true, light: true },
84
+ )
85
+
86
+ expect(withDefaults.attributes('style')).not.toBe(explicit.attributes('style'))
87
+ })
88
+ })
89
+
90
+ describe('Button with UI defaults', () => {
91
+ function mountButton(props: Record<string, unknown> = {}, defaults?: Record<string, unknown>) {
92
+ return mount(Button, {
93
+ props,
94
+ slots: { default: 'Save' },
95
+ global: {
96
+ provide: {
97
+ [injectOptionsKey as symbol]: defaults ? { defaults: { Button: defaults } } : {},
98
+ [injectThemeKey as symbol]: BaseTheme,
99
+ },
100
+ },
101
+ })
102
+ }
103
+
104
+ it('applies ghost default when prop is omitted', () => {
105
+ const withDefault = mountButton({ color: 'primary' }, { ghost: true })
106
+ const without = mountButton({ color: 'primary' })
107
+
108
+ expect(withDefault.classes().join(' ')).not.toContain('shadow-xs')
109
+ expect(without.classes().join(' ')).toContain('shadow-xs')
110
+ })
111
+
112
+ it('respects explicit ghost=false over defaults', () => {
113
+ const withDefault = mountButton({ color: 'primary' }, { ghost: true })
114
+ const explicit = mountButton({ color: 'primary', ghost: false }, { ghost: true })
115
+
116
+ expect(withDefault.classes().join(' ')).not.toContain('shadow-xs')
117
+ expect(explicit.classes().join(' ')).toContain('shadow-xs')
118
+ })
119
+ })
120
+
121
+ describe('Input with UI defaults', () => {
122
+ function mountInput(props: Partial<InputProps> = {}, defaults?: Partial<InputProps>) {
123
+ return mount(Input, {
124
+ props,
125
+ global: {
126
+ provide: {
127
+ [injectOptionsKey as symbol]: defaults ? { defaults: { Input: defaults } } : {},
128
+ [injectThemeKey as symbol]: BaseTheme,
129
+ },
130
+ },
131
+ })
132
+ }
133
+
134
+ it('applies block default when prop is omitted', () => {
135
+ const wrapper = mountInput({}, { block: true })
136
+
137
+ expect(wrapper.classes().join(' ')).toContain('w-full')
138
+ })
139
+ })
@@ -1,4 +1,5 @@
1
1
  export * from './keys'
2
+ export * from './resolveComponentDefaults'
2
3
  export * from './useCommon'
3
4
  export * from './useColors'
4
5
  export * from './useCSS'
@@ -5,6 +5,7 @@ import type { ButtonGroupInjection } from '../components/button/ButtonGroup.vue'
5
5
  import type { NotificationInjection } from '../components/notifications/Notifications.vue'
6
6
  import type { IconInjection } from '../components/icon/Icon.vue'
7
7
  import type { FormGroupInjection } from '../components/formGroup'
8
+ import type { InputGroupInjection } from '../components/inputGroup'
8
9
  import type { AccordionInjection } from '../components/accordion'
9
10
  import type { UIOptions } from '../create'
10
11
  import type { UITheme } from '../theme'
@@ -14,6 +15,7 @@ export const injectThemeKey = Symbol() as InjectionKey<MaybeRef<UITheme>>
14
15
  export const injectTabGroupKey = Symbol() as InjectionKey<TabGroupInjection>
15
16
  export const injectFormKey = Symbol() as InjectionKey<FormInjection>
16
17
  export const injectFormGroupKey = Symbol() as InjectionKey<FormGroupInjection>
18
+ export const injectInputGroupKey = Symbol() as InjectionKey<InputGroupInjection>
17
19
  export const injectIconsKey = Symbol() as InjectionKey<IconInjection>
18
20
  export const injectButtonGroupKey = Symbol() as InjectionKey<ButtonGroupInjection>
19
21
  export const injectNotificationKey = Symbol() as InjectionKey<NotificationInjection>
@@ -0,0 +1,33 @@
1
+ import { computed, inject, unref, type ComputedRef, type MaybeRef } from 'vue'
2
+ import { injectOptionsKey } from './keys'
3
+ import type { ComponentThemes } from '../theme'
4
+
5
+ export function resolvePropsWithDefaults<P extends object>(
6
+ props: P,
7
+ configured?: Partial<P>,
8
+ ): P {
9
+ if (!configured) return props
10
+
11
+ const resolved = { ...props } as Record<string, unknown>
12
+ const source = props as Record<string, unknown>
13
+
14
+ for (const key of Object.keys(configured)) {
15
+ if (source[key] === undefined) {
16
+ resolved[key] = configured[key as keyof P]
17
+ }
18
+ }
19
+
20
+ return resolved as P
21
+ }
22
+
23
+ export function useResolvedComponentProps<P extends object>(
24
+ namespace: keyof ComponentThemes,
25
+ props: MaybeRef<P>,
26
+ ): ComputedRef<P> {
27
+ const options = inject(injectOptionsKey, {})
28
+
29
+ return computed(() => resolvePropsWithDefaults(
30
+ unref(props),
31
+ options.defaults?.[namespace] as Partial<P> | undefined,
32
+ ))
33
+ }
@@ -1,17 +1,20 @@
1
1
  import type { MaybeRef, PropType } from 'vue'
2
2
  import { computed, inject, onMounted, onUnmounted, ref, watch } from 'vue'
3
- import { injectFormGroupKey, injectFormKey } from './keys'
3
+ import { injectFormGroupKey, injectFormKey, injectInputGroupKey } from './keys'
4
4
 
5
5
  export interface XFormInputMethods {
6
6
  focus: () => void;
7
- validate: (val: any) => boolean;
7
+ validate: (val?: any) => boolean;
8
8
  setError: (val: string) => void;
9
+ getError: () => string;
10
+ getValue: () => unknown;
9
11
  }
10
12
 
11
- export const useInputtable = (props: any, { focus, emit, withListeners = true }: { focus: () => void; emit: any; withListeners?: boolean; }) => {
13
+ export const useInputtable = (props: any, { focus, emit, withListeners = true, formValidate, formGroupJoined }: { focus: () => void; emit: any; withListeners?: boolean; formValidate?: () => boolean; formGroupJoined?: boolean; }) => {
12
14
  const isFirstValidation = ref(true)
13
15
  const errorInternal = ref(props.error)
14
16
  const hideFooterInternal = ref(props.hideFooter)
17
+ const hideLabelInternal = ref(false)
15
18
 
16
19
  const name = props.name ? props.name : (Math.random() + 1).toString(36).substring(7)
17
20
  const nameInternal = ref(name)
@@ -27,10 +30,34 @@ export const useInputtable = (props: any, { focus, emit, withListeners = true }:
27
30
  value: undefined,
28
31
  })
29
32
 
30
- if (formGroup.isInsideFormGroup) {
33
+ const inputGroup = inject(injectInputGroupKey, {
34
+ registerChild: () => {},
35
+ unregisterChild: () => {},
36
+ registerInput: () => {},
37
+ unregisterInput: () => {},
38
+ getPosition: () => 'only' as const,
39
+ childOrder: computed(() => []),
40
+ isInsideInputGroup: false,
41
+ groupProps: {},
42
+ })
43
+
44
+ const inputGroupPosition = computed(() => {
45
+ if (!inputGroup.isInsideInputGroup) return undefined
46
+
47
+ // Subscribe to sibling mount order so radius classes update after each child registers
48
+ void inputGroup.childOrder.value
49
+
50
+ return inputGroup.getPosition(nameInternal.value)
51
+ })
52
+
53
+ if (formGroup.isInsideFormGroup || inputGroup.isInsideInputGroup) {
31
54
  hideFooterInternal.value = true
32
55
  }
33
56
 
57
+ if (inputGroup.isInsideInputGroup) {
58
+ hideLabelInternal.value = true
59
+ }
60
+
34
61
  const form = inject(injectFormKey, {
35
62
  registerInput: () => {},
36
63
  unregisterInput: () => {},
@@ -48,7 +75,7 @@ export const useInputtable = (props: any, { focus, emit, withListeners = true }:
48
75
  }
49
76
 
50
77
  const validate = (val?: any): boolean => {
51
- val = val || props.modelValue
78
+ val = val === undefined ? props.modelValue : val
52
79
 
53
80
  isFirstValidation.value = false
54
81
 
@@ -116,10 +143,20 @@ export const useInputtable = (props: any, { focus, emit, withListeners = true }:
116
143
 
117
144
  onMounted(() => {
118
145
  if (formGroup.isInsideFormGroup) {
119
- formGroup.registerInputGroup(nameInternal.value, focus)
146
+ formGroup.registerInputGroup(nameInternal.value, focus, formGroupJoined ? { joined: true } : undefined)
120
147
  } else {
121
- if (!props.skipFormRegistry)
122
- form.registerInput(nameInternal.value, focus, validate, setError)
148
+ if (inputGroup.isInsideInputGroup) {
149
+ inputGroup.registerInput(nameInternal.value, {
150
+ focus,
151
+ validate,
152
+ setError,
153
+ getError: () => errorInternal.value,
154
+ getValue: () => props.modelValue,
155
+ })
156
+ }
157
+
158
+ if (!props.skipFormRegistry && !inputGroup.isInsideInputGroup)
159
+ form.registerInput(nameInternal.value, focus, formValidate ?? validate, setError)
123
160
  }
124
161
  })
125
162
 
@@ -127,7 +164,11 @@ export const useInputtable = (props: any, { focus, emit, withListeners = true }:
127
164
  if (formGroup.isInsideFormGroup) {
128
165
  formGroup.unregisterInputGroup(nameInternal.value)
129
166
  } else {
130
- if (!props.skipFormRegistry)
167
+ if (inputGroup.isInsideInputGroup) {
168
+ inputGroup.unregisterInput(nameInternal.value)
169
+ }
170
+
171
+ if (!props.skipFormRegistry && !inputGroup.isInsideInputGroup)
131
172
  form.unregisterInput(nameInternal.value)
132
173
  }
133
174
 
@@ -137,14 +178,20 @@ export const useInputtable = (props: any, { focus, emit, withListeners = true }:
137
178
  isFirstValidation,
138
179
  errorInternal,
139
180
  hideFooterInternal,
181
+ hideLabelInternal,
140
182
  isFocused,
141
183
  isInsideForm: props.skipFormRegistry ? false : form.isInsideForm,
142
184
  isInsideFormGroup: formGroup.isInsideFormGroup,
185
+ isInsideInputGroup: inputGroup.isInsideInputGroup,
186
+ inputGroupPosition,
187
+ nameInternal,
143
188
  inputListeners,
144
189
  formGroup,
190
+ inputGroup,
145
191
  reset,
146
192
  validate,
147
193
  setError,
194
+ getError: () => errorInternal.value,
148
195
  }
149
196
  }
150
197