@treeui/vue 0.8.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 (545) hide show
  1. package/README.md +1 -1
  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/TAccordion.vue_vue_type_script_setup_true_lang.cjs +2 -0
  7. package/dist/components/TAccordion.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  8. package/dist/components/TAccordion.vue_vue_type_script_setup_true_lang.js +97 -0
  9. package/dist/components/TAccordion.vue_vue_type_script_setup_true_lang.js.map +1 -0
  10. package/dist/components/TAccordionItem.cjs +2 -0
  11. package/dist/components/TAccordionItem.cjs.map +1 -0
  12. package/dist/components/TAccordionItem.js +7 -0
  13. package/dist/components/TAccordionItem.js.map +1 -0
  14. package/dist/components/TAccordionItem.vue_vue_type_script_setup_true_lang.cjs +2 -0
  15. package/dist/components/TAccordionItem.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  16. package/dist/components/TAccordionItem.vue_vue_type_script_setup_true_lang.js +83 -0
  17. package/dist/components/TAccordionItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  18. package/dist/components/TAlert.cjs +2 -0
  19. package/dist/components/TAlert.cjs.map +1 -0
  20. package/dist/components/TAlert.js +7 -0
  21. package/dist/components/TAlert.js.map +1 -0
  22. package/dist/components/TAlert.vue_vue_type_script_setup_true_lang.cjs +2 -0
  23. package/dist/components/TAlert.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  24. package/dist/components/TAlert.vue_vue_type_script_setup_true_lang.js +57 -0
  25. package/dist/components/TAlert.vue_vue_type_script_setup_true_lang.js.map +1 -0
  26. package/dist/components/TAvatar.cjs +2 -0
  27. package/dist/components/TAvatar.cjs.map +1 -0
  28. package/dist/components/TAvatar.js +7 -0
  29. package/dist/components/TAvatar.js.map +1 -0
  30. package/dist/components/TAvatar.vue_vue_type_script_setup_true_lang.cjs +2 -0
  31. package/dist/components/TAvatar.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  32. package/dist/components/TAvatar.vue_vue_type_script_setup_true_lang.js +46 -0
  33. package/dist/components/TAvatar.vue_vue_type_script_setup_true_lang.js.map +1 -0
  34. package/dist/components/TBadge.cjs +2 -0
  35. package/dist/components/TBadge.cjs.map +1 -0
  36. package/dist/components/TBadge.js +7 -0
  37. package/dist/components/TBadge.js.map +1 -0
  38. package/dist/components/TBadge.vue_vue_type_script_setup_true_lang.cjs +2 -0
  39. package/dist/components/TBadge.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  40. package/dist/components/TBadge.vue_vue_type_script_setup_true_lang.js +27 -0
  41. package/dist/components/TBadge.vue_vue_type_script_setup_true_lang.js.map +1 -0
  42. package/dist/components/TBreadcrumb.cjs +2 -0
  43. package/dist/components/TBreadcrumb.cjs.map +1 -0
  44. package/dist/components/TBreadcrumb.js +7 -0
  45. package/dist/components/TBreadcrumb.js.map +1 -0
  46. package/dist/components/TBreadcrumb.vue_vue_type_script_setup_true_lang.cjs +2 -0
  47. package/dist/components/TBreadcrumb.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  48. package/dist/components/TBreadcrumb.vue_vue_type_script_setup_true_lang.js +20 -0
  49. package/dist/components/TBreadcrumb.vue_vue_type_script_setup_true_lang.js.map +1 -0
  50. package/dist/components/TBreadcrumbItem.cjs +2 -0
  51. package/dist/components/TBreadcrumbItem.cjs.map +1 -0
  52. package/dist/components/TBreadcrumbItem.js +7 -0
  53. package/dist/components/TBreadcrumbItem.js.map +1 -0
  54. package/dist/components/TBreadcrumbItem.vue_vue_type_script_setup_true_lang.cjs +2 -0
  55. package/dist/components/TBreadcrumbItem.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  56. package/dist/components/TBreadcrumbItem.vue_vue_type_script_setup_true_lang.js +28 -0
  57. package/dist/components/TBreadcrumbItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  58. package/dist/components/TButton.cjs +2 -0
  59. package/dist/components/TButton.cjs.map +1 -0
  60. package/dist/components/TButton.js +7 -0
  61. package/dist/components/TButton.js.map +1 -0
  62. package/dist/components/TButton.vue_vue_type_script_setup_true_lang.cjs +2 -0
  63. package/dist/components/TButton.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  64. package/dist/components/TButton.vue_vue_type_script_setup_true_lang.js +91 -0
  65. package/dist/components/TButton.vue_vue_type_script_setup_true_lang.js.map +1 -0
  66. package/dist/components/TCard.cjs +2 -0
  67. package/dist/components/TCard.cjs.map +1 -0
  68. package/dist/components/TCard.js +7 -0
  69. package/dist/components/TCard.js.map +1 -0
  70. package/dist/components/TCard.vue_vue_type_script_setup_true_lang.cjs +2 -0
  71. package/dist/components/TCard.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  72. package/dist/components/TCard.vue_vue_type_script_setup_true_lang.js +42 -0
  73. package/dist/components/TCard.vue_vue_type_script_setup_true_lang.js.map +1 -0
  74. package/dist/components/TCheckbox.cjs +2 -0
  75. package/dist/components/TCheckbox.cjs.map +1 -0
  76. package/dist/components/TCheckbox.js +7 -0
  77. package/dist/components/TCheckbox.js.map +1 -0
  78. package/dist/components/TCheckbox.vue_vue_type_script_setup_true_lang.cjs +2 -0
  79. package/dist/components/TCheckbox.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  80. package/dist/components/TCheckbox.vue_vue_type_script_setup_true_lang.js +106 -0
  81. package/dist/components/TCheckbox.vue_vue_type_script_setup_true_lang.js.map +1 -0
  82. package/dist/components/TCombobox.cjs +2 -0
  83. package/dist/components/TCombobox.cjs.map +1 -0
  84. package/dist/components/TCombobox.js +7 -0
  85. package/dist/components/TCombobox.js.map +1 -0
  86. package/dist/components/TCombobox.vue_vue_type_script_setup_true_lang.cjs +2 -0
  87. package/dist/components/TCombobox.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  88. package/dist/components/TCombobox.vue_vue_type_script_setup_true_lang.js +282 -0
  89. package/dist/components/TCombobox.vue_vue_type_script_setup_true_lang.js.map +1 -0
  90. package/dist/components/TConfirmDialog.cjs +2 -0
  91. package/dist/components/TConfirmDialog.cjs.map +1 -0
  92. package/dist/components/TConfirmDialog.js +7 -0
  93. package/dist/components/TConfirmDialog.js.map +1 -0
  94. package/dist/components/TConfirmDialog.vue_vue_type_script_setup_true_lang.cjs +2 -0
  95. package/dist/components/TConfirmDialog.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  96. package/dist/components/TConfirmDialog.vue_vue_type_script_setup_true_lang.js +145 -0
  97. package/dist/components/TConfirmDialog.vue_vue_type_script_setup_true_lang.js.map +1 -0
  98. package/dist/components/TContainer.cjs +2 -0
  99. package/dist/components/TContainer.cjs.map +1 -0
  100. package/dist/components/TContainer.js +7 -0
  101. package/dist/components/TContainer.js.map +1 -0
  102. package/dist/components/TContainer.vue_vue_type_script_setup_true_lang.cjs +2 -0
  103. package/dist/components/TContainer.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  104. package/dist/components/TContainer.vue_vue_type_script_setup_true_lang.js +43 -0
  105. package/dist/components/TContainer.vue_vue_type_script_setup_true_lang.js.map +1 -0
  106. package/dist/components/TContextMenu.cjs +2 -0
  107. package/dist/components/TContextMenu.cjs.map +1 -0
  108. package/dist/components/TContextMenu.js +7 -0
  109. package/dist/components/TContextMenu.js.map +1 -0
  110. package/dist/components/TContextMenu.vue_vue_type_script_setup_true_lang.cjs +2 -0
  111. package/dist/components/TContextMenu.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  112. package/dist/components/TContextMenu.vue_vue_type_script_setup_true_lang.js +149 -0
  113. package/dist/components/TContextMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
  114. package/dist/components/TDatePicker.cjs +2 -0
  115. package/dist/components/TDatePicker.cjs.map +1 -0
  116. package/dist/components/TDatePicker.js +7 -0
  117. package/dist/components/TDatePicker.js.map +1 -0
  118. package/dist/components/TDatePicker.vue_vue_type_script_setup_true_lang.cjs +2 -0
  119. package/dist/components/TDatePicker.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  120. package/dist/components/TDatePicker.vue_vue_type_script_setup_true_lang.js +305 -0
  121. package/dist/components/TDatePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
  122. package/dist/components/TDateTimePicker.cjs +2 -0
  123. package/dist/components/TDateTimePicker.cjs.map +1 -0
  124. package/dist/components/TDateTimePicker.js +7 -0
  125. package/dist/components/TDateTimePicker.js.map +1 -0
  126. package/dist/components/TDateTimePicker.vue_vue_type_script_setup_true_lang.cjs +2 -0
  127. package/dist/components/TDateTimePicker.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  128. package/dist/components/TDateTimePicker.vue_vue_type_script_setup_true_lang.js +409 -0
  129. package/dist/components/TDateTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
  130. package/dist/components/TDivider.cjs +2 -0
  131. package/dist/components/TDivider.cjs.map +1 -0
  132. package/dist/components/TDivider.js +7 -0
  133. package/dist/components/TDivider.js.map +1 -0
  134. package/dist/components/TDivider.vue_vue_type_script_setup_true_lang.cjs +2 -0
  135. package/dist/components/TDivider.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  136. package/dist/components/TDivider.vue_vue_type_script_setup_true_lang.js +30 -0
  137. package/dist/components/TDivider.vue_vue_type_script_setup_true_lang.js.map +1 -0
  138. package/dist/components/TDrawer.cjs +2 -0
  139. package/dist/components/TDrawer.cjs.map +1 -0
  140. package/dist/components/TDrawer.js +7 -0
  141. package/dist/components/TDrawer.js.map +1 -0
  142. package/dist/components/TDrawer.vue_vue_type_script_setup_true_lang.cjs +2 -0
  143. package/dist/components/TDrawer.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  144. package/dist/components/TDrawer.vue_vue_type_script_setup_true_lang.js +168 -0
  145. package/dist/components/TDrawer.vue_vue_type_script_setup_true_lang.js.map +1 -0
  146. package/dist/components/TDropdown.cjs +2 -0
  147. package/dist/components/TDropdown.cjs.map +1 -0
  148. package/dist/components/TDropdown.js +7 -0
  149. package/dist/components/TDropdown.js.map +1 -0
  150. package/dist/components/TDropdown.vue.d.ts +3 -0
  151. package/dist/components/TDropdown.vue.d.ts.map +1 -1
  152. package/dist/components/TDropdown.vue_vue_type_script_setup_true_lang.cjs +2 -0
  153. package/dist/components/TDropdown.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  154. package/dist/components/TDropdown.vue_vue_type_script_setup_true_lang.js +176 -0
  155. package/dist/components/TDropdown.vue_vue_type_script_setup_true_lang.js.map +1 -0
  156. package/dist/components/TEmptyState.cjs +2 -0
  157. package/dist/components/TEmptyState.cjs.map +1 -0
  158. package/dist/components/TEmptyState.js +7 -0
  159. package/dist/components/TEmptyState.js.map +1 -0
  160. package/dist/components/TEmptyState.vue_vue_type_script_setup_true_lang.cjs +2 -0
  161. package/dist/components/TEmptyState.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  162. package/dist/components/TEmptyState.vue_vue_type_script_setup_true_lang.js +64 -0
  163. package/dist/components/TEmptyState.vue_vue_type_script_setup_true_lang.js.map +1 -0
  164. package/dist/components/TFileUpload.cjs +2 -0
  165. package/dist/components/TFileUpload.cjs.map +1 -0
  166. package/dist/components/TFileUpload.js +7 -0
  167. package/dist/components/TFileUpload.js.map +1 -0
  168. package/dist/components/TFileUpload.vue_vue_type_script_setup_true_lang.cjs +2 -0
  169. package/dist/components/TFileUpload.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  170. package/dist/components/TFileUpload.vue_vue_type_script_setup_true_lang.js +284 -0
  171. package/dist/components/TFileUpload.vue_vue_type_script_setup_true_lang.js.map +1 -0
  172. package/dist/components/TFormField.cjs +2 -0
  173. package/dist/components/TFormField.cjs.map +1 -0
  174. package/dist/components/TFormField.js +7 -0
  175. package/dist/components/TFormField.js.map +1 -0
  176. package/dist/components/TFormField.vue_vue_type_script_setup_true_lang.cjs +2 -0
  177. package/dist/components/TFormField.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  178. package/dist/components/TFormField.vue_vue_type_script_setup_true_lang.js +63 -0
  179. package/dist/components/TFormField.vue_vue_type_script_setup_true_lang.js.map +1 -0
  180. package/dist/components/TGrid.cjs +2 -0
  181. package/dist/components/TGrid.cjs.map +1 -0
  182. package/dist/components/TGrid.js +7 -0
  183. package/dist/components/TGrid.js.map +1 -0
  184. package/dist/components/TGrid.vue.d.ts +1 -1
  185. package/dist/components/TGrid.vue.d.ts.map +1 -1
  186. package/dist/components/TGrid.vue_vue_type_script_setup_true_lang.cjs +2 -0
  187. package/dist/components/TGrid.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  188. package/dist/components/TGrid.vue_vue_type_script_setup_true_lang.js +47 -0
  189. package/dist/components/TGrid.vue_vue_type_script_setup_true_lang.js.map +1 -0
  190. package/dist/components/TIcon.cjs +2 -0
  191. package/dist/components/TIcon.cjs.map +1 -0
  192. package/dist/components/TIcon.js +7 -0
  193. package/dist/components/TIcon.js.map +1 -0
  194. package/dist/components/TIcon.vue_vue_type_script_setup_true_lang.cjs +2 -0
  195. package/dist/components/TIcon.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  196. package/dist/components/TIcon.vue_vue_type_script_setup_true_lang.js +39 -0
  197. package/dist/components/TIcon.vue_vue_type_script_setup_true_lang.js.map +1 -0
  198. package/dist/components/TInput.cjs +2 -0
  199. package/dist/components/TInput.cjs.map +1 -0
  200. package/dist/components/TInput.js +7 -0
  201. package/dist/components/TInput.js.map +1 -0
  202. package/dist/components/TInput.vue_vue_type_script_setup_true_lang.cjs +2 -0
  203. package/dist/components/TInput.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  204. package/dist/components/TInput.vue_vue_type_script_setup_true_lang.js +80 -0
  205. package/dist/components/TInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
  206. package/dist/components/TLink.cjs +2 -0
  207. package/dist/components/TLink.cjs.map +1 -0
  208. package/dist/components/TLink.js +7 -0
  209. package/dist/components/TLink.js.map +1 -0
  210. package/dist/components/TLink.vue_vue_type_script_setup_true_lang.cjs +2 -0
  211. package/dist/components/TLink.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  212. package/dist/components/TLink.vue_vue_type_script_setup_true_lang.js +47 -0
  213. package/dist/components/TLink.vue_vue_type_script_setup_true_lang.js.map +1 -0
  214. package/dist/components/TMarkdownEditor.cjs +2 -0
  215. package/dist/components/TMarkdownEditor.cjs.map +1 -0
  216. package/dist/components/TMarkdownEditor.js +7 -0
  217. package/dist/components/TMarkdownEditor.js.map +1 -0
  218. package/dist/components/TMarkdownEditor.vue_vue_type_script_setup_true_lang.cjs +12 -0
  219. package/dist/components/TMarkdownEditor.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  220. package/dist/components/TMarkdownEditor.vue_vue_type_script_setup_true_lang.js +315 -0
  221. package/dist/components/TMarkdownEditor.vue_vue_type_script_setup_true_lang.js.map +1 -0
  222. package/dist/components/TModal.cjs +2 -0
  223. package/dist/components/TModal.cjs.map +1 -0
  224. package/dist/components/TModal.js +7 -0
  225. package/dist/components/TModal.js.map +1 -0
  226. package/dist/components/TModal.vue_vue_type_script_setup_true_lang.cjs +2 -0
  227. package/dist/components/TModal.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  228. package/dist/components/TModal.vue_vue_type_script_setup_true_lang.js +163 -0
  229. package/dist/components/TModal.vue_vue_type_script_setup_true_lang.js.map +1 -0
  230. package/dist/components/TMultiSelect.cjs +2 -0
  231. package/dist/components/TMultiSelect.cjs.map +1 -0
  232. package/dist/components/TMultiSelect.js +7 -0
  233. package/dist/components/TMultiSelect.js.map +1 -0
  234. package/dist/components/TMultiSelect.vue_vue_type_script_setup_true_lang.cjs +2 -0
  235. package/dist/components/TMultiSelect.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  236. package/dist/components/TMultiSelect.vue_vue_type_script_setup_true_lang.js +282 -0
  237. package/dist/components/TMultiSelect.vue_vue_type_script_setup_true_lang.js.map +1 -0
  238. package/dist/components/TNavMenu.cjs +2 -0
  239. package/dist/components/TNavMenu.cjs.map +1 -0
  240. package/dist/components/TNavMenu.js +7 -0
  241. package/dist/components/TNavMenu.js.map +1 -0
  242. package/dist/components/TNavMenu.vue_vue_type_script_setup_true_lang.cjs +2 -0
  243. package/dist/components/TNavMenu.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  244. package/dist/components/TNavMenu.vue_vue_type_script_setup_true_lang.js +151 -0
  245. package/dist/components/TNavMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
  246. package/dist/components/TNavbar.cjs +2 -0
  247. package/dist/components/TNavbar.cjs.map +1 -0
  248. package/dist/components/TNavbar.js +7 -0
  249. package/dist/components/TNavbar.js.map +1 -0
  250. package/dist/components/TNavbar.vue_vue_type_script_setup_true_lang.cjs +2 -0
  251. package/dist/components/TNavbar.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  252. package/dist/components/TNavbar.vue_vue_type_script_setup_true_lang.js +61 -0
  253. package/dist/components/TNavbar.vue_vue_type_script_setup_true_lang.js.map +1 -0
  254. package/dist/components/TNumberInput.cjs +2 -0
  255. package/dist/components/TNumberInput.cjs.map +1 -0
  256. package/dist/components/TNumberInput.js +7 -0
  257. package/dist/components/TNumberInput.js.map +1 -0
  258. package/dist/components/TNumberInput.vue_vue_type_script_setup_true_lang.cjs +2 -0
  259. package/dist/components/TNumberInput.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  260. package/dist/components/TNumberInput.vue_vue_type_script_setup_true_lang.js +145 -0
  261. package/dist/components/TNumberInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
  262. package/dist/components/TPagination.cjs +2 -0
  263. package/dist/components/TPagination.cjs.map +1 -0
  264. package/dist/components/TPagination.js +7 -0
  265. package/dist/components/TPagination.js.map +1 -0
  266. package/dist/components/TPagination.vue_vue_type_script_setup_true_lang.cjs +2 -0
  267. package/dist/components/TPagination.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  268. package/dist/components/TPagination.vue_vue_type_script_setup_true_lang.js +105 -0
  269. package/dist/components/TPagination.vue_vue_type_script_setup_true_lang.js.map +1 -0
  270. package/dist/components/TPopover.cjs +2 -0
  271. package/dist/components/TPopover.cjs.map +1 -0
  272. package/dist/components/TPopover.js +7 -0
  273. package/dist/components/TPopover.js.map +1 -0
  274. package/dist/components/TPopover.vue_vue_type_script_setup_true_lang.cjs +2 -0
  275. package/dist/components/TPopover.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  276. package/dist/components/TPopover.vue_vue_type_script_setup_true_lang.js +106 -0
  277. package/dist/components/TPopover.vue_vue_type_script_setup_true_lang.js.map +1 -0
  278. package/dist/components/TPricing.cjs +2 -0
  279. package/dist/components/TPricing.cjs.map +1 -0
  280. package/dist/components/TPricing.js +7 -0
  281. package/dist/components/TPricing.js.map +1 -0
  282. package/dist/components/TPricing.vue_vue_type_script_setup_true_lang.cjs +2 -0
  283. package/dist/components/TPricing.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  284. package/dist/components/TPricing.vue_vue_type_script_setup_true_lang.js +33 -0
  285. package/dist/components/TPricing.vue_vue_type_script_setup_true_lang.js.map +1 -0
  286. package/dist/components/TPricingCard.cjs +2 -0
  287. package/dist/components/TPricingCard.cjs.map +1 -0
  288. package/dist/components/TPricingCard.js +7 -0
  289. package/dist/components/TPricingCard.js.map +1 -0
  290. package/dist/components/TPricingCard.vue_vue_type_script_setup_true_lang.cjs +2 -0
  291. package/dist/components/TPricingCard.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  292. package/dist/components/TPricingCard.vue_vue_type_script_setup_true_lang.js +93 -0
  293. package/dist/components/TPricingCard.vue_vue_type_script_setup_true_lang.js.map +1 -0
  294. package/dist/components/TProgress.cjs +2 -0
  295. package/dist/components/TProgress.cjs.map +1 -0
  296. package/dist/components/TProgress.js +7 -0
  297. package/dist/components/TProgress.js.map +1 -0
  298. package/dist/components/TProgress.vue_vue_type_script_setup_true_lang.cjs +2 -0
  299. package/dist/components/TProgress.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  300. package/dist/components/TProgress.vue_vue_type_script_setup_true_lang.js +33 -0
  301. package/dist/components/TProgress.vue_vue_type_script_setup_true_lang.js.map +1 -0
  302. package/dist/components/TRadio.cjs +2 -0
  303. package/dist/components/TRadio.cjs.map +1 -0
  304. package/dist/components/TRadio.js +7 -0
  305. package/dist/components/TRadio.js.map +1 -0
  306. package/dist/components/TRadio.vue_vue_type_script_setup_true_lang.cjs +2 -0
  307. package/dist/components/TRadio.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  308. package/dist/components/TRadio.vue_vue_type_script_setup_true_lang.js +73 -0
  309. package/dist/components/TRadio.vue_vue_type_script_setup_true_lang.js.map +1 -0
  310. package/dist/components/TRadioGroup.cjs +2 -0
  311. package/dist/components/TRadioGroup.cjs.map +1 -0
  312. package/dist/components/TRadioGroup.js +7 -0
  313. package/dist/components/TRadioGroup.js.map +1 -0
  314. package/dist/components/TRadioGroup.vue_vue_type_script_setup_true_lang.cjs +2 -0
  315. package/dist/components/TRadioGroup.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  316. package/dist/components/TRadioGroup.vue_vue_type_script_setup_true_lang.js +46 -0
  317. package/dist/components/TRadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
  318. package/dist/components/TSelect.cjs +2 -0
  319. package/dist/components/TSelect.cjs.map +1 -0
  320. package/dist/components/TSelect.js +7 -0
  321. package/dist/components/TSelect.js.map +1 -0
  322. package/dist/components/TSelect.vue.d.ts +2 -0
  323. package/dist/components/TSelect.vue.d.ts.map +1 -1
  324. package/dist/components/TSelect.vue_vue_type_script_setup_true_lang.cjs +2 -0
  325. package/dist/components/TSelect.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  326. package/dist/components/TSelect.vue_vue_type_script_setup_true_lang.js +238 -0
  327. package/dist/components/TSelect.vue_vue_type_script_setup_true_lang.js.map +1 -0
  328. package/dist/components/TSelectableList.cjs +2 -0
  329. package/dist/components/TSelectableList.cjs.map +1 -0
  330. package/dist/components/TSelectableList.js +7 -0
  331. package/dist/components/TSelectableList.js.map +1 -0
  332. package/dist/components/TSelectableList.vue_vue_type_script_setup_true_lang.cjs +2 -0
  333. package/dist/components/TSelectableList.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  334. package/dist/components/TSelectableList.vue_vue_type_script_setup_true_lang.js +133 -0
  335. package/dist/components/TSelectableList.vue_vue_type_script_setup_true_lang.js.map +1 -0
  336. package/dist/components/TSidebar.cjs +2 -0
  337. package/dist/components/TSidebar.cjs.map +1 -0
  338. package/dist/components/TSidebar.js +7 -0
  339. package/dist/components/TSidebar.js.map +1 -0
  340. package/dist/components/TSidebar.vue_vue_type_script_setup_true_lang.cjs +2 -0
  341. package/dist/components/TSidebar.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  342. package/dist/components/TSidebar.vue_vue_type_script_setup_true_lang.js +98 -0
  343. package/dist/components/TSidebar.vue_vue_type_script_setup_true_lang.js.map +1 -0
  344. package/dist/components/TSkeleton.cjs +2 -0
  345. package/dist/components/TSkeleton.cjs.map +1 -0
  346. package/dist/components/TSkeleton.js +7 -0
  347. package/dist/components/TSkeleton.js.map +1 -0
  348. package/dist/components/TSkeleton.vue_vue_type_script_setup_true_lang.cjs +2 -0
  349. package/dist/components/TSkeleton.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  350. package/dist/components/TSkeleton.vue_vue_type_script_setup_true_lang.js +25 -0
  351. package/dist/components/TSkeleton.vue_vue_type_script_setup_true_lang.js.map +1 -0
  352. package/dist/components/TSpinner.cjs +2 -0
  353. package/dist/components/TSpinner.cjs.map +1 -0
  354. package/dist/components/TSpinner.js +7 -0
  355. package/dist/components/TSpinner.js.map +1 -0
  356. package/dist/components/TSpinner.vue_vue_type_script_setup_true_lang.cjs +2 -0
  357. package/dist/components/TSpinner.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  358. package/dist/components/TSpinner.vue_vue_type_script_setup_true_lang.js +24 -0
  359. package/dist/components/TSpinner.vue_vue_type_script_setup_true_lang.js.map +1 -0
  360. package/dist/components/TStack.cjs +2 -0
  361. package/dist/components/TStack.cjs.map +1 -0
  362. package/dist/components/TStack.js +7 -0
  363. package/dist/components/TStack.js.map +1 -0
  364. package/dist/components/TStack.vue.d.ts +1 -1
  365. package/dist/components/TStack.vue.d.ts.map +1 -1
  366. package/dist/components/TStack.vue_vue_type_script_setup_true_lang.cjs +2 -0
  367. package/dist/components/TStack.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  368. package/dist/components/TStack.vue_vue_type_script_setup_true_lang.js +50 -0
  369. package/dist/components/TStack.vue_vue_type_script_setup_true_lang.js.map +1 -0
  370. package/dist/components/TStat.cjs +2 -0
  371. package/dist/components/TStat.cjs.map +1 -0
  372. package/dist/components/TStat.js +7 -0
  373. package/dist/components/TStat.js.map +1 -0
  374. package/dist/components/TStat.vue_vue_type_script_setup_true_lang.cjs +2 -0
  375. package/dist/components/TStat.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  376. package/dist/components/TStat.vue_vue_type_script_setup_true_lang.js +72 -0
  377. package/dist/components/TStat.vue_vue_type_script_setup_true_lang.js.map +1 -0
  378. package/dist/components/TSteps.cjs +2 -0
  379. package/dist/components/TSteps.cjs.map +1 -0
  380. package/dist/components/TSteps.js +7 -0
  381. package/dist/components/TSteps.js.map +1 -0
  382. package/dist/components/TSteps.vue_vue_type_script_setup_true_lang.cjs +2 -0
  383. package/dist/components/TSteps.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  384. package/dist/components/TSteps.vue_vue_type_script_setup_true_lang.js +83 -0
  385. package/dist/components/TSteps.vue_vue_type_script_setup_true_lang.js.map +1 -0
  386. package/dist/components/TSwitch.cjs +2 -0
  387. package/dist/components/TSwitch.cjs.map +1 -0
  388. package/dist/components/TSwitch.js +7 -0
  389. package/dist/components/TSwitch.js.map +1 -0
  390. package/dist/components/TSwitch.vue_vue_type_script_setup_true_lang.cjs +2 -0
  391. package/dist/components/TSwitch.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  392. package/dist/components/TSwitch.vue_vue_type_script_setup_true_lang.js +71 -0
  393. package/dist/components/TSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -0
  394. package/dist/components/TTab.cjs +2 -0
  395. package/dist/components/TTab.cjs.map +1 -0
  396. package/dist/components/TTab.js +7 -0
  397. package/dist/components/TTab.js.map +1 -0
  398. package/dist/components/TTab.vue_vue_type_script_setup_true_lang.cjs +2 -0
  399. package/dist/components/TTab.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  400. package/dist/components/TTab.vue_vue_type_script_setup_true_lang.js +55 -0
  401. package/dist/components/TTab.vue_vue_type_script_setup_true_lang.js.map +1 -0
  402. package/dist/components/TTabList.cjs +2 -0
  403. package/dist/components/TTabList.cjs.map +1 -0
  404. package/dist/components/TTabList.js +7 -0
  405. package/dist/components/TTabList.js.map +1 -0
  406. package/dist/components/TTabList.vue_vue_type_script_setup_true_lang.cjs +2 -0
  407. package/dist/components/TTabList.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  408. package/dist/components/TTabList.vue_vue_type_script_setup_true_lang.js +73 -0
  409. package/dist/components/TTabList.vue_vue_type_script_setup_true_lang.js.map +1 -0
  410. package/dist/components/TTabPanel.cjs +2 -0
  411. package/dist/components/TTabPanel.cjs.map +1 -0
  412. package/dist/components/TTabPanel.js +7 -0
  413. package/dist/components/TTabPanel.js.map +1 -0
  414. package/dist/components/TTabPanel.vue_vue_type_script_setup_true_lang.cjs +2 -0
  415. package/dist/components/TTabPanel.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  416. package/dist/components/TTabPanel.vue_vue_type_script_setup_true_lang.js +24 -0
  417. package/dist/components/TTabPanel.vue_vue_type_script_setup_true_lang.js.map +1 -0
  418. package/dist/components/TTable.cjs +2 -0
  419. package/dist/components/TTable.cjs.map +1 -0
  420. package/dist/components/TTable.js +7 -0
  421. package/dist/components/TTable.js.map +1 -0
  422. package/dist/components/TTable.vue_vue_type_script_setup_true_lang.cjs +2 -0
  423. package/dist/components/TTable.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  424. package/dist/components/TTable.vue_vue_type_script_setup_true_lang.js +118 -0
  425. package/dist/components/TTable.vue_vue_type_script_setup_true_lang.js.map +1 -0
  426. package/dist/components/TTabs.cjs +2 -0
  427. package/dist/components/TTabs.cjs.map +1 -0
  428. package/dist/components/TTabs.js +7 -0
  429. package/dist/components/TTabs.js.map +1 -0
  430. package/dist/components/TTabs.vue_vue_type_script_setup_true_lang.cjs +2 -0
  431. package/dist/components/TTabs.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  432. package/dist/components/TTabs.vue_vue_type_script_setup_true_lang.js +51 -0
  433. package/dist/components/TTabs.vue_vue_type_script_setup_true_lang.js.map +1 -0
  434. package/dist/components/TTag.cjs +2 -0
  435. package/dist/components/TTag.cjs.map +1 -0
  436. package/dist/components/TTag.js +7 -0
  437. package/dist/components/TTag.js.map +1 -0
  438. package/dist/components/TTag.vue_vue_type_script_setup_true_lang.cjs +2 -0
  439. package/dist/components/TTag.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  440. package/dist/components/TTag.vue_vue_type_script_setup_true_lang.js +60 -0
  441. package/dist/components/TTag.vue_vue_type_script_setup_true_lang.js.map +1 -0
  442. package/dist/components/TTextarea.cjs +2 -0
  443. package/dist/components/TTextarea.cjs.map +1 -0
  444. package/dist/components/TTextarea.js +7 -0
  445. package/dist/components/TTextarea.js.map +1 -0
  446. package/dist/components/TTextarea.vue_vue_type_script_setup_true_lang.cjs +2 -0
  447. package/dist/components/TTextarea.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  448. package/dist/components/TTextarea.vue_vue_type_script_setup_true_lang.js +81 -0
  449. package/dist/components/TTextarea.vue_vue_type_script_setup_true_lang.js.map +1 -0
  450. package/dist/components/TTimeline.cjs +2 -0
  451. package/dist/components/TTimeline.cjs.map +1 -0
  452. package/dist/components/TTimeline.js +7 -0
  453. package/dist/components/TTimeline.js.map +1 -0
  454. package/dist/components/TTimeline.vue_vue_type_script_setup_true_lang.cjs +2 -0
  455. package/dist/components/TTimeline.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  456. package/dist/components/TTimeline.vue_vue_type_script_setup_true_lang.js +58 -0
  457. package/dist/components/TTimeline.vue_vue_type_script_setup_true_lang.js.map +1 -0
  458. package/dist/components/TToast.cjs +2 -0
  459. package/dist/components/TToast.cjs.map +1 -0
  460. package/dist/components/TToast.js +7 -0
  461. package/dist/components/TToast.js.map +1 -0
  462. package/dist/components/TToast.vue_vue_type_script_setup_true_lang.cjs +2 -0
  463. package/dist/components/TToast.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  464. package/dist/components/TToast.vue_vue_type_script_setup_true_lang.js +50 -0
  465. package/dist/components/TToast.vue_vue_type_script_setup_true_lang.js.map +1 -0
  466. package/dist/components/TToastProvider.cjs +2 -0
  467. package/dist/components/TToastProvider.cjs.map +1 -0
  468. package/dist/components/TToastProvider.js +7 -0
  469. package/dist/components/TToastProvider.js.map +1 -0
  470. package/dist/components/TToastProvider.vue_vue_type_script_setup_true_lang.cjs +2 -0
  471. package/dist/components/TToastProvider.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  472. package/dist/components/TToastProvider.vue_vue_type_script_setup_true_lang.js +33 -0
  473. package/dist/components/TToastProvider.vue_vue_type_script_setup_true_lang.js.map +1 -0
  474. package/dist/components/TToggleGroup.cjs +2 -0
  475. package/dist/components/TToggleGroup.cjs.map +1 -0
  476. package/dist/components/TToggleGroup.js +7 -0
  477. package/dist/components/TToggleGroup.js.map +1 -0
  478. package/dist/components/TToggleGroup.vue_vue_type_script_setup_true_lang.cjs +2 -0
  479. package/dist/components/TToggleGroup.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  480. package/dist/components/TToggleGroup.vue_vue_type_script_setup_true_lang.js +119 -0
  481. package/dist/components/TToggleGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
  482. package/dist/components/TTooltip.cjs +2 -0
  483. package/dist/components/TTooltip.cjs.map +1 -0
  484. package/dist/components/TTooltip.js +7 -0
  485. package/dist/components/TTooltip.js.map +1 -0
  486. package/dist/components/TTooltip.vue_vue_type_script_setup_true_lang.cjs +2 -0
  487. package/dist/components/TTooltip.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  488. package/dist/components/TTooltip.vue_vue_type_script_setup_true_lang.js +75 -0
  489. package/dist/components/TTooltip.vue_vue_type_script_setup_true_lang.js.map +1 -0
  490. package/dist/components/TTreeView.cjs +2 -0
  491. package/dist/components/TTreeView.cjs.map +1 -0
  492. package/dist/components/TTreeView.js +7 -0
  493. package/dist/components/TTreeView.js.map +1 -0
  494. package/dist/components/TTreeView.vue_vue_type_script_setup_true_lang.cjs +2 -0
  495. package/dist/components/TTreeView.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  496. package/dist/components/TTreeView.vue_vue_type_script_setup_true_lang.js +161 -0
  497. package/dist/components/TTreeView.vue_vue_type_script_setup_true_lang.js.map +1 -0
  498. package/dist/components/TTreeViewItem.cjs +2 -0
  499. package/dist/components/TTreeViewItem.cjs.map +1 -0
  500. package/dist/components/TTreeViewItem.js +7 -0
  501. package/dist/components/TTreeViewItem.js.map +1 -0
  502. package/dist/components/TTreeViewItem.vue_vue_type_script_setup_true_lang.cjs +2 -0
  503. package/dist/components/TTreeViewItem.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  504. package/dist/components/TTreeViewItem.vue_vue_type_script_setup_true_lang.js +101 -0
  505. package/dist/components/TTreeViewItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  506. package/dist/components/accordion.cjs +2 -0
  507. package/dist/components/accordion.cjs.map +1 -0
  508. package/dist/components/accordion.js +6 -0
  509. package/dist/components/accordion.js.map +1 -0
  510. package/dist/components/index.d.ts +1 -0
  511. package/dist/components/index.d.ts.map +1 -1
  512. package/dist/components/sidebar.cjs +2 -0
  513. package/dist/components/sidebar.cjs.map +1 -0
  514. package/dist/components/sidebar.js +6 -0
  515. package/dist/components/sidebar.js.map +1 -0
  516. package/dist/components/tabs-context.cjs +2 -0
  517. package/dist/components/tabs-context.cjs.map +1 -0
  518. package/dist/components/tabs-context.js +6 -0
  519. package/dist/components/tabs-context.js.map +1 -0
  520. package/dist/components/tree-view.cjs +2 -0
  521. package/dist/components/tree-view.cjs.map +1 -0
  522. package/dist/components/tree-view.js +6 -0
  523. package/dist/components/tree-view.js.map +1 -0
  524. package/dist/composables/useControllableOpen.cjs +2 -0
  525. package/dist/composables/useControllableOpen.cjs.map +1 -0
  526. package/dist/composables/useControllableOpen.js +15 -0
  527. package/dist/composables/useControllableOpen.js.map +1 -0
  528. package/dist/composables/useToast.cjs +2 -0
  529. package/dist/composables/useToast.cjs.map +1 -0
  530. package/dist/composables/useToast.js +41 -0
  531. package/dist/composables/useToast.js.map +1 -0
  532. package/dist/index.cjs +1 -12
  533. package/dist/index.js +66 -5992
  534. package/dist/plugin.cjs +2 -0
  535. package/dist/plugin.cjs.map +1 -0
  536. package/dist/plugin.js +135 -0
  537. package/dist/plugin.js.map +1 -0
  538. package/dist/style.css +1 -1
  539. package/dist/types/contracts.cjs +2 -0
  540. package/dist/types/contracts.cjs.map +1 -0
  541. package/dist/types/contracts.js +31 -0
  542. package/dist/types/contracts.js.map +1 -0
  543. package/package.json +2 -2
  544. package/dist/index.cjs.map +0 -1
  545. package/dist/index.js.map +0 -1
@@ -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":""}
@@ -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":""}
@@ -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":""}
@@ -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":"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"}
@@ -0,0 +1,118 @@
1
+ import { Fragment as e, computed as t, createCommentVNode as n, createElementBlock as r, createElementVNode as i, createTextVNode as a, defineComponent as o, normalizeClass as s, normalizeStyle as c, openBlock as l, ref as u, renderList as d, renderSlot as f, toDisplayString as p } from "vue";
2
+ //#region src/components/TTable.vue?vue&type=script&setup=true&lang.ts
3
+ var m = { class: "t-table-wrapper" }, h = { class: "t-table__head" }, g = { class: "t-table__row" }, _ = [
4
+ "aria-sort",
5
+ "tabindex",
6
+ "onClick",
7
+ "onKeydown"
8
+ ], v = { class: "t-table__header-content" }, y = {
9
+ key: 0,
10
+ class: "t-table__sort-icon",
11
+ "aria-hidden": "true"
12
+ }, b = {
13
+ key: 0,
14
+ xmlns: "http://www.w3.org/2000/svg",
15
+ width: "14",
16
+ height: "14",
17
+ viewBox: "0 0 24 24",
18
+ fill: "none",
19
+ stroke: "currentColor",
20
+ "stroke-width": "2",
21
+ "stroke-linecap": "round",
22
+ "stroke-linejoin": "round"
23
+ }, x = {
24
+ key: 1,
25
+ xmlns: "http://www.w3.org/2000/svg",
26
+ width: "14",
27
+ height: "14",
28
+ viewBox: "0 0 24 24",
29
+ fill: "none",
30
+ stroke: "currentColor",
31
+ "stroke-width": "2",
32
+ "stroke-linecap": "round",
33
+ "stroke-linejoin": "round"
34
+ }, S = {
35
+ key: 2,
36
+ xmlns: "http://www.w3.org/2000/svg",
37
+ width: "14",
38
+ height: "14",
39
+ viewBox: "0 0 24 24",
40
+ fill: "none",
41
+ stroke: "currentColor",
42
+ "stroke-width": "2",
43
+ "stroke-linecap": "round",
44
+ "stroke-linejoin": "round",
45
+ style: { opacity: "0.4" }
46
+ }, C = { class: "t-table__body" }, w = {
47
+ key: 0,
48
+ class: "t-table__row t-table__row--empty"
49
+ }, T = ["colspan"], E = /*@__PURE__*/ o({
50
+ __name: "TTable",
51
+ props: {
52
+ columns: {},
53
+ rows: {},
54
+ size: { default: "md" },
55
+ sortBy: { default: void 0 }
56
+ },
57
+ emits: ["sort"],
58
+ setup(o, { emit: E }) {
59
+ let D = o, O = E, k = u(void 0), A = t(() => D.sortBy ?? k.value), j = t(() => ["t-table", `t-table--${D.size}`]), M = t(() => {
60
+ let e = A.value;
61
+ return !e || e.direction === "none" ? D.rows : [...D.rows].sort((t, n) => {
62
+ let r = t[e.key], i = n[e.key];
63
+ if (r == null && i == null) return 0;
64
+ if (r == null) return 1;
65
+ if (i == null) return -1;
66
+ let a = typeof r == "number" && typeof i == "number" ? r - i : String(r).localeCompare(String(i));
67
+ return e.direction === "desc" ? -a : a;
68
+ });
69
+ });
70
+ function N(e) {
71
+ if (!e.sortable) return;
72
+ let t = A.value, n = "asc";
73
+ t?.key === e.key && (n = t.direction === "asc" ? "desc" : t.direction === "desc" ? "none" : "asc");
74
+ let r = {
75
+ key: e.key,
76
+ direction: n
77
+ };
78
+ k.value = r, O("sort", r);
79
+ }
80
+ function P(e) {
81
+ if (!e.sortable) return;
82
+ let t = A.value;
83
+ return t?.key !== e.key || t.direction === "none" ? "none" : t.direction === "asc" ? "ascending" : "descending";
84
+ }
85
+ function F(e, t) {
86
+ t.sortable && (e.key === "Enter" || e.key === " ") && (e.preventDefault(), N(t));
87
+ }
88
+ return (t, u) => (l(), r("div", m, [i("table", {
89
+ class: s(j.value),
90
+ role: "grid"
91
+ }, [i("thead", h, [i("tr", g, [(l(!0), r(e, null, d(o.columns, (e) => (l(), r("th", {
92
+ key: e.key,
93
+ class: s(["t-table__header", [e.sortable ? "t-table__header--sortable" : "", e.align ? `t-table__header--${e.align}` : ""]]),
94
+ style: c(e.width ? { width: e.width } : void 0),
95
+ "aria-sort": P(e),
96
+ tabindex: e.sortable ? 0 : void 0,
97
+ scope: "col",
98
+ onClick: (t) => N(e),
99
+ onKeydown: (t) => F(t, e)
100
+ }, [f(t.$slots, `header-${e.key}`, { column: e }, () => [i("span", v, [a(p(e.label) + " ", 1), e.sortable ? (l(), r("span", y, [A.value?.key === e.key && A.value.direction === "asc" ? (l(), r("svg", b, [...u[0] ||= [i("path", { d: "m18 15-6-6-6 6" }, null, -1)]])) : A.value?.key === e.key && A.value.direction === "desc" ? (l(), r("svg", x, [...u[1] ||= [i("path", { d: "m6 9 6 6 6-6" }, null, -1)]])) : (l(), r("svg", S, [...u[2] ||= [i("path", { d: "m7 15 5 5 5-5" }, null, -1), i("path", { d: "m7 9 5-5 5 5" }, null, -1)]]))])) : n("", !0)])])], 46, _))), 128))])]), i("tbody", C, [M.value.length === 0 ? (l(), r("tr", w, [i("td", {
101
+ colspan: o.columns.length,
102
+ class: "t-table__cell t-table__cell--empty"
103
+ }, [f(t.$slots, "empty", {}, () => [u[3] ||= a(" No data available. ", -1)])], 8, T)])) : n("", !0), (l(!0), r(e, null, d(M.value, (n, i) => (l(), r("tr", {
104
+ key: i,
105
+ class: "t-table__row"
106
+ }, [(l(!0), r(e, null, d(o.columns, (e) => (l(), r("td", {
107
+ key: e.key,
108
+ class: s(["t-table__cell", e.align ? `t-table__cell--${e.align}` : ""])
109
+ }, [f(t.$slots, `cell-${e.key}`, {
110
+ row: n,
111
+ value: n[e.key]
112
+ }, () => [a(p(n[e.key] ?? ""), 1)])], 2))), 128))]))), 128))])], 2)]));
113
+ }
114
+ });
115
+ //#endregion
116
+ export { E as default };
117
+
118
+ //# sourceMappingURL=TTable.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTable.vue_vue_type_script_setup_true_lang.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":"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"}
@@ -0,0 +1,2 @@
1
+ var e=require("./TTabs.vue_vue_type_script_setup_true_lang.cjs").default;exports.default=e;
2
+ //# sourceMappingURL=TTabs.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTabs.cjs","names":[],"sources":["../../src/components/TTabs.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { createId } from '@treeui/utils';\nimport { computed, provide, reactive, ref, toRef, watch } from 'vue';\nimport type { TSize } from '../types/contracts';\nimport type { TabsActivationMode } from './tabs-context';\nimport { TABS_INJECTION_KEY } from './tabs-context';\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: string;\n defaultValue?: string;\n size?: TSize;\n activationMode?: TabsActivationMode;\n disabled?: boolean;\n }>(),\n {\n modelValue: undefined,\n defaultValue: '',\n size: 'md',\n activationMode: 'automatic',\n disabled: false,\n },\n);\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string];\n}>();\n\nconst baseId = createId('t-tabs');\nconst internalValue = ref(props.defaultValue);\nconst tabOrder = ref<string[]>([]);\nconst disabledTabs: Record<string, boolean> = reactive({});\n\nconst activeValue = computed(() => props.modelValue ?? internalValue.value);\n\nconst setActiveValue = (value: string) => {\n if (value === activeValue.value) return;\n if (props.modelValue === undefined) {\n internalValue.value = value;\n }\n emit('update:modelValue', value);\n};\n\nconst registerTab = (value: string) => {\n if (!tabOrder.value.includes(value)) {\n tabOrder.value.push(value);\n }\n};\n\nconst unregisterTab = (value: string) => {\n const idx = tabOrder.value.indexOf(value);\n if (idx >= 0) tabOrder.value.splice(idx, 1);\n delete disabledTabs[value];\n};\n\nconst getTabValues = () => tabOrder.value;\n\nconst isTabDisabled = (value: string) => props.disabled || !!disabledTabs[value];\n\nconst setTabDisabled = (value: string, disabled: boolean) => {\n if (disabled) {\n disabledTabs[value] = true;\n } else {\n delete disabledTabs[value];\n }\n};\n\nwatch(\n () => props.modelValue,\n (val) => {\n if (val !== undefined) {\n internalValue.value = val;\n }\n },\n);\n\nprovide(TABS_INJECTION_KEY, {\n activeValue,\n setActiveValue,\n size: toRef(props, 'size'),\n activationMode: toRef(props, 'activationMode'),\n disabled: toRef(props, 'disabled'),\n baseId,\n registerTab,\n unregisterTab,\n getTabValues,\n isTabDisabled,\n setTabDisabled,\n});\n\nconst rootClasses = computed(() => [\n 't-tabs',\n `t-tabs--${props.size}`,\n]);\n</script>\n\n<template>\n <div :class=\"rootClasses\">\n <slot />\n </div>\n</template>\n"],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import e from "./TTabs.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/TTabs.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
6
+
7
+ //# sourceMappingURL=TTabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTabs.js","names":[],"sources":["../../src/components/TTabs.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { createId } from '@treeui/utils';\nimport { computed, provide, reactive, ref, toRef, watch } from 'vue';\nimport type { TSize } from '../types/contracts';\nimport type { TabsActivationMode } from './tabs-context';\nimport { TABS_INJECTION_KEY } from './tabs-context';\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: string;\n defaultValue?: string;\n size?: TSize;\n activationMode?: TabsActivationMode;\n disabled?: boolean;\n }>(),\n {\n modelValue: undefined,\n defaultValue: '',\n size: 'md',\n activationMode: 'automatic',\n disabled: false,\n },\n);\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string];\n}>();\n\nconst baseId = createId('t-tabs');\nconst internalValue = ref(props.defaultValue);\nconst tabOrder = ref<string[]>([]);\nconst disabledTabs: Record<string, boolean> = reactive({});\n\nconst activeValue = computed(() => props.modelValue ?? internalValue.value);\n\nconst setActiveValue = (value: string) => {\n if (value === activeValue.value) return;\n if (props.modelValue === undefined) {\n internalValue.value = value;\n }\n emit('update:modelValue', value);\n};\n\nconst registerTab = (value: string) => {\n if (!tabOrder.value.includes(value)) {\n tabOrder.value.push(value);\n }\n};\n\nconst unregisterTab = (value: string) => {\n const idx = tabOrder.value.indexOf(value);\n if (idx >= 0) tabOrder.value.splice(idx, 1);\n delete disabledTabs[value];\n};\n\nconst getTabValues = () => tabOrder.value;\n\nconst isTabDisabled = (value: string) => props.disabled || !!disabledTabs[value];\n\nconst setTabDisabled = (value: string, disabled: boolean) => {\n if (disabled) {\n disabledTabs[value] = true;\n } else {\n delete disabledTabs[value];\n }\n};\n\nwatch(\n () => props.modelValue,\n (val) => {\n if (val !== undefined) {\n internalValue.value = val;\n }\n },\n);\n\nprovide(TABS_INJECTION_KEY, {\n activeValue,\n setActiveValue,\n size: toRef(props, 'size'),\n activationMode: toRef(props, 'activationMode'),\n disabled: toRef(props, 'disabled'),\n baseId,\n registerTab,\n unregisterTab,\n getTabValues,\n isTabDisabled,\n setTabDisabled,\n});\n\nconst rootClasses = computed(() => [\n 't-tabs',\n `t-tabs--${props.size}`,\n]);\n</script>\n\n<template>\n <div :class=\"rootClasses\">\n <slot />\n </div>\n</template>\n"],"mappings":""}
@@ -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:`TTabs`,props:{modelValue:{default:void 0},defaultValue:{default:``},size:{default:`md`},activationMode:{default:`automatic`},disabled:{type:Boolean,default:!1}},emits:[`update:modelValue`],setup(r,{emit:i}){let a=r,o=i,s=(0,n.createId)(`t-tabs`),c=(0,t.ref)(a.defaultValue),l=(0,t.ref)([]),u=(0,t.reactive)({}),d=(0,t.computed)(()=>a.modelValue??c.value);(0,t.watch)(()=>a.modelValue,e=>{e!==void 0&&(c.value=e)}),(0,t.provide)(e.TABS_INJECTION_KEY,{activeValue:d,setActiveValue:e=>{e!==d.value&&(a.modelValue===void 0&&(c.value=e),o(`update:modelValue`,e))},size:(0,t.toRef)(a,`size`),activationMode:(0,t.toRef)(a,`activationMode`),disabled:(0,t.toRef)(a,`disabled`),baseId:s,registerTab:e=>{l.value.includes(e)||l.value.push(e)},unregisterTab:e=>{let t=l.value.indexOf(e);t>=0&&l.value.splice(t,1),delete u[e]},getTabValues:()=>l.value,isTabDisabled:e=>a.disabled||!!u[e],setTabDisabled:(e,t)=>{t?u[e]=!0:delete u[e]}});let f=(0,t.computed)(()=>[`t-tabs`,`t-tabs--${a.size}`]);return(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{class:(0,t.normalizeClass)(f.value)},[(0,t.renderSlot)(e.$slots,`default`)],2))}});exports.default=r;
2
+ //# sourceMappingURL=TTabs.vue_vue_type_script_setup_true_lang.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTabs.vue_vue_type_script_setup_true_lang.cjs","names":[],"sources":["../../src/components/TTabs.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { createId } from '@treeui/utils';\nimport { computed, provide, reactive, ref, toRef, watch } from 'vue';\nimport type { TSize } from '../types/contracts';\nimport type { TabsActivationMode } from './tabs-context';\nimport { TABS_INJECTION_KEY } from './tabs-context';\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: string;\n defaultValue?: string;\n size?: TSize;\n activationMode?: TabsActivationMode;\n disabled?: boolean;\n }>(),\n {\n modelValue: undefined,\n defaultValue: '',\n size: 'md',\n activationMode: 'automatic',\n disabled: false,\n },\n);\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string];\n}>();\n\nconst baseId = createId('t-tabs');\nconst internalValue = ref(props.defaultValue);\nconst tabOrder = ref<string[]>([]);\nconst disabledTabs: Record<string, boolean> = reactive({});\n\nconst activeValue = computed(() => props.modelValue ?? internalValue.value);\n\nconst setActiveValue = (value: string) => {\n if (value === activeValue.value) return;\n if (props.modelValue === undefined) {\n internalValue.value = value;\n }\n emit('update:modelValue', value);\n};\n\nconst registerTab = (value: string) => {\n if (!tabOrder.value.includes(value)) {\n tabOrder.value.push(value);\n }\n};\n\nconst unregisterTab = (value: string) => {\n const idx = tabOrder.value.indexOf(value);\n if (idx >= 0) tabOrder.value.splice(idx, 1);\n delete disabledTabs[value];\n};\n\nconst getTabValues = () => tabOrder.value;\n\nconst isTabDisabled = (value: string) => props.disabled || !!disabledTabs[value];\n\nconst setTabDisabled = (value: string, disabled: boolean) => {\n if (disabled) {\n disabledTabs[value] = true;\n } else {\n delete disabledTabs[value];\n }\n};\n\nwatch(\n () => props.modelValue,\n (val) => {\n if (val !== undefined) {\n internalValue.value = val;\n }\n },\n);\n\nprovide(TABS_INJECTION_KEY, {\n activeValue,\n setActiveValue,\n size: toRef(props, 'size'),\n activationMode: toRef(props, 'activationMode'),\n disabled: toRef(props, 'disabled'),\n baseId,\n registerTab,\n unregisterTab,\n getTabValues,\n isTabDisabled,\n setTabDisabled,\n});\n\nconst rootClasses = computed(() => [\n 't-tabs',\n `t-tabs--${props.size}`,\n]);\n</script>\n\n<template>\n <div :class=\"rootClasses\">\n <slot />\n </div>\n</template>\n"],"mappings":"0UAOA,IAAM,EAAQ,EAiBR,EAAO,EAIP,GAAA,EAAA,EAAA,SAAA,CAAkB,QAAQ,EAC1B,GAAA,EAAA,EAAA,IAAA,CAAoB,EAAM,YAAY,EACtC,GAAA,EAAA,EAAA,IAAA,CAAyB,CAAC,CAAC,EAC3B,GAAA,EAAA,EAAA,SAAA,CAAiD,CAAC,CAAC,EAEnD,GAAA,EAAA,EAAA,SAAA,KAA6B,EAAM,YAAc,EAAc,KAAK,GAkC1E,EAAA,EAAA,MAAA,KACQ,EAAM,WACX,GAAQ,CACH,IAAQ,IAAA,KACV,EAAc,MAAQ,EAE1B,CACF,GAEA,EAAA,EAAA,QAAA,CAAQ,EAAA,mBAAoB,CAC1B,cACA,eA3CsB,GAAkB,CACpC,IAAU,EAAY,QACtB,EAAM,aAAe,IAAA,KACvB,EAAc,MAAQ,GAExB,EAAK,oBAAqB,CAAK,EACjC,EAsCE,MAAA,EAAA,EAAA,MAAA,CAAY,EAAO,MAAM,EACzB,gBAAA,EAAA,EAAA,MAAA,CAAsB,EAAO,gBAAgB,EAC7C,UAAA,EAAA,EAAA,MAAA,CAAgB,EAAO,UAAU,EACjC,SACA,YAxCmB,GAAkB,CAChC,EAAS,MAAM,SAAS,CAAK,GAChC,EAAS,MAAM,KAAK,CAAK,CAE7B,EAqCE,cAnCqB,GAAkB,CACvC,IAAM,EAAM,EAAS,MAAM,QAAQ,CAAK,EACpC,GAAO,GAAG,EAAS,MAAM,OAAO,EAAK,CAAC,EAC1C,OAAO,EAAa,EACtB,EAgCE,iBA9ByB,EAAS,MA+BlC,cA7BqB,GAAkB,EAAM,UAAY,CAAC,CAAC,EAAa,GA8BxE,gBA5BsB,EAAe,IAAsB,CACvD,EACF,EAAa,GAAS,GAEtB,OAAO,EAAa,EAExB,CAuBA,CAAC,EAED,IAAM,GAAA,EAAA,EAAA,SAAA,KAA6B,CACjC,SACA,WAAW,EAAM,MACnB,CAAC,2DAMO,MAAA,CAFA,OAAA,EAAA,EAAA,eAAA,CAAO,EAAA,KAAW,CAAA,EAAA,EAAA,EAAA,EAAA,WAAA,CACd,EAAA,OAAA,SAAA,CAAA,EAAA,CAAA"}
@@ -0,0 +1,51 @@
1
+ import { TABS_INJECTION_KEY as e } from "./tabs-context.js";
2
+ import { computed as t, createElementBlock as n, defineComponent as r, normalizeClass as i, openBlock as a, provide as o, reactive as s, ref as c, renderSlot as l, toRef as u, watch as d } from "vue";
3
+ import { createId as f } from "@treeui/utils";
4
+ //#region src/components/TTabs.vue?vue&type=script&setup=true&lang.ts
5
+ var p = /*@__PURE__*/ r({
6
+ __name: "TTabs",
7
+ props: {
8
+ modelValue: { default: void 0 },
9
+ defaultValue: { default: "" },
10
+ size: { default: "md" },
11
+ activationMode: { default: "automatic" },
12
+ disabled: {
13
+ type: Boolean,
14
+ default: !1
15
+ }
16
+ },
17
+ emits: ["update:modelValue"],
18
+ setup(r, { emit: p }) {
19
+ let m = r, h = p, g = f("t-tabs"), _ = c(m.defaultValue), v = c([]), y = s({}), b = t(() => m.modelValue ?? _.value);
20
+ d(() => m.modelValue, (e) => {
21
+ e !== void 0 && (_.value = e);
22
+ }), o(e, {
23
+ activeValue: b,
24
+ setActiveValue: (e) => {
25
+ e !== b.value && (m.modelValue === void 0 && (_.value = e), h("update:modelValue", e));
26
+ },
27
+ size: u(m, "size"),
28
+ activationMode: u(m, "activationMode"),
29
+ disabled: u(m, "disabled"),
30
+ baseId: g,
31
+ registerTab: (e) => {
32
+ v.value.includes(e) || v.value.push(e);
33
+ },
34
+ unregisterTab: (e) => {
35
+ let t = v.value.indexOf(e);
36
+ t >= 0 && v.value.splice(t, 1), delete y[e];
37
+ },
38
+ getTabValues: () => v.value,
39
+ isTabDisabled: (e) => m.disabled || !!y[e],
40
+ setTabDisabled: (e, t) => {
41
+ t ? y[e] = !0 : delete y[e];
42
+ }
43
+ });
44
+ let x = t(() => ["t-tabs", `t-tabs--${m.size}`]);
45
+ return (e, t) => (a(), n("div", { class: i(x.value) }, [l(e.$slots, "default")], 2));
46
+ }
47
+ });
48
+ //#endregion
49
+ export { p as default };
50
+
51
+ //# sourceMappingURL=TTabs.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTabs.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../src/components/TTabs.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { createId } from '@treeui/utils';\nimport { computed, provide, reactive, ref, toRef, watch } from 'vue';\nimport type { TSize } from '../types/contracts';\nimport type { TabsActivationMode } from './tabs-context';\nimport { TABS_INJECTION_KEY } from './tabs-context';\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: string;\n defaultValue?: string;\n size?: TSize;\n activationMode?: TabsActivationMode;\n disabled?: boolean;\n }>(),\n {\n modelValue: undefined,\n defaultValue: '',\n size: 'md',\n activationMode: 'automatic',\n disabled: false,\n },\n);\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string];\n}>();\n\nconst baseId = createId('t-tabs');\nconst internalValue = ref(props.defaultValue);\nconst tabOrder = ref<string[]>([]);\nconst disabledTabs: Record<string, boolean> = reactive({});\n\nconst activeValue = computed(() => props.modelValue ?? internalValue.value);\n\nconst setActiveValue = (value: string) => {\n if (value === activeValue.value) return;\n if (props.modelValue === undefined) {\n internalValue.value = value;\n }\n emit('update:modelValue', value);\n};\n\nconst registerTab = (value: string) => {\n if (!tabOrder.value.includes(value)) {\n tabOrder.value.push(value);\n }\n};\n\nconst unregisterTab = (value: string) => {\n const idx = tabOrder.value.indexOf(value);\n if (idx >= 0) tabOrder.value.splice(idx, 1);\n delete disabledTabs[value];\n};\n\nconst getTabValues = () => tabOrder.value;\n\nconst isTabDisabled = (value: string) => props.disabled || !!disabledTabs[value];\n\nconst setTabDisabled = (value: string, disabled: boolean) => {\n if (disabled) {\n disabledTabs[value] = true;\n } else {\n delete disabledTabs[value];\n }\n};\n\nwatch(\n () => props.modelValue,\n (val) => {\n if (val !== undefined) {\n internalValue.value = val;\n }\n },\n);\n\nprovide(TABS_INJECTION_KEY, {\n activeValue,\n setActiveValue,\n size: toRef(props, 'size'),\n activationMode: toRef(props, 'activationMode'),\n disabled: toRef(props, 'disabled'),\n baseId,\n registerTab,\n unregisterTab,\n getTabValues,\n isTabDisabled,\n setTabDisabled,\n});\n\nconst rootClasses = computed(() => [\n 't-tabs',\n `t-tabs--${props.size}`,\n]);\n</script>\n\n<template>\n <div :class=\"rootClasses\">\n <slot />\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;EAOA,IAAM,IAAQ,GAiBR,IAAO,GAIP,IAAS,EAAS,QAAQ,GAC1B,IAAgB,EAAI,EAAM,YAAY,GACtC,IAAW,EAAc,CAAC,CAAC,GAC3B,IAAwC,EAAS,CAAC,CAAC,GAEnD,IAAc,QAAe,EAAM,cAAc,EAAc,KAAK;EA2C1E,AATA,QACQ,EAAM,aACX,MAAQ;GACP,AAAI,MAAQ,KAAA,MACV,EAAc,QAAQ;EAE1B,CACF,GAEA,EAAQ,GAAoB;GAC1B;GACA,iBA3CsB,MAAkB;IACpC,MAAU,EAAY,UACtB,EAAM,eAAe,KAAA,MACvB,EAAc,QAAQ,IAExB,EAAK,qBAAqB,CAAK;GACjC;GAsCE,MAAM,EAAM,GAAO,MAAM;GACzB,gBAAgB,EAAM,GAAO,gBAAgB;GAC7C,UAAU,EAAM,GAAO,UAAU;GACjC;GACA,cAxCmB,MAAkB;IACrC,AAAK,EAAS,MAAM,SAAS,CAAK,KAChC,EAAS,MAAM,KAAK,CAAK;GAE7B;GAqCE,gBAnCqB,MAAkB;IACvC,IAAM,IAAM,EAAS,MAAM,QAAQ,CAAK;IAExC,AADI,KAAO,KAAG,EAAS,MAAM,OAAO,GAAK,CAAC,GAC1C,OAAO,EAAa;GACtB;GAgCE,oBA9ByB,EAAS;GA+BlC,gBA7BqB,MAAkB,EAAM,YAAY,CAAC,CAAC,EAAa;GA8BxE,iBA5BsB,GAAe,MAAsB;IAC3D,AAAI,IACF,EAAa,KAAS,KAEtB,OAAO,EAAa;GAExB;EAuBA,CAAC;EAED,IAAM,IAAc,QAAe,CACjC,UACA,WAAW,EAAM,MACnB,CAAC;yBAIC,EAEM,OAAA,EAFA,OAAK,EAAE,EAAA,KAAW,EAAA,GAAA,CACtB,EAAQ,EAAA,QAAA,SAAA,CAAA,GAAA,CAAA"}
@@ -0,0 +1,2 @@
1
+ var e=require("./TTag.vue_vue_type_script_setup_true_lang.cjs").default;exports.default=e;
2
+ //# sourceMappingURL=TTag.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTag.cjs","names":[],"sources":["../../src/components/TTag.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport type { TSize } from '../types/contracts';\n\nexport type TTagVariant = 'solid' | 'outline' | 'soft';\n\nconst props = withDefaults(\n defineProps<{\n variant?: TTagVariant;\n size?: TSize;\n removable?: boolean;\n disabled?: boolean;\n }>(),\n {\n variant: 'soft',\n size: 'md',\n removable: false,\n disabled: false,\n },\n);\n\nconst emit = defineEmits<{\n (e: 'remove'): void;\n}>();\n\nconst classes = computed(() => [\n 't-tag',\n `t-tag--${props.variant}`,\n `t-tag--${props.size}`,\n props.disabled ? 'is-disabled' : '',\n]);\n\nfunction handleRemove() {\n if (props.disabled) return;\n emit('remove');\n}\n</script>\n\n<template>\n <span :class=\"classes\">\n <span\n v-if=\"$slots.icon\"\n class=\"t-tag__icon\"\n aria-hidden=\"true\"\n >\n <slot name=\"icon\" />\n </span>\n <span class=\"t-tag__label\">\n <slot />\n </span>\n <button\n v-if=\"removable\"\n type=\"button\"\n class=\"t-tag__remove\"\n :disabled=\"disabled\"\n aria-label=\"Remove\"\n @click=\"handleRemove\"\n >\n <svg\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 aria-hidden=\"true\"\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n </button>\n </span>\n</template>\n"],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import e from "./TTag.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/TTag.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
6
+
7
+ //# sourceMappingURL=TTag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTag.js","names":[],"sources":["../../src/components/TTag.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport type { TSize } from '../types/contracts';\n\nexport type TTagVariant = 'solid' | 'outline' | 'soft';\n\nconst props = withDefaults(\n defineProps<{\n variant?: TTagVariant;\n size?: TSize;\n removable?: boolean;\n disabled?: boolean;\n }>(),\n {\n variant: 'soft',\n size: 'md',\n removable: false,\n disabled: false,\n },\n);\n\nconst emit = defineEmits<{\n (e: 'remove'): void;\n}>();\n\nconst classes = computed(() => [\n 't-tag',\n `t-tag--${props.variant}`,\n `t-tag--${props.size}`,\n props.disabled ? 'is-disabled' : '',\n]);\n\nfunction handleRemove() {\n if (props.disabled) return;\n emit('remove');\n}\n</script>\n\n<template>\n <span :class=\"classes\">\n <span\n v-if=\"$slots.icon\"\n class=\"t-tag__icon\"\n aria-hidden=\"true\"\n >\n <slot name=\"icon\" />\n </span>\n <span class=\"t-tag__label\">\n <slot />\n </span>\n <button\n v-if=\"removable\"\n type=\"button\"\n class=\"t-tag__remove\"\n :disabled=\"disabled\"\n aria-label=\"Remove\"\n @click=\"handleRemove\"\n >\n <svg\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 aria-hidden=\"true\"\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n </button>\n </span>\n</template>\n"],"mappings":""}
@@ -0,0 +1,2 @@
1
+ let e=require("vue");var t={key:0,class:`t-tag__icon`,"aria-hidden":`true`},n={class:`t-tag__label`},r=[`disabled`],i=(0,e.defineComponent)({__name:`TTag`,props:{variant:{default:`soft`},size:{default:`md`},removable:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:[`remove`],setup(i,{emit:a}){let o=i,s=a,c=(0,e.computed)(()=>[`t-tag`,`t-tag--${o.variant}`,`t-tag--${o.size}`,o.disabled?`is-disabled`:``]);function l(){o.disabled||s(`remove`)}return(a,o)=>((0,e.openBlock)(),(0,e.createElementBlock)(`span`,{class:(0,e.normalizeClass)(c.value)},[a.$slots.icon?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,t,[(0,e.renderSlot)(a.$slots,`icon`)])):(0,e.createCommentVNode)(``,!0),(0,e.createElementVNode)(`span`,n,[(0,e.renderSlot)(a.$slots,`default`)]),i.removable?((0,e.openBlock)(),(0,e.createElementBlock)(`button`,{key:1,type:`button`,class:`t-tag__remove`,disabled:i.disabled,"aria-label":`Remove`,onClick:l},[...o[0]||=[(0,e.createElementVNode)(`svg`,{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`,"aria-hidden":`true`},[(0,e.createElementVNode)(`path`,{d:`M18 6 6 18`}),(0,e.createElementVNode)(`path`,{d:`m6 6 12 12`})],-1)]],8,r)):(0,e.createCommentVNode)(``,!0)],2))}});exports.default=i;
2
+ //# sourceMappingURL=TTag.vue_vue_type_script_setup_true_lang.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TTag.vue_vue_type_script_setup_true_lang.cjs","names":["$slots"],"sources":["../../src/components/TTag.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport type { TSize } from '../types/contracts';\n\nexport type TTagVariant = 'solid' | 'outline' | 'soft';\n\nconst props = withDefaults(\n defineProps<{\n variant?: TTagVariant;\n size?: TSize;\n removable?: boolean;\n disabled?: boolean;\n }>(),\n {\n variant: 'soft',\n size: 'md',\n removable: false,\n disabled: false,\n },\n);\n\nconst emit = defineEmits<{\n (e: 'remove'): void;\n}>();\n\nconst classes = computed(() => [\n 't-tag',\n `t-tag--${props.variant}`,\n `t-tag--${props.size}`,\n props.disabled ? 'is-disabled' : '',\n]);\n\nfunction handleRemove() {\n if (props.disabled) return;\n emit('remove');\n}\n</script>\n\n<template>\n <span :class=\"classes\">\n <span\n v-if=\"$slots.icon\"\n class=\"t-tag__icon\"\n aria-hidden=\"true\"\n >\n <slot name=\"icon\" />\n </span>\n <span class=\"t-tag__label\">\n <slot />\n </span>\n <button\n v-if=\"removable\"\n type=\"button\"\n class=\"t-tag__remove\"\n :disabled=\"disabled\"\n aria-label=\"Remove\"\n @click=\"handleRemove\"\n >\n <svg\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 aria-hidden=\"true\"\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n </button>\n </span>\n</template>\n"],"mappings":"0TAMA,IAAM,EAAQ,EAeR,EAAO,EAIP,GAAA,EAAA,EAAA,SAAA,KAAyB,CAC7B,QACA,UAAU,EAAM,UAChB,UAAU,EAAM,OAChB,EAAM,SAAW,cAAgB,EACnC,CAAC,EAED,SAAS,GAAe,CAClB,EAAM,UACV,EAAK,QAAQ,CACf,0DAuCS,OAAA,CAnCA,OAAA,EAAA,EAAA,eAAA,CAAO,EAAA,KAAO,CAAA,EAAA,CAEXA,EAAAA,OAAO,OAAA,EAAA,EAAA,UAAA,CAAA,GAAA,EAAA,EAAA,mBAAA,CAKR,OANP,EAMO,EAAA,EAAA,EAAA,WAAA,CADe,EAAA,OAAA,MAAA,CAAA,CAAA,IAAA,EAAA,EAAA,mBAAA,CAAA,GAAA,EAAA,2BAIf,OAFP,EAEO,EAAA,EAAA,EAAA,WAAA,CADG,EAAA,OAAA,SAAA,CAAA,CAAA,EAGF,EAAA,YAAA,EAAA,EAAA,UAAA,CAAA,GAAA,EAAA,EAAA,mBAAA,CAsBC,SAAA,OArBP,KAAK,SACL,MAAM,gBACL,SAAU,EAAA,SACX,aAAW,SACV,QAAO,wCAgBF,MAAA,CAbJ,MAAM,6BACN,MAAM,KACN,OAAO,KACP,QAAQ,YACR,KAAK,OACL,OAAO,eACP,eAAa,IACb,iBAAe,QACf,kBAAgB,QAChB,cAAY,kCAEW,OAAA,CAAjB,EAAE,YAAY,CAAA,GAAA,EAAA,EAAA,mBAAA,CACG,OAAA,CAAjB,EAAE,YAAY,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,EAAA,EAAA,CAAA,IAAA,EAAA,EAAA,mBAAA,CAAA,GAAA,EAAA"}