@indielayer/ui 1.3.0 → 1.5.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 (479) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +4 -4
  3. package/docs/App.vue +25 -0
  4. package/docs/assets/css/hljs.css +302 -0
  5. package/docs/assets/css/tailwind.css +46 -0
  6. package/docs/assets/images/error.svg +1 -0
  7. package/docs/assets/images/logo.png +0 -0
  8. package/docs/assets/images/logo_mini.svg +10 -0
  9. package/docs/assets/images/logo_white.png +0 -0
  10. package/docs/assets/images/logo_word.svg +12 -0
  11. package/docs/assets/images/logo_word_dark.svg +12 -0
  12. package/docs/assets/images/photo1.jpeg +0 -0
  13. package/docs/assets/images/photo2.jpeg +0 -0
  14. package/docs/components/Cookies.vue +42 -0
  15. package/docs/components/common/CodePreview.vue +80 -0
  16. package/docs/components/common/CodeSnippet.vue +47 -0
  17. package/docs/components/common/CopyButton.vue +50 -0
  18. package/docs/components/common/DocumentPage.vue +285 -0
  19. package/docs/components/common/Indielayer-theme.json +702 -0
  20. package/docs/components/common/MultiSnippet.vue +26 -0
  21. package/docs/components/menu/DocsMenu.vue +96 -0
  22. package/docs/components/toolbar/PreToolbar.vue +16 -0
  23. package/docs/components/toolbar/Toolbar.vue +76 -0
  24. package/docs/components/toolbar/ToolbarColorToggle.vue +49 -0
  25. package/docs/icons.ts +61 -0
  26. package/docs/layouts/default.vue +33 -0
  27. package/docs/layouts/simple.vue +3 -0
  28. package/docs/main.ts +33 -0
  29. package/docs/pages/colors.vue +120 -0
  30. package/docs/pages/component/accordion/index.vue +29 -0
  31. package/docs/pages/component/accordion/usage.vue +30 -0
  32. package/docs/pages/component/alert/index.vue +29 -0
  33. package/docs/pages/component/alert/usage.vue +18 -0
  34. package/docs/pages/component/avatar/index.vue +43 -0
  35. package/docs/pages/component/avatar/size.vue +9 -0
  36. package/docs/pages/component/avatar/usage.vue +9 -0
  37. package/docs/pages/component/avatar/variants.vue +8 -0
  38. package/docs/pages/component/badge/index.vue +29 -0
  39. package/docs/pages/component/badge/usage.vue +50 -0
  40. package/docs/pages/component/breadcrumbs/index.vue +29 -0
  41. package/docs/pages/component/breadcrumbs/usage.vue +19 -0
  42. package/docs/pages/component/button/button-group.vue +22 -0
  43. package/docs/pages/component/button/icons.vue +9 -0
  44. package/docs/pages/component/button/index.vue +64 -0
  45. package/docs/pages/component/button/size.vue +9 -0
  46. package/docs/pages/component/button/states.vue +6 -0
  47. package/docs/pages/component/button/usage.vue +12 -0
  48. package/docs/pages/component/button/variants.vue +7 -0
  49. package/docs/pages/component/card/index.vue +29 -0
  50. package/docs/pages/component/card/usage.vue +6 -0
  51. package/docs/pages/component/carousel/index.vue +29 -0
  52. package/docs/pages/component/carousel/usage.vue +10 -0
  53. package/docs/pages/component/checkbox/index.vue +50 -0
  54. package/docs/pages/component/checkbox/size.vue +9 -0
  55. package/docs/pages/component/checkbox/states.vue +9 -0
  56. package/docs/pages/component/checkbox/usage.vue +15 -0
  57. package/docs/pages/component/checkbox/variants.vue +8 -0
  58. package/docs/pages/component/container/index.vue +29 -0
  59. package/docs/pages/component/container/usage.vue +3 -0
  60. package/docs/pages/component/divider/index.vue +43 -0
  61. package/docs/pages/component/divider/label.vue +12 -0
  62. package/docs/pages/component/divider/usage.vue +7 -0
  63. package/docs/pages/component/divider/vertical.vue +7 -0
  64. package/docs/pages/component/drawer/index.vue +29 -0
  65. package/docs/pages/component/drawer/usage.vue +56 -0
  66. package/docs/pages/component/form/index.vue +29 -0
  67. package/docs/pages/component/form/usage.vue +96 -0
  68. package/docs/pages/component/formGroup/index.vue +29 -0
  69. package/docs/pages/component/formGroup/usage.vue +47 -0
  70. package/docs/pages/component/icon/index.vue +36 -0
  71. package/docs/pages/component/icon/usage.vue +6 -0
  72. package/docs/pages/component/icon/variants.vue +14 -0
  73. package/docs/pages/component/image/index.vue +29 -0
  74. package/docs/pages/component/image/usage.vue +8 -0
  75. package/docs/pages/component/input/index.vue +50 -0
  76. package/docs/pages/component/input/size.vue +13 -0
  77. package/docs/pages/component/input/states.vue +12 -0
  78. package/docs/pages/component/input/usage.vue +14 -0
  79. package/docs/pages/component/input/variants.vue +18 -0
  80. package/docs/pages/component/link/index.vue +29 -0
  81. package/docs/pages/component/link/usage.vue +12 -0
  82. package/docs/pages/component/loader/index.vue +29 -0
  83. package/docs/pages/component/loader/usage.vue +7 -0
  84. package/docs/pages/component/menu/index.vue +29 -0
  85. package/docs/pages/component/menu/usage.vue +69 -0
  86. package/docs/pages/component/modal/composed.vue +71 -0
  87. package/docs/pages/component/modal/index.vue +36 -0
  88. package/docs/pages/component/modal/usage.vue +66 -0
  89. package/docs/pages/component/notifications/index.vue +29 -0
  90. package/docs/pages/component/notifications/usage.vue +56 -0
  91. package/docs/pages/component/pagination/index.vue +29 -0
  92. package/docs/pages/component/pagination/usage.vue +17 -0
  93. package/docs/pages/component/popover/index.vue +29 -0
  94. package/docs/pages/component/popover/usage.vue +21 -0
  95. package/docs/pages/component/progress/index.vue +36 -0
  96. package/docs/pages/component/progress/usage.vue +7 -0
  97. package/docs/pages/component/progress/variants.vue +18 -0
  98. package/docs/pages/component/radio/index.vue +50 -0
  99. package/docs/pages/component/radio/size.vue +15 -0
  100. package/docs/pages/component/radio/states.vue +13 -0
  101. package/docs/pages/component/radio/usage.vue +14 -0
  102. package/docs/pages/component/radio/variants.vue +39 -0
  103. package/docs/pages/component/scroll/horizontal.vue +14 -0
  104. package/docs/pages/component/scroll/index.vue +36 -0
  105. package/docs/pages/component/scroll/usage.vue +5 -0
  106. package/docs/pages/component/select/index.vue +43 -0
  107. package/docs/pages/component/select/states.vue +22 -0
  108. package/docs/pages/component/select/usage.vue +46 -0
  109. package/docs/pages/component/select/variants.vue +23 -0
  110. package/docs/pages/component/skeleton/index.vue +29 -0
  111. package/docs/pages/component/skeleton/usage.vue +10 -0
  112. package/docs/pages/component/slider/index.vue +29 -0
  113. package/docs/pages/component/slider/usage.vue +15 -0
  114. package/docs/pages/component/spacer/index.vue +29 -0
  115. package/docs/pages/component/spacer/usage.vue +8 -0
  116. package/docs/pages/component/spinner/index.vue +36 -0
  117. package/docs/pages/component/spinner/usage.vue +3 -0
  118. package/docs/pages/component/spinner/variants.vue +9 -0
  119. package/docs/pages/component/stepper/index.vue +29 -0
  120. package/docs/pages/component/stepper/usage.vue +21 -0
  121. package/docs/pages/component/table/index.vue +36 -0
  122. package/docs/pages/component/table/states.vue +28 -0
  123. package/docs/pages/component/table/usage.vue +107 -0
  124. package/docs/pages/component/tabs/index.vue +29 -0
  125. package/docs/pages/component/tabs/usage.vue +142 -0
  126. package/docs/pages/component/tag/index.vue +29 -0
  127. package/docs/pages/component/tag/usage.vue +27 -0
  128. package/docs/pages/component/textarea/index.vue +43 -0
  129. package/docs/pages/component/textarea/states.vue +13 -0
  130. package/docs/pages/component/textarea/usage.vue +19 -0
  131. package/docs/pages/component/textarea/variants.vue +15 -0
  132. package/docs/pages/component/toggle/index.vue +43 -0
  133. package/docs/pages/component/toggle/states.vue +13 -0
  134. package/docs/pages/component/toggle/usage.vue +12 -0
  135. package/docs/pages/component/toggle/variants.vue +15 -0
  136. package/docs/pages/component/tooltip/index.vue +29 -0
  137. package/docs/pages/component/tooltip/usage.vue +12 -0
  138. package/docs/pages/error.vue +6 -0
  139. package/docs/pages/icons.vue +101 -0
  140. package/docs/pages/index.vue +153 -0
  141. package/docs/pages/play.vue +7 -0
  142. package/docs/pages/typography.vue +91 -0
  143. package/docs/router/index.ts +77 -0
  144. package/lib/common/icons.d.ts +4 -1
  145. package/lib/common/icons.js +14 -11
  146. package/lib/components/accordion/Accordion.vue.d.ts +63 -0
  147. package/lib/components/accordion/Accordion.vue.js +40 -0
  148. package/lib/components/accordion/Accordion.vue2.js +4 -0
  149. package/lib/components/{collapse/Collapse.vue.d.ts → accordion/AccordionItem.vue.d.ts} +33 -18
  150. package/lib/components/accordion/AccordionItem.vue.js +140 -0
  151. package/lib/components/accordion/AccordionItem.vue2.js +4 -0
  152. package/lib/components/accordion/index.d.ts +4 -0
  153. package/lib/components/accordion/theme/Accordion.base.theme.d.ts +3 -0
  154. package/lib/components/accordion/theme/Accordion.base.theme.js +8 -0
  155. package/lib/components/accordion/theme/Accordion.carbon.theme.d.ts +3 -0
  156. package/lib/components/accordion/theme/Accordion.carbon.theme.js +5 -0
  157. package/lib/components/accordion/theme/AccordionItem.base.theme.d.ts +3 -0
  158. package/lib/components/accordion/theme/AccordionItem.base.theme.js +16 -0
  159. package/lib/components/accordion/theme/AccordionItem.carbon.theme.d.ts +3 -0
  160. package/lib/components/accordion/theme/AccordionItem.carbon.theme.js +5 -0
  161. package/lib/components/alert/theme/Alert.carbon.theme.js +39 -3
  162. package/lib/components/avatar/Avatar.vue.d.ts +2 -2
  163. package/lib/components/badge/Badge.vue.d.ts +2 -2
  164. package/lib/components/badge/Badge.vue.js +7 -7
  165. package/lib/components/breadcrumbs/theme/Breadcrumbs.base.theme.js +1 -1
  166. package/lib/components/button/Button.vue.d.ts +3 -3
  167. package/lib/components/button/ButtonGroup.vue.d.ts +3 -3
  168. package/lib/components/button/theme/Button.base.theme.js +7 -7
  169. package/lib/components/button/theme/Button.carbon.theme.js +1 -1
  170. package/lib/components/card/theme/Card.base.theme.js +1 -1
  171. package/lib/components/carousel/CarouselSlide.vue.d.ts +19 -8
  172. package/lib/components/carousel/CarouselSlide.vue.js +2 -2
  173. package/lib/components/carousel/CarouselSlide.vue2.js +25 -18
  174. package/lib/components/checkbox/Checkbox.vue.d.ts +25 -10
  175. package/lib/components/checkbox/Checkbox.vue2.js +106 -72
  176. package/lib/components/checkbox/theme/Checkbox.base.theme.js +38 -31
  177. package/lib/components/checkbox/theme/Checkbox.carbon.theme.js +38 -31
  178. package/lib/components/container/Container.vue.d.ts +13 -0
  179. package/lib/components/container/Container.vue.js +15 -11
  180. package/lib/components/container/theme/Container.base.theme.js +7 -4
  181. package/lib/components/divider/Divider.vue.js +14 -14
  182. package/lib/components/divider/theme/Divider.base.theme.js +2 -2
  183. package/lib/components/drawer/Drawer.vue.d.ts +4 -4
  184. package/lib/components/drawer/Drawer.vue.js +2 -2
  185. package/lib/components/drawer/theme/Drawer.base.theme.js +1 -1
  186. package/lib/components/form/Form.vue.d.ts +25 -2
  187. package/lib/components/form/Form.vue.js +67 -36
  188. package/lib/components/form/theme/Form.base.theme.js +7 -3
  189. package/lib/components/form/theme/Form.carbon.theme.js +10 -3
  190. package/lib/components/formGroup/FormGroup.vue.d.ts +135 -0
  191. package/lib/components/formGroup/FormGroup.vue.js +83 -0
  192. package/lib/components/formGroup/FormGroup.vue2.js +4 -0
  193. package/lib/components/formGroup/__tests__/FormGroup.spec.d.ts +1 -0
  194. package/lib/components/formGroup/index.d.ts +2 -0
  195. package/lib/components/formGroup/theme/FormGroup.base.theme.d.ts +3 -0
  196. package/lib/components/formGroup/theme/FormGroup.base.theme.js +11 -0
  197. package/lib/components/formGroup/theme/FormGroup.carbon.theme.d.ts +3 -0
  198. package/lib/components/formGroup/theme/FormGroup.carbon.theme.js +11 -0
  199. package/lib/components/icon/theme/Icon.base.theme.js +2 -2
  200. package/lib/components/icon/theme/Icon.carbon.theme.js +4 -4
  201. package/lib/components/index.d.ts +3 -1
  202. package/lib/components/index.js +102 -95
  203. package/lib/components/input/Input.vue.d.ts +15 -9
  204. package/lib/components/input/Input.vue.js +43 -42
  205. package/lib/components/input/theme/Input.base.theme.js +10 -10
  206. package/lib/components/input/theme/Input.carbon.theme.js +10 -10
  207. package/lib/components/inputFooter/theme/InputFooter.base.theme.js +3 -3
  208. package/lib/components/inputFooter/theme/InputFooter.carbon.theme.js +3 -3
  209. package/lib/components/label/Label.vue.d.ts +6 -3
  210. package/lib/components/label/Label.vue.js +26 -20
  211. package/lib/components/label/theme/Label.base.theme.js +1 -1
  212. package/lib/components/label/theme/Label.carbon.theme.js +8 -7
  213. package/lib/components/link/Link.vue.d.ts +1 -1
  214. package/lib/components/link/Link.vue.js +1 -1
  215. package/lib/components/link/Link.vue2.js +4 -4
  216. package/lib/components/link/theme/Link.base.theme.js +4 -4
  217. package/lib/components/link/theme/Link.carbon.theme.js +23 -3
  218. package/lib/components/loader/theme/Loader.base.theme.js +1 -1
  219. package/lib/components/loader/theme/Loader.carbon.theme.js +2 -2
  220. package/lib/components/menu/Menu.vue.d.ts +6 -5
  221. package/lib/components/menu/Menu.vue.js +44 -41
  222. package/lib/components/menu/MenuItem.vue.d.ts +4 -4
  223. package/lib/components/menu/MenuItem.vue.js +2 -2
  224. package/lib/components/menu/MenuItem.vue2.js +1 -1
  225. package/lib/components/menu/theme/MenuItem.base.theme.js +22 -32
  226. package/lib/components/modal/Modal.vue.d.ts +102 -3
  227. package/lib/components/modal/Modal.vue.js +157 -100
  228. package/lib/components/modal/theme/Modal.base.theme.js +15 -9
  229. package/lib/components/modal/theme/Modal.carbon.theme.js +27 -3
  230. package/lib/components/notifications/Notifications.vue.js +57 -54
  231. package/lib/components/notifications/theme/Notifications.base.theme.js +2 -2
  232. package/lib/components/notifications/theme/Notifications.carbon.theme.js +8 -3
  233. package/lib/components/pagination/Pagination.vue.js +27 -27
  234. package/lib/components/popover/Popover.vue.d.ts +16 -3
  235. package/lib/components/popover/Popover.vue.js +13 -8
  236. package/lib/components/popover/Popover.vue2.js +3 -2
  237. package/lib/components/popover/Popover.vue3.js +2 -3
  238. package/lib/components/popover/theme/PopoverContainer.base.theme.js +4 -4
  239. package/lib/components/popover/theme/PopoverContainer.carbon.theme.js +4 -4
  240. package/lib/components/progress/Progress.vue.js +11 -11
  241. package/lib/components/progress/theme/Progress.base.theme.js +10 -10
  242. package/lib/components/radio/Radio.vue.d.ts +20 -12
  243. package/lib/components/radio/Radio.vue2.js +81 -66
  244. package/lib/components/radio/theme/Radio.base.theme.js +34 -31
  245. package/lib/components/radio/theme/Radio.carbon.theme.js +33 -30
  246. package/lib/components/select/Select.vue.d.ts +29 -10
  247. package/lib/components/select/Select.vue.js +121 -119
  248. package/lib/components/select/theme/Select.base.theme.js +6 -6
  249. package/lib/components/select/theme/Select.carbon.theme.js +11 -11
  250. package/lib/components/skeleton/Skeleton.vue.d.ts +19 -1
  251. package/lib/components/skeleton/Skeleton.vue.js +25 -15
  252. package/lib/components/skeleton/theme/Skeleton.base.theme.js +7 -4
  253. package/lib/components/slider/Slider.vue.d.ts +15 -6
  254. package/lib/components/slider/Slider.vue.js +4 -5
  255. package/lib/components/slider/theme/Slider.carbon.theme.js +8 -8
  256. package/lib/components/spinner/Spinner.vue.d.ts +1 -1
  257. package/lib/components/spinner/Spinner.vue.js +16 -17
  258. package/lib/components/stepper/Stepper.vue.d.ts +137 -0
  259. package/lib/components/stepper/Stepper.vue.js +128 -0
  260. package/lib/components/stepper/Stepper.vue2.js +4 -0
  261. package/lib/components/stepper/__tests__/Stepper.spec.d.ts +1 -0
  262. package/lib/components/stepper/index.d.ts +2 -0
  263. package/lib/components/stepper/theme/Stepper.base.theme.d.ts +3 -0
  264. package/lib/components/stepper/theme/Stepper.base.theme.js +20 -0
  265. package/lib/components/stepper/theme/Stepper.carbon.theme.d.ts +3 -0
  266. package/lib/components/{collapse/theme/Collapse.carbon.theme.js → stepper/theme/Stepper.carbon.theme.js} +1 -1
  267. package/lib/components/tab/Tab.vue.d.ts +11 -5
  268. package/lib/components/tab/Tab.vue.js +72 -56
  269. package/lib/components/tab/TabGroup.vue.d.ts +1 -1
  270. package/lib/components/tab/TabGroup.vue.js +5 -5
  271. package/lib/components/tab/theme/Tab.base.theme.js +2 -1
  272. package/lib/components/tab/theme/Tab.carbon.theme.js +6 -5
  273. package/lib/components/tab/theme/TabGroup.base.theme.js +15 -15
  274. package/lib/components/tab/theme/TabGroup.carbon.theme.js +29 -3
  275. package/lib/components/table/Table.vue.d.ts +115 -9
  276. package/lib/components/table/Table.vue.js +188 -79
  277. package/lib/components/table/TableCell.vue.d.ts +4 -5
  278. package/lib/components/table/TableCell.vue.js +21 -22
  279. package/lib/components/table/TableHead.vue.d.ts +16 -0
  280. package/lib/components/table/TableHead.vue.js +21 -0
  281. package/lib/components/table/TableHead.vue2.js +4 -0
  282. package/lib/components/table/TableHeader.vue.d.ts +4 -0
  283. package/lib/components/table/TableHeader.vue.js +45 -54
  284. package/lib/components/table/TableRow.vue.d.ts +15 -1
  285. package/lib/components/table/TableRow.vue.js +21 -25
  286. package/lib/components/table/index.d.ts +4 -2
  287. package/lib/components/table/theme/Table.base.theme.js +6 -5
  288. package/lib/components/table/theme/Table.carbon.theme.js +11 -3
  289. package/lib/components/table/theme/TableCell.base.theme.js +3 -3
  290. package/lib/components/table/theme/TableCell.carbon.theme.js +9 -3
  291. package/lib/components/table/theme/TableHead.base.theme.d.ts +3 -0
  292. package/lib/components/table/theme/TableHead.base.theme.js +9 -0
  293. package/lib/components/table/theme/TableHead.carbon.theme.d.ts +3 -0
  294. package/lib/components/table/theme/TableHead.carbon.theme.js +9 -0
  295. package/lib/components/table/theme/TableHeader.base.theme.d.ts +3 -0
  296. package/lib/components/table/theme/TableHeader.base.theme.js +12 -0
  297. package/lib/components/table/theme/TableHeader.carbon.theme.d.ts +3 -0
  298. package/lib/components/table/theme/TableHeader.carbon.theme.js +12 -0
  299. package/lib/components/table/theme/TableRow.base.theme.d.ts +3 -0
  300. package/lib/components/table/theme/TableRow.base.theme.js +11 -0
  301. package/lib/components/table/theme/TableRow.carbon.theme.d.ts +3 -0
  302. package/lib/components/table/theme/TableRow.carbon.theme.js +11 -0
  303. package/lib/components/tag/Tag.vue.d.ts +3 -3
  304. package/lib/components/tag/Tag.vue.js +18 -18
  305. package/lib/components/tag/theme/Tag.base.theme.js +14 -13
  306. package/lib/components/tag/theme/Tag.carbon.theme.js +14 -14
  307. package/lib/components/textarea/Textarea.vue.d.ts +18 -8
  308. package/lib/components/textarea/Textarea.vue.js +44 -42
  309. package/lib/components/textarea/theme/Textarea.base.theme.js +6 -6
  310. package/lib/components/textarea/theme/Textarea.carbon.theme.js +6 -6
  311. package/lib/components/toggle/Toggle.vue.d.ts +15 -12
  312. package/lib/components/toggle/Toggle.vue.js +51 -53
  313. package/lib/components/toggle/theme/Toggle.base.theme.js +1 -1
  314. package/lib/components/tooltip/ToggleTip.vue.d.ts +14 -0
  315. package/lib/components/tooltip/ToggleTip.vue.js +29 -0
  316. package/lib/components/tooltip/ToggleTip.vue2.js +4 -0
  317. package/lib/components/tooltip/Tooltip.vue.d.ts +22 -3
  318. package/lib/components/tooltip/Tooltip.vue.js +26 -17
  319. package/lib/components/tooltip/__tests__/ToggleTip.spec.d.ts +1 -0
  320. package/lib/components/tooltip/index.d.ts +2 -0
  321. package/lib/composables/keys.d.ts +5 -1
  322. package/lib/composables/keys.js +8 -6
  323. package/lib/composables/useColors.js +9 -9
  324. package/lib/composables/useFocusTrap.d.ts +6 -0
  325. package/lib/composables/useFocusTrap.js +45 -0
  326. package/lib/composables/useInputtable.d.ts +7 -0
  327. package/lib/composables/useInputtable.js +64 -46
  328. package/lib/index.js +139 -129
  329. package/lib/index.umd.js +7 -3
  330. package/lib/nuxt.mjs +33 -0
  331. package/lib/nuxt.plugin.js +8 -0
  332. package/lib/tailwind.preset.js +40 -0
  333. package/lib/theme.d.ts +8 -2
  334. package/lib/themes/base/components.d.ts +7 -1
  335. package/lib/themes/base/components.js +98 -86
  336. package/lib/themes/base/index.js +3 -6
  337. package/lib/themes/base/styles.css.js +4 -0
  338. package/lib/themes/carbon/components.d.ts +7 -1
  339. package/lib/themes/carbon/components.js +98 -86
  340. package/lib/version.d.ts +1 -1
  341. package/lib/version.js +1 -1
  342. package/package.json +8 -2
  343. package/src/common/icons.ts +4 -1
  344. package/src/components/accordion/Accordion.vue +55 -0
  345. package/src/components/{collapse/Collapse.vue → accordion/AccordionItem.vue} +51 -32
  346. package/src/components/accordion/__tests__/Accordion.spec.ts +11 -0
  347. package/src/components/accordion/index.ts +4 -0
  348. package/src/components/accordion/theme/Accordion.base.theme.ts +9 -0
  349. package/src/components/accordion/theme/Accordion.carbon.theme.ts +7 -0
  350. package/src/components/accordion/theme/AccordionItem.base.theme.ts +38 -0
  351. package/src/components/accordion/theme/AccordionItem.carbon.theme.ts +7 -0
  352. package/src/components/alert/theme/Alert.carbon.theme.ts +54 -2
  353. package/src/components/badge/Badge.vue +1 -1
  354. package/src/components/breadcrumbs/theme/Breadcrumbs.base.theme.ts +1 -1
  355. package/src/components/button/theme/Button.base.theme.ts +2 -2
  356. package/src/components/button/theme/Button.carbon.theme.ts +1 -1
  357. package/src/components/card/theme/Card.base.theme.ts +1 -1
  358. package/src/components/carousel/CarouselSlide.vue +9 -4
  359. package/src/components/checkbox/Checkbox.vue +69 -20
  360. package/src/components/checkbox/theme/Checkbox.base.theme.ts +22 -8
  361. package/src/components/checkbox/theme/Checkbox.carbon.theme.ts +18 -4
  362. package/src/components/container/Container.vue +4 -0
  363. package/src/components/container/theme/Container.base.theme.ts +7 -1
  364. package/src/components/divider/Divider.vue +1 -1
  365. package/src/components/divider/theme/Divider.base.theme.ts +2 -2
  366. package/src/components/drawer/Drawer.vue +2 -2
  367. package/src/components/drawer/theme/Drawer.base.theme.ts +1 -1
  368. package/src/components/form/Form.vue +26 -5
  369. package/src/components/form/theme/Form.base.theme.ts +9 -1
  370. package/src/components/form/theme/Form.carbon.theme.ts +12 -2
  371. package/src/components/formGroup/FormGroup.vue +117 -0
  372. package/src/components/formGroup/__tests__/FormGroup.spec.ts +11 -0
  373. package/src/components/formGroup/index.ts +2 -0
  374. package/src/components/formGroup/theme/FormGroup.base.theme.ts +16 -0
  375. package/src/components/formGroup/theme/FormGroup.carbon.theme.ts +16 -0
  376. package/src/components/icon/theme/Icon.base.theme.ts +3 -3
  377. package/src/components/icon/theme/Icon.carbon.theme.ts +3 -4
  378. package/src/components/index.ts +3 -1
  379. package/src/components/input/Input.vue +5 -4
  380. package/src/components/input/theme/Input.base.theme.ts +5 -5
  381. package/src/components/input/theme/Input.carbon.theme.ts +6 -6
  382. package/src/components/inputFooter/theme/InputFooter.base.theme.ts +3 -3
  383. package/src/components/inputFooter/theme/InputFooter.carbon.theme.ts +3 -3
  384. package/src/components/label/Label.vue +4 -1
  385. package/src/components/label/theme/Label.base.theme.ts +1 -1
  386. package/src/components/label/theme/Label.carbon.theme.ts +9 -4
  387. package/src/components/link/Link.vue +1 -1
  388. package/src/components/link/theme/Link.carbon.theme.ts +23 -2
  389. package/src/components/loader/theme/Loader.base.theme.ts +1 -1
  390. package/src/components/loader/theme/Loader.carbon.theme.ts +2 -2
  391. package/src/components/menu/Menu.vue +11 -8
  392. package/src/components/menu/MenuItem.vue +1 -1
  393. package/src/components/menu/theme/MenuItem.base.theme.ts +32 -36
  394. package/src/components/modal/Modal.vue +117 -52
  395. package/src/components/modal/theme/Modal.base.theme.ts +31 -12
  396. package/src/components/modal/theme/Modal.carbon.theme.ts +55 -2
  397. package/src/components/notifications/Notifications.vue +6 -6
  398. package/src/components/notifications/theme/Notifications.base.theme.ts +2 -2
  399. package/src/components/notifications/theme/Notifications.carbon.theme.ts +12 -2
  400. package/src/components/pagination/Pagination.vue +3 -3
  401. package/src/components/popover/Popover.vue +77 -2
  402. package/src/components/popover/theme/PopoverContainer.base.theme.ts +1 -1
  403. package/src/components/popover/theme/PopoverContainer.carbon.theme.ts +1 -1
  404. package/src/components/progress/Progress.vue +1 -1
  405. package/src/components/progress/theme/Progress.base.theme.ts +2 -2
  406. package/src/components/radio/Radio.vue +39 -15
  407. package/src/components/radio/theme/Radio.base.theme.ts +15 -9
  408. package/src/components/radio/theme/Radio.carbon.theme.ts +14 -8
  409. package/src/components/select/Select.vue +17 -15
  410. package/src/components/select/theme/Select.base.theme.ts +8 -8
  411. package/src/components/select/theme/Select.carbon.theme.ts +9 -9
  412. package/src/components/skeleton/Skeleton.vue +18 -2
  413. package/src/components/skeleton/theme/Skeleton.base.theme.ts +8 -1
  414. package/src/components/slider/Slider.vue +2 -3
  415. package/src/components/slider/theme/Slider.carbon.theme.ts +1 -1
  416. package/src/components/spinner/Spinner.vue +2 -2
  417. package/src/components/stepper/Stepper.vue +153 -0
  418. package/src/components/{collapse/__tests__/Collapse.spec.ts → stepper/__tests__/Stepper.spec.ts} +3 -3
  419. package/src/components/stepper/index.ts +6 -0
  420. package/src/components/stepper/theme/Stepper.base.theme.ts +45 -0
  421. package/src/components/stepper/theme/Stepper.carbon.theme.ts +7 -0
  422. package/src/components/tab/Tab.vue +21 -7
  423. package/src/components/tab/TabGroup.vue +2 -2
  424. package/src/components/tab/theme/Tab.base.theme.ts +2 -0
  425. package/src/components/tab/theme/Tab.carbon.theme.ts +4 -2
  426. package/src/components/tab/theme/TabGroup.base.theme.ts +4 -4
  427. package/src/components/tab/theme/TabGroup.carbon.theme.ts +50 -2
  428. package/src/components/table/Table.vue +125 -27
  429. package/src/components/table/TableCell.vue +5 -6
  430. package/src/components/table/TableHead.vue +25 -0
  431. package/src/components/table/TableHeader.vue +35 -56
  432. package/src/components/table/TableRow.vue +19 -17
  433. package/src/components/table/index.ts +4 -2
  434. package/src/components/table/theme/Table.base.theme.ts +9 -7
  435. package/src/components/table/theme/Table.carbon.theme.ts +18 -2
  436. package/src/components/table/theme/TableCell.base.theme.ts +1 -1
  437. package/src/components/table/theme/TableCell.carbon.theme.ts +24 -2
  438. package/src/components/table/theme/TableHead.base.theme.ts +10 -0
  439. package/src/components/table/theme/TableHead.carbon.theme.ts +10 -0
  440. package/src/components/table/theme/TableHeader.base.theme.ts +28 -0
  441. package/src/components/table/theme/TableHeader.carbon.theme.ts +28 -0
  442. package/src/components/table/theme/TableRow.base.theme.ts +21 -0
  443. package/src/components/table/theme/TableRow.carbon.theme.ts +21 -0
  444. package/src/components/tag/Tag.vue +4 -4
  445. package/src/components/tag/theme/Tag.base.theme.ts +4 -4
  446. package/src/components/tag/theme/Tag.carbon.theme.ts +5 -6
  447. package/src/components/textarea/Textarea.vue +6 -4
  448. package/src/components/textarea/theme/Textarea.base.theme.ts +5 -4
  449. package/src/components/textarea/theme/Textarea.carbon.theme.ts +5 -5
  450. package/src/components/toggle/Toggle.vue +5 -7
  451. package/src/components/toggle/theme/Toggle.base.theme.ts +1 -1
  452. package/src/components/tooltip/ToggleTip.vue +31 -0
  453. package/src/components/tooltip/Tooltip.vue +14 -4
  454. package/src/components/tooltip/__tests__/ToggleTip.spec.ts +11 -0
  455. package/src/components/tooltip/index.ts +3 -0
  456. package/src/composables/keys.ts +5 -1
  457. package/src/composables/useColors.ts +1 -1
  458. package/src/composables/useFocusTrap.ts +106 -0
  459. package/src/composables/useInputtable.ts +32 -3
  460. package/src/theme.ts +14 -2
  461. package/src/themes/base/components.ts +7 -1
  462. package/src/themes/base/index.ts +0 -3
  463. package/src/themes/base/styles.css +4 -0
  464. package/src/themes/carbon/components.ts +7 -1
  465. package/src/version.ts +1 -1
  466. package/volar.d.ts +6 -1
  467. package/lib/components/collapse/Collapse.vue.js +0 -131
  468. package/lib/components/collapse/Collapse.vue2.js +0 -4
  469. package/lib/components/collapse/index.d.ts +0 -2
  470. package/lib/components/collapse/theme/Collapse.base.theme.d.ts +0 -3
  471. package/lib/components/collapse/theme/Collapse.base.theme.js +0 -10
  472. package/lib/components/collapse/theme/Collapse.carbon.theme.d.ts +0 -3
  473. package/lib/components/table/TableHead.d.ts +0 -2
  474. package/lib/components/table/TableHead.js +0 -19
  475. package/src/components/collapse/index.ts +0 -2
  476. package/src/components/collapse/theme/Collapse.base.theme.ts +0 -13
  477. package/src/components/collapse/theme/Collapse.carbon.theme.ts +0 -7
  478. package/src/components/table/TableHead.tsx +0 -14
  479. /package/lib/components/{collapse/__tests__/Collapse.spec.d.ts → accordion/__tests__/Accordion.spec.d.ts} +0 -0
@@ -0,0 +1,29 @@
1
+ <script setup lang="ts">
2
+ import { XDrawer } from '@indielayer/ui'
3
+ import UsageDemoCode from './usage.vue?raw'
4
+ import UsageDemo from './usage.vue'
5
+
6
+ const title = 'Drawer'
7
+ const description = 'Drawers are used to display content in a side panel.'
8
+ const components = [XDrawer]
9
+ const demos = [{
10
+ name: 'Usage',
11
+ description: '',
12
+ code: UsageDemoCode,
13
+ component: UsageDemo,
14
+ }]
15
+ const back = 'divider'
16
+ const next = 'icon'
17
+ </script>
18
+
19
+ <template>
20
+ <document-page
21
+ github="https://github.com/indielayer/ui/blob/main/packages/ui/docs/pages/component/drawer"
22
+ :title="title"
23
+ :description="description"
24
+ :components="components"
25
+ :demos="demos"
26
+ :back="back"
27
+ :next="next"
28
+ />
29
+ </template>
@@ -0,0 +1,56 @@
1
+ <script setup>
2
+ import { ref } from 'vue'
3
+
4
+ const el = ref(null)
5
+ const top = ref(false)
6
+ const left = ref(false)
7
+ const right = ref(false)
8
+ const bottom = ref(false)
9
+ const contained = ref(false)
10
+ const breakpoint = ref(false)
11
+ </script>
12
+
13
+ <template>
14
+ <div>
15
+ <div class="space-x-4">
16
+ <x-button @click="left = !left">Toggle left</x-button>
17
+ <x-button @click="right = !right">Toggle right</x-button>
18
+ <x-button @click="bottom = !bottom">Toggle bottom</x-button>
19
+ <x-button @click="top = !top">Toggle top</x-button>
20
+ </div>
21
+ <x-drawer v-model="left">
22
+ <template #header>
23
+ <div class="border-b p-4 text-lg font-semibold">Header</div>
24
+ </template>
25
+ menu
26
+ <template #footer>
27
+ <div class="border-t p-4">
28
+ <x-button color="pink" block light>Sign out</x-button>
29
+ </div>
30
+ </template>
31
+ </x-drawer>
32
+ <x-drawer v-model="right" position="right" width="100">
33
+ content
34
+ </x-drawer>
35
+ <x-drawer v-model="bottom" position="bottom">
36
+ content
37
+ </x-drawer>
38
+ <x-drawer v-model="top" position="top">
39
+ content
40
+ </x-drawer>
41
+ </div>
42
+
43
+ <x-button class="mt-10" @click="breakpoint = !breakpoint">Toggle drawer with breakpoint</x-button>
44
+ <x-drawer v-model="breakpoint" position="left" breakpoint="md">
45
+ <div class="border p-4 my-2">
46
+ I'm only a drawer on mobile
47
+ </div>
48
+ </x-drawer>
49
+
50
+ <x-button class="mt-10" @click="contained = !contained">Toggle contained</x-button>
51
+ <div id="container" ref="el" class="relative h-96 overflow-hidden bg-slate-50 dark:bg-slate-800 border rounded-md my-2">
52
+ <x-drawer v-model="contained" position="left" teleport-to="#container">
53
+ drawer inside #container
54
+ </x-drawer>
55
+ </div>
56
+ </template>
@@ -0,0 +1,29 @@
1
+ <script setup lang="ts">
2
+ import { XForm } from '@indielayer/ui'
3
+ import UsageDemoCode from './usage.vue?raw'
4
+ import UsageDemo from './usage.vue'
5
+
6
+ const title = 'Form'
7
+ const description = 'Forms are used to collect user input.'
8
+ const components = [XForm]
9
+ const demos = [{
10
+ name: 'Usage',
11
+ description: '',
12
+ code: UsageDemoCode,
13
+ component: UsageDemo,
14
+ }]
15
+ const back = 'checkbox'
16
+ const next = 'formGroup'
17
+ </script>
18
+
19
+ <template>
20
+ <document-page
21
+ github="https://github.com/indielayer/ui/blob/main/packages/ui/docs/pages/component/form"
22
+ :title="title"
23
+ :description="description"
24
+ :components="components"
25
+ :demos="demos"
26
+ :back="back"
27
+ :next="next"
28
+ />
29
+ </template>
@@ -0,0 +1,96 @@
1
+ <script setup lang="ts">
2
+ import { useNotifications, type SelectOption } from '@indielayer/ui'
3
+ import { ref } from 'vue'
4
+
5
+ const notifications = useNotifications('notifica')
6
+
7
+ const email = ref('')
8
+ const password = ref('')
9
+ const description = ref('')
10
+ const checked = ref()
11
+ const selected = ref()
12
+ const country = ref('')
13
+ const countries: SelectOption[] = [
14
+ { label: 'United States', value: 'us' },
15
+ { label: 'Canada', value: 'ca' },
16
+ { label: 'Mexico', value: 'mx' },
17
+ ]
18
+ const agree = ref(false)
19
+ const rules = {
20
+ isEmail: (v: string) => /^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/.test(v) || 'E-mail must be valid',
21
+ isRequired: (v: string) => {
22
+ if (Array.isArray(v)) return !!v.length || 'Field is required'
23
+
24
+ return !!v || 'Field is required'
25
+ },
26
+ }
27
+
28
+ function onSubmit(isValid: string) {
29
+ if (isValid) notifications?.success('Valid! Sumitted.')
30
+ else notifications?.error('Invalid! Form has errors')
31
+ }
32
+ </script>
33
+
34
+ <template>
35
+ <x-form title="Edit user information" description="Almost all fields are required" @submit="onSubmit">
36
+ <div class="grid grid-cols-2 gap-4">
37
+ <x-input
38
+ v-model="email"
39
+ :rules="[rules.isRequired, rules.isEmail]"
40
+ name="email"
41
+ label="Email"
42
+ placeholder="Enter your email"
43
+ />
44
+ <x-input
45
+ v-model="password"
46
+ type="password"
47
+ :rules="[rules.isRequired]"
48
+ name="password"
49
+ label="Password"
50
+ placeholder="Enter your password"
51
+ helper="Must be between 8 and 10 characters"
52
+ />
53
+ </div>
54
+
55
+ <x-textarea
56
+ v-model="description"
57
+ name="description"
58
+ label="Description"
59
+ placeholder="Description"
60
+ />
61
+
62
+ <x-form-group v-model="selected" label="Group of checkboxes" :rules="[rules.isRequired]">
63
+ <x-checkbox value="a" label="Lorem ipsum dolor" />
64
+ <x-checkbox value="b" label="Second option" />
65
+ </x-form-group>
66
+
67
+ <x-form-group v-model="checked" label="Group of radio buttons" :rules="[rules.isRequired]">
68
+ <x-radio name="inputName" value="a" label="Option A" />
69
+ <x-radio name="inputName" value="b" label="Option B" />
70
+ </x-form-group>
71
+
72
+ <x-select
73
+ v-model="country"
74
+ :rules="[rules.isRequired]"
75
+ :options="countries"
76
+ name="country"
77
+ placeholder="Select another country"
78
+ label="Country"
79
+ />
80
+
81
+ <x-checkbox
82
+ v-model="agree"
83
+ :rules="[rules.isRequired]"
84
+ name="agree"
85
+ label="Agree with all the terms"
86
+ helper="Have you read them?"
87
+ />
88
+
89
+ <template #secondary-action>
90
+ <x-button ghost>Cancel</x-button>
91
+ </template>
92
+ <template #primary-action>
93
+ <x-button color="primary" type="submit">Submit</x-button>
94
+ </template>
95
+ </x-form>
96
+ </template>
@@ -0,0 +1,29 @@
1
+ <script setup lang="ts">
2
+ import { XFormGroup } from '@indielayer/ui'
3
+ import UsageDemoCode from './usage.vue?raw'
4
+ import UsageDemo from './usage.vue'
5
+
6
+ const title = 'FormGroup'
7
+ const description = 'A form group is a wrapper for form elements.'
8
+ const components = [XFormGroup]
9
+ const demos = [{
10
+ name: 'Usage',
11
+ description: '',
12
+ code: UsageDemoCode,
13
+ component: UsageDemo,
14
+ }]
15
+ const back = 'form'
16
+ const next = 'input'
17
+ </script>
18
+
19
+ <template>
20
+ <document-page
21
+ github="https://github.com/indielayer/ui/blob/main/packages/ui/docs/pages/component/checkbox"
22
+ :title="title"
23
+ :description="description"
24
+ :components="components"
25
+ :demos="demos"
26
+ :back="back"
27
+ :next="next"
28
+ />
29
+ </template>
@@ -0,0 +1,47 @@
1
+ <script setup lang="ts">
2
+ import { useNotifications } from '@indielayer/ui'
3
+ import { ref } from 'vue'
4
+
5
+ const notifications = useNotifications('notifica')
6
+
7
+ const selected = ref(['a'])
8
+ const checked = ref()
9
+
10
+ const rules = {
11
+ isRequired: (v: string) => {
12
+ if (Array.isArray(v)) return !!v.length || 'Field is required'
13
+
14
+ return !!v || 'Field is required'
15
+ },
16
+ }
17
+
18
+ function onSubmit(isValid: string) {
19
+ if (isValid) notifications?.success('Valid! Sumitted.')
20
+ else notifications?.error('Invalid! Form has errors')
21
+ }
22
+ </script>
23
+
24
+ <template>
25
+ <x-form title="Form with form groups" @submit="onSubmit">
26
+ <x-form-group
27
+ v-model="selected"
28
+ label="Group of checkboxes"
29
+ helper="Helper text"
30
+ tooltip="Tooltip text"
31
+ :rules="[rules.isRequired]"
32
+ vertical
33
+ >
34
+ <x-checkbox name="selectgroup" value="a" label="Lorem ipsum dolor" />
35
+ <x-checkbox name="selectgroup" value="b" label="Second option" />
36
+ </x-form-group>
37
+
38
+ <x-form-group v-model="checked" label="Group of radio buttons" helper="Helper text" :rules="[rules.isRequired]">
39
+ <x-radio name="radiogroup" value="a" label="Option A" />
40
+ <x-radio name="radiogroup" value="b" label="Option B" />
41
+ </x-form-group>
42
+
43
+ <template #primary-action>
44
+ <x-button color="primary" type="submit">Submit</x-button>
45
+ </template>
46
+ </x-form>
47
+ </template>
@@ -0,0 +1,36 @@
1
+ <script setup lang="ts">
2
+ import { XIcon } from '@indielayer/ui'
3
+ import UsageDemoCode from './usage.vue?raw'
4
+ import UsageDemo from './usage.vue'
5
+ import VariantsDemoCode from './variants.vue?raw'
6
+ import VariantsDemo from './variants.vue'
7
+
8
+ const title = 'Icon'
9
+ const description = 'Icons are used to represent an action or an object.'
10
+ const components = [XIcon]
11
+ const demos = [{
12
+ name: 'Usage',
13
+ description: '',
14
+ code: UsageDemoCode,
15
+ component: UsageDemo,
16
+ }, {
17
+ name: 'Variants',
18
+ description: '',
19
+ code: VariantsDemoCode,
20
+ component: VariantsDemo,
21
+ }]
22
+ const back = 'drawer'
23
+ const next = 'image'
24
+ </script>
25
+
26
+ <template>
27
+ <document-page
28
+ github="https://github.com/indielayer/ui/blob/main/packages/ui/docs/pages/component/icon"
29
+ :title="title"
30
+ :description="description"
31
+ :components="components"
32
+ :demos="demos"
33
+ :back="back"
34
+ :next="next"
35
+ />
36
+ </template>
@@ -0,0 +1,6 @@
1
+ <template>
2
+ <x-icon icon="fullsvg"/>
3
+ <x-icon icon="smile"/>
4
+ <x-icon icon="github"/>
5
+ <x-icon icon="<polyline points=&quot;20 6 9 17 4 12&quot;></polyline>"/>
6
+ </template>
@@ -0,0 +1,14 @@
1
+ <template>
2
+ <x-icon icon="smile" class="text-primary-500" />
3
+ <x-icon icon="smile" class="text-amber-500" />
4
+
5
+ <x-divider class="my-4"/>
6
+
7
+ <div class="space-x-4">
8
+ <x-icon icon="smile" size="xs"/>
9
+ <x-icon icon="smile" size="sm"/>
10
+ <x-icon icon="smile"/>
11
+ <x-icon icon="smile" size="lg"/>
12
+ <x-icon icon="smile" size="xl"/>
13
+ </div>
14
+ </template>
@@ -0,0 +1,29 @@
1
+ <script setup lang="ts">
2
+ import { XImage } from '@indielayer/ui'
3
+ import UsageDemoCode from './usage.vue?raw'
4
+ import UsageDemo from './usage.vue'
5
+
6
+ const title = 'Image'
7
+ const description = 'Image is used to load an image file with a skeleton as placeholder and on load display the image.'
8
+ const components = [XImage]
9
+ const demos = [{
10
+ name: 'Usage',
11
+ description: '',
12
+ code: UsageDemoCode,
13
+ component: UsageDemo,
14
+ }]
15
+ const back = 'icon'
16
+ const next = 'link'
17
+ </script>
18
+
19
+ <template>
20
+ <document-page
21
+ github="https://github.com/indielayer/ui/blob/main/packages/ui/docs/pages/component/image"
22
+ :title="title"
23
+ :description="description"
24
+ :components="components"
25
+ :demos="demos"
26
+ :back="back"
27
+ :next="next"
28
+ />
29
+ </template>
@@ -0,0 +1,8 @@
1
+ <template>
2
+ <x-image
3
+ src="https://images.unsplash.com/photo-1543352634-99a5d50ae78e?auto=format&fit=crop&q=80&w=2671&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
4
+ width="256"
5
+ height="256"
6
+ alt=""
7
+ />
8
+ </template>
@@ -0,0 +1,50 @@
1
+ <script setup lang="ts">
2
+ import { XInput } from '@indielayer/ui'
3
+ import UsageDemoCode from './usage.vue?raw'
4
+ import UsageDemo from './usage.vue'
5
+ import VariantsDemoCode from './variants.vue?raw'
6
+ import VariantsDemo from './variants.vue'
7
+ import StatesDemoCode from './states.vue?raw'
8
+ import StatesDemo from './states.vue'
9
+ import SizeDemoCode from './size.vue?raw'
10
+ import SizeDemo from './size.vue'
11
+
12
+ const title = 'Input'
13
+ const description = 'This is a text input component that allows users to enter and edit text.'
14
+ const components = [XInput]
15
+ const demos = [{
16
+ name: 'Usage',
17
+ description: '',
18
+ code: UsageDemoCode,
19
+ component: UsageDemo,
20
+ }, {
21
+ name: 'Variants',
22
+ description: '',
23
+ code: VariantsDemoCode,
24
+ component: VariantsDemo,
25
+ }, {
26
+ name: 'Size',
27
+ description: '',
28
+ code: SizeDemoCode,
29
+ component: SizeDemo,
30
+ }, {
31
+ name: 'States',
32
+ description: '',
33
+ code: StatesDemoCode,
34
+ component: StatesDemo,
35
+ }]
36
+ const back = 'form'
37
+ const next = 'radio'
38
+ </script>
39
+
40
+ <template>
41
+ <document-page
42
+ github="https://github.com/indielayer/ui/blob/main/packages/ui/docs/pages/component/input"
43
+ :title="title"
44
+ :description="description"
45
+ :components="components"
46
+ :demos="demos"
47
+ :back="back"
48
+ :next="next"
49
+ />
50
+ </template>
@@ -0,0 +1,13 @@
1
+ <script setup>
2
+ import { ref } from 'vue'
3
+ const other = ref('Sample text')
4
+ </script>
5
+
6
+ <template>
7
+ <div class="grid grid-cols-4 gap-2">
8
+ <x-input v-model="other" size="sm"/>
9
+ <x-input v-model="other" size="md"/>
10
+ <x-input v-model="other" size="lg"/>
11
+ <x-input v-model="other" size="xl"/>
12
+ </div>
13
+ </template>
@@ -0,0 +1,12 @@
1
+ <script setup>
2
+ import { ref } from 'vue'
3
+ const name = ref('not a valid input')
4
+ </script>
5
+
6
+ <template>
7
+ <div class="grid grid-cols-4 gap-4">
8
+ <x-input value="disabled" disabled label="Disabled"/>
9
+ <x-input value="readonly" readonly label="Read only"/>
10
+ <x-input v-model="name" label="Error" error="Invalid input" />
11
+ </div>
12
+ </template>
@@ -0,0 +1,14 @@
1
+ <script setup lang="ts">
2
+ import { ref } from 'vue'
3
+ const name = ref('')
4
+ </script>
5
+
6
+ <template>
7
+ <x-input
8
+ v-model="name"
9
+ label="Label here"
10
+ placeholder="Placeholder"
11
+ helper="Helper text here"
12
+ tooltip="Tooltip here"
13
+ />
14
+ </template>
@@ -0,0 +1,18 @@
1
+ <script setup>
2
+ import { ref } from 'vue'
3
+ const password = ref('secret')
4
+ const other = ref('I have an icon')
5
+ </script>
6
+
7
+ <template>
8
+ <div class="grid grid-cols-3 gap-4">
9
+ <x-input
10
+ v-model="password"
11
+ label="Password input"
12
+ type="password"
13
+ show-password-toggle
14
+ />
15
+ <x-input v-model="other" label="Input with icon" icon-left="smile"/>
16
+ <x-input v-model="other" label="Icon on the right" icon-right="smile" />
17
+ </div>
18
+ </template>
@@ -0,0 +1,29 @@
1
+ <script setup lang="ts">
2
+ import { XLink } from '@indielayer/ui'
3
+ import UsageDemoCode from './usage.vue?raw'
4
+ import UsageDemo from './usage.vue'
5
+
6
+ const title = 'Link'
7
+ const description = 'Links are used to navigate to a different page.'
8
+ const components = [XLink]
9
+ const demos = [{
10
+ name: 'Usage',
11
+ description: '',
12
+ code: UsageDemoCode,
13
+ component: UsageDemo,
14
+ }]
15
+ const back = 'image'
16
+ const next = 'loader'
17
+ </script>
18
+
19
+ <template>
20
+ <document-page
21
+ github="https://github.com/indielayer/ui/blob/main/packages/ui/docs/pages/component/link"
22
+ :title="title"
23
+ :description="description"
24
+ :components="components"
25
+ :demos="demos"
26
+ :back="back"
27
+ :next="next"
28
+ />
29
+ </template>
@@ -0,0 +1,12 @@
1
+ <template>
2
+ <div>
3
+ If you don't have an account yet, you can <x-link color="primary">contact our customer success team</x-link> to get started with Indielayer UI, get a <x-link shadow color="pink" external>product demo</x-link>, or request a specific sales inquiry.
4
+ </div>
5
+ <div class="mt-4 space-x-2">
6
+ <x-link to="/component/link">Simple link</x-link>
7
+ <x-link to="link" underline>Underline</x-link>
8
+ <x-link to="link" color="orange">Colorfull</x-link>
9
+ <x-link to="link" shadow color="primary">Shadow</x-link>
10
+ <x-link href="https://github.com/indielayer/ui" target="_blank" external>External link</x-link>
11
+ </div>
12
+ </template>
@@ -0,0 +1,29 @@
1
+ <script setup lang="ts">
2
+ import { XLoader } from '@indielayer/ui'
3
+ import UsageDemoCode from './usage.vue?raw'
4
+ import UsageDemo from './usage.vue'
5
+
6
+ const title = 'Loader'
7
+ const description = 'Loader component is used to show a loading state.'
8
+ const components = [XLoader]
9
+ const demos = [{
10
+ name: 'Usage',
11
+ description: '',
12
+ code: UsageDemoCode,
13
+ component: UsageDemo,
14
+ }]
15
+ const back = 'link'
16
+ const next = 'menu'
17
+ </script>
18
+
19
+ <template>
20
+ <document-page
21
+ github="https://github.com/indielayer/ui/blob/main/packages/ui/docs/pages/component/loader"
22
+ :title="title"
23
+ :description="description"
24
+ :components="components"
25
+ :demos="demos"
26
+ :back="back"
27
+ :next="next"
28
+ />
29
+ </template>
@@ -0,0 +1,7 @@
1
+ <template>
2
+ <div class="grid gap-4">
3
+ <x-loader label="Loading" status="active"/>
4
+ <x-loader label="Failed to load" status="error"/>
5
+ <x-loader label="Loaded" status="success"/>
6
+ </div>
7
+ </template>
@@ -0,0 +1,29 @@
1
+ <script setup lang="ts">
2
+ import { XMenu, XMenuItem } from '@indielayer/ui'
3
+ import UsageDemoCode from './usage.vue?raw'
4
+ import UsageDemo from './usage.vue'
5
+
6
+ const title = 'Menu'
7
+ const description = 'Menus are used to display a list of options.'
8
+ const components = [XMenu, XMenuItem]
9
+ const demos = [{
10
+ name: 'Usage',
11
+ description: '',
12
+ code: UsageDemoCode,
13
+ component: UsageDemo,
14
+ }]
15
+ const back = 'link'
16
+ const next = 'modal'
17
+ </script>
18
+
19
+ <template>
20
+ <document-page
21
+ github="https://github.com/indielayer/ui/blob/main/packages/ui/docs/pages/component/menu"
22
+ :title="title"
23
+ :description="description"
24
+ :components="components"
25
+ :demos="demos"
26
+ :back="back"
27
+ :next="next"
28
+ />
29
+ </template>