@antify/ui-module 1.1.3

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 (336) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +74 -0
  3. package/dist/module.cjs +5 -0
  4. package/dist/module.d.mts +131 -0
  5. package/dist/module.d.ts +131 -0
  6. package/dist/module.json +5 -0
  7. package/dist/module.mjs +339 -0
  8. package/dist/runtime/assets/tailwind.css +1 -0
  9. package/dist/runtime/components/AntAccordion.vue +59 -0
  10. package/dist/runtime/components/AntAccordionItem.vue +66 -0
  11. package/dist/runtime/components/AntAlert.vue +137 -0
  12. package/dist/runtime/components/AntDropdown.vue +79 -0
  13. package/dist/runtime/components/AntIcon.vue +51 -0
  14. package/dist/runtime/components/AntKeycap.vue +24 -0
  15. package/dist/runtime/components/AntListGroup.vue +24 -0
  16. package/dist/runtime/components/AntListGroupItem.vue +81 -0
  17. package/dist/runtime/components/AntModal.vue +87 -0
  18. package/dist/runtime/components/AntPagination.vue +201 -0
  19. package/dist/runtime/components/AntPopover.vue +112 -0
  20. package/dist/runtime/components/AntSkeleton.vue +38 -0
  21. package/dist/runtime/components/AntSpinner.vue +95 -0
  22. package/dist/runtime/components/AntTag.vue +79 -0
  23. package/dist/runtime/components/AntToast.vue +109 -0
  24. package/dist/runtime/components/AntToaster.vue +46 -0
  25. package/dist/runtime/components/AntTooltip.vue +165 -0
  26. package/dist/runtime/components/Main.stories.mdx +10 -0
  27. package/dist/runtime/components/__stories/AntAccordion.stories.d.ts +9 -0
  28. package/dist/runtime/components/__stories/AntAccordion.stories.mjs +97 -0
  29. package/dist/runtime/components/__stories/AntAlert.stories.d.ts +10 -0
  30. package/dist/runtime/components/__stories/AntAlert.stories.mjs +75 -0
  31. package/dist/runtime/components/__stories/AntDropdown.stories.d.ts +6 -0
  32. package/dist/runtime/components/__stories/AntDropdown.stories.mjs +52 -0
  33. package/dist/runtime/components/__stories/AntIcon.stories.d.ts +8 -0
  34. package/dist/runtime/components/__stories/AntIcon.stories.mjs +90 -0
  35. package/dist/runtime/components/__stories/AntKeycap.stories.d.ts +9 -0
  36. package/dist/runtime/components/__stories/AntKeycap.stories.mjs +59 -0
  37. package/dist/runtime/components/__stories/AntListGroup.stories.d.ts +7 -0
  38. package/dist/runtime/components/__stories/AntListGroup.stories.mjs +36 -0
  39. package/dist/runtime/components/__stories/AntListGroupItem.stories.d.ts +10 -0
  40. package/dist/runtime/components/__stories/AntListGroupItem.stories.mjs +62 -0
  41. package/dist/runtime/components/__stories/AntModal.stories.d.ts +7 -0
  42. package/dist/runtime/components/__stories/AntModal.stories.mjs +78 -0
  43. package/dist/runtime/components/__stories/AntPagination.stories.d.ts +8 -0
  44. package/dist/runtime/components/__stories/AntPagination.stories.mjs +39 -0
  45. package/dist/runtime/components/__stories/AntPopover.stories.d.ts +6 -0
  46. package/dist/runtime/components/__stories/AntPopover.stories.mjs +47 -0
  47. package/dist/runtime/components/__stories/AntSkeleton.stories.d.ts +8 -0
  48. package/dist/runtime/components/__stories/AntSkeleton.stories.mjs +43 -0
  49. package/dist/runtime/components/__stories/AntSpinner.stories.d.ts +6 -0
  50. package/dist/runtime/components/__stories/AntSpinner.stories.mjs +34 -0
  51. package/dist/runtime/components/__stories/AntTag.stories.d.ts +7 -0
  52. package/dist/runtime/components/__stories/AntTag.stories.mjs +44 -0
  53. package/dist/runtime/components/__stories/AntToast.stories.d.ts +8 -0
  54. package/dist/runtime/components/__stories/AntToast.stories.mjs +66 -0
  55. package/dist/runtime/components/__stories/AntToaster.stories.d.ts +34 -0
  56. package/dist/runtime/components/__stories/AntToaster.stories.mjs +42 -0
  57. package/dist/runtime/components/__stories/AntTooltip.stories.d.ts +6 -0
  58. package/dist/runtime/components/__stories/AntTooltip.stories.mjs +43 -0
  59. package/dist/runtime/components/__types/Accordion.types.d.ts +4 -0
  60. package/dist/runtime/components/__types/Accordion.types.mjs +5 -0
  61. package/dist/runtime/components/__types/AntIcon.types.d.ts +5 -0
  62. package/dist/runtime/components/__types/AntIcon.types.mjs +6 -0
  63. package/dist/runtime/components/__types/AntToaster.types.d.ts +8 -0
  64. package/dist/runtime/components/__types/AntToaster.types.mjs +0 -0
  65. package/dist/runtime/components/__types/index.d.ts +2 -0
  66. package/dist/runtime/components/__types/index.mjs +2 -0
  67. package/dist/runtime/components/buttons/AntButton.vue +227 -0
  68. package/dist/runtime/components/buttons/AntCreateButton.vue +32 -0
  69. package/dist/runtime/components/buttons/AntDeleteButton.vue +32 -0
  70. package/dist/runtime/components/buttons/AntSaveAndNewButton.vue +32 -0
  71. package/dist/runtime/components/buttons/AntSaveButton.vue +31 -0
  72. package/dist/runtime/components/buttons/__stories/AntButton.stories.d.ts +15 -0
  73. package/dist/runtime/components/buttons/__stories/AntButton.stories.mjs +272 -0
  74. package/dist/runtime/components/buttons/__stories/AntCreateButton.stories.d.ts +10 -0
  75. package/dist/runtime/components/buttons/__stories/AntCreateButton.stories.mjs +57 -0
  76. package/dist/runtime/components/buttons/__stories/AntDeleteButton.stories.d.ts +10 -0
  77. package/dist/runtime/components/buttons/__stories/AntDeleteButton.stories.mjs +57 -0
  78. package/dist/runtime/components/buttons/__stories/AntSaveAndNewButton.stories.d.ts +10 -0
  79. package/dist/runtime/components/buttons/__stories/AntSaveAndNewButton.stories.mjs +57 -0
  80. package/dist/runtime/components/buttons/__stories/AntSaveButton.stories.d.ts +10 -0
  81. package/dist/runtime/components/buttons/__stories/AntSaveButton.stories.mjs +57 -0
  82. package/dist/runtime/components/buttons/__types/AntButton.type.d.ts +4 -0
  83. package/dist/runtime/components/buttons/__types/AntButton.type.mjs +5 -0
  84. package/dist/runtime/components/buttons/__types/index.d.ts +1 -0
  85. package/dist/runtime/components/buttons/__types/index.mjs +1 -0
  86. package/dist/runtime/components/crud/AntCrud.vue +42 -0
  87. package/dist/runtime/components/crud/AntCrudDetail.vue +11 -0
  88. package/dist/runtime/components/crud/AntCrudDetailActions.vue +51 -0
  89. package/dist/runtime/components/crud/AntCrudDetailNav.vue +51 -0
  90. package/dist/runtime/components/crud/AntCrudTableFilter.vue +120 -0
  91. package/dist/runtime/components/crud/AntCrudTableNav.vue +129 -0
  92. package/dist/runtime/components/crud/__stories/AntCrud.stories.d.ts +6 -0
  93. package/dist/runtime/components/crud/__stories/AntCrud.stories.mjs +126 -0
  94. package/dist/runtime/components/crud/__stories/AntCrudDetail.stories.d.ts +7 -0
  95. package/dist/runtime/components/crud/__stories/AntCrudDetail.stories.mjs +80 -0
  96. package/dist/runtime/components/crud/__stories/AntCrudDetailActions.stories.d.ts +6 -0
  97. package/dist/runtime/components/crud/__stories/AntCrudDetailActions.stories.mjs +25 -0
  98. package/dist/runtime/components/crud/__stories/AntCrudDetailNav.stories.d.ts +6 -0
  99. package/dist/runtime/components/crud/__stories/AntCrudDetailNav.stories.mjs +41 -0
  100. package/dist/runtime/components/crud/__stories/AntCrudTableFilter.stories.d.ts +6 -0
  101. package/dist/runtime/components/crud/__stories/AntCrudTableFilter.stories.mjs +25 -0
  102. package/dist/runtime/components/crud/__stories/AntCrudTableNav.stories.d.ts +8 -0
  103. package/dist/runtime/components/crud/__stories/AntCrudTableNav.stories.mjs +56 -0
  104. package/dist/runtime/components/dialogs/AntDeleteDialog.vue +29 -0
  105. package/dist/runtime/components/dialogs/AntDialog.vue +147 -0
  106. package/dist/runtime/components/dialogs/__stories/AndDeleteDialog.stories.d.ts +6 -0
  107. package/dist/runtime/components/dialogs/__stories/AndDeleteDialog.stories.mjs +30 -0
  108. package/dist/runtime/components/dialogs/__stories/AntDialog.stories.d.ts +6 -0
  109. package/dist/runtime/components/dialogs/__stories/AntDialog.stories.mjs +60 -0
  110. package/dist/runtime/components/form/AntCheckboxWidget/AntCheckbox.vue +145 -0
  111. package/dist/runtime/components/form/AntCheckboxWidget/AntCheckboxGroup.vue +91 -0
  112. package/dist/runtime/components/form/AntCheckboxWidget/__stories/AntCheckbox.stories.d.ts +8 -0
  113. package/dist/runtime/components/form/AntCheckboxWidget/__stories/AntCheckbox.stories.mjs +286 -0
  114. package/dist/runtime/components/form/AntCheckboxWidget/__stories/AntCheckboxGroup.stories.d.ts +7 -0
  115. package/dist/runtime/components/form/AntCheckboxWidget/__stories/AntCheckboxGroup.stories.mjs +96 -0
  116. package/dist/runtime/components/form/AntCheckboxWidget/__types/AntCheckbox.d.ts +6 -0
  117. package/dist/runtime/components/form/AntCheckboxWidget/__types/AntCheckbox.mjs +0 -0
  118. package/dist/runtime/components/form/AntFormGroup.vue +21 -0
  119. package/dist/runtime/components/form/AntFormGroupLabel.vue +5 -0
  120. package/dist/runtime/components/form/AntNumberInput.vue +170 -0
  121. package/dist/runtime/components/form/AntRadioWidget/AntRadio.vue +139 -0
  122. package/dist/runtime/components/form/AntRadioWidget/AntRadioGroup.vue +80 -0
  123. package/dist/runtime/components/form/AntRadioWidget/__stories/AntRadio.stories.d.ts +8 -0
  124. package/dist/runtime/components/form/AntRadioWidget/__stories/AntRadio.stories.mjs +79 -0
  125. package/dist/runtime/components/form/AntRadioWidget/__stories/AntRadioGroup.stories.d.ts +8 -0
  126. package/dist/runtime/components/form/AntRadioWidget/__stories/AntRadioGroup.stories.mjs +125 -0
  127. package/dist/runtime/components/form/AntRadioWidget/__types/AntRadio.type.d.ts +9 -0
  128. package/dist/runtime/components/form/AntRadioWidget/__types/AntRadio.type.mjs +0 -0
  129. package/dist/runtime/components/form/AntRangeSlider.vue +81 -0
  130. package/dist/runtime/components/form/AntRichTextEditor.vue +237 -0
  131. package/dist/runtime/components/form/AntSearch.vue +76 -0
  132. package/dist/runtime/components/form/AntSelect.vue +346 -0
  133. package/dist/runtime/components/form/AntSwitch.vue +145 -0
  134. package/dist/runtime/components/form/AntSwitcher.vue +184 -0
  135. package/dist/runtime/components/form/AntTextInput.vue +73 -0
  136. package/dist/runtime/components/form/AntTextarea.vue +170 -0
  137. package/dist/runtime/components/form/AntUnitInput.vue +99 -0
  138. package/dist/runtime/components/form/Elements/AntBaseInput.vue +216 -0
  139. package/dist/runtime/components/form/Elements/AntDropDown.vue +160 -0
  140. package/dist/runtime/components/form/Elements/AntField.vue +102 -0
  141. package/dist/runtime/components/form/Elements/AntInputDescription.vue +55 -0
  142. package/dist/runtime/components/form/Elements/AntInputLabel.vue +55 -0
  143. package/dist/runtime/components/form/Elements/AntInputLimiter.vue +55 -0
  144. package/dist/runtime/components/form/Elements/__stories/AntBaseInput.stories.d.ts +9 -0
  145. package/dist/runtime/components/form/Elements/__stories/AntBaseInput.stories.mjs +168 -0
  146. package/dist/runtime/components/form/Elements/__stories/AntField.stories.d.ts +6 -0
  147. package/dist/runtime/components/form/Elements/__stories/AntField.stories.mjs +80 -0
  148. package/dist/runtime/components/form/Elements/__stories/AntInputDescription.stories.d.ts +6 -0
  149. package/dist/runtime/components/form/Elements/__stories/AntInputDescription.stories.mjs +34 -0
  150. package/dist/runtime/components/form/Elements/__stories/AntInputLabel.stories.d.ts +7 -0
  151. package/dist/runtime/components/form/Elements/__stories/AntInputLabel.stories.mjs +46 -0
  152. package/dist/runtime/components/form/Elements/__stories/AntInputLimiter.stories.d.ts +6 -0
  153. package/dist/runtime/components/form/Elements/__stories/AntInputLimiter.stories.mjs +37 -0
  154. package/dist/runtime/components/form/Elements/__types/AntBaseInput.type.d.ts +16 -0
  155. package/dist/runtime/components/form/Elements/__types/AntBaseInput.type.mjs +17 -0
  156. package/dist/runtime/components/form/Elements/__types/index.d.ts +1 -0
  157. package/dist/runtime/components/form/Elements/__types/index.mjs +1 -0
  158. package/dist/runtime/components/form/Elements/index.d.ts +6 -0
  159. package/dist/runtime/components/form/Elements/index.mjs +12 -0
  160. package/dist/runtime/components/form/__stories/AntFormGroup.stories.d.ts +6 -0
  161. package/dist/runtime/components/form/__stories/AntFormGroup.stories.mjs +33 -0
  162. package/dist/runtime/components/form/__stories/AntFormGroupLabel.stories.d.ts +6 -0
  163. package/dist/runtime/components/form/__stories/AntFormGroupLabel.stories.mjs +20 -0
  164. package/dist/runtime/components/form/__stories/AntNumberInput.stories.d.ts +7 -0
  165. package/dist/runtime/components/form/__stories/AntNumberInput.stories.mjs +67 -0
  166. package/dist/runtime/components/form/__stories/AntRangeSlider.stories.d.ts +6 -0
  167. package/dist/runtime/components/form/__stories/AntRangeSlider.stories.mjs +40 -0
  168. package/dist/runtime/components/form/__stories/AntRichTextEditor.stories-old.d.ts +0 -0
  169. package/dist/runtime/components/form/__stories/AntRichTextEditor.stories-old.mjs +0 -0
  170. package/dist/runtime/components/form/__stories/AntSearch.stories.d.ts +6 -0
  171. package/dist/runtime/components/form/__stories/AntSearch.stories.mjs +43 -0
  172. package/dist/runtime/components/form/__stories/AntSelect.stories.d.ts +13 -0
  173. package/dist/runtime/components/form/__stories/AntSelect.stories.mjs +220 -0
  174. package/dist/runtime/components/form/__stories/AntSwitch.stories.d.ts +8 -0
  175. package/dist/runtime/components/form/__stories/AntSwitch.stories.mjs +215 -0
  176. package/dist/runtime/components/form/__stories/AntSwitcher.stories.d.ts +8 -0
  177. package/dist/runtime/components/form/__stories/AntSwitcher.stories.mjs +225 -0
  178. package/dist/runtime/components/form/__stories/AntTextInput.stories.d.ts +7 -0
  179. package/dist/runtime/components/form/__stories/AntTextInput.stories.mjs +68 -0
  180. package/dist/runtime/components/form/__stories/AntTextarea.stories.d.ts +8 -0
  181. package/dist/runtime/components/form/__stories/AntTextarea.stories.mjs +128 -0
  182. package/dist/runtime/components/form/__stories/AntUnitInput.stories.d.ts +8 -0
  183. package/dist/runtime/components/form/__stories/AntUnitInput.stories.mjs +84 -0
  184. package/dist/runtime/components/form/__types/AntSelect.type.d.ts +4 -0
  185. package/dist/runtime/components/form/__types/AntSelect.type.mjs +0 -0
  186. package/dist/runtime/components/form/__types/AntSwitcher.type.d.ts +4 -0
  187. package/dist/runtime/components/form/__types/AntSwitcher.type.mjs +0 -0
  188. package/dist/runtime/components/form/__types/AntTextInput.type.d.ts +7 -0
  189. package/dist/runtime/components/form/__types/AntTextInput.type.mjs +8 -0
  190. package/dist/runtime/components/form/__types/index.d.ts +3 -0
  191. package/dist/runtime/components/form/__types/index.mjs +3 -0
  192. package/dist/runtime/components/form/index.d.ts +11 -0
  193. package/dist/runtime/components/form/index.mjs +22 -0
  194. package/dist/runtime/components/index.d.ts +22 -0
  195. package/dist/runtime/components/index.mjs +41 -0
  196. package/dist/runtime/components/layouts/AntNavLeftLayout.vue +36 -0
  197. package/dist/runtime/components/layouts/__stories/AntNavLeftLayout.stories.d.ts +7 -0
  198. package/dist/runtime/components/layouts/__stories/AntNavLeftLayout.stories.mjs +68 -0
  199. package/dist/runtime/components/navbar/AntNavbar.vue +25 -0
  200. package/dist/runtime/components/navbar/AntNavbarItem.vue +78 -0
  201. package/dist/runtime/components/navbar/__stories/AntNavbar.stories.d.ts +6 -0
  202. package/dist/runtime/components/navbar/__stories/AntNavbar.stories.mjs +66 -0
  203. package/dist/runtime/components/navbar/__types/NavbarItem.d.ts +10 -0
  204. package/dist/runtime/components/navbar/__types/NavbarItem.mjs +0 -0
  205. package/dist/runtime/components/table/AntTable.vue +192 -0
  206. package/dist/runtime/components/table/AntTableSortButton.vue +26 -0
  207. package/dist/runtime/components/table/AntTd.vue +70 -0
  208. package/dist/runtime/components/table/AntTh.vue +67 -0
  209. package/dist/runtime/components/table/__stories/AntTable.stories.d.ts +9 -0
  210. package/dist/runtime/components/table/__stories/AntTable.stories.mjs +274 -0
  211. package/dist/runtime/components/table/__types/TableHeader.type.d.ts +31 -0
  212. package/dist/runtime/components/table/__types/TableHeader.type.mjs +19 -0
  213. package/dist/runtime/components/tabs/AntTabItem.vue +115 -0
  214. package/dist/runtime/components/tabs/AntTabs.vue +47 -0
  215. package/dist/runtime/components/tabs/__stories/AntTabItem.stories.d.ts +6 -0
  216. package/dist/runtime/components/tabs/__stories/AntTabItem.stories.mjs +32 -0
  217. package/dist/runtime/components/tabs/__stories/AntTabs.stories.d.ts +9 -0
  218. package/dist/runtime/components/tabs/__stories/AntTabs.stories.mjs +173 -0
  219. package/dist/runtime/components/tabs/__types/AntTabItem.types.d.ts +17 -0
  220. package/dist/runtime/components/tabs/__types/AntTabItem.types.mjs +6 -0
  221. package/dist/runtime/components/transitions/AntTransitionCollapseHeight.vue +92 -0
  222. package/dist/runtime/composables/useUi.d.ts +20 -0
  223. package/dist/runtime/composables/useUi.mjs +31 -0
  224. package/dist/runtime/composables/useUiClient.d.ts +34 -0
  225. package/dist/runtime/composables/useUiClient.mjs +61 -0
  226. package/dist/runtime/composables/useValidator.d.ts +1 -0
  227. package/dist/runtime/composables/useValidator.mjs +1 -0
  228. package/dist/runtime/enums/ColorType.enum.d.ts +16 -0
  229. package/dist/runtime/enums/ColorType.enum.mjs +18 -0
  230. package/dist/runtime/enums/Direction.enum.d.ts +4 -0
  231. package/dist/runtime/enums/Direction.enum.mjs +5 -0
  232. package/dist/runtime/enums/Grouped.enum.d.ts +6 -0
  233. package/dist/runtime/enums/Grouped.enum.mjs +7 -0
  234. package/dist/runtime/enums/Position.enum.d.ts +12 -0
  235. package/dist/runtime/enums/Position.enum.mjs +14 -0
  236. package/dist/runtime/enums/Size.enum.d.ts +4 -0
  237. package/dist/runtime/enums/Size.enum.mjs +5 -0
  238. package/dist/runtime/enums/index.d.ts +4 -0
  239. package/dist/runtime/enums/index.mjs +4 -0
  240. package/dist/runtime/env.d.ts +8 -0
  241. package/dist/runtime/handler.d.ts +1 -0
  242. package/dist/runtime/handler.mjs +5 -0
  243. package/dist/runtime/plugins/toaster.d.ts +22 -0
  244. package/dist/runtime/plugins/toaster.mjs +53 -0
  245. package/dist/runtime/plugins/ui-module.d.ts +2 -0
  246. package/dist/runtime/plugins/ui-module.mjs +13 -0
  247. package/dist/runtime/shims/vue.d.ts +5 -0
  248. package/dist/runtime/tailwind.config.d.ts +182 -0
  249. package/dist/runtime/tailwind.config.mjs +196 -0
  250. package/dist/runtime/types/AntListGroupItem.type.d.ts +11 -0
  251. package/dist/runtime/types/AntListGroupItem.type.mjs +12 -0
  252. package/dist/runtime/types/AntTag.type.d.ts +8 -0
  253. package/dist/runtime/types/AntTag.type.mjs +9 -0
  254. package/dist/runtime/types/Checkbox.type.d.ts +8 -0
  255. package/dist/runtime/types/Checkbox.type.mjs +0 -0
  256. package/dist/runtime/types/NavItem.type.d.ts +9 -0
  257. package/dist/runtime/types/NavItem.type.mjs +0 -0
  258. package/dist/runtime/types/RadioButton.type.d.ts +5 -0
  259. package/dist/runtime/types/RadioButton.type.mjs +0 -0
  260. package/dist/runtime/types/Tabs.type.d.ts +6 -0
  261. package/dist/runtime/types/Tabs.type.mjs +0 -0
  262. package/dist/runtime/types/Toaster.type.d.ts +6 -0
  263. package/dist/runtime/types/Toaster.type.mjs +0 -0
  264. package/dist/runtime/types/index.d.ts +7 -0
  265. package/dist/runtime/types/index.mjs +7 -0
  266. package/dist/runtime/types.d.ts +7 -0
  267. package/dist/runtime/types.mjs +7 -0
  268. package/dist/runtime/utils/helper.d.ts +4 -0
  269. package/dist/runtime/utils/helper.mjs +12 -0
  270. package/dist/runtime/utils.d.ts +14 -0
  271. package/dist/runtime/utils.mjs +20 -0
  272. package/dist/types.d.mts +8 -0
  273. package/dist/types.d.ts +8 -0
  274. package/package.json +81 -0
  275. package/src/runtime/components/AntAccordion.vue +59 -0
  276. package/src/runtime/components/AntAccordionItem.vue +104 -0
  277. package/src/runtime/components/AntAlert.vue +137 -0
  278. package/src/runtime/components/AntDropdown.vue +100 -0
  279. package/src/runtime/components/AntIcon.vue +51 -0
  280. package/src/runtime/components/AntKeycap.vue +24 -0
  281. package/src/runtime/components/AntListGroup.vue +24 -0
  282. package/src/runtime/components/AntListGroupItem.vue +81 -0
  283. package/src/runtime/components/AntModal.vue +129 -0
  284. package/src/runtime/components/AntPagination.vue +201 -0
  285. package/src/runtime/components/AntPopover.vue +133 -0
  286. package/src/runtime/components/AntSkeleton.vue +38 -0
  287. package/src/runtime/components/AntSpinner.vue +95 -0
  288. package/src/runtime/components/AntTag.vue +79 -0
  289. package/src/runtime/components/AntToast.vue +109 -0
  290. package/src/runtime/components/AntToaster.vue +71 -0
  291. package/src/runtime/components/AntTooltip.vue +165 -0
  292. package/src/runtime/components/buttons/AntButton.vue +227 -0
  293. package/src/runtime/components/buttons/AntCreateButton.vue +32 -0
  294. package/src/runtime/components/buttons/AntDeleteButton.vue +32 -0
  295. package/src/runtime/components/buttons/AntSaveAndNewButton.vue +32 -0
  296. package/src/runtime/components/buttons/AntSaveButton.vue +31 -0
  297. package/src/runtime/components/crud/AntCrud.vue +66 -0
  298. package/src/runtime/components/crud/AntCrudDetail.vue +11 -0
  299. package/src/runtime/components/crud/AntCrudDetailActions.vue +51 -0
  300. package/src/runtime/components/crud/AntCrudDetailNav.vue +51 -0
  301. package/src/runtime/components/crud/AntCrudTableFilter.vue +120 -0
  302. package/src/runtime/components/crud/AntCrudTableNav.vue +129 -0
  303. package/src/runtime/components/dialogs/AntDeleteDialog.vue +29 -0
  304. package/src/runtime/components/dialogs/AntDialog.vue +181 -0
  305. package/src/runtime/components/form/AntCheckboxWidget/AntCheckbox.vue +167 -0
  306. package/src/runtime/components/form/AntCheckboxWidget/AntCheckboxGroup.vue +91 -0
  307. package/src/runtime/components/form/AntFormGroup.vue +21 -0
  308. package/src/runtime/components/form/AntFormGroupLabel.vue +5 -0
  309. package/src/runtime/components/form/AntNumberInput.vue +170 -0
  310. package/src/runtime/components/form/AntRadioWidget/AntRadio.vue +164 -0
  311. package/src/runtime/components/form/AntRadioWidget/AntRadioGroup.vue +80 -0
  312. package/src/runtime/components/form/AntRangeSlider.vue +101 -0
  313. package/src/runtime/components/form/AntRichTextEditor.vue +237 -0
  314. package/src/runtime/components/form/AntSearch.vue +76 -0
  315. package/src/runtime/components/form/AntSelect.vue +346 -0
  316. package/src/runtime/components/form/AntSwitch.vue +145 -0
  317. package/src/runtime/components/form/AntSwitcher.vue +200 -0
  318. package/src/runtime/components/form/AntTextInput.vue +73 -0
  319. package/src/runtime/components/form/AntTextarea.vue +170 -0
  320. package/src/runtime/components/form/AntUnitInput.vue +99 -0
  321. package/src/runtime/components/form/Elements/AntBaseInput.vue +247 -0
  322. package/src/runtime/components/form/Elements/AntDropDown.vue +160 -0
  323. package/src/runtime/components/form/Elements/AntField.vue +102 -0
  324. package/src/runtime/components/form/Elements/AntInputDescription.vue +55 -0
  325. package/src/runtime/components/form/Elements/AntInputLabel.vue +55 -0
  326. package/src/runtime/components/form/Elements/AntInputLimiter.vue +55 -0
  327. package/src/runtime/components/layouts/AntNavLeftLayout.vue +36 -0
  328. package/src/runtime/components/navbar/AntNavbar.vue +25 -0
  329. package/src/runtime/components/navbar/AntNavbarItem.vue +78 -0
  330. package/src/runtime/components/table/AntTable.vue +192 -0
  331. package/src/runtime/components/table/AntTableSortButton.vue +26 -0
  332. package/src/runtime/components/table/AntTd.vue +70 -0
  333. package/src/runtime/components/table/AntTh.vue +67 -0
  334. package/src/runtime/components/tabs/AntTabItem.vue +115 -0
  335. package/src/runtime/components/tabs/AntTabs.vue +47 -0
  336. package/src/runtime/components/transitions/AntTransitionCollapseHeight.vue +96 -0
@@ -0,0 +1,41 @@
1
+ import AntAccordion from "./AntAccordion.vue";
2
+ import AntAccordionItem from "./AntAccordionItem.vue";
3
+ import AntAlert from "./AntAlert.vue";
4
+ import AntDropdown from "./AntDropdown.vue";
5
+ import AntIcon from "./AntIcon.vue";
6
+ import AntKeycap from "./AntKeycap.vue";
7
+ import AntListGroup from "./AntListGroup.vue";
8
+ import AntListGroupItem from "./AntListGroupItem.vue";
9
+ import AntModal from "./AntModal.vue";
10
+ import AntPagination from "./AntPagination.vue";
11
+ import AntPopover from "./AntPopover.vue";
12
+ import AntCrudTableFilter from "./crud/AntCrudTableFilter.vue";
13
+ import AntSkeleton from "./AntSkeleton.vue";
14
+ import AntSpinner from "./AntSpinner.vue";
15
+ import AntTableNav from "./crud/AntCrudTableNav.vue";
16
+ import AntTag from "./AntTag.vue";
17
+ import AntToast from "./AntToast.vue";
18
+ import AntTooltip from "./AntTooltip.vue";
19
+ export * from "./deprecated/elements";
20
+ export * from "./form/index.mjs";
21
+ export * from "./form/Elements/index.mjs";
22
+ export {
23
+ AntAccordion,
24
+ AntAccordionItem,
25
+ AntAlert,
26
+ AntDropdown,
27
+ AntIcon,
28
+ AntKeycap,
29
+ AntListGroup,
30
+ AntListGroupItem,
31
+ AntModal,
32
+ AntPagination,
33
+ AntPopover,
34
+ AntCrudTableFilter,
35
+ AntSkeleton,
36
+ AntSpinner,
37
+ AntTableNav,
38
+ AntTag,
39
+ AntToast,
40
+ AntTooltip
41
+ };
@@ -0,0 +1,36 @@
1
+ <script setup lang="ts">
2
+ import {computed, useSlots} from 'vue';
3
+ import AntNavbar from '../navbar/AntNavbar.vue';
4
+ import type {RouteLocationRaw} from 'vue-router';
5
+ import type {NavbarItem} from '../navbar/__types/NavbarItem';
6
+
7
+ defineProps<{
8
+ navbarItems: NavbarItem[];
9
+ logoRoute?: RouteLocationRaw;
10
+ }>()
11
+
12
+ const hasLogoImageSlot = computed(() => useSlots()['logo-image'] || false);
13
+ </script>
14
+
15
+ <template>
16
+ <div class="flex gap-px bg-neutral-300 h-screen overflow-hidden">
17
+ <div class="flex flex-col gap-px bg-neutral-300 w-52 shrink-0">
18
+ <component
19
+ v-if="hasLogoImageSlot"
20
+ :is="logoRoute ? 'RouterLink' : 'div'"
21
+ :to="logoRoute"
22
+ class="bg-neutral-50 min-h-[60px] flex justify-center items-center p-2.5"
23
+ >
24
+ <slot name="logo-image"/>
25
+ </component>
26
+
27
+ <AntNavbar
28
+ :navbar-items="navbarItems"
29
+ />
30
+ </div>
31
+
32
+ <div class="flex-grow">
33
+ <slot/>
34
+ </div>
35
+ </div>
36
+ </template>
@@ -0,0 +1,7 @@
1
+ import { type Meta, type StoryObj } from '@storybook/vue3';
2
+ import AntNavLeftLayout from '../AntNavLeftLayout.vue';
3
+ declare const meta: Meta<typeof AntNavLeftLayout>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof AntNavLeftLayout>;
6
+ export declare const Docs: Story;
7
+ export declare const WithoutLogo: Story;
@@ -0,0 +1,68 @@
1
+ import AntTabs from "../../tabs/AntTabs.vue";
2
+ import AntNavLeftLayout from "../AntNavLeftLayout.vue";
3
+ const meta = {
4
+ title: "Layouts/NavLeftLayout",
5
+ component: AntNavLeftLayout,
6
+ parameters: { controls: { sort: "requiredFirst" } },
7
+ decorators: [() => ({ template: '<div class="border border-dashed border-neutral-300"><story/></div>' })],
8
+ argTypes: {}
9
+ };
10
+ export default meta;
11
+ export const Docs = {
12
+ render: (args) => ({
13
+ components: {
14
+ AntTabs,
15
+ AntNavLeftLayout
16
+ },
17
+ setup() {
18
+ return {
19
+ args
20
+ };
21
+ },
22
+ template: `
23
+ <AntNavLeftLayout v-bind="args">
24
+ <template #logo-image>
25
+ <img src="/logo.svg" class="h-full w-full"/>
26
+ </template>
27
+
28
+ <div class="slot m-2.5">SLOT</div>
29
+ </AntNavLeftLayout>
30
+ `
31
+ }),
32
+ args: {
33
+ logoRoute: "/",
34
+ navbarItems: [
35
+ {
36
+ label: "User",
37
+ active: true
38
+ },
39
+ {
40
+ label: "Invoice"
41
+ },
42
+ {
43
+ label: "Settings"
44
+ }
45
+ ]
46
+ }
47
+ };
48
+ export const WithoutLogo = {
49
+ render: (args) => ({
50
+ components: {
51
+ AntTabs,
52
+ AntNavLeftLayout
53
+ },
54
+ setup() {
55
+ return {
56
+ args
57
+ };
58
+ },
59
+ template: `
60
+ <AntNavLeftLayout v-bind="args">
61
+ <div class="slot m-2.5">SLOT</div>
62
+ </AntNavLeftLayout>
63
+ `
64
+ }),
65
+ args: {
66
+ ...Docs.args
67
+ }
68
+ };
@@ -0,0 +1,25 @@
1
+ <script setup lang="ts">
2
+
3
+ import { computed } from 'vue';
4
+ import type { NavbarItem } from './__types/NavbarItem';
5
+ import AntNavbarItem from './AntNavbarItem.vue';
6
+
7
+ defineProps<{
8
+ navbarItems: NavbarItem[]
9
+ }>();
10
+
11
+ const containerClasses = computed(() => ({
12
+ 'w-full h-full bg-white flex flex-col gap-1 p-1.5': true,
13
+ }))
14
+
15
+ </script>
16
+
17
+ <template>
18
+ <div :class="containerClasses">
19
+ <AntNavbarItem
20
+ v-for="(navbarItem, index) in navbarItems"
21
+ :key="`navbar-item-${index}`"
22
+ :navbar-item="navbarItem"
23
+ />
24
+ </div>
25
+ </template>
@@ -0,0 +1,78 @@
1
+ <script setup lang="ts">
2
+ import type {NavbarItem} from './__types/NavbarItem';
3
+ import {computed, ref} from 'vue';
4
+ import AntIcon from '../AntIcon.vue';
5
+ import {faChevronDown, faChevronUp} from '@fortawesome/free-solid-svg-icons';
6
+ import AntTransitionCollapseHeight from '../transitions/AntTransitionCollapseHeight.vue';
7
+
8
+ const props = defineProps<{
9
+ navbarItem: NavbarItem
10
+ }>()
11
+
12
+ const itemClasses = computed(() => ({
13
+ 'w-full text-sm p-1.5 rounded-md cursor-pointer flex items-center flex-nowrap gap-1': true,
14
+ 'transition-colors hover:bg-neutral-100': true,
15
+ 'text-primary-500': props.navbarItem.active
16
+ }))
17
+
18
+ const open = ref(false)
19
+
20
+ function itemClick(): void {
21
+ if (props.navbarItem.click) {
22
+ props.navbarItem.click();
23
+ }
24
+
25
+ if (props.navbarItem.children && props.navbarItem.children.length > 0) {
26
+ open.value = !open.value;
27
+ }
28
+ }
29
+ </script>
30
+
31
+ <template>
32
+ <component
33
+ :is="navbarItem.to ? 'router-link' : 'div'"
34
+ :to="navbarItem.to"
35
+ v-bind="$attrs"
36
+ :class="itemClasses"
37
+ @click="itemClick"
38
+ >
39
+ <AntIcon
40
+ v-if="navbarItem.icon"
41
+ :icon="navbarItem.icon"
42
+ :color="navbarItem.active ? 'text-primary-500' : 'text-for-white-bg-font'"
43
+ />
44
+
45
+ <div class="flex-grow select-none">
46
+ {{ navbarItem.label }}
47
+ </div>
48
+
49
+ <div
50
+ v-if="navbarItem.children && navbarItem.children.length > 0"
51
+ >
52
+ <AntIcon
53
+ v-if="!open"
54
+ :icon="faChevronDown"
55
+ :color="navbarItem.active ? 'text-primary-500' : 'text-for-white-bg-font'"
56
+ />
57
+
58
+ <AntIcon
59
+ v-if="open"
60
+ :icon="faChevronUp"
61
+ :color="navbarItem.active ? 'text-primary-500' : 'text-for-white-bg-font'"
62
+ />
63
+ </div>
64
+ </component>
65
+
66
+ <AntTransitionCollapseHeight
67
+ v-if="navbarItem.children && navbarItem.children.length > 0"
68
+ >
69
+ <div v-show="open">
70
+ <AntNavbarItem
71
+ v-for="(child, index) in navbarItem.children"
72
+ :key="`navbar-item-child-${index}`"
73
+ :navbar-item="child"
74
+ class="pl-[30px]"
75
+ />
76
+ </div>
77
+ </AntTransitionCollapseHeight>
78
+ </template>
@@ -0,0 +1,6 @@
1
+ import type { Meta, StoryObj } from '@storybook/vue3';
2
+ import AntNavbar from '../AntNavbar.vue';
3
+ declare const meta: Meta<typeof AntNavbar>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof AntNavbar>;
6
+ export declare const Docs: Story;
@@ -0,0 +1,66 @@
1
+ import AntNavbar from "../AntNavbar.vue";
2
+ import AntNavbarItem from "../AntNavbarItem.vue";
3
+ import { faUserCircle } from "@fortawesome/free-regular-svg-icons";
4
+ import { faBook } from "@fortawesome/free-solid-svg-icons";
5
+ const meta = {
6
+ title: "Components/Navbar",
7
+ component: AntNavbar,
8
+ subcomponents: AntNavbarItem,
9
+ parameters: {
10
+ fullscreen: true
11
+ }
12
+ };
13
+ export default meta;
14
+ export const Docs = {
15
+ render: (args) => ({
16
+ components: { AntNavbar },
17
+ setup() {
18
+ return {
19
+ args
20
+ };
21
+ },
22
+ template: `
23
+ <div class="w-screen h-screen" style="background: url('https://images.unsplash.com/photo-1703136678192-53fda2c5c602?q=80&w=3870&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D') lightgray 50% / cover no-repeat">
24
+ <div class="h-screen w-52 bg-primary-500">
25
+ <AntNavbar v-bind="args" />
26
+ </div>
27
+ </div>
28
+ `
29
+ }),
30
+ args: {
31
+ navbarItems: [{
32
+ icon: faUserCircle,
33
+ label: "Navbar item",
34
+ children: [{
35
+ label: "Child"
36
+ }]
37
+ }, {
38
+ icon: faBook,
39
+ label: "Navbar item"
40
+ }, {
41
+ label: "Navbar item"
42
+ }, {
43
+ label: "Navbar item"
44
+ }, {
45
+ label: "Navbar item"
46
+ }, {
47
+ icon: faBook,
48
+ label: "Navbar item",
49
+ active: true,
50
+ children: [{
51
+ label: "Child",
52
+ icon: faBook
53
+ }]
54
+ }, {
55
+ label: "Navbar item"
56
+ }, {
57
+ label: "Navbar item"
58
+ }, {
59
+ label: "Navbar item"
60
+ }, {
61
+ label: "Navbar item"
62
+ }, {
63
+ label: "Navbar item"
64
+ }]
65
+ }
66
+ };
@@ -0,0 +1,10 @@
1
+ import type { IconDefinition } from '@fortawesome/free-solid-svg-icons';
2
+ import type { RouteLocationRaw } from 'vue-router';
3
+ export type NavbarItem = {
4
+ label: string;
5
+ active?: boolean;
6
+ to?: RouteLocationRaw;
7
+ click?: () => void;
8
+ icon?: IconDefinition;
9
+ children?: NavbarItem[];
10
+ };
@@ -0,0 +1,192 @@
1
+ <script lang="ts" setup>
2
+ import {AntTableSortDirection, type TableHeader} from './__types/TableHeader.type';
3
+ import {computed, ref, type Ref, watch} from 'vue';
4
+ import {useVModel} from '@vueuse/core';
5
+ import {ColorType} from '../../enums';
6
+ import AntTh from './AntTh.vue';
7
+ import AntTd from './AntTd.vue';
8
+ import AntSpinner from '../AntSpinner.vue';
9
+ import AntSkeleton from '../AntSkeleton.vue';
10
+
11
+ defineOptions({ inheritAttrs: false });
12
+
13
+ const emits = defineEmits([
14
+ 'update:modelValue',
15
+ 'update:skeleton',
16
+ 'update:selectedRow',
17
+ 'rowClick',
18
+ 'updateSort'
19
+ ]);
20
+ // TODO:: add pagination prop and pagination to table
21
+ const props = withDefaults(
22
+ defineProps<{
23
+ selectedRow?: Record<string, unknown> | undefined,
24
+ headers: TableHeader[];
25
+ data: Record<string, unknown>[];
26
+ rowKey?: string;
27
+ loading?: boolean;
28
+ selectableRows?: boolean;
29
+ showLightVersion?: boolean;
30
+ }>(), {
31
+ rowKey: 'id',
32
+ loading: false,
33
+ selectableRows: false,
34
+ showLightVersion: false,
35
+ });
36
+
37
+ const selected: Ref<Record<string, unknown> | undefined> = useVModel(props, 'selectedRow', emits);
38
+ const _loading: Ref<boolean> = useVModel(props, 'loading', emits);
39
+ const _showLightVersion = ref(props.showLightVersion);
40
+ const _headers = computed(() => {
41
+ // if (_showLightVersion.value) {
42
+ // const lightHeaders = props.headers.filter(header => header.lightVersion);
43
+ //
44
+ // return lightHeaders.length > 0 ? lightHeaders : [props.headers[0]];
45
+ // }
46
+
47
+ return props.headers;
48
+ })
49
+
50
+ watch(() => props.showLightVersion, (val) => {
51
+ setTimeout(() => _showLightVersion.value = val, val ? 200 : 400)
52
+ });
53
+
54
+ function sortTable(header: TableHeader, newDirection: AntTableSortDirection) {
55
+ // TODO:: Sorting is always done externally, here should only be a emit sort with header and direction.
56
+ // TODO:: Save current sort in some kind of prop (maybe same as pagination?)
57
+ // TODO:: Multi column sort?
58
+ // if (newDirection !== AntTableSortDirection.neutral) {
59
+ // if (header.sort) {
60
+ // const sortFn = header.sort;
61
+ // internalRows.value.sort((a, b) => sortFn(a, b, newDirection));
62
+ // } else {
63
+ // internalRows.value.sort((a: Record<string, unknown>, b: Record<string, unknown>) => {
64
+ // if (newDirection === AntTableSortDirection.asc) {
65
+ // return (a[header.identifier] as string) < (b[header.identifier] as string) ? -1 : 1
66
+ // } else {
67
+ // return (a[header.identifier] as string) > (b[header.identifier] as string) ? -1 : 1
68
+ // }
69
+ // });
70
+ // }
71
+ // } else {
72
+ // // Reset sort to default
73
+ // internalRows.value = [ ...props.data ];
74
+ // }
75
+
76
+ emits('updateSort', header, newDirection);
77
+ }
78
+
79
+ function rowClick(elem: Record<string, unknown>): void {
80
+ selected.value = elem;
81
+
82
+ emits('rowClick', elem);
83
+ }
84
+ </script>
85
+
86
+ <template>
87
+ <div
88
+ class="relative inline-block min-w-full align-middle h-full"
89
+ data-e2e="table"
90
+ >
91
+ <div class="overflow-hidden h-full overflow-x-auto overflow-y-auto">
92
+ <table
93
+ v-bind="$attrs"
94
+ class="min-w-full max-h-full relative"
95
+ :class="{'h-full': data.length === 0 && !_loading}"
96
+ >
97
+ <thead class="bg-neutral-100 sticky top-0 z-10">
98
+ <tr>
99
+ <slot name="headerFirstCell"/>
100
+
101
+ <template v-for="(header, index) in _headers">
102
+ <AntTh
103
+ v-if="!_showLightVersion || (_showLightVersion && header.lightVersion)"
104
+ :key="`table-header-${header.identifier}-${index}`"
105
+ :header="header"
106
+ @sort="sortTable"
107
+ >
108
+ <template #headerContent>
109
+ <slot name="headerContent" v-bind="header"/>
110
+ </template>
111
+ </AntTh>
112
+ </template>
113
+
114
+ <slot name="headerLastCell"></slot>
115
+ </tr>
116
+ </thead>
117
+
118
+ <tbody class="bg-white relative">
119
+ <!-- TODO:: Add some kind of virtual list for very large tree data (or required pagination??) -->
120
+ <tr
121
+ v-for="(elem, index) in data"
122
+ :key="`table-row-${elem[rowKey]}-${index}`"
123
+ :id="elem[rowKey] as string"
124
+ class="transition-all"
125
+ :class="{
126
+ 'bg-primary-300 text-primary-300-font': elem === selected,
127
+ 'bg-neutral-50 text-neutral-50-font': elem !== selected && index % 2 === 0,
128
+ 'bg-neutral-100 text-neutral-100-font': elem !== selected && index % 2 !== 0,
129
+ 'cursor-pointer': selectableRows
130
+ }"
131
+ >
132
+ <slot name="rowFirstCell" v-bind="{ elem }"/>
133
+
134
+ <template v-for="(header, index) in _headers">
135
+ <AntTd
136
+ v-if="!_showLightVersion || (_showLightVersion && header.lightVersion)"
137
+ :header="header"
138
+ :element="elem"
139
+ :align="header.align"
140
+ :key="`table-cell-${header.identifier}-${index}`"
141
+ @click="rowClick(elem)"
142
+ >
143
+ <template #beforeCellContent="props">
144
+ <slot name="beforeCellContent" v-bind="props"/>
145
+ </template>
146
+
147
+ <template #cellContent="props">
148
+ <slot name="cellContent" v-bind="props"/>
149
+ </template>
150
+
151
+ <template #afterCellContent="props">
152
+ <slot name="afterCellContent" v-bind="props"/>
153
+ </template>
154
+ </AntTd>
155
+ </template>
156
+
157
+ <slot name="rowLastCell" v-bind="{ elem }"/>
158
+ </tr>
159
+
160
+ <tr v-if="data.length <= 0 && !_loading">
161
+ <td
162
+ colspan="100"
163
+ class="w-full h-full py-2 text-center text-neutral-50-font text-lg"
164
+ >
165
+ <slot name="emptyState">
166
+ <div class="flex items-center flex-col">
167
+ <span class="font-semibold">We couldn't find any entry</span>
168
+ </div>
169
+ </slot>
170
+ </td>
171
+ </tr>
172
+
173
+ </tbody>
174
+ </table>
175
+ </div>
176
+
177
+ <div
178
+ v-if="data.length > 0 && _loading"
179
+ class="absolute bg-opacity-50 w-full top-0 bottom-0 bg-neutral-300 flex items-center justify-center"
180
+ >
181
+ <AntSpinner class="!w-24 !h-24" :color-type="ColorType.primary"/>
182
+ </div>
183
+
184
+ <div
185
+ v-if="!data || data.length <= 0 && _loading"
186
+ class="absolute bg-opacity-50 w-full top-[40px] bottom-0 bg-neutral-300 flex items-center justify-center"
187
+ >
188
+ <AntSkeleton
189
+ v-model="_loading" absolute/>
190
+ </div>
191
+ </div>
192
+ </template>
@@ -0,0 +1,26 @@
1
+ <script setup lang="ts">
2
+
3
+ import AntIcon from '../AntIcon.vue';
4
+ import { faAngleDown, faAngleUp, faMinus } from '@fortawesome/free-solid-svg-icons';
5
+ import { IconSize } from '../__types';
6
+ import { AntTableSortDirection } from './__types/TableHeader.type';
7
+
8
+ defineEmits([ 'sortClick' ])
9
+ withDefaults(
10
+ defineProps<{
11
+ sortDirection?: AntTableSortDirection
12
+ }>(), {
13
+ sortDirection: AntTableSortDirection.neutral
14
+ });
15
+ </script>
16
+
17
+ <template>
18
+ <button
19
+ class="bg-neutral-50 text-neutral-50-font rounded h-[26px] w-[26px] flex items-center justify-center"
20
+ @click="$emit('sortClick')"
21
+ >
22
+ <AntIcon v-if="sortDirection === AntTableSortDirection.asc" :icon="faAngleDown" :size="IconSize.sm"/>
23
+ <AntIcon v-if="sortDirection === AntTableSortDirection.desc" :icon="faAngleUp" :size="IconSize.sm"/>
24
+ <AntIcon v-if="sortDirection === AntTableSortDirection.neutral" :icon="faMinus" :size="IconSize.sm"/>
25
+ </button>
26
+ </template>
@@ -0,0 +1,70 @@
1
+ <script setup lang="ts">
2
+
3
+ import { AntTableAlign, AntTableRowTypes, type TableHeader } from './__types/TableHeader.type';
4
+ import { computed } from 'vue';
5
+ import type { RouteLocationRaw } from 'vue-router';
6
+
7
+ const props =
8
+ withDefaults(
9
+ defineProps<{
10
+ element: Record<string, unknown>;
11
+ header: TableHeader;
12
+ align?: AntTableAlign
13
+ }>(), {
14
+ align: AntTableAlign.left
15
+ });
16
+
17
+ const cellClasses = computed(() => ({
18
+ 'whitespace-nowrap px-2.5 py-0 h-[40px] text-sm font-medium relative': true,
19
+ 'text-right': props.align === AntTableAlign.right,
20
+ 'text-center': props.align === AntTableAlign.center
21
+ }))
22
+ </script>
23
+
24
+ <template>
25
+ <td
26
+ :class="cellClasses"
27
+ >
28
+ <slot
29
+ name="beforeCellContent"
30
+ v-bind="{ elem: element, header: header }"
31
+ />
32
+
33
+ <div
34
+ v-if="header.type === AntTableRowTypes.text"
35
+ :class="header.rowClassList"
36
+ >
37
+ {{ element[header.identifier] }}
38
+ </div>
39
+
40
+ <div
41
+ v-else-if="header.type === AntTableRowTypes.link && header.toProp"
42
+ >
43
+ <router-link :to="element[header.toProp] as RouteLocationRaw" class="absolute inset-0">
44
+ </router-link>
45
+ {{ element[header.identifier] }}
46
+ </div>
47
+
48
+ <div
49
+ v-else-if="header.type === AntTableRowTypes.html"
50
+ :class="header.rowClassList"
51
+ v-html="element[header.identifier]"
52
+ />
53
+
54
+ <div
55
+ v-else-if="header.type === AntTableRowTypes.slot"
56
+ :class="header.rowClassList"
57
+ >
58
+ <slot name="cellContent" v-bind="{ element, header }"></slot>
59
+ </div>
60
+
61
+ <slot
62
+ name="afterCellContent"
63
+ v-bind="{ elem: element, header: header }"
64
+ />
65
+ </td>
66
+ </template>
67
+
68
+ <style scoped>
69
+
70
+ </style>