@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
package/README.md CHANGED
@@ -17,7 +17,7 @@ pnpm add @expcat/tigercat-vue
17
17
  npm install @expcat/tigercat-vue
18
18
  ```
19
19
 
20
- **Requirements:** Vue 3.3, Tailwind CSS ≥3.4
20
+ **Requirements:** Vue 3.x, Tailwind CSS 4.x, Node.js 22.13.0
21
21
 
22
22
  ## Quick Start
23
23
 
@@ -35,15 +35,25 @@ import { ConfigProvider, Button } from '@expcat/tigercat-vue'
35
35
 
36
36
  ## Components
37
37
 
38
- | Category | Components |
39
- | -------------- | ------------------------------------------------------------------------------------- |
40
- | **Basic** | Alert, Avatar, Badge, Button, Code, Divider, Icon, Link, Tag, Text |
41
- | **Form** | Input, Select, Checkbox, Radio, Switch, Slider, DatePicker, TimePicker, Upload, Form |
42
- | **Layout** | Card, Container, Grid (Row/Col), Layout, List, Descriptions, Skeleton, Space |
43
- | **Navigation** | Menu, Tabs, Breadcrumb, Pagination, Steps, Dropdown, Tree |
44
- | **Feedback** | Modal, Drawer, Message, Notification, Loading, Popconfirm, Popover, Tooltip, Progress |
45
- | **Data** | Table, Timeline |
46
- | **Charts** | BarChart, LineChart, AreaChart, PieChart, DonutChart, RadarChart, ScatterChart |
38
+ 172 public component entries across 9 categories. The authoritative list with
39
+ import subpaths lives in
40
+ [component-index.md](https://github.com/expcat/Tigercat/blob/main/skills/tigercat/references/component-index.md)
41
+ (generated); the table below is only a sampler.
42
+
43
+ | Category | Count | Examples |
44
+ | -------------- | ----- | ------------------------------------------------------------- |
45
+ | **Basic** | 30 | Button, Alert, Avatar, Badge, Icon, Tag, Text, Result, QRCode |
46
+ | **Form** | 31 | Input, Select, DatePicker, Form, Upload, InputOTP, TagsInput |
47
+ | **Layout** | 19 | Card, Row/Col, Layout, List, Descriptions, Skeleton, Space |
48
+ | **Navigation** | 33 | Menu, Tabs, Breadcrumb, Pagination, Steps, Dropdown, Tree |
49
+ | **Feedback** | 13 | Modal, Drawer, Message, Popover, Tooltip, Progress, Tour |
50
+ | **Data** | 7 | Table, Calendar, Collapse, Timeline, DataExport |
51
+ | **Charts** | 20 | BarChart, LineChart, PieChart, RadarChart, GaugeChart, Gantt |
52
+ | **Advanced** | 12 | VirtualTable, VirtualList, RichTextEditor, CodeEditor |
53
+ | **Composite** | 7 | DataTableWithToolbar, ChatWindow, FormWizard, TaskBoard |
54
+
55
+ `Message` and `notification` are also available as imperative command APIs from
56
+ the package root; `notification` is a command API, not a component.
47
57
 
48
58
  ## License
49
59
 
@@ -0,0 +1,180 @@
1
+ // src/components/Masonry.ts
2
+ import {
3
+ computed,
4
+ defineComponent,
5
+ h,
6
+ nextTick,
7
+ onBeforeUnmount,
8
+ onMounted,
9
+ ref,
10
+ shallowRef,
11
+ watch
12
+ } from "vue";
13
+ import {
14
+ classNames,
15
+ coerceClassValue,
16
+ computeMasonryColumnHeights,
17
+ distributeMasonryItems,
18
+ getMasonryColumnClasses,
19
+ getMasonryColumnStyle,
20
+ getMasonryGapStyle,
21
+ getMasonryItemClasses,
22
+ getMasonryRootClasses,
23
+ isBrowser,
24
+ moduloDistributeMasonryItems,
25
+ observeScrollAreaSize,
26
+ readMasonryItemHeight,
27
+ resolveMasonryColumnCount,
28
+ resolveMasonryGap,
29
+ mergeStyleValues,
30
+ MASONRY_DEFAULT_COLUMNS,
31
+ MASONRY_DEFAULT_GAP
32
+ } from "@expcat/tigercat-core";
33
+ function vnodeSignature(vnodes) {
34
+ return vnodes.map((vnode, index) => `${index}:${String(vnode.key ?? "")}`).join("\0");
35
+ }
36
+ function sameHeights(previous, next) {
37
+ return previous.length === next.length && previous.every((height, index) => height === next[index]);
38
+ }
39
+ var Masonry = defineComponent({
40
+ name: "TigerMasonry",
41
+ inheritAttrs: false,
42
+ props: {
43
+ columns: {
44
+ type: [Number, Object],
45
+ default: MASONRY_DEFAULT_COLUMNS
46
+ },
47
+ gap: {
48
+ type: [Number, Object],
49
+ default: MASONRY_DEFAULT_GAP
50
+ },
51
+ className: { type: String, default: void 0 },
52
+ columnClassName: { type: String, default: void 0 },
53
+ itemClassName: { type: String, default: void 0 }
54
+ },
55
+ emits: ["layout"],
56
+ setup(props, { slots, emit, attrs, expose }) {
57
+ const itemElements = /* @__PURE__ */ new Map();
58
+ const heights = shallowRef([]);
59
+ const distribution = shallowRef([]);
60
+ const childrenSignature = shallowRef("");
61
+ const windowWidth = ref(isBrowser() ? window.innerWidth : 1024);
62
+ let lastSignature = "";
63
+ let stopObserving = null;
64
+ let disposed = false;
65
+ const columnCount = computed(() => resolveMasonryColumnCount(props.columns, windowWidth.value));
66
+ const gap = computed(() => resolveMasonryGap(props.gap, windowWidth.value));
67
+ function setItemRef(index, el) {
68
+ if (el instanceof HTMLElement) {
69
+ itemElements.set(index, el);
70
+ return;
71
+ }
72
+ const current = itemElements.get(index);
73
+ if (!current || !current.isConnected) {
74
+ itemElements.delete(index);
75
+ }
76
+ }
77
+ function emitLayout(nextDistribution) {
78
+ const detail = {
79
+ columnCount: columnCount.value,
80
+ columnHeights: computeMasonryColumnHeights(heights.value, nextDistribution, gap.value)
81
+ };
82
+ emit("layout", detail);
83
+ }
84
+ function redistribute() {
85
+ const next = distributeMasonryItems(heights.value, columnCount.value);
86
+ distribution.value = next;
87
+ emitLayout(next);
88
+ }
89
+ function relayout() {
90
+ const indices = Array.from(itemElements.keys());
91
+ const maxIndex = indices.length > 0 ? Math.max(...indices) : -1;
92
+ const nextHeights = [];
93
+ for (let index = 0; index <= maxIndex; index++) {
94
+ const element = itemElements.get(index);
95
+ nextHeights.push(element ? readMasonryItemHeight(element) : 0);
96
+ }
97
+ const countChanged = nextHeights.length !== heights.value.length;
98
+ if (!countChanged && sameHeights(heights.value, nextHeights)) return;
99
+ heights.value = nextHeights;
100
+ redistribute();
101
+ }
102
+ function handleResize() {
103
+ windowWidth.value = window.innerWidth;
104
+ }
105
+ const isResponsive = () => typeof props.columns === "object" || typeof props.gap === "object";
106
+ onMounted(() => {
107
+ if (isResponsive()) window.addEventListener("resize", handleResize);
108
+ relayout();
109
+ });
110
+ onBeforeUnmount(() => {
111
+ disposed = true;
112
+ window.removeEventListener("resize", handleResize);
113
+ stopObserving?.();
114
+ stopObserving = null;
115
+ itemElements.clear();
116
+ });
117
+ watch(childrenSignature, () => {
118
+ void nextTick(relayout);
119
+ });
120
+ watch([columnCount, gap], redistribute);
121
+ watch([distribution, childrenSignature], () => {
122
+ void nextTick(() => {
123
+ if (disposed) return;
124
+ stopObserving?.();
125
+ stopObserving = observeScrollAreaSize(Array.from(itemElements.values()), relayout);
126
+ });
127
+ });
128
+ expose({
129
+ relayout,
130
+ getColumnCount: () => columnCount.value
131
+ });
132
+ return () => {
133
+ const vnodes = (slots.default?.() ?? []).filter((vnode) => vnode);
134
+ const signature = vnodeSignature(vnodes);
135
+ if (signature !== lastSignature) {
136
+ lastSignature = signature;
137
+ childrenSignature.value = signature;
138
+ }
139
+ const activeDistribution = distribution.value.length > 0 && heights.value.length === vnodes.length ? distribution.value : moduloDistributeMasonryItems(vnodes.length, columnCount.value);
140
+ return h(
141
+ "div",
142
+ {
143
+ ...attrs,
144
+ class: classNames(getMasonryRootClasses(props.className), coerceClassValue(attrs.class)),
145
+ style: mergeStyleValues(getMasonryGapStyle(gap.value), attrs.style),
146
+ "data-masonry": ""
147
+ },
148
+ activeDistribution.map(
149
+ (indices, columnIndex) => h(
150
+ "div",
151
+ {
152
+ key: `column-${columnIndex}`,
153
+ class: getMasonryColumnClasses(props.columnClassName),
154
+ style: getMasonryColumnStyle(gap.value),
155
+ "data-masonry-column": columnIndex
156
+ },
157
+ indices.map(
158
+ (index) => h(
159
+ "div",
160
+ {
161
+ key: `item-${index}`,
162
+ class: getMasonryItemClasses(props.itemClassName),
163
+ "data-masonry-item": index,
164
+ ref: (el) => setItemRef(index, el)
165
+ },
166
+ vnodes[index]
167
+ )
168
+ )
169
+ )
170
+ )
171
+ );
172
+ };
173
+ }
174
+ });
175
+ var Masonry_default = Masonry;
176
+
177
+ export {
178
+ Masonry,
179
+ Masonry_default
180
+ };
@@ -114,46 +114,45 @@ var Affix = defineComponent({
114
114
  return () => {
115
115
  const attrsRecord = attrs;
116
116
  const children = slots.default?.();
117
+ const useBottom = props.offsetBottom !== void 0;
117
118
  const sentinel = h("div", {
118
119
  ref: sentinelRef,
119
120
  "aria-hidden": "true",
120
121
  style: { display: "block", width: "0", height: "0", pointerEvents: "none" }
121
122
  });
122
123
  if (state.value.affixed) {
123
- return h("div", [
124
- sentinel,
125
- // placeholder reserves layout space
126
- h("div", {
127
- style: {
128
- width: `${originalRect.value?.width ?? 0}px`,
129
- height: `${originalRect.value?.height ?? 0}px`
130
- }
131
- }),
132
- h(
133
- "div",
134
- {
135
- ref: wrapperRef,
136
- ...attrs,
137
- class: classNames(props.className, coerceClassValue(attrsRecord.class)),
138
- style: mergeStyleValues(state.value.style, props.style)
139
- },
140
- children
141
- )
142
- ]);
143
- }
144
- return h("div", [
145
- sentinel,
146
- h(
124
+ const placeholder = h("div", {
125
+ style: {
126
+ width: `${originalRect.value?.width ?? 0}px`,
127
+ height: `${originalRect.value?.height ?? 0}px`
128
+ }
129
+ });
130
+ const content2 = h(
147
131
  "div",
148
132
  {
149
133
  ref: wrapperRef,
150
134
  ...attrs,
151
135
  class: classNames(props.className, coerceClassValue(attrsRecord.class)),
152
- style: mergeStyleValues(attrsRecord.style, props.style)
136
+ style: mergeStyleValues(state.value.style, props.style)
153
137
  },
154
138
  children
155
- )
156
- ]);
139
+ );
140
+ return h(
141
+ "div",
142
+ useBottom ? [placeholder, content2, sentinel] : [sentinel, placeholder, content2]
143
+ );
144
+ }
145
+ const content = h(
146
+ "div",
147
+ {
148
+ ref: wrapperRef,
149
+ ...attrs,
150
+ class: classNames(props.className, coerceClassValue(attrsRecord.class)),
151
+ style: mergeStyleValues(attrsRecord.style, props.style)
152
+ },
153
+ children
154
+ );
155
+ return h("div", useBottom ? [content, sentinel] : [sentinel, content]);
157
156
  };
158
157
  }
159
158
  });
@@ -243,18 +243,19 @@ var Textarea = defineComponent({
243
243
  onBlur: handleBlur
244
244
  })
245
245
  ];
246
- if (props.showCount) {
247
- const countText = props.maxLength ? `${currentLength.value}/${props.maxLength}` : `${currentLength.value}`;
248
- children.push(
249
- h(
250
- "div",
251
- {
252
- class: "mt-1 text-sm text-gray-500 text-right"
253
- },
254
- countText
255
- )
256
- );
246
+ if (!props.showCount) {
247
+ return children[0];
257
248
  }
249
+ const countText = props.maxLength ? `${currentLength.value}/${props.maxLength}` : `${currentLength.value}`;
250
+ children.push(
251
+ h(
252
+ "div",
253
+ {
254
+ class: "mt-1 text-sm text-gray-500 text-right"
255
+ },
256
+ countText
257
+ )
258
+ );
258
259
  return h("div", { class: "w-full" }, children);
259
260
  };
260
261
  }