@treeui/vue 0.7.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (732) hide show
  1. package/README.md +3 -8
  2. package/dist/components/TAccordion.cjs +2 -0
  3. package/dist/components/TAccordion.cjs.map +1 -0
  4. package/dist/components/TAccordion.js +7 -0
  5. package/dist/components/TAccordion.js.map +1 -0
  6. package/dist/components/{TreeAccordion.vue.d.ts → TAccordion.vue.d.ts} +1 -1
  7. package/dist/components/TAccordion.vue.d.ts.map +1 -0
  8. package/dist/components/TAccordion.vue_vue_type_script_setup_true_lang.cjs +2 -0
  9. package/dist/components/TAccordion.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  10. package/dist/components/TAccordion.vue_vue_type_script_setup_true_lang.js +97 -0
  11. package/dist/components/TAccordion.vue_vue_type_script_setup_true_lang.js.map +1 -0
  12. package/dist/components/TAccordionItem.cjs +2 -0
  13. package/dist/components/TAccordionItem.cjs.map +1 -0
  14. package/dist/components/TAccordionItem.js +7 -0
  15. package/dist/components/TAccordionItem.js.map +1 -0
  16. package/dist/components/{TreeAccordionItem.vue.d.ts → TAccordionItem.vue.d.ts} +1 -1
  17. package/dist/components/TAccordionItem.vue.d.ts.map +1 -0
  18. package/dist/components/TAccordionItem.vue_vue_type_script_setup_true_lang.cjs +2 -0
  19. package/dist/components/TAccordionItem.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  20. package/dist/components/TAccordionItem.vue_vue_type_script_setup_true_lang.js +83 -0
  21. package/dist/components/TAccordionItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  22. package/dist/components/TAlert.cjs +2 -0
  23. package/dist/components/TAlert.cjs.map +1 -0
  24. package/dist/components/TAlert.js +7 -0
  25. package/dist/components/TAlert.js.map +1 -0
  26. package/dist/components/{TreeAlert.vue.d.ts → TAlert.vue.d.ts} +7 -7
  27. package/dist/components/TAlert.vue.d.ts.map +1 -0
  28. package/dist/components/TAlert.vue_vue_type_script_setup_true_lang.cjs +2 -0
  29. package/dist/components/TAlert.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  30. package/dist/components/TAlert.vue_vue_type_script_setup_true_lang.js +57 -0
  31. package/dist/components/TAlert.vue_vue_type_script_setup_true_lang.js.map +1 -0
  32. package/dist/components/TAvatar.cjs +2 -0
  33. package/dist/components/TAvatar.cjs.map +1 -0
  34. package/dist/components/TAvatar.js +7 -0
  35. package/dist/components/TAvatar.js.map +1 -0
  36. package/dist/components/{TreeAvatar.vue.d.ts → TAvatar.vue.d.ts} +7 -7
  37. package/dist/components/TAvatar.vue.d.ts.map +1 -0
  38. package/dist/components/TAvatar.vue_vue_type_script_setup_true_lang.cjs +2 -0
  39. package/dist/components/TAvatar.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  40. package/dist/components/TAvatar.vue_vue_type_script_setup_true_lang.js +46 -0
  41. package/dist/components/TAvatar.vue_vue_type_script_setup_true_lang.js.map +1 -0
  42. package/dist/components/TBadge.cjs +2 -0
  43. package/dist/components/TBadge.cjs.map +1 -0
  44. package/dist/components/TBadge.js +7 -0
  45. package/dist/components/TBadge.js.map +1 -0
  46. package/dist/components/{TreeBadge.vue.d.ts → TBadge.vue.d.ts} +9 -9
  47. package/dist/components/TBadge.vue.d.ts.map +1 -0
  48. package/dist/components/TBadge.vue_vue_type_script_setup_true_lang.cjs +2 -0
  49. package/dist/components/TBadge.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  50. package/dist/components/TBadge.vue_vue_type_script_setup_true_lang.js +27 -0
  51. package/dist/components/TBadge.vue_vue_type_script_setup_true_lang.js.map +1 -0
  52. package/dist/components/TBreadcrumb.cjs +2 -0
  53. package/dist/components/TBreadcrumb.cjs.map +1 -0
  54. package/dist/components/TBreadcrumb.js +7 -0
  55. package/dist/components/TBreadcrumb.js.map +1 -0
  56. package/dist/components/{TreeBreadcrumb.vue.d.ts → TBreadcrumb.vue.d.ts} +1 -1
  57. package/dist/components/TBreadcrumb.vue.d.ts.map +1 -0
  58. package/dist/components/TBreadcrumb.vue_vue_type_script_setup_true_lang.cjs +2 -0
  59. package/dist/components/TBreadcrumb.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  60. package/dist/components/TBreadcrumb.vue_vue_type_script_setup_true_lang.js +20 -0
  61. package/dist/components/TBreadcrumb.vue_vue_type_script_setup_true_lang.js.map +1 -0
  62. package/dist/components/TBreadcrumbItem.cjs +2 -0
  63. package/dist/components/TBreadcrumbItem.cjs.map +1 -0
  64. package/dist/components/TBreadcrumbItem.js +7 -0
  65. package/dist/components/TBreadcrumbItem.js.map +1 -0
  66. package/dist/components/{TreeBreadcrumbItem.vue.d.ts → TBreadcrumbItem.vue.d.ts} +1 -1
  67. package/dist/components/TBreadcrumbItem.vue.d.ts.map +1 -0
  68. package/dist/components/TBreadcrumbItem.vue_vue_type_script_setup_true_lang.cjs +2 -0
  69. package/dist/components/TBreadcrumbItem.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  70. package/dist/components/TBreadcrumbItem.vue_vue_type_script_setup_true_lang.js +28 -0
  71. package/dist/components/TBreadcrumbItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  72. package/dist/components/TButton.cjs +2 -0
  73. package/dist/components/TButton.cjs.map +1 -0
  74. package/dist/components/TButton.js +7 -0
  75. package/dist/components/TButton.js.map +1 -0
  76. package/dist/components/{TreeButton.vue.d.ts → TButton.vue.d.ts} +6 -6
  77. package/dist/components/TButton.vue.d.ts.map +1 -0
  78. package/dist/components/TButton.vue_vue_type_script_setup_true_lang.cjs +2 -0
  79. package/dist/components/TButton.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  80. package/dist/components/TButton.vue_vue_type_script_setup_true_lang.js +91 -0
  81. package/dist/components/TButton.vue_vue_type_script_setup_true_lang.js.map +1 -0
  82. package/dist/components/TCard.cjs +2 -0
  83. package/dist/components/TCard.cjs.map +1 -0
  84. package/dist/components/TCard.js +7 -0
  85. package/dist/components/TCard.js.map +1 -0
  86. package/dist/components/{TreeCard.vue.d.ts → TCard.vue.d.ts} +6 -6
  87. package/dist/components/TCard.vue.d.ts.map +1 -0
  88. package/dist/components/TCard.vue_vue_type_script_setup_true_lang.cjs +2 -0
  89. package/dist/components/TCard.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  90. package/dist/components/TCard.vue_vue_type_script_setup_true_lang.js +42 -0
  91. package/dist/components/TCard.vue_vue_type_script_setup_true_lang.js.map +1 -0
  92. package/dist/components/TCheckbox.cjs +2 -0
  93. package/dist/components/TCheckbox.cjs.map +1 -0
  94. package/dist/components/TCheckbox.js +7 -0
  95. package/dist/components/TCheckbox.js.map +1 -0
  96. package/dist/components/{TreeCheckbox.vue.d.ts → TCheckbox.vue.d.ts} +4 -4
  97. package/dist/components/TCheckbox.vue.d.ts.map +1 -0
  98. package/dist/components/TCheckbox.vue_vue_type_script_setup_true_lang.cjs +2 -0
  99. package/dist/components/TCheckbox.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  100. package/dist/components/TCheckbox.vue_vue_type_script_setup_true_lang.js +106 -0
  101. package/dist/components/TCheckbox.vue_vue_type_script_setup_true_lang.js.map +1 -0
  102. package/dist/components/TCombobox.cjs +2 -0
  103. package/dist/components/TCombobox.cjs.map +1 -0
  104. package/dist/components/TCombobox.js +7 -0
  105. package/dist/components/TCombobox.js.map +1 -0
  106. package/dist/components/{TreeCombobox.vue.d.ts → TCombobox.vue.d.ts} +9 -9
  107. package/dist/components/TCombobox.vue.d.ts.map +1 -0
  108. package/dist/components/TCombobox.vue_vue_type_script_setup_true_lang.cjs +2 -0
  109. package/dist/components/TCombobox.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  110. package/dist/components/TCombobox.vue_vue_type_script_setup_true_lang.js +282 -0
  111. package/dist/components/TCombobox.vue_vue_type_script_setup_true_lang.js.map +1 -0
  112. package/dist/components/TConfirmDialog.cjs +2 -0
  113. package/dist/components/TConfirmDialog.cjs.map +1 -0
  114. package/dist/components/TConfirmDialog.js +7 -0
  115. package/dist/components/TConfirmDialog.js.map +1 -0
  116. package/dist/components/{TreeConfirmDialog.vue.d.ts → TConfirmDialog.vue.d.ts} +6 -6
  117. package/dist/components/TConfirmDialog.vue.d.ts.map +1 -0
  118. package/dist/components/TConfirmDialog.vue_vue_type_script_setup_true_lang.cjs +2 -0
  119. package/dist/components/TConfirmDialog.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  120. package/dist/components/TConfirmDialog.vue_vue_type_script_setup_true_lang.js +145 -0
  121. package/dist/components/TConfirmDialog.vue_vue_type_script_setup_true_lang.js.map +1 -0
  122. package/dist/components/TContainer.cjs +2 -0
  123. package/dist/components/TContainer.cjs.map +1 -0
  124. package/dist/components/TContainer.js +7 -0
  125. package/dist/components/TContainer.js.map +1 -0
  126. package/dist/components/{TreeContainer.vue.d.ts → TContainer.vue.d.ts} +4 -4
  127. package/dist/components/TContainer.vue.d.ts.map +1 -0
  128. package/dist/components/TContainer.vue_vue_type_script_setup_true_lang.cjs +2 -0
  129. package/dist/components/TContainer.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  130. package/dist/components/TContainer.vue_vue_type_script_setup_true_lang.js +43 -0
  131. package/dist/components/TContainer.vue_vue_type_script_setup_true_lang.js.map +1 -0
  132. package/dist/components/TContextMenu.cjs +2 -0
  133. package/dist/components/TContextMenu.cjs.map +1 -0
  134. package/dist/components/TContextMenu.js +7 -0
  135. package/dist/components/TContextMenu.js.map +1 -0
  136. package/dist/components/{TreeContextMenu.vue.d.ts → TContextMenu.vue.d.ts} +9 -9
  137. package/dist/components/TContextMenu.vue.d.ts.map +1 -0
  138. package/dist/components/TContextMenu.vue_vue_type_script_setup_true_lang.cjs +2 -0
  139. package/dist/components/TContextMenu.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  140. package/dist/components/TContextMenu.vue_vue_type_script_setup_true_lang.js +149 -0
  141. package/dist/components/TContextMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
  142. package/dist/components/TDatePicker.cjs +2 -0
  143. package/dist/components/TDatePicker.cjs.map +1 -0
  144. package/dist/components/TDatePicker.js +7 -0
  145. package/dist/components/TDatePicker.js.map +1 -0
  146. package/dist/components/{TreeDatePicker.vue.d.ts → TDatePicker.vue.d.ts} +4 -4
  147. package/dist/components/TDatePicker.vue.d.ts.map +1 -0
  148. package/dist/components/TDatePicker.vue_vue_type_script_setup_true_lang.cjs +2 -0
  149. package/dist/components/TDatePicker.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  150. package/dist/components/TDatePicker.vue_vue_type_script_setup_true_lang.js +305 -0
  151. package/dist/components/TDatePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
  152. package/dist/components/TDateTimePicker.cjs +2 -0
  153. package/dist/components/TDateTimePicker.cjs.map +1 -0
  154. package/dist/components/TDateTimePicker.js +7 -0
  155. package/dist/components/TDateTimePicker.js.map +1 -0
  156. package/dist/components/{TreeDateTimePicker.vue.d.ts → TDateTimePicker.vue.d.ts} +4 -4
  157. package/dist/components/TDateTimePicker.vue.d.ts.map +1 -0
  158. package/dist/components/TDateTimePicker.vue_vue_type_script_setup_true_lang.cjs +2 -0
  159. package/dist/components/TDateTimePicker.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  160. package/dist/components/TDateTimePicker.vue_vue_type_script_setup_true_lang.js +409 -0
  161. package/dist/components/TDateTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
  162. package/dist/components/TDivider.cjs +2 -0
  163. package/dist/components/TDivider.cjs.map +1 -0
  164. package/dist/components/TDivider.js +7 -0
  165. package/dist/components/TDivider.js.map +1 -0
  166. package/dist/components/{TreeDivider.vue.d.ts → TDivider.vue.d.ts} +1 -1
  167. package/dist/components/TDivider.vue.d.ts.map +1 -0
  168. package/dist/components/TDivider.vue_vue_type_script_setup_true_lang.cjs +2 -0
  169. package/dist/components/TDivider.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  170. package/dist/components/TDivider.vue_vue_type_script_setup_true_lang.js +30 -0
  171. package/dist/components/TDivider.vue_vue_type_script_setup_true_lang.js.map +1 -0
  172. package/dist/components/TDrawer.cjs +2 -0
  173. package/dist/components/TDrawer.cjs.map +1 -0
  174. package/dist/components/TDrawer.js +7 -0
  175. package/dist/components/TDrawer.js.map +1 -0
  176. package/dist/components/{TreeDrawer.vue.d.ts → TDrawer.vue.d.ts} +6 -6
  177. package/dist/components/TDrawer.vue.d.ts.map +1 -0
  178. package/dist/components/TDrawer.vue_vue_type_script_setup_true_lang.cjs +2 -0
  179. package/dist/components/TDrawer.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  180. package/dist/components/TDrawer.vue_vue_type_script_setup_true_lang.js +168 -0
  181. package/dist/components/TDrawer.vue_vue_type_script_setup_true_lang.js.map +1 -0
  182. package/dist/components/TDropdown.cjs +2 -0
  183. package/dist/components/TDropdown.cjs.map +1 -0
  184. package/dist/components/TDropdown.js +7 -0
  185. package/dist/components/TDropdown.js.map +1 -0
  186. package/dist/components/{TreeDropdown.vue.d.ts → TDropdown.vue.d.ts} +12 -9
  187. package/dist/components/TDropdown.vue.d.ts.map +1 -0
  188. package/dist/components/TDropdown.vue_vue_type_script_setup_true_lang.cjs +2 -0
  189. package/dist/components/TDropdown.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  190. package/dist/components/TDropdown.vue_vue_type_script_setup_true_lang.js +176 -0
  191. package/dist/components/TDropdown.vue_vue_type_script_setup_true_lang.js.map +1 -0
  192. package/dist/components/TEmptyState.cjs +2 -0
  193. package/dist/components/TEmptyState.cjs.map +1 -0
  194. package/dist/components/TEmptyState.js +7 -0
  195. package/dist/components/TEmptyState.js.map +1 -0
  196. package/dist/components/{TreeEmptyState.vue.d.ts → TEmptyState.vue.d.ts} +4 -4
  197. package/dist/components/TEmptyState.vue.d.ts.map +1 -0
  198. package/dist/components/TEmptyState.vue_vue_type_script_setup_true_lang.cjs +2 -0
  199. package/dist/components/TEmptyState.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  200. package/dist/components/TEmptyState.vue_vue_type_script_setup_true_lang.js +64 -0
  201. package/dist/components/TEmptyState.vue_vue_type_script_setup_true_lang.js.map +1 -0
  202. package/dist/components/TFileUpload.cjs +2 -0
  203. package/dist/components/TFileUpload.cjs.map +1 -0
  204. package/dist/components/TFileUpload.js +7 -0
  205. package/dist/components/TFileUpload.js.map +1 -0
  206. package/dist/components/{TreeFileUpload.vue.d.ts → TFileUpload.vue.d.ts} +9 -9
  207. package/dist/components/TFileUpload.vue.d.ts.map +1 -0
  208. package/dist/components/TFileUpload.vue_vue_type_script_setup_true_lang.cjs +2 -0
  209. package/dist/components/TFileUpload.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  210. package/dist/components/TFileUpload.vue_vue_type_script_setup_true_lang.js +284 -0
  211. package/dist/components/TFileUpload.vue_vue_type_script_setup_true_lang.js.map +1 -0
  212. package/dist/components/TFormField.cjs +2 -0
  213. package/dist/components/TFormField.cjs.map +1 -0
  214. package/dist/components/TFormField.js +7 -0
  215. package/dist/components/TFormField.js.map +1 -0
  216. package/dist/components/{TreeFormField.vue.d.ts → TFormField.vue.d.ts} +4 -4
  217. package/dist/components/TFormField.vue.d.ts.map +1 -0
  218. package/dist/components/TFormField.vue_vue_type_script_setup_true_lang.cjs +2 -0
  219. package/dist/components/TFormField.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  220. package/dist/components/TFormField.vue_vue_type_script_setup_true_lang.js +63 -0
  221. package/dist/components/TFormField.vue_vue_type_script_setup_true_lang.js.map +1 -0
  222. package/dist/components/TGrid.cjs +2 -0
  223. package/dist/components/TGrid.cjs.map +1 -0
  224. package/dist/components/TGrid.js +7 -0
  225. package/dist/components/TGrid.js.map +1 -0
  226. package/dist/components/{TreeGrid.vue.d.ts → TGrid.vue.d.ts} +2 -2
  227. package/dist/components/TGrid.vue.d.ts.map +1 -0
  228. package/dist/components/TGrid.vue_vue_type_script_setup_true_lang.cjs +2 -0
  229. package/dist/components/TGrid.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  230. package/dist/components/TGrid.vue_vue_type_script_setup_true_lang.js +47 -0
  231. package/dist/components/TGrid.vue_vue_type_script_setup_true_lang.js.map +1 -0
  232. package/dist/components/TIcon.cjs +2 -0
  233. package/dist/components/TIcon.cjs.map +1 -0
  234. package/dist/components/TIcon.js +7 -0
  235. package/dist/components/TIcon.js.map +1 -0
  236. package/dist/components/{TreeIcon.vue.d.ts → TIcon.vue.d.ts} +3 -3
  237. package/dist/components/TIcon.vue.d.ts.map +1 -0
  238. package/dist/components/TIcon.vue_vue_type_script_setup_true_lang.cjs +2 -0
  239. package/dist/components/TIcon.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  240. package/dist/components/TIcon.vue_vue_type_script_setup_true_lang.js +39 -0
  241. package/dist/components/TIcon.vue_vue_type_script_setup_true_lang.js.map +1 -0
  242. package/dist/components/TInput.cjs +2 -0
  243. package/dist/components/TInput.cjs.map +1 -0
  244. package/dist/components/TInput.js +7 -0
  245. package/dist/components/TInput.js.map +1 -0
  246. package/dist/components/{TreeInput.vue.d.ts → TInput.vue.d.ts} +4 -4
  247. package/dist/components/TInput.vue.d.ts.map +1 -0
  248. package/dist/components/TInput.vue_vue_type_script_setup_true_lang.cjs +2 -0
  249. package/dist/components/TInput.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  250. package/dist/components/TInput.vue_vue_type_script_setup_true_lang.js +80 -0
  251. package/dist/components/TInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
  252. package/dist/components/TLink.cjs +2 -0
  253. package/dist/components/TLink.cjs.map +1 -0
  254. package/dist/components/TLink.js +7 -0
  255. package/dist/components/TLink.js.map +1 -0
  256. package/dist/components/{TreeLink.vue.d.ts → TLink.vue.d.ts} +4 -4
  257. package/dist/components/TLink.vue.d.ts.map +1 -0
  258. package/dist/components/TLink.vue_vue_type_script_setup_true_lang.cjs +2 -0
  259. package/dist/components/TLink.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  260. package/dist/components/TLink.vue_vue_type_script_setup_true_lang.js +47 -0
  261. package/dist/components/TLink.vue_vue_type_script_setup_true_lang.js.map +1 -0
  262. package/dist/components/TMarkdownEditor.cjs +2 -0
  263. package/dist/components/TMarkdownEditor.cjs.map +1 -0
  264. package/dist/components/TMarkdownEditor.js +7 -0
  265. package/dist/components/TMarkdownEditor.js.map +1 -0
  266. package/dist/components/{TreeMarkdownEditor.vue.d.ts → TMarkdownEditor.vue.d.ts} +4 -4
  267. package/dist/components/TMarkdownEditor.vue.d.ts.map +1 -0
  268. package/dist/components/TMarkdownEditor.vue_vue_type_script_setup_true_lang.cjs +12 -0
  269. package/dist/components/TMarkdownEditor.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  270. package/dist/components/TMarkdownEditor.vue_vue_type_script_setup_true_lang.js +315 -0
  271. package/dist/components/TMarkdownEditor.vue_vue_type_script_setup_true_lang.js.map +1 -0
  272. package/dist/components/TModal.cjs +2 -0
  273. package/dist/components/TModal.cjs.map +1 -0
  274. package/dist/components/TModal.js +7 -0
  275. package/dist/components/TModal.js.map +1 -0
  276. package/dist/components/{TreeModal.vue.d.ts → TModal.vue.d.ts} +4 -4
  277. package/dist/components/TModal.vue.d.ts.map +1 -0
  278. package/dist/components/TModal.vue_vue_type_script_setup_true_lang.cjs +2 -0
  279. package/dist/components/TModal.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  280. package/dist/components/TModal.vue_vue_type_script_setup_true_lang.js +163 -0
  281. package/dist/components/TModal.vue_vue_type_script_setup_true_lang.js.map +1 -0
  282. package/dist/components/TMultiSelect.cjs +2 -0
  283. package/dist/components/TMultiSelect.cjs.map +1 -0
  284. package/dist/components/TMultiSelect.js +7 -0
  285. package/dist/components/TMultiSelect.js.map +1 -0
  286. package/dist/components/{TreeMultiSelect.vue.d.ts → TMultiSelect.vue.d.ts} +11 -11
  287. package/dist/components/TMultiSelect.vue.d.ts.map +1 -0
  288. package/dist/components/TMultiSelect.vue_vue_type_script_setup_true_lang.cjs +2 -0
  289. package/dist/components/TMultiSelect.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  290. package/dist/components/TMultiSelect.vue_vue_type_script_setup_true_lang.js +282 -0
  291. package/dist/components/TMultiSelect.vue_vue_type_script_setup_true_lang.js.map +1 -0
  292. package/dist/components/TNavMenu.cjs +2 -0
  293. package/dist/components/TNavMenu.cjs.map +1 -0
  294. package/dist/components/TNavMenu.js +7 -0
  295. package/dist/components/TNavMenu.js.map +1 -0
  296. package/dist/components/{TreeNavMenu.vue.d.ts → TNavMenu.vue.d.ts} +11 -11
  297. package/dist/components/TNavMenu.vue.d.ts.map +1 -0
  298. package/dist/components/TNavMenu.vue_vue_type_script_setup_true_lang.cjs +2 -0
  299. package/dist/components/TNavMenu.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  300. package/dist/components/TNavMenu.vue_vue_type_script_setup_true_lang.js +151 -0
  301. package/dist/components/TNavMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
  302. package/dist/components/TNavbar.cjs +2 -0
  303. package/dist/components/TNavbar.cjs.map +1 -0
  304. package/dist/components/TNavbar.js +7 -0
  305. package/dist/components/TNavbar.js.map +1 -0
  306. package/dist/components/{TreeNavbar.vue.d.ts → TNavbar.vue.d.ts} +4 -4
  307. package/dist/components/TNavbar.vue.d.ts.map +1 -0
  308. package/dist/components/TNavbar.vue_vue_type_script_setup_true_lang.cjs +2 -0
  309. package/dist/components/TNavbar.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  310. package/dist/components/TNavbar.vue_vue_type_script_setup_true_lang.js +61 -0
  311. package/dist/components/TNavbar.vue_vue_type_script_setup_true_lang.js.map +1 -0
  312. package/dist/components/TNumberInput.cjs +2 -0
  313. package/dist/components/TNumberInput.cjs.map +1 -0
  314. package/dist/components/TNumberInput.js +7 -0
  315. package/dist/components/TNumberInput.js.map +1 -0
  316. package/dist/components/{TreeNumberInput.vue.d.ts → TNumberInput.vue.d.ts} +4 -4
  317. package/dist/components/TNumberInput.vue.d.ts.map +1 -0
  318. package/dist/components/TNumberInput.vue_vue_type_script_setup_true_lang.cjs +2 -0
  319. package/dist/components/TNumberInput.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  320. package/dist/components/TNumberInput.vue_vue_type_script_setup_true_lang.js +145 -0
  321. package/dist/components/TNumberInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
  322. package/dist/components/TPagination.cjs +2 -0
  323. package/dist/components/TPagination.cjs.map +1 -0
  324. package/dist/components/TPagination.js +7 -0
  325. package/dist/components/TPagination.js.map +1 -0
  326. package/dist/components/{TreePagination.vue.d.ts → TPagination.vue.d.ts} +4 -4
  327. package/dist/components/TPagination.vue.d.ts.map +1 -0
  328. package/dist/components/TPagination.vue_vue_type_script_setup_true_lang.cjs +2 -0
  329. package/dist/components/TPagination.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  330. package/dist/components/TPagination.vue_vue_type_script_setup_true_lang.js +105 -0
  331. package/dist/components/TPagination.vue_vue_type_script_setup_true_lang.js.map +1 -0
  332. package/dist/components/TPopover.cjs +2 -0
  333. package/dist/components/TPopover.cjs.map +1 -0
  334. package/dist/components/TPopover.js +7 -0
  335. package/dist/components/TPopover.js.map +1 -0
  336. package/dist/components/{TreePopover.vue.d.ts → TPopover.vue.d.ts} +4 -4
  337. package/dist/components/TPopover.vue.d.ts.map +1 -0
  338. package/dist/components/TPopover.vue_vue_type_script_setup_true_lang.cjs +2 -0
  339. package/dist/components/TPopover.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  340. package/dist/components/TPopover.vue_vue_type_script_setup_true_lang.js +106 -0
  341. package/dist/components/TPopover.vue_vue_type_script_setup_true_lang.js.map +1 -0
  342. package/dist/components/TPricing.cjs +2 -0
  343. package/dist/components/TPricing.cjs.map +1 -0
  344. package/dist/components/TPricing.js +7 -0
  345. package/dist/components/TPricing.js.map +1 -0
  346. package/dist/components/{TreePricing.vue.d.ts → TPricing.vue.d.ts} +5 -5
  347. package/dist/components/TPricing.vue.d.ts.map +1 -0
  348. package/dist/components/TPricing.vue_vue_type_script_setup_true_lang.cjs +2 -0
  349. package/dist/components/TPricing.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  350. package/dist/components/TPricing.vue_vue_type_script_setup_true_lang.js +33 -0
  351. package/dist/components/TPricing.vue_vue_type_script_setup_true_lang.js.map +1 -0
  352. package/dist/components/TPricingCard.cjs +2 -0
  353. package/dist/components/TPricingCard.cjs.map +1 -0
  354. package/dist/components/TPricingCard.js +7 -0
  355. package/dist/components/TPricingCard.js.map +1 -0
  356. package/dist/components/{TreePricingCard.vue.d.ts → TPricingCard.vue.d.ts} +4 -4
  357. package/dist/components/TPricingCard.vue.d.ts.map +1 -0
  358. package/dist/components/TPricingCard.vue_vue_type_script_setup_true_lang.cjs +2 -0
  359. package/dist/components/TPricingCard.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  360. package/dist/components/TPricingCard.vue_vue_type_script_setup_true_lang.js +93 -0
  361. package/dist/components/TPricingCard.vue_vue_type_script_setup_true_lang.js.map +1 -0
  362. package/dist/components/TProgress.cjs +2 -0
  363. package/dist/components/TProgress.cjs.map +1 -0
  364. package/dist/components/TProgress.js +7 -0
  365. package/dist/components/TProgress.js.map +1 -0
  366. package/dist/components/{TreeProgress.vue.d.ts → TProgress.vue.d.ts} +4 -4
  367. package/dist/components/TProgress.vue.d.ts.map +1 -0
  368. package/dist/components/TProgress.vue_vue_type_script_setup_true_lang.cjs +2 -0
  369. package/dist/components/TProgress.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  370. package/dist/components/TProgress.vue_vue_type_script_setup_true_lang.js +33 -0
  371. package/dist/components/TProgress.vue_vue_type_script_setup_true_lang.js.map +1 -0
  372. package/dist/components/TRadio.cjs +2 -0
  373. package/dist/components/TRadio.cjs.map +1 -0
  374. package/dist/components/TRadio.js +7 -0
  375. package/dist/components/TRadio.js.map +1 -0
  376. package/dist/components/{TreeRadio.vue.d.ts → TRadio.vue.d.ts} +4 -4
  377. package/dist/components/TRadio.vue.d.ts.map +1 -0
  378. package/dist/components/TRadio.vue_vue_type_script_setup_true_lang.cjs +2 -0
  379. package/dist/components/TRadio.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  380. package/dist/components/TRadio.vue_vue_type_script_setup_true_lang.js +73 -0
  381. package/dist/components/TRadio.vue_vue_type_script_setup_true_lang.js.map +1 -0
  382. package/dist/components/TRadioGroup.cjs +2 -0
  383. package/dist/components/TRadioGroup.cjs.map +1 -0
  384. package/dist/components/TRadioGroup.js +7 -0
  385. package/dist/components/TRadioGroup.js.map +1 -0
  386. package/dist/components/{TreeRadioGroup.vue.d.ts → TRadioGroup.vue.d.ts} +4 -4
  387. package/dist/components/TRadioGroup.vue.d.ts.map +1 -0
  388. package/dist/components/TRadioGroup.vue_vue_type_script_setup_true_lang.cjs +2 -0
  389. package/dist/components/TRadioGroup.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  390. package/dist/components/TRadioGroup.vue_vue_type_script_setup_true_lang.js +46 -0
  391. package/dist/components/TRadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
  392. package/dist/components/TSelect.cjs +2 -0
  393. package/dist/components/TSelect.cjs.map +1 -0
  394. package/dist/components/TSelect.js +7 -0
  395. package/dist/components/TSelect.js.map +1 -0
  396. package/dist/components/{TreeSelect.vue.d.ts → TSelect.vue.d.ts} +9 -7
  397. package/dist/components/TSelect.vue.d.ts.map +1 -0
  398. package/dist/components/TSelect.vue_vue_type_script_setup_true_lang.cjs +2 -0
  399. package/dist/components/TSelect.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  400. package/dist/components/TSelect.vue_vue_type_script_setup_true_lang.js +238 -0
  401. package/dist/components/TSelect.vue_vue_type_script_setup_true_lang.js.map +1 -0
  402. package/dist/components/TSelectableList.cjs +2 -0
  403. package/dist/components/TSelectableList.cjs.map +1 -0
  404. package/dist/components/TSelectableList.js +7 -0
  405. package/dist/components/TSelectableList.js.map +1 -0
  406. package/dist/components/{TreeSelectableList.vue.d.ts → TSelectableList.vue.d.ts} +9 -9
  407. package/dist/components/TSelectableList.vue.d.ts.map +1 -0
  408. package/dist/components/TSelectableList.vue_vue_type_script_setup_true_lang.cjs +2 -0
  409. package/dist/components/TSelectableList.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  410. package/dist/components/TSelectableList.vue_vue_type_script_setup_true_lang.js +133 -0
  411. package/dist/components/TSelectableList.vue_vue_type_script_setup_true_lang.js.map +1 -0
  412. package/dist/components/TSidebar.cjs +2 -0
  413. package/dist/components/TSidebar.cjs.map +1 -0
  414. package/dist/components/TSidebar.js +7 -0
  415. package/dist/components/TSidebar.js.map +1 -0
  416. package/dist/components/{TreeSidebar.vue.d.ts → TSidebar.vue.d.ts} +7 -7
  417. package/dist/components/TSidebar.vue.d.ts.map +1 -0
  418. package/dist/components/TSidebar.vue_vue_type_script_setup_true_lang.cjs +2 -0
  419. package/dist/components/TSidebar.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  420. package/dist/components/TSidebar.vue_vue_type_script_setup_true_lang.js +98 -0
  421. package/dist/components/TSidebar.vue_vue_type_script_setup_true_lang.js.map +1 -0
  422. package/dist/components/TSkeleton.cjs +2 -0
  423. package/dist/components/TSkeleton.cjs.map +1 -0
  424. package/dist/components/TSkeleton.js +7 -0
  425. package/dist/components/TSkeleton.js.map +1 -0
  426. package/dist/components/{TreeSkeleton.vue.d.ts → TSkeleton.vue.d.ts} +1 -1
  427. package/dist/components/TSkeleton.vue.d.ts.map +1 -0
  428. package/dist/components/TSkeleton.vue_vue_type_script_setup_true_lang.cjs +2 -0
  429. package/dist/components/TSkeleton.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  430. package/dist/components/TSkeleton.vue_vue_type_script_setup_true_lang.js +25 -0
  431. package/dist/components/TSkeleton.vue_vue_type_script_setup_true_lang.js.map +1 -0
  432. package/dist/components/TSpinner.cjs +2 -0
  433. package/dist/components/TSpinner.cjs.map +1 -0
  434. package/dist/components/TSpinner.js +7 -0
  435. package/dist/components/TSpinner.js.map +1 -0
  436. package/dist/components/{TreeSpinner.vue.d.ts → TSpinner.vue.d.ts} +4 -4
  437. package/dist/components/TSpinner.vue.d.ts.map +1 -0
  438. package/dist/components/TSpinner.vue_vue_type_script_setup_true_lang.cjs +2 -0
  439. package/dist/components/TSpinner.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  440. package/dist/components/TSpinner.vue_vue_type_script_setup_true_lang.js +24 -0
  441. package/dist/components/TSpinner.vue_vue_type_script_setup_true_lang.js.map +1 -0
  442. package/dist/components/TStack.cjs +2 -0
  443. package/dist/components/TStack.cjs.map +1 -0
  444. package/dist/components/TStack.js +7 -0
  445. package/dist/components/TStack.js.map +1 -0
  446. package/dist/components/{TreeStack.vue.d.ts → TStack.vue.d.ts} +5 -5
  447. package/dist/components/TStack.vue.d.ts.map +1 -0
  448. package/dist/components/TStack.vue_vue_type_script_setup_true_lang.cjs +2 -0
  449. package/dist/components/TStack.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  450. package/dist/components/TStack.vue_vue_type_script_setup_true_lang.js +50 -0
  451. package/dist/components/TStack.vue_vue_type_script_setup_true_lang.js.map +1 -0
  452. package/dist/components/TStat.cjs +2 -0
  453. package/dist/components/TStat.cjs.map +1 -0
  454. package/dist/components/TStat.js +7 -0
  455. package/dist/components/TStat.js.map +1 -0
  456. package/dist/components/{TreeStat.vue.d.ts → TStat.vue.d.ts} +7 -7
  457. package/dist/components/TStat.vue.d.ts.map +1 -0
  458. package/dist/components/TStat.vue_vue_type_script_setup_true_lang.cjs +2 -0
  459. package/dist/components/TStat.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  460. package/dist/components/TStat.vue_vue_type_script_setup_true_lang.js +72 -0
  461. package/dist/components/TStat.vue_vue_type_script_setup_true_lang.js.map +1 -0
  462. package/dist/components/TSteps.cjs +2 -0
  463. package/dist/components/TSteps.cjs.map +1 -0
  464. package/dist/components/TSteps.js +7 -0
  465. package/dist/components/TSteps.js.map +1 -0
  466. package/dist/components/{TreeSteps.vue.d.ts → TSteps.vue.d.ts} +16 -16
  467. package/dist/components/TSteps.vue.d.ts.map +1 -0
  468. package/dist/components/TSteps.vue_vue_type_script_setup_true_lang.cjs +2 -0
  469. package/dist/components/TSteps.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  470. package/dist/components/TSteps.vue_vue_type_script_setup_true_lang.js +83 -0
  471. package/dist/components/TSteps.vue_vue_type_script_setup_true_lang.js.map +1 -0
  472. package/dist/components/TSwitch.cjs +2 -0
  473. package/dist/components/TSwitch.cjs.map +1 -0
  474. package/dist/components/TSwitch.js +7 -0
  475. package/dist/components/TSwitch.js.map +1 -0
  476. package/dist/components/{TreeSwitch.vue.d.ts → TSwitch.vue.d.ts} +4 -4
  477. package/dist/components/TSwitch.vue.d.ts.map +1 -0
  478. package/dist/components/TSwitch.vue_vue_type_script_setup_true_lang.cjs +2 -0
  479. package/dist/components/TSwitch.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  480. package/dist/components/TSwitch.vue_vue_type_script_setup_true_lang.js +71 -0
  481. package/dist/components/TSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -0
  482. package/dist/components/TTab.cjs +2 -0
  483. package/dist/components/TTab.cjs.map +1 -0
  484. package/dist/components/TTab.js +7 -0
  485. package/dist/components/TTab.js.map +1 -0
  486. package/dist/components/{TreeTab.vue.d.ts → TTab.vue.d.ts} +1 -1
  487. package/dist/components/TTab.vue.d.ts.map +1 -0
  488. package/dist/components/TTab.vue_vue_type_script_setup_true_lang.cjs +2 -0
  489. package/dist/components/TTab.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  490. package/dist/components/TTab.vue_vue_type_script_setup_true_lang.js +55 -0
  491. package/dist/components/TTab.vue_vue_type_script_setup_true_lang.js.map +1 -0
  492. package/dist/components/TTabList.cjs +2 -0
  493. package/dist/components/TTabList.cjs.map +1 -0
  494. package/dist/components/TTabList.js +7 -0
  495. package/dist/components/TTabList.js.map +1 -0
  496. package/dist/components/{TreeTabList.vue.d.ts → TTabList.vue.d.ts} +1 -1
  497. package/dist/components/TTabList.vue.d.ts.map +1 -0
  498. package/dist/components/TTabList.vue_vue_type_script_setup_true_lang.cjs +2 -0
  499. package/dist/components/TTabList.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  500. package/dist/components/TTabList.vue_vue_type_script_setup_true_lang.js +73 -0
  501. package/dist/components/TTabList.vue_vue_type_script_setup_true_lang.js.map +1 -0
  502. package/dist/components/TTabPanel.cjs +2 -0
  503. package/dist/components/TTabPanel.cjs.map +1 -0
  504. package/dist/components/TTabPanel.js +7 -0
  505. package/dist/components/TTabPanel.js.map +1 -0
  506. package/dist/components/{TreeTabPanel.vue.d.ts → TTabPanel.vue.d.ts} +1 -1
  507. package/dist/components/TTabPanel.vue.d.ts.map +1 -0
  508. package/dist/components/TTabPanel.vue_vue_type_script_setup_true_lang.cjs +2 -0
  509. package/dist/components/TTabPanel.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  510. package/dist/components/TTabPanel.vue_vue_type_script_setup_true_lang.js +24 -0
  511. package/dist/components/TTabPanel.vue_vue_type_script_setup_true_lang.js.map +1 -0
  512. package/dist/components/TTable.cjs +2 -0
  513. package/dist/components/TTable.cjs.map +1 -0
  514. package/dist/components/TTable.js +7 -0
  515. package/dist/components/TTable.js.map +1 -0
  516. package/dist/components/{TreeTable.vue.d.ts → TTable.vue.d.ts} +15 -15
  517. package/dist/components/TTable.vue.d.ts.map +1 -0
  518. package/dist/components/TTable.vue_vue_type_script_setup_true_lang.cjs +2 -0
  519. package/dist/components/TTable.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  520. package/dist/components/TTable.vue_vue_type_script_setup_true_lang.js +118 -0
  521. package/dist/components/TTable.vue_vue_type_script_setup_true_lang.js.map +1 -0
  522. package/dist/components/TTabs.cjs +2 -0
  523. package/dist/components/TTabs.cjs.map +1 -0
  524. package/dist/components/TTabs.js +7 -0
  525. package/dist/components/TTabs.js.map +1 -0
  526. package/dist/components/{TreeTabs.vue.d.ts → TTabs.vue.d.ts} +4 -4
  527. package/dist/components/TTabs.vue.d.ts.map +1 -0
  528. package/dist/components/TTabs.vue_vue_type_script_setup_true_lang.cjs +2 -0
  529. package/dist/components/TTabs.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  530. package/dist/components/TTabs.vue_vue_type_script_setup_true_lang.js +51 -0
  531. package/dist/components/TTabs.vue_vue_type_script_setup_true_lang.js.map +1 -0
  532. package/dist/components/TTag.cjs +2 -0
  533. package/dist/components/TTag.cjs.map +1 -0
  534. package/dist/components/TTag.js +7 -0
  535. package/dist/components/TTag.js.map +1 -0
  536. package/dist/components/{TreeTag.vue.d.ts → TTag.vue.d.ts} +7 -7
  537. package/dist/components/TTag.vue.d.ts.map +1 -0
  538. package/dist/components/TTag.vue_vue_type_script_setup_true_lang.cjs +2 -0
  539. package/dist/components/TTag.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  540. package/dist/components/TTag.vue_vue_type_script_setup_true_lang.js +60 -0
  541. package/dist/components/TTag.vue_vue_type_script_setup_true_lang.js.map +1 -0
  542. package/dist/components/TTextarea.cjs +2 -0
  543. package/dist/components/TTextarea.cjs.map +1 -0
  544. package/dist/components/TTextarea.js +7 -0
  545. package/dist/components/TTextarea.js.map +1 -0
  546. package/dist/components/{TreeTextarea.vue.d.ts → TTextarea.vue.d.ts} +4 -4
  547. package/dist/components/TTextarea.vue.d.ts.map +1 -0
  548. package/dist/components/TTextarea.vue_vue_type_script_setup_true_lang.cjs +2 -0
  549. package/dist/components/TTextarea.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  550. package/dist/components/TTextarea.vue_vue_type_script_setup_true_lang.js +81 -0
  551. package/dist/components/TTextarea.vue_vue_type_script_setup_true_lang.js.map +1 -0
  552. package/dist/components/TTimeline.cjs +2 -0
  553. package/dist/components/TTimeline.cjs.map +1 -0
  554. package/dist/components/TTimeline.js +7 -0
  555. package/dist/components/TTimeline.js.map +1 -0
  556. package/dist/components/{TreeTimeline.vue.d.ts → TTimeline.vue.d.ts} +13 -13
  557. package/dist/components/TTimeline.vue.d.ts.map +1 -0
  558. package/dist/components/TTimeline.vue_vue_type_script_setup_true_lang.cjs +2 -0
  559. package/dist/components/TTimeline.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  560. package/dist/components/TTimeline.vue_vue_type_script_setup_true_lang.js +58 -0
  561. package/dist/components/TTimeline.vue_vue_type_script_setup_true_lang.js.map +1 -0
  562. package/dist/components/TToast.cjs +2 -0
  563. package/dist/components/TToast.cjs.map +1 -0
  564. package/dist/components/TToast.js +7 -0
  565. package/dist/components/TToast.js.map +1 -0
  566. package/dist/components/{TreeToast.vue.d.ts → TToast.vue.d.ts} +1 -1
  567. package/dist/components/TToast.vue.d.ts.map +1 -0
  568. package/dist/components/TToast.vue_vue_type_script_setup_true_lang.cjs +2 -0
  569. package/dist/components/TToast.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  570. package/dist/components/TToast.vue_vue_type_script_setup_true_lang.js +50 -0
  571. package/dist/components/TToast.vue_vue_type_script_setup_true_lang.js.map +1 -0
  572. package/dist/components/TToastProvider.cjs +2 -0
  573. package/dist/components/TToastProvider.cjs.map +1 -0
  574. package/dist/components/TToastProvider.js +7 -0
  575. package/dist/components/TToastProvider.js.map +1 -0
  576. package/dist/components/{TreeToastProvider.vue.d.ts → TToastProvider.vue.d.ts} +1 -1
  577. package/dist/components/TToastProvider.vue.d.ts.map +1 -0
  578. package/dist/components/TToastProvider.vue_vue_type_script_setup_true_lang.cjs +2 -0
  579. package/dist/components/TToastProvider.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  580. package/dist/components/TToastProvider.vue_vue_type_script_setup_true_lang.js +33 -0
  581. package/dist/components/TToastProvider.vue_vue_type_script_setup_true_lang.js.map +1 -0
  582. package/dist/components/TToggleGroup.cjs +2 -0
  583. package/dist/components/TToggleGroup.cjs.map +1 -0
  584. package/dist/components/TToggleGroup.js +7 -0
  585. package/dist/components/TToggleGroup.js.map +1 -0
  586. package/dist/components/{TreeToggleGroup.vue.d.ts → TToggleGroup.vue.d.ts} +15 -15
  587. package/dist/components/TToggleGroup.vue.d.ts.map +1 -0
  588. package/dist/components/TToggleGroup.vue_vue_type_script_setup_true_lang.cjs +2 -0
  589. package/dist/components/TToggleGroup.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  590. package/dist/components/TToggleGroup.vue_vue_type_script_setup_true_lang.js +119 -0
  591. package/dist/components/TToggleGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
  592. package/dist/components/TTooltip.cjs +2 -0
  593. package/dist/components/TTooltip.cjs.map +1 -0
  594. package/dist/components/TTooltip.js +7 -0
  595. package/dist/components/TTooltip.js.map +1 -0
  596. package/dist/components/{TreeTooltip.vue.d.ts → TTooltip.vue.d.ts} +4 -4
  597. package/dist/components/TTooltip.vue.d.ts.map +1 -0
  598. package/dist/components/TTooltip.vue_vue_type_script_setup_true_lang.cjs +2 -0
  599. package/dist/components/TTooltip.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  600. package/dist/components/TTooltip.vue_vue_type_script_setup_true_lang.js +75 -0
  601. package/dist/components/TTooltip.vue_vue_type_script_setup_true_lang.js.map +1 -0
  602. package/dist/components/TTreeView.cjs +2 -0
  603. package/dist/components/TTreeView.cjs.map +1 -0
  604. package/dist/components/TTreeView.js +7 -0
  605. package/dist/components/TTreeView.js.map +1 -0
  606. package/dist/components/{TreeTreeView.vue.d.ts → TTreeView.vue.d.ts} +6 -6
  607. package/dist/components/TTreeView.vue.d.ts.map +1 -0
  608. package/dist/components/TTreeView.vue_vue_type_script_setup_true_lang.cjs +2 -0
  609. package/dist/components/TTreeView.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  610. package/dist/components/TTreeView.vue_vue_type_script_setup_true_lang.js +161 -0
  611. package/dist/components/TTreeView.vue_vue_type_script_setup_true_lang.js.map +1 -0
  612. package/dist/components/TTreeViewItem.cjs +2 -0
  613. package/dist/components/TTreeViewItem.cjs.map +1 -0
  614. package/dist/components/TTreeViewItem.js +7 -0
  615. package/dist/components/TTreeViewItem.js.map +1 -0
  616. package/dist/components/{TreeTreeViewItem.vue.d.ts → TTreeViewItem.vue.d.ts} +3 -3
  617. package/dist/components/TTreeViewItem.vue.d.ts.map +1 -0
  618. package/dist/components/TTreeViewItem.vue_vue_type_script_setup_true_lang.cjs +2 -0
  619. package/dist/components/TTreeViewItem.vue_vue_type_script_setup_true_lang.cjs.map +1 -0
  620. package/dist/components/TTreeViewItem.vue_vue_type_script_setup_true_lang.js +101 -0
  621. package/dist/components/TTreeViewItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  622. package/dist/components/accordion.cjs +2 -0
  623. package/dist/components/accordion.cjs.map +1 -0
  624. package/dist/components/accordion.js +6 -0
  625. package/dist/components/accordion.js.map +1 -0
  626. package/dist/components/index.d.ts +81 -143
  627. package/dist/components/index.d.ts.map +1 -1
  628. package/dist/components/sidebar.cjs +2 -0
  629. package/dist/components/sidebar.cjs.map +1 -0
  630. package/dist/components/sidebar.d.ts +2 -2
  631. package/dist/components/sidebar.d.ts.map +1 -1
  632. package/dist/components/sidebar.js +6 -0
  633. package/dist/components/sidebar.js.map +1 -0
  634. package/dist/components/tabs-context.cjs +2 -0
  635. package/dist/components/tabs-context.cjs.map +1 -0
  636. package/dist/components/tabs-context.d.ts +2 -2
  637. package/dist/components/tabs-context.d.ts.map +1 -1
  638. package/dist/components/tabs-context.js +6 -0
  639. package/dist/components/tabs-context.js.map +1 -0
  640. package/dist/components/tree-view.cjs +2 -0
  641. package/dist/components/tree-view.cjs.map +1 -0
  642. package/dist/components/tree-view.d.ts +8 -8
  643. package/dist/components/tree-view.d.ts.map +1 -1
  644. package/dist/components/tree-view.js +6 -0
  645. package/dist/components/tree-view.js.map +1 -0
  646. package/dist/composables/useControllableOpen.cjs +2 -0
  647. package/dist/composables/useControllableOpen.cjs.map +1 -0
  648. package/dist/composables/useControllableOpen.js +15 -0
  649. package/dist/composables/useControllableOpen.js.map +1 -0
  650. package/dist/composables/useToast.cjs +2 -0
  651. package/dist/composables/useToast.cjs.map +1 -0
  652. package/dist/composables/useToast.js +41 -0
  653. package/dist/composables/useToast.js.map +1 -0
  654. package/dist/index.cjs +1 -12
  655. package/dist/index.js +66 -6040
  656. package/dist/plugin.cjs +2 -0
  657. package/dist/plugin.cjs.map +1 -0
  658. package/dist/plugin.d.ts.map +1 -1
  659. package/dist/plugin.js +135 -0
  660. package/dist/plugin.js.map +1 -0
  661. package/dist/style.css +1 -1
  662. package/dist/types/contracts.cjs +2 -0
  663. package/dist/types/contracts.cjs.map +1 -0
  664. package/dist/types/contracts.d.ts +5 -5
  665. package/dist/types/contracts.d.ts.map +1 -1
  666. package/dist/types/contracts.js +31 -0
  667. package/dist/types/contracts.js.map +1 -0
  668. package/package.json +5 -5
  669. package/dist/components/TreeAccordion.vue.d.ts.map +0 -1
  670. package/dist/components/TreeAccordionItem.vue.d.ts.map +0 -1
  671. package/dist/components/TreeAlert.vue.d.ts.map +0 -1
  672. package/dist/components/TreeAvatar.vue.d.ts.map +0 -1
  673. package/dist/components/TreeBadge.vue.d.ts.map +0 -1
  674. package/dist/components/TreeBreadcrumb.vue.d.ts.map +0 -1
  675. package/dist/components/TreeBreadcrumbItem.vue.d.ts.map +0 -1
  676. package/dist/components/TreeButton.vue.d.ts.map +0 -1
  677. package/dist/components/TreeCard.vue.d.ts.map +0 -1
  678. package/dist/components/TreeCheckbox.vue.d.ts.map +0 -1
  679. package/dist/components/TreeCombobox.vue.d.ts.map +0 -1
  680. package/dist/components/TreeConfirmDialog.vue.d.ts.map +0 -1
  681. package/dist/components/TreeContainer.vue.d.ts.map +0 -1
  682. package/dist/components/TreeContextMenu.vue.d.ts.map +0 -1
  683. package/dist/components/TreeDatePicker.vue.d.ts.map +0 -1
  684. package/dist/components/TreeDateTimePicker.vue.d.ts.map +0 -1
  685. package/dist/components/TreeDivider.vue.d.ts.map +0 -1
  686. package/dist/components/TreeDrawer.vue.d.ts.map +0 -1
  687. package/dist/components/TreeDropdown.vue.d.ts.map +0 -1
  688. package/dist/components/TreeEmptyState.vue.d.ts.map +0 -1
  689. package/dist/components/TreeFileUpload.vue.d.ts.map +0 -1
  690. package/dist/components/TreeFormField.vue.d.ts.map +0 -1
  691. package/dist/components/TreeGrid.vue.d.ts.map +0 -1
  692. package/dist/components/TreeIcon.vue.d.ts.map +0 -1
  693. package/dist/components/TreeInput.vue.d.ts.map +0 -1
  694. package/dist/components/TreeLink.vue.d.ts.map +0 -1
  695. package/dist/components/TreeMarkdownEditor.vue.d.ts.map +0 -1
  696. package/dist/components/TreeModal.vue.d.ts.map +0 -1
  697. package/dist/components/TreeMultiSelect.vue.d.ts.map +0 -1
  698. package/dist/components/TreeNavMenu.vue.d.ts.map +0 -1
  699. package/dist/components/TreeNavbar.vue.d.ts.map +0 -1
  700. package/dist/components/TreeNumberInput.vue.d.ts.map +0 -1
  701. package/dist/components/TreePagination.vue.d.ts.map +0 -1
  702. package/dist/components/TreePopover.vue.d.ts.map +0 -1
  703. package/dist/components/TreePricing.vue.d.ts.map +0 -1
  704. package/dist/components/TreePricingCard.vue.d.ts.map +0 -1
  705. package/dist/components/TreeProgress.vue.d.ts.map +0 -1
  706. package/dist/components/TreeRadio.vue.d.ts.map +0 -1
  707. package/dist/components/TreeRadioGroup.vue.d.ts.map +0 -1
  708. package/dist/components/TreeSelect.vue.d.ts.map +0 -1
  709. package/dist/components/TreeSelectableList.vue.d.ts.map +0 -1
  710. package/dist/components/TreeSidebar.vue.d.ts.map +0 -1
  711. package/dist/components/TreeSkeleton.vue.d.ts.map +0 -1
  712. package/dist/components/TreeSpinner.vue.d.ts.map +0 -1
  713. package/dist/components/TreeStack.vue.d.ts.map +0 -1
  714. package/dist/components/TreeStat.vue.d.ts.map +0 -1
  715. package/dist/components/TreeSteps.vue.d.ts.map +0 -1
  716. package/dist/components/TreeSwitch.vue.d.ts.map +0 -1
  717. package/dist/components/TreeTab.vue.d.ts.map +0 -1
  718. package/dist/components/TreeTabList.vue.d.ts.map +0 -1
  719. package/dist/components/TreeTabPanel.vue.d.ts.map +0 -1
  720. package/dist/components/TreeTable.vue.d.ts.map +0 -1
  721. package/dist/components/TreeTabs.vue.d.ts.map +0 -1
  722. package/dist/components/TreeTag.vue.d.ts.map +0 -1
  723. package/dist/components/TreeTextarea.vue.d.ts.map +0 -1
  724. package/dist/components/TreeTimeline.vue.d.ts.map +0 -1
  725. package/dist/components/TreeToast.vue.d.ts.map +0 -1
  726. package/dist/components/TreeToastProvider.vue.d.ts.map +0 -1
  727. package/dist/components/TreeToggleGroup.vue.d.ts.map +0 -1
  728. package/dist/components/TreeTooltip.vue.d.ts.map +0 -1
  729. package/dist/components/TreeTreeView.vue.d.ts.map +0 -1
  730. package/dist/components/TreeTreeViewItem.vue.d.ts.map +0 -1
  731. package/dist/index.cjs.map +0 -1
  732. package/dist/index.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TCard.vue_vue_type_script_setup_true_lang.cjs","names":["$slots"],"sources":["../../src/components/TCard.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport type { TCardVariant, TSize } from '../types/contracts';\n\nconst props = withDefaults(\n defineProps<{\n as?: string;\n variant?: TCardVariant;\n size?: TSize;\n title?: string;\n }>(),\n {\n as: 'section',\n variant: 'outline',\n size: 'md',\n title: undefined,\n },\n);\n\nconst classes = computed(() => [\n 't-card',\n `t-card--${props.variant}`,\n `t-card--${props.size}`,\n]);\n\nconst hasHeader = computed(() => !!props.title);\n</script>\n\n<template>\n <component\n :is=\"as\"\n :class=\"classes\"\n >\n <header\n v-if=\"$slots.header || hasHeader || $slots.actions\"\n class=\"t-card__header\"\n >\n <slot name=\"header\">\n <span\n v-if=\"title\"\n class=\"t-card__title\"\n >\n {{ title }}\n </span>\n <span\n v-if=\"$slots.actions\"\n class=\"t-card__actions\"\n >\n <slot name=\"actions\" />\n </span>\n </slot>\n </header>\n <div class=\"t-card__body\">\n <slot />\n </div>\n <footer\n v-if=\"$slots.footer\"\n class=\"t-card__footer\"\n >\n <slot name=\"footer\" />\n </footer>\n </component>\n</template>\n"],"mappings":"6UAIA,IAAM,EAAQ,EAeR,GAAA,EAAA,EAAA,SAAA,KAAyB,CAC7B,SACA,WAAW,EAAM,UACjB,WAAW,EAAM,MACnB,CAAC,EAEK,GAAA,EAAA,EAAA,SAAA,KAA2B,CAAC,CAAC,EAAM,KAAK,kFAKrC,EAAA,EAAE,EAAA,CACN,OAAA,EAAA,EAAA,eAAA,CAAO,EAAA,KAAO,CAAA,EAAA,2BAoBN,CAjBDA,EAAAA,OAAO,QAAU,EAAA,OAAaA,EAAAA,OAAO,UAAA,EAAA,EAAA,UAAA,CAAA,GAAA,EAAA,EAAA,mBAAA,CAiBpC,SAlBT,EAkBS,EAAA,EAAA,EAAA,WAAA,CADA,EAAA,OAAA,SAAA,CAAA,MAAA,CAXG,EAAA,QAAA,EAAA,EAAA,UAAA,CAAA,GAAA,EAAA,EAAA,mBAAA,CAID,OALP,GAAA,EAAA,EAAA,gBAAA,CAIK,EAAA,KAAK,EAAA,CAAA,IAAA,EAAA,EAAA,mBAAA,CAAA,GAAA,EAAA,EAGFA,EAAAA,OAAO,UAAA,EAAA,EAAA,UAAA,CAAA,GAAA,EAAA,EAAA,mBAAA,CAIR,OALP,EAKO,EAAA,EAAA,EAAA,WAAA,CADkB,EAAA,OAAA,SAAA,CAAA,CAAA,IAAA,EAAA,EAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA,IAAA,EAAA,EAAA,mBAAA,CAAA,GAAA,EAAA,2BAMvB,MAFN,EAEM,EAAA,EAAA,EAAA,WAAA,CADI,EAAA,OAAA,SAAA,CAAA,CAAA,EAGFA,EAAAA,OAAO,SAAA,EAAA,EAAA,UAAA,CAAA,GAAA,EAAA,EAAA,mBAAA,CAIN,SALT,EAKS,EAAA,EAAA,EAAA,WAAA,CADe,EAAA,OAAA,QAAA,CAAA,CAAA,IAAA,EAAA,EAAA,mBAAA,CAAA,GAAA,EAAA"}
@@ -0,0 +1,42 @@
1
+ import { computed as e, createBlock as t, createCommentVNode as n, createElementBlock as r, createElementVNode as i, defineComponent as a, normalizeClass as o, openBlock as s, renderSlot as c, resolveDynamicComponent as l, toDisplayString as u, withCtx as d } from "vue";
2
+ //#region src/components/TCard.vue?vue&type=script&setup=true&lang.ts
3
+ var f = {
4
+ key: 0,
5
+ class: "t-card__header"
6
+ }, p = {
7
+ key: 0,
8
+ class: "t-card__title"
9
+ }, m = {
10
+ key: 1,
11
+ class: "t-card__actions"
12
+ }, h = { class: "t-card__body" }, g = {
13
+ key: 1,
14
+ class: "t-card__footer"
15
+ }, _ = /*@__PURE__*/ a({
16
+ __name: "TCard",
17
+ props: {
18
+ as: { default: "section" },
19
+ variant: { default: "outline" },
20
+ size: { default: "md" },
21
+ title: { default: void 0 }
22
+ },
23
+ setup(a) {
24
+ let _ = a, v = e(() => [
25
+ "t-card",
26
+ `t-card--${_.variant}`,
27
+ `t-card--${_.size}`
28
+ ]), y = e(() => !!_.title);
29
+ return (e, _) => (s(), t(l(a.as), { class: o(v.value) }, {
30
+ default: d(() => [
31
+ e.$slots.header || y.value || e.$slots.actions ? (s(), r("header", f, [c(e.$slots, "header", {}, () => [a.title ? (s(), r("span", p, u(a.title), 1)) : n("", !0), e.$slots.actions ? (s(), r("span", m, [c(e.$slots, "actions")])) : n("", !0)])])) : n("", !0),
32
+ i("div", h, [c(e.$slots, "default")]),
33
+ e.$slots.footer ? (s(), r("footer", g, [c(e.$slots, "footer")])) : n("", !0)
34
+ ]),
35
+ _: 3
36
+ }, 8, ["class"]));
37
+ }
38
+ });
39
+ //#endregion
40
+ export { _ as default };
41
+
42
+ //# sourceMappingURL=TCard.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TCard.vue_vue_type_script_setup_true_lang.js","names":["$slots"],"sources":["../../src/components/TCard.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport type { TCardVariant, TSize } from '../types/contracts';\n\nconst props = withDefaults(\n defineProps<{\n as?: string;\n variant?: TCardVariant;\n size?: TSize;\n title?: string;\n }>(),\n {\n as: 'section',\n variant: 'outline',\n size: 'md',\n title: undefined,\n },\n);\n\nconst classes = computed(() => [\n 't-card',\n `t-card--${props.variant}`,\n `t-card--${props.size}`,\n]);\n\nconst hasHeader = computed(() => !!props.title);\n</script>\n\n<template>\n <component\n :is=\"as\"\n :class=\"classes\"\n >\n <header\n v-if=\"$slots.header || hasHeader || $slots.actions\"\n class=\"t-card__header\"\n >\n <slot name=\"header\">\n <span\n v-if=\"title\"\n class=\"t-card__title\"\n >\n {{ title }}\n </span>\n <span\n v-if=\"$slots.actions\"\n class=\"t-card__actions\"\n >\n <slot name=\"actions\" />\n </span>\n </slot>\n </header>\n <div class=\"t-card__body\">\n <slot />\n </div>\n <footer\n v-if=\"$slots.footer\"\n class=\"t-card__footer\"\n >\n <slot name=\"footer\" />\n </footer>\n </component>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;EAIA,IAAM,IAAQ,GAeR,IAAU,QAAe;GAC7B;GACA,WAAW,EAAM;GACjB,WAAW,EAAM;EACnB,CAAC,GAEK,IAAY,QAAe,CAAC,CAAC,EAAM,KAAK;yBAI5C,EAgCY,EA/BL,EAAA,EAAE,GAAA,EACN,OAAK,EAAE,EAAA,KAAO,EAAA,GAAA;oBAoBN;IAjBDA,EAAAA,OAAO,UAAU,EAAA,SAAaA,EAAAA,OAAO,WAAA,EAAA,GAD7C,EAkBS,UAlBT,GAkBS,CAdP,EAaO,EAAA,QAAA,UAAA,CAAA,SAAA,CAXG,EAAA,SAAA,EAAA,GADR,EAKO,QALP,GAKO,EADF,EAAA,KAAK,GAAA,CAAA,KAAA,EAAA,IAAA,EAAA,GAGFA,EAAAA,OAAO,WAAA,EAAA,GADf,EAKO,QALP,GAKO,CADL,EAAuB,EAAA,QAAA,SAAA,CAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,CAAA,KAAA,EAAA,IAAA,EAAA;IAI7B,EAEM,OAFN,GAEM,CADJ,EAAQ,EAAA,QAAA,SAAA,CAAA,CAAA;IAGFA,EAAAA,OAAO,UAAA,EAAA,GADf,EAKS,UALT,GAKS,CADP,EAAsB,EAAA,QAAA,QAAA,CAAA,CAAA,KAAA,EAAA,IAAA,EAAA"}
@@ -0,0 +1,2 @@
1
+ var e=require("./TCheckbox.vue_vue_type_script_setup_true_lang.cjs").default;exports.default=e;
2
+ //# sourceMappingURL=TCheckbox.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TCheckbox.cjs","names":[],"sources":["../../src/components/TCheckbox.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, useAttrs, watch } from 'vue';\nimport type { TSize } from '../types/contracts';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: boolean;\n size?: TSize;\n disabled?: boolean;\n indeterminate?: boolean;\n invalid?: boolean;\n }>(),\n {\n modelValue: false,\n size: 'md',\n disabled: false,\n indeterminate: false,\n invalid: false,\n },\n);\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: boolean];\n}>();\n\nconst attrs = useAttrs();\nconst inputRef = ref<HTMLInputElement | null>(null);\n\nwatch(\n () => props.indeterminate,\n (val) => {\n if (inputRef.value) {\n inputRef.value.indeterminate = val;\n }\n },\n);\n\nwatch(inputRef, (el) => {\n if (el) {\n el.indeterminate = props.indeterminate;\n }\n});\n\nconst rootClasses = computed(() => [\n 't-checkbox',\n `t-checkbox--${props.size}`,\n {\n 'is-checked': props.modelValue,\n 'is-indeterminate': props.indeterminate,\n 'is-disabled': props.disabled,\n 'is-invalid': props.invalid,\n },\n attrs.class,\n]);\n\nconst rootStyle = computed(() => attrs.style);\n\nconst inputAttrs = computed(() => {\n const { class: _class, style: _style, ...rest } = attrs;\n return rest;\n});\n\nconst onChange = () => {\n emit('update:modelValue', !props.modelValue);\n};\n</script>\n\n<template>\n <label\n :class=\"rootClasses\"\n :style=\"rootStyle\"\n >\n <input\n ref=\"inputRef\"\n v-bind=\"inputAttrs\"\n type=\"checkbox\"\n class=\"t-checkbox__input\"\n :checked=\"modelValue\"\n :disabled=\"disabled\"\n :aria-checked=\"indeterminate ? 'mixed' : modelValue\"\n :aria-invalid=\"invalid || undefined\"\n @change=\"onChange\"\n >\n <span\n class=\"t-checkbox__control\"\n aria-hidden=\"true\"\n >\n <svg\n v-if=\"modelValue && !indeterminate\"\n class=\"t-checkbox__icon\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"3.5 8.5 6.5 11.5 12.5 4.5\" />\n </svg>\n <svg\n v-else-if=\"indeterminate\"\n class=\"t-checkbox__icon\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n >\n <line\n x1=\"4\"\n y1=\"8\"\n x2=\"12\"\n y2=\"8\"\n />\n </svg>\n </span>\n <span\n v-if=\"$slots.default\"\n class=\"t-checkbox__label\"\n >\n <slot />\n </span>\n </label>\n</template>\n"],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import e from "./TCheckbox.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/TCheckbox.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
6
+
7
+ //# sourceMappingURL=TCheckbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TCheckbox.js","names":[],"sources":["../../src/components/TCheckbox.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, useAttrs, watch } from 'vue';\nimport type { TSize } from '../types/contracts';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: boolean;\n size?: TSize;\n disabled?: boolean;\n indeterminate?: boolean;\n invalid?: boolean;\n }>(),\n {\n modelValue: false,\n size: 'md',\n disabled: false,\n indeterminate: false,\n invalid: false,\n },\n);\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: boolean];\n}>();\n\nconst attrs = useAttrs();\nconst inputRef = ref<HTMLInputElement | null>(null);\n\nwatch(\n () => props.indeterminate,\n (val) => {\n if (inputRef.value) {\n inputRef.value.indeterminate = val;\n }\n },\n);\n\nwatch(inputRef, (el) => {\n if (el) {\n el.indeterminate = props.indeterminate;\n }\n});\n\nconst rootClasses = computed(() => [\n 't-checkbox',\n `t-checkbox--${props.size}`,\n {\n 'is-checked': props.modelValue,\n 'is-indeterminate': props.indeterminate,\n 'is-disabled': props.disabled,\n 'is-invalid': props.invalid,\n },\n attrs.class,\n]);\n\nconst rootStyle = computed(() => attrs.style);\n\nconst inputAttrs = computed(() => {\n const { class: _class, style: _style, ...rest } = attrs;\n return rest;\n});\n\nconst onChange = () => {\n emit('update:modelValue', !props.modelValue);\n};\n</script>\n\n<template>\n <label\n :class=\"rootClasses\"\n :style=\"rootStyle\"\n >\n <input\n ref=\"inputRef\"\n v-bind=\"inputAttrs\"\n type=\"checkbox\"\n class=\"t-checkbox__input\"\n :checked=\"modelValue\"\n :disabled=\"disabled\"\n :aria-checked=\"indeterminate ? 'mixed' : modelValue\"\n :aria-invalid=\"invalid || undefined\"\n @change=\"onChange\"\n >\n <span\n class=\"t-checkbox__control\"\n aria-hidden=\"true\"\n >\n <svg\n v-if=\"modelValue && !indeterminate\"\n class=\"t-checkbox__icon\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"3.5 8.5 6.5 11.5 12.5 4.5\" />\n </svg>\n <svg\n v-else-if=\"indeterminate\"\n class=\"t-checkbox__icon\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n >\n <line\n x1=\"4\"\n y1=\"8\"\n x2=\"12\"\n y2=\"8\"\n />\n </svg>\n </span>\n <span\n v-if=\"$slots.default\"\n class=\"t-checkbox__label\"\n >\n <slot />\n </span>\n </label>\n</template>\n"],"mappings":""}
@@ -1,7 +1,7 @@
1
- import { TreeSize } from '../types/contracts';
1
+ import { TSize } from '../types/contracts';
2
2
  type __VLS_Props = {
3
3
  modelValue?: boolean;
4
- size?: TreeSize;
4
+ size?: TSize;
5
5
  disabled?: boolean;
6
6
  indeterminate?: boolean;
7
7
  invalid?: boolean;
@@ -24,7 +24,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
24
24
  }>, {
25
25
  modelValue: boolean;
26
26
  disabled: boolean;
27
- size: TreeSize;
27
+ size: TSize;
28
28
  indeterminate: boolean;
29
29
  invalid: boolean;
30
30
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
@@ -37,4 +37,4 @@ type __VLS_WithTemplateSlots<T, S> = T & {
37
37
  $slots: S;
38
38
  };
39
39
  };
40
- //# sourceMappingURL=TreeCheckbox.vue.d.ts.map
40
+ //# sourceMappingURL=TCheckbox.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TCheckbox.vue.d.ts","sourceRoot":"","sources":["../../src/components/TCheckbox.vue"],"names":[],"mappings":"AAmIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAMhD,KAAK,WAAW,GAAG;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAmEJ,iBAAS,cAAc;WA8ET,OAAO,IAA6B;;yBAXrB,GAAG;;;;;;EAgB/B;AAeD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;gBA3KJ,OAAO;cAET,OAAO;UADX,KAAK;mBAEI,OAAO;aACb,OAAO;;;OAgLnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -0,0 +1,2 @@
1
+ let e=require("vue");var t=[`checked`,`disabled`,`aria-checked`,`aria-invalid`],n={class:`t-checkbox__control`,"aria-hidden":`true`},r={key:0,class:`t-checkbox__icon`,viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`},i={key:1,class:`t-checkbox__icon`,viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`},a={key:0,class:`t-checkbox__label`},o=(0,e.defineComponent)({inheritAttrs:!1,__name:`TCheckbox`,props:{modelValue:{type:Boolean,default:!1},size:{default:`md`},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},invalid:{type:Boolean,default:!1}},emits:[`update:modelValue`],setup(o,{emit:s}){let c=o,l=s,u=(0,e.useAttrs)(),d=(0,e.ref)(null);(0,e.watch)(()=>c.indeterminate,e=>{d.value&&(d.value.indeterminate=e)}),(0,e.watch)(d,e=>{e&&(e.indeterminate=c.indeterminate)});let f=(0,e.computed)(()=>[`t-checkbox`,`t-checkbox--${c.size}`,{"is-checked":c.modelValue,"is-indeterminate":c.indeterminate,"is-disabled":c.disabled,"is-invalid":c.invalid},u.class]),p=(0,e.computed)(()=>u.style),m=(0,e.computed)(()=>{let{class:e,style:t,...n}=u;return n}),h=()=>{l(`update:modelValue`,!c.modelValue)};return(s,c)=>((0,e.openBlock)(),(0,e.createElementBlock)(`label`,{class:(0,e.normalizeClass)(f.value),style:(0,e.normalizeStyle)(p.value)},[(0,e.createElementVNode)(`input`,(0,e.mergeProps)({ref_key:`inputRef`,ref:d},m.value,{type:`checkbox`,class:`t-checkbox__input`,checked:o.modelValue,disabled:o.disabled,"aria-checked":o.indeterminate?`mixed`:o.modelValue,"aria-invalid":o.invalid||void 0,onChange:h}),null,16,t),(0,e.createElementVNode)(`span`,n,[o.modelValue&&!o.indeterminate?((0,e.openBlock)(),(0,e.createElementBlock)(`svg`,r,[...c[0]||=[(0,e.createElementVNode)(`polyline`,{points:`3.5 8.5 6.5 11.5 12.5 4.5`},null,-1)]])):o.indeterminate?((0,e.openBlock)(),(0,e.createElementBlock)(`svg`,i,[...c[1]||=[(0,e.createElementVNode)(`line`,{x1:`4`,y1:`8`,x2:`12`,y2:`8`},null,-1)]])):(0,e.createCommentVNode)(``,!0)]),s.$slots.default?((0,e.openBlock)(),(0,e.createElementBlock)(`span`,a,[(0,e.renderSlot)(s.$slots,`default`)])):(0,e.createCommentVNode)(``,!0)],6))}});exports.default=o;
2
+ //# sourceMappingURL=TCheckbox.vue_vue_type_script_setup_true_lang.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TCheckbox.vue_vue_type_script_setup_true_lang.cjs","names":["$slots"],"sources":["../../src/components/TCheckbox.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, useAttrs, watch } from 'vue';\nimport type { TSize } from '../types/contracts';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: boolean;\n size?: TSize;\n disabled?: boolean;\n indeterminate?: boolean;\n invalid?: boolean;\n }>(),\n {\n modelValue: false,\n size: 'md',\n disabled: false,\n indeterminate: false,\n invalid: false,\n },\n);\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: boolean];\n}>();\n\nconst attrs = useAttrs();\nconst inputRef = ref<HTMLInputElement | null>(null);\n\nwatch(\n () => props.indeterminate,\n (val) => {\n if (inputRef.value) {\n inputRef.value.indeterminate = val;\n }\n },\n);\n\nwatch(inputRef, (el) => {\n if (el) {\n el.indeterminate = props.indeterminate;\n }\n});\n\nconst rootClasses = computed(() => [\n 't-checkbox',\n `t-checkbox--${props.size}`,\n {\n 'is-checked': props.modelValue,\n 'is-indeterminate': props.indeterminate,\n 'is-disabled': props.disabled,\n 'is-invalid': props.invalid,\n },\n attrs.class,\n]);\n\nconst rootStyle = computed(() => attrs.style);\n\nconst inputAttrs = computed(() => {\n const { class: _class, style: _style, ...rest } = attrs;\n return rest;\n});\n\nconst onChange = () => {\n emit('update:modelValue', !props.modelValue);\n};\n</script>\n\n<template>\n <label\n :class=\"rootClasses\"\n :style=\"rootStyle\"\n >\n <input\n ref=\"inputRef\"\n v-bind=\"inputAttrs\"\n type=\"checkbox\"\n class=\"t-checkbox__input\"\n :checked=\"modelValue\"\n :disabled=\"disabled\"\n :aria-checked=\"indeterminate ? 'mixed' : modelValue\"\n :aria-invalid=\"invalid || undefined\"\n @change=\"onChange\"\n >\n <span\n class=\"t-checkbox__control\"\n aria-hidden=\"true\"\n >\n <svg\n v-if=\"modelValue && !indeterminate\"\n class=\"t-checkbox__icon\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"3.5 8.5 6.5 11.5 12.5 4.5\" />\n </svg>\n <svg\n v-else-if=\"indeterminate\"\n class=\"t-checkbox__icon\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n >\n <line\n x1=\"4\"\n y1=\"8\"\n x2=\"12\"\n y2=\"8\"\n />\n </svg>\n </span>\n <span\n v-if=\"$slots.default\"\n class=\"t-checkbox__label\"\n >\n <slot />\n </span>\n </label>\n</template>\n"],"mappings":"quBAQA,IAAM,EAAQ,EAiBR,EAAO,EAIP,GAAA,EAAA,EAAA,SAAA,CAAiB,EACjB,GAAA,EAAA,EAAA,IAAA,CAAwC,IAAI,GAElD,EAAA,EAAA,MAAA,KACQ,EAAM,cACX,GAAQ,CACH,EAAS,QACX,EAAS,MAAM,cAAgB,EAEnC,CACF,GAEA,EAAA,EAAA,MAAA,CAAM,EAAW,GAAO,CAClB,IACF,EAAG,cAAgB,EAAM,cAE7B,CAAC,EAED,IAAM,GAAA,EAAA,EAAA,SAAA,KAA6B,CACjC,aACA,eAAe,EAAM,OACrB,CACE,aAAc,EAAM,WACpB,mBAAoB,EAAM,cAC1B,cAAe,EAAM,SACrB,aAAc,EAAM,OACtB,EACA,EAAM,KACR,CAAC,EAEK,GAAA,EAAA,EAAA,SAAA,KAA2B,EAAM,KAAK,EAEtC,GAAA,EAAA,EAAA,SAAA,KAA4B,CAChC,GAAM,CAAE,MAAO,EAAQ,MAAO,EAAQ,GAAG,GAAS,EAClD,OAAO,CACT,CAAC,EAEK,MAAiB,CACrB,EAAK,oBAAqB,CAAC,EAAM,UAAU,CAC7C,2DA0DU,QAAA,CArDL,OAAA,EAAA,EAAA,eAAA,CAAO,EAAA,KAAW,EAClB,OAAA,EAAA,EAAA,eAAA,CAAO,EAAA,KAAS,6BAYhB,SAAA,EAAA,EAAA,WAAA,CAAA,SATK,WAAJ,IAAI,GACI,EAAA,MAAU,CAClB,KAAK,WACL,MAAM,oBACL,QAAS,EAAA,WACT,SAAU,EAAA,SACV,eAAc,EAAA,cAAa,QAAa,EAAA,WACxC,eAAc,EAAA,SAAW,IAAA,GACjB,iDAkCJ,OAhCP,EAgCO,CA3BG,EAAA,YAAU,CAAK,EAAA,gBAAA,EAAA,EAAA,UAAA,CAAA,GAAA,EAAA,EAAA,mBAAA,CAUjB,MAXN,EAWM,CAAA,GAAA,AAAA,EAAA,KAAA,EAAA,EAAA,EAAA,mBAAA,CAD2C,WAAA,CAArC,OAAO,2BAA2B,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA,GAGjC,EAAA,gBAAA,EAAA,EAAA,UAAA,CAAA,GAAA,EAAA,EAAA,mBAAA,CAcP,MAfN,EAeM,CAAA,GAAA,AAAA,EAAA,KAAA,EAAA,EAAA,EAAA,mBAAA,CADF,OAAA,CAJA,GAAG,IACH,GAAG,IACH,GAAG,KACH,GAAG,oDAKDA,EAAAA,OAAO,UAAA,EAAA,EAAA,UAAA,CAAA,GAAA,EAAA,EAAA,mBAAA,CAIR,OALP,EAKO,EAAA,EAAA,EAAA,WAAA,CADG,EAAA,OAAA,SAAA,CAAA,CAAA,IAAA,EAAA,EAAA,mBAAA,CAAA,GAAA,EAAA"}
@@ -0,0 +1,106 @@
1
+ import { computed as e, createCommentVNode as t, createElementBlock as n, createElementVNode as r, defineComponent as i, mergeProps as a, normalizeClass as o, normalizeStyle as s, openBlock as c, ref as l, renderSlot as u, useAttrs as d, watch as f } from "vue";
2
+ //#region src/components/TCheckbox.vue?vue&type=script&setup=true&lang.ts
3
+ var p = [
4
+ "checked",
5
+ "disabled",
6
+ "aria-checked",
7
+ "aria-invalid"
8
+ ], m = {
9
+ class: "t-checkbox__control",
10
+ "aria-hidden": "true"
11
+ }, h = {
12
+ key: 0,
13
+ class: "t-checkbox__icon",
14
+ viewBox: "0 0 16 16",
15
+ fill: "none",
16
+ stroke: "currentColor",
17
+ "stroke-width": "2",
18
+ "stroke-linecap": "round",
19
+ "stroke-linejoin": "round"
20
+ }, g = {
21
+ key: 1,
22
+ class: "t-checkbox__icon",
23
+ viewBox: "0 0 16 16",
24
+ fill: "none",
25
+ stroke: "currentColor",
26
+ "stroke-width": "2",
27
+ "stroke-linecap": "round"
28
+ }, _ = {
29
+ key: 0,
30
+ class: "t-checkbox__label"
31
+ }, v = /*@__PURE__*/ i({
32
+ inheritAttrs: !1,
33
+ __name: "TCheckbox",
34
+ props: {
35
+ modelValue: {
36
+ type: Boolean,
37
+ default: !1
38
+ },
39
+ size: { default: "md" },
40
+ disabled: {
41
+ type: Boolean,
42
+ default: !1
43
+ },
44
+ indeterminate: {
45
+ type: Boolean,
46
+ default: !1
47
+ },
48
+ invalid: {
49
+ type: Boolean,
50
+ default: !1
51
+ }
52
+ },
53
+ emits: ["update:modelValue"],
54
+ setup(i, { emit: v }) {
55
+ let y = i, b = v, x = d(), S = l(null);
56
+ f(() => y.indeterminate, (e) => {
57
+ S.value && (S.value.indeterminate = e);
58
+ }), f(S, (e) => {
59
+ e && (e.indeterminate = y.indeterminate);
60
+ });
61
+ let C = e(() => [
62
+ "t-checkbox",
63
+ `t-checkbox--${y.size}`,
64
+ {
65
+ "is-checked": y.modelValue,
66
+ "is-indeterminate": y.indeterminate,
67
+ "is-disabled": y.disabled,
68
+ "is-invalid": y.invalid
69
+ },
70
+ x.class
71
+ ]), w = e(() => x.style), T = e(() => {
72
+ let { class: e, style: t, ...n } = x;
73
+ return n;
74
+ }), E = () => {
75
+ b("update:modelValue", !y.modelValue);
76
+ };
77
+ return (e, l) => (c(), n("label", {
78
+ class: o(C.value),
79
+ style: s(w.value)
80
+ }, [
81
+ r("input", a({
82
+ ref_key: "inputRef",
83
+ ref: S
84
+ }, T.value, {
85
+ type: "checkbox",
86
+ class: "t-checkbox__input",
87
+ checked: i.modelValue,
88
+ disabled: i.disabled,
89
+ "aria-checked": i.indeterminate ? "mixed" : i.modelValue,
90
+ "aria-invalid": i.invalid || void 0,
91
+ onChange: E
92
+ }), null, 16, p),
93
+ r("span", m, [i.modelValue && !i.indeterminate ? (c(), n("svg", h, [...l[0] ||= [r("polyline", { points: "3.5 8.5 6.5 11.5 12.5 4.5" }, null, -1)]])) : i.indeterminate ? (c(), n("svg", g, [...l[1] ||= [r("line", {
94
+ x1: "4",
95
+ y1: "8",
96
+ x2: "12",
97
+ y2: "8"
98
+ }, null, -1)]])) : t("", !0)]),
99
+ e.$slots.default ? (c(), n("span", _, [u(e.$slots, "default")])) : t("", !0)
100
+ ], 6));
101
+ }
102
+ });
103
+ //#endregion
104
+ export { v as default };
105
+
106
+ //# sourceMappingURL=TCheckbox.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TCheckbox.vue_vue_type_script_setup_true_lang.js","names":["$slots"],"sources":["../../src/components/TCheckbox.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, useAttrs, watch } from 'vue';\nimport type { TSize } from '../types/contracts';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: boolean;\n size?: TSize;\n disabled?: boolean;\n indeterminate?: boolean;\n invalid?: boolean;\n }>(),\n {\n modelValue: false,\n size: 'md',\n disabled: false,\n indeterminate: false,\n invalid: false,\n },\n);\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: boolean];\n}>();\n\nconst attrs = useAttrs();\nconst inputRef = ref<HTMLInputElement | null>(null);\n\nwatch(\n () => props.indeterminate,\n (val) => {\n if (inputRef.value) {\n inputRef.value.indeterminate = val;\n }\n },\n);\n\nwatch(inputRef, (el) => {\n if (el) {\n el.indeterminate = props.indeterminate;\n }\n});\n\nconst rootClasses = computed(() => [\n 't-checkbox',\n `t-checkbox--${props.size}`,\n {\n 'is-checked': props.modelValue,\n 'is-indeterminate': props.indeterminate,\n 'is-disabled': props.disabled,\n 'is-invalid': props.invalid,\n },\n attrs.class,\n]);\n\nconst rootStyle = computed(() => attrs.style);\n\nconst inputAttrs = computed(() => {\n const { class: _class, style: _style, ...rest } = attrs;\n return rest;\n});\n\nconst onChange = () => {\n emit('update:modelValue', !props.modelValue);\n};\n</script>\n\n<template>\n <label\n :class=\"rootClasses\"\n :style=\"rootStyle\"\n >\n <input\n ref=\"inputRef\"\n v-bind=\"inputAttrs\"\n type=\"checkbox\"\n class=\"t-checkbox__input\"\n :checked=\"modelValue\"\n :disabled=\"disabled\"\n :aria-checked=\"indeterminate ? 'mixed' : modelValue\"\n :aria-invalid=\"invalid || undefined\"\n @change=\"onChange\"\n >\n <span\n class=\"t-checkbox__control\"\n aria-hidden=\"true\"\n >\n <svg\n v-if=\"modelValue && !indeterminate\"\n class=\"t-checkbox__icon\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <polyline points=\"3.5 8.5 6.5 11.5 12.5 4.5\" />\n </svg>\n <svg\n v-else-if=\"indeterminate\"\n class=\"t-checkbox__icon\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n >\n <line\n x1=\"4\"\n y1=\"8\"\n x2=\"12\"\n y2=\"8\"\n />\n </svg>\n </span>\n <span\n v-if=\"$slots.default\"\n class=\"t-checkbox__label\"\n >\n <slot />\n </span>\n </label>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQA,IAAM,IAAQ,GAiBR,IAAO,GAIP,IAAQ,EAAS,GACjB,IAAW,EAA6B,IAAI;EAWlD,AATA,QACQ,EAAM,gBACX,MAAQ;GACP,AAAI,EAAS,UACX,EAAS,MAAM,gBAAgB;EAEnC,CACF,GAEA,EAAM,IAAW,MAAO;GACtB,AAAI,MACF,EAAG,gBAAgB,EAAM;EAE7B,CAAC;EAED,IAAM,IAAc,QAAe;GACjC;GACA,eAAe,EAAM;GACrB;IACE,cAAc,EAAM;IACpB,oBAAoB,EAAM;IAC1B,eAAe,EAAM;IACrB,cAAc,EAAM;GACtB;GACA,EAAM;EACR,CAAC,GAEK,IAAY,QAAe,EAAM,KAAK,GAEtC,IAAa,QAAe;GAChC,IAAM,EAAE,OAAO,GAAQ,OAAO,GAAQ,GAAG,MAAS;GAClD,OAAO;EACT,CAAC,GAEK,UAAiB;GACrB,EAAK,qBAAqB,CAAC,EAAM,UAAU;EAC7C;yBAIE,EAsDQ,SAAA;GArDL,OAAK,EAAE,EAAA,KAAW;GAClB,OAAK,EAAE,EAAA,KAAS;;GAEjB,EAUC,SAVD,EAUC;aATK;IAAJ,KAAI;MACI,EAAA,OAAU;IAClB,MAAK;IACL,OAAM;IACL,SAAS,EAAA;IACT,UAAU,EAAA;IACV,gBAAc,EAAA,gBAAa,UAAa,EAAA;IACxC,gBAAc,EAAA,WAAW,KAAA;IACjB;;GAEX,EAgCO,QAhCP,GAgCO,CA3BG,EAAA,cAAU,CAAK,EAAA,iBAAA,EAAA,GADvB,EAWM,OAXN,GAWM,CAAA,GAAA,AAAA,EAAA,OAAA,CADJ,EAA+C,YAAA,EAArC,QAAO,4BAA2B,GAAA,MAAA,EAAA,CAAA,CAAA,CAAA,KAGjC,EAAA,iBAAA,EAAA,GADb,EAeM,OAfN,GAeM,CAAA,GAAA,AAAA,EAAA,OAAA,CANJ,EAKE,QAAA;IAJA,IAAG;IACH,IAAG;IACH,IAAG;IACH,IAAG;;GAKDA,EAAAA,OAAO,WAAA,EAAA,GADf,EAKO,QALP,GAKO,CADL,EAAQ,EAAA,QAAA,SAAA,CAAA,CAAA,KAAA,EAAA,IAAA,EAAA"}
@@ -0,0 +1,2 @@
1
+ var e=require("./TCombobox.vue_vue_type_script_setup_true_lang.cjs").default;exports.default=e;
2
+ //# sourceMappingURL=TCombobox.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TCombobox.cjs","names":[],"sources":["../../src/components/TCombobox.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { createId, isEscapeKey } from '@treeui/utils';\nimport { computed, onBeforeUnmount, ref, toRef, useAttrs, watch } from 'vue';\nimport { useControllableOpen } from '../composables/useControllableOpen';\nimport type { TSize } from '../types/contracts';\nimport TSpinner from './TSpinner.vue';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nexport interface TComboboxOption {\n label: string;\n value: string;\n description?: string;\n keywords?: string[];\n disabled?: boolean;\n}\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: string;\n options?: TComboboxOption[];\n open?: boolean;\n defaultOpen?: boolean;\n size?: TSize;\n disabled?: boolean;\n loading?: boolean;\n invalid?: boolean;\n placeholder?: string;\n emptyText?: string;\n }>(),\n {\n modelValue: '',\n options: () => [],\n open: undefined,\n defaultOpen: false,\n size: 'md',\n disabled: false,\n loading: false,\n invalid: false,\n placeholder: '',\n emptyText: 'No results found.',\n },\n);\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string];\n 'update:open': [value: boolean];\n 'open-change': [value: boolean];\n 'input-change': [value: string];\n}>();\n\ndefineSlots<{\n prefix?: () => unknown;\n option?: (props: {\n option: TComboboxOption;\n selected: boolean;\n active: boolean;\n }) => unknown;\n empty?: (props: { query: string }) => unknown;\n}>();\n\nconst attrs = useAttrs();\nconst listboxId = createId('t-combobox');\nconst rootRef = ref<HTMLElement | null>(null);\nconst activeIndex = ref(-1);\nconst query = ref('');\n\nconst normalize = (value: string) => value.trim().toLowerCase();\nconst getOptionId = (value: string) => `${listboxId}-option-${value}`;\n\nconst selectedOption = computed(() =>\n props.options.find((option) => option.value === props.modelValue),\n);\n\nconst selectedLabel = computed(() => selectedOption.value?.label ?? '');\n\nconst inputAttrs = computed(() => {\n const { class: _class, style: _style, autocomplete, ...rest } = attrs;\n return {\n autocomplete: typeof autocomplete === 'string' ? autocomplete : 'off',\n ...rest,\n };\n});\n\nconst listboxLabel = computed(() =>\n typeof attrs['aria-label'] === 'string' ? attrs['aria-label'] : undefined,\n);\n\nconst listboxLabelledby = computed(() =>\n typeof attrs['aria-labelledby'] === 'string' ? attrs['aria-labelledby'] : undefined,\n);\n\nconst { value: isOpen, setValue } = useControllableOpen(\n toRef(props, 'open'),\n props.defaultOpen,\n (value) => {\n emit('update:open', value);\n emit('open-change', value);\n },\n);\n\nconst rootClasses = computed(() => [\n 't-combobox',\n `t-combobox--${props.size}`,\n {\n 'is-disabled': props.disabled,\n 'is-invalid': props.invalid,\n 'is-loading': props.loading,\n 'is-open': isOpen.value,\n },\n attrs.class,\n]);\n\nconst rootStyle = computed(() => attrs.style);\n\nconst filteredOptions = computed(() => {\n const normalizedQuery = normalize(query.value);\n\n if (!normalizedQuery) {\n return props.options;\n }\n\n return props.options.filter((option) => {\n const fields = [\n option.label,\n option.description ?? '',\n ...(option.keywords ?? []),\n ];\n\n return fields.some((field) => field.toLowerCase().includes(normalizedQuery));\n });\n});\n\nconst enabledFilteredIndexes = computed(() =>\n filteredOptions.value.reduce<number[]>((indexes, option, index) => {\n if (!option.disabled) {\n indexes.push(index);\n }\n\n return indexes;\n }, []),\n);\n\nconst activeOption = computed(() =>\n activeIndex.value >= 0 ? filteredOptions.value[activeIndex.value] : undefined,\n);\n\nconst activeDescendant = computed(() =>\n isOpen.value && activeOption.value ? getOptionId(activeOption.value.value) : undefined,\n);\n\nconst syncQueryFromSelection = () => {\n query.value = selectedLabel.value;\n};\n\nconst setInitialActiveIndex = (fallback: 'first' | 'last' = 'first') => {\n const selectedIndex = filteredOptions.value.findIndex((option) =>\n option.value === props.modelValue && !option.disabled,\n );\n\n if (selectedIndex >= 0) {\n activeIndex.value = selectedIndex;\n return;\n }\n\n if (enabledFilteredIndexes.value.length === 0) {\n activeIndex.value = -1;\n return;\n }\n\n activeIndex.value =\n fallback === 'last'\n ? enabledFilteredIndexes.value[enabledFilteredIndexes.value.length - 1]\n : enabledFilteredIndexes.value[0];\n};\n\nconst moveActive = (direction: 1 | -1) => {\n if (enabledFilteredIndexes.value.length === 0) {\n activeIndex.value = -1;\n return;\n }\n\n const currentEnabledIndex = enabledFilteredIndexes.value.indexOf(activeIndex.value);\n\n if (currentEnabledIndex === -1) {\n activeIndex.value =\n direction === 1\n ? enabledFilteredIndexes.value[0]\n : enabledFilteredIndexes.value[enabledFilteredIndexes.value.length - 1];\n return;\n }\n\n const nextEnabledIndex = currentEnabledIndex + direction;\n\n if (nextEnabledIndex < 0 || nextEnabledIndex >= enabledFilteredIndexes.value.length) {\n return;\n }\n\n activeIndex.value = enabledFilteredIndexes.value[nextEnabledIndex];\n};\n\nconst openListbox = (fallback: 'first' | 'last' = 'first') => {\n if (props.disabled) {\n return;\n }\n\n setValue(true);\n setInitialActiveIndex(fallback);\n};\n\nconst commitPendingClear = () => {\n if (query.value.trim() !== '' || !props.modelValue) {\n return false;\n }\n\n emit('update:modelValue', '');\n return true;\n};\n\nconst closeListbox = (restoreSelection = false) => {\n setValue(false);\n activeIndex.value = -1;\n\n if (!restoreSelection) {\n return;\n }\n\n if (commitPendingClear()) {\n return;\n }\n\n if (selectedLabel.value && query.value !== selectedLabel.value) {\n query.value = selectedLabel.value;\n }\n};\n\nconst selectOption = (option: TComboboxOption) => {\n if (option.disabled) {\n return;\n }\n\n query.value = option.label;\n emit('update:modelValue', option.value);\n closeListbox(false);\n};\n\nconst onInput = (event: Event) => {\n query.value = (event.target as HTMLInputElement).value;\n emit('input-change', query.value);\n\n if (props.disabled) {\n return;\n }\n\n if (!isOpen.value) {\n openListbox('first');\n return;\n }\n\n setInitialActiveIndex('first');\n};\n\nconst onInputFocus = () => {\n openListbox('first');\n};\n\nconst onInputClick = () => {\n if (!isOpen.value) {\n openListbox('first');\n }\n};\n\nconst onInputKeydown = (event: KeyboardEvent) => {\n if (props.disabled) {\n return;\n }\n\n if (isEscapeKey(event)) {\n if (isOpen.value) {\n event.preventDefault();\n closeListbox(true);\n }\n\n return;\n }\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n\n if (!isOpen.value) {\n openListbox('first');\n } else {\n moveActive(1);\n }\n break;\n case 'ArrowUp':\n event.preventDefault();\n\n if (!isOpen.value) {\n openListbox('last');\n } else {\n moveActive(-1);\n }\n break;\n case 'Enter':\n if (isOpen.value && activeOption.value && !activeOption.value.disabled) {\n event.preventDefault();\n selectOption(activeOption.value);\n }\n break;\n case 'Home':\n if (!isOpen.value) return;\n event.preventDefault();\n setInitialActiveIndex('first');\n break;\n case 'End':\n if (!isOpen.value) return;\n event.preventDefault();\n setInitialActiveIndex('last');\n break;\n case 'Tab':\n closeListbox(true);\n break;\n default:\n break;\n }\n};\n\nconst onOptionPointerEnter = (index: number) => {\n const option = filteredOptions.value[index];\n\n if (option && !option.disabled) {\n activeIndex.value = index;\n }\n};\n\nconst onDocumentPointerDown = (event: PointerEvent) => {\n if (!isOpen.value) return;\n const target = event.target;\n if (!(target instanceof Node)) return;\n if (rootRef.value?.contains(target)) return;\n closeListbox(true);\n};\n\nwatch(isOpen, (value) => {\n if (value) {\n document.addEventListener('pointerdown', onDocumentPointerDown);\n } else {\n document.removeEventListener('pointerdown', onDocumentPointerDown);\n }\n});\n\nwatch(\n () => props.modelValue,\n () => {\n if (!isOpen.value) {\n syncQueryFromSelection();\n }\n },\n { immediate: true },\n);\n\nwatch(\n () => props.options,\n () => {\n if (!isOpen.value) {\n syncQueryFromSelection();\n return;\n }\n\n setInitialActiveIndex('first');\n },\n { deep: true },\n);\n\nwatch(filteredOptions, () => {\n if (!isOpen.value) {\n return;\n }\n\n if (filteredOptions.value.length === 0) {\n activeIndex.value = -1;\n return;\n }\n\n const current = filteredOptions.value[activeIndex.value];\n\n if (!current || current.disabled) {\n setInitialActiveIndex('first');\n }\n});\n\nonBeforeUnmount(() => {\n document.removeEventListener('pointerdown', onDocumentPointerDown);\n});\n</script>\n\n<template>\n <div\n ref=\"rootRef\"\n :class=\"rootClasses\"\n :style=\"rootStyle\"\n :data-state=\"isOpen ? 'open' : 'closed'\"\n >\n <div class=\"t-combobox__control\">\n <span\n v-if=\"$slots.prefix\"\n class=\"t-combobox__slot t-combobox__slot--prefix\"\n >\n <slot name=\"prefix\" />\n </span>\n <input\n v-bind=\"inputAttrs\"\n class=\"t-combobox__input\"\n role=\"combobox\"\n type=\"text\"\n :value=\"query\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :aria-controls=\"isOpen ? listboxId : undefined\"\n :aria-expanded=\"isOpen\"\n :aria-activedescendant=\"activeDescendant\"\n :aria-invalid=\"invalid || undefined\"\n :aria-busy=\"loading || undefined\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n @input=\"onInput\"\n @focus=\"onInputFocus\"\n @click=\"onInputClick\"\n @keydown=\"onInputKeydown\"\n >\n <TSpinner\n v-if=\"loading\"\n size=\"sm\"\n label=\"Loading\"\n />\n <svg\n v-else\n class=\"t-combobox__indicator\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <polyline points=\"4 6 8 10 12 6\" />\n </svg>\n </div>\n\n <transition name=\"t-fade\">\n <ul\n v-if=\"isOpen && !disabled\"\n :id=\"listboxId\"\n role=\"listbox\"\n class=\"t-combobox__listbox\"\n :aria-label=\"listboxLabel\"\n :aria-labelledby=\"listboxLabelledby\"\n >\n <li\n v-if=\"filteredOptions.length === 0\"\n class=\"t-combobox__empty\"\n >\n <slot\n name=\"empty\"\n :query=\"query\"\n >\n {{ emptyText }}\n </slot>\n </li>\n\n <template v-else>\n <li\n v-for=\"(option, index) in filteredOptions\"\n :id=\"getOptionId(option.value)\"\n :key=\"option.value\"\n role=\"option\"\n class=\"t-combobox__option\"\n :class=\"{\n 'is-active': index === activeIndex,\n 'is-disabled': option.disabled,\n 'is-selected': option.value === modelValue,\n }\"\n :aria-selected=\"option.value === modelValue\"\n :aria-disabled=\"option.disabled || undefined\"\n @mouseenter=\"onOptionPointerEnter(index)\"\n @click=\"selectOption(option)\"\n >\n <slot\n name=\"option\"\n :option=\"option\"\n :selected=\"option.value === modelValue\"\n :active=\"index === activeIndex\"\n >\n <span class=\"t-combobox__option-copy\">\n <span class=\"t-combobox__option-label\">{{ option.label }}</span>\n <span\n v-if=\"option.description\"\n class=\"t-combobox__option-description\"\n >\n {{ option.description }}\n </span>\n </span>\n <svg\n v-if=\"option.value === modelValue\"\n class=\"t-combobox__check\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <polyline points=\"3.5 8.5 6.5 11.5 12.5 4.5\" />\n </svg>\n </slot>\n </li>\n </template>\n </ul>\n </transition>\n </div>\n</template>\n"],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import e from "./TCombobox.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/TCombobox.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
6
+
7
+ //# sourceMappingURL=TCombobox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TCombobox.js","names":[],"sources":["../../src/components/TCombobox.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { createId, isEscapeKey } from '@treeui/utils';\nimport { computed, onBeforeUnmount, ref, toRef, useAttrs, watch } from 'vue';\nimport { useControllableOpen } from '../composables/useControllableOpen';\nimport type { TSize } from '../types/contracts';\nimport TSpinner from './TSpinner.vue';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nexport interface TComboboxOption {\n label: string;\n value: string;\n description?: string;\n keywords?: string[];\n disabled?: boolean;\n}\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: string;\n options?: TComboboxOption[];\n open?: boolean;\n defaultOpen?: boolean;\n size?: TSize;\n disabled?: boolean;\n loading?: boolean;\n invalid?: boolean;\n placeholder?: string;\n emptyText?: string;\n }>(),\n {\n modelValue: '',\n options: () => [],\n open: undefined,\n defaultOpen: false,\n size: 'md',\n disabled: false,\n loading: false,\n invalid: false,\n placeholder: '',\n emptyText: 'No results found.',\n },\n);\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string];\n 'update:open': [value: boolean];\n 'open-change': [value: boolean];\n 'input-change': [value: string];\n}>();\n\ndefineSlots<{\n prefix?: () => unknown;\n option?: (props: {\n option: TComboboxOption;\n selected: boolean;\n active: boolean;\n }) => unknown;\n empty?: (props: { query: string }) => unknown;\n}>();\n\nconst attrs = useAttrs();\nconst listboxId = createId('t-combobox');\nconst rootRef = ref<HTMLElement | null>(null);\nconst activeIndex = ref(-1);\nconst query = ref('');\n\nconst normalize = (value: string) => value.trim().toLowerCase();\nconst getOptionId = (value: string) => `${listboxId}-option-${value}`;\n\nconst selectedOption = computed(() =>\n props.options.find((option) => option.value === props.modelValue),\n);\n\nconst selectedLabel = computed(() => selectedOption.value?.label ?? '');\n\nconst inputAttrs = computed(() => {\n const { class: _class, style: _style, autocomplete, ...rest } = attrs;\n return {\n autocomplete: typeof autocomplete === 'string' ? autocomplete : 'off',\n ...rest,\n };\n});\n\nconst listboxLabel = computed(() =>\n typeof attrs['aria-label'] === 'string' ? attrs['aria-label'] : undefined,\n);\n\nconst listboxLabelledby = computed(() =>\n typeof attrs['aria-labelledby'] === 'string' ? attrs['aria-labelledby'] : undefined,\n);\n\nconst { value: isOpen, setValue } = useControllableOpen(\n toRef(props, 'open'),\n props.defaultOpen,\n (value) => {\n emit('update:open', value);\n emit('open-change', value);\n },\n);\n\nconst rootClasses = computed(() => [\n 't-combobox',\n `t-combobox--${props.size}`,\n {\n 'is-disabled': props.disabled,\n 'is-invalid': props.invalid,\n 'is-loading': props.loading,\n 'is-open': isOpen.value,\n },\n attrs.class,\n]);\n\nconst rootStyle = computed(() => attrs.style);\n\nconst filteredOptions = computed(() => {\n const normalizedQuery = normalize(query.value);\n\n if (!normalizedQuery) {\n return props.options;\n }\n\n return props.options.filter((option) => {\n const fields = [\n option.label,\n option.description ?? '',\n ...(option.keywords ?? []),\n ];\n\n return fields.some((field) => field.toLowerCase().includes(normalizedQuery));\n });\n});\n\nconst enabledFilteredIndexes = computed(() =>\n filteredOptions.value.reduce<number[]>((indexes, option, index) => {\n if (!option.disabled) {\n indexes.push(index);\n }\n\n return indexes;\n }, []),\n);\n\nconst activeOption = computed(() =>\n activeIndex.value >= 0 ? filteredOptions.value[activeIndex.value] : undefined,\n);\n\nconst activeDescendant = computed(() =>\n isOpen.value && activeOption.value ? getOptionId(activeOption.value.value) : undefined,\n);\n\nconst syncQueryFromSelection = () => {\n query.value = selectedLabel.value;\n};\n\nconst setInitialActiveIndex = (fallback: 'first' | 'last' = 'first') => {\n const selectedIndex = filteredOptions.value.findIndex((option) =>\n option.value === props.modelValue && !option.disabled,\n );\n\n if (selectedIndex >= 0) {\n activeIndex.value = selectedIndex;\n return;\n }\n\n if (enabledFilteredIndexes.value.length === 0) {\n activeIndex.value = -1;\n return;\n }\n\n activeIndex.value =\n fallback === 'last'\n ? enabledFilteredIndexes.value[enabledFilteredIndexes.value.length - 1]\n : enabledFilteredIndexes.value[0];\n};\n\nconst moveActive = (direction: 1 | -1) => {\n if (enabledFilteredIndexes.value.length === 0) {\n activeIndex.value = -1;\n return;\n }\n\n const currentEnabledIndex = enabledFilteredIndexes.value.indexOf(activeIndex.value);\n\n if (currentEnabledIndex === -1) {\n activeIndex.value =\n direction === 1\n ? enabledFilteredIndexes.value[0]\n : enabledFilteredIndexes.value[enabledFilteredIndexes.value.length - 1];\n return;\n }\n\n const nextEnabledIndex = currentEnabledIndex + direction;\n\n if (nextEnabledIndex < 0 || nextEnabledIndex >= enabledFilteredIndexes.value.length) {\n return;\n }\n\n activeIndex.value = enabledFilteredIndexes.value[nextEnabledIndex];\n};\n\nconst openListbox = (fallback: 'first' | 'last' = 'first') => {\n if (props.disabled) {\n return;\n }\n\n setValue(true);\n setInitialActiveIndex(fallback);\n};\n\nconst commitPendingClear = () => {\n if (query.value.trim() !== '' || !props.modelValue) {\n return false;\n }\n\n emit('update:modelValue', '');\n return true;\n};\n\nconst closeListbox = (restoreSelection = false) => {\n setValue(false);\n activeIndex.value = -1;\n\n if (!restoreSelection) {\n return;\n }\n\n if (commitPendingClear()) {\n return;\n }\n\n if (selectedLabel.value && query.value !== selectedLabel.value) {\n query.value = selectedLabel.value;\n }\n};\n\nconst selectOption = (option: TComboboxOption) => {\n if (option.disabled) {\n return;\n }\n\n query.value = option.label;\n emit('update:modelValue', option.value);\n closeListbox(false);\n};\n\nconst onInput = (event: Event) => {\n query.value = (event.target as HTMLInputElement).value;\n emit('input-change', query.value);\n\n if (props.disabled) {\n return;\n }\n\n if (!isOpen.value) {\n openListbox('first');\n return;\n }\n\n setInitialActiveIndex('first');\n};\n\nconst onInputFocus = () => {\n openListbox('first');\n};\n\nconst onInputClick = () => {\n if (!isOpen.value) {\n openListbox('first');\n }\n};\n\nconst onInputKeydown = (event: KeyboardEvent) => {\n if (props.disabled) {\n return;\n }\n\n if (isEscapeKey(event)) {\n if (isOpen.value) {\n event.preventDefault();\n closeListbox(true);\n }\n\n return;\n }\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n\n if (!isOpen.value) {\n openListbox('first');\n } else {\n moveActive(1);\n }\n break;\n case 'ArrowUp':\n event.preventDefault();\n\n if (!isOpen.value) {\n openListbox('last');\n } else {\n moveActive(-1);\n }\n break;\n case 'Enter':\n if (isOpen.value && activeOption.value && !activeOption.value.disabled) {\n event.preventDefault();\n selectOption(activeOption.value);\n }\n break;\n case 'Home':\n if (!isOpen.value) return;\n event.preventDefault();\n setInitialActiveIndex('first');\n break;\n case 'End':\n if (!isOpen.value) return;\n event.preventDefault();\n setInitialActiveIndex('last');\n break;\n case 'Tab':\n closeListbox(true);\n break;\n default:\n break;\n }\n};\n\nconst onOptionPointerEnter = (index: number) => {\n const option = filteredOptions.value[index];\n\n if (option && !option.disabled) {\n activeIndex.value = index;\n }\n};\n\nconst onDocumentPointerDown = (event: PointerEvent) => {\n if (!isOpen.value) return;\n const target = event.target;\n if (!(target instanceof Node)) return;\n if (rootRef.value?.contains(target)) return;\n closeListbox(true);\n};\n\nwatch(isOpen, (value) => {\n if (value) {\n document.addEventListener('pointerdown', onDocumentPointerDown);\n } else {\n document.removeEventListener('pointerdown', onDocumentPointerDown);\n }\n});\n\nwatch(\n () => props.modelValue,\n () => {\n if (!isOpen.value) {\n syncQueryFromSelection();\n }\n },\n { immediate: true },\n);\n\nwatch(\n () => props.options,\n () => {\n if (!isOpen.value) {\n syncQueryFromSelection();\n return;\n }\n\n setInitialActiveIndex('first');\n },\n { deep: true },\n);\n\nwatch(filteredOptions, () => {\n if (!isOpen.value) {\n return;\n }\n\n if (filteredOptions.value.length === 0) {\n activeIndex.value = -1;\n return;\n }\n\n const current = filteredOptions.value[activeIndex.value];\n\n if (!current || current.disabled) {\n setInitialActiveIndex('first');\n }\n});\n\nonBeforeUnmount(() => {\n document.removeEventListener('pointerdown', onDocumentPointerDown);\n});\n</script>\n\n<template>\n <div\n ref=\"rootRef\"\n :class=\"rootClasses\"\n :style=\"rootStyle\"\n :data-state=\"isOpen ? 'open' : 'closed'\"\n >\n <div class=\"t-combobox__control\">\n <span\n v-if=\"$slots.prefix\"\n class=\"t-combobox__slot t-combobox__slot--prefix\"\n >\n <slot name=\"prefix\" />\n </span>\n <input\n v-bind=\"inputAttrs\"\n class=\"t-combobox__input\"\n role=\"combobox\"\n type=\"text\"\n :value=\"query\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :aria-controls=\"isOpen ? listboxId : undefined\"\n :aria-expanded=\"isOpen\"\n :aria-activedescendant=\"activeDescendant\"\n :aria-invalid=\"invalid || undefined\"\n :aria-busy=\"loading || undefined\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n @input=\"onInput\"\n @focus=\"onInputFocus\"\n @click=\"onInputClick\"\n @keydown=\"onInputKeydown\"\n >\n <TSpinner\n v-if=\"loading\"\n size=\"sm\"\n label=\"Loading\"\n />\n <svg\n v-else\n class=\"t-combobox__indicator\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <polyline points=\"4 6 8 10 12 6\" />\n </svg>\n </div>\n\n <transition name=\"t-fade\">\n <ul\n v-if=\"isOpen && !disabled\"\n :id=\"listboxId\"\n role=\"listbox\"\n class=\"t-combobox__listbox\"\n :aria-label=\"listboxLabel\"\n :aria-labelledby=\"listboxLabelledby\"\n >\n <li\n v-if=\"filteredOptions.length === 0\"\n class=\"t-combobox__empty\"\n >\n <slot\n name=\"empty\"\n :query=\"query\"\n >\n {{ emptyText }}\n </slot>\n </li>\n\n <template v-else>\n <li\n v-for=\"(option, index) in filteredOptions\"\n :id=\"getOptionId(option.value)\"\n :key=\"option.value\"\n role=\"option\"\n class=\"t-combobox__option\"\n :class=\"{\n 'is-active': index === activeIndex,\n 'is-disabled': option.disabled,\n 'is-selected': option.value === modelValue,\n }\"\n :aria-selected=\"option.value === modelValue\"\n :aria-disabled=\"option.disabled || undefined\"\n @mouseenter=\"onOptionPointerEnter(index)\"\n @click=\"selectOption(option)\"\n >\n <slot\n name=\"option\"\n :option=\"option\"\n :selected=\"option.value === modelValue\"\n :active=\"index === activeIndex\"\n >\n <span class=\"t-combobox__option-copy\">\n <span class=\"t-combobox__option-label\">{{ option.label }}</span>\n <span\n v-if=\"option.description\"\n class=\"t-combobox__option-description\"\n >\n {{ option.description }}\n </span>\n </span>\n <svg\n v-if=\"option.value === modelValue\"\n class=\"t-combobox__check\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <polyline points=\"3.5 8.5 6.5 11.5 12.5 4.5\" />\n </svg>\n </slot>\n </li>\n </template>\n </ul>\n </transition>\n </div>\n</template>\n"],"mappings":""}
@@ -1,5 +1,5 @@
1
- import { TreeSize } from '../types/contracts';
2
- export interface TreeComboboxOption {
1
+ import { TSize } from '../types/contracts';
2
+ export interface TComboboxOption {
3
3
  label: string;
4
4
  value: string;
5
5
  description?: string;
@@ -8,10 +8,10 @@ export interface TreeComboboxOption {
8
8
  }
9
9
  type __VLS_Props = {
10
10
  modelValue?: string;
11
- options?: TreeComboboxOption[];
11
+ options?: TComboboxOption[];
12
12
  open?: boolean;
13
13
  defaultOpen?: boolean;
14
- size?: TreeSize;
14
+ size?: TSize;
15
15
  disabled?: boolean;
16
16
  loading?: boolean;
17
17
  invalid?: boolean;
@@ -23,7 +23,7 @@ declare function __VLS_template(): {
23
23
  slots: Readonly<{
24
24
  prefix?: () => unknown;
25
25
  option?: (props: {
26
- option: TreeComboboxOption;
26
+ option: TComboboxOption;
27
27
  selected: boolean;
28
28
  active: boolean;
29
29
  }) => unknown;
@@ -33,7 +33,7 @@ declare function __VLS_template(): {
33
33
  }> & {
34
34
  prefix?: () => unknown;
35
35
  option?: (props: {
36
- option: TreeComboboxOption;
36
+ option: TComboboxOption;
37
37
  selected: boolean;
38
38
  active: boolean;
39
39
  }) => unknown;
@@ -60,10 +60,10 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
60
60
  }>, {
61
61
  modelValue: string;
62
62
  disabled: boolean;
63
- size: TreeSize;
63
+ size: TSize;
64
64
  loading: boolean;
65
65
  invalid: boolean;
66
- options: TreeComboboxOption[];
66
+ options: TComboboxOption[];
67
67
  open: boolean;
68
68
  defaultOpen: boolean;
69
69
  placeholder: string;
@@ -78,4 +78,4 @@ type __VLS_WithTemplateSlots<T, S> = T & {
78
78
  $slots: S;
79
79
  };
80
80
  };
81
- //# sourceMappingURL=TreeCombobox.vue.d.ts.map
81
+ //# sourceMappingURL=TCombobox.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TCombobox.vue.d.ts","sourceRoot":"","sources":["../../src/components/TCombobox.vue"],"names":[],"mappings":"AAohBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAOhD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,KAAK,WAAW,GAAG;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAiYJ,iBAAS,cAAc;WA8KT,OAAO,IAA6B;;iBArhBvC,MAAM,OAAO;iBACb,CAAC,KAAK,EAAE;YACf,MAAM,EAAE,eAAe,CAAC;YACxB,QAAQ,EAAE,OAAO,CAAC;YAClB,MAAM,EAAE,OAAO,CAAC;SACjB,KAAK,OAAO;gBACL,CAAC,KAAK,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO;;iBANpC,MAAM,OAAO;iBACb,CAAC,KAAK,EAAE;YACf,MAAM,EAAE,eAAe,CAAC;YACxB,QAAQ,EAAE,OAAO,CAAC;YAClB,MAAM,EAAE,OAAO,CAAC;SACjB,KAAK,OAAO;gBACL,CAAC,KAAK,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO;;;;;;EAohB9C;AA8BD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;;;;gBA7lBJ,MAAM;cAKR,OAAO;UADX,KAAK;aAEF,OAAO;aACP,OAAO;aANP,eAAe,EAAE;UACpB,OAAO;iBACA,OAAO;iBAKP,MAAM;eACR,MAAM;;;OA6lBpB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -0,0 +1,2 @@
1
+ const e=require("./TSpinner.cjs"),t=require("../composables/useControllableOpen.cjs");let n=require("vue"),r=require("@treeui/utils");var i=[`data-state`],a={class:`t-combobox__control`},o={key:0,class:`t-combobox__slot t-combobox__slot--prefix`},s=[`value`,`placeholder`,`disabled`,`aria-controls`,`aria-expanded`,`aria-activedescendant`,`aria-invalid`,`aria-busy`],c={key:2,class:`t-combobox__indicator`,viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},l=[`id`,`aria-label`,`aria-labelledby`],u={key:0,class:`t-combobox__empty`},d=[`id`,`aria-selected`,`aria-disabled`,`onMouseenter`,`onClick`],f={class:`t-combobox__option-copy`},p={class:`t-combobox__option-label`},m={key:0,class:`t-combobox__option-description`},h={key:0,class:`t-combobox__check`,viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},g=(0,n.defineComponent)({inheritAttrs:!1,__name:`TCombobox`,props:{modelValue:{default:``},options:{default:()=>[]},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:!1},size:{default:`md`},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},invalid:{type:Boolean,default:!1},placeholder:{default:``},emptyText:{default:`No results found.`}},emits:[`update:modelValue`,`update:open`,`open-change`,`input-change`],setup(g,{emit:_}){let v=g,y=_,b=(0,n.useAttrs)(),x=(0,r.createId)(`t-combobox`),S=(0,n.ref)(null),C=(0,n.ref)(-1),w=(0,n.ref)(``),T=e=>e.trim().toLowerCase(),E=e=>`${x}-option-${e}`,D=(0,n.computed)(()=>v.options.find(e=>e.value===v.modelValue)),O=(0,n.computed)(()=>D.value?.label??``),k=(0,n.computed)(()=>{let{class:e,style:t,autocomplete:n,...r}=b;return{autocomplete:typeof n==`string`?n:`off`,...r}}),A=(0,n.computed)(()=>typeof b[`aria-label`]==`string`?b[`aria-label`]:void 0),j=(0,n.computed)(()=>typeof b[`aria-labelledby`]==`string`?b[`aria-labelledby`]:void 0),{value:M,setValue:N}=t.useControllableOpen((0,n.toRef)(v,`open`),v.defaultOpen,e=>{y(`update:open`,e),y(`open-change`,e)}),P=(0,n.computed)(()=>[`t-combobox`,`t-combobox--${v.size}`,{"is-disabled":v.disabled,"is-invalid":v.invalid,"is-loading":v.loading,"is-open":M.value},b.class]),F=(0,n.computed)(()=>b.style),I=(0,n.computed)(()=>{let e=T(w.value);return e?v.options.filter(t=>[t.label,t.description??``,...t.keywords??[]].some(t=>t.toLowerCase().includes(e))):v.options}),L=(0,n.computed)(()=>I.value.reduce((e,t,n)=>(t.disabled||e.push(n),e),[])),R=(0,n.computed)(()=>C.value>=0?I.value[C.value]:void 0),z=(0,n.computed)(()=>M.value&&R.value?E(R.value.value):void 0),B=()=>{w.value=O.value},V=(e=`first`)=>{let t=I.value.findIndex(e=>e.value===v.modelValue&&!e.disabled);if(t>=0){C.value=t;return}if(L.value.length===0){C.value=-1;return}C.value=e===`last`?L.value[L.value.length-1]:L.value[0]},H=e=>{if(L.value.length===0){C.value=-1;return}let t=L.value.indexOf(C.value);if(t===-1){C.value=e===1?L.value[0]:L.value[L.value.length-1];return}let n=t+e;n<0||n>=L.value.length||(C.value=L.value[n])},U=(e=`first`)=>{v.disabled||(N(!0),V(e))},W=()=>w.value.trim()!==``||!v.modelValue?!1:(y(`update:modelValue`,``),!0),G=(e=!1)=>{N(!1),C.value=-1,e&&(W()||O.value&&w.value!==O.value&&(w.value=O.value))},K=e=>{e.disabled||(w.value=e.label,y(`update:modelValue`,e.value),G(!1))},q=e=>{if(w.value=e.target.value,y(`input-change`,w.value),!v.disabled){if(!M.value){U(`first`);return}V(`first`)}},J=()=>{U(`first`)},Y=()=>{M.value||U(`first`)},X=e=>{if(!v.disabled){if((0,r.isEscapeKey)(e)){M.value&&(e.preventDefault(),G(!0));return}switch(e.key){case`ArrowDown`:e.preventDefault(),M.value?H(1):U(`first`);break;case`ArrowUp`:e.preventDefault(),M.value?H(-1):U(`last`);break;case`Enter`:M.value&&R.value&&!R.value.disabled&&(e.preventDefault(),K(R.value));break;case`Home`:if(!M.value)return;e.preventDefault(),V(`first`);break;case`End`:if(!M.value)return;e.preventDefault(),V(`last`);break;case`Tab`:G(!0);break;default:break}}},Z=e=>{let t=I.value[e];t&&!t.disabled&&(C.value=e)},Q=e=>{if(!M.value)return;let t=e.target;t instanceof Node&&(S.value?.contains(t)||G(!0))};return(0,n.watch)(M,e=>{e?document.addEventListener(`pointerdown`,Q):document.removeEventListener(`pointerdown`,Q)}),(0,n.watch)(()=>v.modelValue,()=>{M.value||B()},{immediate:!0}),(0,n.watch)(()=>v.options,()=>{if(!M.value){B();return}V(`first`)},{deep:!0}),(0,n.watch)(I,()=>{if(!M.value)return;if(I.value.length===0){C.value=-1;return}let e=I.value[C.value];(!e||e.disabled)&&V(`first`)}),(0,n.onBeforeUnmount)(()=>{document.removeEventListener(`pointerdown`,Q)}),(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{ref_key:`rootRef`,ref:S,class:(0,n.normalizeClass)(P.value),style:(0,n.normalizeStyle)(F.value),"data-state":(0,n.unref)(M)?`open`:`closed`},[(0,n.createElementVNode)(`div`,a,[t.$slots.prefix?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,o,[(0,n.renderSlot)(t.$slots,`prefix`)])):(0,n.createCommentVNode)(``,!0),(0,n.createElementVNode)(`input`,(0,n.mergeProps)(k.value,{class:`t-combobox__input`,role:`combobox`,type:`text`,value:w.value,placeholder:g.placeholder,disabled:g.disabled,"aria-controls":(0,n.unref)(M)?(0,n.unref)(x):void 0,"aria-expanded":(0,n.unref)(M),"aria-activedescendant":z.value,"aria-invalid":g.invalid||void 0,"aria-busy":g.loading||void 0,"aria-autocomplete":`list`,"aria-haspopup":`listbox`,onInput:q,onFocus:J,onClick:Y,onKeydown:X}),null,16,s),g.loading?((0,n.openBlock)(),(0,n.createBlock)(e.default,{key:1,size:`sm`,label:`Loading`})):((0,n.openBlock)(),(0,n.createElementBlock)(`svg`,c,[...r[0]||=[(0,n.createElementVNode)(`polyline`,{points:`4 6 8 10 12 6`},null,-1)]]))]),(0,n.createVNode)(n.Transition,{name:`t-fade`},{default:(0,n.withCtx)(()=>[(0,n.unref)(M)&&!g.disabled?((0,n.openBlock)(),(0,n.createElementBlock)(`ul`,{key:0,id:(0,n.unref)(x),role:`listbox`,class:`t-combobox__listbox`,"aria-label":A.value,"aria-labelledby":j.value},[I.value.length===0?((0,n.openBlock)(),(0,n.createElementBlock)(`li`,u,[(0,n.renderSlot)(t.$slots,`empty`,{query:w.value},()=>[(0,n.createTextVNode)((0,n.toDisplayString)(g.emptyText),1)])])):((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,{key:1},(0,n.renderList)(I.value,(e,i)=>((0,n.openBlock)(),(0,n.createElementBlock)(`li`,{id:E(e.value),key:e.value,role:`option`,class:(0,n.normalizeClass)([`t-combobox__option`,{"is-active":i===C.value,"is-disabled":e.disabled,"is-selected":e.value===g.modelValue}]),"aria-selected":e.value===g.modelValue,"aria-disabled":e.disabled||void 0,onMouseenter:e=>Z(i),onClick:t=>K(e)},[(0,n.renderSlot)(t.$slots,`option`,{option:e,selected:e.value===g.modelValue,active:i===C.value},()=>[(0,n.createElementVNode)(`span`,f,[(0,n.createElementVNode)(`span`,p,(0,n.toDisplayString)(e.label),1),e.description?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,m,(0,n.toDisplayString)(e.description),1)):(0,n.createCommentVNode)(``,!0)]),e.value===g.modelValue?((0,n.openBlock)(),(0,n.createElementBlock)(`svg`,h,[...r[1]||=[(0,n.createElementVNode)(`polyline`,{points:`3.5 8.5 6.5 11.5 12.5 4.5`},null,-1)]])):(0,n.createCommentVNode)(``,!0)])],42,d))),128))],8,l)):(0,n.createCommentVNode)(``,!0)]),_:3})],14,i))}});exports.default=g;
2
+ //# sourceMappingURL=TCombobox.vue_vue_type_script_setup_true_lang.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TCombobox.vue_vue_type_script_setup_true_lang.cjs","names":["$slots"],"sources":["../../src/components/TCombobox.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { createId, isEscapeKey } from '@treeui/utils';\nimport { computed, onBeforeUnmount, ref, toRef, useAttrs, watch } from 'vue';\nimport { useControllableOpen } from '../composables/useControllableOpen';\nimport type { TSize } from '../types/contracts';\nimport TSpinner from './TSpinner.vue';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nexport interface TComboboxOption {\n label: string;\n value: string;\n description?: string;\n keywords?: string[];\n disabled?: boolean;\n}\n\nconst props = withDefaults(\n defineProps<{\n modelValue?: string;\n options?: TComboboxOption[];\n open?: boolean;\n defaultOpen?: boolean;\n size?: TSize;\n disabled?: boolean;\n loading?: boolean;\n invalid?: boolean;\n placeholder?: string;\n emptyText?: string;\n }>(),\n {\n modelValue: '',\n options: () => [],\n open: undefined,\n defaultOpen: false,\n size: 'md',\n disabled: false,\n loading: false,\n invalid: false,\n placeholder: '',\n emptyText: 'No results found.',\n },\n);\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string];\n 'update:open': [value: boolean];\n 'open-change': [value: boolean];\n 'input-change': [value: string];\n}>();\n\ndefineSlots<{\n prefix?: () => unknown;\n option?: (props: {\n option: TComboboxOption;\n selected: boolean;\n active: boolean;\n }) => unknown;\n empty?: (props: { query: string }) => unknown;\n}>();\n\nconst attrs = useAttrs();\nconst listboxId = createId('t-combobox');\nconst rootRef = ref<HTMLElement | null>(null);\nconst activeIndex = ref(-1);\nconst query = ref('');\n\nconst normalize = (value: string) => value.trim().toLowerCase();\nconst getOptionId = (value: string) => `${listboxId}-option-${value}`;\n\nconst selectedOption = computed(() =>\n props.options.find((option) => option.value === props.modelValue),\n);\n\nconst selectedLabel = computed(() => selectedOption.value?.label ?? '');\n\nconst inputAttrs = computed(() => {\n const { class: _class, style: _style, autocomplete, ...rest } = attrs;\n return {\n autocomplete: typeof autocomplete === 'string' ? autocomplete : 'off',\n ...rest,\n };\n});\n\nconst listboxLabel = computed(() =>\n typeof attrs['aria-label'] === 'string' ? attrs['aria-label'] : undefined,\n);\n\nconst listboxLabelledby = computed(() =>\n typeof attrs['aria-labelledby'] === 'string' ? attrs['aria-labelledby'] : undefined,\n);\n\nconst { value: isOpen, setValue } = useControllableOpen(\n toRef(props, 'open'),\n props.defaultOpen,\n (value) => {\n emit('update:open', value);\n emit('open-change', value);\n },\n);\n\nconst rootClasses = computed(() => [\n 't-combobox',\n `t-combobox--${props.size}`,\n {\n 'is-disabled': props.disabled,\n 'is-invalid': props.invalid,\n 'is-loading': props.loading,\n 'is-open': isOpen.value,\n },\n attrs.class,\n]);\n\nconst rootStyle = computed(() => attrs.style);\n\nconst filteredOptions = computed(() => {\n const normalizedQuery = normalize(query.value);\n\n if (!normalizedQuery) {\n return props.options;\n }\n\n return props.options.filter((option) => {\n const fields = [\n option.label,\n option.description ?? '',\n ...(option.keywords ?? []),\n ];\n\n return fields.some((field) => field.toLowerCase().includes(normalizedQuery));\n });\n});\n\nconst enabledFilteredIndexes = computed(() =>\n filteredOptions.value.reduce<number[]>((indexes, option, index) => {\n if (!option.disabled) {\n indexes.push(index);\n }\n\n return indexes;\n }, []),\n);\n\nconst activeOption = computed(() =>\n activeIndex.value >= 0 ? filteredOptions.value[activeIndex.value] : undefined,\n);\n\nconst activeDescendant = computed(() =>\n isOpen.value && activeOption.value ? getOptionId(activeOption.value.value) : undefined,\n);\n\nconst syncQueryFromSelection = () => {\n query.value = selectedLabel.value;\n};\n\nconst setInitialActiveIndex = (fallback: 'first' | 'last' = 'first') => {\n const selectedIndex = filteredOptions.value.findIndex((option) =>\n option.value === props.modelValue && !option.disabled,\n );\n\n if (selectedIndex >= 0) {\n activeIndex.value = selectedIndex;\n return;\n }\n\n if (enabledFilteredIndexes.value.length === 0) {\n activeIndex.value = -1;\n return;\n }\n\n activeIndex.value =\n fallback === 'last'\n ? enabledFilteredIndexes.value[enabledFilteredIndexes.value.length - 1]\n : enabledFilteredIndexes.value[0];\n};\n\nconst moveActive = (direction: 1 | -1) => {\n if (enabledFilteredIndexes.value.length === 0) {\n activeIndex.value = -1;\n return;\n }\n\n const currentEnabledIndex = enabledFilteredIndexes.value.indexOf(activeIndex.value);\n\n if (currentEnabledIndex === -1) {\n activeIndex.value =\n direction === 1\n ? enabledFilteredIndexes.value[0]\n : enabledFilteredIndexes.value[enabledFilteredIndexes.value.length - 1];\n return;\n }\n\n const nextEnabledIndex = currentEnabledIndex + direction;\n\n if (nextEnabledIndex < 0 || nextEnabledIndex >= enabledFilteredIndexes.value.length) {\n return;\n }\n\n activeIndex.value = enabledFilteredIndexes.value[nextEnabledIndex];\n};\n\nconst openListbox = (fallback: 'first' | 'last' = 'first') => {\n if (props.disabled) {\n return;\n }\n\n setValue(true);\n setInitialActiveIndex(fallback);\n};\n\nconst commitPendingClear = () => {\n if (query.value.trim() !== '' || !props.modelValue) {\n return false;\n }\n\n emit('update:modelValue', '');\n return true;\n};\n\nconst closeListbox = (restoreSelection = false) => {\n setValue(false);\n activeIndex.value = -1;\n\n if (!restoreSelection) {\n return;\n }\n\n if (commitPendingClear()) {\n return;\n }\n\n if (selectedLabel.value && query.value !== selectedLabel.value) {\n query.value = selectedLabel.value;\n }\n};\n\nconst selectOption = (option: TComboboxOption) => {\n if (option.disabled) {\n return;\n }\n\n query.value = option.label;\n emit('update:modelValue', option.value);\n closeListbox(false);\n};\n\nconst onInput = (event: Event) => {\n query.value = (event.target as HTMLInputElement).value;\n emit('input-change', query.value);\n\n if (props.disabled) {\n return;\n }\n\n if (!isOpen.value) {\n openListbox('first');\n return;\n }\n\n setInitialActiveIndex('first');\n};\n\nconst onInputFocus = () => {\n openListbox('first');\n};\n\nconst onInputClick = () => {\n if (!isOpen.value) {\n openListbox('first');\n }\n};\n\nconst onInputKeydown = (event: KeyboardEvent) => {\n if (props.disabled) {\n return;\n }\n\n if (isEscapeKey(event)) {\n if (isOpen.value) {\n event.preventDefault();\n closeListbox(true);\n }\n\n return;\n }\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n\n if (!isOpen.value) {\n openListbox('first');\n } else {\n moveActive(1);\n }\n break;\n case 'ArrowUp':\n event.preventDefault();\n\n if (!isOpen.value) {\n openListbox('last');\n } else {\n moveActive(-1);\n }\n break;\n case 'Enter':\n if (isOpen.value && activeOption.value && !activeOption.value.disabled) {\n event.preventDefault();\n selectOption(activeOption.value);\n }\n break;\n case 'Home':\n if (!isOpen.value) return;\n event.preventDefault();\n setInitialActiveIndex('first');\n break;\n case 'End':\n if (!isOpen.value) return;\n event.preventDefault();\n setInitialActiveIndex('last');\n break;\n case 'Tab':\n closeListbox(true);\n break;\n default:\n break;\n }\n};\n\nconst onOptionPointerEnter = (index: number) => {\n const option = filteredOptions.value[index];\n\n if (option && !option.disabled) {\n activeIndex.value = index;\n }\n};\n\nconst onDocumentPointerDown = (event: PointerEvent) => {\n if (!isOpen.value) return;\n const target = event.target;\n if (!(target instanceof Node)) return;\n if (rootRef.value?.contains(target)) return;\n closeListbox(true);\n};\n\nwatch(isOpen, (value) => {\n if (value) {\n document.addEventListener('pointerdown', onDocumentPointerDown);\n } else {\n document.removeEventListener('pointerdown', onDocumentPointerDown);\n }\n});\n\nwatch(\n () => props.modelValue,\n () => {\n if (!isOpen.value) {\n syncQueryFromSelection();\n }\n },\n { immediate: true },\n);\n\nwatch(\n () => props.options,\n () => {\n if (!isOpen.value) {\n syncQueryFromSelection();\n return;\n }\n\n setInitialActiveIndex('first');\n },\n { deep: true },\n);\n\nwatch(filteredOptions, () => {\n if (!isOpen.value) {\n return;\n }\n\n if (filteredOptions.value.length === 0) {\n activeIndex.value = -1;\n return;\n }\n\n const current = filteredOptions.value[activeIndex.value];\n\n if (!current || current.disabled) {\n setInitialActiveIndex('first');\n }\n});\n\nonBeforeUnmount(() => {\n document.removeEventListener('pointerdown', onDocumentPointerDown);\n});\n</script>\n\n<template>\n <div\n ref=\"rootRef\"\n :class=\"rootClasses\"\n :style=\"rootStyle\"\n :data-state=\"isOpen ? 'open' : 'closed'\"\n >\n <div class=\"t-combobox__control\">\n <span\n v-if=\"$slots.prefix\"\n class=\"t-combobox__slot t-combobox__slot--prefix\"\n >\n <slot name=\"prefix\" />\n </span>\n <input\n v-bind=\"inputAttrs\"\n class=\"t-combobox__input\"\n role=\"combobox\"\n type=\"text\"\n :value=\"query\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :aria-controls=\"isOpen ? listboxId : undefined\"\n :aria-expanded=\"isOpen\"\n :aria-activedescendant=\"activeDescendant\"\n :aria-invalid=\"invalid || undefined\"\n :aria-busy=\"loading || undefined\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n @input=\"onInput\"\n @focus=\"onInputFocus\"\n @click=\"onInputClick\"\n @keydown=\"onInputKeydown\"\n >\n <TSpinner\n v-if=\"loading\"\n size=\"sm\"\n label=\"Loading\"\n />\n <svg\n v-else\n class=\"t-combobox__indicator\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <polyline points=\"4 6 8 10 12 6\" />\n </svg>\n </div>\n\n <transition name=\"t-fade\">\n <ul\n v-if=\"isOpen && !disabled\"\n :id=\"listboxId\"\n role=\"listbox\"\n class=\"t-combobox__listbox\"\n :aria-label=\"listboxLabel\"\n :aria-labelledby=\"listboxLabelledby\"\n >\n <li\n v-if=\"filteredOptions.length === 0\"\n class=\"t-combobox__empty\"\n >\n <slot\n name=\"empty\"\n :query=\"query\"\n >\n {{ emptyText }}\n </slot>\n </li>\n\n <template v-else>\n <li\n v-for=\"(option, index) in filteredOptions\"\n :id=\"getOptionId(option.value)\"\n :key=\"option.value\"\n role=\"option\"\n class=\"t-combobox__option\"\n :class=\"{\n 'is-active': index === activeIndex,\n 'is-disabled': option.disabled,\n 'is-selected': option.value === modelValue,\n }\"\n :aria-selected=\"option.value === modelValue\"\n :aria-disabled=\"option.disabled || undefined\"\n @mouseenter=\"onOptionPointerEnter(index)\"\n @click=\"selectOption(option)\"\n >\n <slot\n name=\"option\"\n :option=\"option\"\n :selected=\"option.value === modelValue\"\n :active=\"index === activeIndex\"\n >\n <span class=\"t-combobox__option-copy\">\n <span class=\"t-combobox__option-label\">{{ option.label }}</span>\n <span\n v-if=\"option.description\"\n class=\"t-combobox__option-description\"\n >\n {{ option.description }}\n </span>\n </span>\n <svg\n v-if=\"option.value === modelValue\"\n class=\"t-combobox__check\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <polyline points=\"3.5 8.5 6.5 11.5 12.5 4.5\" />\n </svg>\n </slot>\n </li>\n </template>\n </ul>\n </transition>\n </div>\n</template>\n"],"mappings":"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"}