@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,30 @@
1
+ import { computed as e, createElementBlock as t, defineComponent as n, normalizeClass as r, openBlock as i } from "vue";
2
+ //#region src/components/TDivider.vue?vue&type=script&setup=true&lang.ts
3
+ var a = [
4
+ "role",
5
+ "aria-orientation",
6
+ "aria-label"
7
+ ], o = /*@__PURE__*/ n({
8
+ __name: "TDivider",
9
+ props: {
10
+ orientation: { default: "horizontal" },
11
+ decorative: {
12
+ type: Boolean,
13
+ default: !0
14
+ },
15
+ label: { default: void 0 }
16
+ },
17
+ setup(n) {
18
+ let o = n, s = e(() => ["t-divider", `t-divider--${o.orientation}`]);
19
+ return (e, o) => (i(), t("hr", {
20
+ class: r(s.value),
21
+ role: n.decorative ? "none" : "separator",
22
+ "aria-orientation": n.decorative ? void 0 : n.orientation,
23
+ "aria-label": n.decorative ? void 0 : n.label
24
+ }, null, 10, a));
25
+ }
26
+ });
27
+ //#endregion
28
+ export { o as default };
29
+
30
+ //# sourceMappingURL=TDivider.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TDivider.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../src/components/TDivider.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\nconst props = withDefaults(\n defineProps<{\n orientation?: 'horizontal' | 'vertical';\n decorative?: boolean;\n label?: string;\n }>(),\n {\n orientation: 'horizontal',\n decorative: true,\n label: undefined,\n },\n);\n\nconst classes = computed(() => [\n 't-divider',\n `t-divider--${props.orientation}`,\n]);\n</script>\n\n<template>\n <hr\n :class=\"classes\"\n :role=\"decorative ? 'none' : 'separator'\"\n :aria-orientation=\"!decorative ? orientation : undefined\"\n :aria-label=\"!decorative ? label : undefined\"\n >\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;EAGA,IAAM,IAAQ,GAaR,IAAU,QAAe,CAC7B,aACA,cAAc,EAAM,aACtB,CAAC;yBAIC,EAKC,MAAA;GAJE,OAAK,EAAE,EAAA,KAAO;GACd,MAAM,EAAA,aAAU,SAAA;GAChB,oBAAmB,EAAA,aAA2B,KAAA,IAAd,EAAA;GAChC,cAAa,EAAA,aAAqB,KAAA,IAAR,EAAA"}
@@ -0,0 +1,2 @@
1
+ var e=require("./TDrawer.vue_vue_type_script_setup_true_lang.cjs").default;exports.default=e;
2
+ //# sourceMappingURL=TDrawer.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TDrawer.cjs","names":[],"sources":["../../src/components/TDrawer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n createId,\n focusFirst,\n focusLast,\n getFocusableElements,\n isEscapeKey,\n} from '@treeui/utils';\nimport { getTreeIcon, treeIconDefaults } from '@treeui/icons';\nimport {\n computed,\n nextTick,\n onBeforeUnmount,\n ref,\n toRef,\n useAttrs,\n watch,\n} from 'vue';\nimport { useControllableOpen } from '../composables/useControllableOpen';\nimport type { TDrawerSide, TSize } from '../types/contracts';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nconst CloseIcon = getTreeIcon('x');\n\nconst props = withDefaults(\n defineProps<{\n open?: boolean;\n defaultOpen?: boolean;\n disabled?: boolean;\n size?: TSize;\n side?: TDrawerSide;\n title?: string;\n description?: string;\n closeOnEscape?: boolean;\n closeOnOverlay?: boolean;\n showCloseButton?: boolean;\n closeLabel?: string;\n id?: string;\n }>(),\n {\n open: undefined,\n defaultOpen: false,\n disabled: false,\n size: 'md',\n side: 'right',\n title: '',\n description: '',\n closeOnEscape: true,\n closeOnOverlay: true,\n showCloseButton: true,\n closeLabel: 'Close drawer',\n id: undefined,\n },\n);\n\nconst emit = defineEmits<{\n 'update:open': [value: boolean];\n 'open-change': [value: boolean];\n}>();\n\nconst attrs = useAttrs();\nconst drawerId = props.id ?? createId('t-drawer');\nconst titleId = `${drawerId}-title`;\nconst descriptionId = `${drawerId}-description`;\nconst rootRef = ref<HTMLElement | null>(null);\nconst surfaceRef = ref<HTMLElement | null>(null);\nconst previousFocusedElement = ref<HTMLElement | null>(null);\nconst hasHeaderContent = computed(() => Boolean(props.title || slots.header));\n\nconst slots = defineSlots<{\n default?: () => unknown;\n trigger?: () => unknown;\n header?: () => unknown;\n content?: () => unknown;\n footer?: () => unknown;\n}>();\n\nconst rootClasses = computed(() => ['t-drawer', attrs.class]);\nconst rootStyle = computed(() => attrs.style);\nconst triggerAttrs = computed(() => {\n const { class: _class, style: _style, ...rest } = attrs;\n return rest;\n});\nconst surfaceClasses = computed(() => [\n 't-drawer__surface',\n `t-drawer__surface--${props.size}`,\n `t-drawer__surface--${props.side}`,\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 labelledBy = computed(() => (hasHeaderContent.value ? titleId : undefined));\nconst describedBy = computed(() => (props.description ? descriptionId : undefined));\n\nlet openOverlayCount = 0;\nlet previousBodyOverflow = '';\n\nconst lockBodyScroll = () => {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (openOverlayCount === 0) {\n previousBodyOverflow = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n\n openOverlayCount += 1;\n};\n\nconst unlockBodyScroll = () => {\n if (typeof document === 'undefined' || openOverlayCount === 0) {\n return;\n }\n\n openOverlayCount -= 1;\n\n if (openOverlayCount === 0) {\n document.body.style.overflow = previousBodyOverflow;\n }\n};\n\nconst focusSurface = () => {\n nextTick(() => {\n if (!surfaceRef.value) {\n return;\n }\n\n const focused = focusFirst(surfaceRef.value);\n if (!focused) {\n surfaceRef.value.focus();\n }\n });\n};\n\nconst openDrawer = () => {\n if (props.disabled) {\n return;\n }\n\n previousFocusedElement.value = document.activeElement as HTMLElement | null;\n setValue(true);\n};\n\nconst closeDrawer = () => {\n setValue(false);\n};\n\nconst onTriggerClick = (event: MouseEvent) => {\n if (props.disabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n openDrawer();\n};\n\nconst onOverlayClick = () => {\n if (!props.closeOnOverlay) {\n return;\n }\n\n closeDrawer();\n};\n\nconst onSurfaceClick = (event: MouseEvent) => {\n event.stopPropagation();\n};\n\nconst onKeydown = (event: KeyboardEvent) => {\n if (isEscapeKey(event) && props.closeOnEscape) {\n event.preventDefault();\n closeDrawer();\n return;\n }\n\n if (event.key !== 'Tab' || !surfaceRef.value) {\n return;\n }\n\n const focusable = getFocusableElements(surfaceRef.value);\n\n if (!focusable.length) {\n event.preventDefault();\n surfaceRef.value.focus();\n return;\n }\n\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n const activeElement = document.activeElement as HTMLElement | null;\n\n if (event.shiftKey && activeElement === first) {\n event.preventDefault();\n focusLast(surfaceRef.value);\n }\n\n if (!event.shiftKey && activeElement === last) {\n event.preventDefault();\n focusFirst(surfaceRef.value);\n }\n};\n\nwatch(isOpen, (value, previousValue) => {\n if (value) {\n lockBodyScroll();\n focusSurface();\n return;\n }\n\n if (previousValue) {\n unlockBodyScroll();\n nextTick(() => {\n previousFocusedElement.value?.focus();\n });\n }\n});\n\nonBeforeUnmount(() => {\n if (isOpen.value) {\n unlockBodyScroll();\n }\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 <span\n v-if=\"$slots.trigger\"\n class=\"t-drawer__trigger\"\n v-bind=\"triggerAttrs\"\n :aria-disabled=\"disabled || undefined\"\n @click=\"onTriggerClick\"\n >\n <slot name=\"trigger\" />\n </span>\n\n <Teleport to=\"body\">\n <transition name=\"t-drawer-fade\">\n <div\n v-if=\"isOpen\"\n class=\"t-drawer__portal\"\n :data-state=\"isOpen ? 'open' : 'closed'\"\n >\n <div\n class=\"t-drawer__backdrop\"\n aria-hidden=\"true\"\n @click=\"onOverlayClick\"\n />\n <div\n :id=\"drawerId\"\n ref=\"surfaceRef\"\n :class=\"surfaceClasses\"\n role=\"dialog\"\n aria-modal=\"true\"\n :aria-labelledby=\"labelledBy\"\n :aria-describedby=\"describedBy\"\n tabindex=\"-1\"\n @click=\"onSurfaceClick\"\n @keydown=\"onKeydown\"\n >\n <div\n v-if=\"hasHeaderContent || showCloseButton\"\n class=\"t-drawer__topbar\"\n >\n <div\n v-if=\"hasHeaderContent\"\n :id=\"titleId\"\n class=\"t-drawer__header\"\n >\n <slot name=\"header\">\n <h2 class=\"t-drawer__title\">\n {{ title }}\n </h2>\n </slot>\n </div>\n <button\n v-if=\"showCloseButton\"\n type=\"button\"\n class=\"t-drawer__close\"\n :aria-label=\"closeLabel\"\n @click=\"closeDrawer\"\n >\n <CloseIcon v-bind=\"treeIconDefaults\" />\n </button>\n </div>\n\n <p\n v-if=\"description\"\n :id=\"descriptionId\"\n class=\"t-drawer__description\"\n >\n {{ description }}\n </p>\n\n <div class=\"t-drawer__body\">\n <slot name=\"content\">\n <slot />\n </slot>\n </div>\n\n <div\n v-if=\"$slots.footer\"\n class=\"t-drawer__footer\"\n >\n <slot name=\"footer\" />\n </div>\n </div>\n </div>\n </transition>\n </Teleport>\n </div>\n</template>\n"],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import e from "./TDrawer.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/TDrawer.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
6
+
7
+ //# sourceMappingURL=TDrawer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TDrawer.js","names":[],"sources":["../../src/components/TDrawer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n createId,\n focusFirst,\n focusLast,\n getFocusableElements,\n isEscapeKey,\n} from '@treeui/utils';\nimport { getTreeIcon, treeIconDefaults } from '@treeui/icons';\nimport {\n computed,\n nextTick,\n onBeforeUnmount,\n ref,\n toRef,\n useAttrs,\n watch,\n} from 'vue';\nimport { useControllableOpen } from '../composables/useControllableOpen';\nimport type { TDrawerSide, TSize } from '../types/contracts';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nconst CloseIcon = getTreeIcon('x');\n\nconst props = withDefaults(\n defineProps<{\n open?: boolean;\n defaultOpen?: boolean;\n disabled?: boolean;\n size?: TSize;\n side?: TDrawerSide;\n title?: string;\n description?: string;\n closeOnEscape?: boolean;\n closeOnOverlay?: boolean;\n showCloseButton?: boolean;\n closeLabel?: string;\n id?: string;\n }>(),\n {\n open: undefined,\n defaultOpen: false,\n disabled: false,\n size: 'md',\n side: 'right',\n title: '',\n description: '',\n closeOnEscape: true,\n closeOnOverlay: true,\n showCloseButton: true,\n closeLabel: 'Close drawer',\n id: undefined,\n },\n);\n\nconst emit = defineEmits<{\n 'update:open': [value: boolean];\n 'open-change': [value: boolean];\n}>();\n\nconst attrs = useAttrs();\nconst drawerId = props.id ?? createId('t-drawer');\nconst titleId = `${drawerId}-title`;\nconst descriptionId = `${drawerId}-description`;\nconst rootRef = ref<HTMLElement | null>(null);\nconst surfaceRef = ref<HTMLElement | null>(null);\nconst previousFocusedElement = ref<HTMLElement | null>(null);\nconst hasHeaderContent = computed(() => Boolean(props.title || slots.header));\n\nconst slots = defineSlots<{\n default?: () => unknown;\n trigger?: () => unknown;\n header?: () => unknown;\n content?: () => unknown;\n footer?: () => unknown;\n}>();\n\nconst rootClasses = computed(() => ['t-drawer', attrs.class]);\nconst rootStyle = computed(() => attrs.style);\nconst triggerAttrs = computed(() => {\n const { class: _class, style: _style, ...rest } = attrs;\n return rest;\n});\nconst surfaceClasses = computed(() => [\n 't-drawer__surface',\n `t-drawer__surface--${props.size}`,\n `t-drawer__surface--${props.side}`,\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 labelledBy = computed(() => (hasHeaderContent.value ? titleId : undefined));\nconst describedBy = computed(() => (props.description ? descriptionId : undefined));\n\nlet openOverlayCount = 0;\nlet previousBodyOverflow = '';\n\nconst lockBodyScroll = () => {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (openOverlayCount === 0) {\n previousBodyOverflow = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n\n openOverlayCount += 1;\n};\n\nconst unlockBodyScroll = () => {\n if (typeof document === 'undefined' || openOverlayCount === 0) {\n return;\n }\n\n openOverlayCount -= 1;\n\n if (openOverlayCount === 0) {\n document.body.style.overflow = previousBodyOverflow;\n }\n};\n\nconst focusSurface = () => {\n nextTick(() => {\n if (!surfaceRef.value) {\n return;\n }\n\n const focused = focusFirst(surfaceRef.value);\n if (!focused) {\n surfaceRef.value.focus();\n }\n });\n};\n\nconst openDrawer = () => {\n if (props.disabled) {\n return;\n }\n\n previousFocusedElement.value = document.activeElement as HTMLElement | null;\n setValue(true);\n};\n\nconst closeDrawer = () => {\n setValue(false);\n};\n\nconst onTriggerClick = (event: MouseEvent) => {\n if (props.disabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n openDrawer();\n};\n\nconst onOverlayClick = () => {\n if (!props.closeOnOverlay) {\n return;\n }\n\n closeDrawer();\n};\n\nconst onSurfaceClick = (event: MouseEvent) => {\n event.stopPropagation();\n};\n\nconst onKeydown = (event: KeyboardEvent) => {\n if (isEscapeKey(event) && props.closeOnEscape) {\n event.preventDefault();\n closeDrawer();\n return;\n }\n\n if (event.key !== 'Tab' || !surfaceRef.value) {\n return;\n }\n\n const focusable = getFocusableElements(surfaceRef.value);\n\n if (!focusable.length) {\n event.preventDefault();\n surfaceRef.value.focus();\n return;\n }\n\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n const activeElement = document.activeElement as HTMLElement | null;\n\n if (event.shiftKey && activeElement === first) {\n event.preventDefault();\n focusLast(surfaceRef.value);\n }\n\n if (!event.shiftKey && activeElement === last) {\n event.preventDefault();\n focusFirst(surfaceRef.value);\n }\n};\n\nwatch(isOpen, (value, previousValue) => {\n if (value) {\n lockBodyScroll();\n focusSurface();\n return;\n }\n\n if (previousValue) {\n unlockBodyScroll();\n nextTick(() => {\n previousFocusedElement.value?.focus();\n });\n }\n});\n\nonBeforeUnmount(() => {\n if (isOpen.value) {\n unlockBodyScroll();\n }\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 <span\n v-if=\"$slots.trigger\"\n class=\"t-drawer__trigger\"\n v-bind=\"triggerAttrs\"\n :aria-disabled=\"disabled || undefined\"\n @click=\"onTriggerClick\"\n >\n <slot name=\"trigger\" />\n </span>\n\n <Teleport to=\"body\">\n <transition name=\"t-drawer-fade\">\n <div\n v-if=\"isOpen\"\n class=\"t-drawer__portal\"\n :data-state=\"isOpen ? 'open' : 'closed'\"\n >\n <div\n class=\"t-drawer__backdrop\"\n aria-hidden=\"true\"\n @click=\"onOverlayClick\"\n />\n <div\n :id=\"drawerId\"\n ref=\"surfaceRef\"\n :class=\"surfaceClasses\"\n role=\"dialog\"\n aria-modal=\"true\"\n :aria-labelledby=\"labelledBy\"\n :aria-describedby=\"describedBy\"\n tabindex=\"-1\"\n @click=\"onSurfaceClick\"\n @keydown=\"onKeydown\"\n >\n <div\n v-if=\"hasHeaderContent || showCloseButton\"\n class=\"t-drawer__topbar\"\n >\n <div\n v-if=\"hasHeaderContent\"\n :id=\"titleId\"\n class=\"t-drawer__header\"\n >\n <slot name=\"header\">\n <h2 class=\"t-drawer__title\">\n {{ title }}\n </h2>\n </slot>\n </div>\n <button\n v-if=\"showCloseButton\"\n type=\"button\"\n class=\"t-drawer__close\"\n :aria-label=\"closeLabel\"\n @click=\"closeDrawer\"\n >\n <CloseIcon v-bind=\"treeIconDefaults\" />\n </button>\n </div>\n\n <p\n v-if=\"description\"\n :id=\"descriptionId\"\n class=\"t-drawer__description\"\n >\n {{ description }}\n </p>\n\n <div class=\"t-drawer__body\">\n <slot name=\"content\">\n <slot />\n </slot>\n </div>\n\n <div\n v-if=\"$slots.footer\"\n class=\"t-drawer__footer\"\n >\n <slot name=\"footer\" />\n </div>\n </div>\n </div>\n </transition>\n </Teleport>\n </div>\n</template>\n"],"mappings":""}
@@ -1,10 +1,10 @@
1
- import { TreeDrawerSide, TreeSize } from '../types/contracts';
1
+ import { TDrawerSide, TSize } from '../types/contracts';
2
2
  type __VLS_Props = {
3
3
  open?: boolean;
4
4
  defaultOpen?: boolean;
5
5
  disabled?: boolean;
6
- size?: TreeSize;
7
- side?: TreeDrawerSide;
6
+ size?: TSize;
7
+ side?: TDrawerSide;
8
8
  title?: string;
9
9
  description?: string;
10
10
  closeOnEscape?: boolean;
@@ -43,7 +43,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
43
43
  "onOpen-change"?: ((value: boolean) => any) | undefined;
44
44
  }>, {
45
45
  disabled: boolean;
46
- size: TreeSize;
46
+ size: TSize;
47
47
  title: string;
48
48
  id: string;
49
49
  open: boolean;
@@ -53,7 +53,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
53
53
  closeOnOverlay: boolean;
54
54
  showCloseButton: boolean;
55
55
  closeLabel: string;
56
- side: TreeDrawerSide;
56
+ side: TDrawerSide;
57
57
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
58
58
  rootRef: HTMLDivElement;
59
59
  surfaceRef: HTMLDivElement;
@@ -65,4 +65,4 @@ type __VLS_WithTemplateSlots<T, S> = T & {
65
65
  $slots: S;
66
66
  };
67
67
  };
68
- //# sourceMappingURL=TreeDrawer.vue.d.ts.map
68
+ //# sourceMappingURL=TDrawer.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TDrawer.vue.d.ts","sourceRoot":"","sources":["../../src/components/TDrawer.vue"],"names":[],"mappings":"AAiWA,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAQ7D,KAAK,WAAW,GAAG;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAAC;AAyNJ,iBAAS,cAAc;WA4IT,OAAO,IAA6B;;kBAlUtC,MAAM,OAAO;kBACb,MAAM,OAAO;iBACd,MAAM,OAAO;kBACZ,MAAM,OAAO;iBACd,MAAM,OAAO;;kBAJZ,MAAM,OAAO;kBACb,MAAM,OAAO;iBACd,MAAM,OAAO;kBACZ,MAAM,OAAO;iBACd,MAAM,OAAO;;;;;;;EAmUvB;AA8BD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;cAnZN,OAAO;UACX,KAAK;WAEJ,MAAM;QAMT,MAAM;UAXJ,OAAO;iBACA,OAAO;iBAKP,MAAM;mBACJ,OAAO;oBACN,OAAO;qBACN,OAAO;gBACZ,MAAM;UANZ,WAAW;;;;OA0ZpB,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("../composables/useControllableOpen.cjs");let t=require("vue"),n=require("@treeui/utils"),r=require("@treeui/icons");var i=[`data-state`],a=[`aria-disabled`],o=[`data-state`],s=[`id`,`aria-labelledby`,`aria-describedby`],c={key:0,class:`t-drawer__topbar`},l={class:`t-drawer__title`},u=[`aria-label`],d={class:`t-drawer__body`},f={key:2,class:`t-drawer__footer`},p=(0,t.defineComponent)({inheritAttrs:!1,__name:`TDrawer`,props:{open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},size:{default:`md`},side:{default:`right`},title:{default:``},description:{default:``},closeOnEscape:{type:Boolean,default:!0},closeOnOverlay:{type:Boolean,default:!0},showCloseButton:{type:Boolean,default:!0},closeLabel:{default:`Close drawer`},id:{default:void 0}},emits:[`update:open`,`open-change`],setup(p,{emit:m}){let h=(0,r.getTreeIcon)(`x`),g=p,_=m,v=(0,t.useAttrs)(),y=g.id??(0,n.createId)(`t-drawer`),b=`${y}-title`,x=`${y}-description`,S=(0,t.ref)(null),C=(0,t.ref)(null),w=(0,t.ref)(null),T=(0,t.computed)(()=>!!(g.title||E.header)),E=(0,t.useSlots)(),D=(0,t.computed)(()=>[`t-drawer`,v.class]),O=(0,t.computed)(()=>v.style),k=(0,t.computed)(()=>{let{class:e,style:t,...n}=v;return n}),A=(0,t.computed)(()=>[`t-drawer__surface`,`t-drawer__surface--${g.size}`,`t-drawer__surface--${g.side}`]),{value:j,setValue:M}=e.useControllableOpen((0,t.toRef)(g,`open`),g.defaultOpen,e=>{_(`update:open`,e),_(`open-change`,e)}),N=(0,t.computed)(()=>T.value?b:void 0),P=(0,t.computed)(()=>g.description?x:void 0),F=0,I=``,L=()=>{typeof document>`u`||(F===0&&(I=document.body.style.overflow,document.body.style.overflow=`hidden`),F+=1)},R=()=>{typeof document>`u`||F===0||(--F,F===0&&(document.body.style.overflow=I))},z=()=>{(0,t.nextTick)(()=>{C.value&&((0,n.focusFirst)(C.value)||C.value.focus())})},B=()=>{g.disabled||(w.value=document.activeElement,M(!0))},V=()=>{M(!1)},H=e=>{if(g.disabled){e.preventDefault(),e.stopPropagation();return}e.defaultPrevented||B()},U=()=>{g.closeOnOverlay&&V()},W=e=>{e.stopPropagation()},G=e=>{if((0,n.isEscapeKey)(e)&&g.closeOnEscape){e.preventDefault(),V();return}if(e.key!==`Tab`||!C.value)return;let t=(0,n.getFocusableElements)(C.value);if(!t.length){e.preventDefault(),C.value.focus();return}let r=t[0],i=t[t.length-1],a=document.activeElement;e.shiftKey&&a===r&&(e.preventDefault(),(0,n.focusLast)(C.value)),!e.shiftKey&&a===i&&(e.preventDefault(),(0,n.focusFirst)(C.value))};return(0,t.watch)(j,(e,n)=>{if(e){L(),z();return}n&&(R(),(0,t.nextTick)(()=>{w.value?.focus()}))}),(0,t.onBeforeUnmount)(()=>{j.value&&R()}),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`rootRef`,ref:S,class:(0,t.normalizeClass)(D.value),style:(0,t.normalizeStyle)(O.value),"data-state":(0,t.unref)(j)?`open`:`closed`},[e.$slots.trigger?((0,t.openBlock)(),(0,t.createElementBlock)(`span`,(0,t.mergeProps)({key:0,class:`t-drawer__trigger`},k.value,{"aria-disabled":p.disabled||void 0,onClick:H}),[(0,t.renderSlot)(e.$slots,`trigger`)],16,a)):(0,t.createCommentVNode)(``,!0),((0,t.openBlock)(),(0,t.createBlock)(t.Teleport,{to:`body`},[(0,t.createVNode)(t.Transition,{name:`t-drawer-fade`},{default:(0,t.withCtx)(()=>[(0,t.unref)(j)?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,class:`t-drawer__portal`,"data-state":(0,t.unref)(j)?`open`:`closed`},[(0,t.createElementVNode)(`div`,{class:`t-drawer__backdrop`,"aria-hidden":`true`,onClick:U}),(0,t.createElementVNode)(`div`,{id:(0,t.unref)(y),ref_key:`surfaceRef`,ref:C,class:(0,t.normalizeClass)(A.value),role:`dialog`,"aria-modal":`true`,"aria-labelledby":N.value,"aria-describedby":P.value,tabindex:`-1`,onClick:W,onKeydown:G},[T.value||p.showCloseButton?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,c,[T.value?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{key:0,id:b,class:`t-drawer__header`},[(0,t.renderSlot)(e.$slots,`header`,{},()=>[(0,t.createElementVNode)(`h2`,l,(0,t.toDisplayString)(p.title),1)])])):(0,t.createCommentVNode)(``,!0),p.showCloseButton?((0,t.openBlock)(),(0,t.createElementBlock)(`button`,{key:1,type:`button`,class:`t-drawer__close`,"aria-label":p.closeLabel,onClick:V},[(0,t.createVNode)((0,t.unref)(h),(0,t.normalizeProps)((0,t.guardReactiveProps)((0,t.unref)(r.treeIconDefaults))),null,16)],8,u)):(0,t.createCommentVNode)(``,!0)])):(0,t.createCommentVNode)(``,!0),p.description?((0,t.openBlock)(),(0,t.createElementBlock)(`p`,{key:1,id:x,class:`t-drawer__description`},(0,t.toDisplayString)(p.description),1)):(0,t.createCommentVNode)(``,!0),(0,t.createElementVNode)(`div`,d,[(0,t.renderSlot)(e.$slots,`content`,{},()=>[(0,t.renderSlot)(e.$slots,`default`)])]),e.$slots.footer?((0,t.openBlock)(),(0,t.createElementBlock)(`div`,f,[(0,t.renderSlot)(e.$slots,`footer`)])):(0,t.createCommentVNode)(``,!0)],42,s)],8,o)):(0,t.createCommentVNode)(``,!0)]),_:3})]))],14,i))}});exports.default=p;
2
+ //# sourceMappingURL=TDrawer.vue_vue_type_script_setup_true_lang.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TDrawer.vue_vue_type_script_setup_true_lang.cjs","names":["$slots"],"sources":["../../src/components/TDrawer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n createId,\n focusFirst,\n focusLast,\n getFocusableElements,\n isEscapeKey,\n} from '@treeui/utils';\nimport { getTreeIcon, treeIconDefaults } from '@treeui/icons';\nimport {\n computed,\n nextTick,\n onBeforeUnmount,\n ref,\n toRef,\n useAttrs,\n watch,\n} from 'vue';\nimport { useControllableOpen } from '../composables/useControllableOpen';\nimport type { TDrawerSide, TSize } from '../types/contracts';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nconst CloseIcon = getTreeIcon('x');\n\nconst props = withDefaults(\n defineProps<{\n open?: boolean;\n defaultOpen?: boolean;\n disabled?: boolean;\n size?: TSize;\n side?: TDrawerSide;\n title?: string;\n description?: string;\n closeOnEscape?: boolean;\n closeOnOverlay?: boolean;\n showCloseButton?: boolean;\n closeLabel?: string;\n id?: string;\n }>(),\n {\n open: undefined,\n defaultOpen: false,\n disabled: false,\n size: 'md',\n side: 'right',\n title: '',\n description: '',\n closeOnEscape: true,\n closeOnOverlay: true,\n showCloseButton: true,\n closeLabel: 'Close drawer',\n id: undefined,\n },\n);\n\nconst emit = defineEmits<{\n 'update:open': [value: boolean];\n 'open-change': [value: boolean];\n}>();\n\nconst attrs = useAttrs();\nconst drawerId = props.id ?? createId('t-drawer');\nconst titleId = `${drawerId}-title`;\nconst descriptionId = `${drawerId}-description`;\nconst rootRef = ref<HTMLElement | null>(null);\nconst surfaceRef = ref<HTMLElement | null>(null);\nconst previousFocusedElement = ref<HTMLElement | null>(null);\nconst hasHeaderContent = computed(() => Boolean(props.title || slots.header));\n\nconst slots = defineSlots<{\n default?: () => unknown;\n trigger?: () => unknown;\n header?: () => unknown;\n content?: () => unknown;\n footer?: () => unknown;\n}>();\n\nconst rootClasses = computed(() => ['t-drawer', attrs.class]);\nconst rootStyle = computed(() => attrs.style);\nconst triggerAttrs = computed(() => {\n const { class: _class, style: _style, ...rest } = attrs;\n return rest;\n});\nconst surfaceClasses = computed(() => [\n 't-drawer__surface',\n `t-drawer__surface--${props.size}`,\n `t-drawer__surface--${props.side}`,\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 labelledBy = computed(() => (hasHeaderContent.value ? titleId : undefined));\nconst describedBy = computed(() => (props.description ? descriptionId : undefined));\n\nlet openOverlayCount = 0;\nlet previousBodyOverflow = '';\n\nconst lockBodyScroll = () => {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (openOverlayCount === 0) {\n previousBodyOverflow = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n\n openOverlayCount += 1;\n};\n\nconst unlockBodyScroll = () => {\n if (typeof document === 'undefined' || openOverlayCount === 0) {\n return;\n }\n\n openOverlayCount -= 1;\n\n if (openOverlayCount === 0) {\n document.body.style.overflow = previousBodyOverflow;\n }\n};\n\nconst focusSurface = () => {\n nextTick(() => {\n if (!surfaceRef.value) {\n return;\n }\n\n const focused = focusFirst(surfaceRef.value);\n if (!focused) {\n surfaceRef.value.focus();\n }\n });\n};\n\nconst openDrawer = () => {\n if (props.disabled) {\n return;\n }\n\n previousFocusedElement.value = document.activeElement as HTMLElement | null;\n setValue(true);\n};\n\nconst closeDrawer = () => {\n setValue(false);\n};\n\nconst onTriggerClick = (event: MouseEvent) => {\n if (props.disabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n openDrawer();\n};\n\nconst onOverlayClick = () => {\n if (!props.closeOnOverlay) {\n return;\n }\n\n closeDrawer();\n};\n\nconst onSurfaceClick = (event: MouseEvent) => {\n event.stopPropagation();\n};\n\nconst onKeydown = (event: KeyboardEvent) => {\n if (isEscapeKey(event) && props.closeOnEscape) {\n event.preventDefault();\n closeDrawer();\n return;\n }\n\n if (event.key !== 'Tab' || !surfaceRef.value) {\n return;\n }\n\n const focusable = getFocusableElements(surfaceRef.value);\n\n if (!focusable.length) {\n event.preventDefault();\n surfaceRef.value.focus();\n return;\n }\n\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n const activeElement = document.activeElement as HTMLElement | null;\n\n if (event.shiftKey && activeElement === first) {\n event.preventDefault();\n focusLast(surfaceRef.value);\n }\n\n if (!event.shiftKey && activeElement === last) {\n event.preventDefault();\n focusFirst(surfaceRef.value);\n }\n};\n\nwatch(isOpen, (value, previousValue) => {\n if (value) {\n lockBodyScroll();\n focusSurface();\n return;\n }\n\n if (previousValue) {\n unlockBodyScroll();\n nextTick(() => {\n previousFocusedElement.value?.focus();\n });\n }\n});\n\nonBeforeUnmount(() => {\n if (isOpen.value) {\n unlockBodyScroll();\n }\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 <span\n v-if=\"$slots.trigger\"\n class=\"t-drawer__trigger\"\n v-bind=\"triggerAttrs\"\n :aria-disabled=\"disabled || undefined\"\n @click=\"onTriggerClick\"\n >\n <slot name=\"trigger\" />\n </span>\n\n <Teleport to=\"body\">\n <transition name=\"t-drawer-fade\">\n <div\n v-if=\"isOpen\"\n class=\"t-drawer__portal\"\n :data-state=\"isOpen ? 'open' : 'closed'\"\n >\n <div\n class=\"t-drawer__backdrop\"\n aria-hidden=\"true\"\n @click=\"onOverlayClick\"\n />\n <div\n :id=\"drawerId\"\n ref=\"surfaceRef\"\n :class=\"surfaceClasses\"\n role=\"dialog\"\n aria-modal=\"true\"\n :aria-labelledby=\"labelledBy\"\n :aria-describedby=\"describedBy\"\n tabindex=\"-1\"\n @click=\"onSurfaceClick\"\n @keydown=\"onKeydown\"\n >\n <div\n v-if=\"hasHeaderContent || showCloseButton\"\n class=\"t-drawer__topbar\"\n >\n <div\n v-if=\"hasHeaderContent\"\n :id=\"titleId\"\n class=\"t-drawer__header\"\n >\n <slot name=\"header\">\n <h2 class=\"t-drawer__title\">\n {{ title }}\n </h2>\n </slot>\n </div>\n <button\n v-if=\"showCloseButton\"\n type=\"button\"\n class=\"t-drawer__close\"\n :aria-label=\"closeLabel\"\n @click=\"closeDrawer\"\n >\n <CloseIcon v-bind=\"treeIconDefaults\" />\n </button>\n </div>\n\n <p\n v-if=\"description\"\n :id=\"descriptionId\"\n class=\"t-drawer__description\"\n >\n {{ description }}\n </p>\n\n <div class=\"t-drawer__body\">\n <slot name=\"content\">\n <slot />\n </slot>\n </div>\n\n <div\n v-if=\"$slots.footer\"\n class=\"t-drawer__footer\"\n >\n <slot name=\"footer\" />\n </div>\n </div>\n </div>\n </transition>\n </Teleport>\n </div>\n</template>\n"],"mappings":"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"}
@@ -0,0 +1,168 @@
1
+ import { useControllableOpen as e } from "../composables/useControllableOpen.js";
2
+ import { Teleport as t, Transition as n, computed as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createVNode as c, defineComponent as l, guardReactiveProps as ee, mergeProps as te, nextTick as u, normalizeClass as d, normalizeProps as f, normalizeStyle as p, onBeforeUnmount as m, openBlock as h, ref as g, renderSlot as _, toDisplayString as v, toRef as ne, unref as y, useAttrs as b, useSlots as x, watch as S, withCtx as C } from "vue";
3
+ import { createId as w, focusFirst as T, focusLast as E, getFocusableElements as D, isEscapeKey as O } from "@treeui/utils";
4
+ import { getTreeIcon as re, treeIconDefaults as ie } from "@treeui/icons";
5
+ //#region src/components/TDrawer.vue?vue&type=script&setup=true&lang.ts
6
+ var ae = ["data-state"], oe = ["aria-disabled"], k = ["data-state"], A = [
7
+ "id",
8
+ "aria-labelledby",
9
+ "aria-describedby"
10
+ ], j = {
11
+ key: 0,
12
+ class: "t-drawer__topbar"
13
+ }, M = { class: "t-drawer__title" }, N = ["aria-label"], P = { class: "t-drawer__body" }, F = {
14
+ key: 2,
15
+ class: "t-drawer__footer"
16
+ }, I = /*@__PURE__*/ l({
17
+ inheritAttrs: !1,
18
+ __name: "TDrawer",
19
+ props: {
20
+ open: {
21
+ type: Boolean,
22
+ default: void 0
23
+ },
24
+ defaultOpen: {
25
+ type: Boolean,
26
+ default: !1
27
+ },
28
+ disabled: {
29
+ type: Boolean,
30
+ default: !1
31
+ },
32
+ size: { default: "md" },
33
+ side: { default: "right" },
34
+ title: { default: "" },
35
+ description: { default: "" },
36
+ closeOnEscape: {
37
+ type: Boolean,
38
+ default: !0
39
+ },
40
+ closeOnOverlay: {
41
+ type: Boolean,
42
+ default: !0
43
+ },
44
+ showCloseButton: {
45
+ type: Boolean,
46
+ default: !0
47
+ },
48
+ closeLabel: { default: "Close drawer" },
49
+ id: { default: void 0 }
50
+ },
51
+ emits: ["update:open", "open-change"],
52
+ setup(l, { emit: I }) {
53
+ let L = re("x"), R = l, z = I, B = b(), V = R.id ?? w("t-drawer"), H = `${V}-title`, U = `${V}-description`, W = g(null), G = g(null), K = g(null), q = r(() => !!(R.title || se.header)), se = x(), ce = r(() => ["t-drawer", B.class]), le = r(() => B.style), ue = r(() => {
54
+ let { class: e, style: t, ...n } = B;
55
+ return n;
56
+ }), de = r(() => [
57
+ "t-drawer__surface",
58
+ `t-drawer__surface--${R.size}`,
59
+ `t-drawer__surface--${R.side}`
60
+ ]), { value: J, setValue: Y } = e(ne(R, "open"), R.defaultOpen, (e) => {
61
+ z("update:open", e), z("open-change", e);
62
+ }), fe = r(() => q.value ? H : void 0), pe = r(() => R.description ? U : void 0), X = 0, Z = "", me = () => {
63
+ typeof document > "u" || (X === 0 && (Z = document.body.style.overflow, document.body.style.overflow = "hidden"), X += 1);
64
+ }, Q = () => {
65
+ typeof document > "u" || X === 0 || (--X, X === 0 && (document.body.style.overflow = Z));
66
+ }, he = () => {
67
+ u(() => {
68
+ G.value && (T(G.value) || G.value.focus());
69
+ });
70
+ }, ge = () => {
71
+ R.disabled || (K.value = document.activeElement, Y(!0));
72
+ }, $ = () => {
73
+ Y(!1);
74
+ }, _e = (e) => {
75
+ if (R.disabled) {
76
+ e.preventDefault(), e.stopPropagation();
77
+ return;
78
+ }
79
+ e.defaultPrevented || ge();
80
+ }, ve = () => {
81
+ R.closeOnOverlay && $();
82
+ }, ye = (e) => {
83
+ e.stopPropagation();
84
+ }, be = (e) => {
85
+ if (O(e) && R.closeOnEscape) {
86
+ e.preventDefault(), $();
87
+ return;
88
+ }
89
+ if (e.key !== "Tab" || !G.value) return;
90
+ let t = D(G.value);
91
+ if (!t.length) {
92
+ e.preventDefault(), G.value.focus();
93
+ return;
94
+ }
95
+ let n = t[0], r = t[t.length - 1], i = document.activeElement;
96
+ e.shiftKey && i === n && (e.preventDefault(), E(G.value)), !e.shiftKey && i === r && (e.preventDefault(), T(G.value));
97
+ };
98
+ return S(J, (e, t) => {
99
+ if (e) {
100
+ me(), he();
101
+ return;
102
+ }
103
+ t && (Q(), u(() => {
104
+ K.value?.focus();
105
+ }));
106
+ }), m(() => {
107
+ J.value && Q();
108
+ }), (e, r) => (h(), o("div", {
109
+ ref_key: "rootRef",
110
+ ref: W,
111
+ class: d(ce.value),
112
+ style: p(le.value),
113
+ "data-state": y(J) ? "open" : "closed"
114
+ }, [e.$slots.trigger ? (h(), o("span", te({
115
+ key: 0,
116
+ class: "t-drawer__trigger"
117
+ }, ue.value, {
118
+ "aria-disabled": l.disabled || void 0,
119
+ onClick: _e
120
+ }), [_(e.$slots, "trigger")], 16, oe)) : a("", !0), (h(), i(t, { to: "body" }, [c(n, { name: "t-drawer-fade" }, {
121
+ default: C(() => [y(J) ? (h(), o("div", {
122
+ key: 0,
123
+ class: "t-drawer__portal",
124
+ "data-state": y(J) ? "open" : "closed"
125
+ }, [s("div", {
126
+ class: "t-drawer__backdrop",
127
+ "aria-hidden": "true",
128
+ onClick: ve
129
+ }), s("div", {
130
+ id: y(V),
131
+ ref_key: "surfaceRef",
132
+ ref: G,
133
+ class: d(de.value),
134
+ role: "dialog",
135
+ "aria-modal": "true",
136
+ "aria-labelledby": fe.value,
137
+ "aria-describedby": pe.value,
138
+ tabindex: "-1",
139
+ onClick: ye,
140
+ onKeydown: be
141
+ }, [
142
+ q.value || l.showCloseButton ? (h(), o("div", j, [q.value ? (h(), o("div", {
143
+ key: 0,
144
+ id: H,
145
+ class: "t-drawer__header"
146
+ }, [_(e.$slots, "header", {}, () => [s("h2", M, v(l.title), 1)])])) : a("", !0), l.showCloseButton ? (h(), o("button", {
147
+ key: 1,
148
+ type: "button",
149
+ class: "t-drawer__close",
150
+ "aria-label": l.closeLabel,
151
+ onClick: $
152
+ }, [c(y(L), f(ee(y(ie))), null, 16)], 8, N)) : a("", !0)])) : a("", !0),
153
+ l.description ? (h(), o("p", {
154
+ key: 1,
155
+ id: U,
156
+ class: "t-drawer__description"
157
+ }, v(l.description), 1)) : a("", !0),
158
+ s("div", P, [_(e.$slots, "content", {}, () => [_(e.$slots, "default")])]),
159
+ e.$slots.footer ? (h(), o("div", F, [_(e.$slots, "footer")])) : a("", !0)
160
+ ], 42, A)], 8, k)) : a("", !0)]),
161
+ _: 3
162
+ })]))], 14, ae));
163
+ }
164
+ });
165
+ //#endregion
166
+ export { I as default };
167
+
168
+ //# sourceMappingURL=TDrawer.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TDrawer.vue_vue_type_script_setup_true_lang.js","names":["$slots"],"sources":["../../src/components/TDrawer.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n createId,\n focusFirst,\n focusLast,\n getFocusableElements,\n isEscapeKey,\n} from '@treeui/utils';\nimport { getTreeIcon, treeIconDefaults } from '@treeui/icons';\nimport {\n computed,\n nextTick,\n onBeforeUnmount,\n ref,\n toRef,\n useAttrs,\n watch,\n} from 'vue';\nimport { useControllableOpen } from '../composables/useControllableOpen';\nimport type { TDrawerSide, TSize } from '../types/contracts';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nconst CloseIcon = getTreeIcon('x');\n\nconst props = withDefaults(\n defineProps<{\n open?: boolean;\n defaultOpen?: boolean;\n disabled?: boolean;\n size?: TSize;\n side?: TDrawerSide;\n title?: string;\n description?: string;\n closeOnEscape?: boolean;\n closeOnOverlay?: boolean;\n showCloseButton?: boolean;\n closeLabel?: string;\n id?: string;\n }>(),\n {\n open: undefined,\n defaultOpen: false,\n disabled: false,\n size: 'md',\n side: 'right',\n title: '',\n description: '',\n closeOnEscape: true,\n closeOnOverlay: true,\n showCloseButton: true,\n closeLabel: 'Close drawer',\n id: undefined,\n },\n);\n\nconst emit = defineEmits<{\n 'update:open': [value: boolean];\n 'open-change': [value: boolean];\n}>();\n\nconst attrs = useAttrs();\nconst drawerId = props.id ?? createId('t-drawer');\nconst titleId = `${drawerId}-title`;\nconst descriptionId = `${drawerId}-description`;\nconst rootRef = ref<HTMLElement | null>(null);\nconst surfaceRef = ref<HTMLElement | null>(null);\nconst previousFocusedElement = ref<HTMLElement | null>(null);\nconst hasHeaderContent = computed(() => Boolean(props.title || slots.header));\n\nconst slots = defineSlots<{\n default?: () => unknown;\n trigger?: () => unknown;\n header?: () => unknown;\n content?: () => unknown;\n footer?: () => unknown;\n}>();\n\nconst rootClasses = computed(() => ['t-drawer', attrs.class]);\nconst rootStyle = computed(() => attrs.style);\nconst triggerAttrs = computed(() => {\n const { class: _class, style: _style, ...rest } = attrs;\n return rest;\n});\nconst surfaceClasses = computed(() => [\n 't-drawer__surface',\n `t-drawer__surface--${props.size}`,\n `t-drawer__surface--${props.side}`,\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 labelledBy = computed(() => (hasHeaderContent.value ? titleId : undefined));\nconst describedBy = computed(() => (props.description ? descriptionId : undefined));\n\nlet openOverlayCount = 0;\nlet previousBodyOverflow = '';\n\nconst lockBodyScroll = () => {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (openOverlayCount === 0) {\n previousBodyOverflow = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n\n openOverlayCount += 1;\n};\n\nconst unlockBodyScroll = () => {\n if (typeof document === 'undefined' || openOverlayCount === 0) {\n return;\n }\n\n openOverlayCount -= 1;\n\n if (openOverlayCount === 0) {\n document.body.style.overflow = previousBodyOverflow;\n }\n};\n\nconst focusSurface = () => {\n nextTick(() => {\n if (!surfaceRef.value) {\n return;\n }\n\n const focused = focusFirst(surfaceRef.value);\n if (!focused) {\n surfaceRef.value.focus();\n }\n });\n};\n\nconst openDrawer = () => {\n if (props.disabled) {\n return;\n }\n\n previousFocusedElement.value = document.activeElement as HTMLElement | null;\n setValue(true);\n};\n\nconst closeDrawer = () => {\n setValue(false);\n};\n\nconst onTriggerClick = (event: MouseEvent) => {\n if (props.disabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n openDrawer();\n};\n\nconst onOverlayClick = () => {\n if (!props.closeOnOverlay) {\n return;\n }\n\n closeDrawer();\n};\n\nconst onSurfaceClick = (event: MouseEvent) => {\n event.stopPropagation();\n};\n\nconst onKeydown = (event: KeyboardEvent) => {\n if (isEscapeKey(event) && props.closeOnEscape) {\n event.preventDefault();\n closeDrawer();\n return;\n }\n\n if (event.key !== 'Tab' || !surfaceRef.value) {\n return;\n }\n\n const focusable = getFocusableElements(surfaceRef.value);\n\n if (!focusable.length) {\n event.preventDefault();\n surfaceRef.value.focus();\n return;\n }\n\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n const activeElement = document.activeElement as HTMLElement | null;\n\n if (event.shiftKey && activeElement === first) {\n event.preventDefault();\n focusLast(surfaceRef.value);\n }\n\n if (!event.shiftKey && activeElement === last) {\n event.preventDefault();\n focusFirst(surfaceRef.value);\n }\n};\n\nwatch(isOpen, (value, previousValue) => {\n if (value) {\n lockBodyScroll();\n focusSurface();\n return;\n }\n\n if (previousValue) {\n unlockBodyScroll();\n nextTick(() => {\n previousFocusedElement.value?.focus();\n });\n }\n});\n\nonBeforeUnmount(() => {\n if (isOpen.value) {\n unlockBodyScroll();\n }\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 <span\n v-if=\"$slots.trigger\"\n class=\"t-drawer__trigger\"\n v-bind=\"triggerAttrs\"\n :aria-disabled=\"disabled || undefined\"\n @click=\"onTriggerClick\"\n >\n <slot name=\"trigger\" />\n </span>\n\n <Teleport to=\"body\">\n <transition name=\"t-drawer-fade\">\n <div\n v-if=\"isOpen\"\n class=\"t-drawer__portal\"\n :data-state=\"isOpen ? 'open' : 'closed'\"\n >\n <div\n class=\"t-drawer__backdrop\"\n aria-hidden=\"true\"\n @click=\"onOverlayClick\"\n />\n <div\n :id=\"drawerId\"\n ref=\"surfaceRef\"\n :class=\"surfaceClasses\"\n role=\"dialog\"\n aria-modal=\"true\"\n :aria-labelledby=\"labelledBy\"\n :aria-describedby=\"describedBy\"\n tabindex=\"-1\"\n @click=\"onSurfaceClick\"\n @keydown=\"onKeydown\"\n >\n <div\n v-if=\"hasHeaderContent || showCloseButton\"\n class=\"t-drawer__topbar\"\n >\n <div\n v-if=\"hasHeaderContent\"\n :id=\"titleId\"\n class=\"t-drawer__header\"\n >\n <slot name=\"header\">\n <h2 class=\"t-drawer__title\">\n {{ title }}\n </h2>\n </slot>\n </div>\n <button\n v-if=\"showCloseButton\"\n type=\"button\"\n class=\"t-drawer__close\"\n :aria-label=\"closeLabel\"\n @click=\"closeDrawer\"\n >\n <CloseIcon v-bind=\"treeIconDefaults\" />\n </button>\n </div>\n\n <p\n v-if=\"description\"\n :id=\"descriptionId\"\n class=\"t-drawer__description\"\n >\n {{ description }}\n </p>\n\n <div class=\"t-drawer__body\">\n <slot name=\"content\">\n <slot />\n </slot>\n </div>\n\n <div\n v-if=\"$slots.footer\"\n class=\"t-drawer__footer\"\n >\n <slot name=\"footer\" />\n </div>\n </div>\n </div>\n </transition>\n </Teleport>\n </div>\n</template>\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ var e=require("./TDropdown.vue_vue_type_script_setup_true_lang.cjs").default;exports.default=e;
2
+ //# sourceMappingURL=TDropdown.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TDropdown.cjs","names":[],"sources":["../../src/components/TDropdown.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { createId, isActivationKey, isEscapeKey } from '@treeui/utils';\nimport { computed, nextTick, onBeforeUnmount, ref, toRef, useAttrs, watch } from 'vue';\nimport { useControllableOpen } from '../composables/useControllableOpen';\nimport type { TSize } from '../types/contracts';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nexport interface TDropdownItem {\n label: string;\n value: string;\n disabled?: boolean;\n}\n\nexport type TDropdownAlign = 'start' | 'end';\n\nconst props = withDefaults(\n defineProps<{\n items?: TDropdownItem[];\n open?: boolean;\n defaultOpen?: boolean;\n disabled?: boolean;\n size?: TSize;\n label?: string;\n align?: TDropdownAlign;\n }>(),\n {\n items: () => [],\n open: undefined,\n defaultOpen: false,\n disabled: false,\n size: 'md',\n label: '',\n align: 'start',\n },\n);\n\nconst emit = defineEmits<{\n select: [value: string];\n 'update:open': [value: boolean];\n 'open-change': [value: boolean];\n}>();\n\ndefineSlots<{\n trigger(props: { isOpen: boolean }): unknown;\n item(props: { item: TDropdownItem; index: number }): unknown;\n}>();\n\nconst attrs = useAttrs();\nconst menuId = createId('t-dropdown');\nconst rootRef = ref<HTMLElement | null>(null);\nconst triggerRef = ref<HTMLButtonElement | null>(null);\nconst itemRefs = ref<Map<string, HTMLElement>>(new Map());\nconst focusedIndex = ref(-1);\n\nconst triggerAttrs = computed(() => {\n const { class: _class, style: _style, ...rest } = attrs;\n return rest;\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-dropdown',\n `t-dropdown--${props.size}`,\n {\n 't-dropdown--align-end': props.align === 'end',\n 'is-disabled': props.disabled,\n 'is-open': isOpen.value,\n },\n attrs.class,\n]);\n\nconst rootStyle = computed(() => attrs.style);\n\nconst enabledItems = computed(() => props.items.filter((i) => !i.disabled));\n\nconst openMenu = () => {\n if (props.disabled) return;\n focusedIndex.value = enabledItems.value.length > 0\n ? props.items.indexOf(enabledItems.value[0])\n : 0;\n setValue(true);\n nextTick(() => focusItem(focusedIndex.value));\n};\n\nconst closeMenu = (restoreFocus = false) => {\n setValue(false);\n focusedIndex.value = -1;\n if (restoreFocus) {\n nextTick(() => triggerRef.value?.focus());\n }\n};\n\nconst toggleMenu = () => {\n if (isOpen.value) {\n closeMenu();\n } else {\n openMenu();\n }\n};\n\nconst selectItem = (item: TDropdownItem) => {\n if (item.disabled) return;\n emit('select', item.value);\n closeMenu(true);\n};\n\nconst focusItem = (index: number) => {\n const item = props.items[index];\n if (!item) return;\n const el = itemRefs.value.get(item.value);\n el?.focus();\n};\n\nconst setItemRef = (el: Element | null, value: string) => {\n if (el instanceof HTMLElement) {\n itemRefs.value.set(value, el);\n } else {\n itemRefs.value.delete(value);\n }\n};\n\nconst moveFocus = (direction: 1 | -1) => {\n let nextIndex = focusedIndex.value + direction;\n while (nextIndex >= 0 && nextIndex < props.items.length) {\n if (!props.items[nextIndex].disabled) {\n focusedIndex.value = nextIndex;\n focusItem(nextIndex);\n return;\n }\n nextIndex += direction;\n }\n};\n\nconst onTriggerKeydown = (event: KeyboardEvent) => {\n if (props.disabled) return;\n\n if (isEscapeKey(event) && isOpen.value) {\n event.preventDefault();\n closeMenu();\n return;\n }\n\n if (isActivationKey(event) || event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n openMenu();\n }\n};\n\nconst onItemKeydown = (event: KeyboardEvent, item: TDropdownItem) => {\n if (isEscapeKey(event)) {\n event.preventDefault();\n closeMenu(true);\n return;\n }\n\n if (isActivationKey(event)) {\n event.preventDefault();\n selectItem(item);\n return;\n }\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n moveFocus(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n moveFocus(-1);\n break;\n case 'Home':\n event.preventDefault();\n focusedIndex.value = enabledItems.value.length > 0\n ? props.items.indexOf(enabledItems.value[0])\n : 0;\n focusItem(focusedIndex.value);\n break;\n case 'End':\n event.preventDefault();\n focusedIndex.value = enabledItems.value.length > 0\n ? props.items.indexOf(enabledItems.value[enabledItems.value.length - 1])\n : props.items.length - 1;\n focusItem(focusedIndex.value);\n break;\n default:\n break;\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 closeMenu();\n};\n\nwatch(isOpen, (value) => {\n if (value) {\n document.addEventListener('pointerdown', onDocumentPointerDown);\n } else {\n document.removeEventListener('pointerdown', onDocumentPointerDown);\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 <span class=\"t-dropdown__trigger-wrapper\">\n <slot\n name=\"trigger\"\n :is-open=\"isOpen\"\n >\n <button\n ref=\"triggerRef\"\n v-bind=\"triggerAttrs\"\n type=\"button\"\n class=\"t-dropdown__trigger\"\n :disabled=\"disabled\"\n :aria-controls=\"isOpen ? menuId : undefined\"\n aria-haspopup=\"menu\"\n :aria-expanded=\"isOpen\"\n @click=\"toggleMenu\"\n @keydown=\"onTriggerKeydown\"\n >\n <span class=\"t-dropdown__label\">{{ label }}</span>\n <svg\n class=\"t-dropdown__chevron\"\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 </button>\n </slot>\n </span>\n <transition name=\"t-fade\">\n <ul\n v-if=\"isOpen && !disabled\"\n :id=\"menuId\"\n role=\"menu\"\n class=\"t-dropdown__menu\"\n :aria-label=\"label || undefined\"\n >\n <li\n v-for=\"(item, index) in items\"\n :key=\"item.value\"\n :ref=\"(el) => setItemRef(el as Element | null, item.value)\"\n role=\"menuitem\"\n class=\"t-dropdown__item\"\n :class=\"{\n 'is-disabled': item.disabled,\n 'is-focused': index === focusedIndex,\n }\"\n :aria-disabled=\"item.disabled || undefined\"\n :tabindex=\"item.disabled ? -1 : 0\"\n @click=\"selectItem(item)\"\n @keydown=\"onItemKeydown($event, item)\"\n >\n <slot\n name=\"item\"\n :item=\"item\"\n :index=\"index\"\n >\n {{ item.label }}\n </slot>\n </li>\n </ul>\n </transition>\n </div>\n</template>\n"],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import e from "./TDropdown.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/TDropdown.vue
3
+ var t = e;
4
+ //#endregion
5
+ export { t as default };
6
+
7
+ //# sourceMappingURL=TDropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TDropdown.js","names":[],"sources":["../../src/components/TDropdown.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { createId, isActivationKey, isEscapeKey } from '@treeui/utils';\nimport { computed, nextTick, onBeforeUnmount, ref, toRef, useAttrs, watch } from 'vue';\nimport { useControllableOpen } from '../composables/useControllableOpen';\nimport type { TSize } from '../types/contracts';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nexport interface TDropdownItem {\n label: string;\n value: string;\n disabled?: boolean;\n}\n\nexport type TDropdownAlign = 'start' | 'end';\n\nconst props = withDefaults(\n defineProps<{\n items?: TDropdownItem[];\n open?: boolean;\n defaultOpen?: boolean;\n disabled?: boolean;\n size?: TSize;\n label?: string;\n align?: TDropdownAlign;\n }>(),\n {\n items: () => [],\n open: undefined,\n defaultOpen: false,\n disabled: false,\n size: 'md',\n label: '',\n align: 'start',\n },\n);\n\nconst emit = defineEmits<{\n select: [value: string];\n 'update:open': [value: boolean];\n 'open-change': [value: boolean];\n}>();\n\ndefineSlots<{\n trigger(props: { isOpen: boolean }): unknown;\n item(props: { item: TDropdownItem; index: number }): unknown;\n}>();\n\nconst attrs = useAttrs();\nconst menuId = createId('t-dropdown');\nconst rootRef = ref<HTMLElement | null>(null);\nconst triggerRef = ref<HTMLButtonElement | null>(null);\nconst itemRefs = ref<Map<string, HTMLElement>>(new Map());\nconst focusedIndex = ref(-1);\n\nconst triggerAttrs = computed(() => {\n const { class: _class, style: _style, ...rest } = attrs;\n return rest;\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-dropdown',\n `t-dropdown--${props.size}`,\n {\n 't-dropdown--align-end': props.align === 'end',\n 'is-disabled': props.disabled,\n 'is-open': isOpen.value,\n },\n attrs.class,\n]);\n\nconst rootStyle = computed(() => attrs.style);\n\nconst enabledItems = computed(() => props.items.filter((i) => !i.disabled));\n\nconst openMenu = () => {\n if (props.disabled) return;\n focusedIndex.value = enabledItems.value.length > 0\n ? props.items.indexOf(enabledItems.value[0])\n : 0;\n setValue(true);\n nextTick(() => focusItem(focusedIndex.value));\n};\n\nconst closeMenu = (restoreFocus = false) => {\n setValue(false);\n focusedIndex.value = -1;\n if (restoreFocus) {\n nextTick(() => triggerRef.value?.focus());\n }\n};\n\nconst toggleMenu = () => {\n if (isOpen.value) {\n closeMenu();\n } else {\n openMenu();\n }\n};\n\nconst selectItem = (item: TDropdownItem) => {\n if (item.disabled) return;\n emit('select', item.value);\n closeMenu(true);\n};\n\nconst focusItem = (index: number) => {\n const item = props.items[index];\n if (!item) return;\n const el = itemRefs.value.get(item.value);\n el?.focus();\n};\n\nconst setItemRef = (el: Element | null, value: string) => {\n if (el instanceof HTMLElement) {\n itemRefs.value.set(value, el);\n } else {\n itemRefs.value.delete(value);\n }\n};\n\nconst moveFocus = (direction: 1 | -1) => {\n let nextIndex = focusedIndex.value + direction;\n while (nextIndex >= 0 && nextIndex < props.items.length) {\n if (!props.items[nextIndex].disabled) {\n focusedIndex.value = nextIndex;\n focusItem(nextIndex);\n return;\n }\n nextIndex += direction;\n }\n};\n\nconst onTriggerKeydown = (event: KeyboardEvent) => {\n if (props.disabled) return;\n\n if (isEscapeKey(event) && isOpen.value) {\n event.preventDefault();\n closeMenu();\n return;\n }\n\n if (isActivationKey(event) || event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n openMenu();\n }\n};\n\nconst onItemKeydown = (event: KeyboardEvent, item: TDropdownItem) => {\n if (isEscapeKey(event)) {\n event.preventDefault();\n closeMenu(true);\n return;\n }\n\n if (isActivationKey(event)) {\n event.preventDefault();\n selectItem(item);\n return;\n }\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n moveFocus(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n moveFocus(-1);\n break;\n case 'Home':\n event.preventDefault();\n focusedIndex.value = enabledItems.value.length > 0\n ? props.items.indexOf(enabledItems.value[0])\n : 0;\n focusItem(focusedIndex.value);\n break;\n case 'End':\n event.preventDefault();\n focusedIndex.value = enabledItems.value.length > 0\n ? props.items.indexOf(enabledItems.value[enabledItems.value.length - 1])\n : props.items.length - 1;\n focusItem(focusedIndex.value);\n break;\n default:\n break;\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 closeMenu();\n};\n\nwatch(isOpen, (value) => {\n if (value) {\n document.addEventListener('pointerdown', onDocumentPointerDown);\n } else {\n document.removeEventListener('pointerdown', onDocumentPointerDown);\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 <span class=\"t-dropdown__trigger-wrapper\">\n <slot\n name=\"trigger\"\n :is-open=\"isOpen\"\n >\n <button\n ref=\"triggerRef\"\n v-bind=\"triggerAttrs\"\n type=\"button\"\n class=\"t-dropdown__trigger\"\n :disabled=\"disabled\"\n :aria-controls=\"isOpen ? menuId : undefined\"\n aria-haspopup=\"menu\"\n :aria-expanded=\"isOpen\"\n @click=\"toggleMenu\"\n @keydown=\"onTriggerKeydown\"\n >\n <span class=\"t-dropdown__label\">{{ label }}</span>\n <svg\n class=\"t-dropdown__chevron\"\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 </button>\n </slot>\n </span>\n <transition name=\"t-fade\">\n <ul\n v-if=\"isOpen && !disabled\"\n :id=\"menuId\"\n role=\"menu\"\n class=\"t-dropdown__menu\"\n :aria-label=\"label || undefined\"\n >\n <li\n v-for=\"(item, index) in items\"\n :key=\"item.value\"\n :ref=\"(el) => setItemRef(el as Element | null, item.value)\"\n role=\"menuitem\"\n class=\"t-dropdown__item\"\n :class=\"{\n 'is-disabled': item.disabled,\n 'is-focused': index === focusedIndex,\n }\"\n :aria-disabled=\"item.disabled || undefined\"\n :tabindex=\"item.disabled ? -1 : 0\"\n @click=\"selectItem(item)\"\n @keydown=\"onItemKeydown($event, item)\"\n >\n <slot\n name=\"item\"\n :item=\"item\"\n :index=\"index\"\n >\n {{ item.label }}\n </slot>\n </li>\n </ul>\n </transition>\n </div>\n</template>\n"],"mappings":""}
@@ -1,16 +1,18 @@
1
- import { TreeSize } from '../types/contracts';
2
- export interface TreeDropdownItem {
1
+ import { TSize } from '../types/contracts';
2
+ export interface TDropdownItem {
3
3
  label: string;
4
4
  value: string;
5
5
  disabled?: boolean;
6
6
  }
7
+ export type TDropdownAlign = 'start' | 'end';
7
8
  type __VLS_Props = {
8
- items?: TreeDropdownItem[];
9
+ items?: TDropdownItem[];
9
10
  open?: boolean;
10
11
  defaultOpen?: boolean;
11
12
  disabled?: boolean;
12
- size?: TreeSize;
13
+ size?: TSize;
13
14
  label?: string;
15
+ align?: TDropdownAlign;
14
16
  };
15
17
  declare function __VLS_template(): {
16
18
  attrs: Partial<{}>;
@@ -19,7 +21,7 @@ declare function __VLS_template(): {
19
21
  isOpen: boolean;
20
22
  }): unknown;
21
23
  item(props: {
22
- item: TreeDropdownItem;
24
+ item: TDropdownItem;
23
25
  index: number;
24
26
  }): unknown;
25
27
  }> & {
@@ -27,7 +29,7 @@ declare function __VLS_template(): {
27
29
  isOpen: boolean;
28
30
  }): unknown;
29
31
  item(props: {
30
- item: TreeDropdownItem;
32
+ item: TDropdownItem;
31
33
  index: number;
32
34
  }): unknown;
33
35
  };
@@ -48,11 +50,12 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}
48
50
  "onOpen-change"?: ((value: boolean) => any) | undefined;
49
51
  }>, {
50
52
  disabled: boolean;
51
- size: TreeSize;
53
+ size: TSize;
52
54
  label: string;
53
55
  open: boolean;
54
56
  defaultOpen: boolean;
55
- items: TreeDropdownItem[];
57
+ items: TDropdownItem[];
58
+ align: TDropdownAlign;
56
59
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
57
60
  rootRef: HTMLDivElement;
58
61
  triggerRef: HTMLButtonElement;
@@ -64,4 +67,4 @@ type __VLS_WithTemplateSlots<T, S> = T & {
64
67
  $slots: S;
65
68
  };
66
69
  };
67
- //# sourceMappingURL=TreeDropdown.vue.d.ts.map
70
+ //# sourceMappingURL=TDropdown.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TDropdown.vue.d.ts","sourceRoot":"","sources":["../../src/components/TDropdown.vue"],"names":[],"mappings":"AA6SA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAMhD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,KAAK,CAAC;AAE7C,KAAK,WAAW,GAAG;IACf,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB,CAAC;AA+MJ,iBAAS,cAAc;WA8GT,OAAO,IAA6B;;uBAvSjC;YAAE,MAAM,EAAE,OAAO,CAAA;SAAE,GAAG,OAAO;oBAChC;YAAE,IAAI,EAAE,aAAa,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO;;uBAD7C;YAAE,MAAM,EAAE,OAAO,CAAA;SAAE,GAAG,OAAO;oBAChC;YAAE,IAAI,EAAE,aAAa,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO;;;;;;;EA2S7D;AAuBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;;cA9VN,OAAO;UACX,KAAK;WACJ,MAAM;UAJP,OAAO;iBACA,OAAO;WAFb,aAAa,EAAE;WAMf,cAAc;;;;OAoWxB,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("../composables/useControllableOpen.cjs");let t=require("vue"),n=require("@treeui/utils");var r=[`data-state`],i={class:`t-dropdown__trigger-wrapper`},a=[`disabled`,`aria-controls`,`aria-expanded`],o={class:`t-dropdown__label`},s=[`id`,`aria-label`],c=[`aria-disabled`,`tabindex`,`onClick`,`onKeydown`],l=(0,t.defineComponent)({inheritAttrs:!1,__name:`TDropdown`,props:{items:{default:()=>[]},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},size:{default:`md`},label:{default:``},align:{default:`start`}},emits:[`select`,`update:open`,`open-change`],setup(l,{emit:u}){let d=l,f=u,p=(0,t.useAttrs)(),m=(0,n.createId)(`t-dropdown`),h=(0,t.ref)(null),g=(0,t.ref)(null),_=(0,t.ref)(new Map),v=(0,t.ref)(-1),y=(0,t.computed)(()=>{let{class:e,style:t,...n}=p;return n}),{value:b,setValue:x}=e.useControllableOpen((0,t.toRef)(d,`open`),d.defaultOpen,e=>{f(`update:open`,e),f(`open-change`,e)}),S=(0,t.computed)(()=>[`t-dropdown`,`t-dropdown--${d.size}`,{"t-dropdown--align-end":d.align===`end`,"is-disabled":d.disabled,"is-open":b.value},p.class]),C=(0,t.computed)(()=>p.style),w=(0,t.computed)(()=>d.items.filter(e=>!e.disabled)),T=()=>{d.disabled||(v.value=w.value.length>0?d.items.indexOf(w.value[0]):0,x(!0),(0,t.nextTick)(()=>k(v.value)))},E=(e=!1)=>{x(!1),v.value=-1,e&&(0,t.nextTick)(()=>g.value?.focus())},D=()=>{b.value?E():T()},O=e=>{e.disabled||(f(`select`,e.value),E(!0))},k=e=>{let t=d.items[e];t&&_.value.get(t.value)?.focus()},A=(e,t)=>{e instanceof HTMLElement?_.value.set(t,e):_.value.delete(t)},j=e=>{let t=v.value+e;for(;t>=0&&t<d.items.length;){if(!d.items[t].disabled){v.value=t,k(t);return}t+=e}},M=e=>{if(!d.disabled){if((0,n.isEscapeKey)(e)&&b.value){e.preventDefault(),E();return}((0,n.isActivationKey)(e)||e.key===`ArrowDown`||e.key===`ArrowUp`)&&(e.preventDefault(),T())}},N=(e,t)=>{if((0,n.isEscapeKey)(e)){e.preventDefault(),E(!0);return}if((0,n.isActivationKey)(e)){e.preventDefault(),O(t);return}switch(e.key){case`ArrowDown`:e.preventDefault(),j(1);break;case`ArrowUp`:e.preventDefault(),j(-1);break;case`Home`:e.preventDefault(),v.value=w.value.length>0?d.items.indexOf(w.value[0]):0,k(v.value);break;case`End`:e.preventDefault(),v.value=w.value.length>0?d.items.indexOf(w.value[w.value.length-1]):d.items.length-1,k(v.value);break;default:break}},P=e=>{if(!b.value)return;let t=e.target;t instanceof Node&&(h.value?.contains(t)||E())};return(0,t.watch)(b,e=>{e?document.addEventListener(`pointerdown`,P):document.removeEventListener(`pointerdown`,P)}),(0,t.onBeforeUnmount)(()=>{document.removeEventListener(`pointerdown`,P)}),(e,n)=>((0,t.openBlock)(),(0,t.createElementBlock)(`div`,{ref_key:`rootRef`,ref:h,class:(0,t.normalizeClass)(S.value),style:(0,t.normalizeStyle)(C.value),"data-state":(0,t.unref)(b)?`open`:`closed`},[(0,t.createElementVNode)(`span`,i,[(0,t.renderSlot)(e.$slots,`trigger`,{isOpen:(0,t.unref)(b)},()=>[(0,t.createElementVNode)(`button`,(0,t.mergeProps)({ref_key:`triggerRef`,ref:g},y.value,{type:`button`,class:`t-dropdown__trigger`,disabled:l.disabled,"aria-controls":(0,t.unref)(b)?(0,t.unref)(m):void 0,"aria-haspopup":`menu`,"aria-expanded":(0,t.unref)(b),onClick:D,onKeydown:M}),[(0,t.createElementVNode)(`span`,o,(0,t.toDisplayString)(l.label),1),n[0]||=(0,t.createElementVNode)(`svg`,{class:`t-dropdown__chevron`,viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"aria-hidden":`true`},[(0,t.createElementVNode)(`polyline`,{points:`4 6 8 10 12 6`})],-1)],16,a)])]),(0,t.createVNode)(t.Transition,{name:`t-fade`},{default:(0,t.withCtx)(()=>[(0,t.unref)(b)&&!l.disabled?((0,t.openBlock)(),(0,t.createElementBlock)(`ul`,{key:0,id:(0,t.unref)(m),role:`menu`,class:`t-dropdown__menu`,"aria-label":l.label||void 0},[((0,t.openBlock)(!0),(0,t.createElementBlock)(t.Fragment,null,(0,t.renderList)(l.items,(n,r)=>((0,t.openBlock)(),(0,t.createElementBlock)(`li`,{key:n.value,ref_for:!0,ref:e=>A(e,n.value),role:`menuitem`,class:(0,t.normalizeClass)([`t-dropdown__item`,{"is-disabled":n.disabled,"is-focused":r===v.value}]),"aria-disabled":n.disabled||void 0,tabindex:n.disabled?-1:0,onClick:e=>O(n),onKeydown:e=>N(e,n)},[(0,t.renderSlot)(e.$slots,`item`,{item:n,index:r},()=>[(0,t.createTextVNode)((0,t.toDisplayString)(n.label),1)])],42,c))),128))],8,s)):(0,t.createCommentVNode)(``,!0)]),_:3})],14,r))}});exports.default=l;
2
+ //# sourceMappingURL=TDropdown.vue_vue_type_script_setup_true_lang.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TDropdown.vue_vue_type_script_setup_true_lang.cjs","names":[],"sources":["../../src/components/TDropdown.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { createId, isActivationKey, isEscapeKey } from '@treeui/utils';\nimport { computed, nextTick, onBeforeUnmount, ref, toRef, useAttrs, watch } from 'vue';\nimport { useControllableOpen } from '../composables/useControllableOpen';\nimport type { TSize } from '../types/contracts';\n\ndefineOptions({\n inheritAttrs: false,\n});\n\nexport interface TDropdownItem {\n label: string;\n value: string;\n disabled?: boolean;\n}\n\nexport type TDropdownAlign = 'start' | 'end';\n\nconst props = withDefaults(\n defineProps<{\n items?: TDropdownItem[];\n open?: boolean;\n defaultOpen?: boolean;\n disabled?: boolean;\n size?: TSize;\n label?: string;\n align?: TDropdownAlign;\n }>(),\n {\n items: () => [],\n open: undefined,\n defaultOpen: false,\n disabled: false,\n size: 'md',\n label: '',\n align: 'start',\n },\n);\n\nconst emit = defineEmits<{\n select: [value: string];\n 'update:open': [value: boolean];\n 'open-change': [value: boolean];\n}>();\n\ndefineSlots<{\n trigger(props: { isOpen: boolean }): unknown;\n item(props: { item: TDropdownItem; index: number }): unknown;\n}>();\n\nconst attrs = useAttrs();\nconst menuId = createId('t-dropdown');\nconst rootRef = ref<HTMLElement | null>(null);\nconst triggerRef = ref<HTMLButtonElement | null>(null);\nconst itemRefs = ref<Map<string, HTMLElement>>(new Map());\nconst focusedIndex = ref(-1);\n\nconst triggerAttrs = computed(() => {\n const { class: _class, style: _style, ...rest } = attrs;\n return rest;\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-dropdown',\n `t-dropdown--${props.size}`,\n {\n 't-dropdown--align-end': props.align === 'end',\n 'is-disabled': props.disabled,\n 'is-open': isOpen.value,\n },\n attrs.class,\n]);\n\nconst rootStyle = computed(() => attrs.style);\n\nconst enabledItems = computed(() => props.items.filter((i) => !i.disabled));\n\nconst openMenu = () => {\n if (props.disabled) return;\n focusedIndex.value = enabledItems.value.length > 0\n ? props.items.indexOf(enabledItems.value[0])\n : 0;\n setValue(true);\n nextTick(() => focusItem(focusedIndex.value));\n};\n\nconst closeMenu = (restoreFocus = false) => {\n setValue(false);\n focusedIndex.value = -1;\n if (restoreFocus) {\n nextTick(() => triggerRef.value?.focus());\n }\n};\n\nconst toggleMenu = () => {\n if (isOpen.value) {\n closeMenu();\n } else {\n openMenu();\n }\n};\n\nconst selectItem = (item: TDropdownItem) => {\n if (item.disabled) return;\n emit('select', item.value);\n closeMenu(true);\n};\n\nconst focusItem = (index: number) => {\n const item = props.items[index];\n if (!item) return;\n const el = itemRefs.value.get(item.value);\n el?.focus();\n};\n\nconst setItemRef = (el: Element | null, value: string) => {\n if (el instanceof HTMLElement) {\n itemRefs.value.set(value, el);\n } else {\n itemRefs.value.delete(value);\n }\n};\n\nconst moveFocus = (direction: 1 | -1) => {\n let nextIndex = focusedIndex.value + direction;\n while (nextIndex >= 0 && nextIndex < props.items.length) {\n if (!props.items[nextIndex].disabled) {\n focusedIndex.value = nextIndex;\n focusItem(nextIndex);\n return;\n }\n nextIndex += direction;\n }\n};\n\nconst onTriggerKeydown = (event: KeyboardEvent) => {\n if (props.disabled) return;\n\n if (isEscapeKey(event) && isOpen.value) {\n event.preventDefault();\n closeMenu();\n return;\n }\n\n if (isActivationKey(event) || event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n openMenu();\n }\n};\n\nconst onItemKeydown = (event: KeyboardEvent, item: TDropdownItem) => {\n if (isEscapeKey(event)) {\n event.preventDefault();\n closeMenu(true);\n return;\n }\n\n if (isActivationKey(event)) {\n event.preventDefault();\n selectItem(item);\n return;\n }\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n moveFocus(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n moveFocus(-1);\n break;\n case 'Home':\n event.preventDefault();\n focusedIndex.value = enabledItems.value.length > 0\n ? props.items.indexOf(enabledItems.value[0])\n : 0;\n focusItem(focusedIndex.value);\n break;\n case 'End':\n event.preventDefault();\n focusedIndex.value = enabledItems.value.length > 0\n ? props.items.indexOf(enabledItems.value[enabledItems.value.length - 1])\n : props.items.length - 1;\n focusItem(focusedIndex.value);\n break;\n default:\n break;\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 closeMenu();\n};\n\nwatch(isOpen, (value) => {\n if (value) {\n document.addEventListener('pointerdown', onDocumentPointerDown);\n } else {\n document.removeEventListener('pointerdown', onDocumentPointerDown);\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 <span class=\"t-dropdown__trigger-wrapper\">\n <slot\n name=\"trigger\"\n :is-open=\"isOpen\"\n >\n <button\n ref=\"triggerRef\"\n v-bind=\"triggerAttrs\"\n type=\"button\"\n class=\"t-dropdown__trigger\"\n :disabled=\"disabled\"\n :aria-controls=\"isOpen ? menuId : undefined\"\n aria-haspopup=\"menu\"\n :aria-expanded=\"isOpen\"\n @click=\"toggleMenu\"\n @keydown=\"onTriggerKeydown\"\n >\n <span class=\"t-dropdown__label\">{{ label }}</span>\n <svg\n class=\"t-dropdown__chevron\"\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 </button>\n </slot>\n </span>\n <transition name=\"t-fade\">\n <ul\n v-if=\"isOpen && !disabled\"\n :id=\"menuId\"\n role=\"menu\"\n class=\"t-dropdown__menu\"\n :aria-label=\"label || undefined\"\n >\n <li\n v-for=\"(item, index) in items\"\n :key=\"item.value\"\n :ref=\"(el) => setItemRef(el as Element | null, item.value)\"\n role=\"menuitem\"\n class=\"t-dropdown__item\"\n :class=\"{\n 'is-disabled': item.disabled,\n 'is-focused': index === focusedIndex,\n }\"\n :aria-disabled=\"item.disabled || undefined\"\n :tabindex=\"item.disabled ? -1 : 0\"\n @click=\"selectItem(item)\"\n @keydown=\"onItemKeydown($event, item)\"\n >\n <slot\n name=\"item\"\n :item=\"item\"\n :index=\"index\"\n >\n {{ item.label }}\n </slot>\n </li>\n </ul>\n </transition>\n </div>\n</template>\n"],"mappings":"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"}