@expcat/tigercat-vue 2.0.19 → 2.1.1

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 (303) hide show
  1. package/README.md +20 -10
  2. package/dist/chunk-26QCTL2E.mjs +180 -0
  3. package/dist/{chunk-7W3NALIL.mjs → chunk-3FPS7XVB.mjs} +26 -27
  4. package/dist/{chunk-2OI6GWOT.mjs → chunk-3KAHJF7D.mjs} +12 -11
  5. package/dist/chunk-3OCHBGPF.mjs +835 -0
  6. package/dist/chunk-3ONCXHE5.mjs +184 -0
  7. package/dist/{chunk-4HUYX5WW.mjs → chunk-4PQZMDBK.mjs} +29 -8
  8. package/dist/{chunk-DI6RRAGQ.mjs → chunk-562Z32GR.mjs} +3 -3
  9. package/dist/{chunk-OQVGB7X6.mjs → chunk-626VUZ2Q.mjs} +1 -1
  10. package/dist/{chunk-WUQMFKQ6.mjs → chunk-67VS6QHJ.mjs} +29 -15
  11. package/dist/chunk-6GR3XC5V.mjs +281 -0
  12. package/dist/chunk-6GR5U4UB.mjs +225 -0
  13. package/dist/{chunk-KFJIZED5.mjs → chunk-6JAAXPBW.mjs} +7 -6
  14. package/dist/{chunk-XGXZF27U.mjs → chunk-6NYC7EY2.mjs} +32 -18
  15. package/dist/{chunk-6BDDX2R4.mjs → chunk-73Z7N7VG.mjs} +1 -4
  16. package/dist/chunk-7C7SG3SS.mjs +269 -0
  17. package/dist/{chunk-NNC75I7F.mjs → chunk-7TJE7OYH.mjs} +7 -6
  18. package/dist/{chunk-AU6IC6K7.mjs → chunk-ABNS4B5V.mjs} +35 -15
  19. package/dist/chunk-AECXFT7D.mjs +121 -0
  20. package/dist/chunk-AOLRZG4E.mjs +347 -0
  21. package/dist/chunk-AY7CGLMO.mjs +368 -0
  22. package/dist/chunk-BBNCP55O.mjs +156 -0
  23. package/dist/{chunk-EGIMTTZA.mjs → chunk-BOHE5URZ.mjs} +18 -3
  24. package/dist/{chunk-5RIHHZF6.mjs → chunk-BQK7LH2L.mjs} +4 -1
  25. package/dist/{chunk-E6EZHSGY.mjs → chunk-BSOLH6R5.mjs} +0 -1
  26. package/dist/{chunk-RSM6FOWX.mjs → chunk-CCC3S6LK.mjs} +6 -3
  27. package/dist/{chunk-U75YXWSA.mjs → chunk-CLTRADS7.mjs} +17 -5
  28. package/dist/{chunk-BEIPGX74.mjs → chunk-DRLQCY7R.mjs} +162 -7
  29. package/dist/{chunk-KBJANUZZ.mjs → chunk-E523VGZP.mjs} +1 -1
  30. package/dist/{chunk-D3U2NJ32.mjs → chunk-FEQ7PZXI.mjs} +8 -2
  31. package/dist/{chunk-PE5OA4YG.mjs → chunk-FHUGOSEY.mjs} +8 -2
  32. package/dist/{chunk-OAPIT53X.mjs → chunk-FIEECAJV.mjs} +7 -10
  33. package/dist/{chunk-7SFB77JR.mjs → chunk-GBPMQJJJ.mjs} +8 -1
  34. package/dist/{chunk-KOG3HKOF.mjs → chunk-GQOPDD44.mjs} +2 -5
  35. package/dist/{chunk-5RXYJWNA.mjs → chunk-H4DEIGEG.mjs} +77 -25
  36. package/dist/{chunk-ZGA66PSG.mjs → chunk-IK2WHKDA.mjs} +32 -18
  37. package/dist/{chunk-HGXD57QM.mjs → chunk-JBS3AESR.mjs} +65 -23
  38. package/dist/{chunk-PYRKFQ6J.mjs → chunk-JIU5UEOU.mjs} +70 -26
  39. package/dist/{chunk-JALHMWKW.mjs → chunk-K5MHUMKR.mjs} +2 -2
  40. package/dist/{chunk-5E4LINDO.mjs → chunk-LH2V2JMZ.mjs} +26 -10
  41. package/dist/{chunk-PQBKN2NH.mjs → chunk-LRFKHJDU.mjs} +14 -5
  42. package/dist/{chunk-OTHJIFDV.mjs → chunk-M4FWWEMX.mjs} +18 -9
  43. package/dist/{chunk-NGAA73CV.mjs → chunk-N2XV37BL.mjs} +40 -44
  44. package/dist/{chunk-2LIIMWBR.mjs → chunk-OYU47A57.mjs} +1 -2
  45. package/dist/{chunk-KU2Q5V3L.mjs → chunk-P62TYR3M.mjs} +18 -2
  46. package/dist/chunk-P6FMU4AT.mjs +54 -0
  47. package/dist/{chunk-P5FDKBXG.mjs → chunk-P7X46BAW.mjs} +70 -3
  48. package/dist/chunk-PFIV5MXD.mjs +48 -0
  49. package/dist/{chunk-KROVW4AW.mjs → chunk-PJQTRDIG.mjs} +13 -3
  50. package/dist/{chunk-26OI3TEA.mjs → chunk-PMQSXEMT.mjs} +42 -6
  51. package/dist/{chunk-XLNK3Z2P.mjs → chunk-POWDTOMF.mjs} +88 -79
  52. package/dist/{chunk-AXDBME5A.mjs → chunk-PSGVG4TN.mjs} +38 -21
  53. package/dist/chunk-PWWWACHC.mjs +302 -0
  54. package/dist/{chunk-UUWTKCMY.mjs → chunk-QWLD5FMJ.mjs} +1 -1
  55. package/dist/{chunk-ALIUAGJO.mjs → chunk-QZLOF36M.mjs} +7 -13
  56. package/dist/{chunk-WLYQHKLZ.mjs → chunk-QZRSFGZZ.mjs} +50 -11
  57. package/dist/{chunk-MAKOSWR6.mjs → chunk-RHQWQJ4I.mjs} +7 -6
  58. package/dist/{chunk-GS4SV2HK.mjs → chunk-RRLE7QRH.mjs} +43 -22
  59. package/dist/{chunk-RID7A5V7.mjs → chunk-RRNQL6MJ.mjs} +23 -6
  60. package/dist/{chunk-VJ6YM2EW.mjs → chunk-S4BKVFQ7.mjs} +1 -1
  61. package/dist/{chunk-LPZBXTJ6.mjs → chunk-SAC4PAG3.mjs} +4 -4
  62. package/dist/{chunk-W5RZPTFD.mjs → chunk-SNNT64HK.mjs} +13 -2
  63. package/dist/{chunk-N3C6YI7I.mjs → chunk-SWMYIORV.mjs} +22 -7
  64. package/dist/{chunk-2XCXK3NQ.mjs → chunk-SX3NAN4M.mjs} +1 -1
  65. package/dist/chunk-TBOXTAIA.mjs +94 -0
  66. package/dist/{chunk-JL3CN4UK.mjs → chunk-TDBMAKTJ.mjs} +10 -3
  67. package/dist/{chunk-EDBMWZKH.mjs → chunk-TPESRDUG.mjs} +5 -1
  68. package/dist/chunk-UEGNXN5B.mjs +28 -0
  69. package/dist/{chunk-NEEGXKJW.mjs → chunk-UGHLEKEZ.mjs} +22 -3
  70. package/dist/{chunk-HKYRRQS7.mjs → chunk-UNQO7EVG.mjs} +1 -1
  71. package/dist/chunk-UR5F74ZB.mjs +601 -0
  72. package/dist/{chunk-VCCK4CDT.mjs → chunk-URPXBKK4.mjs} +23 -5
  73. package/dist/chunk-UUWPSRNV.mjs +337 -0
  74. package/dist/chunk-UXJRH72H.mjs +834 -0
  75. package/dist/chunk-VFS5XAZ3.mjs +602 -0
  76. package/dist/{chunk-7KCOF5US.mjs → chunk-VY6FVIOZ.mjs} +10 -8
  77. package/dist/{chunk-KICZSLOX.mjs → chunk-W2ICYZVU.mjs} +1 -1
  78. package/dist/{chunk-FIVVKBBF.mjs → chunk-W3QOMJKQ.mjs} +8 -6
  79. package/dist/{chunk-DCMRB3HR.mjs → chunk-WV25G4M3.mjs} +4 -3
  80. package/dist/{chunk-3KITFMBJ.mjs → chunk-X5LJT76O.mjs} +52 -35
  81. package/dist/{chunk-BNYA5IUB.mjs → chunk-YNXP34KO.mjs} +39 -38
  82. package/dist/{chunk-2T2NEZRZ.mjs → chunk-YVDTXHQ6.mjs} +1 -1
  83. package/dist/{chunk-AUMTHL6N.mjs → chunk-ZOP7PEKY.mjs} +2 -1
  84. package/dist/components/ActivityFeed.d.mts +29 -11
  85. package/dist/components/ActivityFeed.mjs +3 -3
  86. package/dist/components/Affix.d.mts +4 -4
  87. package/dist/components/Affix.mjs +1 -1
  88. package/dist/components/Alert.d.mts +4 -4
  89. package/dist/components/Anchor.d.mts +2 -2
  90. package/dist/components/Anchor.mjs +1 -1
  91. package/dist/components/AreaChart.d.mts +3 -3
  92. package/dist/components/AreaChart.mjs +5 -4
  93. package/dist/components/AspectRatio.d.mts +44 -0
  94. package/dist/components/AspectRatio.mjs +8 -0
  95. package/dist/components/AutoComplete.d.mts +3 -3
  96. package/dist/components/AutoComplete.mjs +1 -1
  97. package/dist/components/Avatar.d.mts +2 -2
  98. package/dist/components/AvatarGroup.d.mts +2 -2
  99. package/dist/components/BackTop.d.mts +2 -2
  100. package/dist/components/Badge.d.mts +5 -5
  101. package/dist/components/BarChart.d.mts +2 -2
  102. package/dist/components/BarChart.mjs +5 -4
  103. package/dist/components/Breadcrumb.d.mts +2 -2
  104. package/dist/components/Button.d.mts +5 -5
  105. package/dist/components/ButtonGroup.d.mts +1 -1
  106. package/dist/components/Calendar.d.mts +2 -2
  107. package/dist/components/Calendar.mjs +1 -1
  108. package/dist/components/Card.d.mts +3 -3
  109. package/dist/components/Carousel.d.mts +3 -3
  110. package/dist/components/Cascader.d.mts +37 -3
  111. package/dist/components/Cascader.mjs +1 -1
  112. package/dist/components/ChartCanvas.d.mts +8 -4
  113. package/dist/components/ChartCanvas.mjs +1 -1
  114. package/dist/components/ChartGrid.d.mts +1 -1
  115. package/dist/components/ChartLegend.d.mts +2 -2
  116. package/dist/components/ChartTooltip.d.mts +1 -1
  117. package/dist/components/ChatWindow.d.mts +29 -11
  118. package/dist/components/ChatWindow.mjs +4 -4
  119. package/dist/components/Checkbox.d.mts +1 -1
  120. package/dist/components/Code.d.mts +33 -6
  121. package/dist/components/Code.mjs +3 -1
  122. package/dist/components/CodeEditor.d.mts +1 -1
  123. package/dist/components/CodeEditor.mjs +1 -1
  124. package/dist/components/Collapse.d.mts +1 -1
  125. package/dist/components/CollapsePanel.mjs +1 -1
  126. package/dist/components/ColorPicker.mjs +1 -1
  127. package/dist/components/ColorSwatch.d.mts +8 -2
  128. package/dist/components/ColorSwatch.mjs +1 -1
  129. package/dist/components/CommentThread.d.mts +63 -27
  130. package/dist/components/CommentThread.mjs +2 -2
  131. package/dist/components/Container.d.mts +1 -1
  132. package/dist/components/ContextMenu.d.mts +234 -0
  133. package/dist/components/ContextMenu.mjs +17 -0
  134. package/dist/components/Countdown.d.mts +1 -1
  135. package/dist/components/CronEditor.d.mts +3 -3
  136. package/dist/components/CropUpload.d.mts +1 -1
  137. package/dist/components/DataExport.d.mts +1 -1
  138. package/dist/components/DataExport.mjs +2 -2
  139. package/dist/components/DataTableWithToolbar.d.mts +11 -11
  140. package/dist/components/DataTableWithToolbar.mjs +8 -8
  141. package/dist/components/DatePicker.d.mts +5 -5
  142. package/dist/components/Descriptions.d.mts +3 -3
  143. package/dist/components/DonutChart.d.mts +3 -3
  144. package/dist/components/DonutChart.mjs +5 -5
  145. package/dist/components/Drawer.d.mts +6 -6
  146. package/dist/components/Dropdown.d.mts +21 -2
  147. package/dist/components/Dropdown.mjs +1 -1
  148. package/dist/components/Empty.d.mts +1 -1
  149. package/dist/components/FileManager.d.mts +10 -4
  150. package/dist/components/FileManager.mjs +1 -1
  151. package/dist/components/FloatButton.d.mts +37 -7
  152. package/dist/components/FloatButton.mjs +1 -1
  153. package/dist/components/Form.d.mts +2 -2
  154. package/dist/components/FormWizard.d.mts +4 -4
  155. package/dist/components/FormWizard.mjs +1 -1
  156. package/dist/components/FunnelChart.d.mts +4 -4
  157. package/dist/components/FunnelChart.mjs +4 -4
  158. package/dist/components/Gantt.d.mts +6 -4
  159. package/dist/components/Gantt.mjs +2 -2
  160. package/dist/components/GaugeChart.d.mts +4 -4
  161. package/dist/components/GaugeChart.mjs +2 -2
  162. package/dist/components/Header.d.mts +1 -1
  163. package/dist/components/HeatmapChart.d.mts +3 -3
  164. package/dist/components/HeatmapChart.mjs +3 -3
  165. package/dist/components/Highlight.d.mts +146 -0
  166. package/dist/components/Highlight.mjs +8 -0
  167. package/dist/components/Icon.d.mts +2 -2
  168. package/dist/components/Image.d.mts +2 -2
  169. package/dist/components/Image.mjs +3 -3
  170. package/dist/components/ImageAnnotation.d.mts +4 -4
  171. package/dist/components/ImageCompare.d.mts +284 -0
  172. package/dist/components/ImageCompare.mjs +8 -0
  173. package/dist/components/ImageCropper.d.mts +1 -1
  174. package/dist/components/ImageGroup.mjs +2 -2
  175. package/dist/components/ImagePreview.d.mts +1 -1
  176. package/dist/components/ImagePreview.mjs +1 -1
  177. package/dist/components/ImageViewer.d.mts +1 -1
  178. package/dist/components/InfiniteScroll.d.mts +4 -4
  179. package/dist/components/Input.d.mts +7 -7
  180. package/dist/components/Input.mjs +1 -1
  181. package/dist/components/InputGroup.d.mts +2 -2
  182. package/dist/components/InputNumber.d.mts +3 -3
  183. package/dist/components/InputNumber.mjs +1 -1
  184. package/dist/components/InputOTP.d.mts +261 -0
  185. package/dist/components/InputOTP.mjs +11 -0
  186. package/dist/components/Kanban.d.mts +1 -1
  187. package/dist/components/Kanban.mjs +2 -2
  188. package/dist/components/Kbd.d.mts +118 -0
  189. package/dist/components/Kbd.mjs +8 -0
  190. package/dist/components/LineChart.d.mts +2 -2
  191. package/dist/components/LineChart.mjs +5 -4
  192. package/dist/components/Link.d.mts +1 -1
  193. package/dist/components/List.d.mts +7 -7
  194. package/dist/components/List.mjs +2 -2
  195. package/dist/components/Loading.d.mts +7 -7
  196. package/dist/components/Loading.mjs +1 -1
  197. package/dist/components/LoadingBar.d.mts +8 -0
  198. package/dist/components/LoadingBar.mjs +114 -0
  199. package/dist/components/LoadingBarContainer.d.mts +78 -0
  200. package/dist/components/LoadingBarContainer.mjs +8 -0
  201. package/dist/components/LoadingBarRoot.d.mts +6 -0
  202. package/dist/components/LoadingBarRoot.mjs +6 -0
  203. package/dist/components/MarkdownEditor.d.mts +4 -4
  204. package/dist/components/Marquee.d.mts +158 -0
  205. package/dist/components/Marquee.mjs +8 -0
  206. package/dist/components/MaskInput.d.mts +207 -0
  207. package/dist/components/MaskInput.mjs +11 -0
  208. package/dist/components/Masonry.d.mts +66 -0
  209. package/dist/components/Masonry.mjs +8 -0
  210. package/dist/components/Mentions.d.mts +1 -1
  211. package/dist/components/Menu.d.mts +4 -4
  212. package/dist/components/Modal.d.mts +7 -7
  213. package/dist/components/NavigationMenu.d.mts +411 -0
  214. package/dist/components/NavigationMenu.mjs +25 -0
  215. package/dist/components/NotificationCenter.d.mts +48 -30
  216. package/dist/components/NotificationCenter.mjs +4 -4
  217. package/dist/components/NumberKeyboard.d.mts +4 -4
  218. package/dist/components/OrgChart.d.mts +4 -4
  219. package/dist/components/OrgChart.mjs +2 -2
  220. package/dist/components/PageHeader.d.mts +140 -0
  221. package/dist/components/PageHeader.mjs +11 -0
  222. package/dist/components/Pagination.d.mts +5 -5
  223. package/dist/components/Pagination.mjs +1 -1
  224. package/dist/components/PieChart.d.mts +3 -3
  225. package/dist/components/PieChart.mjs +4 -4
  226. package/dist/components/Popconfirm.d.mts +4 -4
  227. package/dist/components/Popconfirm.mjs +2 -2
  228. package/dist/components/Popover.d.mts +5 -5
  229. package/dist/components/Popover.mjs +2 -2
  230. package/dist/components/Progress.d.mts +7 -7
  231. package/dist/components/QRCode.d.mts +4 -13
  232. package/dist/components/QRCode.mjs +1 -1
  233. package/dist/components/RadarChart.d.mts +3 -3
  234. package/dist/components/RadarChart.mjs +4 -4
  235. package/dist/components/Radio.d.mts +1 -1
  236. package/dist/components/Radio.mjs +1 -1
  237. package/dist/components/Rate.d.mts +1 -1
  238. package/dist/components/Rate.mjs +1 -1
  239. package/dist/components/Result.d.mts +1 -1
  240. package/dist/components/RichTextEditor.d.mts +4 -4
  241. package/dist/components/Row.d.mts +1 -1
  242. package/dist/components/ScatterChart.d.mts +3 -3
  243. package/dist/components/ScatterChart.mjs +5 -4
  244. package/dist/components/ScrollArea.d.mts +136 -0
  245. package/dist/components/ScrollArea.mjs +8 -0
  246. package/dist/components/ScrollSpy.d.mts +2 -2
  247. package/dist/components/ScrollSpy.mjs +1 -1
  248. package/dist/components/Segmented.d.mts +2 -2
  249. package/dist/components/Select.d.mts +3 -3
  250. package/dist/components/Signature.d.mts +6 -6
  251. package/dist/components/Signature.mjs +1 -1
  252. package/dist/components/Skeleton.d.mts +2 -2
  253. package/dist/components/Slider.d.mts +19 -1
  254. package/dist/components/Slider.mjs +1 -1
  255. package/dist/components/Space.d.mts +2 -2
  256. package/dist/components/SplitButton.d.mts +286 -0
  257. package/dist/components/SplitButton.mjs +12 -0
  258. package/dist/components/Splitter.d.mts +4 -4
  259. package/dist/components/Splitter.mjs +1 -1
  260. package/dist/components/Spotlight.d.mts +6 -6
  261. package/dist/components/Statistic.d.mts +1 -1
  262. package/dist/components/Stepper.d.mts +7 -1
  263. package/dist/components/Stepper.mjs +1 -1
  264. package/dist/components/Steps.d.mts +1 -1
  265. package/dist/components/SunburstChart.d.mts +2 -2
  266. package/dist/components/SunburstChart.mjs +4 -4
  267. package/dist/components/Switch.d.mts +22 -6
  268. package/dist/components/Switch.mjs +1 -1
  269. package/dist/components/Table.d.mts +9 -9
  270. package/dist/components/Table.mjs +3 -3
  271. package/dist/components/Tabs.d.mts +5 -5
  272. package/dist/components/Tag.d.mts +3 -3
  273. package/dist/components/TagsInput.d.mts +214 -0
  274. package/dist/components/TagsInput.mjs +12 -0
  275. package/dist/components/TaskBoard.d.mts +2 -2
  276. package/dist/components/TaskBoard.mjs +1 -1
  277. package/dist/components/Text.d.mts +3 -3
  278. package/dist/components/Textarea.d.mts +4 -4
  279. package/dist/components/Textarea.mjs +1 -1
  280. package/dist/components/TimePicker.d.mts +6 -6
  281. package/dist/components/Timeline.d.mts +2 -2
  282. package/dist/components/Tooltip.d.mts +2 -2
  283. package/dist/components/Tooltip.mjs +2 -2
  284. package/dist/components/Tour.d.mts +4 -4
  285. package/dist/components/Tour.mjs +1 -1
  286. package/dist/components/Transfer.d.mts +5 -4
  287. package/dist/components/Transfer.mjs +1 -1
  288. package/dist/components/Tree.d.mts +6 -6
  289. package/dist/components/TreeMapChart.d.mts +3 -3
  290. package/dist/components/TreeMapChart.mjs +4 -4
  291. package/dist/components/TreeSelect.d.mts +54 -3
  292. package/dist/components/TreeSelect.mjs +2 -1
  293. package/dist/components/Upload.d.mts +4 -4
  294. package/dist/components/Upload.mjs +1 -1
  295. package/dist/components/VirtualTable.d.mts +5 -5
  296. package/dist/components/Watermark.d.mts +6 -6
  297. package/dist/composables/useChartInteraction.d.mts +5 -0
  298. package/dist/composables/useChartInteraction.mjs +1 -1
  299. package/dist/index.d.mts +17 -1
  300. package/dist/index.mjs +406 -0
  301. package/package.json +117 -2
  302. package/dist/chunk-OTGGPXDT.mjs +0 -433
  303. package/dist/chunk-WC5MKASU.mjs +0 -393
@@ -0,0 +1,601 @@
1
+ import {
2
+ VirtualList
3
+ } from "./chunk-HS4YQGZQ.mjs";
4
+ import {
5
+ renderVueOverlayTeleport,
6
+ useVueAnchoredOverlay
7
+ } from "./chunk-Q7Y22OFX.mjs";
8
+ import {
9
+ useTigerConfig
10
+ } from "./chunk-UOJOJBEU.mjs";
11
+
12
+ // src/components/TreeSelect.ts
13
+ import { defineComponent, h, ref, computed, watch, nextTick } from "vue";
14
+ import {
15
+ treeSelectBaseClasses,
16
+ treeSelectSearchClasses,
17
+ treeSelectEmptyClasses,
18
+ getTreeSelectTriggerClasses,
19
+ getTreeSelectNodeClasses,
20
+ getTreeSelectDropdownClasses,
21
+ getTreeSelectDisplayLabel,
22
+ getAllTreeSelectKeys,
23
+ flattenTreeSelectNodes,
24
+ filterTreeSelectNodes,
25
+ getTreeSelectVisibleIndex,
26
+ alignTreeSelectVirtualScroll,
27
+ TREE_SELECT_DEFAULT_HEIGHT,
28
+ TREE_SELECT_DEFAULT_ITEM_HEIGHT,
29
+ getPickerComboboxAria,
30
+ getPickerListboxAria,
31
+ getPickerOptionAria,
32
+ getPickerTriggerKeyAction,
33
+ getPickerNavigationIndex,
34
+ getPickerOptionId,
35
+ findFirstEnabledIndex,
36
+ coerceClassValue,
37
+ classNames,
38
+ icon20ViewBox,
39
+ chevronDownSolidIcon20PathD,
40
+ chevronRightSolidIcon20PathD,
41
+ closeSolidIcon20PathD,
42
+ resolveLocaleText,
43
+ mergeTigerLocale
44
+ } from "@expcat/tigercat-core";
45
+ var treeSelectInstanceId = 0;
46
+ var ChevronDownIcon = h(
47
+ "svg",
48
+ {
49
+ class: "w-4 h-4 transition-transform",
50
+ viewBox: icon20ViewBox,
51
+ fill: "currentColor",
52
+ xmlns: "http://www.w3.org/2000/svg"
53
+ },
54
+ [
55
+ h("path", {
56
+ d: chevronDownSolidIcon20PathD,
57
+ "fill-rule": "evenodd",
58
+ "clip-rule": "evenodd"
59
+ })
60
+ ]
61
+ );
62
+ var ClearIcon = h(
63
+ "svg",
64
+ {
65
+ class: "w-4 h-4",
66
+ viewBox: icon20ViewBox,
67
+ fill: "currentColor",
68
+ xmlns: "http://www.w3.org/2000/svg"
69
+ },
70
+ [
71
+ h("path", {
72
+ d: closeSolidIcon20PathD,
73
+ "fill-rule": "evenodd",
74
+ "clip-rule": "evenodd"
75
+ })
76
+ ]
77
+ );
78
+ var TreeSelect = defineComponent({
79
+ name: "TigerTreeSelect",
80
+ props: {
81
+ modelValue: {
82
+ type: [String, Number, Array],
83
+ default: void 0
84
+ },
85
+ treeData: {
86
+ type: Array,
87
+ default: () => []
88
+ },
89
+ placeholder: {
90
+ type: String,
91
+ default: "Please select"
92
+ },
93
+ size: {
94
+ type: String,
95
+ default: "md"
96
+ },
97
+ disabled: {
98
+ type: Boolean,
99
+ default: false
100
+ },
101
+ clearable: {
102
+ type: Boolean,
103
+ default: false
104
+ },
105
+ multiple: {
106
+ type: Boolean,
107
+ default: false
108
+ },
109
+ searchable: {
110
+ type: Boolean,
111
+ default: false
112
+ },
113
+ searchValue: {
114
+ type: String,
115
+ default: void 0
116
+ },
117
+ defaultSearchValue: {
118
+ type: String,
119
+ default: ""
120
+ },
121
+ emptyText: {
122
+ type: String,
123
+ default: void 0
124
+ },
125
+ defaultExpandAll: {
126
+ type: Boolean,
127
+ default: false
128
+ },
129
+ /**
130
+ * Enable virtualized rendering of the dropdown tree.
131
+ * Visible flattened rows are rendered through VirtualList with fixed item height.
132
+ */
133
+ virtual: {
134
+ type: Boolean,
135
+ default: false
136
+ },
137
+ /**
138
+ * Pixel height of the virtualized dropdown viewport.
139
+ * @default 400
140
+ */
141
+ height: {
142
+ type: Number,
143
+ default: TREE_SELECT_DEFAULT_HEIGHT
144
+ },
145
+ /**
146
+ * Pixel height of each virtualized tree row.
147
+ * @default 32
148
+ */
149
+ itemHeight: {
150
+ type: Number,
151
+ default: TREE_SELECT_DEFAULT_ITEM_HEIGHT
152
+ },
153
+ /**
154
+ * Locale overrides merged on top of ConfigProvider locale
155
+ */
156
+ locale: {
157
+ type: Object,
158
+ default: void 0
159
+ }
160
+ },
161
+ emits: ["update:modelValue", "update:searchValue", "change", "search-change"],
162
+ setup(props, { emit, attrs }) {
163
+ const instanceId = ++treeSelectInstanceId;
164
+ const config = useTigerConfig();
165
+ const mergedLocale = computed(() => mergeTigerLocale(config.value.locale, props.locale));
166
+ const listboxId = `tiger-treeselect-listbox-${instanceId}`;
167
+ const isOpen = ref(false);
168
+ const uncontrolledSearchValue = ref(props.defaultSearchValue);
169
+ const searchQuery = computed(() => props.searchValue ?? uncontrolledSearchValue.value);
170
+ const containerRef = ref(null);
171
+ const triggerRef = ref(null);
172
+ const dropdownRef = ref(null);
173
+ const virtualListWrapperRef = ref(null);
174
+ const activeIndex = ref(-1);
175
+ const lastActiveKey = ref();
176
+ const overlay = useVueAnchoredOverlay({
177
+ enabled: isOpen,
178
+ referenceRef: triggerRef,
179
+ floatingRef: dropdownRef,
180
+ containerRef,
181
+ placement: "bottom-start",
182
+ offset: 4,
183
+ matchReferenceWidth: true,
184
+ dismissOnOutside: true,
185
+ dismissOnEscape: true,
186
+ restoreFocusOnDismiss: true,
187
+ onDismiss: closeDropdown
188
+ });
189
+ const expandedKeys = ref(
190
+ props.defaultExpandAll ? new Set(getAllTreeSelectKeys(props.treeData)) : /* @__PURE__ */ new Set()
191
+ );
192
+ const displayLabel = computed(() => getTreeSelectDisplayLabel(props.treeData, props.modelValue));
193
+ const showClearButton = computed(
194
+ () => props.clearable && !props.disabled && props.modelValue !== void 0 && (Array.isArray(props.modelValue) ? props.modelValue.length > 0 : props.modelValue !== "")
195
+ );
196
+ const matchedKeys = computed(() => {
197
+ if (!searchQuery.value) return null;
198
+ return filterTreeSelectNodes(props.treeData, searchQuery.value);
199
+ });
200
+ const effectiveExpandedKeys = computed(() => {
201
+ if (matchedKeys.value) {
202
+ return matchedKeys.value;
203
+ }
204
+ return expandedKeys.value;
205
+ });
206
+ const flatNodes = computed(
207
+ () => flattenTreeSelectNodes(props.treeData, effectiveExpandedKeys.value)
208
+ );
209
+ const visibleNodes = computed(() => {
210
+ if (!matchedKeys.value) return flatNodes.value;
211
+ return flatNodes.value.filter((f) => matchedKeys.value.has(f.node.key));
212
+ });
213
+ function isNodeDisabled(item) {
214
+ return !!item.node.disabled;
215
+ }
216
+ function getVirtualScrollEl() {
217
+ const wrapper = virtualListWrapperRef.value;
218
+ return wrapper?.firstElementChild ?? wrapper;
219
+ }
220
+ function resolveActiveIndex() {
221
+ const selected = getTreeSelectVisibleIndex(visibleNodes.value, props.modelValue);
222
+ if (selected >= 0 && !visibleNodes.value[selected]?.node.disabled) return selected;
223
+ return findFirstEnabledIndex(visibleNodes.value, isNodeDisabled);
224
+ }
225
+ function commitActiveIndex(index) {
226
+ activeIndex.value = index;
227
+ lastActiveKey.value = index >= 0 ? visibleNodes.value[index]?.node.key : void 0;
228
+ }
229
+ function alignVirtualScroll(index) {
230
+ if (!props.virtual) return;
231
+ alignTreeSelectVirtualScroll(getVirtualScrollEl(), index, props.itemHeight, props.height);
232
+ }
233
+ watch(isOpen, (open) => {
234
+ if (!open) {
235
+ commitActiveIndex(-1);
236
+ return;
237
+ }
238
+ commitActiveIndex(resolveActiveIndex());
239
+ nextTick(() => alignVirtualScroll(activeIndex.value));
240
+ });
241
+ watch(activeIndex, (idx) => {
242
+ if (!isOpen.value) return;
243
+ nextTick(() => alignVirtualScroll(idx));
244
+ });
245
+ watch(searchQuery, () => {
246
+ if (!isOpen.value) return;
247
+ commitActiveIndex(resolveActiveIndex());
248
+ });
249
+ watch([expandedKeys, () => props.treeData], () => {
250
+ if (!isOpen.value) return;
251
+ const remapped = getTreeSelectVisibleIndex(visibleNodes.value, lastActiveKey.value);
252
+ if (remapped >= 0) activeIndex.value = remapped;
253
+ });
254
+ function handleVirtualListKeyDown(e) {
255
+ if (e.key !== "ArrowDown" && e.key !== "ArrowUp" && e.key !== "Home" && e.key !== "End") {
256
+ return;
257
+ }
258
+ e.preventDefault();
259
+ e.stopPropagation();
260
+ commitActiveIndex(
261
+ getPickerNavigationIndex(visibleNodes.value, activeIndex.value, e.key, isNodeDisabled)
262
+ );
263
+ }
264
+ function openDropdown() {
265
+ if (props.disabled) return;
266
+ isOpen.value = true;
267
+ }
268
+ function closeDropdown() {
269
+ isOpen.value = false;
270
+ updateSearchValue("");
271
+ }
272
+ function updateSearchValue(value) {
273
+ if (props.searchValue === void 0) {
274
+ uncontrolledSearchValue.value = value;
275
+ }
276
+ emit("update:searchValue", value);
277
+ emit("search-change", value);
278
+ }
279
+ function toggleDropdown() {
280
+ if (isOpen.value) closeDropdown();
281
+ else openDropdown();
282
+ }
283
+ function toggleExpand(key) {
284
+ const next = new Set(expandedKeys.value);
285
+ if (next.has(key)) next.delete(key);
286
+ else next.add(key);
287
+ expandedKeys.value = next;
288
+ }
289
+ function isSelected(key) {
290
+ if (props.multiple && Array.isArray(props.modelValue)) {
291
+ return props.modelValue.includes(key);
292
+ }
293
+ return props.modelValue === key;
294
+ }
295
+ function handleNodeSelect(node) {
296
+ if (node.disabled) return;
297
+ if (props.multiple) {
298
+ const current = Array.isArray(props.modelValue) ? [...props.modelValue] : [];
299
+ const idx = current.indexOf(node.key);
300
+ if (idx >= 0) {
301
+ current.splice(idx, 1);
302
+ } else {
303
+ current.push(node.key);
304
+ }
305
+ emit("update:modelValue", current);
306
+ emit("change", current);
307
+ } else {
308
+ emit("update:modelValue", node.key);
309
+ emit("change", node.key);
310
+ closeDropdown();
311
+ }
312
+ }
313
+ function handleClear(e) {
314
+ e.stopPropagation();
315
+ const val = props.multiple ? [] : void 0;
316
+ emit("update:modelValue", val);
317
+ emit("change", val);
318
+ }
319
+ function handleOpenListKeyDown(e, fromSearchInput = false) {
320
+ const key = e.key;
321
+ if (fromSearchInput && key === " ") return false;
322
+ if (key === "ArrowDown" || key === "ArrowUp" || key === "Home" || key === "End") {
323
+ e.preventDefault();
324
+ e.stopPropagation();
325
+ commitActiveIndex(
326
+ getPickerNavigationIndex(visibleNodes.value, activeIndex.value, key, isNodeDisabled)
327
+ );
328
+ return true;
329
+ }
330
+ if (key === "Enter" || key === " ") {
331
+ e.preventDefault();
332
+ e.stopPropagation();
333
+ const item = visibleNodes.value[activeIndex.value];
334
+ if (item && !item.node.disabled) {
335
+ handleNodeSelect(item.node);
336
+ }
337
+ return true;
338
+ }
339
+ if (key === "ArrowRight") {
340
+ e.preventDefault();
341
+ e.stopPropagation();
342
+ const item = visibleNodes.value[activeIndex.value];
343
+ if (item?.hasChildren && !item.isExpanded) {
344
+ toggleExpand(item.node.key);
345
+ }
346
+ return true;
347
+ }
348
+ if (key === "ArrowLeft") {
349
+ e.preventDefault();
350
+ e.stopPropagation();
351
+ const item = visibleNodes.value[activeIndex.value];
352
+ if (item?.hasChildren && item.isExpanded) {
353
+ toggleExpand(item.node.key);
354
+ }
355
+ return true;
356
+ }
357
+ return false;
358
+ }
359
+ function handleKeyDown(e) {
360
+ if (props.disabled) return;
361
+ if (isOpen.value && handleOpenListKeyDown(e)) return;
362
+ const action = getPickerTriggerKeyAction(e.key, isOpen.value);
363
+ if (action === "none") return;
364
+ e.preventDefault();
365
+ if (action === "toggle") {
366
+ if (isOpen.value) closeDropdown();
367
+ else openDropdown();
368
+ } else if (action === "open") {
369
+ openDropdown();
370
+ } else if (action === "close") {
371
+ closeDropdown();
372
+ }
373
+ }
374
+ function handleDropdownKeyDown(e) {
375
+ if (e.target instanceof HTMLInputElement) return;
376
+ if (!isOpen.value) return;
377
+ handleOpenListKeyDown(e);
378
+ }
379
+ function handleSearchKeyDown(e) {
380
+ switch (e.key) {
381
+ case " ":
382
+ e.stopPropagation();
383
+ return;
384
+ case "ArrowDown":
385
+ case "ArrowUp":
386
+ case "Enter":
387
+ handleOpenListKeyDown(e, true);
388
+ return;
389
+ case "Escape":
390
+ e.preventDefault();
391
+ e.stopPropagation();
392
+ closeDropdown();
393
+ nextTick(() => {
394
+ ;
395
+ triggerRef.value?.focus();
396
+ });
397
+ return;
398
+ default:
399
+ return;
400
+ }
401
+ }
402
+ function renderFlatNode(flatNode, index) {
403
+ const { node, level, hasChildren, isExpanded } = flatNode;
404
+ const selected = isSelected(node.key);
405
+ const isActive = index === activeIndex.value;
406
+ const indent = level * 20;
407
+ return h(
408
+ "div",
409
+ {
410
+ key: node.key,
411
+ id: getPickerOptionId(listboxId, index),
412
+ "data-active": isActive || void 0,
413
+ ...getPickerOptionAria({ selected, disabled: !!node.disabled }),
414
+ class: getTreeSelectNodeClasses(selected || isActive, !!node.disabled, props.size),
415
+ style: { paddingLeft: `${indent + 8}px`, height: props.virtual ? "100%" : void 0 },
416
+ onClick: (e) => {
417
+ e.stopPropagation();
418
+ handleNodeSelect(node);
419
+ }
420
+ },
421
+ [
422
+ hasChildren ? h(
423
+ "span",
424
+ {
425
+ class: classNames(
426
+ "inline-flex items-center justify-center w-4 h-4 mr-1 transition-transform",
427
+ isExpanded ? "rotate-90" : ""
428
+ ),
429
+ onClick: (e) => {
430
+ e.stopPropagation();
431
+ toggleExpand(node.key);
432
+ }
433
+ },
434
+ [
435
+ h(
436
+ "svg",
437
+ {
438
+ class: "w-3 h-3",
439
+ viewBox: icon20ViewBox,
440
+ fill: "currentColor"
441
+ },
442
+ [
443
+ h("path", {
444
+ d: chevronRightSolidIcon20PathD,
445
+ "fill-rule": "evenodd",
446
+ "clip-rule": "evenodd"
447
+ })
448
+ ]
449
+ )
450
+ ]
451
+ ) : h("span", { class: "w-4 mr-1" }),
452
+ h("span", { class: "flex-1 truncate" }, node.label)
453
+ ]
454
+ );
455
+ }
456
+ return () => {
457
+ const containerClasses = classNames(treeSelectBaseClasses, coerceClassValue(attrs.class));
458
+ return h("div", { ref: containerRef, class: containerClasses }, [
459
+ // Trigger
460
+ h(
461
+ "button",
462
+ {
463
+ ref: triggerRef,
464
+ type: "button",
465
+ class: classNames(
466
+ getTreeSelectTriggerClasses(props.size, props.disabled, isOpen.value),
467
+ showClearButton.value ? "pr-14" : void 0
468
+ ),
469
+ ...getPickerComboboxAria({
470
+ expanded: isOpen.value,
471
+ listboxId,
472
+ activeIndex: isOpen.value ? activeIndex.value : -1
473
+ }),
474
+ disabled: props.disabled,
475
+ onClick: toggleDropdown,
476
+ onKeydown: handleKeyDown
477
+ },
478
+ [
479
+ h(
480
+ "span",
481
+ {
482
+ class: classNames(
483
+ "flex-1 truncate",
484
+ !displayLabel.value ? "text-[var(--tiger-treeselect-placeholder,var(--tiger-text-muted,#9ca3af))]" : ""
485
+ )
486
+ },
487
+ displayLabel.value || props.placeholder
488
+ )
489
+ ]
490
+ ),
491
+ h(
492
+ "span",
493
+ { class: "pointer-events-none absolute inset-y-0 right-3 flex items-center gap-1" },
494
+ [
495
+ showClearButton.value ? h(
496
+ "button",
497
+ {
498
+ type: "button",
499
+ class: "pointer-events-auto inline-flex rounded-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tiger-treeselect-ring,var(--tiger-primary,#2563eb))] text-[var(--tiger-treeselect-clear,var(--tiger-text-muted,#9ca3af))] hover:text-[var(--tiger-treeselect-clear-hover,var(--tiger-text,#111827))]",
500
+ "data-tiger-treeselect-clear": "",
501
+ "aria-label": resolveLocaleText(
502
+ "Clear selection",
503
+ mergedLocale.value?.common?.clearText
504
+ ),
505
+ onClick: handleClear
506
+ },
507
+ [ClearIcon]
508
+ ) : null,
509
+ h(
510
+ "span",
511
+ {
512
+ class: classNames(
513
+ "inline-flex text-[var(--tiger-text-muted,#9ca3af)]",
514
+ isOpen.value && "rotate-180"
515
+ ),
516
+ "aria-hidden": "true"
517
+ },
518
+ [ChevronDownIcon]
519
+ )
520
+ ]
521
+ ),
522
+ // Dropdown
523
+ isOpen.value ? renderVueOverlayTeleport(
524
+ h(
525
+ "div",
526
+ {
527
+ ref: dropdownRef,
528
+ ...getPickerListboxAria({ id: listboxId }),
529
+ class: classNames(
530
+ getTreeSelectDropdownClasses(props.virtual),
531
+ overlay.floatingClasses.value
532
+ ),
533
+ style: overlay.floatingStyles.value,
534
+ "data-positioned": overlay.positioned.value,
535
+ onKeydown: handleDropdownKeyDown
536
+ },
537
+ [
538
+ // Search
539
+ props.searchable ? h("input", {
540
+ type: "text",
541
+ class: treeSelectSearchClasses,
542
+ placeholder: resolveLocaleText(
543
+ "Search...",
544
+ mergedLocale.value?.common?.searchPlaceholder
545
+ ),
546
+ value: searchQuery.value,
547
+ "aria-label": resolveLocaleText(
548
+ "Search tree",
549
+ mergedLocale.value?.common?.searchPlaceholder
550
+ ),
551
+ onInput: (e) => updateSearchValue(e.target.value),
552
+ onKeydown: handleSearchKeyDown
553
+ }) : null,
554
+ // Tree nodes
555
+ visibleNodes.value.length > 0 ? props.virtual ? h(
556
+ "div",
557
+ {
558
+ ref: virtualListWrapperRef,
559
+ "data-tiger-treeselect-virtual": "",
560
+ tabindex: 0,
561
+ onKeydown: handleVirtualListKeyDown
562
+ },
563
+ [
564
+ h(
565
+ VirtualList,
566
+ {
567
+ itemCount: visibleNodes.value.length,
568
+ itemHeight: props.itemHeight,
569
+ height: props.height
570
+ },
571
+ {
572
+ default: ({ index }) => {
573
+ const item = visibleNodes.value[index];
574
+ return item ? renderFlatNode(item, index) : null;
575
+ }
576
+ }
577
+ )
578
+ ]
579
+ ) : visibleNodes.value.map((flatNode, index) => renderFlatNode(flatNode, index)) : h(
580
+ "div",
581
+ { class: treeSelectEmptyClasses },
582
+ resolveLocaleText(
583
+ "No data",
584
+ props.emptyText,
585
+ mergedLocale.value?.common?.emptyText
586
+ )
587
+ )
588
+ ]
589
+ ),
590
+ overlay.target.value
591
+ ) : null
592
+ ]);
593
+ };
594
+ }
595
+ });
596
+ var TreeSelect_default = TreeSelect;
597
+
598
+ export {
599
+ TreeSelect,
600
+ TreeSelect_default
601
+ };
@@ -21,6 +21,12 @@ var Slider = defineComponent({
21
21
  value: {
22
22
  type: [Number, Array]
23
23
  },
24
+ /**
25
+ * Slider value (for default v-model) - controlled mode
26
+ */
27
+ modelValue: {
28
+ type: [Number, Array]
29
+ },
24
30
  /**
25
31
  * Default slider value - uncontrolled mode
26
32
  */
@@ -111,14 +117,24 @@ var Slider = defineComponent({
111
117
  * Emitted when value changes (for v-model:value)
112
118
  */
113
119
  "update:value": (value) => typeof value === "number" || Array.isArray(value),
120
+ /**
121
+ * Emitted when value changes (for default v-model)
122
+ */
123
+ "update:modelValue": (value) => typeof value === "number" || Array.isArray(value),
114
124
  /**
115
125
  * Emitted when value changes
116
126
  */
117
127
  change: (value) => typeof value === "number" || Array.isArray(value)
118
128
  },
119
129
  setup(props, { emit, attrs }) {
120
- const getInitialValue = () => {
130
+ const resolveBoundValue = () => {
121
131
  if (props.value !== void 0) return props.value;
132
+ if (props.modelValue !== void 0) return props.modelValue;
133
+ return void 0;
134
+ };
135
+ const getInitialValue = () => {
136
+ const bound = resolveBoundValue();
137
+ if (bound !== void 0) return bound;
122
138
  if (props.defaultValue !== void 0) return props.defaultValue;
123
139
  return props.range ? [props.min, props.max] : props.min;
124
140
  };
@@ -128,10 +144,11 @@ var Slider = defineComponent({
128
144
  const showTooltip = ref(false);
129
145
  const trackElement = ref(null);
130
146
  watch(
131
- () => props.value,
132
- (newValue) => {
133
- if (newValue !== void 0) {
134
- internalValue.value = newValue;
147
+ () => [props.value, props.modelValue],
148
+ () => {
149
+ const bound = resolveBoundValue();
150
+ if (bound !== void 0) {
151
+ internalValue.value = bound;
135
152
  }
136
153
  }
137
154
  );
@@ -149,6 +166,7 @@ var Slider = defineComponent({
149
166
  const updateValue = (newValue) => {
150
167
  internalValue.value = newValue;
151
168
  emit("update:value", newValue);
169
+ emit("update:modelValue", newValue);
152
170
  emit("change", newValue);
153
171
  };
154
172
  const handleMove = (event, el) => {