@treeui/vue 0.7.0 → 0.10.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 (732) hide show
  1. package/README.md +3 -8
  2. package/dist/components/TAccordion.cjs +2 -0
  3. package/dist/components/TAccordion.cjs.map +1 -0
  4. package/dist/components/TAccordion.js +7 -0
  5. package/dist/components/TAccordion.js.map +1 -0
  6. package/dist/components/{TreeAccordion.vue.d.ts → TAccordion.vue.d.ts} +1 -1
  7. package/dist/components/TAccordion.vue.d.ts.map +1 -0
  8. package/dist/components/TAccordion.vue_vue_type_script_setup_true_lang.cjs +2 -0
  9. package/dist/components/TAccordion.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  10. package/dist/components/TAccordion.vue_vue_type_script_setup_true_lang.js +97 -0
  11. package/dist/components/TAccordion.vue_vue_type_script_setup_true_lang.js.map +1 -0
  12. package/dist/components/TAccordionItem.cjs +2 -0
  13. package/dist/components/TAccordionItem.cjs.map +1 -0
  14. package/dist/components/TAccordionItem.js +7 -0
  15. package/dist/components/TAccordionItem.js.map +1 -0
  16. package/dist/components/{TreeAccordionItem.vue.d.ts → TAccordionItem.vue.d.ts} +1 -1
  17. package/dist/components/TAccordionItem.vue.d.ts.map +1 -0
  18. package/dist/components/TAccordionItem.vue_vue_type_script_setup_true_lang.cjs +2 -0
  19. package/dist/components/TAccordionItem.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  20. package/dist/components/TAccordionItem.vue_vue_type_script_setup_true_lang.js +83 -0
  21. package/dist/components/TAccordionItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  22. package/dist/components/TAlert.cjs +2 -0
  23. package/dist/components/TAlert.cjs.map +1 -0
  24. package/dist/components/TAlert.js +7 -0
  25. package/dist/components/TAlert.js.map +1 -0
  26. package/dist/components/{TreeAlert.vue.d.ts → TAlert.vue.d.ts} +7 -7
  27. package/dist/components/TAlert.vue.d.ts.map +1 -0
  28. package/dist/components/TAlert.vue_vue_type_script_setup_true_lang.cjs +2 -0
  29. package/dist/components/TAlert.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  30. package/dist/components/TAlert.vue_vue_type_script_setup_true_lang.js +57 -0
  31. package/dist/components/TAlert.vue_vue_type_script_setup_true_lang.js.map +1 -0
  32. package/dist/components/TAvatar.cjs +2 -0
  33. package/dist/components/TAvatar.cjs.map +1 -0
  34. package/dist/components/TAvatar.js +7 -0
  35. package/dist/components/TAvatar.js.map +1 -0
  36. package/dist/components/{TreeAvatar.vue.d.ts → TAvatar.vue.d.ts} +7 -7
  37. package/dist/components/TAvatar.vue.d.ts.map +1 -0
  38. package/dist/components/TAvatar.vue_vue_type_script_setup_true_lang.cjs +2 -0
  39. package/dist/components/TAvatar.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  40. package/dist/components/TAvatar.vue_vue_type_script_setup_true_lang.js +46 -0
  41. package/dist/components/TAvatar.vue_vue_type_script_setup_true_lang.js.map +1 -0
  42. package/dist/components/TBadge.cjs +2 -0
  43. package/dist/components/TBadge.cjs.map +1 -0
  44. package/dist/components/TBadge.js +7 -0
  45. package/dist/components/TBadge.js.map +1 -0
  46. package/dist/components/{TreeBadge.vue.d.ts → TBadge.vue.d.ts} +9 -9
  47. package/dist/components/TBadge.vue.d.ts.map +1 -0
  48. package/dist/components/TBadge.vue_vue_type_script_setup_true_lang.cjs +2 -0
  49. package/dist/components/TBadge.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  50. package/dist/components/TBadge.vue_vue_type_script_setup_true_lang.js +27 -0
  51. package/dist/components/TBadge.vue_vue_type_script_setup_true_lang.js.map +1 -0
  52. package/dist/components/TBreadcrumb.cjs +2 -0
  53. package/dist/components/TBreadcrumb.cjs.map +1 -0
  54. package/dist/components/TBreadcrumb.js +7 -0
  55. package/dist/components/TBreadcrumb.js.map +1 -0
  56. package/dist/components/{TreeBreadcrumb.vue.d.ts → TBreadcrumb.vue.d.ts} +1 -1
  57. package/dist/components/TBreadcrumb.vue.d.ts.map +1 -0
  58. package/dist/components/TBreadcrumb.vue_vue_type_script_setup_true_lang.cjs +2 -0
  59. package/dist/components/TBreadcrumb.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  60. package/dist/components/TBreadcrumb.vue_vue_type_script_setup_true_lang.js +20 -0
  61. package/dist/components/TBreadcrumb.vue_vue_type_script_setup_true_lang.js.map +1 -0
  62. package/dist/components/TBreadcrumbItem.cjs +2 -0
  63. package/dist/components/TBreadcrumbItem.cjs.map +1 -0
  64. package/dist/components/TBreadcrumbItem.js +7 -0
  65. package/dist/components/TBreadcrumbItem.js.map +1 -0
  66. package/dist/components/{TreeBreadcrumbItem.vue.d.ts → TBreadcrumbItem.vue.d.ts} +1 -1
  67. package/dist/components/TBreadcrumbItem.vue.d.ts.map +1 -0
  68. package/dist/components/TBreadcrumbItem.vue_vue_type_script_setup_true_lang.cjs +2 -0
  69. package/dist/components/TBreadcrumbItem.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  70. package/dist/components/TBreadcrumbItem.vue_vue_type_script_setup_true_lang.js +28 -0
  71. package/dist/components/TBreadcrumbItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  72. package/dist/components/TButton.cjs +2 -0
  73. package/dist/components/TButton.cjs.map +1 -0
  74. package/dist/components/TButton.js +7 -0
  75. package/dist/components/TButton.js.map +1 -0
  76. package/dist/components/{TreeButton.vue.d.ts → TButton.vue.d.ts} +6 -6
  77. package/dist/components/TButton.vue.d.ts.map +1 -0
  78. package/dist/components/TButton.vue_vue_type_script_setup_true_lang.cjs +2 -0
  79. package/dist/components/TButton.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  80. package/dist/components/TButton.vue_vue_type_script_setup_true_lang.js +91 -0
  81. package/dist/components/TButton.vue_vue_type_script_setup_true_lang.js.map +1 -0
  82. package/dist/components/TCard.cjs +2 -0
  83. package/dist/components/TCard.cjs.map +1 -0
  84. package/dist/components/TCard.js +7 -0
  85. package/dist/components/TCard.js.map +1 -0
  86. package/dist/components/{TreeCard.vue.d.ts → TCard.vue.d.ts} +6 -6
  87. package/dist/components/TCard.vue.d.ts.map +1 -0
  88. package/dist/components/TCard.vue_vue_type_script_setup_true_lang.cjs +2 -0
  89. package/dist/components/TCard.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  90. package/dist/components/TCard.vue_vue_type_script_setup_true_lang.js +42 -0
  91. package/dist/components/TCard.vue_vue_type_script_setup_true_lang.js.map +1 -0
  92. package/dist/components/TCheckbox.cjs +2 -0
  93. package/dist/components/TCheckbox.cjs.map +1 -0
  94. package/dist/components/TCheckbox.js +7 -0
  95. package/dist/components/TCheckbox.js.map +1 -0
  96. package/dist/components/{TreeCheckbox.vue.d.ts → TCheckbox.vue.d.ts} +4 -4
  97. package/dist/components/TCheckbox.vue.d.ts.map +1 -0
  98. package/dist/components/TCheckbox.vue_vue_type_script_setup_true_lang.cjs +2 -0
  99. package/dist/components/TCheckbox.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  100. package/dist/components/TCheckbox.vue_vue_type_script_setup_true_lang.js +106 -0
  101. package/dist/components/TCheckbox.vue_vue_type_script_setup_true_lang.js.map +1 -0
  102. package/dist/components/TCombobox.cjs +2 -0
  103. package/dist/components/TCombobox.cjs.map +1 -0
  104. package/dist/components/TCombobox.js +7 -0
  105. package/dist/components/TCombobox.js.map +1 -0
  106. package/dist/components/{TreeCombobox.vue.d.ts → TCombobox.vue.d.ts} +9 -9
  107. package/dist/components/TCombobox.vue.d.ts.map +1 -0
  108. package/dist/components/TCombobox.vue_vue_type_script_setup_true_lang.cjs +2 -0
  109. package/dist/components/TCombobox.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  110. package/dist/components/TCombobox.vue_vue_type_script_setup_true_lang.js +282 -0
  111. package/dist/components/TCombobox.vue_vue_type_script_setup_true_lang.js.map +1 -0
  112. package/dist/components/TConfirmDialog.cjs +2 -0
  113. package/dist/components/TConfirmDialog.cjs.map +1 -0
  114. package/dist/components/TConfirmDialog.js +7 -0
  115. package/dist/components/TConfirmDialog.js.map +1 -0
  116. package/dist/components/{TreeConfirmDialog.vue.d.ts → TConfirmDialog.vue.d.ts} +6 -6
  117. package/dist/components/TConfirmDialog.vue.d.ts.map +1 -0
  118. package/dist/components/TConfirmDialog.vue_vue_type_script_setup_true_lang.cjs +2 -0
  119. package/dist/components/TConfirmDialog.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  120. package/dist/components/TConfirmDialog.vue_vue_type_script_setup_true_lang.js +145 -0
  121. package/dist/components/TConfirmDialog.vue_vue_type_script_setup_true_lang.js.map +1 -0
  122. package/dist/components/TContainer.cjs +2 -0
  123. package/dist/components/TContainer.cjs.map +1 -0
  124. package/dist/components/TContainer.js +7 -0
  125. package/dist/components/TContainer.js.map +1 -0
  126. package/dist/components/{TreeContainer.vue.d.ts → TContainer.vue.d.ts} +4 -4
  127. package/dist/components/TContainer.vue.d.ts.map +1 -0
  128. package/dist/components/TContainer.vue_vue_type_script_setup_true_lang.cjs +2 -0
  129. package/dist/components/TContainer.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  130. package/dist/components/TContainer.vue_vue_type_script_setup_true_lang.js +43 -0
  131. package/dist/components/TContainer.vue_vue_type_script_setup_true_lang.js.map +1 -0
  132. package/dist/components/TContextMenu.cjs +2 -0
  133. package/dist/components/TContextMenu.cjs.map +1 -0
  134. package/dist/components/TContextMenu.js +7 -0
  135. package/dist/components/TContextMenu.js.map +1 -0
  136. package/dist/components/{TreeContextMenu.vue.d.ts → TContextMenu.vue.d.ts} +9 -9
  137. package/dist/components/TContextMenu.vue.d.ts.map +1 -0
  138. package/dist/components/TContextMenu.vue_vue_type_script_setup_true_lang.cjs +2 -0
  139. package/dist/components/TContextMenu.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  140. package/dist/components/TContextMenu.vue_vue_type_script_setup_true_lang.js +149 -0
  141. package/dist/components/TContextMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
  142. package/dist/components/TDatePicker.cjs +2 -0
  143. package/dist/components/TDatePicker.cjs.map +1 -0
  144. package/dist/components/TDatePicker.js +7 -0
  145. package/dist/components/TDatePicker.js.map +1 -0
  146. package/dist/components/{TreeDatePicker.vue.d.ts → TDatePicker.vue.d.ts} +4 -4
  147. package/dist/components/TDatePicker.vue.d.ts.map +1 -0
  148. package/dist/components/TDatePicker.vue_vue_type_script_setup_true_lang.cjs +2 -0
  149. package/dist/components/TDatePicker.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  150. package/dist/components/TDatePicker.vue_vue_type_script_setup_true_lang.js +305 -0
  151. package/dist/components/TDatePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
  152. package/dist/components/TDateTimePicker.cjs +2 -0
  153. package/dist/components/TDateTimePicker.cjs.map +1 -0
  154. package/dist/components/TDateTimePicker.js +7 -0
  155. package/dist/components/TDateTimePicker.js.map +1 -0
  156. package/dist/components/{TreeDateTimePicker.vue.d.ts → TDateTimePicker.vue.d.ts} +4 -4
  157. package/dist/components/TDateTimePicker.vue.d.ts.map +1 -0
  158. package/dist/components/TDateTimePicker.vue_vue_type_script_setup_true_lang.cjs +2 -0
  159. package/dist/components/TDateTimePicker.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  160. package/dist/components/TDateTimePicker.vue_vue_type_script_setup_true_lang.js +409 -0
  161. package/dist/components/TDateTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
  162. package/dist/components/TDivider.cjs +2 -0
  163. package/dist/components/TDivider.cjs.map +1 -0
  164. package/dist/components/TDivider.js +7 -0
  165. package/dist/components/TDivider.js.map +1 -0
  166. package/dist/components/{TreeDivider.vue.d.ts → TDivider.vue.d.ts} +1 -1
  167. package/dist/components/TDivider.vue.d.ts.map +1 -0
  168. package/dist/components/TDivider.vue_vue_type_script_setup_true_lang.cjs +2 -0
  169. package/dist/components/TDivider.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  170. package/dist/components/TDivider.vue_vue_type_script_setup_true_lang.js +30 -0
  171. package/dist/components/TDivider.vue_vue_type_script_setup_true_lang.js.map +1 -0
  172. package/dist/components/TDrawer.cjs +2 -0
  173. package/dist/components/TDrawer.cjs.map +1 -0
  174. package/dist/components/TDrawer.js +7 -0
  175. package/dist/components/TDrawer.js.map +1 -0
  176. package/dist/components/{TreeDrawer.vue.d.ts → TDrawer.vue.d.ts} +6 -6
  177. package/dist/components/TDrawer.vue.d.ts.map +1 -0
  178. package/dist/components/TDrawer.vue_vue_type_script_setup_true_lang.cjs +2 -0
  179. package/dist/components/TDrawer.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  180. package/dist/components/TDrawer.vue_vue_type_script_setup_true_lang.js +168 -0
  181. package/dist/components/TDrawer.vue_vue_type_script_setup_true_lang.js.map +1 -0
  182. package/dist/components/TDropdown.cjs +2 -0
  183. package/dist/components/TDropdown.cjs.map +1 -0
  184. package/dist/components/TDropdown.js +7 -0
  185. package/dist/components/TDropdown.js.map +1 -0
  186. package/dist/components/{TreeDropdown.vue.d.ts → TDropdown.vue.d.ts} +12 -9
  187. package/dist/components/TDropdown.vue.d.ts.map +1 -0
  188. package/dist/components/TDropdown.vue_vue_type_script_setup_true_lang.cjs +2 -0
  189. package/dist/components/TDropdown.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  190. package/dist/components/TDropdown.vue_vue_type_script_setup_true_lang.js +176 -0
  191. package/dist/components/TDropdown.vue_vue_type_script_setup_true_lang.js.map +1 -0
  192. package/dist/components/TEmptyState.cjs +2 -0
  193. package/dist/components/TEmptyState.cjs.map +1 -0
  194. package/dist/components/TEmptyState.js +7 -0
  195. package/dist/components/TEmptyState.js.map +1 -0
  196. package/dist/components/{TreeEmptyState.vue.d.ts → TEmptyState.vue.d.ts} +4 -4
  197. package/dist/components/TEmptyState.vue.d.ts.map +1 -0
  198. package/dist/components/TEmptyState.vue_vue_type_script_setup_true_lang.cjs +2 -0
  199. package/dist/components/TEmptyState.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  200. package/dist/components/TEmptyState.vue_vue_type_script_setup_true_lang.js +64 -0
  201. package/dist/components/TEmptyState.vue_vue_type_script_setup_true_lang.js.map +1 -0
  202. package/dist/components/TFileUpload.cjs +2 -0
  203. package/dist/components/TFileUpload.cjs.map +1 -0
  204. package/dist/components/TFileUpload.js +7 -0
  205. package/dist/components/TFileUpload.js.map +1 -0
  206. package/dist/components/{TreeFileUpload.vue.d.ts → TFileUpload.vue.d.ts} +9 -9
  207. package/dist/components/TFileUpload.vue.d.ts.map +1 -0
  208. package/dist/components/TFileUpload.vue_vue_type_script_setup_true_lang.cjs +2 -0
  209. package/dist/components/TFileUpload.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  210. package/dist/components/TFileUpload.vue_vue_type_script_setup_true_lang.js +284 -0
  211. package/dist/components/TFileUpload.vue_vue_type_script_setup_true_lang.js.map +1 -0
  212. package/dist/components/TFormField.cjs +2 -0
  213. package/dist/components/TFormField.cjs.map +1 -0
  214. package/dist/components/TFormField.js +7 -0
  215. package/dist/components/TFormField.js.map +1 -0
  216. package/dist/components/{TreeFormField.vue.d.ts → TFormField.vue.d.ts} +4 -4
  217. package/dist/components/TFormField.vue.d.ts.map +1 -0
  218. package/dist/components/TFormField.vue_vue_type_script_setup_true_lang.cjs +2 -0
  219. package/dist/components/TFormField.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  220. package/dist/components/TFormField.vue_vue_type_script_setup_true_lang.js +63 -0
  221. package/dist/components/TFormField.vue_vue_type_script_setup_true_lang.js.map +1 -0
  222. package/dist/components/TGrid.cjs +2 -0
  223. package/dist/components/TGrid.cjs.map +1 -0
  224. package/dist/components/TGrid.js +7 -0
  225. package/dist/components/TGrid.js.map +1 -0
  226. package/dist/components/{TreeGrid.vue.d.ts → TGrid.vue.d.ts} +2 -2
  227. package/dist/components/TGrid.vue.d.ts.map +1 -0
  228. package/dist/components/TGrid.vue_vue_type_script_setup_true_lang.cjs +2 -0
  229. package/dist/components/TGrid.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  230. package/dist/components/TGrid.vue_vue_type_script_setup_true_lang.js +47 -0
  231. package/dist/components/TGrid.vue_vue_type_script_setup_true_lang.js.map +1 -0
  232. package/dist/components/TIcon.cjs +2 -0
  233. package/dist/components/TIcon.cjs.map +1 -0
  234. package/dist/components/TIcon.js +7 -0
  235. package/dist/components/TIcon.js.map +1 -0
  236. package/dist/components/{TreeIcon.vue.d.ts → TIcon.vue.d.ts} +3 -3
  237. package/dist/components/TIcon.vue.d.ts.map +1 -0
  238. package/dist/components/TIcon.vue_vue_type_script_setup_true_lang.cjs +2 -0
  239. package/dist/components/TIcon.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  240. package/dist/components/TIcon.vue_vue_type_script_setup_true_lang.js +39 -0
  241. package/dist/components/TIcon.vue_vue_type_script_setup_true_lang.js.map +1 -0
  242. package/dist/components/TInput.cjs +2 -0
  243. package/dist/components/TInput.cjs.map +1 -0
  244. package/dist/components/TInput.js +7 -0
  245. package/dist/components/TInput.js.map +1 -0
  246. package/dist/components/{TreeInput.vue.d.ts → TInput.vue.d.ts} +4 -4
  247. package/dist/components/TInput.vue.d.ts.map +1 -0
  248. package/dist/components/TInput.vue_vue_type_script_setup_true_lang.cjs +2 -0
  249. package/dist/components/TInput.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  250. package/dist/components/TInput.vue_vue_type_script_setup_true_lang.js +80 -0
  251. package/dist/components/TInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
  252. package/dist/components/TLink.cjs +2 -0
  253. package/dist/components/TLink.cjs.map +1 -0
  254. package/dist/components/TLink.js +7 -0
  255. package/dist/components/TLink.js.map +1 -0
  256. package/dist/components/{TreeLink.vue.d.ts → TLink.vue.d.ts} +4 -4
  257. package/dist/components/TLink.vue.d.ts.map +1 -0
  258. package/dist/components/TLink.vue_vue_type_script_setup_true_lang.cjs +2 -0
  259. package/dist/components/TLink.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  260. package/dist/components/TLink.vue_vue_type_script_setup_true_lang.js +47 -0
  261. package/dist/components/TLink.vue_vue_type_script_setup_true_lang.js.map +1 -0
  262. package/dist/components/TMarkdownEditor.cjs +2 -0
  263. package/dist/components/TMarkdownEditor.cjs.map +1 -0
  264. package/dist/components/TMarkdownEditor.js +7 -0
  265. package/dist/components/TMarkdownEditor.js.map +1 -0
  266. package/dist/components/{TreeMarkdownEditor.vue.d.ts → TMarkdownEditor.vue.d.ts} +4 -4
  267. package/dist/components/TMarkdownEditor.vue.d.ts.map +1 -0
  268. package/dist/components/TMarkdownEditor.vue_vue_type_script_setup_true_lang.cjs +12 -0
  269. package/dist/components/TMarkdownEditor.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  270. package/dist/components/TMarkdownEditor.vue_vue_type_script_setup_true_lang.js +315 -0
  271. package/dist/components/TMarkdownEditor.vue_vue_type_script_setup_true_lang.js.map +1 -0
  272. package/dist/components/TModal.cjs +2 -0
  273. package/dist/components/TModal.cjs.map +1 -0
  274. package/dist/components/TModal.js +7 -0
  275. package/dist/components/TModal.js.map +1 -0
  276. package/dist/components/{TreeModal.vue.d.ts → TModal.vue.d.ts} +4 -4
  277. package/dist/components/TModal.vue.d.ts.map +1 -0
  278. package/dist/components/TModal.vue_vue_type_script_setup_true_lang.cjs +2 -0
  279. package/dist/components/TModal.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  280. package/dist/components/TModal.vue_vue_type_script_setup_true_lang.js +163 -0
  281. package/dist/components/TModal.vue_vue_type_script_setup_true_lang.js.map +1 -0
  282. package/dist/components/TMultiSelect.cjs +2 -0
  283. package/dist/components/TMultiSelect.cjs.map +1 -0
  284. package/dist/components/TMultiSelect.js +7 -0
  285. package/dist/components/TMultiSelect.js.map +1 -0
  286. package/dist/components/{TreeMultiSelect.vue.d.ts → TMultiSelect.vue.d.ts} +11 -11
  287. package/dist/components/TMultiSelect.vue.d.ts.map +1 -0
  288. package/dist/components/TMultiSelect.vue_vue_type_script_setup_true_lang.cjs +2 -0
  289. package/dist/components/TMultiSelect.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  290. package/dist/components/TMultiSelect.vue_vue_type_script_setup_true_lang.js +282 -0
  291. package/dist/components/TMultiSelect.vue_vue_type_script_setup_true_lang.js.map +1 -0
  292. package/dist/components/TNavMenu.cjs +2 -0
  293. package/dist/components/TNavMenu.cjs.map +1 -0
  294. package/dist/components/TNavMenu.js +7 -0
  295. package/dist/components/TNavMenu.js.map +1 -0
  296. package/dist/components/{TreeNavMenu.vue.d.ts → TNavMenu.vue.d.ts} +11 -11
  297. package/dist/components/TNavMenu.vue.d.ts.map +1 -0
  298. package/dist/components/TNavMenu.vue_vue_type_script_setup_true_lang.cjs +2 -0
  299. package/dist/components/TNavMenu.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  300. package/dist/components/TNavMenu.vue_vue_type_script_setup_true_lang.js +151 -0
  301. package/dist/components/TNavMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
  302. package/dist/components/TNavbar.cjs +2 -0
  303. package/dist/components/TNavbar.cjs.map +1 -0
  304. package/dist/components/TNavbar.js +7 -0
  305. package/dist/components/TNavbar.js.map +1 -0
  306. package/dist/components/{TreeNavbar.vue.d.ts → TNavbar.vue.d.ts} +4 -4
  307. package/dist/components/TNavbar.vue.d.ts.map +1 -0
  308. package/dist/components/TNavbar.vue_vue_type_script_setup_true_lang.cjs +2 -0
  309. package/dist/components/TNavbar.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  310. package/dist/components/TNavbar.vue_vue_type_script_setup_true_lang.js +61 -0
  311. package/dist/components/TNavbar.vue_vue_type_script_setup_true_lang.js.map +1 -0
  312. package/dist/components/TNumberInput.cjs +2 -0
  313. package/dist/components/TNumberInput.cjs.map +1 -0
  314. package/dist/components/TNumberInput.js +7 -0
  315. package/dist/components/TNumberInput.js.map +1 -0
  316. package/dist/components/{TreeNumberInput.vue.d.ts → TNumberInput.vue.d.ts} +4 -4
  317. package/dist/components/TNumberInput.vue.d.ts.map +1 -0
  318. package/dist/components/TNumberInput.vue_vue_type_script_setup_true_lang.cjs +2 -0
  319. package/dist/components/TNumberInput.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  320. package/dist/components/TNumberInput.vue_vue_type_script_setup_true_lang.js +145 -0
  321. package/dist/components/TNumberInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
  322. package/dist/components/TPagination.cjs +2 -0
  323. package/dist/components/TPagination.cjs.map +1 -0
  324. package/dist/components/TPagination.js +7 -0
  325. package/dist/components/TPagination.js.map +1 -0
  326. package/dist/components/{TreePagination.vue.d.ts → TPagination.vue.d.ts} +4 -4
  327. package/dist/components/TPagination.vue.d.ts.map +1 -0
  328. package/dist/components/TPagination.vue_vue_type_script_setup_true_lang.cjs +2 -0
  329. package/dist/components/TPagination.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  330. package/dist/components/TPagination.vue_vue_type_script_setup_true_lang.js +105 -0
  331. package/dist/components/TPagination.vue_vue_type_script_setup_true_lang.js.map +1 -0
  332. package/dist/components/TPopover.cjs +2 -0
  333. package/dist/components/TPopover.cjs.map +1 -0
  334. package/dist/components/TPopover.js +7 -0
  335. package/dist/components/TPopover.js.map +1 -0
  336. package/dist/components/{TreePopover.vue.d.ts → TPopover.vue.d.ts} +4 -4
  337. package/dist/components/TPopover.vue.d.ts.map +1 -0
  338. package/dist/components/TPopover.vue_vue_type_script_setup_true_lang.cjs +2 -0
  339. package/dist/components/TPopover.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  340. package/dist/components/TPopover.vue_vue_type_script_setup_true_lang.js +106 -0
  341. package/dist/components/TPopover.vue_vue_type_script_setup_true_lang.js.map +1 -0
  342. package/dist/components/TPricing.cjs +2 -0
  343. package/dist/components/TPricing.cjs.map +1 -0
  344. package/dist/components/TPricing.js +7 -0
  345. package/dist/components/TPricing.js.map +1 -0
  346. package/dist/components/{TreePricing.vue.d.ts → TPricing.vue.d.ts} +5 -5
  347. package/dist/components/TPricing.vue.d.ts.map +1 -0
  348. package/dist/components/TPricing.vue_vue_type_script_setup_true_lang.cjs +2 -0
  349. package/dist/components/TPricing.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  350. package/dist/components/TPricing.vue_vue_type_script_setup_true_lang.js +33 -0
  351. package/dist/components/TPricing.vue_vue_type_script_setup_true_lang.js.map +1 -0
  352. package/dist/components/TPricingCard.cjs +2 -0
  353. package/dist/components/TPricingCard.cjs.map +1 -0
  354. package/dist/components/TPricingCard.js +7 -0
  355. package/dist/components/TPricingCard.js.map +1 -0
  356. package/dist/components/{TreePricingCard.vue.d.ts → TPricingCard.vue.d.ts} +4 -4
  357. package/dist/components/TPricingCard.vue.d.ts.map +1 -0
  358. package/dist/components/TPricingCard.vue_vue_type_script_setup_true_lang.cjs +2 -0
  359. package/dist/components/TPricingCard.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  360. package/dist/components/TPricingCard.vue_vue_type_script_setup_true_lang.js +93 -0
  361. package/dist/components/TPricingCard.vue_vue_type_script_setup_true_lang.js.map +1 -0
  362. package/dist/components/TProgress.cjs +2 -0
  363. package/dist/components/TProgress.cjs.map +1 -0
  364. package/dist/components/TProgress.js +7 -0
  365. package/dist/components/TProgress.js.map +1 -0
  366. package/dist/components/{TreeProgress.vue.d.ts → TProgress.vue.d.ts} +4 -4
  367. package/dist/components/TProgress.vue.d.ts.map +1 -0
  368. package/dist/components/TProgress.vue_vue_type_script_setup_true_lang.cjs +2 -0
  369. package/dist/components/TProgress.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  370. package/dist/components/TProgress.vue_vue_type_script_setup_true_lang.js +33 -0
  371. package/dist/components/TProgress.vue_vue_type_script_setup_true_lang.js.map +1 -0
  372. package/dist/components/TRadio.cjs +2 -0
  373. package/dist/components/TRadio.cjs.map +1 -0
  374. package/dist/components/TRadio.js +7 -0
  375. package/dist/components/TRadio.js.map +1 -0
  376. package/dist/components/{TreeRadio.vue.d.ts → TRadio.vue.d.ts} +4 -4
  377. package/dist/components/TRadio.vue.d.ts.map +1 -0
  378. package/dist/components/TRadio.vue_vue_type_script_setup_true_lang.cjs +2 -0
  379. package/dist/components/TRadio.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  380. package/dist/components/TRadio.vue_vue_type_script_setup_true_lang.js +73 -0
  381. package/dist/components/TRadio.vue_vue_type_script_setup_true_lang.js.map +1 -0
  382. package/dist/components/TRadioGroup.cjs +2 -0
  383. package/dist/components/TRadioGroup.cjs.map +1 -0
  384. package/dist/components/TRadioGroup.js +7 -0
  385. package/dist/components/TRadioGroup.js.map +1 -0
  386. package/dist/components/{TreeRadioGroup.vue.d.ts → TRadioGroup.vue.d.ts} +4 -4
  387. package/dist/components/TRadioGroup.vue.d.ts.map +1 -0
  388. package/dist/components/TRadioGroup.vue_vue_type_script_setup_true_lang.cjs +2 -0
  389. package/dist/components/TRadioGroup.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  390. package/dist/components/TRadioGroup.vue_vue_type_script_setup_true_lang.js +46 -0
  391. package/dist/components/TRadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
  392. package/dist/components/TSelect.cjs +2 -0
  393. package/dist/components/TSelect.cjs.map +1 -0
  394. package/dist/components/TSelect.js +7 -0
  395. package/dist/components/TSelect.js.map +1 -0
  396. package/dist/components/{TreeSelect.vue.d.ts → TSelect.vue.d.ts} +9 -7
  397. package/dist/components/TSelect.vue.d.ts.map +1 -0
  398. package/dist/components/TSelect.vue_vue_type_script_setup_true_lang.cjs +2 -0
  399. package/dist/components/TSelect.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  400. package/dist/components/TSelect.vue_vue_type_script_setup_true_lang.js +238 -0
  401. package/dist/components/TSelect.vue_vue_type_script_setup_true_lang.js.map +1 -0
  402. package/dist/components/TSelectableList.cjs +2 -0
  403. package/dist/components/TSelectableList.cjs.map +1 -0
  404. package/dist/components/TSelectableList.js +7 -0
  405. package/dist/components/TSelectableList.js.map +1 -0
  406. package/dist/components/{TreeSelectableList.vue.d.ts → TSelectableList.vue.d.ts} +9 -9
  407. package/dist/components/TSelectableList.vue.d.ts.map +1 -0
  408. package/dist/components/TSelectableList.vue_vue_type_script_setup_true_lang.cjs +2 -0
  409. package/dist/components/TSelectableList.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  410. package/dist/components/TSelectableList.vue_vue_type_script_setup_true_lang.js +133 -0
  411. package/dist/components/TSelectableList.vue_vue_type_script_setup_true_lang.js.map +1 -0
  412. package/dist/components/TSidebar.cjs +2 -0
  413. package/dist/components/TSidebar.cjs.map +1 -0
  414. package/dist/components/TSidebar.js +7 -0
  415. package/dist/components/TSidebar.js.map +1 -0
  416. package/dist/components/{TreeSidebar.vue.d.ts → TSidebar.vue.d.ts} +7 -7
  417. package/dist/components/TSidebar.vue.d.ts.map +1 -0
  418. package/dist/components/TSidebar.vue_vue_type_script_setup_true_lang.cjs +2 -0
  419. package/dist/components/TSidebar.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  420. package/dist/components/TSidebar.vue_vue_type_script_setup_true_lang.js +98 -0
  421. package/dist/components/TSidebar.vue_vue_type_script_setup_true_lang.js.map +1 -0
  422. package/dist/components/TSkeleton.cjs +2 -0
  423. package/dist/components/TSkeleton.cjs.map +1 -0
  424. package/dist/components/TSkeleton.js +7 -0
  425. package/dist/components/TSkeleton.js.map +1 -0
  426. package/dist/components/{TreeSkeleton.vue.d.ts → TSkeleton.vue.d.ts} +1 -1
  427. package/dist/components/TSkeleton.vue.d.ts.map +1 -0
  428. package/dist/components/TSkeleton.vue_vue_type_script_setup_true_lang.cjs +2 -0
  429. package/dist/components/TSkeleton.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  430. package/dist/components/TSkeleton.vue_vue_type_script_setup_true_lang.js +25 -0
  431. package/dist/components/TSkeleton.vue_vue_type_script_setup_true_lang.js.map +1 -0
  432. package/dist/components/TSpinner.cjs +2 -0
  433. package/dist/components/TSpinner.cjs.map +1 -0
  434. package/dist/components/TSpinner.js +7 -0
  435. package/dist/components/TSpinner.js.map +1 -0
  436. package/dist/components/{TreeSpinner.vue.d.ts → TSpinner.vue.d.ts} +4 -4
  437. package/dist/components/TSpinner.vue.d.ts.map +1 -0
  438. package/dist/components/TSpinner.vue_vue_type_script_setup_true_lang.cjs +2 -0
  439. package/dist/components/TSpinner.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  440. package/dist/components/TSpinner.vue_vue_type_script_setup_true_lang.js +24 -0
  441. package/dist/components/TSpinner.vue_vue_type_script_setup_true_lang.js.map +1 -0
  442. package/dist/components/TStack.cjs +2 -0
  443. package/dist/components/TStack.cjs.map +1 -0
  444. package/dist/components/TStack.js +7 -0
  445. package/dist/components/TStack.js.map +1 -0
  446. package/dist/components/{TreeStack.vue.d.ts → TStack.vue.d.ts} +5 -5
  447. package/dist/components/TStack.vue.d.ts.map +1 -0
  448. package/dist/components/TStack.vue_vue_type_script_setup_true_lang.cjs +2 -0
  449. package/dist/components/TStack.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  450. package/dist/components/TStack.vue_vue_type_script_setup_true_lang.js +50 -0
  451. package/dist/components/TStack.vue_vue_type_script_setup_true_lang.js.map +1 -0
  452. package/dist/components/TStat.cjs +2 -0
  453. package/dist/components/TStat.cjs.map +1 -0
  454. package/dist/components/TStat.js +7 -0
  455. package/dist/components/TStat.js.map +1 -0
  456. package/dist/components/{TreeStat.vue.d.ts → TStat.vue.d.ts} +7 -7
  457. package/dist/components/TStat.vue.d.ts.map +1 -0
  458. package/dist/components/TStat.vue_vue_type_script_setup_true_lang.cjs +2 -0
  459. package/dist/components/TStat.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  460. package/dist/components/TStat.vue_vue_type_script_setup_true_lang.js +72 -0
  461. package/dist/components/TStat.vue_vue_type_script_setup_true_lang.js.map +1 -0
  462. package/dist/components/TSteps.cjs +2 -0
  463. package/dist/components/TSteps.cjs.map +1 -0
  464. package/dist/components/TSteps.js +7 -0
  465. package/dist/components/TSteps.js.map +1 -0
  466. package/dist/components/{TreeSteps.vue.d.ts → TSteps.vue.d.ts} +16 -16
  467. package/dist/components/TSteps.vue.d.ts.map +1 -0
  468. package/dist/components/TSteps.vue_vue_type_script_setup_true_lang.cjs +2 -0
  469. package/dist/components/TSteps.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  470. package/dist/components/TSteps.vue_vue_type_script_setup_true_lang.js +83 -0
  471. package/dist/components/TSteps.vue_vue_type_script_setup_true_lang.js.map +1 -0
  472. package/dist/components/TSwitch.cjs +2 -0
  473. package/dist/components/TSwitch.cjs.map +1 -0
  474. package/dist/components/TSwitch.js +7 -0
  475. package/dist/components/TSwitch.js.map +1 -0
  476. package/dist/components/{TreeSwitch.vue.d.ts → TSwitch.vue.d.ts} +4 -4
  477. package/dist/components/TSwitch.vue.d.ts.map +1 -0
  478. package/dist/components/TSwitch.vue_vue_type_script_setup_true_lang.cjs +2 -0
  479. package/dist/components/TSwitch.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  480. package/dist/components/TSwitch.vue_vue_type_script_setup_true_lang.js +71 -0
  481. package/dist/components/TSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -0
  482. package/dist/components/TTab.cjs +2 -0
  483. package/dist/components/TTab.cjs.map +1 -0
  484. package/dist/components/TTab.js +7 -0
  485. package/dist/components/TTab.js.map +1 -0
  486. package/dist/components/{TreeTab.vue.d.ts → TTab.vue.d.ts} +1 -1
  487. package/dist/components/TTab.vue.d.ts.map +1 -0
  488. package/dist/components/TTab.vue_vue_type_script_setup_true_lang.cjs +2 -0
  489. package/dist/components/TTab.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  490. package/dist/components/TTab.vue_vue_type_script_setup_true_lang.js +55 -0
  491. package/dist/components/TTab.vue_vue_type_script_setup_true_lang.js.map +1 -0
  492. package/dist/components/TTabList.cjs +2 -0
  493. package/dist/components/TTabList.cjs.map +1 -0
  494. package/dist/components/TTabList.js +7 -0
  495. package/dist/components/TTabList.js.map +1 -0
  496. package/dist/components/{TreeTabList.vue.d.ts → TTabList.vue.d.ts} +1 -1
  497. package/dist/components/TTabList.vue.d.ts.map +1 -0
  498. package/dist/components/TTabList.vue_vue_type_script_setup_true_lang.cjs +2 -0
  499. package/dist/components/TTabList.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  500. package/dist/components/TTabList.vue_vue_type_script_setup_true_lang.js +73 -0
  501. package/dist/components/TTabList.vue_vue_type_script_setup_true_lang.js.map +1 -0
  502. package/dist/components/TTabPanel.cjs +2 -0
  503. package/dist/components/TTabPanel.cjs.map +1 -0
  504. package/dist/components/TTabPanel.js +7 -0
  505. package/dist/components/TTabPanel.js.map +1 -0
  506. package/dist/components/{TreeTabPanel.vue.d.ts → TTabPanel.vue.d.ts} +1 -1
  507. package/dist/components/TTabPanel.vue.d.ts.map +1 -0
  508. package/dist/components/TTabPanel.vue_vue_type_script_setup_true_lang.cjs +2 -0
  509. package/dist/components/TTabPanel.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  510. package/dist/components/TTabPanel.vue_vue_type_script_setup_true_lang.js +24 -0
  511. package/dist/components/TTabPanel.vue_vue_type_script_setup_true_lang.js.map +1 -0
  512. package/dist/components/TTable.cjs +2 -0
  513. package/dist/components/TTable.cjs.map +1 -0
  514. package/dist/components/TTable.js +7 -0
  515. package/dist/components/TTable.js.map +1 -0
  516. package/dist/components/{TreeTable.vue.d.ts → TTable.vue.d.ts} +15 -15
  517. package/dist/components/TTable.vue.d.ts.map +1 -0
  518. package/dist/components/TTable.vue_vue_type_script_setup_true_lang.cjs +2 -0
  519. package/dist/components/TTable.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  520. package/dist/components/TTable.vue_vue_type_script_setup_true_lang.js +118 -0
  521. package/dist/components/TTable.vue_vue_type_script_setup_true_lang.js.map +1 -0
  522. package/dist/components/TTabs.cjs +2 -0
  523. package/dist/components/TTabs.cjs.map +1 -0
  524. package/dist/components/TTabs.js +7 -0
  525. package/dist/components/TTabs.js.map +1 -0
  526. package/dist/components/{TreeTabs.vue.d.ts → TTabs.vue.d.ts} +4 -4
  527. package/dist/components/TTabs.vue.d.ts.map +1 -0
  528. package/dist/components/TTabs.vue_vue_type_script_setup_true_lang.cjs +2 -0
  529. package/dist/components/TTabs.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  530. package/dist/components/TTabs.vue_vue_type_script_setup_true_lang.js +51 -0
  531. package/dist/components/TTabs.vue_vue_type_script_setup_true_lang.js.map +1 -0
  532. package/dist/components/TTag.cjs +2 -0
  533. package/dist/components/TTag.cjs.map +1 -0
  534. package/dist/components/TTag.js +7 -0
  535. package/dist/components/TTag.js.map +1 -0
  536. package/dist/components/{TreeTag.vue.d.ts → TTag.vue.d.ts} +7 -7
  537. package/dist/components/TTag.vue.d.ts.map +1 -0
  538. package/dist/components/TTag.vue_vue_type_script_setup_true_lang.cjs +2 -0
  539. package/dist/components/TTag.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  540. package/dist/components/TTag.vue_vue_type_script_setup_true_lang.js +60 -0
  541. package/dist/components/TTag.vue_vue_type_script_setup_true_lang.js.map +1 -0
  542. package/dist/components/TTextarea.cjs +2 -0
  543. package/dist/components/TTextarea.cjs.map +1 -0
  544. package/dist/components/TTextarea.js +7 -0
  545. package/dist/components/TTextarea.js.map +1 -0
  546. package/dist/components/{TreeTextarea.vue.d.ts → TTextarea.vue.d.ts} +4 -4
  547. package/dist/components/TTextarea.vue.d.ts.map +1 -0
  548. package/dist/components/TTextarea.vue_vue_type_script_setup_true_lang.cjs +2 -0
  549. package/dist/components/TTextarea.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  550. package/dist/components/TTextarea.vue_vue_type_script_setup_true_lang.js +81 -0
  551. package/dist/components/TTextarea.vue_vue_type_script_setup_true_lang.js.map +1 -0
  552. package/dist/components/TTimeline.cjs +2 -0
  553. package/dist/components/TTimeline.cjs.map +1 -0
  554. package/dist/components/TTimeline.js +7 -0
  555. package/dist/components/TTimeline.js.map +1 -0
  556. package/dist/components/{TreeTimeline.vue.d.ts → TTimeline.vue.d.ts} +13 -13
  557. package/dist/components/TTimeline.vue.d.ts.map +1 -0
  558. package/dist/components/TTimeline.vue_vue_type_script_setup_true_lang.cjs +2 -0
  559. package/dist/components/TTimeline.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  560. package/dist/components/TTimeline.vue_vue_type_script_setup_true_lang.js +58 -0
  561. package/dist/components/TTimeline.vue_vue_type_script_setup_true_lang.js.map +1 -0
  562. package/dist/components/TToast.cjs +2 -0
  563. package/dist/components/TToast.cjs.map +1 -0
  564. package/dist/components/TToast.js +7 -0
  565. package/dist/components/TToast.js.map +1 -0
  566. package/dist/components/{TreeToast.vue.d.ts → TToast.vue.d.ts} +1 -1
  567. package/dist/components/TToast.vue.d.ts.map +1 -0
  568. package/dist/components/TToast.vue_vue_type_script_setup_true_lang.cjs +2 -0
  569. package/dist/components/TToast.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  570. package/dist/components/TToast.vue_vue_type_script_setup_true_lang.js +50 -0
  571. package/dist/components/TToast.vue_vue_type_script_setup_true_lang.js.map +1 -0
  572. package/dist/components/TToastProvider.cjs +2 -0
  573. package/dist/components/TToastProvider.cjs.map +1 -0
  574. package/dist/components/TToastProvider.js +7 -0
  575. package/dist/components/TToastProvider.js.map +1 -0
  576. package/dist/components/{TreeToastProvider.vue.d.ts → TToastProvider.vue.d.ts} +1 -1
  577. package/dist/components/TToastProvider.vue.d.ts.map +1 -0
  578. package/dist/components/TToastProvider.vue_vue_type_script_setup_true_lang.cjs +2 -0
  579. package/dist/components/TToastProvider.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  580. package/dist/components/TToastProvider.vue_vue_type_script_setup_true_lang.js +33 -0
  581. package/dist/components/TToastProvider.vue_vue_type_script_setup_true_lang.js.map +1 -0
  582. package/dist/components/TToggleGroup.cjs +2 -0
  583. package/dist/components/TToggleGroup.cjs.map +1 -0
  584. package/dist/components/TToggleGroup.js +7 -0
  585. package/dist/components/TToggleGroup.js.map +1 -0
  586. package/dist/components/{TreeToggleGroup.vue.d.ts → TToggleGroup.vue.d.ts} +15 -15
  587. package/dist/components/TToggleGroup.vue.d.ts.map +1 -0
  588. package/dist/components/TToggleGroup.vue_vue_type_script_setup_true_lang.cjs +2 -0
  589. package/dist/components/TToggleGroup.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  590. package/dist/components/TToggleGroup.vue_vue_type_script_setup_true_lang.js +119 -0
  591. package/dist/components/TToggleGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
  592. package/dist/components/TTooltip.cjs +2 -0
  593. package/dist/components/TTooltip.cjs.map +1 -0
  594. package/dist/components/TTooltip.js +7 -0
  595. package/dist/components/TTooltip.js.map +1 -0
  596. package/dist/components/{TreeTooltip.vue.d.ts → TTooltip.vue.d.ts} +4 -4
  597. package/dist/components/TTooltip.vue.d.ts.map +1 -0
  598. package/dist/components/TTooltip.vue_vue_type_script_setup_true_lang.cjs +2 -0
  599. package/dist/components/TTooltip.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  600. package/dist/components/TTooltip.vue_vue_type_script_setup_true_lang.js +75 -0
  601. package/dist/components/TTooltip.vue_vue_type_script_setup_true_lang.js.map +1 -0
  602. package/dist/components/TTreeView.cjs +2 -0
  603. package/dist/components/TTreeView.cjs.map +1 -0
  604. package/dist/components/TTreeView.js +7 -0
  605. package/dist/components/TTreeView.js.map +1 -0
  606. package/dist/components/{TreeTreeView.vue.d.ts → TTreeView.vue.d.ts} +6 -6
  607. package/dist/components/TTreeView.vue.d.ts.map +1 -0
  608. package/dist/components/TTreeView.vue_vue_type_script_setup_true_lang.cjs +2 -0
  609. package/dist/components/TTreeView.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  610. package/dist/components/TTreeView.vue_vue_type_script_setup_true_lang.js +161 -0
  611. package/dist/components/TTreeView.vue_vue_type_script_setup_true_lang.js.map +1 -0
  612. package/dist/components/TTreeViewItem.cjs +2 -0
  613. package/dist/components/TTreeViewItem.cjs.map +1 -0
  614. package/dist/components/TTreeViewItem.js +7 -0
  615. package/dist/components/TTreeViewItem.js.map +1 -0
  616. package/dist/components/{TreeTreeViewItem.vue.d.ts → TTreeViewItem.vue.d.ts} +3 -3
  617. package/dist/components/TTreeViewItem.vue.d.ts.map +1 -0
  618. package/dist/components/TTreeViewItem.vue_vue_type_script_setup_true_lang.cjs +2 -0
  619. package/dist/components/TTreeViewItem.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  620. package/dist/components/TTreeViewItem.vue_vue_type_script_setup_true_lang.js +101 -0
  621. package/dist/components/TTreeViewItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  622. package/dist/components/accordion.cjs +2 -0
  623. package/dist/components/accordion.cjs.map +1 -0
  624. package/dist/components/accordion.js +6 -0
  625. package/dist/components/accordion.js.map +1 -0
  626. package/dist/components/index.d.ts +81 -143
  627. package/dist/components/index.d.ts.map +1 -1
  628. package/dist/components/sidebar.cjs +2 -0
  629. package/dist/components/sidebar.cjs.map +1 -0
  630. package/dist/components/sidebar.d.ts +2 -2
  631. package/dist/components/sidebar.d.ts.map +1 -1
  632. package/dist/components/sidebar.js +6 -0
  633. package/dist/components/sidebar.js.map +1 -0
  634. package/dist/components/tabs-context.cjs +2 -0
  635. package/dist/components/tabs-context.cjs.map +1 -0
  636. package/dist/components/tabs-context.d.ts +2 -2
  637. package/dist/components/tabs-context.d.ts.map +1 -1
  638. package/dist/components/tabs-context.js +6 -0
  639. package/dist/components/tabs-context.js.map +1 -0
  640. package/dist/components/tree-view.cjs +2 -0
  641. package/dist/components/tree-view.cjs.map +1 -0
  642. package/dist/components/tree-view.d.ts +8 -8
  643. package/dist/components/tree-view.d.ts.map +1 -1
  644. package/dist/components/tree-view.js +6 -0
  645. package/dist/components/tree-view.js.map +1 -0
  646. package/dist/composables/useControllableOpen.cjs +2 -0
  647. package/dist/composables/useControllableOpen.cjs.map +1 -0
  648. package/dist/composables/useControllableOpen.js +15 -0
  649. package/dist/composables/useControllableOpen.js.map +1 -0
  650. package/dist/composables/useToast.cjs +2 -0
  651. package/dist/composables/useToast.cjs.map +1 -0
  652. package/dist/composables/useToast.js +41 -0
  653. package/dist/composables/useToast.js.map +1 -0
  654. package/dist/index.cjs +1 -12
  655. package/dist/index.js +66 -6040
  656. package/dist/plugin.cjs +2 -0
  657. package/dist/plugin.cjs.map +1 -0
  658. package/dist/plugin.d.ts.map +1 -1
  659. package/dist/plugin.js +135 -0
  660. package/dist/plugin.js.map +1 -0
  661. package/dist/style.css +1 -1
  662. package/dist/types/contracts.cjs +2 -0
  663. package/dist/types/contracts.cjs.map +1 -0
  664. package/dist/types/contracts.d.ts +5 -5
  665. package/dist/types/contracts.d.ts.map +1 -1
  666. package/dist/types/contracts.js +31 -0
  667. package/dist/types/contracts.js.map +1 -0
  668. package/package.json +5 -5
  669. package/dist/components/TreeAccordion.vue.d.ts.map +0 -1
  670. package/dist/components/TreeAccordionItem.vue.d.ts.map +0 -1
  671. package/dist/components/TreeAlert.vue.d.ts.map +0 -1
  672. package/dist/components/TreeAvatar.vue.d.ts.map +0 -1
  673. package/dist/components/TreeBadge.vue.d.ts.map +0 -1
  674. package/dist/components/TreeBreadcrumb.vue.d.ts.map +0 -1
  675. package/dist/components/TreeBreadcrumbItem.vue.d.ts.map +0 -1
  676. package/dist/components/TreeButton.vue.d.ts.map +0 -1
  677. package/dist/components/TreeCard.vue.d.ts.map +0 -1
  678. package/dist/components/TreeCheckbox.vue.d.ts.map +0 -1
  679. package/dist/components/TreeCombobox.vue.d.ts.map +0 -1
  680. package/dist/components/TreeConfirmDialog.vue.d.ts.map +0 -1
  681. package/dist/components/TreeContainer.vue.d.ts.map +0 -1
  682. package/dist/components/TreeContextMenu.vue.d.ts.map +0 -1
  683. package/dist/components/TreeDatePicker.vue.d.ts.map +0 -1
  684. package/dist/components/TreeDateTimePicker.vue.d.ts.map +0 -1
  685. package/dist/components/TreeDivider.vue.d.ts.map +0 -1
  686. package/dist/components/TreeDrawer.vue.d.ts.map +0 -1
  687. package/dist/components/TreeDropdown.vue.d.ts.map +0 -1
  688. package/dist/components/TreeEmptyState.vue.d.ts.map +0 -1
  689. package/dist/components/TreeFileUpload.vue.d.ts.map +0 -1
  690. package/dist/components/TreeFormField.vue.d.ts.map +0 -1
  691. package/dist/components/TreeGrid.vue.d.ts.map +0 -1
  692. package/dist/components/TreeIcon.vue.d.ts.map +0 -1
  693. package/dist/components/TreeInput.vue.d.ts.map +0 -1
  694. package/dist/components/TreeLink.vue.d.ts.map +0 -1
  695. package/dist/components/TreeMarkdownEditor.vue.d.ts.map +0 -1
  696. package/dist/components/TreeModal.vue.d.ts.map +0 -1
  697. package/dist/components/TreeMultiSelect.vue.d.ts.map +0 -1
  698. package/dist/components/TreeNavMenu.vue.d.ts.map +0 -1
  699. package/dist/components/TreeNavbar.vue.d.ts.map +0 -1
  700. package/dist/components/TreeNumberInput.vue.d.ts.map +0 -1
  701. package/dist/components/TreePagination.vue.d.ts.map +0 -1
  702. package/dist/components/TreePopover.vue.d.ts.map +0 -1
  703. package/dist/components/TreePricing.vue.d.ts.map +0 -1
  704. package/dist/components/TreePricingCard.vue.d.ts.map +0 -1
  705. package/dist/components/TreeProgress.vue.d.ts.map +0 -1
  706. package/dist/components/TreeRadio.vue.d.ts.map +0 -1
  707. package/dist/components/TreeRadioGroup.vue.d.ts.map +0 -1
  708. package/dist/components/TreeSelect.vue.d.ts.map +0 -1
  709. package/dist/components/TreeSelectableList.vue.d.ts.map +0 -1
  710. package/dist/components/TreeSidebar.vue.d.ts.map +0 -1
  711. package/dist/components/TreeSkeleton.vue.d.ts.map +0 -1
  712. package/dist/components/TreeSpinner.vue.d.ts.map +0 -1
  713. package/dist/components/TreeStack.vue.d.ts.map +0 -1
  714. package/dist/components/TreeStat.vue.d.ts.map +0 -1
  715. package/dist/components/TreeSteps.vue.d.ts.map +0 -1
  716. package/dist/components/TreeSwitch.vue.d.ts.map +0 -1
  717. package/dist/components/TreeTab.vue.d.ts.map +0 -1
  718. package/dist/components/TreeTabList.vue.d.ts.map +0 -1
  719. package/dist/components/TreeTabPanel.vue.d.ts.map +0 -1
  720. package/dist/components/TreeTable.vue.d.ts.map +0 -1
  721. package/dist/components/TreeTabs.vue.d.ts.map +0 -1
  722. package/dist/components/TreeTag.vue.d.ts.map +0 -1
  723. package/dist/components/TreeTextarea.vue.d.ts.map +0 -1
  724. package/dist/components/TreeTimeline.vue.d.ts.map +0 -1
  725. package/dist/components/TreeToast.vue.d.ts.map +0 -1
  726. package/dist/components/TreeToastProvider.vue.d.ts.map +0 -1
  727. package/dist/components/TreeToggleGroup.vue.d.ts.map +0 -1
  728. package/dist/components/TreeTooltip.vue.d.ts.map +0 -1
  729. package/dist/components/TreeTreeView.vue.d.ts.map +0 -1
  730. package/dist/components/TreeTreeViewItem.vue.d.ts.map +0 -1
  731. package/dist/index.cjs.map +0 -1
  732. package/dist/index.js.map +0 -1
@@ -0,0 +1,71 @@
1
+ import { computed as e, createCommentVNode as t, createElementBlock as n, createElementVNode as r, defineComponent as i, mergeProps as a, normalizeClass as o, normalizeStyle as s, openBlock as c, renderSlot as l, useAttrs as u } from "vue";
2
+ //#region src/components/TSwitch.vue?vue&type=script&setup=true&lang.ts
3
+ var d = [
4
+ "checked",
5
+ "disabled",
6
+ "aria-checked",
7
+ "aria-invalid"
8
+ ], f = {
9
+ key: 0,
10
+ class: "t-switch__label"
11
+ }, p = /*@__PURE__*/ i({
12
+ inheritAttrs: !1,
13
+ __name: "TSwitch",
14
+ props: {
15
+ modelValue: {
16
+ type: Boolean,
17
+ default: !1
18
+ },
19
+ size: { default: "md" },
20
+ disabled: {
21
+ type: Boolean,
22
+ default: !1
23
+ },
24
+ invalid: {
25
+ type: Boolean,
26
+ default: !1
27
+ }
28
+ },
29
+ emits: ["update:modelValue"],
30
+ setup(i, { emit: p }) {
31
+ let m = i, h = p, g = u(), _ = e(() => [
32
+ "t-switch",
33
+ `t-switch--${m.size}`,
34
+ {
35
+ "is-checked": m.modelValue,
36
+ "is-disabled": m.disabled,
37
+ "is-invalid": m.invalid
38
+ },
39
+ g.class
40
+ ]), v = e(() => g.style), y = e(() => {
41
+ let { class: e, style: t, ...n } = g;
42
+ return n;
43
+ }), b = () => {
44
+ h("update:modelValue", !m.modelValue);
45
+ };
46
+ return (e, u) => (c(), n("label", {
47
+ class: o(_.value),
48
+ style: s(v.value)
49
+ }, [
50
+ r("input", a(y.value, {
51
+ type: "checkbox",
52
+ role: "switch",
53
+ class: "t-switch__input",
54
+ checked: i.modelValue,
55
+ disabled: i.disabled,
56
+ "aria-checked": i.modelValue,
57
+ "aria-invalid": i.invalid || void 0,
58
+ onChange: b
59
+ }), null, 16, d),
60
+ u[0] ||= r("span", {
61
+ class: "t-switch__track",
62
+ "aria-hidden": "true"
63
+ }, [r("span", { class: "t-switch__thumb" })], -1),
64
+ e.$slots.default ? (c(), n("span", f, [l(e.$slots, "default")])) : t("", !0)
65
+ ], 6));
66
+ }
67
+ });
68
+ //#endregion
69
+ export { p as default };
70
+
71
+ //# sourceMappingURL=TSwitch.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TSwitch.vue_vue_type_script_setup_true_lang.js","names":["$slots"],"sources":["../../src/components/TSwitch.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, useAttrs } from 'vue';\nimport type { TSize } from '../types/contracts';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: boolean;\n size?: TSize;\n disabled?: boolean;\n invalid?: boolean;\n }>(),\n {\n modelValue: false,\n size: 'md',\n disabled: false,\n invalid: false,\n },\n);\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: boolean];\n}>();\n\nconst attrs = useAttrs();\n\nconst rootClasses = computed(() => [\n 't-switch',\n `t-switch--${props.size}`,\n {\n 'is-checked': props.modelValue,\n 'is-disabled': props.disabled,\n 'is-invalid': props.invalid,\n },\n attrs.class,\n]);\n\nconst rootStyle = computed(() => attrs.style);\n\nconst inputAttrs = computed(() => {\n const { class: _class, style: _style, ...rest } = attrs;\n return rest;\n});\n\nconst onChange = () => {\n emit('update:modelValue', !props.modelValue);\n};\n</script>\n\n<template>\n <label\n :class=\"rootClasses\"\n :style=\"rootStyle\"\n >\n <input\n v-bind=\"inputAttrs\"\n type=\"checkbox\"\n role=\"switch\"\n class=\"t-switch__input\"\n :checked=\"modelValue\"\n :disabled=\"disabled\"\n :aria-checked=\"modelValue\"\n :aria-invalid=\"invalid || undefined\"\n @change=\"onChange\"\n >\n <span\n class=\"t-switch__track\"\n aria-hidden=\"true\"\n >\n <span class=\"t-switch__thumb\" />\n </span>\n <span\n v-if=\"$slots.default\"\n class=\"t-switch__label\"\n >\n <slot />\n </span>\n </label>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQA,IAAM,IAAQ,GAeR,IAAO,GAIP,IAAQ,EAAS,GAEjB,IAAc,QAAe;GACjC;GACA,aAAa,EAAM;GACnB;IACE,cAAc,EAAM;IACpB,eAAe,EAAM;IACrB,cAAc,EAAM;GACtB;GACA,EAAM;EACR,CAAC,GAEK,IAAY,QAAe,EAAM,KAAK,GAEtC,IAAa,QAAe;GAChC,IAAM,EAAE,OAAO,GAAQ,OAAO,GAAQ,GAAG,MAAS;GAClD,OAAO;EACT,CAAC,GAEK,UAAiB;GACrB,EAAK,qBAAqB,CAAC,EAAM,UAAU;EAC7C;yBAIE,EA2BQ,SAAA;GA1BL,OAAK,EAAE,EAAA,KAAW;GAClB,OAAK,EAAE,EAAA,KAAS;;GAEjB,EAUC,SAVD,EACU,EAST,OATmB;IAClB,MAAK;IACL,MAAK;IACL,OAAM;IACL,SAAS,EAAA;IACT,UAAU,EAAA;IACV,gBAAc,EAAA;IACd,gBAAc,EAAA,WAAW,KAAA;IACjB;;YAEX,EAKO,QAAA;IAJL,OAAM;IACN,eAAY;OAEZ,EAAgC,QAAA,EAA1B,OAAM,kBAAiB,CAAA,CAAA,GAAA,EAAA;GAGvBA,EAAAA,OAAO,WAAA,EAAA,GADf,EAKO,QALP,GAKO,CADL,EAAQ,EAAA,QAAA,SAAA,CAAA,CAAA,KAAA,EAAA,IAAA,EAAA"}
@@ -0,0 +1,2 @@
1
+ var e=require("./TTab.vue_vue_type_script_setup_true_lang.cjs").default;exports.default=e;
2
+ //# sourceMappingURL=TTab.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTab.cjs","names":[],"sources":["../../src/components/TTab.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, inject, onBeforeUnmount, onMounted, watch } from 'vue';\nimport { TABS_INJECTION_KEY } from './tabs-context';\n\nconst props = withDefaults(\n defineProps<{\n value: string;\n disabled?: boolean;\n }>(),\n {\n disabled: false,\n },\n);\n\nconst ctx = inject(TABS_INJECTION_KEY);\nif (!ctx) {\n throw new Error('TTab must be used inside TTabs');\n}\n\nonMounted(() => {\n ctx.registerTab(props.value);\n ctx.setTabDisabled(props.value, props.disabled);\n});\n\nwatch(\n () => props.disabled,\n (val) => ctx.setTabDisabled(props.value, val),\n);\n\nonBeforeUnmount(() => {\n ctx.unregisterTab(props.value);\n});\n\nconst isActive = computed(() => ctx.activeValue.value === props.value);\nconst isDisabled = computed(() => ctx.isTabDisabled(props.value));\nconst tabId = computed(() => `${ctx.baseId}-tab-${props.value}`);\nconst panelId = computed(() => `${ctx.baseId}-panel-${props.value}`);\n\nconst onClick = () => {\n if (isDisabled.value) return;\n ctx.setActiveValue(props.value);\n};\n\nconst classes = computed(() => [\n 't-tabs__tab',\n `t-tabs__tab--${ctx.size.value}`,\n {\n 'is-active': isActive.value,\n 'is-disabled': isDisabled.value,\n },\n]);\n</script>\n\n<template>\n <button\n :id=\"tabId\"\n role=\"tab\"\n type=\"button\"\n :class=\"classes\"\n :aria-selected=\"isActive\"\n :aria-controls=\"panelId\"\n :tabindex=\"isActive ? 0 : -1\"\n :disabled=\"isDisabled || undefined\"\n :data-tab-value=\"value\"\n @click=\"onClick\"\n >\n <slot />\n </button>\n</template>\n"],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import e from "./TTab.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/TTab.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
6
+
7
+ //# sourceMappingURL=TTab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTab.js","names":[],"sources":["../../src/components/TTab.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, inject, onBeforeUnmount, onMounted, watch } from 'vue';\nimport { TABS_INJECTION_KEY } from './tabs-context';\n\nconst props = withDefaults(\n defineProps<{\n value: string;\n disabled?: boolean;\n }>(),\n {\n disabled: false,\n },\n);\n\nconst ctx = inject(TABS_INJECTION_KEY);\nif (!ctx) {\n throw new Error('TTab must be used inside TTabs');\n}\n\nonMounted(() => {\n ctx.registerTab(props.value);\n ctx.setTabDisabled(props.value, props.disabled);\n});\n\nwatch(\n () => props.disabled,\n (val) => ctx.setTabDisabled(props.value, val),\n);\n\nonBeforeUnmount(() => {\n ctx.unregisterTab(props.value);\n});\n\nconst isActive = computed(() => ctx.activeValue.value === props.value);\nconst isDisabled = computed(() => ctx.isTabDisabled(props.value));\nconst tabId = computed(() => `${ctx.baseId}-tab-${props.value}`);\nconst panelId = computed(() => `${ctx.baseId}-panel-${props.value}`);\n\nconst onClick = () => {\n if (isDisabled.value) return;\n ctx.setActiveValue(props.value);\n};\n\nconst classes = computed(() => [\n 't-tabs__tab',\n `t-tabs__tab--${ctx.size.value}`,\n {\n 'is-active': isActive.value,\n 'is-disabled': isDisabled.value,\n },\n]);\n</script>\n\n<template>\n <button\n :id=\"tabId\"\n role=\"tab\"\n type=\"button\"\n :class=\"classes\"\n :aria-selected=\"isActive\"\n :aria-controls=\"panelId\"\n :tabindex=\"isActive ? 0 : -1\"\n :disabled=\"isDisabled || undefined\"\n :data-tab-value=\"value\"\n @click=\"onClick\"\n >\n <slot />\n </button>\n</template>\n"],"mappings":""}
@@ -21,4 +21,4 @@ type __VLS_WithTemplateSlots<T, S> = T & {
21
21
  $slots: S;
22
22
  };
23
23
  };
24
- //# sourceMappingURL=TreeTab.vue.d.ts.map
24
+ //# sourceMappingURL=TTab.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTab.vue.d.ts","sourceRoot":"","sources":["../../src/components/TTab.vue"],"names":[],"mappings":"AA0EA,KAAK,WAAW,GAAG;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAmDJ,iBAAS,cAAc;WAgCT,OAAO,IAA6B;;yBAVrB,GAAG;;;;EAe/B;AAeD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;cAzGN,OAAO;2FAiHpB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -0,0 +1,2 @@
1
+ const e=require("./tabs-context.cjs");let t=require("vue");var n=[`id`,`aria-selected`,`aria-controls`,`tabindex`,`disabled`,`data-tab-value`],r=(0,t.defineComponent)({__name:`TTab`,props:{value:{},disabled:{type:Boolean,default:!1}},setup(r){let i=r,a=(0,t.inject)(e.TABS_INJECTION_KEY);if(!a)throw Error(`TTab must be used inside TTabs`);(0,t.onMounted)(()=>{a.registerTab(i.value),a.setTabDisabled(i.value,i.disabled)}),(0,t.watch)(()=>i.disabled,e=>a.setTabDisabled(i.value,e)),(0,t.onBeforeUnmount)(()=>{a.unregisterTab(i.value)});let o=(0,t.computed)(()=>a.activeValue.value===i.value),s=(0,t.computed)(()=>a.isTabDisabled(i.value)),c=(0,t.computed)(()=>`${a.baseId}-tab-${i.value}`),l=(0,t.computed)(()=>`${a.baseId}-panel-${i.value}`),u=()=>{s.value||a.setActiveValue(i.value)},d=(0,t.computed)(()=>[`t-tabs__tab`,`t-tabs__tab--${a.size.value}`,{"is-active":o.value,"is-disabled":s.value}]);return(e,i)=>((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{id:c.value,role:`tab`,type:`button`,class:(0,t.normalizeClass)(d.value),"aria-selected":o.value,"aria-controls":l.value,tabindex:o.value?0:-1,disabled:s.value||void 0,"data-tab-value":r.value,onClick:u},[(0,t.renderSlot)(e.$slots,`default`)],10,n))}});exports.default=r;
2
+ //# sourceMappingURL=TTab.vue_vue_type_script_setup_true_lang.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTab.vue_vue_type_script_setup_true_lang.cjs","names":[],"sources":["../../src/components/TTab.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, inject, onBeforeUnmount, onMounted, watch } from 'vue';\nimport { TABS_INJECTION_KEY } from './tabs-context';\n\nconst props = withDefaults(\n defineProps<{\n value: string;\n disabled?: boolean;\n }>(),\n {\n disabled: false,\n },\n);\n\nconst ctx = inject(TABS_INJECTION_KEY);\nif (!ctx) {\n throw new Error('TTab must be used inside TTabs');\n}\n\nonMounted(() => {\n ctx.registerTab(props.value);\n ctx.setTabDisabled(props.value, props.disabled);\n});\n\nwatch(\n () => props.disabled,\n (val) => ctx.setTabDisabled(props.value, val),\n);\n\nonBeforeUnmount(() => {\n ctx.unregisterTab(props.value);\n});\n\nconst isActive = computed(() => ctx.activeValue.value === props.value);\nconst isDisabled = computed(() => ctx.isTabDisabled(props.value));\nconst tabId = computed(() => `${ctx.baseId}-tab-${props.value}`);\nconst panelId = computed(() => `${ctx.baseId}-panel-${props.value}`);\n\nconst onClick = () => {\n if (isDisabled.value) return;\n ctx.setActiveValue(props.value);\n};\n\nconst classes = computed(() => [\n 't-tabs__tab',\n `t-tabs__tab--${ctx.size.value}`,\n {\n 'is-active': isActive.value,\n 'is-disabled': isDisabled.value,\n },\n]);\n</script>\n\n<template>\n <button\n :id=\"tabId\"\n role=\"tab\"\n type=\"button\"\n :class=\"classes\"\n :aria-selected=\"isActive\"\n :aria-controls=\"panelId\"\n :tabindex=\"isActive ? 0 : -1\"\n :disabled=\"isDisabled || undefined\"\n :data-tab-value=\"value\"\n @click=\"onClick\"\n >\n <slot />\n </button>\n</template>\n"],"mappings":"mPAIA,IAAM,EAAQ,EAUR,GAAA,EAAA,EAAA,OAAA,CAAa,EAAA,kBAAkB,EACrC,GAAI,CAAC,EACH,MAAU,MAAM,gCAAgC,GAGlD,EAAA,EAAA,UAAA,KAAgB,CACd,EAAI,YAAY,EAAM,KAAK,EAC3B,EAAI,eAAe,EAAM,MAAO,EAAM,QAAQ,CAChD,CAAC,GAED,EAAA,EAAA,MAAA,KACQ,EAAM,SACX,GAAQ,EAAI,eAAe,EAAM,MAAO,CAAG,CAC9C,GAEA,EAAA,EAAA,gBAAA,KAAsB,CACpB,EAAI,cAAc,EAAM,KAAK,CAC/B,CAAC,EAED,IAAM,GAAA,EAAA,EAAA,SAAA,KAA0B,EAAI,YAAY,QAAU,EAAM,KAAK,EAC/D,GAAA,EAAA,EAAA,SAAA,KAA4B,EAAI,cAAc,EAAM,KAAK,CAAC,EAC1D,GAAA,EAAA,EAAA,SAAA,KAAuB,GAAG,EAAI,OAAO,OAAO,EAAM,OAAO,EACzD,GAAA,EAAA,EAAA,SAAA,KAAyB,GAAG,EAAI,OAAO,SAAS,EAAM,OAAO,EAE7D,MAAgB,CAChB,EAAW,OACf,EAAI,eAAe,EAAM,KAAK,CAChC,EAEM,GAAA,EAAA,EAAA,SAAA,KAAyB,CAC7B,cACA,gBAAgB,EAAI,KAAK,QACzB,CACE,YAAa,EAAS,MACtB,cAAe,EAAW,KAC5B,CACF,CAAC,2DAiBU,SAAA,CAZN,GAAI,EAAA,MACL,KAAK,MACL,KAAK,SACJ,OAAA,EAAA,EAAA,eAAA,CAAO,EAAA,KAAO,EACd,gBAAe,EAAA,MACf,gBAAe,EAAA,MACf,SAAU,EAAA,MAAQ,EAAA,GAClB,SAAU,EAAA,OAAc,IAAA,GACxB,iBAAgB,EAAA,MACT,6BAEA,EAAA,OAAA,SAAA,CAAA,EAAA,GAAA,CAAA"}
@@ -0,0 +1,55 @@
1
+ import { TABS_INJECTION_KEY as e } from "./tabs-context.js";
2
+ import { computed as t, createElementBlock as n, defineComponent as r, inject as i, normalizeClass as a, onBeforeUnmount as o, onMounted as s, openBlock as c, renderSlot as l, watch as u } from "vue";
3
+ //#region src/components/TTab.vue?vue&type=script&setup=true&lang.ts
4
+ var d = [
5
+ "id",
6
+ "aria-selected",
7
+ "aria-controls",
8
+ "tabindex",
9
+ "disabled",
10
+ "data-tab-value"
11
+ ], f = /*@__PURE__*/ r({
12
+ __name: "TTab",
13
+ props: {
14
+ value: {},
15
+ disabled: {
16
+ type: Boolean,
17
+ default: !1
18
+ }
19
+ },
20
+ setup(r) {
21
+ let f = r, p = i(e);
22
+ if (!p) throw Error("TTab must be used inside TTabs");
23
+ s(() => {
24
+ p.registerTab(f.value), p.setTabDisabled(f.value, f.disabled);
25
+ }), u(() => f.disabled, (e) => p.setTabDisabled(f.value, e)), o(() => {
26
+ p.unregisterTab(f.value);
27
+ });
28
+ let m = t(() => p.activeValue.value === f.value), h = t(() => p.isTabDisabled(f.value)), g = t(() => `${p.baseId}-tab-${f.value}`), _ = t(() => `${p.baseId}-panel-${f.value}`), v = () => {
29
+ h.value || p.setActiveValue(f.value);
30
+ }, y = t(() => [
31
+ "t-tabs__tab",
32
+ `t-tabs__tab--${p.size.value}`,
33
+ {
34
+ "is-active": m.value,
35
+ "is-disabled": h.value
36
+ }
37
+ ]);
38
+ return (e, t) => (c(), n("button", {
39
+ id: g.value,
40
+ role: "tab",
41
+ type: "button",
42
+ class: a(y.value),
43
+ "aria-selected": m.value,
44
+ "aria-controls": _.value,
45
+ tabindex: m.value ? 0 : -1,
46
+ disabled: h.value || void 0,
47
+ "data-tab-value": r.value,
48
+ onClick: v
49
+ }, [l(e.$slots, "default")], 10, d));
50
+ }
51
+ });
52
+ //#endregion
53
+ export { f as default };
54
+
55
+ //# sourceMappingURL=TTab.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTab.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../src/components/TTab.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, inject, onBeforeUnmount, onMounted, watch } from 'vue';\nimport { TABS_INJECTION_KEY } from './tabs-context';\n\nconst props = withDefaults(\n defineProps<{\n value: string;\n disabled?: boolean;\n }>(),\n {\n disabled: false,\n },\n);\n\nconst ctx = inject(TABS_INJECTION_KEY);\nif (!ctx) {\n throw new Error('TTab must be used inside TTabs');\n}\n\nonMounted(() => {\n ctx.registerTab(props.value);\n ctx.setTabDisabled(props.value, props.disabled);\n});\n\nwatch(\n () => props.disabled,\n (val) => ctx.setTabDisabled(props.value, val),\n);\n\nonBeforeUnmount(() => {\n ctx.unregisterTab(props.value);\n});\n\nconst isActive = computed(() => ctx.activeValue.value === props.value);\nconst isDisabled = computed(() => ctx.isTabDisabled(props.value));\nconst tabId = computed(() => `${ctx.baseId}-tab-${props.value}`);\nconst panelId = computed(() => `${ctx.baseId}-panel-${props.value}`);\n\nconst onClick = () => {\n if (isDisabled.value) return;\n ctx.setActiveValue(props.value);\n};\n\nconst classes = computed(() => [\n 't-tabs__tab',\n `t-tabs__tab--${ctx.size.value}`,\n {\n 'is-active': isActive.value,\n 'is-disabled': isDisabled.value,\n },\n]);\n</script>\n\n<template>\n <button\n :id=\"tabId\"\n role=\"tab\"\n type=\"button\"\n :class=\"classes\"\n :aria-selected=\"isActive\"\n :aria-controls=\"panelId\"\n :tabindex=\"isActive ? 0 : -1\"\n :disabled=\"isDisabled || undefined\"\n :data-tab-value=\"value\"\n @click=\"onClick\"\n >\n <slot />\n </button>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EAIA,IAAM,IAAQ,GAUR,IAAM,EAAO,CAAkB;EACrC,IAAI,CAAC,GACH,MAAU,MAAM,gCAAgC;EAalD,AAVA,QAAgB;GAEd,AADA,EAAI,YAAY,EAAM,KAAK,GAC3B,EAAI,eAAe,EAAM,OAAO,EAAM,QAAQ;EAChD,CAAC,GAED,QACQ,EAAM,WACX,MAAQ,EAAI,eAAe,EAAM,OAAO,CAAG,CAC9C,GAEA,QAAsB;GACpB,EAAI,cAAc,EAAM,KAAK;EAC/B,CAAC;EAED,IAAM,IAAW,QAAe,EAAI,YAAY,UAAU,EAAM,KAAK,GAC/D,IAAa,QAAe,EAAI,cAAc,EAAM,KAAK,CAAC,GAC1D,IAAQ,QAAe,GAAG,EAAI,OAAO,OAAO,EAAM,OAAO,GACzD,IAAU,QAAe,GAAG,EAAI,OAAO,SAAS,EAAM,OAAO,GAE7D,UAAgB;GAChB,EAAW,SACf,EAAI,eAAe,EAAM,KAAK;EAChC,GAEM,IAAU,QAAe;GAC7B;GACA,gBAAgB,EAAI,KAAK;GACzB;IACE,aAAa,EAAS;IACtB,eAAe,EAAW;GAC5B;EACF,CAAC;yBAIC,EAaS,UAAA;GAZN,IAAI,EAAA;GACL,MAAK;GACL,MAAK;GACJ,OAAK,EAAE,EAAA,KAAO;GACd,iBAAe,EAAA;GACf,iBAAe,EAAA;GACf,UAAU,EAAA,QAAQ,IAAA;GAClB,UAAU,EAAA,SAAc,KAAA;GACxB,kBAAgB,EAAA;GACT;MAER,EAAQ,EAAA,QAAA,SAAA,CAAA,GAAA,IAAA,CAAA"}
@@ -0,0 +1,2 @@
1
+ var e=require("./TTabList.vue_vue_type_script_setup_true_lang.cjs").default;exports.default=e;
2
+ //# sourceMappingURL=TTabList.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTabList.cjs","names":[],"sources":["../../src/components/TTabList.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { isActivationKey } from '@treeui/utils';\nimport { computed, inject, ref } from 'vue';\nimport { TABS_INJECTION_KEY } from './tabs-context';\n\nconst ctx = inject(TABS_INJECTION_KEY);\nif (!ctx) {\n throw new Error('TTabList must be used inside TTabs');\n}\n\nconst listRef = ref<HTMLElement | null>(null);\n\nconst getAllTabElements = (): HTMLElement[] => {\n if (!listRef.value) return [];\n return Array.from(\n listRef.value.querySelectorAll<HTMLElement>('[role=\"tab\"]'),\n );\n};\n\nconst getEnabledTabElements = (): HTMLElement[] => {\n return getAllTabElements().filter((el) => {\n const value = el.dataset.tabValue;\n return value ? !ctx.isTabDisabled(value) : false;\n });\n};\n\nconst moveFocus = (direction: 1 | -1) => {\n const tabs = getEnabledTabElements();\n if (!tabs.length) return;\n\n const current = document.activeElement as HTMLElement;\n const currentIndex = tabs.indexOf(current);\n let nextIndex = currentIndex + direction;\n\n if (nextIndex < 0) nextIndex = tabs.length - 1;\n if (nextIndex >= tabs.length) nextIndex = 0;\n\n const nextTab = tabs[nextIndex];\n nextTab.focus();\n\n if (ctx.activationMode.value === 'automatic') {\n const value = nextTab.dataset.tabValue;\n if (value) ctx.setActiveValue(value);\n }\n};\n\nconst focusFirst = () => {\n const tabs = getEnabledTabElements();\n if (!tabs.length) return;\n tabs[0].focus();\n if (ctx.activationMode.value === 'automatic') {\n const value = tabs[0].dataset.tabValue;\n if (value) ctx.setActiveValue(value);\n }\n};\n\nconst focusLast = () => {\n const tabs = getEnabledTabElements();\n if (!tabs.length) return;\n const last = tabs[tabs.length - 1];\n last.focus();\n if (ctx.activationMode.value === 'automatic') {\n const value = last.dataset.tabValue;\n if (value) ctx.setActiveValue(value);\n }\n};\n\nconst onKeydown = (event: KeyboardEvent) => {\n switch (event.key) {\n case 'ArrowRight':\n event.preventDefault();\n moveFocus(1);\n break;\n case 'ArrowLeft':\n event.preventDefault();\n moveFocus(-1);\n break;\n case 'Home':\n event.preventDefault();\n focusFirst();\n break;\n case 'End':\n event.preventDefault();\n focusLast();\n break;\n default:\n if (ctx.activationMode.value === 'manual' && isActivationKey(event)) {\n event.preventDefault();\n const target = event.target as HTMLElement;\n const value = target.dataset?.tabValue;\n if (value) ctx.setActiveValue(value);\n }\n break;\n }\n};\n\nconst classes = computed(() => [\n 't-tabs__list',\n]);\n</script>\n\n<template>\n <div\n ref=\"listRef\"\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n :class=\"classes\"\n @keydown=\"onKeydown\"\n >\n <slot />\n </div>\n</template>\n"],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import e from "./TTabList.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/TTabList.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
6
+
7
+ //# sourceMappingURL=TTabList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTabList.js","names":[],"sources":["../../src/components/TTabList.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { isActivationKey } from '@treeui/utils';\nimport { computed, inject, ref } from 'vue';\nimport { TABS_INJECTION_KEY } from './tabs-context';\n\nconst ctx = inject(TABS_INJECTION_KEY);\nif (!ctx) {\n throw new Error('TTabList must be used inside TTabs');\n}\n\nconst listRef = ref<HTMLElement | null>(null);\n\nconst getAllTabElements = (): HTMLElement[] => {\n if (!listRef.value) return [];\n return Array.from(\n listRef.value.querySelectorAll<HTMLElement>('[role=\"tab\"]'),\n );\n};\n\nconst getEnabledTabElements = (): HTMLElement[] => {\n return getAllTabElements().filter((el) => {\n const value = el.dataset.tabValue;\n return value ? !ctx.isTabDisabled(value) : false;\n });\n};\n\nconst moveFocus = (direction: 1 | -1) => {\n const tabs = getEnabledTabElements();\n if (!tabs.length) return;\n\n const current = document.activeElement as HTMLElement;\n const currentIndex = tabs.indexOf(current);\n let nextIndex = currentIndex + direction;\n\n if (nextIndex < 0) nextIndex = tabs.length - 1;\n if (nextIndex >= tabs.length) nextIndex = 0;\n\n const nextTab = tabs[nextIndex];\n nextTab.focus();\n\n if (ctx.activationMode.value === 'automatic') {\n const value = nextTab.dataset.tabValue;\n if (value) ctx.setActiveValue(value);\n }\n};\n\nconst focusFirst = () => {\n const tabs = getEnabledTabElements();\n if (!tabs.length) return;\n tabs[0].focus();\n if (ctx.activationMode.value === 'automatic') {\n const value = tabs[0].dataset.tabValue;\n if (value) ctx.setActiveValue(value);\n }\n};\n\nconst focusLast = () => {\n const tabs = getEnabledTabElements();\n if (!tabs.length) return;\n const last = tabs[tabs.length - 1];\n last.focus();\n if (ctx.activationMode.value === 'automatic') {\n const value = last.dataset.tabValue;\n if (value) ctx.setActiveValue(value);\n }\n};\n\nconst onKeydown = (event: KeyboardEvent) => {\n switch (event.key) {\n case 'ArrowRight':\n event.preventDefault();\n moveFocus(1);\n break;\n case 'ArrowLeft':\n event.preventDefault();\n moveFocus(-1);\n break;\n case 'Home':\n event.preventDefault();\n focusFirst();\n break;\n case 'End':\n event.preventDefault();\n focusLast();\n break;\n default:\n if (ctx.activationMode.value === 'manual' && isActivationKey(event)) {\n event.preventDefault();\n const target = event.target as HTMLElement;\n const value = target.dataset?.tabValue;\n if (value) ctx.setActiveValue(value);\n }\n break;\n }\n};\n\nconst classes = computed(() => [\n 't-tabs__list',\n]);\n</script>\n\n<template>\n <div\n ref=\"listRef\"\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n :class=\"classes\"\n @keydown=\"onKeydown\"\n >\n <slot />\n </div>\n</template>\n"],"mappings":""}
@@ -19,4 +19,4 @@ type __VLS_WithTemplateSlots<T, S> = T & {
19
19
  $slots: S;
20
20
  };
21
21
  };
22
- //# sourceMappingURL=TreeTabList.vue.d.ts.map
22
+ //# sourceMappingURL=TTabList.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTabList.vue.d.ts","sourceRoot":"","sources":["../../src/components/TTabList.vue"],"names":[],"mappings":"AAuNA,iBAAS,cAAc;WA8BT,OAAO,IAA6B;;yBAXrB,GAAG;;;;;;EAgB/B;AAUD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;kBAOnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAEpG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -0,0 +1,2 @@
1
+ const e=require("./tabs-context.cjs");let t=require("vue"),n=require("@treeui/utils");var r=(0,t.defineComponent)({__name:`TTabList`,setup(r){let i=(0,t.inject)(e.TABS_INJECTION_KEY);if(!i)throw Error(`TTabList must be used inside TTabs`);let a=(0,t.ref)(null),o=()=>a.value?Array.from(a.value.querySelectorAll(`[role="tab"]`)):[],s=()=>o().filter(e=>{let t=e.dataset.tabValue;return t?!i.isTabDisabled(t):!1}),c=e=>{let t=s();if(!t.length)return;let n=document.activeElement,r=t.indexOf(n)+e;r<0&&(r=t.length-1),r>=t.length&&(r=0);let a=t[r];if(a.focus(),i.activationMode.value===`automatic`){let e=a.dataset.tabValue;e&&i.setActiveValue(e)}},l=()=>{let e=s();if(e.length&&(e[0].focus(),i.activationMode.value===`automatic`)){let t=e[0].dataset.tabValue;t&&i.setActiveValue(t)}},u=()=>{let e=s();if(!e.length)return;let t=e[e.length-1];if(t.focus(),i.activationMode.value===`automatic`){let e=t.dataset.tabValue;e&&i.setActiveValue(e)}},d=e=>{switch(e.key){case`ArrowRight`:e.preventDefault(),c(1);break;case`ArrowLeft`:e.preventDefault(),c(-1);break;case`Home`:e.preventDefault(),l();break;case`End`:e.preventDefault(),u();break;default:if(i.activationMode.value===`manual`&&(0,n.isActivationKey)(e)){e.preventDefault();let t=e.target.dataset?.tabValue;t&&i.setActiveValue(t)}break}},f=(0,t.computed)(()=>[`t-tabs__list`]);return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`listRef`,ref:a,role:`tablist`,"aria-orientation":`horizontal`,class:(0,t.normalizeClass)(f.value),onKeydown:d},[(0,t.renderSlot)(e.$slots,`default`)],34))}});exports.default=r;
2
+ //# sourceMappingURL=TTabList.vue_vue_type_script_setup_true_lang.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTabList.vue_vue_type_script_setup_true_lang.cjs","names":[],"sources":["../../src/components/TTabList.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { isActivationKey } from '@treeui/utils';\nimport { computed, inject, ref } from 'vue';\nimport { TABS_INJECTION_KEY } from './tabs-context';\n\nconst ctx = inject(TABS_INJECTION_KEY);\nif (!ctx) {\n throw new Error('TTabList must be used inside TTabs');\n}\n\nconst listRef = ref<HTMLElement | null>(null);\n\nconst getAllTabElements = (): HTMLElement[] => {\n if (!listRef.value) return [];\n return Array.from(\n listRef.value.querySelectorAll<HTMLElement>('[role=\"tab\"]'),\n );\n};\n\nconst getEnabledTabElements = (): HTMLElement[] => {\n return getAllTabElements().filter((el) => {\n const value = el.dataset.tabValue;\n return value ? !ctx.isTabDisabled(value) : false;\n });\n};\n\nconst moveFocus = (direction: 1 | -1) => {\n const tabs = getEnabledTabElements();\n if (!tabs.length) return;\n\n const current = document.activeElement as HTMLElement;\n const currentIndex = tabs.indexOf(current);\n let nextIndex = currentIndex + direction;\n\n if (nextIndex < 0) nextIndex = tabs.length - 1;\n if (nextIndex >= tabs.length) nextIndex = 0;\n\n const nextTab = tabs[nextIndex];\n nextTab.focus();\n\n if (ctx.activationMode.value === 'automatic') {\n const value = nextTab.dataset.tabValue;\n if (value) ctx.setActiveValue(value);\n }\n};\n\nconst focusFirst = () => {\n const tabs = getEnabledTabElements();\n if (!tabs.length) return;\n tabs[0].focus();\n if (ctx.activationMode.value === 'automatic') {\n const value = tabs[0].dataset.tabValue;\n if (value) ctx.setActiveValue(value);\n }\n};\n\nconst focusLast = () => {\n const tabs = getEnabledTabElements();\n if (!tabs.length) return;\n const last = tabs[tabs.length - 1];\n last.focus();\n if (ctx.activationMode.value === 'automatic') {\n const value = last.dataset.tabValue;\n if (value) ctx.setActiveValue(value);\n }\n};\n\nconst onKeydown = (event: KeyboardEvent) => {\n switch (event.key) {\n case 'ArrowRight':\n event.preventDefault();\n moveFocus(1);\n break;\n case 'ArrowLeft':\n event.preventDefault();\n moveFocus(-1);\n break;\n case 'Home':\n event.preventDefault();\n focusFirst();\n break;\n case 'End':\n event.preventDefault();\n focusLast();\n break;\n default:\n if (ctx.activationMode.value === 'manual' && isActivationKey(event)) {\n event.preventDefault();\n const target = event.target as HTMLElement;\n const value = target.dataset?.tabValue;\n if (value) ctx.setActiveValue(value);\n }\n break;\n }\n};\n\nconst classes = computed(() => [\n 't-tabs__list',\n]);\n</script>\n\n<template>\n <div\n ref=\"listRef\"\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n :class=\"classes\"\n @keydown=\"onKeydown\"\n >\n <slot />\n </div>\n</template>\n"],"mappings":"8IAKA,IAAM,GAAA,EAAA,EAAA,OAAA,CAAa,EAAA,kBAAkB,EACrC,GAAI,CAAC,EACH,MAAU,MAAM,oCAAoC,EAGtD,IAAM,GAAA,EAAA,EAAA,IAAA,CAAkC,IAAI,EAEtC,MACC,EAAQ,MACN,MAAM,KACX,EAAQ,MAAM,iBAA8B,cAAc,CAC5D,EAH2B,CAAC,EAMxB,MACG,EAAkB,CAAC,CAAC,OAAQ,GAAO,CACxC,IAAM,EAAQ,EAAG,QAAQ,SACzB,OAAO,EAAQ,CAAC,EAAI,cAAc,CAAK,EAAI,EAC7C,CAAC,EAGG,EAAa,GAAsB,CACvC,IAAM,EAAO,EAAsB,EACnC,GAAI,CAAC,EAAK,OAAQ,OAElB,IAAM,EAAU,SAAS,cAErB,EADiB,EAAK,QAAQ,CAClB,EAAe,EAE3B,EAAY,IAAG,EAAY,EAAK,OAAS,GACzC,GAAa,EAAK,SAAQ,EAAY,GAE1C,IAAM,EAAU,EAAK,GAGrB,GAFA,EAAQ,MAAM,EAEV,EAAI,eAAe,QAAU,YAAa,CAC5C,IAAM,EAAQ,EAAQ,QAAQ,SAC1B,GAAO,EAAI,eAAe,CAAK,CACrC,CACF,EAEM,MAAmB,CACvB,IAAM,EAAO,EAAsB,EAC9B,KAAK,SACV,EAAK,EAAE,CAAC,MAAM,EACV,EAAI,eAAe,QAAU,aAAa,CAC5C,IAAM,EAAQ,EAAK,EAAE,CAAC,QAAQ,SAC1B,GAAO,EAAI,eAAe,CAAK,CACrC,CACF,EAEM,MAAkB,CACtB,IAAM,EAAO,EAAsB,EACnC,GAAI,CAAC,EAAK,OAAQ,OAClB,IAAM,EAAO,EAAK,EAAK,OAAS,GAEhC,GADA,EAAK,MAAM,EACP,EAAI,eAAe,QAAU,YAAa,CAC5C,IAAM,EAAQ,EAAK,QAAQ,SACvB,GAAO,EAAI,eAAe,CAAK,CACrC,CACF,EAEM,EAAa,GAAyB,CAC1C,OAAQ,EAAM,IAAd,CACE,IAAK,aACH,EAAM,eAAe,EACrB,EAAU,CAAC,EACX,MACF,IAAK,YACH,EAAM,eAAe,EACrB,EAAU,EAAE,EACZ,MACF,IAAK,OACH,EAAM,eAAe,EACrB,EAAW,EACX,MACF,IAAK,MACH,EAAM,eAAe,EACrB,EAAU,EACV,MACF,QACE,GAAI,EAAI,eAAe,QAAU,WAAA,EAAA,EAAA,gBAAA,CAA4B,CAAK,EAAG,CACnE,EAAM,eAAe,EAErB,IAAM,EADS,EAAM,OACA,SAAS,SAC1B,GAAO,EAAI,eAAe,CAAK,CACrC,CACA,KACJ,CACF,EAEM,GAAA,EAAA,EAAA,SAAA,KAAyB,CAC7B,cACF,CAAC,2DAYO,MAAA,SAPA,UAAJ,IAAI,EACJ,KAAK,UACL,mBAAiB,aAChB,OAAA,EAAA,EAAA,eAAA,CAAO,EAAA,KAAO,EACL,+BAEF,EAAA,OAAA,SAAA,CAAA,EAAA,EAAA"}
@@ -0,0 +1,73 @@
1
+ import { TABS_INJECTION_KEY as e } from "./tabs-context.js";
2
+ import { computed as t, createElementBlock as n, defineComponent as r, inject as i, normalizeClass as a, openBlock as o, ref as s, renderSlot as c } from "vue";
3
+ import { isActivationKey as l } from "@treeui/utils";
4
+ //#region src/components/TTabList.vue?vue&type=script&setup=true&lang.ts
5
+ var u = /*@__PURE__*/ r({
6
+ __name: "TTabList",
7
+ setup(r) {
8
+ let u = i(e);
9
+ if (!u) throw Error("TTabList must be used inside TTabs");
10
+ let d = s(null), f = () => d.value ? Array.from(d.value.querySelectorAll("[role=\"tab\"]")) : [], p = () => f().filter((e) => {
11
+ let t = e.dataset.tabValue;
12
+ return t ? !u.isTabDisabled(t) : !1;
13
+ }), m = (e) => {
14
+ let t = p();
15
+ if (!t.length) return;
16
+ let n = document.activeElement, r = t.indexOf(n) + e;
17
+ r < 0 && (r = t.length - 1), r >= t.length && (r = 0);
18
+ let i = t[r];
19
+ if (i.focus(), u.activationMode.value === "automatic") {
20
+ let e = i.dataset.tabValue;
21
+ e && u.setActiveValue(e);
22
+ }
23
+ }, h = () => {
24
+ let e = p();
25
+ if (e.length && (e[0].focus(), u.activationMode.value === "automatic")) {
26
+ let t = e[0].dataset.tabValue;
27
+ t && u.setActiveValue(t);
28
+ }
29
+ }, g = () => {
30
+ let e = p();
31
+ if (!e.length) return;
32
+ let t = e[e.length - 1];
33
+ if (t.focus(), u.activationMode.value === "automatic") {
34
+ let e = t.dataset.tabValue;
35
+ e && u.setActiveValue(e);
36
+ }
37
+ }, _ = (e) => {
38
+ switch (e.key) {
39
+ case "ArrowRight":
40
+ e.preventDefault(), m(1);
41
+ break;
42
+ case "ArrowLeft":
43
+ e.preventDefault(), m(-1);
44
+ break;
45
+ case "Home":
46
+ e.preventDefault(), h();
47
+ break;
48
+ case "End":
49
+ e.preventDefault(), g();
50
+ break;
51
+ default:
52
+ if (u.activationMode.value === "manual" && l(e)) {
53
+ e.preventDefault();
54
+ let t = e.target.dataset?.tabValue;
55
+ t && u.setActiveValue(t);
56
+ }
57
+ break;
58
+ }
59
+ }, v = t(() => ["t-tabs__list"]);
60
+ return (e, t) => (o(), n("div", {
61
+ ref_key: "listRef",
62
+ ref: d,
63
+ role: "tablist",
64
+ "aria-orientation": "horizontal",
65
+ class: a(v.value),
66
+ onKeydown: _
67
+ }, [c(e.$slots, "default")], 34));
68
+ }
69
+ });
70
+ //#endregion
71
+ export { u as default };
72
+
73
+ //# sourceMappingURL=TTabList.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTabList.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../src/components/TTabList.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { isActivationKey } from '@treeui/utils';\nimport { computed, inject, ref } from 'vue';\nimport { TABS_INJECTION_KEY } from './tabs-context';\n\nconst ctx = inject(TABS_INJECTION_KEY);\nif (!ctx) {\n throw new Error('TTabList must be used inside TTabs');\n}\n\nconst listRef = ref<HTMLElement | null>(null);\n\nconst getAllTabElements = (): HTMLElement[] => {\n if (!listRef.value) return [];\n return Array.from(\n listRef.value.querySelectorAll<HTMLElement>('[role=\"tab\"]'),\n );\n};\n\nconst getEnabledTabElements = (): HTMLElement[] => {\n return getAllTabElements().filter((el) => {\n const value = el.dataset.tabValue;\n return value ? !ctx.isTabDisabled(value) : false;\n });\n};\n\nconst moveFocus = (direction: 1 | -1) => {\n const tabs = getEnabledTabElements();\n if (!tabs.length) return;\n\n const current = document.activeElement as HTMLElement;\n const currentIndex = tabs.indexOf(current);\n let nextIndex = currentIndex + direction;\n\n if (nextIndex < 0) nextIndex = tabs.length - 1;\n if (nextIndex >= tabs.length) nextIndex = 0;\n\n const nextTab = tabs[nextIndex];\n nextTab.focus();\n\n if (ctx.activationMode.value === 'automatic') {\n const value = nextTab.dataset.tabValue;\n if (value) ctx.setActiveValue(value);\n }\n};\n\nconst focusFirst = () => {\n const tabs = getEnabledTabElements();\n if (!tabs.length) return;\n tabs[0].focus();\n if (ctx.activationMode.value === 'automatic') {\n const value = tabs[0].dataset.tabValue;\n if (value) ctx.setActiveValue(value);\n }\n};\n\nconst focusLast = () => {\n const tabs = getEnabledTabElements();\n if (!tabs.length) return;\n const last = tabs[tabs.length - 1];\n last.focus();\n if (ctx.activationMode.value === 'automatic') {\n const value = last.dataset.tabValue;\n if (value) ctx.setActiveValue(value);\n }\n};\n\nconst onKeydown = (event: KeyboardEvent) => {\n switch (event.key) {\n case 'ArrowRight':\n event.preventDefault();\n moveFocus(1);\n break;\n case 'ArrowLeft':\n event.preventDefault();\n moveFocus(-1);\n break;\n case 'Home':\n event.preventDefault();\n focusFirst();\n break;\n case 'End':\n event.preventDefault();\n focusLast();\n break;\n default:\n if (ctx.activationMode.value === 'manual' && isActivationKey(event)) {\n event.preventDefault();\n const target = event.target as HTMLElement;\n const value = target.dataset?.tabValue;\n if (value) ctx.setActiveValue(value);\n }\n break;\n }\n};\n\nconst classes = computed(() => [\n 't-tabs__list',\n]);\n</script>\n\n<template>\n <div\n ref=\"listRef\"\n role=\"tablist\"\n aria-orientation=\"horizontal\"\n :class=\"classes\"\n @keydown=\"onKeydown\"\n >\n <slot />\n </div>\n</template>\n"],"mappings":";;;;;;;EAKA,IAAM,IAAM,EAAO,CAAkB;EACrC,IAAI,CAAC,GACH,MAAU,MAAM,oCAAoC;EAGtD,IAAM,IAAU,EAAwB,IAAI,GAEtC,UACC,EAAQ,QACN,MAAM,KACX,EAAQ,MAAM,iBAA8B,gBAAc,CAC5D,IAH2B,CAAC,GAMxB,UACG,EAAkB,CAAC,CAAC,QAAQ,MAAO;GACxC,IAAM,IAAQ,EAAG,QAAQ;GACzB,OAAO,IAAQ,CAAC,EAAI,cAAc,CAAK,IAAI;EAC7C,CAAC,GAGG,KAAa,MAAsB;GACvC,IAAM,IAAO,EAAsB;GACnC,IAAI,CAAC,EAAK,QAAQ;GAElB,IAAM,IAAU,SAAS,eAErB,IADiB,EAAK,QAAQ,CAClB,IAAe;GAG/B,AADI,IAAY,MAAG,IAAY,EAAK,SAAS,IACzC,KAAa,EAAK,WAAQ,IAAY;GAE1C,IAAM,IAAU,EAAK;GAGrB,IAFA,EAAQ,MAAM,GAEV,EAAI,eAAe,UAAU,aAAa;IAC5C,IAAM,IAAQ,EAAQ,QAAQ;IAC9B,AAAI,KAAO,EAAI,eAAe,CAAK;GACrC;EACF,GAEM,UAAmB;GACvB,IAAM,IAAO,EAAsB;GAC9B,MAAK,WACV,EAAK,EAAE,CAAC,MAAM,GACV,EAAI,eAAe,UAAU,cAAa;IAC5C,IAAM,IAAQ,EAAK,EAAE,CAAC,QAAQ;IAC9B,AAAI,KAAO,EAAI,eAAe,CAAK;GACrC;EACF,GAEM,UAAkB;GACtB,IAAM,IAAO,EAAsB;GACnC,IAAI,CAAC,EAAK,QAAQ;GAClB,IAAM,IAAO,EAAK,EAAK,SAAS;GAEhC,IADA,EAAK,MAAM,GACP,EAAI,eAAe,UAAU,aAAa;IAC5C,IAAM,IAAQ,EAAK,QAAQ;IAC3B,AAAI,KAAO,EAAI,eAAe,CAAK;GACrC;EACF,GAEM,KAAa,MAAyB;GAC1C,QAAQ,EAAM,KAAd;IACE,KAAK;KAEH,AADA,EAAM,eAAe,GACrB,EAAU,CAAC;KACX;IACF,KAAK;KAEH,AADA,EAAM,eAAe,GACrB,EAAU,EAAE;KACZ;IACF,KAAK;KAEH,AADA,EAAM,eAAe,GACrB,EAAW;KACX;IACF,KAAK;KAEH,AADA,EAAM,eAAe,GACrB,EAAU;KACV;IACF;KACE,IAAI,EAAI,eAAe,UAAU,YAAY,EAAgB,CAAK,GAAG;MACnE,EAAM,eAAe;MAErB,IAAM,IADS,EAAM,OACA,SAAS;MAC9B,AAAI,KAAO,EAAI,eAAe,CAAK;KACrC;KACA;GACJ;EACF,GAEM,IAAU,QAAe,CAC7B,cACF,CAAC;yBAIC,EAQM,OAAA;YAPA;GAAJ,KAAI;GACJ,MAAK;GACL,oBAAiB;GAChB,OAAK,EAAE,EAAA,KAAO;GACL;MAEV,EAAQ,EAAA,QAAA,SAAA,CAAA,GAAA,EAAA"}
@@ -0,0 +1,2 @@
1
+ var e=require("./TTabPanel.vue_vue_type_script_setup_true_lang.cjs").default;exports.default=e;
2
+ //# sourceMappingURL=TTabPanel.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTabPanel.cjs","names":[],"sources":["../../src/components/TTabPanel.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, inject } from 'vue';\nimport { TABS_INJECTION_KEY } from './tabs-context';\n\nconst props = defineProps<{\n value: string;\n}>();\n\nconst ctx = inject(TABS_INJECTION_KEY);\nif (!ctx) {\n throw new Error('TTabPanel must be used inside TTabs');\n}\n\nconst isActive = computed(() => ctx.activeValue.value === props.value);\nconst panelId = computed(() => `${ctx.baseId}-panel-${props.value}`);\nconst tabId = computed(() => `${ctx.baseId}-tab-${props.value}`);\n</script>\n\n<template>\n <div\n v-if=\"isActive\"\n :id=\"panelId\"\n role=\"tabpanel\"\n :aria-labelledby=\"tabId\"\n tabindex=\"0\"\n class=\"t-tabs__panel\"\n >\n <slot />\n </div>\n</template>\n"],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import e from "./TTabPanel.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/TTabPanel.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
6
+
7
+ //# sourceMappingURL=TTabPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTabPanel.js","names":[],"sources":["../../src/components/TTabPanel.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, inject } from 'vue';\nimport { TABS_INJECTION_KEY } from './tabs-context';\n\nconst props = defineProps<{\n value: string;\n}>();\n\nconst ctx = inject(TABS_INJECTION_KEY);\nif (!ctx) {\n throw new Error('TTabPanel must be used inside TTabs');\n}\n\nconst isActive = computed(() => ctx.activeValue.value === props.value);\nconst panelId = computed(() => `${ctx.baseId}-panel-${props.value}`);\nconst tabId = computed(() => `${ctx.baseId}-tab-${props.value}`);\n</script>\n\n<template>\n <div\n v-if=\"isActive\"\n :id=\"panelId\"\n role=\"tabpanel\"\n :aria-labelledby=\"tabId\"\n tabindex=\"0\"\n class=\"t-tabs__panel\"\n >\n <slot />\n </div>\n</template>\n"],"mappings":""}
@@ -18,4 +18,4 @@ type __VLS_WithTemplateSlots<T, S> = T & {
18
18
  $slots: S;
19
19
  };
20
20
  };
21
- //# sourceMappingURL=TreeTabPanel.vue.d.ts.map
21
+ //# sourceMappingURL=TTabPanel.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTabPanel.vue.d.ts","sourceRoot":"","sources":["../../src/components/TTabPanel.vue"],"names":[],"mappings":"AAmCA,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAcF,iBAAS,cAAc;WA8BT,OAAO,IAA6B;;yBAVrB,GAAG;;;;EAe/B;AAWD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe,kSAMnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAQpG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -0,0 +1,2 @@
1
+ const e=require("./tabs-context.cjs");let t=require("vue");var n=[`id`,`aria-labelledby`],r=(0,t.defineComponent)({__name:`TTabPanel`,props:{value:{}},setup(r){let i=r,a=(0,t.inject)(e.TABS_INJECTION_KEY);if(!a)throw Error(`TTabPanel must be used inside TTabs`);let o=(0,t.computed)(()=>a.activeValue.value===i.value),s=(0,t.computed)(()=>`${a.baseId}-panel-${i.value}`),c=(0,t.computed)(()=>`${a.baseId}-tab-${i.value}`);return(e,r)=>o.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,id:s.value,role:`tabpanel`,"aria-labelledby":c.value,tabindex:`0`,class:`t-tabs__panel`},[(0,t.renderSlot)(e.$slots,`default`)],8,n)):(0,t.createCommentVNode)(``,!0)}});exports.default=r;
2
+ //# sourceMappingURL=TTabPanel.vue_vue_type_script_setup_true_lang.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTabPanel.vue_vue_type_script_setup_true_lang.cjs","names":[],"sources":["../../src/components/TTabPanel.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, inject } from 'vue';\nimport { TABS_INJECTION_KEY } from './tabs-context';\n\nconst props = defineProps<{\n value: string;\n}>();\n\nconst ctx = inject(TABS_INJECTION_KEY);\nif (!ctx) {\n throw new Error('TTabPanel must be used inside TTabs');\n}\n\nconst isActive = computed(() => ctx.activeValue.value === props.value);\nconst panelId = computed(() => `${ctx.baseId}-panel-${props.value}`);\nconst tabId = computed(() => `${ctx.baseId}-tab-${props.value}`);\n</script>\n\n<template>\n <div\n v-if=\"isActive\"\n :id=\"panelId\"\n role=\"tabpanel\"\n :aria-labelledby=\"tabId\"\n tabindex=\"0\"\n class=\"t-tabs__panel\"\n >\n <slot />\n </div>\n</template>\n"],"mappings":"gKAIA,IAAM,EAAQ,EAIR,GAAA,EAAA,EAAA,OAAA,CAAa,EAAA,kBAAkB,EACrC,GAAI,CAAC,EACH,MAAU,MAAM,qCAAqC,EAGvD,IAAM,GAAA,EAAA,EAAA,SAAA,KAA0B,EAAI,YAAY,QAAU,EAAM,KAAK,EAC/D,GAAA,EAAA,EAAA,SAAA,KAAyB,GAAG,EAAI,OAAO,SAAS,EAAM,OAAO,EAC7D,GAAA,EAAA,EAAA,SAAA,KAAuB,GAAG,EAAI,OAAO,OAAO,EAAM,OAAO,eAKrD,EAAA,QAAA,EAAA,EAAA,UAAA,CAAA,GAAA,EAAA,EAAA,mBAAA,CAQF,MAAA,OAPH,GAAI,EAAA,MACL,KAAK,WACJ,kBAAiB,EAAA,MAClB,SAAS,IACT,MAAM,mCAEE,EAAA,OAAA,SAAA,CAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,mBAAA,CAAA,GAAA,EAAA"}
@@ -0,0 +1,24 @@
1
+ import { TABS_INJECTION_KEY as e } from "./tabs-context.js";
2
+ import { computed as t, createCommentVNode as n, createElementBlock as r, defineComponent as i, inject as a, openBlock as o, renderSlot as s } from "vue";
3
+ //#region src/components/TTabPanel.vue?vue&type=script&setup=true&lang.ts
4
+ var c = ["id", "aria-labelledby"], l = /*@__PURE__*/ i({
5
+ __name: "TTabPanel",
6
+ props: { value: {} },
7
+ setup(i) {
8
+ let l = i, u = a(e);
9
+ if (!u) throw Error("TTabPanel must be used inside TTabs");
10
+ let d = t(() => u.activeValue.value === l.value), f = t(() => `${u.baseId}-panel-${l.value}`), p = t(() => `${u.baseId}-tab-${l.value}`);
11
+ return (e, t) => d.value ? (o(), r("div", {
12
+ key: 0,
13
+ id: f.value,
14
+ role: "tabpanel",
15
+ "aria-labelledby": p.value,
16
+ tabindex: "0",
17
+ class: "t-tabs__panel"
18
+ }, [s(e.$slots, "default")], 8, c)) : n("", !0);
19
+ }
20
+ });
21
+ //#endregion
22
+ export { l as default };
23
+
24
+ //# sourceMappingURL=TTabPanel.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTabPanel.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../src/components/TTabPanel.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, inject } from 'vue';\nimport { TABS_INJECTION_KEY } from './tabs-context';\n\nconst props = defineProps<{\n value: string;\n}>();\n\nconst ctx = inject(TABS_INJECTION_KEY);\nif (!ctx) {\n throw new Error('TTabPanel must be used inside TTabs');\n}\n\nconst isActive = computed(() => ctx.activeValue.value === props.value);\nconst panelId = computed(() => `${ctx.baseId}-panel-${props.value}`);\nconst tabId = computed(() => `${ctx.baseId}-tab-${props.value}`);\n</script>\n\n<template>\n <div\n v-if=\"isActive\"\n :id=\"panelId\"\n role=\"tabpanel\"\n :aria-labelledby=\"tabId\"\n tabindex=\"0\"\n class=\"t-tabs__panel\"\n >\n <slot />\n </div>\n</template>\n"],"mappings":";;;;;;;EAIA,IAAM,IAAQ,GAIR,IAAM,EAAO,CAAkB;EACrC,IAAI,CAAC,GACH,MAAU,MAAM,qCAAqC;EAGvD,IAAM,IAAW,QAAe,EAAI,YAAY,UAAU,EAAM,KAAK,GAC/D,IAAU,QAAe,GAAG,EAAI,OAAO,SAAS,EAAM,OAAO,GAC7D,IAAQ,QAAe,GAAG,EAAI,OAAO,OAAO,EAAM,OAAO;mBAKrD,EAAA,SAAA,EAAA,GADR,EASM,OAAA;;GAPH,IAAI,EAAA;GACL,MAAK;GACJ,mBAAiB,EAAA;GAClB,UAAS;GACT,OAAM;MAEN,EAAQ,EAAA,QAAA,SAAA,CAAA,GAAA,GAAA,CAAA,KAAA,EAAA,IAAA,EAAA"}
@@ -0,0 +1,2 @@
1
+ var e=require("./TTable.vue_vue_type_script_setup_true_lang.cjs").default;exports.default=e;
2
+ //# sourceMappingURL=TTable.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTable.cjs","names":[],"sources":["../../src/components/TTable.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport type { TSize } from '../types/contracts';\n\nexport type TTableColumn = {\n key: string;\n label: string;\n sortable?: boolean;\n align?: 'left' | 'center' | 'right';\n width?: string;\n};\n\nexport type TTableSortDirection = 'asc' | 'desc' | 'none';\n\nexport type TTableSortState = {\n key: string;\n direction: TTableSortDirection;\n};\n\nconst props = withDefaults(\n defineProps<{\n columns: TTableColumn[];\n rows: Record<string, unknown>[];\n size?: TSize;\n sortBy?: TTableSortState;\n }>(),\n {\n size: 'md',\n sortBy: undefined,\n },\n);\n\nconst emit = defineEmits<{\n (e: 'sort', state: TTableSortState): void;\n}>();\n\ndefineSlots<{\n [key: `cell-${string}`]: (props: { row: Record<string, unknown>; value: unknown }) => void;\n [key: `header-${string}`]: (props: { column: TTableColumn }) => void;\n empty: () => void;\n}>();\n\nconst internalSort = ref<TTableSortState | undefined>(undefined);\n\nconst currentSort = computed(() => props.sortBy ?? internalSort.value);\n\nconst classes = computed(() => [\n 't-table',\n `t-table--${props.size}`,\n]);\n\nconst sortedRows = computed(() => {\n const sort = currentSort.value;\n if (!sort || sort.direction === 'none') return props.rows;\n\n return [...props.rows].sort((a, b) => {\n const aVal = a[sort.key];\n const bVal = b[sort.key];\n\n if (aVal == null && bVal == null) return 0;\n if (aVal == null) return 1;\n if (bVal == null) return -1;\n\n const cmp =\n typeof aVal === 'number' && typeof bVal === 'number'\n ? aVal - bVal\n : String(aVal).localeCompare(String(bVal));\n\n return sort.direction === 'desc' ? -cmp : cmp;\n });\n});\n\nfunction handleSort(column: TTableColumn) {\n if (!column.sortable) return;\n\n const cur = currentSort.value;\n let direction: TTableSortDirection = 'asc';\n\n if (cur?.key === column.key) {\n if (cur.direction === 'asc') direction = 'desc';\n else if (cur.direction === 'desc') direction = 'none';\n else direction = 'asc';\n }\n\n const state: TTableSortState = { key: column.key, direction };\n internalSort.value = state;\n emit('sort', state);\n}\n\nfunction sortAriaSort(column: TTableColumn): 'none' | 'ascending' | 'descending' | undefined {\n if (!column.sortable) return undefined;\n const cur = currentSort.value;\n if (cur?.key !== column.key || cur.direction === 'none') return 'none';\n return cur.direction === 'asc' ? 'ascending' : 'descending';\n}\n\nfunction handleHeaderKeydown(event: KeyboardEvent, column: TTableColumn) {\n if (column.sortable && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault();\n handleSort(column);\n }\n}\n</script>\n\n<template>\n <div class=\"t-table-wrapper\">\n <table\n :class=\"classes\"\n role=\"grid\"\n >\n <thead class=\"t-table__head\">\n <tr class=\"t-table__row\">\n <th\n v-for=\"column in columns\"\n :key=\"column.key\"\n class=\"t-table__header\"\n :class=\"[\n column.sortable ? 't-table__header--sortable' : '',\n column.align ? `t-table__header--${column.align}` : '',\n ]\"\n :style=\"column.width ? { width: column.width } : undefined\"\n :aria-sort=\"sortAriaSort(column)\"\n :tabindex=\"column.sortable ? 0 : undefined\"\n scope=\"col\"\n @click=\"handleSort(column)\"\n @keydown=\"handleHeaderKeydown($event, column)\"\n >\n <slot\n :name=\"`header-${column.key}`\"\n :column=\"column\"\n >\n <span class=\"t-table__header-content\">\n {{ column.label }}\n <span\n v-if=\"column.sortable\"\n class=\"t-table__sort-icon\"\n aria-hidden=\"true\"\n >\n <svg\n v-if=\"currentSort?.key === column.key && currentSort.direction === 'asc'\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"m18 15-6-6-6 6\" />\n </svg>\n <svg\n v-else-if=\"currentSort?.key === column.key && currentSort.direction === 'desc'\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n <svg\n v-else\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n style=\"opacity: 0.4\"\n >\n <path d=\"m7 15 5 5 5-5\" />\n <path d=\"m7 9 5-5 5 5\" />\n </svg>\n </span>\n </span>\n </slot>\n </th>\n </tr>\n </thead>\n <tbody class=\"t-table__body\">\n <tr\n v-if=\"sortedRows.length === 0\"\n class=\"t-table__row t-table__row--empty\"\n >\n <td\n :colspan=\"columns.length\"\n class=\"t-table__cell t-table__cell--empty\"\n >\n <slot name=\"empty\">\n No data available.\n </slot>\n </td>\n </tr>\n <tr\n v-for=\"(row, index) in sortedRows\"\n :key=\"index\"\n class=\"t-table__row\"\n >\n <td\n v-for=\"column in columns\"\n :key=\"column.key\"\n class=\"t-table__cell\"\n :class=\"column.align ? `t-table__cell--${column.align}` : ''\"\n >\n <slot\n :name=\"`cell-${column.key}`\"\n :row=\"row\"\n :value=\"row[column.key]\"\n >\n {{ row[column.key] ?? '' }}\n </slot>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</template>\n"],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import e from "./TTable.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/TTable.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
6
+
7
+ //# sourceMappingURL=TTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTable.js","names":[],"sources":["../../src/components/TTable.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport type { TSize } from '../types/contracts';\n\nexport type TTableColumn = {\n key: string;\n label: string;\n sortable?: boolean;\n align?: 'left' | 'center' | 'right';\n width?: string;\n};\n\nexport type TTableSortDirection = 'asc' | 'desc' | 'none';\n\nexport type TTableSortState = {\n key: string;\n direction: TTableSortDirection;\n};\n\nconst props = withDefaults(\n defineProps<{\n columns: TTableColumn[];\n rows: Record<string, unknown>[];\n size?: TSize;\n sortBy?: TTableSortState;\n }>(),\n {\n size: 'md',\n sortBy: undefined,\n },\n);\n\nconst emit = defineEmits<{\n (e: 'sort', state: TTableSortState): void;\n}>();\n\ndefineSlots<{\n [key: `cell-${string}`]: (props: { row: Record<string, unknown>; value: unknown }) => void;\n [key: `header-${string}`]: (props: { column: TTableColumn }) => void;\n empty: () => void;\n}>();\n\nconst internalSort = ref<TTableSortState | undefined>(undefined);\n\nconst currentSort = computed(() => props.sortBy ?? internalSort.value);\n\nconst classes = computed(() => [\n 't-table',\n `t-table--${props.size}`,\n]);\n\nconst sortedRows = computed(() => {\n const sort = currentSort.value;\n if (!sort || sort.direction === 'none') return props.rows;\n\n return [...props.rows].sort((a, b) => {\n const aVal = a[sort.key];\n const bVal = b[sort.key];\n\n if (aVal == null && bVal == null) return 0;\n if (aVal == null) return 1;\n if (bVal == null) return -1;\n\n const cmp =\n typeof aVal === 'number' && typeof bVal === 'number'\n ? aVal - bVal\n : String(aVal).localeCompare(String(bVal));\n\n return sort.direction === 'desc' ? -cmp : cmp;\n });\n});\n\nfunction handleSort(column: TTableColumn) {\n if (!column.sortable) return;\n\n const cur = currentSort.value;\n let direction: TTableSortDirection = 'asc';\n\n if (cur?.key === column.key) {\n if (cur.direction === 'asc') direction = 'desc';\n else if (cur.direction === 'desc') direction = 'none';\n else direction = 'asc';\n }\n\n const state: TTableSortState = { key: column.key, direction };\n internalSort.value = state;\n emit('sort', state);\n}\n\nfunction sortAriaSort(column: TTableColumn): 'none' | 'ascending' | 'descending' | undefined {\n if (!column.sortable) return undefined;\n const cur = currentSort.value;\n if (cur?.key !== column.key || cur.direction === 'none') return 'none';\n return cur.direction === 'asc' ? 'ascending' : 'descending';\n}\n\nfunction handleHeaderKeydown(event: KeyboardEvent, column: TTableColumn) {\n if (column.sortable && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault();\n handleSort(column);\n }\n}\n</script>\n\n<template>\n <div class=\"t-table-wrapper\">\n <table\n :class=\"classes\"\n role=\"grid\"\n >\n <thead class=\"t-table__head\">\n <tr class=\"t-table__row\">\n <th\n v-for=\"column in columns\"\n :key=\"column.key\"\n class=\"t-table__header\"\n :class=\"[\n column.sortable ? 't-table__header--sortable' : '',\n column.align ? `t-table__header--${column.align}` : '',\n ]\"\n :style=\"column.width ? { width: column.width } : undefined\"\n :aria-sort=\"sortAriaSort(column)\"\n :tabindex=\"column.sortable ? 0 : undefined\"\n scope=\"col\"\n @click=\"handleSort(column)\"\n @keydown=\"handleHeaderKeydown($event, column)\"\n >\n <slot\n :name=\"`header-${column.key}`\"\n :column=\"column\"\n >\n <span class=\"t-table__header-content\">\n {{ column.label }}\n <span\n v-if=\"column.sortable\"\n class=\"t-table__sort-icon\"\n aria-hidden=\"true\"\n >\n <svg\n v-if=\"currentSort?.key === column.key && currentSort.direction === 'asc'\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"m18 15-6-6-6 6\" />\n </svg>\n <svg\n v-else-if=\"currentSort?.key === column.key && currentSort.direction === 'desc'\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n <svg\n v-else\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n style=\"opacity: 0.4\"\n >\n <path d=\"m7 15 5 5 5-5\" />\n <path d=\"m7 9 5-5 5 5\" />\n </svg>\n </span>\n </span>\n </slot>\n </th>\n </tr>\n </thead>\n <tbody class=\"t-table__body\">\n <tr\n v-if=\"sortedRows.length === 0\"\n class=\"t-table__row t-table__row--empty\"\n >\n <td\n :colspan=\"columns.length\"\n class=\"t-table__cell t-table__cell--empty\"\n >\n <slot name=\"empty\">\n No data available.\n </slot>\n </td>\n </tr>\n <tr\n v-for=\"(row, index) in sortedRows\"\n :key=\"index\"\n class=\"t-table__row\"\n >\n <td\n v-for=\"column in columns\"\n :key=\"column.key\"\n class=\"t-table__cell\"\n :class=\"column.align ? `t-table__cell--${column.align}` : ''\"\n >\n <slot\n :name=\"`cell-${column.key}`\"\n :row=\"row\"\n :value=\"row[column.key]\"\n >\n {{ row[column.key] ?? '' }}\n </slot>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</template>\n"],"mappings":""}
@@ -1,21 +1,21 @@
1
- import { TreeSize } from '../types/contracts';
2
- export type TreeTableColumn = {
1
+ import { TSize } from '../types/contracts';
2
+ export type TTableColumn = {
3
3
  key: string;
4
4
  label: string;
5
5
  sortable?: boolean;
6
6
  align?: 'left' | 'center' | 'right';
7
7
  width?: string;
8
8
  };
9
- export type TreeTableSortDirection = 'asc' | 'desc' | 'none';
10
- export type TreeTableSortState = {
9
+ export type TTableSortDirection = 'asc' | 'desc' | 'none';
10
+ export type TTableSortState = {
11
11
  key: string;
12
- direction: TreeTableSortDirection;
12
+ direction: TTableSortDirection;
13
13
  };
14
14
  type __VLS_Props = {
15
- columns: TreeTableColumn[];
15
+ columns: TTableColumn[];
16
16
  rows: Record<string, unknown>[];
17
- size?: TreeSize;
18
- sortBy?: TreeTableSortState;
17
+ size?: TSize;
18
+ sortBy?: TTableSortState;
19
19
  };
20
20
  declare function __VLS_template(): {
21
21
  attrs: Partial<{}>;
@@ -25,7 +25,7 @@ declare function __VLS_template(): {
25
25
  value: unknown;
26
26
  }) => void;
27
27
  [key: `header-${string}`]: (props: {
28
- column: TreeTableColumn;
28
+ column: TTableColumn;
29
29
  }) => void;
30
30
  empty: () => void;
31
31
  }> & {
@@ -34,7 +34,7 @@ declare function __VLS_template(): {
34
34
  value: unknown;
35
35
  }) => void;
36
36
  [key: `header-${string}`]: (props: {
37
- column: TreeTableColumn;
37
+ column: TTableColumn;
38
38
  }) => void;
39
39
  empty: () => void;
40
40
  };
@@ -43,12 +43,12 @@ declare function __VLS_template(): {
43
43
  };
44
44
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
45
45
  declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
46
- sort: (state: TreeTableSortState) => any;
46
+ sort: (state: TTableSortState) => any;
47
47
  }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
48
- onSort?: ((state: TreeTableSortState) => any) | undefined;
48
+ onSort?: ((state: TTableSortState) => any) | undefined;
49
49
  }>, {
50
- size: TreeSize;
51
- sortBy: TreeTableSortState;
50
+ size: TSize;
51
+ sortBy: TTableSortState;
52
52
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
53
53
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
54
54
  export default _default;
@@ -57,4 +57,4 @@ type __VLS_WithTemplateSlots<T, S> = T & {
57
57
  $slots: S;
58
58
  };
59
59
  };
60
- //# sourceMappingURL=TreeTable.vue.d.ts.map
60
+ //# sourceMappingURL=TTable.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTable.vue.d.ts","sourceRoot":"","sources":["../../src/components/TTable.vue"],"names":[],"mappings":"AAqOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,MAAM,YAAY,GAAG;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1D,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,mBAAmB,CAAC;CAChC,CAAC;AAEF,KAAK,WAAW,GAAG;IACf,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChC,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,MAAM,CAAC,EAAE,eAAe,CAAC;CAC1B,CAAC;AAuFJ,iBAAS,cAAc;WAkJT,OAAO,IAA6B;;yCA1Nf;YAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAAC,KAAK,EAAE,OAAO,CAAA;SAAE,KAAK,IAAI;2CACvD;YAAE,MAAM,EAAE,YAAY,CAAA;SAAE,KAAK,IAAI;eAC7D,MAAM,IAAI;;yCAFgB;YAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAAC,KAAK,EAAE,OAAO,CAAA;SAAE,KAAK,IAAI;2CACvD;YAAE,MAAM,EAAE,YAAY,CAAA;SAAE,KAAK,IAAI;eAC7D,MAAM,IAAI;;;;EA6NlB;AAgBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;UAjQV,KAAK;YACH,eAAe;wFAyQ1B,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -0,0 +1,2 @@
1
+ let e=require("vue");var t={class:`t-table-wrapper`},n={class:`t-table__head`},r={class:`t-table__row`},i=[`aria-sort`,`tabindex`,`onClick`,`onKeydown`],a={class:`t-table__header-content`},o={key:0,class:`t-table__sort-icon`,"aria-hidden":`true`},s={key:0,xmlns:`http://www.w3.org/2000/svg`,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},c={key:1,xmlns:`http://www.w3.org/2000/svg`,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},l={key:2,xmlns:`http://www.w3.org/2000/svg`,width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,style:{opacity:`0.4`}},u={class:`t-table__body`},d={key:0,class:`t-table__row t-table__row--empty`},f=[`colspan`],p=(0,e.defineComponent)({__name:`TTable`,props:{columns:{},rows:{},size:{default:`md`},sortBy:{default:void 0}},emits:[`sort`],setup(p,{emit:m}){let h=p,g=m,_=(0,e.ref)(void 0),v=(0,e.computed)(()=>h.sortBy??_.value),y=(0,e.computed)(()=>[`t-table`,`t-table--${h.size}`]),b=(0,e.computed)(()=>{let e=v.value;return!e||e.direction===`none`?h.rows:[...h.rows].sort((t,n)=>{let r=t[e.key],i=n[e.key];if(r==null&&i==null)return 0;if(r==null)return 1;if(i==null)return-1;let a=typeof r==`number`&&typeof i==`number`?r-i:String(r).localeCompare(String(i));return e.direction===`desc`?-a:a})});function x(e){if(!e.sortable)return;let t=v.value,n=`asc`;t?.key===e.key&&(n=t.direction===`asc`?`desc`:t.direction===`desc`?`none`:`asc`);let r={key:e.key,direction:n};_.value=r,g(`sort`,r)}function S(e){if(!e.sortable)return;let t=v.value;return t?.key!==e.key||t.direction===`none`?`none`:t.direction===`asc`?`ascending`:`descending`}function C(e,t){t.sortable&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),x(t))}return(m,h)=>((0,e.openBlock)(),(0,e.createElementBlock)(`div`,t,[(0,e.createElementVNode)(`table`,{class:(0,e.normalizeClass)(y.value),role:`grid`},[(0,e.createElementVNode)(`thead`,n,[(0,e.createElementVNode)(`tr`,r,[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(p.columns,t=>((0,e.openBlock)(),(0,e.createElementBlock)(`th`,{key:t.key,class:(0,e.normalizeClass)([`t-table__header`,[t.sortable?`t-table__header--sortable`:``,t.align?`t-table__header--${t.align}`:``]]),style:(0,e.normalizeStyle)(t.width?{width:t.width}:void 0),"aria-sort":S(t),tabindex:t.sortable?0:void 0,scope:`col`,onClick:e=>x(t),onKeydown:e=>C(e,t)},[(0,e.renderSlot)(m.$slots,`header-${t.key}`,{column:t},()=>[(0,e.createElementVNode)(`span`,a,[(0,e.createTextVNode)((0,e.toDisplayString)(t.label)+` `,1),t.sortable?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,o,[v.value?.key===t.key&&v.value.direction===`asc`?((0,e.openBlock)(),(0,e.createElementBlock)(`svg`,s,[...h[0]||=[(0,e.createElementVNode)(`path`,{d:`m18 15-6-6-6 6`},null,-1)]])):v.value?.key===t.key&&v.value.direction===`desc`?((0,e.openBlock)(),(0,e.createElementBlock)(`svg`,c,[...h[1]||=[(0,e.createElementVNode)(`path`,{d:`m6 9 6 6 6-6`},null,-1)]])):((0,e.openBlock)(),(0,e.createElementBlock)(`svg`,l,[...h[2]||=[(0,e.createElementVNode)(`path`,{d:`m7 15 5 5 5-5`},null,-1),(0,e.createElementVNode)(`path`,{d:`m7 9 5-5 5 5`},null,-1)]]))])):(0,e.createCommentVNode)(``,!0)])])],46,i))),128))])]),(0,e.createElementVNode)(`tbody`,u,[b.value.length===0?((0,e.openBlock)(),(0,e.createElementBlock)(`tr`,d,[(0,e.createElementVNode)(`td`,{colspan:p.columns.length,class:`t-table__cell t-table__cell--empty`},[(0,e.renderSlot)(m.$slots,`empty`,{},()=>[h[3]||=(0,e.createTextVNode)(` No data available. `,-1)])],8,f)])):(0,e.createCommentVNode)(``,!0),((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(b.value,(t,n)=>((0,e.openBlock)(),(0,e.createElementBlock)(`tr`,{key:n,class:`t-table__row`},[((0,e.openBlock)(!0),(0,e.createElementBlock)(e.Fragment,null,(0,e.renderList)(p.columns,n=>((0,e.openBlock)(),(0,e.createElementBlock)(`td`,{key:n.key,class:(0,e.normalizeClass)([`t-table__cell`,n.align?`t-table__cell--${n.align}`:``])},[(0,e.renderSlot)(m.$slots,`cell-${n.key}`,{row:t,value:t[n.key]},()=>[(0,e.createTextVNode)((0,e.toDisplayString)(t[n.key]??``),1)])],2))),128))]))),128))])],2)]))}});exports.default=p;
2
+ //# sourceMappingURL=TTable.vue_vue_type_script_setup_true_lang.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTable.vue_vue_type_script_setup_true_lang.cjs","names":[],"sources":["../../src/components/TTable.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport type { TSize } from '../types/contracts';\n\nexport type TTableColumn = {\n key: string;\n label: string;\n sortable?: boolean;\n align?: 'left' | 'center' | 'right';\n width?: string;\n};\n\nexport type TTableSortDirection = 'asc' | 'desc' | 'none';\n\nexport type TTableSortState = {\n key: string;\n direction: TTableSortDirection;\n};\n\nconst props = withDefaults(\n defineProps<{\n columns: TTableColumn[];\n rows: Record<string, unknown>[];\n size?: TSize;\n sortBy?: TTableSortState;\n }>(),\n {\n size: 'md',\n sortBy: undefined,\n },\n);\n\nconst emit = defineEmits<{\n (e: 'sort', state: TTableSortState): void;\n}>();\n\ndefineSlots<{\n [key: `cell-${string}`]: (props: { row: Record<string, unknown>; value: unknown }) => void;\n [key: `header-${string}`]: (props: { column: TTableColumn }) => void;\n empty: () => void;\n}>();\n\nconst internalSort = ref<TTableSortState | undefined>(undefined);\n\nconst currentSort = computed(() => props.sortBy ?? internalSort.value);\n\nconst classes = computed(() => [\n 't-table',\n `t-table--${props.size}`,\n]);\n\nconst sortedRows = computed(() => {\n const sort = currentSort.value;\n if (!sort || sort.direction === 'none') return props.rows;\n\n return [...props.rows].sort((a, b) => {\n const aVal = a[sort.key];\n const bVal = b[sort.key];\n\n if (aVal == null && bVal == null) return 0;\n if (aVal == null) return 1;\n if (bVal == null) return -1;\n\n const cmp =\n typeof aVal === 'number' && typeof bVal === 'number'\n ? aVal - bVal\n : String(aVal).localeCompare(String(bVal));\n\n return sort.direction === 'desc' ? -cmp : cmp;\n });\n});\n\nfunction handleSort(column: TTableColumn) {\n if (!column.sortable) return;\n\n const cur = currentSort.value;\n let direction: TTableSortDirection = 'asc';\n\n if (cur?.key === column.key) {\n if (cur.direction === 'asc') direction = 'desc';\n else if (cur.direction === 'desc') direction = 'none';\n else direction = 'asc';\n }\n\n const state: TTableSortState = { key: column.key, direction };\n internalSort.value = state;\n emit('sort', state);\n}\n\nfunction sortAriaSort(column: TTableColumn): 'none' | 'ascending' | 'descending' | undefined {\n if (!column.sortable) return undefined;\n const cur = currentSort.value;\n if (cur?.key !== column.key || cur.direction === 'none') return 'none';\n return cur.direction === 'asc' ? 'ascending' : 'descending';\n}\n\nfunction handleHeaderKeydown(event: KeyboardEvent, column: TTableColumn) {\n if (column.sortable && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault();\n handleSort(column);\n }\n}\n</script>\n\n<template>\n <div class=\"t-table-wrapper\">\n <table\n :class=\"classes\"\n role=\"grid\"\n >\n <thead class=\"t-table__head\">\n <tr class=\"t-table__row\">\n <th\n v-for=\"column in columns\"\n :key=\"column.key\"\n class=\"t-table__header\"\n :class=\"[\n column.sortable ? 't-table__header--sortable' : '',\n column.align ? `t-table__header--${column.align}` : '',\n ]\"\n :style=\"column.width ? { width: column.width } : undefined\"\n :aria-sort=\"sortAriaSort(column)\"\n :tabindex=\"column.sortable ? 0 : undefined\"\n scope=\"col\"\n @click=\"handleSort(column)\"\n @keydown=\"handleHeaderKeydown($event, column)\"\n >\n <slot\n :name=\"`header-${column.key}`\"\n :column=\"column\"\n >\n <span class=\"t-table__header-content\">\n {{ column.label }}\n <span\n v-if=\"column.sortable\"\n class=\"t-table__sort-icon\"\n aria-hidden=\"true\"\n >\n <svg\n v-if=\"currentSort?.key === column.key && currentSort.direction === 'asc'\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"m18 15-6-6-6 6\" />\n </svg>\n <svg\n v-else-if=\"currentSort?.key === column.key && currentSort.direction === 'desc'\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n <svg\n v-else\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n style=\"opacity: 0.4\"\n >\n <path d=\"m7 15 5 5 5-5\" />\n <path d=\"m7 9 5-5 5 5\" />\n </svg>\n </span>\n </span>\n </slot>\n </th>\n </tr>\n </thead>\n <tbody class=\"t-table__body\">\n <tr\n v-if=\"sortedRows.length === 0\"\n class=\"t-table__row t-table__row--empty\"\n >\n <td\n :colspan=\"columns.length\"\n class=\"t-table__cell t-table__cell--empty\"\n >\n <slot name=\"empty\">\n No data available.\n </slot>\n </td>\n </tr>\n <tr\n v-for=\"(row, index) in sortedRows\"\n :key=\"index\"\n class=\"t-table__row\"\n >\n <td\n v-for=\"column in columns\"\n :key=\"column.key\"\n class=\"t-table__cell\"\n :class=\"column.align ? `t-table__cell--${column.align}` : ''\"\n >\n <slot\n :name=\"`cell-${column.key}`\"\n :row=\"row\"\n :value=\"row[column.key]\"\n >\n {{ row[column.key] ?? '' }}\n </slot>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</template>\n"],"mappings":"yjCAmBA,IAAM,EAAQ,EAaR,EAAO,EAUP,GAAA,EAAA,EAAA,IAAA,CAAgD,IAAA,EAAS,EAEzD,GAAA,EAAA,EAAA,SAAA,KAA6B,EAAM,QAAU,EAAa,KAAK,EAE/D,GAAA,EAAA,EAAA,SAAA,KAAyB,CAC7B,UACA,YAAY,EAAM,MACpB,CAAC,EAEK,GAAA,EAAA,EAAA,SAAA,KAA4B,CAChC,IAAM,EAAO,EAAY,MAGzB,MAFI,CAAC,GAAQ,EAAK,YAAc,OAAe,EAAM,KAE9C,CAAC,GAAG,EAAM,IAAI,CAAC,CAAC,MAAM,EAAG,IAAM,CACpC,IAAM,EAAO,EAAE,EAAK,KACd,EAAO,EAAE,EAAK,KAEpB,GAAI,GAAQ,MAAQ,GAAQ,KAAM,MAAO,GACzC,GAAI,GAAQ,KAAM,MAAO,GACzB,GAAI,GAAQ,KAAM,MAAO,GAEzB,IAAM,EACJ,OAAO,GAAS,UAAY,OAAO,GAAS,SACxC,EAAO,EACP,OAAO,CAAI,CAAC,CAAC,cAAc,OAAO,CAAI,CAAC,EAE7C,OAAO,EAAK,YAAc,OAAS,CAAC,EAAM,CAC5C,CAAC,CACH,CAAC,EAED,SAAS,EAAW,EAAsB,CACxC,GAAI,CAAC,EAAO,SAAU,OAEtB,IAAM,EAAM,EAAY,MACpB,EAAiC,MAEjC,GAAK,MAAQ,EAAO,MACtB,AAEK,EAFD,EAAI,YAAc,MAAmB,OAChC,EAAI,YAAc,OAAoB,OAC9B,OAGnB,IAAM,EAAyB,CAAE,IAAK,EAAO,IAAK,WAAU,EAC5D,EAAa,MAAQ,EACrB,EAAK,OAAQ,CAAK,CACpB,CAEA,SAAS,EAAa,EAAuE,CAC3F,GAAI,CAAC,EAAO,SAAU,OACtB,IAAM,EAAM,EAAY,MAExB,OADI,GAAK,MAAQ,EAAO,KAAO,EAAI,YAAc,OAAe,OACzD,EAAI,YAAc,MAAQ,YAAc,YACjD,CAEA,SAAS,EAAoB,EAAsB,EAAsB,CACnE,EAAO,WAAa,EAAM,MAAQ,SAAW,EAAM,MAAQ,OAC7D,EAAM,eAAe,EACrB,EAAW,CAAM,EAErB,0DA2HQ,MAvHN,EAuHM,EAAA,EAAA,EAAA,mBAAA,CADI,QAAA,CApHL,OAAA,EAAA,EAAA,eAAA,CAAO,EAAA,KAAO,EACf,KAAK,kCA+EG,QA7ER,EA6EQ,EAAA,EAAA,EAAA,mBAAA,CADD,KA3EL,EA2EK,GAAA,EAAA,EAAA,UAAA,CAAA,EAAA,GAAA,EAAA,EAAA,mBAAA,CADE,EAAA,SAAA,MAAA,EAAA,EAAA,WAAA,CAxEc,EAAA,QAAV,+CAwEJ,KAAA,CAvEF,IAAK,EAAO,IACb,OAAA,EAAA,EAAA,eAAA,CAAK,CAAC,kBAAiB,CACC,EAAO,SAAQ,4BAAA,GAAmD,EAAO,MAAK,oBAAuB,EAAO,QAAK,EAAA,CAAA,CAAA,EAIxI,OAAA,EAAA,EAAA,eAAA,CAAO,EAAO,MAAK,CAAA,MAAY,EAAO,KAAK,EAAK,IAAA,EAAS,EACzD,YAAW,EAAa,CAAM,EAC9B,SAAU,EAAO,SAAQ,EAAO,IAAA,GACjC,MAAM,MACL,QAAK,GAAE,EAAW,CAAM,EACxB,UAAO,GAAE,EAAoB,EAAQ,CAAM,qBA2DrC,EAAA,OAAA,UAxDY,EAAO,MAAG,CAClB,QAAM,MAuDV,EAAA,EAAA,EAAA,mBAAA,CADE,OApDP,EAoDO,EAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,gBAAA,CAnDF,EAAO,KAAK,EAAG,IAClB,CAAA,EACQ,EAAO,WAAA,EAAA,EAAA,UAAA,CAAA,GAAA,EAAA,EAAA,mBAAA,CAgDR,OAjDP,EAiDO,CA3CG,EAAA,OAAa,MAAQ,EAAO,KAAO,EAAA,MAAY,YAAS,QAAA,EAAA,EAAA,UAAA,CAAA,GAAA,EAAA,EAAA,mBAAA,CAY1D,MAbN,EAaM,CAAA,GAAA,AAAA,EAAA,KAAA,EAAA,EAAA,EAAA,mBAAA,CADuB,OAAA,CAArB,EAAE,gBAAgB,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA,GAGb,EAAA,OAAa,MAAQ,EAAO,KAAO,EAAA,MAAY,YAAS,SAAA,EAAA,EAAA,UAAA,CAAA,GAAA,EAAA,EAAA,mBAAA,CAY/D,MAbN,EAaM,CAAA,GAAA,AAAA,EAAA,KAAA,EAAA,EAAA,EAAA,mBAAA,CADqB,OAAA,CAAnB,EAAE,cAAc,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA,KAAA,EAAA,EAAA,UAAA,CAAA,GAAA,EAAA,EAAA,mBAAA,CAiBlB,MAfN,EAeM,CAAA,GAAA,AAAA,EAAA,KAAA,EAAA,EAAA,EAAA,mBAAA,CAFsB,OAAA,CAApB,EAAE,eAAe,EAAA,KAAA,EAAA,GAAA,EAAA,EAAA,mBAAA,CACE,OAAA,CAAnB,EAAE,cAAc,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,GAAA,CAAA,uCA0C5B,QAlCR,EAkCQ,CAhCE,EAAA,MAAW,SAAM,IAAA,EAAA,EAAA,UAAA,CAAA,GAAA,EAAA,EAAA,mBAAA,CAWpB,KAZL,EAYK,EAAA,EAAA,EAAA,mBAAA,CADE,KAAA,CANF,QAAS,EAAA,QAAQ,OAClB,MAAM,wDAIC,EAAA,OAAA,QAAA,CAAA,MAAA,CAAA,AAAA,EAAA,MAAA,EAAA,EAAA,gBAAA,CAFY,uBAEnB,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,IAAA,EAAA,EAAA,mBAAA,CAAA,GAAA,EAAA,IAAA,EAAA,EAAA,UAAA,CAAA,EAAA,GAAA,EAAA,EAAA,mBAAA,CAsBC,EAAA,SAAA,MAAA,EAAA,EAAA,WAAA,CAlBoB,EAAA,OAAf,EAAK,gDAkBV,KAAA,CAjBF,IAAK,EACN,MAAM,+DAeD,EAAA,SAAA,MAAA,EAAA,EAAA,WAAA,CAZc,EAAA,QAAV,+CAYJ,KAAA,CAXF,IAAK,EAAO,IACb,OAAA,EAAA,EAAA,eAAA,CAAK,CAAC,gBACE,EAAO,MAAK,kBAAqB,EAAO,QAAK,EAAA,CAAA,qBAQ9C,EAAA,OAAA,QALU,EAAO,MAAG,CACnB,MACL,MAAO,EAAI,EAAO,UAGd,EAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,gBAAA,CADF,EAAI,EAAO,MAAG,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA"}