@indielayer/ui 1.18.1 → 2.1.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 (979) hide show
  1. package/docs/App.vue +19 -4
  2. package/docs/assets/css/hljs.css +0 -1
  3. package/docs/assets/css/tailwind.css +40 -9
  4. package/docs/components/Cookies.vue +3 -1
  5. package/docs/components/common/CodePreview.vue +1 -1
  6. package/docs/components/common/CodeSnippet.vue +30 -18
  7. package/docs/components/common/DocsCopyPage.vue +200 -0
  8. package/docs/components/common/DocsHero.vue +3 -3
  9. package/docs/components/common/DocumentPage.vue +105 -50
  10. package/docs/components/common/ExampleBlocks.vue +147 -8
  11. package/docs/components/menu/DocsMenu.vue +3 -1
  12. package/docs/components/toolbar/PreToolbar.vue +1 -1
  13. package/docs/components/toolbar/Toolbar.vue +1 -1
  14. package/docs/components/toolbar/ToolbarColorToggle.vue +29 -18
  15. package/docs/components/toolbar/ToolbarSearch.vue +7 -7
  16. package/docs/composables/useDocMeta.ts +63 -4
  17. package/docs/icons.ts +3 -0
  18. package/docs/main.ts +26 -22
  19. package/docs/pages/colors.vue +11 -19
  20. package/docs/pages/component/accordion/index.vue +2 -2
  21. package/docs/pages/component/alert/index.vue +2 -2
  22. package/docs/pages/component/avatar/index.vue +4 -4
  23. package/docs/pages/component/badge/index.vue +2 -2
  24. package/docs/pages/component/breadcrumbs/index.vue +2 -2
  25. package/docs/pages/component/button/button-group.vue +3 -3
  26. package/docs/pages/component/button/index.vue +14 -7
  27. package/docs/pages/component/button/tooltip.vue +10 -0
  28. package/docs/pages/component/button/variants.vue +1 -1
  29. package/docs/pages/component/card/index.vue +2 -2
  30. package/docs/pages/component/carousel/index.vue +2 -2
  31. package/docs/pages/component/checkbox/index.vue +5 -5
  32. package/docs/pages/component/container/index.vue +2 -2
  33. package/docs/pages/component/datepicker/index.vue +2 -2
  34. package/docs/pages/component/divider/index.vue +4 -4
  35. package/docs/pages/component/drawer/index.vue +3 -3
  36. package/docs/pages/component/empty/actions.vue +11 -0
  37. package/docs/pages/component/empty/bordered.vue +7 -0
  38. package/docs/pages/component/empty/index.vue +43 -0
  39. package/docs/pages/component/empty/usage.vue +6 -0
  40. package/docs/pages/component/form/index.vue +2 -2
  41. package/docs/pages/component/form/usage.vue +36 -0
  42. package/docs/pages/component/formGroup/index.vue +3 -3
  43. package/docs/pages/component/icon/formats.vue +65 -0
  44. package/docs/pages/component/icon/index.vue +11 -4
  45. package/docs/pages/component/icon/usage.vue +52 -4
  46. package/docs/pages/component/image/index.vue +16 -2
  47. package/docs/pages/component/image/sizing.vue +42 -0
  48. package/docs/pages/component/image/states.vue +45 -0
  49. package/docs/pages/component/image/usage.vue +9 -6
  50. package/docs/pages/component/infiniteLoader/composable.vue +7 -5
  51. package/docs/pages/component/infiniteLoader/index.vue +3 -3
  52. package/docs/pages/component/infiniteLoader/usage.vue +7 -5
  53. package/docs/pages/component/input/index.vue +6 -6
  54. package/docs/pages/component/input/variants.vue +11 -0
  55. package/docs/pages/component/inputGroup/index.vue +43 -0
  56. package/docs/pages/component/inputGroup/mixed.vue +18 -0
  57. package/docs/pages/component/inputGroup/usage.vue +20 -0
  58. package/docs/pages/component/inputGroup/validation.vue +38 -0
  59. package/docs/pages/component/link/index.vue +2 -2
  60. package/docs/pages/component/loader/index.vue +2 -2
  61. package/docs/pages/component/menu/index.vue +2 -2
  62. package/docs/pages/component/modal/index.vue +3 -3
  63. package/docs/pages/component/notifications/index.vue +2 -2
  64. package/docs/pages/component/pagination/index.vue +2 -2
  65. package/docs/pages/component/popover/index.vue +2 -2
  66. package/docs/pages/component/popover/usage.vue +14 -0
  67. package/docs/pages/component/progress/index.vue +3 -3
  68. package/docs/pages/component/qrCode/index.vue +2 -2
  69. package/docs/pages/component/radio/index.vue +26 -12
  70. package/docs/pages/component/radio/payment-method.vue +28 -0
  71. package/docs/pages/component/radio/radio-button-form-group.vue +28 -0
  72. package/docs/pages/component/radio/radio-button.vue +26 -0
  73. package/docs/pages/component/scroll/index.vue +3 -3
  74. package/docs/pages/component/select/index.vue +5 -5
  75. package/docs/pages/component/skeleton/index.vue +2 -2
  76. package/docs/pages/component/skeleton/usage.vue +1 -1
  77. package/docs/pages/component/slider/index.vue +2 -2
  78. package/docs/pages/component/spacer/index.vue +2 -2
  79. package/docs/pages/component/spinner/index.vue +3 -3
  80. package/docs/pages/component/stepper/index.vue +9 -2
  81. package/docs/pages/component/stepper/usage.vue +56 -12
  82. package/docs/pages/component/stepper/wizard.vue +126 -0
  83. package/docs/pages/component/table/index.vue +5 -5
  84. package/docs/pages/component/table/states.vue +5 -3
  85. package/docs/pages/component/table/virtual.vue +1 -1
  86. package/docs/pages/component/tabs/index.vue +2 -2
  87. package/docs/pages/component/tabs/usage.vue +26 -0
  88. package/docs/pages/component/tag/index.vue +2 -2
  89. package/docs/pages/component/textarea/index.vue +4 -4
  90. package/docs/pages/component/toggle/index.vue +4 -4
  91. package/docs/pages/component/tooltip/content.vue +11 -0
  92. package/docs/pages/component/tooltip/index.vue +30 -2
  93. package/docs/pages/component/tooltip/placement.vue +18 -0
  94. package/docs/pages/component/tooltip/states.vue +5 -0
  95. package/docs/pages/component/tooltip/toggle-tip.vue +6 -0
  96. package/docs/pages/component/tooltip/usage.vue +8 -9
  97. package/docs/pages/component/upload/index.vue +2 -2
  98. package/docs/pages/component/upload/usage.vue +1 -0
  99. package/docs/pages/component/virtualGrid/index.vue +2 -2
  100. package/docs/pages/component/virtualGrid/usage.vue +5 -2
  101. package/docs/pages/component/virtualList/dynamicHeight.vue +8 -8
  102. package/docs/pages/component/virtualList/index.vue +3 -3
  103. package/docs/pages/component/virtualList/usage.vue +5 -2
  104. package/docs/pages/icons.vue +2 -2
  105. package/docs/pages/index.vue +30 -33
  106. package/docs/router/index.ts +39 -44
  107. package/docs/search/components.json +1 -1
  108. package/docs/search/index.json +1 -1
  109. package/docs/utils/shikiHighlighter.ts +22 -0
  110. package/exports/nuxt.mjs +1 -1
  111. package/exports/nuxt.plugin.js +1 -0
  112. package/exports/tailwind.css +74 -0
  113. package/lib/_virtual/_plugin-vue_export-helper.js +7 -8
  114. package/lib/_virtual/_rolldown/runtime.js +17 -0
  115. package/lib/common/buttonGroupRadius.d.ts +3 -0
  116. package/lib/common/buttonGroupRadius.js +6 -0
  117. package/lib/common/colors.js +370 -19
  118. package/lib/common/icons.d.ts +1 -0
  119. package/lib/common/icons.js +4 -22
  120. package/lib/common/inputGroupRadius.d.ts +2 -0
  121. package/lib/common/inputGroupRadius.js +6 -0
  122. package/lib/common/props.d.ts +27 -0
  123. package/lib/common/props.js +19 -0
  124. package/lib/common/utils.js +17 -24
  125. package/lib/componentDefaults.d.ts +18 -0
  126. package/lib/components/accordion/Accordion.js +5 -0
  127. package/lib/components/accordion/Accordion.vue.d.ts +45 -13
  128. package/lib/components/accordion/Accordion.vue_vue_type_script_setup_true_lang.js +49 -0
  129. package/lib/components/accordion/AccordionItem.js +5 -0
  130. package/lib/components/accordion/AccordionItem.vue.d.ts +36 -10
  131. package/lib/components/accordion/AccordionItem.vue_vue_type_script_setup_true_lang.js +163 -0
  132. package/lib/components/accordion/theme/Accordion.base.theme.js +4 -8
  133. package/lib/components/accordion/theme/Accordion.carbon.theme.js +4 -4
  134. package/lib/components/accordion/theme/AccordionItem.base.theme.js +14 -16
  135. package/lib/components/accordion/theme/AccordionItem.carbon.theme.js +4 -4
  136. package/lib/components/alert/Alert.js +6 -0
  137. package/lib/components/alert/Alert.vue.d.ts +39 -22
  138. package/lib/components/alert/Alert.vue_vue_type_script_setup_true_lang.js +68 -0
  139. package/lib/components/alert/Alert.vue_vue_type_style_index_0_lang.module.js +6 -0
  140. package/lib/components/alert/theme/Alert.base.theme.js +38 -40
  141. package/lib/components/alert/theme/Alert.carbon.theme.js +38 -40
  142. package/lib/components/avatar/Avatar.js +6 -0
  143. package/lib/components/avatar/Avatar.vue.d.ts +51 -17
  144. package/lib/components/avatar/Avatar.vue_vue_type_script_setup_true_lang.js +77 -0
  145. package/lib/components/avatar/Avatar.vue_vue_type_style_index_0_lang.module.js +3 -0
  146. package/lib/components/avatar/theme/Avatar.base.theme.js +17 -21
  147. package/lib/components/avatar/theme/Avatar.carbon.theme.js +4 -4
  148. package/lib/components/badge/Badge.js +5 -0
  149. package/lib/components/badge/Badge.vue.d.ts +60 -17
  150. package/lib/components/badge/Badge.vue_vue_type_script_setup_true_lang.js +93 -0
  151. package/lib/components/badge/theme/Badge.base.theme.js +9 -11
  152. package/lib/components/badge/theme/Badge.carbon.theme.js +4 -4
  153. package/lib/components/breadcrumbs/Breadcrumbs.js +5 -0
  154. package/lib/components/breadcrumbs/Breadcrumbs.vue.d.ts +36 -14
  155. package/lib/components/breadcrumbs/Breadcrumbs.vue_vue_type_script_setup_true_lang.js +70 -0
  156. package/lib/components/breadcrumbs/theme/Breadcrumbs.base.theme.js +8 -10
  157. package/lib/components/breadcrumbs/theme/Breadcrumbs.carbon.theme.js +7 -9
  158. package/lib/components/button/Button.js +6 -0
  159. package/lib/components/button/Button.vue.d.ts +161 -56
  160. package/lib/components/button/Button.vue_vue_type_script_setup_true_lang.js +261 -0
  161. package/lib/components/button/Button.vue_vue_type_style_index_0_scoped_486cb9c0_lang.module.js +6 -0
  162. package/lib/components/button/ButtonGroup.js +5 -0
  163. package/lib/components/button/ButtonGroup.vue.d.ts +75 -30
  164. package/lib/components/button/ButtonGroup.vue_vue_type_script_setup_true_lang.js +56 -0
  165. package/lib/components/button/theme/Button.base.theme.js +140 -140
  166. package/lib/components/button/theme/Button.carbon.theme.js +137 -137
  167. package/lib/components/button/theme/ButtonGroup.base.theme.js +4 -8
  168. package/lib/components/button/theme/ButtonGroup.carbon.theme.js +4 -8
  169. package/lib/components/card/Card.js +5 -0
  170. package/lib/components/card/Card.vue.d.ts +6 -4
  171. package/lib/components/card/Card.vue_vue_type_script_setup_true_lang.js +28 -0
  172. package/lib/components/card/theme/Card.base.theme.js +4 -8
  173. package/lib/components/card/theme/Card.carbon.theme.js +4 -4
  174. package/lib/components/carousel/Carousel.js +5 -0
  175. package/lib/components/carousel/Carousel.vue.d.ts +24 -7
  176. package/lib/components/carousel/Carousel.vue_vue_type_script_setup_true_lang.js +109 -0
  177. package/lib/components/carousel/CarouselSlide.js +6 -0
  178. package/lib/components/carousel/CarouselSlide.vue.d.ts +3 -0
  179. package/lib/components/carousel/CarouselSlide.vue_vue_type_script_setup_true_lang.js +28 -0
  180. package/lib/components/carousel/CarouselSlide.vue_vue_type_style_index_0_scoped_4f559831_lang.module.js +4 -0
  181. package/lib/components/carousel/theme/Carousel.base.theme.js +14 -16
  182. package/lib/components/carousel/theme/Carousel.carbon.theme.js +4 -4
  183. package/lib/components/carousel/theme/CarouselSlide.base.theme.js +4 -8
  184. package/lib/components/carousel/theme/CarouselSlide.carbon.theme.js +4 -4
  185. package/lib/components/checkbox/Checkbox.js +6 -0
  186. package/lib/components/checkbox/Checkbox.vue.d.ts +201 -49
  187. package/lib/components/checkbox/Checkbox.vue_vue_type_script_setup_true_lang.js +146 -0
  188. package/lib/components/checkbox/Checkbox.vue_vue_type_style_index_0_lang.module.js +4 -0
  189. package/lib/components/checkbox/theme/Checkbox.base.theme.js +58 -58
  190. package/lib/components/checkbox/theme/Checkbox.carbon.theme.js +58 -58
  191. package/lib/components/container/Container.js +5 -0
  192. package/lib/components/container/Container.vue.d.ts +6 -0
  193. package/lib/components/container/Container.vue_vue_type_script_setup_true_lang.js +31 -0
  194. package/lib/components/container/theme/Container.base.theme.js +7 -11
  195. package/lib/components/container/theme/Container.carbon.theme.js +4 -4
  196. package/lib/components/datepicker/Datepicker.js +6 -0
  197. package/lib/components/datepicker/Datepicker.vue.d.ts +471 -41
  198. package/lib/components/datepicker/Datepicker.vue_vue_type_script_setup_true_lang.js +779 -0
  199. package/lib/components/datepicker/theme/Datepicker.base.theme.js +26 -61
  200. package/lib/components/datepicker/theme/Datepicker.carbon.theme.js +4 -4
  201. package/lib/components/divider/Divider.js +5 -0
  202. package/lib/components/divider/Divider.vue.d.ts +16 -9
  203. package/lib/components/divider/Divider.vue_vue_type_script_setup_true_lang.js +47 -0
  204. package/lib/components/divider/theme/Divider.base.theme.js +8 -10
  205. package/lib/components/divider/theme/Divider.carbon.theme.js +4 -4
  206. package/lib/components/drawer/Drawer.js +5 -0
  207. package/lib/components/drawer/Drawer.vue.d.ts +39 -6
  208. package/lib/components/drawer/Drawer.vue_vue_type_script_setup_true_lang.js +172 -0
  209. package/lib/components/drawer/theme/Drawer.base.theme.js +7 -9
  210. package/lib/components/drawer/theme/Drawer.carbon.theme.js +4 -4
  211. package/lib/components/empty/Empty.js +5 -0
  212. package/lib/components/empty/Empty.vue.d.ts +86 -0
  213. package/lib/components/empty/Empty.vue_vue_type_script_setup_true_lang.js +80 -0
  214. package/lib/components/empty/index.d.ts +2 -0
  215. package/lib/components/empty/theme/Empty.base.theme.d.ts +3 -0
  216. package/lib/components/empty/theme/Empty.base.theme.js +20 -0
  217. package/lib/components/empty/theme/Empty.carbon.theme.d.ts +3 -0
  218. package/lib/components/empty/theme/Empty.carbon.theme.js +5 -0
  219. package/lib/components/form/Form.js +5 -0
  220. package/lib/components/form/Form.vue.d.ts +48 -9
  221. package/lib/components/form/Form.vue_vue_type_script_setup_true_lang.js +124 -0
  222. package/lib/components/form/theme/Form.base.theme.js +10 -12
  223. package/lib/components/form/theme/Form.carbon.theme.js +10 -12
  224. package/lib/components/formGroup/FormGroup.js +5 -0
  225. package/lib/components/formGroup/FormGroup.vue.d.ts +180 -41
  226. package/lib/components/formGroup/FormGroup.vue_vue_type_script_setup_true_lang.js +97 -0
  227. package/lib/components/formGroup/theme/FormGroup.base.theme.js +7 -11
  228. package/lib/components/formGroup/theme/FormGroup.carbon.theme.js +7 -11
  229. package/lib/components/icon/Icon.js +5 -0
  230. package/lib/components/icon/Icon.vue.d.ts +12 -4
  231. package/lib/components/icon/Icon.vue_vue_type_script_setup_true_lang.js +88 -0
  232. package/lib/components/icon/theme/Icon.base.theme.js +4 -11
  233. package/lib/components/icon/theme/Icon.carbon.theme.js +4 -11
  234. package/lib/components/image/Image.js +5 -0
  235. package/lib/components/image/Image.vue.d.ts +12 -3
  236. package/lib/components/image/Image.vue_vue_type_script_setup_true_lang.js +29 -0
  237. package/lib/components/image/theme/Image.base.theme.js +4 -8
  238. package/lib/components/image/theme/Image.carbon.theme.js +4 -4
  239. package/lib/components/index.d.ts +3 -0
  240. package/lib/components/index.js +128 -120
  241. package/lib/components/input/Input.js +5 -0
  242. package/lib/components/input/Input.vue.d.ts +308 -83
  243. package/lib/components/input/Input.vue_vue_type_script_setup_true_lang.js +276 -0
  244. package/lib/components/input/theme/Input.base.theme.js +22 -16
  245. package/lib/components/input/theme/Input.carbon.theme.js +21 -16
  246. package/lib/components/inputFooter/InputFooter.js +5 -0
  247. package/lib/components/inputFooter/InputFooter.vue.d.ts +52 -18
  248. package/lib/components/inputFooter/InputFooter.vue_vue_type_script_setup_true_lang.js +50 -0
  249. package/lib/components/inputFooter/theme/InputFooter.base.theme.js +10 -12
  250. package/lib/components/inputFooter/theme/InputFooter.carbon.theme.js +10 -12
  251. package/lib/components/inputGroup/InputGroup.js +5 -0
  252. package/lib/components/inputGroup/InputGroup.vue.d.ts +296 -0
  253. package/lib/components/inputGroup/InputGroup.vue_vue_type_script_setup_true_lang.js +125 -0
  254. package/lib/components/inputGroup/index.d.ts +2 -0
  255. package/lib/components/inputGroup/theme/InputGroup.base.theme.d.ts +3 -0
  256. package/lib/components/inputGroup/theme/InputGroup.base.theme.js +4 -0
  257. package/lib/components/inputGroup/theme/InputGroup.carbon.theme.d.ts +3 -0
  258. package/lib/components/inputGroup/theme/InputGroup.carbon.theme.js +5 -0
  259. package/lib/components/label/Label.js +5 -0
  260. package/lib/components/label/Label.vue.d.ts +83 -20
  261. package/lib/components/label/Label.vue_vue_type_script_setup_true_lang.js +79 -0
  262. package/lib/components/label/theme/Label.base.theme.js +13 -15
  263. package/lib/components/label/theme/Label.carbon.theme.js +10 -12
  264. package/lib/components/link/Link.js +6 -0
  265. package/lib/components/link/Link.vue.d.ts +27 -15
  266. package/lib/components/link/Link.vue_vue_type_script_setup_true_lang.js +52 -0
  267. package/lib/components/link/Link.vue_vue_type_style_index_0_scoped_3ee61e03_lang.module.js +6 -0
  268. package/lib/components/link/theme/Link.base.theme.js +18 -24
  269. package/lib/components/link/theme/Link.carbon.theme.js +18 -24
  270. package/lib/components/loader/Loader.js +5 -0
  271. package/lib/components/loader/Loader.vue.d.ts +30 -6
  272. package/lib/components/loader/Loader.vue_vue_type_script_setup_true_lang.js +69 -0
  273. package/lib/components/loader/theme/Loader.base.theme.js +9 -11
  274. package/lib/components/loader/theme/Loader.carbon.theme.js +9 -11
  275. package/lib/components/menu/Menu.js +5 -0
  276. package/lib/components/menu/Menu.vue.d.ts +57 -17
  277. package/lib/components/menu/Menu.vue_vue_type_script_setup_true_lang.js +194 -0
  278. package/lib/components/menu/MenuItem.js +6 -0
  279. package/lib/components/menu/MenuItem.vue.d.ts +204 -53
  280. package/lib/components/menu/MenuItem.vue_vue_type_script_setup_true_lang.js +210 -0
  281. package/lib/components/menu/MenuItem.vue_vue_type_style_index_0_scoped_5aebaff3_lang.module.js +7 -0
  282. package/lib/components/menu/theme/Menu.base.theme.js +4 -8
  283. package/lib/components/menu/theme/Menu.carbon.theme.js +4 -4
  284. package/lib/components/menu/theme/MenuItem.base.theme.js +71 -75
  285. package/lib/components/menu/theme/MenuItem.carbon.theme.js +4 -4
  286. package/lib/components/modal/Modal.js +5 -0
  287. package/lib/components/modal/Modal.vue.d.ts +177 -39
  288. package/lib/components/modal/Modal.vue_vue_type_script_setup_true_lang.js +275 -0
  289. package/lib/components/modal/theme/Modal.base.theme.js +25 -27
  290. package/lib/components/modal/theme/Modal.carbon.theme.js +27 -29
  291. package/lib/components/notifications/Notifications.js +5 -0
  292. package/lib/components/notifications/Notifications.vue.d.ts +24 -0
  293. package/lib/components/notifications/Notifications.vue_vue_type_script_setup_true_lang.js +261 -0
  294. package/lib/components/notifications/theme/Notifications.base.theme.js +8 -10
  295. package/lib/components/notifications/theme/Notifications.carbon.theme.js +8 -10
  296. package/lib/components/pagination/Pagination.js +5 -0
  297. package/lib/components/pagination/Pagination.vue.d.ts +15 -4
  298. package/lib/components/pagination/Pagination.vue_vue_type_script_setup_true_lang.js +156 -0
  299. package/lib/components/pagination/PaginationItem.js +5 -0
  300. package/lib/components/pagination/PaginationItem.vue.d.ts +21 -7
  301. package/lib/components/pagination/PaginationItem.vue_vue_type_script_setup_true_lang.js +49 -0
  302. package/lib/components/pagination/theme/Pagination.base.theme.js +12 -12
  303. package/lib/components/pagination/theme/Pagination.carbon.theme.js +4 -4
  304. package/lib/components/pagination/theme/PaginationItem.base.theme.js +4 -8
  305. package/lib/components/pagination/theme/PaginationItem.carbon.theme.js +4 -4
  306. package/lib/components/popover/Popover.js +6 -0
  307. package/lib/components/popover/Popover.vue.d.ts +204 -45
  308. package/lib/components/popover/Popover.vue_vue_type_script_setup_true_lang.js +280 -0
  309. package/lib/components/popover/PopoverContainer.js +5 -0
  310. package/lib/components/popover/PopoverContainer.vue.d.ts +3 -0
  311. package/lib/components/popover/PopoverContainer.vue_vue_type_script_setup_true_lang.js +24 -0
  312. package/lib/components/popover/PopoverContentBoundary.js +5 -0
  313. package/lib/components/popover/PopoverContentBoundary.vue.d.ts +9 -0
  314. package/lib/components/popover/PopoverContentBoundary.vue_vue_type_script_setup_true_lang.js +18 -0
  315. package/lib/components/popover/theme/Popover.base.theme.js +7 -9
  316. package/lib/components/popover/theme/Popover.carbon.theme.js +4 -4
  317. package/lib/components/popover/theme/PopoverContainer.base.theme.js +4 -8
  318. package/lib/components/popover/theme/PopoverContainer.carbon.theme.js +4 -8
  319. package/lib/components/progress/Progress.js +5 -0
  320. package/lib/components/progress/Progress.vue.d.ts +15 -8
  321. package/lib/components/progress/Progress.vue_vue_type_script_setup_true_lang.js +41 -0
  322. package/lib/components/progress/theme/Progress.base.theme.js +13 -17
  323. package/lib/components/progress/theme/Progress.carbon.theme.js +4 -4
  324. package/lib/components/qrCode/QrCode.js +5 -0
  325. package/lib/components/qrCode/QrCode.vue.d.ts +24 -3
  326. package/lib/components/qrCode/QrCode.vue_vue_type_script_setup_true_lang.js +87 -0
  327. package/lib/components/qrCode/qrcodegen.js +766 -571
  328. package/lib/components/qrCode/theme/QrCode.base.theme.js +4 -8
  329. package/lib/components/qrCode/theme/QrCode.carbon.theme.js +4 -4
  330. package/lib/components/radio/Radio.js +6 -0
  331. package/lib/components/radio/Radio.vue.d.ts +189 -46
  332. package/lib/components/radio/Radio.vue_vue_type_script_setup_true_lang.js +124 -0
  333. package/lib/components/radio/Radio.vue_vue_type_style_index_0_lang.module.js +7 -0
  334. package/lib/components/radio/theme/Radio.base.theme.js +69 -69
  335. package/lib/components/radio/theme/Radio.carbon.theme.js +63 -63
  336. package/lib/components/radioButton/RadioButton.js +6 -0
  337. package/lib/components/radioButton/RadioButton.vue.d.ts +326 -0
  338. package/lib/components/radioButton/RadioButton.vue_vue_type_script_setup_true_lang.js +91 -0
  339. package/lib/components/radioButton/RadioButton.vue_vue_type_style_index_0_lang.module.js +6 -0
  340. package/lib/components/radioButton/index.d.ts +2 -0
  341. package/lib/components/radioButton/theme/RadioButton.base.theme.d.ts +3 -0
  342. package/lib/components/radioButton/theme/RadioButton.base.theme.js +110 -0
  343. package/lib/components/radioButton/theme/RadioButton.carbon.theme.d.ts +3 -0
  344. package/lib/components/radioButton/theme/RadioButton.carbon.theme.js +15 -0
  345. package/lib/components/scroll/Scroll.js +6 -0
  346. package/lib/components/scroll/Scroll.vue.d.ts +12 -12
  347. package/lib/components/scroll/Scroll.vue_vue_type_script_setup_true_lang.js +53 -0
  348. package/lib/components/scroll/Scroll.vue_vue_type_style_index_0_lang.module.js +12 -0
  349. package/lib/components/scroll/theme/Scroll.base.theme.js +4 -8
  350. package/lib/components/scroll/theme/Scroll.carbon.theme.js +4 -4
  351. package/lib/components/select/Select.js +5 -0
  352. package/lib/components/select/Select.vue.d.ts +714 -383
  353. package/lib/components/select/Select.vue_vue_type_script_setup_true_lang.js +583 -0
  354. package/lib/components/select/theme/Select.base.theme.js +26 -25
  355. package/lib/components/select/theme/Select.carbon.theme.js +23 -23
  356. package/lib/components/skeleton/Skeleton.js +5 -0
  357. package/lib/components/skeleton/Skeleton.vue.d.ts +6 -0
  358. package/lib/components/skeleton/Skeleton.vue_vue_type_script_setup_true_lang.js +33 -0
  359. package/lib/components/skeleton/theme/Skeleton.base.theme.js +7 -11
  360. package/lib/components/skeleton/theme/Skeleton.carbon.theme.js +4 -4
  361. package/lib/components/slider/Slider.js +7 -0
  362. package/lib/components/slider/Slider.vue.d.ts +180 -39
  363. package/lib/components/slider/Slider.vue_vue_type_script_setup_true_lang.js +117 -0
  364. package/lib/components/slider/theme/Slider.base.theme.js +17 -19
  365. package/lib/components/slider/theme/Slider.carbon.theme.js +4 -4
  366. package/lib/components/spacer/Spacer.js +9 -11
  367. package/lib/components/spinner/Spinner.js +5 -0
  368. package/lib/components/spinner/Spinner.vue.d.ts +6 -0
  369. package/lib/components/spinner/Spinner.vue_vue_type_script_setup_true_lang.js +25 -0
  370. package/lib/components/stepper/Stepper.js +5 -0
  371. package/lib/components/stepper/Stepper.vue.d.ts +242 -41
  372. package/lib/components/stepper/Stepper.vue_vue_type_script_setup_true_lang.js +425 -0
  373. package/lib/components/stepper/index.d.ts +1 -1
  374. package/lib/components/stepper/theme/Stepper.base.theme.js +33 -20
  375. package/lib/components/stepper/theme/Stepper.carbon.theme.js +4 -4
  376. package/lib/components/tab/Tab.js +5 -0
  377. package/lib/components/tab/Tab.vue.d.ts +113 -33
  378. package/lib/components/tab/Tab.vue_vue_type_script_setup_true_lang.js +210 -0
  379. package/lib/components/tab/TabGroup.js +5 -0
  380. package/lib/components/tab/TabGroup.vue.d.ts +53 -20
  381. package/lib/components/tab/TabGroup.vue_vue_type_script_setup_true_lang.js +166 -0
  382. package/lib/components/tab/theme/Tab.base.theme.js +13 -15
  383. package/lib/components/tab/theme/Tab.carbon.theme.js +16 -18
  384. package/lib/components/tab/theme/TabGroup.base.theme.js +30 -30
  385. package/lib/components/tab/theme/TabGroup.carbon.theme.js +30 -30
  386. package/lib/components/table/Table.js +5 -0
  387. package/lib/components/table/Table.vue.d.ts +94 -313
  388. package/lib/components/table/Table.vue_vue_type_script_setup_true_lang.js +440 -0
  389. package/lib/components/table/TableBody.js +9 -14
  390. package/lib/components/table/TableCell.js +5 -0
  391. package/lib/components/table/TableCell.vue.d.ts +60 -20
  392. package/lib/components/table/TableCell.vue_vue_type_script_setup_true_lang.js +96 -0
  393. package/lib/components/table/TableHead.js +5 -0
  394. package/lib/components/table/TableHead.vue.d.ts +4 -6
  395. package/lib/components/table/TableHead.vue_vue_type_script_setup_true_lang.js +18 -0
  396. package/lib/components/table/TableHeader.js +5 -0
  397. package/lib/components/table/TableHeader.vue.d.ts +21 -7
  398. package/lib/components/table/TableHeader.vue_vue_type_script_setup_true_lang.js +84 -0
  399. package/lib/components/table/TableRow.js +5 -0
  400. package/lib/components/table/TableRow.vue.d.ts +24 -15
  401. package/lib/components/table/TableRow.vue_vue_type_script_setup_true_lang.js +44 -0
  402. package/lib/components/table/theme/Table.base.theme.js +11 -13
  403. package/lib/components/table/theme/Table.carbon.theme.js +11 -13
  404. package/lib/components/table/theme/TableCell.base.theme.js +7 -11
  405. package/lib/components/table/theme/TableCell.carbon.theme.js +7 -11
  406. package/lib/components/table/theme/TableHead.base.theme.js +10 -12
  407. package/lib/components/table/theme/TableHead.carbon.theme.js +10 -12
  408. package/lib/components/table/theme/TableHeader.base.theme.js +14 -16
  409. package/lib/components/table/theme/TableHeader.carbon.theme.js +10 -12
  410. package/lib/components/table/theme/TableRow.base.theme.js +7 -11
  411. package/lib/components/table/theme/TableRow.carbon.theme.js +7 -11
  412. package/lib/components/tag/Tag.js +5 -0
  413. package/lib/components/tag/Tag.vue.d.ts +45 -22
  414. package/lib/components/tag/Tag.vue_vue_type_script_setup_true_lang.js +76 -0
  415. package/lib/components/tag/theme/Tag.base.theme.js +21 -23
  416. package/lib/components/tag/theme/Tag.carbon.theme.js +21 -23
  417. package/lib/components/textarea/Textarea.js +5 -0
  418. package/lib/components/textarea/Textarea.vue.d.ts +263 -83
  419. package/lib/components/textarea/Textarea.vue_vue_type_script_setup_true_lang.js +222 -0
  420. package/lib/components/textarea/theme/Textarea.base.theme.js +17 -13
  421. package/lib/components/textarea/theme/Textarea.carbon.theme.js +16 -13
  422. package/lib/components/themeProvider/ThemeProvider.js +5 -0
  423. package/lib/components/themeProvider/ThemeProvider.vue.d.ts +10 -4
  424. package/lib/components/themeProvider/ThemeProvider.vue_vue_type_script_setup_true_lang.js +20 -0
  425. package/lib/components/toggle/Toggle.js +5 -0
  426. package/lib/components/toggle/Toggle.vue.d.ts +177 -43
  427. package/lib/components/toggle/Toggle.vue_vue_type_script_setup_true_lang.js +105 -0
  428. package/lib/components/toggle/theme/Toggle.base.theme.js +23 -28
  429. package/lib/components/toggle/theme/Toggle.carbon.theme.js +4 -4
  430. package/lib/components/tooltip/ToggleTip.js +5 -0
  431. package/lib/components/tooltip/ToggleTip.vue.d.ts +24 -6
  432. package/lib/components/tooltip/ToggleTip.vue_vue_type_script_setup_true_lang.js +32 -0
  433. package/lib/components/tooltip/Tooltip.js +5 -0
  434. package/lib/components/tooltip/Tooltip.vue.d.ts +30 -6
  435. package/lib/components/tooltip/Tooltip.vue_vue_type_script_setup_true_lang.js +117 -0
  436. package/lib/components/tooltip/theme/Tooltip.base.theme.js +4 -8
  437. package/lib/components/tooltip/theme/Tooltip.carbon.theme.js +4 -4
  438. package/lib/components/upload/Upload.js +5 -0
  439. package/lib/components/upload/Upload.vue.d.ts +272 -66
  440. package/lib/components/upload/Upload.vue_vue_type_script_setup_true_lang.js +292 -0
  441. package/lib/components/upload/fileAccept.d.ts +6 -0
  442. package/lib/components/upload/fileAccept.js +17 -0
  443. package/lib/components/upload/theme/Upload.base.theme.js +4 -8
  444. package/lib/components/upload/theme/Upload.carbon.theme.js +4 -4
  445. package/lib/composables/index.d.ts +1 -0
  446. package/lib/composables/keys.d.ts +2 -0
  447. package/lib/composables/keys.js +4 -12
  448. package/lib/composables/resolveComponentDefaults.d.ts +4 -0
  449. package/lib/composables/resolveComponentDefaults.js +15 -0
  450. package/lib/composables/useCSS.js +29 -25
  451. package/lib/composables/useColors.d.ts +1 -0
  452. package/lib/composables/useColors.js +45 -51
  453. package/lib/composables/useCommon.d.ts +1 -0
  454. package/lib/composables/useCommon.js +16 -17
  455. package/lib/composables/useFocusTrap.js +50 -53
  456. package/lib/composables/useInputtable.d.ts +57 -12
  457. package/lib/composables/useInputtable.js +177 -113
  458. package/lib/composables/useInteractive.d.ts +13 -3
  459. package/lib/composables/useInteractive.js +24 -20
  460. package/lib/composables/useNotifications.js +8 -8
  461. package/lib/composables/useTheme.js +44 -56
  462. package/lib/composables/useVirtualList.d.ts +1 -2
  463. package/lib/composables/useVirtualList.js +120 -115
  464. package/lib/create.d.ts +2 -0
  465. package/lib/create.js +21 -24
  466. package/lib/index.d.ts +1 -0
  467. package/lib/index.js +87 -169
  468. package/lib/index.umd.js +56 -41
  469. package/lib/install.js +14 -18
  470. package/lib/node_modules/.pnpm/@floating-ui_core@1.5.3/node_modules/@floating-ui/core/dist/floating-ui.core.js +321 -489
  471. 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
  472. package/lib/node_modules/.pnpm/@floating-ui_utils@0.2.1/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +99 -115
  473. 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
  474. 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
  475. 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
  476. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/addLeadingZeros.js +5 -6
  477. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/defaultOptions.js +6 -6
  478. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/formatters.js +378 -513
  479. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/lightFormatters.js +42 -58
  480. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/format/longFormatters.js +39 -51
  481. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +7 -17
  482. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/normalizeDates.js +7 -10
  483. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/normalizeInterval.js +10 -7
  484. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/_lib/protectedTokens.js +19 -17
  485. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/add.js +10 -19
  486. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addDays.js +8 -9
  487. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addHours.js +7 -8
  488. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addMilliseconds.js +7 -8
  489. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addMonths.js +11 -20
  490. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addQuarters.js +6 -7
  491. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/addYears.js +6 -7
  492. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/compareAsc.js +7 -8
  493. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constants.js +6 -9
  494. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/constructFrom.js +6 -7
  495. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarDays.js +10 -15
  496. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInCalendarYears.js +7 -12
  497. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/differenceInYears.js +11 -16
  498. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachDayOfInterval.js +14 -19
  499. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/eachQuarterOfInterval.js +13 -19
  500. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfQuarter.js +7 -8
  501. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfWeek.js +8 -10
  502. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/endOfYear.js +7 -8
  503. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/format.js +57 -58
  504. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDay.js +6 -7
  505. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDayOfYear.js +9 -10
  506. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDaysInMonth.js +8 -9
  507. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getDefaultOptions.js +6 -7
  508. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getHours.js +6 -7
  509. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISODay.js +7 -8
  510. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeek.js +10 -11
  511. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getISOWeekYear.js +13 -14
  512. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getMinutes.js +6 -7
  513. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getMonth.js +6 -7
  514. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getQuarter.js +7 -8
  515. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getSeconds.js +6 -7
  516. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeek.js +10 -11
  517. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getWeekYear.js +14 -16
  518. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/getYear.js +6 -7
  519. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isAfter.js +6 -7
  520. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isBefore.js +6 -7
  521. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isDate.js +5 -6
  522. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isEqual.js +6 -7
  523. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isSameQuarter.js +8 -13
  524. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/isValid.js +7 -8
  525. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js +8 -8
  526. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js +16 -17
  527. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchFn.js +19 -28
  528. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js +17 -16
  529. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js +68 -69
  530. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js +31 -32
  531. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js +11 -11
  532. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/localize.js +200 -153
  533. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/match.js +123 -109
  534. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US.js +17 -18
  535. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/Parser.js +15 -21
  536. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/Setter.js +29 -40
  537. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/constants.js +29 -48
  538. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js +45 -48
  539. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js +45 -48
  540. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DateParser.js +63 -60
  541. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js +40 -50
  542. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayParser.js +61 -44
  543. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js +43 -48
  544. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/EraParser.js +24 -29
  545. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js +26 -20
  546. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js +14 -21
  547. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js +28 -31
  548. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js +30 -31
  549. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js +31 -32
  550. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js +29 -32
  551. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js +73 -98
  552. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js +27 -47
  553. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js +27 -47
  554. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js +39 -48
  555. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js +33 -39
  556. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js +76 -73
  557. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js +38 -47
  558. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js +47 -68
  559. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js +22 -31
  560. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/MonthParser.js +58 -70
  561. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js +57 -69
  562. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/SecondParser.js +22 -31
  563. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js +76 -73
  564. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js +58 -70
  565. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js +57 -69
  566. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js +14 -20
  567. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js +14 -20
  568. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers/YearParser.js +42 -48
  569. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/parsers.js +66 -66
  570. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse/_lib/utils.js +64 -93
  571. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/parse.js +61 -88
  572. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/set.js +9 -10
  573. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setDay.js +9 -11
  574. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setHours.js +7 -8
  575. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setISODay.js +9 -10
  576. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setISOWeek.js +8 -9
  577. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setMilliseconds.js +7 -8
  578. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setMinutes.js +7 -8
  579. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setMonth.js +11 -12
  580. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setSeconds.js +7 -8
  581. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setWeek.js +8 -9
  582. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/setYear.js +8 -9
  583. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfDay.js +7 -8
  584. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfISOWeek.js +9 -7
  585. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfISOWeekYear.js +9 -10
  586. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfMonth.js +7 -8
  587. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfQuarter.js +7 -8
  588. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfWeek.js +8 -10
  589. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfWeekYear.js +10 -12
  590. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/startOfYear.js +7 -8
  591. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/sub.js +9 -18
  592. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subDays.js +6 -7
  593. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subMonths.js +6 -7
  594. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/subYears.js +6 -7
  595. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/toDate.js +6 -7
  596. package/lib/node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/transpose.js +9 -16
  597. 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
  598. 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
  599. package/lib/nuxt.mjs +1 -1
  600. package/lib/nuxt.plugin.js +1 -0
  601. package/lib/tailwind.css +74 -0
  602. package/lib/theme.d.ts +4 -1
  603. package/lib/theme.js +12 -13
  604. package/lib/themes/base/components.d.ts +3 -0
  605. package/lib/themes/base/components.js +118 -108
  606. package/lib/themes/base/index.js +10 -10
  607. package/lib/themes/base/styles.d.ts +1 -1
  608. package/lib/themes/base/styles.js +4 -91
  609. package/lib/themes/carbon/components.d.ts +3 -0
  610. package/lib/themes/carbon/components.js +118 -108
  611. package/lib/themes/carbon/index.js +23 -13
  612. package/lib/themes/carbon/styles.d.ts +1 -1
  613. package/lib/themes/carbon/styles.js +4 -87
  614. package/lib/version.d.ts +1 -1
  615. package/lib/version.js +4 -4
  616. package/lib/virtual/components/infiniteLoader/InfiniteLoader.js +5 -0
  617. package/lib/virtual/components/infiniteLoader/InfiniteLoader.vue.d.ts +27 -16
  618. package/lib/virtual/components/infiniteLoader/InfiniteLoader.vue_vue_type_script_setup_true_lang.js +38 -0
  619. package/lib/virtual/components/virtualGrid/VirtualGrid.js +5 -0
  620. package/lib/virtual/components/virtualGrid/VirtualGrid.vue.d.ts +108 -86
  621. package/lib/virtual/components/virtualGrid/VirtualGrid.vue_vue_type_script_setup_true_lang.js +264 -0
  622. package/lib/virtual/components/virtualList/VirtualList.js +5 -0
  623. package/lib/virtual/components/virtualList/VirtualList.vue.d.ts +62 -48
  624. package/lib/virtual/components/virtualList/VirtualList.vue_vue_type_script_setup_true_lang.js +190 -0
  625. package/lib/virtual/components/virtualList/isDynamicRowHeight.js +5 -5
  626. package/lib/virtual/components/virtualList/useDynamicRowHeight.js +59 -67
  627. package/lib/virtual/composables/infinite-loader/scanForUnloadedIndices.js +26 -40
  628. package/lib/virtual/composables/infinite-loader/useInfiniteLoader.js +30 -41
  629. package/lib/virtual/core/createCachedBounds.js +40 -54
  630. package/lib/virtual/core/getEstimatedSize.js +11 -21
  631. package/lib/virtual/core/getOffsetForIndex.js +17 -39
  632. package/lib/virtual/core/getStartStopIndices.js +21 -30
  633. package/lib/virtual/core/useCachedBounds.js +10 -16
  634. package/lib/virtual/core/useIsRtl.js +10 -14
  635. package/lib/virtual/core/useItemSize.js +15 -26
  636. package/lib/virtual/core/useVirtualizer.js +145 -170
  637. package/lib/virtual/utils/adjustScrollOffsetForRtl.js +15 -23
  638. package/lib/virtual/utils/assert.js +5 -6
  639. package/lib/virtual/utils/getRTLOffsetType.js +12 -12
  640. package/lib/virtual/utils/getScrollbarSize.js +10 -10
  641. package/lib/virtual/utils/isRtl.js +10 -11
  642. package/lib/virtual/utils/parseNumericStyleValue.js +10 -14
  643. package/lib/virtual/utils/shallowCompare.js +9 -13
  644. package/package.json +23 -23
  645. package/src/common/__tests__/inputGroupRadius.spec.ts +14 -0
  646. package/src/common/buttonGroupRadius.ts +16 -0
  647. package/src/common/icons.ts +1 -0
  648. package/src/common/inputGroupRadius.ts +11 -0
  649. package/src/common/props.ts +35 -0
  650. package/src/componentDefaults.ts +19 -0
  651. package/src/components/accordion/Accordion.vue +22 -4
  652. package/src/components/accordion/AccordionItem.vue +30 -3
  653. package/src/components/alert/Alert.vue +46 -26
  654. package/src/components/avatar/Avatar.vue +23 -6
  655. package/src/components/badge/Badge.vue +29 -6
  656. package/src/components/breadcrumbs/Breadcrumbs.vue +17 -5
  657. package/src/components/button/Button.vue +237 -59
  658. package/src/components/button/ButtonGroup.vue +47 -33
  659. package/src/components/button/__tests__/ Button.spec.ts +41 -0
  660. package/src/components/button/__tests__/ ButtonGroup.spec.ts +32 -0
  661. package/src/components/button/theme/Button.base.theme.ts +10 -2
  662. package/src/components/button/theme/Button.carbon.theme.ts +9 -2
  663. package/src/components/card/Card.vue +12 -2
  664. package/src/components/card/theme/Card.base.theme.ts +1 -1
  665. package/src/components/carousel/Carousel.vue +24 -2
  666. package/src/components/carousel/CarouselSlide.vue +7 -1
  667. package/src/components/checkbox/Checkbox.vue +28 -9
  668. package/src/components/checkbox/theme/Checkbox.carbon.theme.ts +1 -1
  669. package/src/components/container/Container.vue +10 -1
  670. package/src/components/datepicker/Datepicker.vue +498 -111
  671. package/src/components/datepicker/__tests__/Datepicker.spec.ts +31 -0
  672. package/src/components/divider/Divider.vue +11 -4
  673. package/src/components/divider/theme/Divider.base.theme.ts +2 -2
  674. package/src/components/drawer/Drawer.vue +27 -2
  675. package/src/components/empty/Empty.vue +101 -0
  676. package/src/components/empty/__tests__/Empty.spec.ts +11 -0
  677. package/src/components/empty/index.ts +2 -0
  678. package/src/components/empty/theme/Empty.base.theme.ts +40 -0
  679. package/src/components/empty/theme/Empty.carbon.theme.ts +7 -0
  680. package/src/components/form/Form.vue +32 -3
  681. package/src/components/formGroup/FormGroup.vue +31 -7
  682. package/src/components/formGroup/__tests__/FormGroup.spec.ts +37 -2
  683. package/src/components/formGroup/theme/FormGroup.base.theme.ts +7 -3
  684. package/src/components/formGroup/theme/FormGroup.carbon.theme.ts +7 -3
  685. package/src/components/icon/Icon.vue +6 -1
  686. package/src/components/image/Image.vue +8 -2
  687. package/src/components/index.ts +3 -0
  688. package/src/components/input/Input.vue +165 -44
  689. package/src/components/input/__tests__/Input.spec.ts +28 -1
  690. package/src/components/input/theme/Input.base.theme.ts +10 -1
  691. package/src/components/input/theme/Input.carbon.theme.ts +5 -0
  692. package/src/components/inputFooter/InputFooter.vue +23 -6
  693. package/src/components/inputGroup/InputGroup.vue +196 -0
  694. package/src/components/inputGroup/__tests__/InputGroup.spec.ts +104 -0
  695. package/src/components/inputGroup/index.ts +2 -0
  696. package/src/components/inputGroup/theme/InputGroup.base.theme.ts +9 -0
  697. package/src/components/inputGroup/theme/InputGroup.carbon.theme.ts +7 -0
  698. package/src/components/label/Label.vue +52 -8
  699. package/src/components/label/theme/Label.base.theme.ts +2 -2
  700. package/src/components/label/theme/Label.carbon.theme.ts +2 -2
  701. package/src/components/link/Link.vue +47 -31
  702. package/src/components/loader/Loader.vue +10 -2
  703. package/src/components/menu/Menu.vue +25 -5
  704. package/src/components/menu/MenuItem.vue +115 -56
  705. package/src/components/modal/Modal.vue +90 -15
  706. package/src/components/notifications/Notifications.vue +23 -0
  707. package/src/components/notifications/__tests__/Notifications.spec.ts +44 -4
  708. package/src/components/pagination/Pagination.vue +11 -1
  709. package/src/components/pagination/PaginationItem.vue +13 -2
  710. package/src/components/popover/Popover.vue +125 -33
  711. package/src/components/popover/PopoverContainer.vue +9 -1
  712. package/src/components/popover/PopoverContentBoundary.vue +32 -0
  713. package/src/components/popover/__tests__/Popover.spec.ts +51 -0
  714. package/src/components/popover/theme/PopoverContainer.base.theme.ts +1 -1
  715. package/src/components/progress/Progress.vue +10 -3
  716. package/src/components/qrCode/QrCode.vue +9 -1
  717. package/src/components/radio/Radio.vue +42 -25
  718. package/src/components/radio/theme/Radio.base.theme.ts +1 -1
  719. package/src/components/radio/theme/Radio.carbon.theme.ts +1 -1
  720. package/src/components/radioButton/RadioButton.vue +168 -0
  721. package/src/components/radioButton/__tests__/RadioButton.spec.ts +48 -0
  722. package/src/components/radioButton/index.ts +2 -0
  723. package/src/components/radioButton/theme/RadioButton.base.theme.ts +155 -0
  724. package/src/components/radioButton/theme/RadioButton.carbon.theme.ts +31 -0
  725. package/src/components/scroll/Scroll.vue +18 -5
  726. package/src/components/select/Select.vue +99 -21
  727. package/src/components/select/theme/Select.base.theme.ts +7 -1
  728. package/src/components/select/theme/Select.carbon.theme.ts +2 -0
  729. package/src/components/skeleton/Skeleton.vue +3 -0
  730. package/src/components/slider/Slider.vue +34 -8
  731. package/src/components/spacer/Spacer.tsx +1 -1
  732. package/src/components/spacer/__tests__/Spacer.spec.ts +1 -1
  733. package/src/components/spinner/Spinner.vue +2 -0
  734. package/src/components/stepper/Stepper.vue +654 -83
  735. package/src/components/stepper/__tests__/Stepper.spec.ts +199 -5
  736. package/src/components/stepper/index.ts +4 -0
  737. package/src/components/stepper/theme/Stepper.base.theme.ts +49 -19
  738. package/src/components/tab/Tab.vue +157 -63
  739. package/src/components/tab/TabGroup.vue +116 -28
  740. package/src/components/tab/__tests__/Tab.spec.ts +53 -0
  741. package/src/components/tab/__tests__/TabGroup.spec.ts +113 -0
  742. package/src/components/tab/theme/Tab.base.theme.ts +24 -2
  743. package/src/components/tab/theme/Tab.carbon.theme.ts +30 -7
  744. package/src/components/tab/theme/TabGroup.base.theme.ts +12 -9
  745. package/src/components/tab/theme/TabGroup.carbon.theme.ts +6 -2
  746. package/src/components/table/Table.vue +98 -21
  747. package/src/components/table/TableCell.vue +27 -6
  748. package/src/components/table/TableHead.vue +11 -2
  749. package/src/components/table/TableHeader.vue +18 -3
  750. package/src/components/table/TableRow.vue +19 -5
  751. package/src/components/table/__tests__/Table.spec.ts +53 -0
  752. package/src/components/table/theme/Table.carbon.theme.ts +1 -1
  753. package/src/components/tag/Tag.vue +30 -10
  754. package/src/components/textarea/Textarea.vue +117 -24
  755. package/src/components/textarea/theme/Textarea.base.theme.ts +10 -1
  756. package/src/components/textarea/theme/Textarea.carbon.theme.ts +5 -0
  757. package/src/components/themeProvider/ThemeProvider.vue +22 -7
  758. package/src/components/toggle/Toggle.vue +11 -1
  759. package/src/components/tooltip/ToggleTip.vue +12 -3
  760. package/src/components/tooltip/Tooltip.vue +19 -3
  761. package/src/components/upload/Upload.vue +50 -16
  762. package/src/components/upload/__tests__/fileAccept.spec.ts +39 -0
  763. package/src/components/upload/fileAccept.ts +29 -0
  764. package/src/composables/__tests__/resolveComponentDefaults.spec.ts +139 -0
  765. package/src/composables/index.ts +1 -0
  766. package/src/composables/keys.ts +2 -0
  767. package/src/composables/resolveComponentDefaults.ts +33 -0
  768. package/src/composables/useColors.ts +1 -0
  769. package/src/composables/useCommon.ts +1 -0
  770. package/src/composables/useFocusTrap.ts +3 -1
  771. package/src/composables/useInputtable.ts +122 -19
  772. package/src/composables/useInteractive.ts +13 -3
  773. package/src/composables/useTheme.ts +10 -3
  774. package/src/composables/useVirtualList.ts +1 -2
  775. package/src/create.ts +2 -0
  776. package/src/index.ts +1 -0
  777. package/src/theme.ts +6 -0
  778. package/src/themes/base/components.ts +3 -0
  779. package/src/themes/base/styles.ts +27 -20
  780. package/src/themes/carbon/components.ts +3 -0
  781. package/src/themes/carbon/styles.ts +24 -17
  782. package/src/version.ts +1 -1
  783. package/src/virtual/components/infiniteLoader/InfiniteLoader.vue +33 -1
  784. package/src/virtual/components/virtualGrid/VirtualGrid.vue +104 -10
  785. package/src/virtual/components/virtualList/VirtualList.test.ts +42 -4
  786. package/src/virtual/components/virtualList/VirtualList.vue +73 -8
  787. package/src/virtual/components/virtualList/useDynamicRowHeight.ts +9 -2
  788. package/src/virtual/core/useVirtualizer.ts +18 -4
  789. package/volar.d.ts +3 -0
  790. package/docs/layouts/simple.vue +0 -5
  791. package/docs/pages/component/radio/variants.vue +0 -39
  792. package/exports/tailwind.preset.js +0 -40
  793. package/lib/components/accordion/Accordion.vue.js +0 -40
  794. package/lib/components/accordion/Accordion.vue2.js +0 -4
  795. package/lib/components/accordion/AccordionItem.vue.js +0 -150
  796. package/lib/components/accordion/AccordionItem.vue2.js +0 -4
  797. package/lib/components/accordion/__tests__/Accordion.spec.d.ts +0 -1
  798. package/lib/components/alert/Alert.vue.js +0 -9
  799. package/lib/components/alert/Alert.vue2.js +0 -62
  800. package/lib/components/alert/Alert.vue3.js +0 -8
  801. package/lib/components/alert/__tests__/Alert.spec.d.ts +0 -1
  802. package/lib/components/avatar/Avatar.vue.js +0 -9
  803. package/lib/components/avatar/Avatar.vue2.js +0 -76
  804. package/lib/components/avatar/Avatar.vue3.js +0 -7
  805. package/lib/components/avatar/__tests__/Avatar.spec.d.ts +0 -1
  806. package/lib/components/badge/Badge.vue.js +0 -93
  807. package/lib/components/badge/Badge.vue2.js +0 -4
  808. package/lib/components/badge/__tests__/Badge.spec.d.ts +0 -1
  809. package/lib/components/breadcrumbs/Breadcrumbs.vue.js +0 -69
  810. package/lib/components/breadcrumbs/Breadcrumbs.vue2.js +0 -4
  811. package/lib/components/breadcrumbs/__tests__/Breadcrumbs.spec.d.ts +0 -1
  812. package/lib/components/button/Button.vue.js +0 -9
  813. package/lib/components/button/Button.vue2.js +0 -117
  814. package/lib/components/button/Button.vue3.js +0 -8
  815. package/lib/components/button/ButtonGroup.vue.js +0 -9
  816. package/lib/components/button/ButtonGroup.vue2.js +0 -53
  817. package/lib/components/button/ButtonGroup.vue3.js +0 -7
  818. package/lib/components/button/__tests__/ Button.spec.d.ts +0 -1
  819. package/lib/components/button/__tests__/ ButtonGroup.spec.d.ts +0 -1
  820. package/lib/components/card/Card.vue.js +0 -30
  821. package/lib/components/card/Card.vue2.js +0 -4
  822. package/lib/components/card/__tests__/Card.spec.d.ts +0 -1
  823. package/lib/components/carousel/Carousel.vue.js +0 -97
  824. package/lib/components/carousel/Carousel.vue2.js +0 -4
  825. package/lib/components/carousel/CarouselSlide.vue.js +0 -9
  826. package/lib/components/carousel/CarouselSlide.vue2.js +0 -32
  827. package/lib/components/carousel/CarouselSlide.vue3.js +0 -6
  828. package/lib/components/carousel/__tests__/Carousel.spec.d.ts +0 -1
  829. package/lib/components/checkbox/Checkbox.vue.js +0 -9
  830. package/lib/components/checkbox/Checkbox.vue2.js +0 -143
  831. package/lib/components/checkbox/Checkbox.vue3.js +0 -6
  832. package/lib/components/checkbox/__tests__/Checkbox.spec.d.ts +0 -1
  833. package/lib/components/container/Container.vue.js +0 -33
  834. package/lib/components/container/Container.vue2.js +0 -4
  835. package/lib/components/container/__tests__/Container.spec.d.ts +0 -1
  836. package/lib/components/datepicker/Datepicker.vue.js +0 -309
  837. package/lib/components/datepicker/Datepicker.vue2.js +0 -4
  838. package/lib/components/datepicker/Datepicker.vue3.js +0 -5
  839. package/lib/components/datepicker/__tests__/Datepicker.spec.d.ts +0 -1
  840. package/lib/components/divider/Divider.vue.js +0 -52
  841. package/lib/components/divider/Divider.vue2.js +0 -4
  842. package/lib/components/divider/__tests__/Divider.spec.d.ts +0 -1
  843. package/lib/components/drawer/Drawer.vue.js +0 -160
  844. package/lib/components/drawer/Drawer.vue2.js +0 -4
  845. package/lib/components/drawer/__tests__/Drawer.spec.d.ts +0 -1
  846. package/lib/components/form/Form.vue.js +0 -111
  847. package/lib/components/form/Form.vue2.js +0 -4
  848. package/lib/components/form/__tests__/Form.spec.d.ts +0 -1
  849. package/lib/components/formGroup/FormGroup.vue.js +0 -91
  850. package/lib/components/formGroup/FormGroup.vue2.js +0 -4
  851. package/lib/components/formGroup/__tests__/FormGroup.spec.d.ts +0 -1
  852. package/lib/components/icon/Icon.vue.js +0 -73
  853. package/lib/components/icon/Icon.vue2.js +0 -4
  854. package/lib/components/icon/__tests__/Icon.spec.d.ts +0 -1
  855. package/lib/components/image/Image.vue.js +0 -31
  856. package/lib/components/image/Image.vue2.js +0 -4
  857. package/lib/components/image/__tests__/Image.spec.d.ts +0 -1
  858. package/lib/components/input/Input.vue.js +0 -164
  859. package/lib/components/input/Input.vue2.js +0 -4
  860. package/lib/components/input/__tests__/Input.spec.d.ts +0 -1
  861. package/lib/components/inputFooter/InputFooter.vue.js +0 -43
  862. package/lib/components/inputFooter/InputFooter.vue2.js +0 -4
  863. package/lib/components/inputFooter/__tests__/InputFooter.spec.d.ts +0 -1
  864. package/lib/components/label/Label.vue.js +0 -54
  865. package/lib/components/label/Label.vue2.js +0 -4
  866. package/lib/components/label/__tests__/Label.spec.d.ts +0 -1
  867. package/lib/components/link/Link.vue.js +0 -9
  868. package/lib/components/link/Link.vue2.js +0 -47
  869. package/lib/components/link/Link.vue3.js +0 -8
  870. package/lib/components/link/__tests__/Link.spec.d.ts +0 -1
  871. package/lib/components/loader/Loader.vue.js +0 -54
  872. package/lib/components/loader/Loader.vue2.js +0 -4
  873. package/lib/components/loader/__tests__/Loader.spec.d.ts +0 -1
  874. package/lib/components/menu/Menu.vue.js +0 -141
  875. package/lib/components/menu/Menu.vue2.js +0 -4
  876. package/lib/components/menu/MenuItem.vue.js +0 -9
  877. package/lib/components/menu/MenuItem.vue2.js +0 -164
  878. package/lib/components/menu/MenuItem.vue3.js +0 -7
  879. package/lib/components/menu/__tests__/Menu.spec.d.ts +0 -1
  880. package/lib/components/menu/__tests__/MenuItem.spec.d.ts +0 -1
  881. package/lib/components/modal/Modal.vue.js +0 -211
  882. package/lib/components/modal/Modal.vue2.js +0 -4
  883. package/lib/components/modal/__tests__/Modal.spec.d.ts +0 -1
  884. package/lib/components/notifications/Notifications.vue.js +0 -266
  885. package/lib/components/notifications/Notifications.vue2.js +0 -4
  886. package/lib/components/notifications/__tests__/Notifications.spec.d.ts +0 -1
  887. package/lib/components/pagination/Pagination.vue.js +0 -131
  888. package/lib/components/pagination/Pagination.vue2.js +0 -4
  889. package/lib/components/pagination/PaginationItem.vue.js +0 -47
  890. package/lib/components/pagination/PaginationItem.vue2.js +0 -4
  891. package/lib/components/pagination/__tests__/Pagination.spec.d.ts +0 -1
  892. package/lib/components/pagination/__tests__/PaginationItem.spec.d.ts +0 -1
  893. package/lib/components/popover/Popover.vue.js +0 -134
  894. package/lib/components/popover/Popover.vue2.js +0 -4
  895. package/lib/components/popover/Popover.vue3.js +0 -5
  896. package/lib/components/popover/PopoverContainer.vue.js +0 -29
  897. package/lib/components/popover/PopoverContainer.vue2.js +0 -4
  898. package/lib/components/popover/__tests__/Popover.spec.d.ts +0 -1
  899. package/lib/components/popover/__tests__/PopoverContainer.spec.d.ts +0 -1
  900. package/lib/components/progress/Progress.vue.js +0 -50
  901. package/lib/components/progress/Progress.vue2.js +0 -4
  902. package/lib/components/progress/__tests__/Progress.spec.d.ts +0 -1
  903. package/lib/components/qrCode/QrCode.vue.js +0 -93
  904. package/lib/components/qrCode/QrCode.vue2.js +0 -4
  905. package/lib/components/qrCode/__tests__/QrCode.spec.d.ts +0 -1
  906. package/lib/components/radio/Radio.vue.js +0 -9
  907. package/lib/components/radio/Radio.vue2.js +0 -132
  908. package/lib/components/radio/Radio.vue3.js +0 -10
  909. package/lib/components/radio/__tests__/Radio.spec.d.ts +0 -1
  910. package/lib/components/scroll/Scroll.vue.js +0 -9
  911. package/lib/components/scroll/Scroll.vue2.js +0 -63
  912. package/lib/components/scroll/Scroll.vue3.js +0 -17
  913. package/lib/components/scroll/__tests__/Scroll.spec.d.ts +0 -1
  914. package/lib/components/select/Select.vue.js +0 -696
  915. package/lib/components/select/Select.vue2.js +0 -4
  916. package/lib/components/select/__tests__/Select.spec.d.ts +0 -1
  917. package/lib/components/skeleton/Skeleton.vue.js +0 -39
  918. package/lib/components/skeleton/Skeleton.vue2.js +0 -4
  919. package/lib/components/skeleton/__tests__/Skeleton.spec.d.ts +0 -1
  920. package/lib/components/slider/Slider.vue.js +0 -7
  921. package/lib/components/slider/Slider.vue2.js +0 -103
  922. package/lib/components/slider/Slider.vue3.js +0 -4
  923. package/lib/components/slider/__tests__/Slider.spec.d.ts +0 -1
  924. package/lib/components/spacer/__tests__/Spacer.spec.d.ts +0 -1
  925. package/lib/components/spinner/Spinner.vue.js +0 -27
  926. package/lib/components/spinner/Spinner.vue2.js +0 -4
  927. package/lib/components/spinner/__tests__/Spinner.spec.d.ts +0 -1
  928. package/lib/components/stepper/Stepper.vue.js +0 -129
  929. package/lib/components/stepper/Stepper.vue2.js +0 -4
  930. package/lib/components/stepper/__tests__/Stepper.spec.d.ts +0 -1
  931. package/lib/components/tab/Tab.vue.js +0 -150
  932. package/lib/components/tab/Tab.vue2.js +0 -4
  933. package/lib/components/tab/TabGroup.vue.js +0 -135
  934. package/lib/components/tab/TabGroup.vue2.js +0 -4
  935. package/lib/components/tab/__tests__/Tab.spec.d.ts +0 -1
  936. package/lib/components/tab/__tests__/TabGroup.spec.d.ts +0 -1
  937. package/lib/components/table/Table.vue.js +0 -424
  938. package/lib/components/table/Table.vue2.js +0 -4
  939. package/lib/components/table/TableCell.vue.js +0 -65
  940. package/lib/components/table/TableCell.vue2.js +0 -4
  941. package/lib/components/table/TableHead.vue.js +0 -24
  942. package/lib/components/table/TableHead.vue2.js +0 -4
  943. package/lib/components/table/TableHeader.vue.js +0 -82
  944. package/lib/components/table/TableHeader.vue2.js +0 -4
  945. package/lib/components/table/TableRow.vue.js +0 -30
  946. package/lib/components/table/TableRow.vue2.js +0 -4
  947. package/lib/components/table/__tests__/Table.spec.d.ts +0 -1
  948. package/lib/components/tag/Tag.vue.js +0 -73
  949. package/lib/components/tag/Tag.vue2.js +0 -4
  950. package/lib/components/tag/__tests__/Tag.spec.d.ts +0 -1
  951. package/lib/components/textarea/Textarea.vue.js +0 -141
  952. package/lib/components/textarea/Textarea.vue2.js +0 -4
  953. package/lib/components/textarea/__tests__/Textarea.spec.d.ts +0 -1
  954. package/lib/components/themeProvider/ThemeProvider.vue.js +0 -18
  955. package/lib/components/themeProvider/ThemeProvider.vue2.js +0 -4
  956. package/lib/components/toggle/Toggle.vue.js +0 -108
  957. package/lib/components/toggle/Toggle.vue2.js +0 -4
  958. package/lib/components/toggle/__tests__/Toggle.spec.d.ts +0 -1
  959. package/lib/components/tooltip/ToggleTip.vue.js +0 -29
  960. package/lib/components/tooltip/ToggleTip.vue2.js +0 -4
  961. package/lib/components/tooltip/Tooltip.vue.js +0 -132
  962. package/lib/components/tooltip/Tooltip.vue2.js +0 -4
  963. package/lib/components/tooltip/__tests__/ToggleTip.spec.d.ts +0 -1
  964. package/lib/components/tooltip/__tests__/Tooltip.spec.d.ts +0 -1
  965. package/lib/components/upload/Upload.vue.js +0 -275
  966. package/lib/components/upload/Upload.vue2.js +0 -4
  967. package/lib/components/upload/__tests__/Upload.spec.d.ts +0 -1
  968. 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
  969. 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
  970. 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
  971. 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
  972. 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
  973. package/lib/tailwind.preset.js +0 -40
  974. package/lib/virtual/components/infiniteLoader/InfiniteLoader.vue.js +0 -21
  975. package/lib/virtual/components/infiniteLoader/InfiniteLoader.vue2.js +0 -4
  976. package/lib/virtual/components/virtualGrid/VirtualGrid.vue.js +0 -241
  977. package/lib/virtual/components/virtualGrid/VirtualGrid.vue2.js +0 -4
  978. package/lib/virtual/components/virtualList/VirtualList.vue.js +0 -159
  979. package/lib/virtual/components/virtualList/VirtualList.vue2.js +0 -4
@@ -1,12 +1,11 @@
1
1
  <template>
2
- <x-tooltip>
3
- <x-button>Hover me to see the tooltip</x-button>
4
- <template #tooltip>
5
- <div class="font-bold">Tooltip title</div>
6
- <div>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptatibus corrupti maiores aut minima iusto nulla inventore ea illo commodi et.</div>
7
- </template>
8
- </x-tooltip>
2
+ <div class="flex flex-wrap items-center gap-4">
3
+ <x-tooltip tooltip="Save your changes">
4
+ <x-button icon="check" aria-label="Save" />
5
+ </x-tooltip>
9
6
 
10
- <!-- tooltip with the info icon -->
11
- <x-toggle-tip content="Lets go"/>
7
+ <x-tooltip tooltip="More options">
8
+ <x-button ghost icon="smile" aria-label="More options" />
9
+ </x-tooltip>
10
+ </div>
12
11
  </template>
@@ -4,11 +4,11 @@ import UsageDemoCode from './usage.vue?raw'
4
4
  import UsageDemo from './usage.vue'
5
5
 
6
6
  const title = 'Upload'
7
- const description = 'Upload is a component that allows you to upload files.'
7
+ const description = 'File picker with drag-and-drop for selecting one or more files to upload. Use Upload when forms need images, documents, or other file input with accept filters.'
8
8
  const components = [XUpload]
9
9
  const demos = [{
10
10
  name: 'Usage',
11
- description: '',
11
+ description: 'Basic example with common props.',
12
12
  code: UsageDemoCode,
13
13
  component: UsageDemo,
14
14
  }]
@@ -95,6 +95,7 @@ const action = 'https://run.mocky.io/v3/6904ae0b-3cfa-4ae1-bbf2-243a4dd32a3c'
95
95
  :with-credentials="false"
96
96
  :rules="[rules.isValidUpload]"
97
97
  placeholder="Upload game title cover image"
98
+ accept="image/*"
98
99
  max-file-size="2000000"
99
100
  label="Cover Image"
100
101
  tooltip="Title cover image should be 16:9 aspect ratio and max 2MB"
@@ -4,11 +4,11 @@ import UsageDemoCode from './usage.vue?raw'
4
4
  import UsageDemo from './usage.vue'
5
5
 
6
6
  const title = 'VirtualGrid'
7
- const description = 'VirtualGrid is a component that allows you to render a grid of items in a virtualized way. It is a high-performance component that is used to render large grids of items.'
7
+ const description = 'Renders only visible cells of a large grid for better scroll performance. Use VirtualGrid when a dense grid would be too heavy to mount all at once.'
8
8
  const components = [XVirtualGrid]
9
9
  const demos = [{
10
10
  name: 'Usage',
11
- description: '',
11
+ description: 'Basic example with common props.',
12
12
  code: UsageDemoCode,
13
13
  component: UsageDemo,
14
14
  }]
@@ -9,10 +9,13 @@ const gridColumnCount = 1000
9
9
  :column-count="gridColumnCount"
10
10
  :row-height="48"
11
11
  :column-width="100"
12
- class="h-96 border border-gray-200 rounded-md bg-white w-full"
12
+ class="h-96 w-full rounded-md border border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-950"
13
13
  >
14
14
  <template #cell="{ rowIndex, columnIndex, style }">
15
- <div :style="style" class="h-12 flex items-center justify-center border border-gray-200">
15
+ <div
16
+ :style="style"
17
+ class="flex h-12 items-center justify-center border border-gray-200 text-gray-800 dark:border-gray-700 dark:text-gray-200"
18
+ >
16
19
  R{{ rowIndex }}, C{{ columnIndex }}
17
20
  </div>
18
21
  </template>
@@ -50,24 +50,24 @@ const rowHeight = useDynamicRowHeight({
50
50
  <x-virtual-list
51
51
  :row-count="items.length"
52
52
  :row-height="rowHeight"
53
- style="height: 500px; border: 1px solid #ccc;"
53
+ class="h-[500px] rounded-md border border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-950"
54
54
  >
55
55
  <template #row="{ index, style }">
56
56
  <div
57
57
  :style="style"
58
58
  :class="[
59
- 'flex items-start py-3 px-4 border-b border-gray-200 cursor-pointer transition-colors gap-2',
60
- index % 2 === 0 ? 'bg-white' : 'bg-gray-50',
61
- 'hover:bg-gray-200',
62
- isRowCollapsed(index) ? 'whitespace-nowrap overflow-hidden text-ellipsis' : ''
59
+ 'flex cursor-pointer items-start gap-2 border-b border-gray-200 px-4 py-3 transition-colors dark:border-gray-700',
60
+ index % 2 === 0 ? 'bg-white dark:bg-gray-950' : 'bg-gray-50 dark:bg-gray-900',
61
+ 'hover:bg-gray-100 dark:hover:bg-gray-800',
62
+ isRowCollapsed(index) ? 'overflow-hidden text-ellipsis whitespace-nowrap' : '',
63
63
  ]"
64
64
  @click="toggleRow(index)"
65
65
  >
66
- <span class="flex-shrink-0 w-6 h-6 inline-flex items-center justify-center text-sm">
66
+ <span class="inline-flex h-6 w-6 shrink-0 items-center justify-center text-sm">
67
67
  {{ isRowCollapsed(index) ? '➕' : '➖' }}
68
68
  </span>
69
- <span class="flex-1 leading-normal">
70
- <strong class="text-gray-700 mr-2">{{ index }}:</strong>{{ getText(index) }}
69
+ <span class="flex-1 leading-normal text-gray-800 dark:text-gray-200">
70
+ <strong class="mr-2 text-gray-700 dark:text-gray-300">{{ index }}:</strong>{{ getText(index) }}
71
71
  </span>
72
72
  </div>
73
73
  </template>
@@ -6,16 +6,16 @@ import DynamicHeightDemoCode from './dynamicHeight.vue?raw'
6
6
  import DynamicHeightDemo from './dynamicHeight.vue'
7
7
 
8
8
  const title = 'VirtualList'
9
- const description = 'VirtualList is a component that allows you to render a list of items in a virtualized way. It is a high-performance component that is used to render large lists of items.'
9
+ const description = 'Renders only visible rows of a long list for better scroll performance. Use VirtualList for feeds and catalogs with thousands of items.'
10
10
  const components = [XVirtualList]
11
11
  const demos = [{
12
12
  name: 'Usage',
13
- description: '',
13
+ description: 'Basic example with common props.',
14
14
  code: UsageDemoCode,
15
15
  component: UsageDemo,
16
16
  }, {
17
17
  name: 'Dynamic Height',
18
- description: '',
18
+ description: 'Rows with variable heights while scrolling.',
19
19
  code: DynamicHeightDemoCode,
20
20
  component: DynamicHeightDemo,
21
21
  }]
@@ -6,10 +6,13 @@ const listItems = Array.from({ length: 10000 }, (_, i) => `Item ${i + 1}`)
6
6
  <x-virtual-list
7
7
  :row-count="listItems.length"
8
8
  :row-height="48"
9
- class="h-96 border border-gray-200 rounded-md bg-white"
9
+ class="h-96 rounded-md border border-gray-200 bg-white dark:border-gray-700 dark:bg-gray-950"
10
10
  >
11
11
  <template #row="{ index, style }">
12
- <div :style="style" class="h-12 flex items-center justify-center border-b border-gray-200">
12
+ <div
13
+ :style="style"
14
+ class="flex h-12 items-center justify-center border-b border-gray-200 text-gray-800 dark:border-gray-700 dark:text-gray-200"
15
+ >
13
16
  {{ listItems[index] }}
14
17
  </div>
15
18
  </template>
@@ -44,8 +44,8 @@ const iconExample2 = `<template>
44
44
 
45
45
  <template>
46
46
  <div class="docs-container">
47
- <h2 class="text-4xl font-semibold">Icons</h2>
48
- <h1 class="text-lg my-2 text-gray-500 dark:text-gray-400">Building your own SVG icon library from multiple open source libraries</h1>
47
+ <h1 class="text-4xl font-semibold">Icons</h1>
48
+ <p class="text-lg my-2 text-gray-500 dark:text-gray-400">Building your own SVG icon library from multiple open source libraries</p>
49
49
  <x-divider class="mt-4 mb-8"/>
50
50
 
51
51
  <p class="text-xl mt-8 my-4">SVG Icon Libraries</p>
@@ -8,6 +8,20 @@ useDocMeta({
8
8
  description: 'Tailwind CSS UI components for Vue.js 3 and Nuxt.js 3. Build and prototype fast web applications.',
9
9
  path: '/getting-started',
10
10
  })
11
+
12
+ const tailwindSetupSnippet = `/* src/assets/tailwind.css */
13
+ @import "tailwindcss";
14
+ @import "@indielayer/ui/tailwind.css";
15
+
16
+ @source "../../index.html";
17
+ @source "../**/*.{vue,js,ts}";
18
+ @source "../../node_modules/@indielayer/ui/{lib,src}/**/*";
19
+
20
+ /* Optional: map semantic colors to Tailwind palettes */
21
+ @theme {
22
+ --color-primary-500: var(--color-emerald-500);
23
+ --color-secondary-500: var(--color-slate-500);
24
+ }`
11
25
  </script>
12
26
 
13
27
  <template>
@@ -54,40 +68,18 @@ useDocMeta({
54
68
  }]"
55
69
  />
56
70
 
57
- <h3 class="text-2xl mt-8 mb-4">2. Setup TailwindCSS</h3>
58
- <p>If you do not have Tailwind CSS 3 installed in your project, please see the <x-link href="https://tailwindcss.com/docs/guides/vite" external shadow color="primary">Tailwind 3 Vite install guide here</x-link> before proceeding.</p>
71
+ <h3 class="text-2xl mt-8 mb-4">2. Setup Tailwind CSS v4</h3>
72
+ <p>Indielayer UI requires <b>Tailwind CSS v4</b> (Safari 16.4+, Chrome 111+, Firefox 128+). See the <x-link href="https://tailwindcss.com/docs/installation/using-vite" external shadow color="primary">Tailwind v4 install guide</x-link> and install <code class="text-sm">tailwindcss</code> plus <code class="text-sm">@tailwindcss/postcss</code> (Vite and Nuxt).</p>
59
73
  <p class="my-4">
60
- Add Indielayer Tailwind CSS preset <b>tailwind.preset.js</b> to your Tailwind CSS configuration file tailwind.config.js and <b>purge css configurations.</b>
74
+ Import Indielayer theme tokens from <b>@indielayer/ui/tailwind.css</b> in your app stylesheet and register source paths for class scanning:
61
75
  </p>
62
76
  <code-snippet
63
- lang="js"
64
- :code="`// tailwind.config.js
65
- const colors = require('tailwindcss/colors')
66
- const indielayer = require('@indielayer/ui/tailwind.preset')
67
-
68
- module.exports = {
69
- darkMode: 'class',
70
- presets: [indielayer()],
71
- content: [
72
- './index.html',
73
- './**/*.vue',
74
- './src/**/*.{vue,js,ts,jsx,tsx}',
75
- 'node_modules/@indielayer/ui/{lib,src}/**/*',
76
- ],
77
- theme: {
78
- extend: {
79
- colors: {
80
- primary: colors.emerald,
81
- secondary: colors.slate,
82
- success: colors.green,
83
- warning: colors.yellow,
84
- error: colors.red,
85
- },
86
- },
87
- },
88
- plugins: [],
89
- }`"
77
+ lang="css"
78
+ :code="tailwindSetupSnippet"
90
79
  />
80
+ <p class="my-4 text-sm text-gray-600 dark:text-gray-400">
81
+ Add <code>@tailwindcss/postcss</code> to your PostCSS config (Vite <code>css.postcss.plugins</code> or Nuxt <code>postcss.plugins</code>). See the <x-link href="https://tailwindcss.com/docs/upgrade-guide" external shadow color="primary">upgrade guide</x-link> when migrating from v3.
82
+ </p>
91
83
  <h3 class="text-2xl mt-8 mb-4">3. Load the UI in your project</h3>
92
84
  <h4 class="text-xl mt-8 mb-4">Load on a Vue 3 project</h4>
93
85
  <code-snippet
@@ -99,8 +91,15 @@ const app = createApp(App)
99
91
 
100
92
  app.use(UI, {
101
93
  theme: BaseTheme,
94
+ defaults: {
95
+ Alert: { outlined: true },
96
+ },
102
97
  })`"
103
98
  />
99
+ <p class="my-4 text-sm text-gray-600 dark:text-gray-400">
100
+ Use <code>defaults</code> to set app-wide prop defaults per component (e.g. all alerts outlined). Instance props still override when passed explicitly.
101
+ Variant and layout booleans on themed components use <code>optionalBooleanProp()</code> so omitted attributes stay unset; plain <code>Boolean</code> props default to <code>false</code> in Vue and will not receive app defaults.
102
+ </p>
104
103
  <h4 class="text-xl mt-8 mb-4">Load on a Nuxt 3 project</h4>
105
104
  <multi-snippet
106
105
  class="my-4"
@@ -127,9 +126,7 @@ app.use(UI, {
127
126
  css: ['~/assets/tailwind.css'],
128
127
  postcss: {
129
128
  plugins: {
130
- 'tailwindcss/nesting': {},
131
- tailwindcss: {},
132
- autoprefixer: {},
129
+ '@tailwindcss/postcss': {},
133
130
  },
134
131
  },
135
132
  })`"
@@ -1,8 +1,7 @@
1
- import { createRouter, createWebHistory, type RouteRecordRaw } from 'vue-router'
1
+ import type { RouteRecordRaw, RouterScrollBehavior } from 'vue-router'
2
2
 
3
3
  // layouts
4
4
  import DefaultLayout from '../layouts/default.vue'
5
- import SimpleLayout from '../layouts/simple.vue'
6
5
 
7
6
  // help
8
7
  import HomePage from '../pages/index.vue'
@@ -14,22 +13,22 @@ import ErrorPage from '../pages/error.vue'
14
13
 
15
14
  const pages: Record<string, any> = import.meta.glob('../pages/component/*/index.vue', { eager: true })
16
15
 
17
- const componentPages: RouteRecordRaw[] = []
16
+ const componentPages: RouteRecordRaw[] = Object.keys(pages).flatMap((filePath) => {
17
+ const match = filePath.match(/\/pages\/component\/(.*)\/index\.vue$/)
18
18
 
19
- Object.keys(pages).forEach((path) => {
20
- const match = path.match(/\/pages\/component\/(.*)\/index\.vue$/)
19
+ if (!match) return []
21
20
 
22
- if (match) {
23
- const name = match[1].toLowerCase()
21
+ const name = match[1]
24
22
 
25
- componentPages.push({
26
- path: name,
27
- component: pages[path].default,
28
- })
29
- }
23
+ return [{
24
+ // Absolute child path: nests in DefaultLayout but keeps a root URL.
25
+ path: `/component/${name}`,
26
+ name: `component-${name}`,
27
+ component: pages[filePath].default,
28
+ }]
30
29
  })
31
30
 
32
- const routes: RouteRecordRaw[] = [{
31
+ export const routes: RouteRecordRaw[] = [{
33
32
  path: '/',
34
33
  component: DefaultLayout,
35
34
  children: [{
@@ -51,11 +50,9 @@ const routes: RouteRecordRaw[] = [{
51
50
  path: 'colors',
52
51
  name: 'colors',
53
52
  component: ColorsPage,
54
- }, {
55
- path: 'component',
56
- component: SimpleLayout,
57
- children: componentPages,
58
- }],
53
+ },
54
+ ...componentPages,
55
+ ],
59
56
  }, {
60
57
  path: '/play',
61
58
  component: PlayPage,
@@ -65,37 +62,35 @@ const routes: RouteRecordRaw[] = [{
65
62
  component: ErrorPage,
66
63
  }]
67
64
 
68
- const router = createRouter({
69
- history: createWebHistory(import.meta.env.BASE_URL),
70
- routes,
71
- scrollBehavior(to, from, savedPosition) {
72
- const main = document.getElementById('main')
65
+ export const scrollBehavior: RouterScrollBehavior = (to, _from, savedPosition) => {
66
+ if (typeof document === 'undefined') return { top: 0 }
67
+
68
+ const main = document.getElementById('main')
73
69
 
74
- if (to.hash) {
75
- return new Promise((resolve) => {
76
- setTimeout(() => {
77
- const el = document.querySelector(to.hash)
70
+ if (to.hash) {
71
+ return new Promise((resolve) => {
72
+ setTimeout(() => {
73
+ const el = document.querySelector(to.hash)
78
74
 
79
- if (el && main) {
80
- const top = (el as HTMLElement).offsetTop - 80
75
+ if (el && main) {
76
+ const top = (el as HTMLElement).offsetTop - 80
81
77
 
82
- main.scrollTo({ top, behavior: 'smooth' })
83
- }
84
- resolve({ el: to.hash, behavior: 'smooth', top: 80 })
85
- }, 100)
86
- })
87
- }
78
+ main.scrollTo({ top, behavior: 'smooth' })
79
+ }
80
+ resolve({ el: to.hash, behavior: 'smooth', top: 80 })
81
+ }, 100)
82
+ })
83
+ }
88
84
 
89
- if (savedPosition) {
90
- main?.scrollTo(savedPosition)
85
+ if (savedPosition) {
86
+ main?.scrollTo(savedPosition)
91
87
 
92
- return savedPosition
93
- }
88
+ return savedPosition
89
+ }
94
90
 
95
- main?.scrollTo(0, 0)
91
+ main?.scrollTo(0, 0)
96
92
 
97
- return { top: 0 }
98
- },
99
- })
93
+ return { top: 0 }
94
+ }
100
95
 
101
- export default router
96
+ export default routes
@@ -1 +1 @@
1
- [{"name":"Accordion","description":"Accordion is a component that allows you to collapse and expand content.","url":"/component/accordion","category":"component"},{"name":"Alert","description":"Alerts are used to communicate a state that affects a system, feature or page.","url":"/component/alert","category":"component"},{"name":"Avatar","description":"Avatars are used to represent a user.","url":"/component/avatar","category":"component"},{"name":"Badge","description":"Badges are used to display a small amount of information.","url":"/component/badge","category":"component"},{"name":"Breadcrumbs","description":"Breadcrumbs are used to indicate the current page\\","url":"/component/breadcrumbs","category":"component"},{"name":"Button","description":"Buttons allow users to perform actions and make choices with a single click. They are commonly used for submitting forms, opening dialogs or menus, and executing commands. Buttons can be customized with different styles, sizes, and icons to fit various use cases.","url":"/component/button","category":"component"},{"name":"Card","description":"Cards are used to display content in an organized manner.","url":"/component/card","category":"component"},{"name":"Carousel","description":"A carousel is a rotating set of images.","url":"/component/carousel","category":"component"},{"name":"Checkbox","description":"Checkboxes enable users to select one or multiple options from a list. They are ideal for toggling settings or making selections where more than one choice is allowed. Each checkbox can be checked or unchecked independently.","url":"/component/checkbox","category":"component"},{"name":"Container","description":"Containers provide a flexible layout element for grouping and organizing content. They help structure pages by controlling width, alignment, and spacing, ensuring consistent presentation across different sections.","url":"/component/container","category":"component"},{"name":"Datepicker","description":"The datepicker component is used to select a date or time.","url":"/component/datepicker","category":"component"},{"name":"Divider","description":"Dividers are used to separate content.","url":"/component/divider","category":"component"},{"name":"Drawer","description":"Drawers slide in from the edge of the screen to present navigation, options, or additional content without disrupting the main view. They are ideal for menus, filters, or contextual panels.","url":"/component/drawer","category":"component"},{"name":"Form","description":"Forms provide a structured way to collect and validate user input, such as text, selections, and files. They support features like validation, grouping, and submission handling, making it easy to build interactive and accessible data entry interfaces.","url":"/component/form","category":"component"},{"name":"FormGroup","description":"Form groups organize related form elements together, providing structure and shared validation. They help group checkboxes, radio buttons, or inputs that belong to the same logical section.","url":"/component/formGroup","category":"component"},{"name":"Icon","description":"Icons visually represent actions, objects, or concepts, enhancing usability and recognition in interfaces. They can be used alone or alongside text for buttons, menus, and indicators.","url":"/component/icon","category":"component"},{"name":"Image","description":"Image is used to load an image file with a skeleton as placeholder and on load display the image.","url":"/component/image","category":"component"},{"name":"InfiniteLoader","description":"InfiniteLoader is a component that allows you to load data on demand as users scroll through a list.","url":"/component/infiniteLoader","category":"component"},{"name":"Input","description":"This is a text input component that allows users to enter and edit text.","url":"/component/input","category":"component"},{"name":"Link","description":"Links are used to navigate to a different page.","url":"/component/link","category":"component"},{"name":"Loader","description":"Loader component is used to show a loading state.","url":"/component/loader","category":"component"},{"name":"Menu","description":"Menus are used to display a list of options.","url":"/component/menu","category":"component"},{"name":"Modal","description":"Modals are used to display content on top of the current page.","url":"/component/modal","category":"component"},{"name":"Notifications","description":"Notifications provide timely feedback or alerts to users, such as success messages, warnings, or errors. They help keep users informed about important events or actions.","url":"/component/notifications","category":"component"},{"name":"Pagination","description":"Pagination divides large sets of content into manageable pages, allowing users to navigate through items efficiently. It is commonly used in tables, lists, and search results to improve usability and performance.","url":"/component/pagination","category":"component"},{"name":"Popover","description":"Popovers display additional information or interactive content in a floating overlay, anchored to a trigger element. They are useful for tooltips, menus, or contextual actions without navigating away from the current view.","url":"/component/popover","category":"component"},{"name":"Progress","description":"Progress indicators visually communicate the completion status of a task or process, such as file uploads or data loading. They help users understand how much work remains.","url":"/component/progress","category":"component"},{"name":"QR Code","description":"The QR Code component is used to generate a QR code.","url":"/component/qrCode","category":"component"},{"name":"Radio","description":"Radios allow the user to select one option from a set. Use radio buttons for exclusive selection if you think that the user needs to see all available options side-by-side.","url":"/component/radio","category":"component"},{"name":"Scroll","description":"The Scroll component enhances scrolling experiences by adding visual cues, such as inner shadows, to indicate additional content. It is useful for horizontally or vertically scrolling lists and containers.","url":"/component/scroll","category":"component"},{"name":"Select","description":"Selects allow the user to select one or more options from a set.","url":"/component/select","category":"component"},{"name":"Skeleton","description":"Skeletons provide placeholder elements that mimic the layout of content while data is loading. They improve perceived performance by giving users a visual cue that content is being fetched.","url":"/component/skeleton","category":"component"},{"name":"Slider","description":"Sliders allow users to select a numeric value or range by dragging a handle along a track. They are ideal for adjusting settings such as volume, brightness, or price filters.","url":"/component/slider","category":"component"},{"name":"Spacer","description":"Spacers create adjustable gaps between elements within flex layouts, helping to control spacing and alignment without using margin or padding directly.","url":"/component/spacer","category":"component"},{"name":"Spinner","description":"Spinners visually indicate that a background process or operation is ongoing, such as loading data or submitting a form. They help manage user expectations by signaling that the system is working.","url":"/component/spinner","category":"component"},{"name":"Stepper","description":"Stepper is a navigation component that guides users through the steps of a task.","url":"/component/stepper","category":"component"},{"name":"Table","description":"Tables are used to display data in a tabular format.","url":"/component/table","category":"component"},{"name":"Tabs","description":"Tabs are used to navigate through a set of views.","url":"/component/tabs","category":"component"},{"name":"Tag","description":"Tags are compact elements used to display brief information, such as categories, statuses, or labels. They help organize content and provide quick context or filtering options within lists and interfaces.","url":"/component/tag","category":"component"},{"name":"Textarea","description":"Textareas provide a multi-line input field for users to enter longer text, such as comments, descriptions, or messages. They support resizing and can be customized for different use cases.","url":"/component/textarea","category":"component"},{"name":"Toggle","description":"Toggles provide a simple switch interface for enabling or disabling a setting, or switching between two mutually exclusive states. They are ideal for binary options such as on/off, active/inactive, or show/hide.","url":"/component/toggle","category":"component"},{"name":"Tooltip","description":"Tooltips are used to display a message when hovering over an element.","url":"/component/tooltip","category":"component"},{"name":"Upload","description":"Upload is a component that allows you to upload files.","url":"/component/upload","category":"component"},{"name":"VirtualGrid","description":"VirtualGrid is a component that allows you to render a grid of items in a virtualized way. It is a high-performance component that is used to render large grids of items.","url":"/component/virtualGrid","category":"component"},{"name":"VirtualList","description":"VirtualList is a component that allows you to render a list of items in a virtualized way. It is a high-performance component that is used to render large lists of items.","url":"/component/virtualList","category":"component"}]
1
+ [{"name":"Accordion","description":"Collapsible panels for showing and hiding related content. Use x-accordion with x-accordion-item when space is limited and users need progressive disclosure.","url":"/component/accordion","category":"component"},{"name":"Alert","description":"Inline notices for system, feature, or page status—success, warning, error, or info. Use alerts when the message should stay visible until addressed.","url":"/component/alert","category":"component"},{"name":"Avatar","description":"Displays a user's photo, initials, or icon in a compact frame. Use avatars in lists, headers, and comments to identify people at a glance.","url":"/component/avatar","category":"component"},{"name":"Badge","description":"Small status indicators that overlay or sit beside another element—counts, labels, or presence dots. Use badges to draw attention without interrupting the layout.","url":"/component/badge","category":"component"},{"name":"Breadcrumbs","description":"Shows the current page's place in a navigational hierarchy. Use breadcrumbs for deep page trees so users can jump back to parent sections.","url":"/component/breadcrumbs","category":"component"},{"name":"Button","description":"Clickable controls for primary actions—submit, open dialogs, or run commands. Customize style, size, and icons; group related actions with x-button-group.","url":"/component/button","category":"component"},{"name":"Card","description":"A bordered content container for grouping related information, media, and actions. Use cards in grids and dashboards when each block should stand alone.","url":"/component/card","category":"component"},{"name":"Carousel","description":"A sliding viewport for cycling through images or content panels. Use carousels for galleries and featured items when horizontal space is limited.","url":"/component/carousel","category":"component"},{"name":"Checkbox","description":"Multi-select controls for choosing one or more options independently. Use checkboxes for settings and lists where more than one choice can be active.","url":"/component/checkbox","category":"component"},{"name":"Container","description":"Layout wrapper that constrains content width and alignment for consistent page structure. Use containers to center and pad main content across breakpoints.","url":"/component/container","category":"component"},{"name":"Datepicker","description":"Date and time picker styled as a wrapper around @vuepic/vue-datepicker. Use it for forms that need calendar or datetime selection with Indielayer look and feel.","url":"/component/datepicker","category":"component"},{"name":"Divider","description":"A horizontal or vertical rule that separates sections of content. Use dividers in lists, toolbars, and layouts to create clear visual breaks.","url":"/component/divider","category":"component"},{"name":"Drawer","description":"Panels that slide in from the screen edge for navigation, filters, or extra content. Use drawers when side context should overlay without leaving the page.","url":"/component/drawer","category":"component"},{"name":"Empty","description":"Empty states communicate when there is no content to show. Use them in tables, lists, and panels with a title, description, optional icon, and actions.","url":"/component/empty","category":"component"},{"name":"Form","description":"Structured form wrapper for collecting and validating user input. Use x-form to group fields, run validation, and handle submit in one place.","url":"/component/form","category":"component"},{"name":"FormGroup","description":"Groups related fields with a shared label and validation context. Use form groups for checkboxes, radios, or inputs that belong to one logical section.","url":"/component/formGroup","category":"component"},{"name":"Icon","description":"Icons visually represent actions and concepts. Register SVG paths in a global map, then reference them by name on XIcon.","url":"/component/icon","category":"component"},{"name":"Image","description":"Loads a remote image after preloading. Use a background on the wrapper for a visible placeholder until load completes.","url":"/component/image","category":"component"},{"name":"InfiniteLoader","description":"Loads more list items as the user scrolls near the end of a container. Use InfiniteLoader for feeds and catalogs that grow on demand.","url":"/component/infiniteLoader","category":"component"},{"name":"Input","description":"Single-line text field for entering and editing short values. Use x-input in forms for names, emails, search, and other one-line data.","url":"/component/input","category":"component"},{"name":"Input Group","description":"Input groups combine multiple inline fields (Input, Textarea, Select, Datepicker, Button) into one control with a shared label and footer.","url":"/component/inputGroup","category":"component"},{"name":"Link","description":"Styled anchor for navigating to another page or external URL. Use x-link when you need consistent link styling, external indicators, and accessibility.","url":"/component/link","category":"component"},{"name":"Loader","description":"Full-area loading overlay that blocks interaction while content or an action completes. Use Loader when the whole region should wait before continuing.","url":"/component/loader","category":"component"},{"name":"Menu","description":"Dropdown list of actionable items triggered from a button or other control. Use x-menu with x-menu-item for contextual actions and navigation.","url":"/component/menu","category":"component"},{"name":"Modal","description":"Dialog overlay that focuses attention on a task or message above the current page. Use modals for confirmations, forms, and details that need temporary focus.","url":"/component/modal","category":"component"},{"name":"Notifications","description":"Toast-style feedback for success, warning, or error after an action. Use notifications for transient messages that should not block the page.","url":"/component/notifications","category":"component"},{"name":"Pagination","description":"Controls for moving through large result sets page by page. Use pagination with tables, lists, and search results to keep each view manageable.","url":"/component/pagination","category":"component"},{"name":"Popover","description":"Floating panel anchored to a trigger for extra content or actions. Use popovers for menus and contextual UI without leaving the current view.","url":"/component/popover","category":"component"},{"name":"Progress","description":"Bar that shows how far a task or process has completed. Use progress for uploads, multi-step jobs, and determinate loading states.","url":"/component/progress","category":"component"},{"name":"QR Code","description":"Renders a QR code from a string or URL for scanning with mobile devices. Use it for share links, payments, and quick machine-readable payloads.","url":"/component/qrCode","category":"component"},{"name":"Radio","description":"Radios allow the user to select one option from a set. Use classic radios for standard options, or x-radio-button for a button-shaped variant. Place several x-radio-button options inside x-form-group for a joined segmented control.","url":"/component/radio","category":"component"},{"name":"Scroll","description":"Scroll container with optional edge shadows that hint at more content. Use Scroll for overflow lists and panels that scroll vertically or horizontally.","url":"/component/scroll","category":"component"},{"name":"Select","description":"Dropdown for choosing one or more options from a predefined list. Use Select for enums, filters, and form fields where free text is not needed.","url":"/component/select","category":"component"},{"name":"Skeleton","description":"Placeholder shapes that mirror content layout while data loads. Use skeletons to reduce layout shift and improve perceived loading performance.","url":"/component/skeleton","category":"component"},{"name":"Slider","description":"Track with a draggable handle for picking a numeric value or range. Use sliders for volume, brightness, price filters, and similar continuous settings.","url":"/component/slider","category":"component"},{"name":"Spacer","description":"Flex-friendly gap that expands or shrinks between siblings without extra margin or padding. Use spacers to push items apart in toolbars and rows.","url":"/component/spacer","category":"component"},{"name":"Spinner","description":"Animated indicator that a background process is still running. Use spinners for indeterminate loading when completion percentage is unknown.","url":"/component/spinner","category":"component"},{"name":"Stepper","description":"Multi-step wizard with declarative steps, named panel slots, programmatic next/prev navigation, validation hooks, and optional sidebar summaries.","url":"/component/stepper","category":"component"},{"name":"Table","description":"Tables display tabular data with single- or multi-column sorting, selection, expandable rows, and virtual lists.","url":"/component/table","category":"component"},{"name":"Tabs","description":"Tabbed navigation that switches between related views in the same region. Use x-tab-group with x-tab when content shares context but not space.","url":"/component/tabs","category":"component"},{"name":"Tag","description":"Compact labels for categories, statuses, or filters. Use tags in lists and chip groups when a short keyword should stand out.","url":"/component/tag","category":"component"},{"name":"Textarea","description":"Multi-line text field for longer content such as comments and descriptions. Use Textarea when a single-line input is not enough.","url":"/component/textarea","category":"component"},{"name":"Toggle","description":"Binary switch for on/off settings and mutually exclusive states. Use toggles when the choice should feel instant and reversible.","url":"/component/toggle","category":"component"},{"name":"Tooltip","description":"Tooltips display contextual help on hover. Use XToggleTip for a compact info-icon pattern beside labels.","url":"/component/tooltip","category":"component"},{"name":"Upload","description":"File picker with drag-and-drop for selecting one or more files to upload. Use Upload when forms need images, documents, or other file input with accept filters.","url":"/component/upload","category":"component"},{"name":"VirtualGrid","description":"Renders only visible cells of a large grid for better scroll performance. Use VirtualGrid when a dense grid would be too heavy to mount all at once.","url":"/component/virtualGrid","category":"component"},{"name":"VirtualList","description":"Renders only visible rows of a long list for better scroll performance. Use VirtualList for feeds and catalogs with thousands of items.","url":"/component/virtualList","category":"component"}]
@@ -1 +1 @@
1
- [{"name":"Icons","description":"Custom icon set integration for Indielayer UI components.","url":"/icons","category":"guide"},{"name":"Colors","description":"Color palette, semantic tokens, and color props on components.","url":"/colors","category":"guide"},{"name":"Typography","description":"Type scale and typography utilities used across the library.","url":"/typography","category":"guide"},{"name":"Accordion","description":"Accordion is a component that allows you to collapse and expand content.","url":"/component/accordion","category":"component"},{"name":"Alert","description":"Alerts are used to communicate a state that affects a system, feature or page.","url":"/component/alert","category":"component"},{"name":"Avatar","description":"Avatars are used to represent a user.","url":"/component/avatar","category":"component"},{"name":"Badge","description":"Badges are used to display a small amount of information.","url":"/component/badge","category":"component"},{"name":"Breadcrumbs","description":"Breadcrumbs are used to indicate the current page\\","url":"/component/breadcrumbs","category":"component"},{"name":"Button","description":"Buttons allow users to perform actions and make choices with a single click. They are commonly used for submitting forms, opening dialogs or menus, and executing commands. Buttons can be customized with different styles, sizes, and icons to fit various use cases.","url":"/component/button","category":"component"},{"name":"Card","description":"Cards are used to display content in an organized manner.","url":"/component/card","category":"component"},{"name":"Carousel","description":"A carousel is a rotating set of images.","url":"/component/carousel","category":"component"},{"name":"Checkbox","description":"Checkboxes enable users to select one or multiple options from a list. They are ideal for toggling settings or making selections where more than one choice is allowed. Each checkbox can be checked or unchecked independently.","url":"/component/checkbox","category":"component"},{"name":"Container","description":"Containers provide a flexible layout element for grouping and organizing content. They help structure pages by controlling width, alignment, and spacing, ensuring consistent presentation across different sections.","url":"/component/container","category":"component"},{"name":"Datepicker","description":"The datepicker component is used to select a date or time.","url":"/component/datepicker","category":"component"},{"name":"Divider","description":"Dividers are used to separate content.","url":"/component/divider","category":"component"},{"name":"Drawer","description":"Drawers slide in from the edge of the screen to present navigation, options, or additional content without disrupting the main view. They are ideal for menus, filters, or contextual panels.","url":"/component/drawer","category":"component"},{"name":"Form","description":"Forms provide a structured way to collect and validate user input, such as text, selections, and files. They support features like validation, grouping, and submission handling, making it easy to build interactive and accessible data entry interfaces.","url":"/component/form","category":"component"},{"name":"FormGroup","description":"Form groups organize related form elements together, providing structure and shared validation. They help group checkboxes, radio buttons, or inputs that belong to the same logical section.","url":"/component/formGroup","category":"component"},{"name":"Icon","description":"Icons visually represent actions, objects, or concepts, enhancing usability and recognition in interfaces. They can be used alone or alongside text for buttons, menus, and indicators.","url":"/component/icon","category":"component"},{"name":"Image","description":"Image is used to load an image file with a skeleton as placeholder and on load display the image.","url":"/component/image","category":"component"},{"name":"InfiniteLoader","description":"InfiniteLoader is a component that allows you to load data on demand as users scroll through a list.","url":"/component/infiniteLoader","category":"component"},{"name":"Input","description":"This is a text input component that allows users to enter and edit text.","url":"/component/input","category":"component"},{"name":"Link","description":"Links are used to navigate to a different page.","url":"/component/link","category":"component"},{"name":"Loader","description":"Loader component is used to show a loading state.","url":"/component/loader","category":"component"},{"name":"Menu","description":"Menus are used to display a list of options.","url":"/component/menu","category":"component"},{"name":"Modal","description":"Modals are used to display content on top of the current page.","url":"/component/modal","category":"component"},{"name":"Notifications","description":"Notifications provide timely feedback or alerts to users, such as success messages, warnings, or errors. They help keep users informed about important events or actions.","url":"/component/notifications","category":"component"},{"name":"Pagination","description":"Pagination divides large sets of content into manageable pages, allowing users to navigate through items efficiently. It is commonly used in tables, lists, and search results to improve usability and performance.","url":"/component/pagination","category":"component"},{"name":"Popover","description":"Popovers display additional information or interactive content in a floating overlay, anchored to a trigger element. They are useful for tooltips, menus, or contextual actions without navigating away from the current view.","url":"/component/popover","category":"component"},{"name":"Progress","description":"Progress indicators visually communicate the completion status of a task or process, such as file uploads or data loading. They help users understand how much work remains.","url":"/component/progress","category":"component"},{"name":"QR Code","description":"The QR Code component is used to generate a QR code.","url":"/component/qrCode","category":"component"},{"name":"Radio","description":"Radios allow the user to select one option from a set. Use radio buttons for exclusive selection if you think that the user needs to see all available options side-by-side.","url":"/component/radio","category":"component"},{"name":"Scroll","description":"The Scroll component enhances scrolling experiences by adding visual cues, such as inner shadows, to indicate additional content. It is useful for horizontally or vertically scrolling lists and containers.","url":"/component/scroll","category":"component"},{"name":"Select","description":"Selects allow the user to select one or more options from a set.","url":"/component/select","category":"component"},{"name":"Skeleton","description":"Skeletons provide placeholder elements that mimic the layout of content while data is loading. They improve perceived performance by giving users a visual cue that content is being fetched.","url":"/component/skeleton","category":"component"},{"name":"Slider","description":"Sliders allow users to select a numeric value or range by dragging a handle along a track. They are ideal for adjusting settings such as volume, brightness, or price filters.","url":"/component/slider","category":"component"},{"name":"Spacer","description":"Spacers create adjustable gaps between elements within flex layouts, helping to control spacing and alignment without using margin or padding directly.","url":"/component/spacer","category":"component"},{"name":"Spinner","description":"Spinners visually indicate that a background process or operation is ongoing, such as loading data or submitting a form. They help manage user expectations by signaling that the system is working.","url":"/component/spinner","category":"component"},{"name":"Stepper","description":"Stepper is a navigation component that guides users through the steps of a task.","url":"/component/stepper","category":"component"},{"name":"Table","description":"Tables are used to display data in a tabular format.","url":"/component/table","category":"component"},{"name":"Tabs","description":"Tabs are used to navigate through a set of views.","url":"/component/tabs","category":"component"},{"name":"Tag","description":"Tags are compact elements used to display brief information, such as categories, statuses, or labels. They help organize content and provide quick context or filtering options within lists and interfaces.","url":"/component/tag","category":"component"},{"name":"Textarea","description":"Textareas provide a multi-line input field for users to enter longer text, such as comments, descriptions, or messages. They support resizing and can be customized for different use cases.","url":"/component/textarea","category":"component"},{"name":"Toggle","description":"Toggles provide a simple switch interface for enabling or disabling a setting, or switching between two mutually exclusive states. They are ideal for binary options such as on/off, active/inactive, or show/hide.","url":"/component/toggle","category":"component"},{"name":"Tooltip","description":"Tooltips are used to display a message when hovering over an element.","url":"/component/tooltip","category":"component"},{"name":"Upload","description":"Upload is a component that allows you to upload files.","url":"/component/upload","category":"component"},{"name":"VirtualGrid","description":"VirtualGrid is a component that allows you to render a grid of items in a virtualized way. It is a high-performance component that is used to render large grids of items.","url":"/component/virtualGrid","category":"component"},{"name":"VirtualList","description":"VirtualList is a component that allows you to render a list of items in a virtualized way. It is a high-performance component that is used to render large lists of items.","url":"/component/virtualList","category":"component"}]
1
+ [{"name":"Icons","description":"Custom icon set integration for Indielayer UI components.","url":"/icons","category":"guide"},{"name":"Colors","description":"Color palette, semantic tokens, and color props on components.","url":"/colors","category":"guide"},{"name":"Typography","description":"Type scale and typography utilities used across the library.","url":"/typography","category":"guide"},{"name":"Accordion","description":"Collapsible panels for showing and hiding related content. Use x-accordion with x-accordion-item when space is limited and users need progressive disclosure.","url":"/component/accordion","category":"component"},{"name":"Alert","description":"Inline notices for system, feature, or page status—success, warning, error, or info. Use alerts when the message should stay visible until addressed.","url":"/component/alert","category":"component"},{"name":"Avatar","description":"Displays a user's photo, initials, or icon in a compact frame. Use avatars in lists, headers, and comments to identify people at a glance.","url":"/component/avatar","category":"component"},{"name":"Badge","description":"Small status indicators that overlay or sit beside another element—counts, labels, or presence dots. Use badges to draw attention without interrupting the layout.","url":"/component/badge","category":"component"},{"name":"Breadcrumbs","description":"Shows the current page's place in a navigational hierarchy. Use breadcrumbs for deep page trees so users can jump back to parent sections.","url":"/component/breadcrumbs","category":"component"},{"name":"Button","description":"Clickable controls for primary actions—submit, open dialogs, or run commands. Customize style, size, and icons; group related actions with x-button-group.","url":"/component/button","category":"component"},{"name":"Card","description":"A bordered content container for grouping related information, media, and actions. Use cards in grids and dashboards when each block should stand alone.","url":"/component/card","category":"component"},{"name":"Carousel","description":"A sliding viewport for cycling through images or content panels. Use carousels for galleries and featured items when horizontal space is limited.","url":"/component/carousel","category":"component"},{"name":"Checkbox","description":"Multi-select controls for choosing one or more options independently. Use checkboxes for settings and lists where more than one choice can be active.","url":"/component/checkbox","category":"component"},{"name":"Container","description":"Layout wrapper that constrains content width and alignment for consistent page structure. Use containers to center and pad main content across breakpoints.","url":"/component/container","category":"component"},{"name":"Datepicker","description":"Date and time picker styled as a wrapper around @vuepic/vue-datepicker. Use it for forms that need calendar or datetime selection with Indielayer look and feel.","url":"/component/datepicker","category":"component"},{"name":"Divider","description":"A horizontal or vertical rule that separates sections of content. Use dividers in lists, toolbars, and layouts to create clear visual breaks.","url":"/component/divider","category":"component"},{"name":"Drawer","description":"Panels that slide in from the screen edge for navigation, filters, or extra content. Use drawers when side context should overlay without leaving the page.","url":"/component/drawer","category":"component"},{"name":"Empty","description":"Empty states communicate when there is no content to show. Use them in tables, lists, and panels with a title, description, optional icon, and actions.","url":"/component/empty","category":"component"},{"name":"Form","description":"Structured form wrapper for collecting and validating user input. Use x-form to group fields, run validation, and handle submit in one place.","url":"/component/form","category":"component"},{"name":"FormGroup","description":"Groups related fields with a shared label and validation context. Use form groups for checkboxes, radios, or inputs that belong to one logical section.","url":"/component/formGroup","category":"component"},{"name":"Icon","description":"Icons visually represent actions and concepts. Register SVG paths in a global map, then reference them by name on XIcon.","url":"/component/icon","category":"component"},{"name":"Image","description":"Loads a remote image after preloading. Use a background on the wrapper for a visible placeholder until load completes.","url":"/component/image","category":"component"},{"name":"InfiniteLoader","description":"Loads more list items as the user scrolls near the end of a container. Use InfiniteLoader for feeds and catalogs that grow on demand.","url":"/component/infiniteLoader","category":"component"},{"name":"Input","description":"Single-line text field for entering and editing short values. Use x-input in forms for names, emails, search, and other one-line data.","url":"/component/input","category":"component"},{"name":"Input Group","description":"Input groups combine multiple inline fields (Input, Textarea, Select, Datepicker, Button) into one control with a shared label and footer.","url":"/component/inputGroup","category":"component"},{"name":"Link","description":"Styled anchor for navigating to another page or external URL. Use x-link when you need consistent link styling, external indicators, and accessibility.","url":"/component/link","category":"component"},{"name":"Loader","description":"Full-area loading overlay that blocks interaction while content or an action completes. Use Loader when the whole region should wait before continuing.","url":"/component/loader","category":"component"},{"name":"Menu","description":"Dropdown list of actionable items triggered from a button or other control. Use x-menu with x-menu-item for contextual actions and navigation.","url":"/component/menu","category":"component"},{"name":"Modal","description":"Dialog overlay that focuses attention on a task or message above the current page. Use modals for confirmations, forms, and details that need temporary focus.","url":"/component/modal","category":"component"},{"name":"Notifications","description":"Toast-style feedback for success, warning, or error after an action. Use notifications for transient messages that should not block the page.","url":"/component/notifications","category":"component"},{"name":"Pagination","description":"Controls for moving through large result sets page by page. Use pagination with tables, lists, and search results to keep each view manageable.","url":"/component/pagination","category":"component"},{"name":"Popover","description":"Floating panel anchored to a trigger for extra content or actions. Use popovers for menus and contextual UI without leaving the current view.","url":"/component/popover","category":"component"},{"name":"Progress","description":"Bar that shows how far a task or process has completed. Use progress for uploads, multi-step jobs, and determinate loading states.","url":"/component/progress","category":"component"},{"name":"QR Code","description":"Renders a QR code from a string or URL for scanning with mobile devices. Use it for share links, payments, and quick machine-readable payloads.","url":"/component/qrCode","category":"component"},{"name":"Radio","description":"Radios allow the user to select one option from a set. Use classic radios for standard options, or x-radio-button for a button-shaped variant. Place several x-radio-button options inside x-form-group for a joined segmented control.","url":"/component/radio","category":"component"},{"name":"Scroll","description":"Scroll container with optional edge shadows that hint at more content. Use Scroll for overflow lists and panels that scroll vertically or horizontally.","url":"/component/scroll","category":"component"},{"name":"Select","description":"Dropdown for choosing one or more options from a predefined list. Use Select for enums, filters, and form fields where free text is not needed.","url":"/component/select","category":"component"},{"name":"Skeleton","description":"Placeholder shapes that mirror content layout while data loads. Use skeletons to reduce layout shift and improve perceived loading performance.","url":"/component/skeleton","category":"component"},{"name":"Slider","description":"Track with a draggable handle for picking a numeric value or range. Use sliders for volume, brightness, price filters, and similar continuous settings.","url":"/component/slider","category":"component"},{"name":"Spacer","description":"Flex-friendly gap that expands or shrinks between siblings without extra margin or padding. Use spacers to push items apart in toolbars and rows.","url":"/component/spacer","category":"component"},{"name":"Spinner","description":"Animated indicator that a background process is still running. Use spinners for indeterminate loading when completion percentage is unknown.","url":"/component/spinner","category":"component"},{"name":"Stepper","description":"Multi-step wizard with declarative steps, named panel slots, programmatic next/prev navigation, validation hooks, and optional sidebar summaries.","url":"/component/stepper","category":"component"},{"name":"Table","description":"Tables display tabular data with single- or multi-column sorting, selection, expandable rows, and virtual lists.","url":"/component/table","category":"component"},{"name":"Tabs","description":"Tabbed navigation that switches between related views in the same region. Use x-tab-group with x-tab when content shares context but not space.","url":"/component/tabs","category":"component"},{"name":"Tag","description":"Compact labels for categories, statuses, or filters. Use tags in lists and chip groups when a short keyword should stand out.","url":"/component/tag","category":"component"},{"name":"Textarea","description":"Multi-line text field for longer content such as comments and descriptions. Use Textarea when a single-line input is not enough.","url":"/component/textarea","category":"component"},{"name":"Toggle","description":"Binary switch for on/off settings and mutually exclusive states. Use toggles when the choice should feel instant and reversible.","url":"/component/toggle","category":"component"},{"name":"Tooltip","description":"Tooltips display contextual help on hover. Use XToggleTip for a compact info-icon pattern beside labels.","url":"/component/tooltip","category":"component"},{"name":"Upload","description":"File picker with drag-and-drop for selecting one or more files to upload. Use Upload when forms need images, documents, or other file input with accept filters.","url":"/component/upload","category":"component"},{"name":"VirtualGrid","description":"Renders only visible cells of a large grid for better scroll performance. Use VirtualGrid when a dense grid would be too heavy to mount all at once.","url":"/component/virtualGrid","category":"component"},{"name":"VirtualList","description":"Renders only visible rows of a long list for better scroll performance. Use VirtualList for feeds and catalogs with thousands of items.","url":"/component/virtualList","category":"component"}]
@@ -0,0 +1,22 @@
1
+ import { createHighlighter, type Highlighter, type ThemeRegistrationRaw } from 'shiki'
2
+ import indielayerTheme from '../components/common/Indielayer-theme.json'
3
+
4
+ /** Theme id from {@link indielayerTheme} `name` field. */
5
+ export const INDIELAYER_THEME = 'Indielayer' as const
6
+
7
+ /** Languages used in docs code snippets. */
8
+ export const DOCS_CODE_LANGS = ['js', 'ts', 'vue-html', 'bash', 'vue'] as const
9
+
10
+ export type DocsCodeLang = typeof DOCS_CODE_LANGS[number]
11
+
12
+ // VS Code theme JSON uses `tokenColors`; Shiki accepts it at runtime via normalization.
13
+ const theme = indielayerTheme as unknown as ThemeRegistrationRaw
14
+
15
+ /**
16
+ * Long-lived highlighter for docs code blocks.
17
+ * @see https://shiki.style/guide/install#highlighter-usage
18
+ */
19
+ export const docsHighlighter: Promise<Highlighter> = createHighlighter({
20
+ langs: [...DOCS_CODE_LANGS],
21
+ themes: [theme],
22
+ })
package/exports/nuxt.mjs CHANGED
@@ -6,7 +6,7 @@ export default defineNuxtModule({
6
6
  name: '@indielayer/ui',
7
7
  configKey: 'indielayer',
8
8
  compatibility: {
9
- nuxt: '^3.0.0',
9
+ nuxt: '>=3.0.0',
10
10
  },
11
11
  },
12
12
  defaults: {
@@ -1,6 +1,7 @@
1
1
  import { defineNuxtPlugin } from '#app'
2
2
  import { BaseTheme, injectIconsKey, injectOptionsKey, injectThemeKey, createUI } from '../src'
3
3
 
4
+ // Configure via runtimeConfig.public.indielayerOptions (theme, icons, defaults, etc.)
4
5
  export default defineNuxtPlugin((nuxtApp) => {
5
6
  const UI = createUI({
6
7
  ...nuxtApp.$config.public?.indielayerOptions,