dishui 0.0.64 → 0.0.66

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 (504) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +10 -11
  2. package/dist/chart.js +12 -46
  3. package/dist/code-editor.js +16 -43
  4. package/dist/components/Badge/index.js +11 -13
  5. package/dist/components/Badge/index.js.map +1 -1
  6. package/dist/components/Button/index.js +62 -86
  7. package/dist/components/Button/index.js.map +1 -1
  8. package/dist/components/Card/index.d.ts +87 -0
  9. package/dist/components/Card/index.js +178 -44
  10. package/dist/components/Card/index.js.map +1 -1
  11. package/dist/components/Chart/Chart.js +25 -25
  12. package/dist/components/Chart/Chart.js.map +1 -1
  13. package/dist/components/Checkbox/index.js +57 -63
  14. package/dist/components/Checkbox/index.js.map +1 -1
  15. package/dist/components/ChoicePicker/index.d.ts +44 -0
  16. package/dist/components/ChoicePicker/index.js +81 -0
  17. package/dist/components/ChoicePicker/index.js.map +1 -0
  18. package/dist/components/Column/index.d.ts +28 -0
  19. package/dist/components/Column/index.js +30 -0
  20. package/dist/components/Column/index.js.map +1 -0
  21. package/dist/components/DateTimeInput/index.d.ts +44 -0
  22. package/dist/components/DateTimeInput/index.js +48 -0
  23. package/dist/components/DateTimeInput/index.js.map +1 -0
  24. package/dist/components/Demo/index.js +107 -107
  25. package/dist/components/Demo/index.js.map +1 -1
  26. package/dist/components/Divider/index.d.ts +20 -0
  27. package/dist/components/Divider/index.js +30 -0
  28. package/dist/components/Divider/index.js.map +1 -0
  29. package/dist/components/EmptyState/index.d.ts +4 -1
  30. package/dist/components/EmptyState/index.js +24 -24
  31. package/dist/components/EmptyState/index.js.map +1 -1
  32. package/dist/components/FileUploader/DropZone.js +134 -136
  33. package/dist/components/FileUploader/DropZone.js.map +1 -1
  34. package/dist/components/FileUploader/FileItem.js +159 -163
  35. package/dist/components/FileUploader/FileItem.js.map +1 -1
  36. package/dist/components/FileUploader/FileUploader.js +126 -127
  37. package/dist/components/FileUploader/FileUploader.js.map +1 -1
  38. package/dist/components/FileUploader/UploadQueue.js +62 -62
  39. package/dist/components/FileUploader/UploadQueue.js.map +1 -1
  40. package/dist/components/FloatWindow/index.d.ts +28 -0
  41. package/dist/components/GridLayout/index.d.ts +42 -0
  42. package/dist/components/Icon/index.d.ts +24 -0
  43. package/dist/components/Icon/index.js +26 -0
  44. package/dist/components/Icon/index.js.map +1 -0
  45. package/dist/components/Image/index.d.ts +33 -0
  46. package/dist/components/Image/index.js +44 -0
  47. package/dist/components/Image/index.js.map +1 -0
  48. package/dist/components/Input/index.js +196 -197
  49. package/dist/components/Input/index.js.map +1 -1
  50. package/dist/components/Label/index.js +62 -73
  51. package/dist/components/Label/index.js.map +1 -1
  52. package/dist/components/Layout/index.js +134 -139
  53. package/dist/components/Layout/index.js.map +1 -1
  54. package/dist/components/List/index.js +45 -43
  55. package/dist/components/List/index.js.map +1 -1
  56. package/dist/components/Markdown/Markdown.js +106 -103
  57. package/dist/components/Markdown/Markdown.js.map +1 -1
  58. package/dist/components/Markdown/codeThemes.js +24 -33
  59. package/dist/components/Markdown/codeThemes.js.map +1 -1
  60. package/dist/components/Markdown/markdownComponents.js +203 -208
  61. package/dist/components/Markdown/markdownComponents.js.map +1 -1
  62. package/dist/components/Markdown/parseCodeBlockMeta.js +22 -22
  63. package/dist/components/Markdown/parseCodeBlockMeta.js.map +1 -1
  64. package/dist/components/Markdown/useMarkdownSource.js +46 -46
  65. package/dist/components/Markdown/useMarkdownSource.js.map +1 -1
  66. package/dist/components/Markdown/useMarkmapRenderer.js +35 -36
  67. package/dist/components/Markdown/useMarkmapRenderer.js.map +1 -1
  68. package/dist/components/Markdown/useMermaidRenderer.js +41 -42
  69. package/dist/components/Markdown/useMermaidRenderer.js.map +1 -1
  70. package/dist/components/Modal/index.d.ts +7 -3
  71. package/dist/components/Modal/index.js +82 -70
  72. package/dist/components/Modal/index.js.map +1 -1
  73. package/dist/components/MultipleChoice/index.d.ts +44 -0
  74. package/dist/components/MultipleChoice/index.js +52 -0
  75. package/dist/components/MultipleChoice/index.js.map +1 -0
  76. package/dist/components/Notification/index.d.ts +17 -0
  77. package/dist/components/Page/index.d.ts +58 -0
  78. package/dist/components/Page/index.js +43 -0
  79. package/dist/components/Page/index.js.map +1 -0
  80. package/dist/components/PageHeader/index.js +28 -28
  81. package/dist/components/PageHeader/index.js.map +1 -1
  82. package/dist/components/ProtectedRoute/index.js +8 -9
  83. package/dist/components/ProtectedRoute/index.js.map +1 -1
  84. package/dist/components/Row/index.d.ts +28 -0
  85. package/dist/components/Row/index.js +30 -0
  86. package/dist/components/Row/index.js.map +1 -0
  87. package/dist/components/Select/index.js +251 -257
  88. package/dist/components/Select/index.js.map +1 -1
  89. package/dist/components/SidebarToggleButton/index.js +56 -59
  90. package/dist/components/SidebarToggleButton/index.js.map +1 -1
  91. package/dist/components/Slider/index.d.ts +39 -0
  92. package/dist/components/Slider/index.js +52 -0
  93. package/dist/components/Slider/index.js.map +1 -0
  94. package/dist/components/StatCard/index.d.ts +31 -1
  95. package/dist/components/StatCard/index.js +189 -58
  96. package/dist/components/StatCard/index.js.map +1 -1
  97. package/dist/components/Switch/index.d.ts +34 -0
  98. package/dist/components/Switch/index.js +55 -0
  99. package/dist/components/Switch/index.js.map +1 -0
  100. package/dist/components/Tab/index.d.ts +40 -0
  101. package/dist/components/Table/index.js +109 -103
  102. package/dist/components/Table/index.js.map +1 -1
  103. package/dist/components/Tabs/index.d.ts +19 -5
  104. package/dist/components/Tabs/index.js +30 -21
  105. package/dist/components/Tabs/index.js.map +1 -1
  106. package/dist/components/Text/index.d.ts +43 -0
  107. package/dist/components/Text/index.js +55 -0
  108. package/dist/components/Text/index.js.map +1 -0
  109. package/dist/components/Tooltip/index.d.ts +23 -0
  110. package/dist/components/Tooltip/index.js +34 -0
  111. package/dist/components/Tooltip/index.js.map +1 -0
  112. package/dist/components/Tree/Tree.js +205 -205
  113. package/dist/components/Tree/Tree.js.map +1 -1
  114. package/dist/components/pro/ArticleContextMenu/index.js +86 -87
  115. package/dist/components/pro/ArticleContextMenu/index.js.map +1 -1
  116. package/dist/components/pro/ArticleControl/ArticleControl2.js +250 -250
  117. package/dist/components/pro/ArticleControl/ArticleControl2.js.map +1 -1
  118. package/dist/components/pro/ArticleControl/buildHeadingTree.js +31 -32
  119. package/dist/components/pro/ArticleControl/buildHeadingTree.js.map +1 -1
  120. package/dist/components/pro/ArticleControl/useArticleToc.js +100 -102
  121. package/dist/components/pro/ArticleControl/useArticleToc.js.map +1 -1
  122. package/dist/components/pro/Calendar/Calendar.d.ts +10 -0
  123. package/dist/components/pro/Calendar/hooks/useCalendarDrag.d.ts +47 -0
  124. package/dist/components/pro/Calendar/hooks/useCalendarState.d.ts +56 -0
  125. package/dist/components/pro/Calendar/index.d.ts +7 -0
  126. package/dist/components/pro/Calendar/types.d.ts +151 -0
  127. package/dist/components/pro/Calendar/utils.d.ts +94 -0
  128. package/dist/components/pro/Chat/Chat.d.ts +6 -0
  129. package/dist/components/pro/Chat/index.d.ts +2 -0
  130. package/dist/components/pro/Chat/types.d.ts +84 -0
  131. package/dist/components/pro/CodeEditor/editors/CodeEditor.js +287 -320
  132. package/dist/components/pro/CodeEditor/editors/CodeEditor.js.map +1 -1
  133. package/dist/components/pro/CodeEditor/editors/MarkdownEditor.js +167 -221
  134. package/dist/components/pro/CodeEditor/editors/MarkdownEditor.js.map +1 -1
  135. package/dist/components/pro/CodeEditor/editors/markdownExtensions.js +594 -613
  136. package/dist/components/pro/CodeEditor/editors/markdownExtensions.js.map +1 -1
  137. package/dist/components/pro/CodeEditor/extensions/contextMenu.js +54 -55
  138. package/dist/components/pro/CodeEditor/extensions/contextMenu.js.map +1 -1
  139. package/dist/components/pro/CodeEditor/extensions/index.js +152 -160
  140. package/dist/components/pro/CodeEditor/extensions/index.js.map +1 -1
  141. package/dist/components/pro/CodeEditor/langs/index.js +7 -15
  142. package/dist/components/pro/CodeEditor/langs/index.js.map +1 -1
  143. package/dist/components/pro/CodeEditor/langs/javascript.js +11 -48
  144. package/dist/components/pro/CodeEditor/langs/javascript.js.map +1 -1
  145. package/dist/components/pro/CodeEditor/langs/python.js +4 -40
  146. package/dist/components/pro/CodeEditor/langs/python.js.map +1 -1
  147. package/dist/components/pro/CodeEditor/langs/snippets.js +118 -147
  148. package/dist/components/pro/CodeEditor/langs/snippets.js.map +1 -1
  149. package/dist/components/pro/CodeEditor/panels/FootnotePanel.js +153 -153
  150. package/dist/components/pro/CodeEditor/panels/FootnotePanel.js.map +1 -1
  151. package/dist/components/pro/CodeEditor/panels/HistoryPanel.js +180 -190
  152. package/dist/components/pro/CodeEditor/panels/HistoryPanel.js.map +1 -1
  153. package/dist/components/pro/CodeEditor/panels/OutlinePanel.js +130 -137
  154. package/dist/components/pro/CodeEditor/panels/OutlinePanel.js.map +1 -1
  155. package/dist/components/pro/CodeEditor/panels/TableOfContentsPanel.js +228 -242
  156. package/dist/components/pro/CodeEditor/panels/TableOfContentsPanel.js.map +1 -1
  157. package/dist/components/pro/CodeEditor/panels/VariablePanel.js +208 -248
  158. package/dist/components/pro/CodeEditor/panels/VariablePanel.js.map +1 -1
  159. package/dist/components/pro/CodeEditor/themes.js +513 -483
  160. package/dist/components/pro/CodeEditor/themes.js.map +1 -1
  161. package/dist/components/pro/CodeEditor/types.d.ts +1 -1
  162. package/dist/components/pro/CodeEditor/utils.js +171 -175
  163. package/dist/components/pro/CodeEditor/utils.js.map +1 -1
  164. package/dist/components/pro/DataTable/DataTable.js +305 -305
  165. package/dist/components/pro/DataTable/DataTable.js.map +1 -1
  166. package/dist/components/pro/DataTable/Filters.js +299 -314
  167. package/dist/components/pro/DataTable/Filters.js.map +1 -1
  168. package/dist/components/pro/DataTable/PivotPanel.js +203 -204
  169. package/dist/components/pro/DataTable/PivotPanel.js.map +1 -1
  170. package/dist/components/pro/DataTable/PivotView.js +142 -141
  171. package/dist/components/pro/DataTable/PivotView.js.map +1 -1
  172. package/dist/components/pro/DataTable/components/BulkActions.js +42 -42
  173. package/dist/components/pro/DataTable/components/BulkActions.js.map +1 -1
  174. package/dist/components/pro/DataTable/components/ColumnSelector.js +84 -84
  175. package/dist/components/pro/DataTable/components/ColumnSelector.js.map +1 -1
  176. package/dist/components/pro/DataTable/components/FilterBar.js +58 -58
  177. package/dist/components/pro/DataTable/components/FilterBar.js.map +1 -1
  178. package/dist/components/pro/DataTable/components/TableBody.js +93 -94
  179. package/dist/components/pro/DataTable/components/TableBody.js.map +1 -1
  180. package/dist/components/pro/DataTable/components/TableHeader.js +78 -78
  181. package/dist/components/pro/DataTable/components/TableHeader.js.map +1 -1
  182. package/dist/components/pro/DataTable/components/TablePagination.js +77 -77
  183. package/dist/components/pro/DataTable/components/TablePagination.js.map +1 -1
  184. package/dist/components/pro/DataTable/components/TableToolbar.js +40 -40
  185. package/dist/components/pro/DataTable/components/TableToolbar.js.map +1 -1
  186. package/dist/components/pro/DataTable/extension.js +5 -5
  187. package/dist/components/pro/DataTable/extension.js.map +1 -1
  188. package/dist/components/pro/DataTable/pivotEngine.js +84 -92
  189. package/dist/components/pro/DataTable/pivotEngine.js.map +1 -1
  190. package/dist/components/pro/DataTable/pivotExtension.js +93 -93
  191. package/dist/components/pro/DataTable/pivotExtension.js.map +1 -1
  192. package/dist/components/pro/DataTable/rowDetailExtension.js +30 -30
  193. package/dist/components/pro/DataTable/rowDetailExtension.js.map +1 -1
  194. package/dist/components/pro/DataTable/tanstack-table.js +45 -62
  195. package/dist/components/pro/DataTable/tanstack-table.js.map +1 -1
  196. package/dist/components/pro/DataTable/treeDataUtils.js +37 -48
  197. package/dist/components/pro/DataTable/treeDataUtils.js.map +1 -1
  198. package/dist/components/pro/DataTable/useColumnDragReorder.js +68 -68
  199. package/dist/components/pro/DataTable/useColumnDragReorder.js.map +1 -1
  200. package/dist/components/pro/DataTable/utils.js +156 -168
  201. package/dist/components/pro/DataTable/utils.js.map +1 -1
  202. package/dist/components/pro/FileExplorer/Breadcrumb.js +180 -180
  203. package/dist/components/pro/FileExplorer/Breadcrumb.js.map +1 -1
  204. package/dist/components/pro/FileExplorer/CreateDialog.js +78 -78
  205. package/dist/components/pro/FileExplorer/CreateDialog.js.map +1 -1
  206. package/dist/components/pro/FileExplorer/FileExplorer.js +202 -205
  207. package/dist/components/pro/FileExplorer/FileExplorer.js.map +1 -1
  208. package/dist/components/pro/FileExplorer/FileIcon.js +190 -190
  209. package/dist/components/pro/FileExplorer/FileIcon.js.map +1 -1
  210. package/dist/components/pro/FileExplorer/GridView.js +100 -100
  211. package/dist/components/pro/FileExplorer/GridView.js.map +1 -1
  212. package/dist/components/pro/FileExplorer/ListView.js +209 -209
  213. package/dist/components/pro/FileExplorer/ListView.js.map +1 -1
  214. package/dist/components/pro/FileExplorer/Toolbar.js +199 -199
  215. package/dist/components/pro/FileExplorer/Toolbar.js.map +1 -1
  216. package/dist/components/pro/Flow/Flow.js +920 -946
  217. package/dist/components/pro/Flow/Flow.js.map +1 -1
  218. package/dist/components/pro/Flow/FlowCanvas.js +1626 -1663
  219. package/dist/components/pro/Flow/FlowCanvas.js.map +1 -1
  220. package/dist/components/pro/Flow/archify/build.js +85 -94
  221. package/dist/components/pro/Flow/archify/build.js.map +1 -1
  222. package/dist/components/pro/Flow/archify/convert.js +512 -519
  223. package/dist/components/pro/Flow/archify/convert.js.map +1 -1
  224. package/dist/components/pro/Flow/archify/palette.js +87 -104
  225. package/dist/components/pro/Flow/archify/palette.js.map +1 -1
  226. package/dist/components/pro/Flow/archify/presets.js +34 -37
  227. package/dist/components/pro/Flow/archify/presets.js.map +1 -1
  228. package/dist/components/pro/Flow/archify/spec.js +7 -7
  229. package/dist/components/pro/Flow/archify/spec.js.map +1 -1
  230. package/dist/components/pro/Flow/canvas/AlignmentGuides.js +25 -25
  231. package/dist/components/pro/Flow/canvas/AlignmentGuides.js.map +1 -1
  232. package/dist/components/pro/Flow/canvas/GridRenderer.js +54 -55
  233. package/dist/components/pro/Flow/canvas/GridRenderer.js.map +1 -1
  234. package/dist/components/pro/Flow/canvas/MiniMapRenderer.js +54 -58
  235. package/dist/components/pro/Flow/canvas/MiniMapRenderer.js.map +1 -1
  236. package/dist/components/pro/Flow/canvas/PixiApp.js +105 -102
  237. package/dist/components/pro/Flow/canvas/PixiApp.js.map +1 -1
  238. package/dist/components/pro/Flow/canvas/SelectionOverlay.js +38 -38
  239. package/dist/components/pro/Flow/canvas/SelectionOverlay.js.map +1 -1
  240. package/dist/components/pro/Flow/canvas/ViewportContainer.js +117 -117
  241. package/dist/components/pro/Flow/canvas/ViewportContainer.js.map +1 -1
  242. package/dist/components/pro/Flow/constants.js +266 -278
  243. package/dist/components/pro/Flow/constants.js.map +1 -1
  244. package/dist/components/pro/Flow/context/FlowAIContext.js +27 -28
  245. package/dist/components/pro/Flow/context/FlowAIContext.js.map +1 -1
  246. package/dist/components/pro/Flow/context/FlowContext.js +60 -61
  247. package/dist/components/pro/Flow/context/FlowContext.js.map +1 -1
  248. package/dist/components/pro/Flow/context/FlowUIContext.js +115 -117
  249. package/dist/components/pro/Flow/context/FlowUIContext.js.map +1 -1
  250. package/dist/components/pro/Flow/edges/EdgeRenderer.js +135 -138
  251. package/dist/components/pro/Flow/edges/EdgeRenderer.js.map +1 -1
  252. package/dist/components/pro/Flow/edges/edgeMarkers.js +11 -14
  253. package/dist/components/pro/Flow/edges/edgeMarkers.js.map +1 -1
  254. package/dist/components/pro/Flow/edges/edgePaths.js +351 -367
  255. package/dist/components/pro/Flow/edges/edgePaths.js.map +1 -1
  256. package/dist/components/pro/Flow/hooks/useAlignmentGuides.js +49 -52
  257. package/dist/components/pro/Flow/hooks/useAlignmentGuides.js.map +1 -1
  258. package/dist/components/pro/Flow/hooks/useClipboard.js +154 -154
  259. package/dist/components/pro/Flow/hooks/useClipboard.js.map +1 -1
  260. package/dist/components/pro/Flow/hooks/useCompactMode.js +17 -17
  261. package/dist/components/pro/Flow/hooks/useCompactMode.js.map +1 -1
  262. package/dist/components/pro/Flow/hooks/useDeleteSelection.js +40 -40
  263. package/dist/components/pro/Flow/hooks/useDeleteSelection.js.map +1 -1
  264. package/dist/components/pro/Flow/hooks/useDraggablePanel.js +51 -51
  265. package/dist/components/pro/Flow/hooks/useDraggablePanel.js.map +1 -1
  266. package/dist/components/pro/Flow/hooks/useEdgeMutations.js +157 -157
  267. package/dist/components/pro/Flow/hooks/useEdgeMutations.js.map +1 -1
  268. package/dist/components/pro/Flow/hooks/useFlowImportExport.js +190 -201
  269. package/dist/components/pro/Flow/hooks/useFlowImportExport.js.map +1 -1
  270. package/dist/components/pro/Flow/hooks/useKeyboardShortcuts.js +32 -38
  271. package/dist/components/pro/Flow/hooks/useKeyboardShortcuts.js.map +1 -1
  272. package/dist/components/pro/Flow/hooks/useLayoutActions.js +172 -182
  273. package/dist/components/pro/Flow/hooks/useLayoutActions.js.map +1 -1
  274. package/dist/components/pro/Flow/hooks/useLineMutations.js +57 -57
  275. package/dist/components/pro/Flow/hooks/useLineMutations.js.map +1 -1
  276. package/dist/components/pro/Flow/hooks/useMindMap.js +229 -238
  277. package/dist/components/pro/Flow/hooks/useMindMap.js.map +1 -1
  278. package/dist/components/pro/Flow/hooks/useNodeMutations.js +102 -102
  279. package/dist/components/pro/Flow/hooks/useNodeMutations.js.map +1 -1
  280. package/dist/components/pro/Flow/hooks/usePdfExport.js +55 -56
  281. package/dist/components/pro/Flow/hooks/usePdfExport.js.map +1 -1
  282. package/dist/components/pro/Flow/hooks/usePixiApp.js +55 -57
  283. package/dist/components/pro/Flow/hooks/usePixiApp.js.map +1 -1
  284. package/dist/components/pro/Flow/hooks/useResizablePanel.js +31 -31
  285. package/dist/components/pro/Flow/hooks/useResizablePanel.js.map +1 -1
  286. package/dist/components/pro/Flow/hooks/useSelection.js +69 -69
  287. package/dist/components/pro/Flow/hooks/useSelection.js.map +1 -1
  288. package/dist/components/pro/Flow/hooks/useUndoRedo.js +27 -27
  289. package/dist/components/pro/Flow/hooks/useUndoRedo.js.map +1 -1
  290. package/dist/components/pro/Flow/hooks/useViewport.js +28 -28
  291. package/dist/components/pro/Flow/hooks/useViewport.js.map +1 -1
  292. package/dist/components/pro/Flow/lines/FreehandTool.js +63 -63
  293. package/dist/components/pro/Flow/lines/FreehandTool.js.map +1 -1
  294. package/dist/components/pro/Flow/lines/GeometricLineTool.js +80 -80
  295. package/dist/components/pro/Flow/lines/GeometricLineTool.js.map +1 -1
  296. package/dist/components/pro/Flow/lines/LineRenderer.js +88 -88
  297. package/dist/components/pro/Flow/lines/LineRenderer.js.map +1 -1
  298. package/dist/components/pro/Flow/lines/lineSmoothing.js +32 -34
  299. package/dist/components/pro/Flow/lines/lineSmoothing.js.map +1 -1
  300. package/dist/components/pro/Flow/nodes/DataNodeView.js +236 -222
  301. package/dist/components/pro/Flow/nodes/DataNodeView.js.map +1 -1
  302. package/dist/components/pro/Flow/nodes/MediaContent.js +236 -246
  303. package/dist/components/pro/Flow/nodes/MediaContent.js.map +1 -1
  304. package/dist/components/pro/Flow/nodes/MediaOverlay.js +63 -63
  305. package/dist/components/pro/Flow/nodes/MediaOverlay.js.map +1 -1
  306. package/dist/components/pro/Flow/nodes/Model3DView.js +111 -113
  307. package/dist/components/pro/Flow/nodes/Model3DView.js.map +1 -1
  308. package/dist/components/pro/Flow/nodes/NodeHandles.js +74 -80
  309. package/dist/components/pro/Flow/nodes/NodeHandles.js.map +1 -1
  310. package/dist/components/pro/Flow/nodes/NodeRenderer.js +303 -314
  311. package/dist/components/pro/Flow/nodes/NodeRenderer.js.map +1 -1
  312. package/dist/components/pro/Flow/nodes/NodeText.js +25 -29
  313. package/dist/components/pro/Flow/nodes/NodeText.js.map +1 -1
  314. package/dist/components/pro/Flow/nodes/aiClient.js +124 -137
  315. package/dist/components/pro/Flow/nodes/aiClient.js.map +1 -1
  316. package/dist/components/pro/Flow/nodes/animAnchors.js +42 -49
  317. package/dist/components/pro/Flow/nodes/animAnchors.js.map +1 -1
  318. package/dist/components/pro/Flow/nodes/dataUtils.js +246 -267
  319. package/dist/components/pro/Flow/nodes/dataUtils.js.map +1 -1
  320. package/dist/components/pro/Flow/nodes/nodeUtils.js +23 -28
  321. package/dist/components/pro/Flow/nodes/nodeUtils.js.map +1 -1
  322. package/dist/components/pro/Flow/nodes/shapes.js +556 -591
  323. package/dist/components/pro/Flow/nodes/shapes.js.map +1 -1
  324. package/dist/components/pro/Flow/nodes/svgIconTexture.js +37 -39
  325. package/dist/components/pro/Flow/nodes/svgIconTexture.js.map +1 -1
  326. package/dist/components/pro/Flow/nodes/svgIcons.js +684 -689
  327. package/dist/components/pro/Flow/nodes/svgIcons.js.map +1 -1
  328. package/dist/components/pro/Flow/panels/AIPanel.js +464 -491
  329. package/dist/components/pro/Flow/panels/AIPanel.js.map +1 -1
  330. package/dist/components/pro/Flow/panels/Breadcrumb.js +41 -41
  331. package/dist/components/pro/Flow/panels/Breadcrumb.js.map +1 -1
  332. package/dist/components/pro/Flow/panels/ContextMenu.js +37 -37
  333. package/dist/components/pro/Flow/panels/ContextMenu.js.map +1 -1
  334. package/dist/components/pro/Flow/panels/DataInspectorSection.js +428 -432
  335. package/dist/components/pro/Flow/panels/DataInspectorSection.js.map +1 -1
  336. package/dist/components/pro/Flow/panels/ExpandableTextarea.js +61 -62
  337. package/dist/components/pro/Flow/panels/ExpandableTextarea.js.map +1 -1
  338. package/dist/components/pro/Flow/panels/FlowPanelGroup.js +114 -114
  339. package/dist/components/pro/Flow/panels/FlowPanelGroup.js.map +1 -1
  340. package/dist/components/pro/Flow/panels/FlowToolbar.js +347 -391
  341. package/dist/components/pro/Flow/panels/FlowToolbar.js.map +1 -1
  342. package/dist/components/pro/Flow/panels/InspectorPanel.js +1792 -1798
  343. package/dist/components/pro/Flow/panels/InspectorPanel.js.map +1 -1
  344. package/dist/components/pro/Flow/panels/OutlinePanel.js +242 -244
  345. package/dist/components/pro/Flow/panels/OutlinePanel.js.map +1 -1
  346. package/dist/components/pro/Flow/panels/PresentationMode.js +137 -138
  347. package/dist/components/pro/Flow/panels/PresentationMode.js.map +1 -1
  348. package/dist/components/pro/Flow/panels/ProjectTitle.js +46 -46
  349. package/dist/components/pro/Flow/panels/ProjectTitle.js.map +1 -1
  350. package/dist/components/pro/Flow/panels/ShapePalette.js +557 -567
  351. package/dist/components/pro/Flow/panels/ShapePalette.js.map +1 -1
  352. package/dist/components/pro/Flow/panels/toolbarIcons.d.ts +0 -1
  353. package/dist/components/pro/Flow/panels/toolbarIcons.js +508 -557
  354. package/dist/components/pro/Flow/panels/toolbarIcons.js.map +1 -1
  355. package/dist/components/pro/Flow/types.js +26 -26
  356. package/dist/components/pro/Flow/types.js.map +1 -1
  357. package/dist/components/pro/Flow/utils/dashedLine.js +113 -117
  358. package/dist/components/pro/Flow/utils/dashedLine.js.map +1 -1
  359. package/dist/components/pro/Flow/utils/gradient.js +55 -55
  360. package/dist/components/pro/Flow/utils/gradient.js.map +1 -1
  361. package/dist/components/pro/Flow/utils/pdfExport.js +50 -89
  362. package/dist/components/pro/Flow/utils/pdfExport.js.map +1 -1
  363. package/dist/components/pro/Flow/utils/themeColor.js +185 -195
  364. package/dist/components/pro/Flow/utils/themeColor.js.map +1 -1
  365. package/dist/components/pro/Gantt/Gantt.d.ts +7 -0
  366. package/dist/components/pro/Gantt/hooks/useGanttDrag.d.ts +31 -0
  367. package/dist/components/pro/Gantt/hooks/useGanttState.d.ts +58 -0
  368. package/dist/components/pro/Gantt/index.d.ts +6 -0
  369. package/dist/components/pro/Gantt/types.d.ts +478 -0
  370. package/dist/components/pro/Gantt/utils.d.ts +124 -0
  371. package/dist/components/pro/Resizable/Resizable.d.ts +30 -0
  372. package/dist/components/pro/Resizable/index.d.ts +2 -0
  373. package/dist/components/pro/RichTextEditor/AIRewrite.js +323 -334
  374. package/dist/components/pro/RichTextEditor/AIRewrite.js.map +1 -1
  375. package/dist/components/pro/RichTextEditor/BlockHandle.js +314 -316
  376. package/dist/components/pro/RichTextEditor/BlockHandle.js.map +1 -1
  377. package/dist/components/pro/RichTextEditor/BubbleToolbar.js +97 -97
  378. package/dist/components/pro/RichTextEditor/BubbleToolbar.js.map +1 -1
  379. package/dist/components/pro/RichTextEditor/CommentDialog.js +88 -88
  380. package/dist/components/pro/RichTextEditor/CommentDialog.js.map +1 -1
  381. package/dist/components/pro/RichTextEditor/CommentPanel.js +240 -240
  382. package/dist/components/pro/RichTextEditor/CommentPanel.js.map +1 -1
  383. package/dist/components/pro/RichTextEditor/CommentPopover.js +234 -234
  384. package/dist/components/pro/RichTextEditor/CommentPopover.js.map +1 -1
  385. package/dist/components/pro/RichTextEditor/ContextMenu.js +251 -252
  386. package/dist/components/pro/RichTextEditor/ContextMenu.js.map +1 -1
  387. package/dist/components/pro/RichTextEditor/RichTextEditor.js +267 -271
  388. package/dist/components/pro/RichTextEditor/RichTextEditor.js.map +1 -1
  389. package/dist/components/pro/RichTextEditor/SlashMenu.js +214 -214
  390. package/dist/components/pro/RichTextEditor/SlashMenu.js.map +1 -1
  391. package/dist/components/pro/RichTextEditor/Toolbar/ColorPicker.js +44 -75
  392. package/dist/components/pro/RichTextEditor/Toolbar/ColorPicker.js.map +1 -1
  393. package/dist/components/pro/RichTextEditor/Toolbar/FloatingDialogMenu.js +261 -261
  394. package/dist/components/pro/RichTextEditor/Toolbar/FloatingDialogMenu.js.map +1 -1
  395. package/dist/components/pro/RichTextEditor/Toolbar/MarkdownTemplates.js +172 -526
  396. package/dist/components/pro/RichTextEditor/Toolbar/MarkdownTemplates.js.map +1 -1
  397. package/dist/components/pro/RichTextEditor/Toolbar/SelectDropdown.js +112 -114
  398. package/dist/components/pro/RichTextEditor/Toolbar/SelectDropdown.js.map +1 -1
  399. package/dist/components/pro/RichTextEditor/Toolbar/TableOpsMenu.js +194 -194
  400. package/dist/components/pro/RichTextEditor/Toolbar/TableOpsMenu.js.map +1 -1
  401. package/dist/components/pro/RichTextEditor/Toolbar/Toolbar.js +970 -973
  402. package/dist/components/pro/RichTextEditor/Toolbar/Toolbar.js.map +1 -1
  403. package/dist/components/pro/RichTextEditor/Toolbar/ToolbarButton.js +11 -12
  404. package/dist/components/pro/RichTextEditor/Toolbar/ToolbarButton.js.map +1 -1
  405. package/dist/components/pro/RichTextEditor/extensions/CodeBlockView.js +310 -344
  406. package/dist/components/pro/RichTextEditor/extensions/CodeBlockView.js.map +1 -1
  407. package/dist/components/pro/RichTextEditor/extensions/CommentMark.js +38 -39
  408. package/dist/components/pro/RichTextEditor/extensions/CommentMark.js.map +1 -1
  409. package/dist/components/pro/RichTextEditor/extensions/FloatingDialog.js +620 -625
  410. package/dist/components/pro/RichTextEditor/extensions/FloatingDialog.js.map +1 -1
  411. package/dist/components/pro/RichTextEditor/extensions/FontSize.js +25 -25
  412. package/dist/components/pro/RichTextEditor/extensions/FontSize.js.map +1 -1
  413. package/dist/components/pro/RichTextEditor/extensions/MarkdownBlock.js +167 -176
  414. package/dist/components/pro/RichTextEditor/extensions/MarkdownBlock.js.map +1 -1
  415. package/dist/components/pro/RichTextEditor/types.js +75 -75
  416. package/dist/components/pro/RichTextEditor/types.js.map +1 -1
  417. package/dist/contexts/AppContext.d.ts +1 -1
  418. package/dist/contexts/AppContext.js +216 -221
  419. package/dist/contexts/AppContext.js.map +1 -1
  420. package/dist/data-table.js +15 -41
  421. package/dist/data-table.js.map +1 -1
  422. package/dist/dishui.css +1 -1
  423. package/dist/flow.js +27 -83
  424. package/dist/hooks/useClickOutside.js +18 -18
  425. package/dist/hooks/useClickOutside.js.map +1 -1
  426. package/dist/hooks/useContainerElement.js +9 -9
  427. package/dist/hooks/useContainerElement.js.map +1 -1
  428. package/dist/hooks/useControllableState.js +33 -35
  429. package/dist/hooks/useControllableState.js.map +1 -1
  430. package/dist/hooks/useCopyToClipboard.js +16 -16
  431. package/dist/hooks/useCopyToClipboard.js.map +1 -1
  432. package/dist/hooks/useDebounce.js +14 -14
  433. package/dist/hooks/useDebounce.js.map +1 -1
  434. package/dist/hooks/useDraggable.js +50 -50
  435. package/dist/hooks/useDraggable.js.map +1 -1
  436. package/dist/hooks/useTableColumns.js +39 -42
  437. package/dist/hooks/useTableColumns.js.map +1 -1
  438. package/dist/hooks/useTableData.js +67 -68
  439. package/dist/hooks/useTableData.js.map +1 -1
  440. package/dist/index-nostyled.d.ts +8 -0
  441. package/dist/index.d.ts +29 -1
  442. package/dist/index.js +106 -236
  443. package/dist/layouts/MainLayout.js +56 -56
  444. package/dist/layouts/MainLayout.js.map +1 -1
  445. package/dist/layouts/Navbar.js +214 -214
  446. package/dist/layouts/Navbar.js.map +1 -1
  447. package/dist/layouts/Sidebar.js +184 -165
  448. package/dist/layouts/Sidebar.js.map +1 -1
  449. package/dist/layouts/headbar/Headbar.js +25 -25
  450. package/dist/layouts/headbar/Headbar.js.map +1 -1
  451. package/dist/layouts/headbar/HeadbarLangSwitcher.js +39 -39
  452. package/dist/layouts/headbar/HeadbarLangSwitcher.js.map +1 -1
  453. package/dist/layouts/headbar/HeadbarSearch.js +120 -120
  454. package/dist/layouts/headbar/HeadbarSearch.js.map +1 -1
  455. package/dist/layouts/headbar/HeadbarThemeSwitcher.js +27 -27
  456. package/dist/layouts/headbar/HeadbarThemeSwitcher.js.map +1 -1
  457. package/dist/layouts/headbar/HeadbarTitle.js +26 -26
  458. package/dist/layouts/headbar/HeadbarTitle.js.map +1 -1
  459. package/dist/lite.js +9 -24
  460. package/dist/markdown.js +4 -9
  461. package/dist/pages/components/Calendar/index.d.ts +3 -0
  462. package/dist/pages/components/Calendar/index.en.d.ts +3 -0
  463. package/dist/pages/components/Calendar/index.zh.d.ts +3 -0
  464. package/dist/pages/components/Chat/index.d.ts +3 -0
  465. package/dist/pages/components/Chat/index.en.d.ts +3 -0
  466. package/dist/pages/components/Chat/index.zh.d.ts +3 -0
  467. package/dist/pages/components/FloatWindow/index.d.ts +3 -0
  468. package/dist/pages/components/FloatWindow/index.en.d.ts +3 -0
  469. package/dist/pages/components/FloatWindow/index.zh.d.ts +3 -0
  470. package/dist/pages/components/Gantt/index.d.ts +3 -0
  471. package/dist/pages/components/Gantt/index.en.d.ts +3 -0
  472. package/dist/pages/components/Gantt/index.zh.d.ts +3 -0
  473. package/dist/pages/components/GridLayout/index.d.ts +3 -0
  474. package/dist/pages/components/GridLayout/index.en.d.ts +3 -0
  475. package/dist/pages/components/GridLayout/index.zh.d.ts +3 -0
  476. package/dist/pages/components/Notification/index.d.ts +3 -0
  477. package/dist/pages/components/Notification/index.en.d.ts +3 -0
  478. package/dist/pages/components/Notification/index.zh.d.ts +3 -0
  479. package/dist/pages/components/Resizable/index.d.ts +3 -0
  480. package/dist/pages/components/Resizable/index.en.d.ts +3 -0
  481. package/dist/pages/components/Resizable/index.zh.d.ts +3 -0
  482. package/dist/pages/components/Tab/index.d.ts +3 -0
  483. package/dist/pages/components/Tab/index.en.d.ts +3 -0
  484. package/dist/pages/components/Tab/index.zh.d.ts +3 -0
  485. package/dist/styles/themeStyles.js +87 -86
  486. package/dist/styles/themeStyles.js.map +1 -1
  487. package/dist/utils/cn.d.ts +13 -0
  488. package/dist/utils/cn.js +16 -0
  489. package/dist/utils/cn.js.map +1 -0
  490. package/dist/utils/i18n.js +690 -602
  491. package/dist/utils/i18n.js.map +1 -1
  492. package/dist/utils/menu.js +94 -94
  493. package/dist/utils/menu.js.map +1 -1
  494. package/dist/utils/rehype-code-meta.js +14 -14
  495. package/dist/utils/rehype-code-meta.js.map +1 -1
  496. package/dist/utils/remark-code-meta.js +9 -9
  497. package/dist/utils/remark-code-meta.js.map +1 -1
  498. package/dist/utils/routerBuilder.js +59 -58
  499. package/dist/utils/routerBuilder.js.map +1 -1
  500. package/dist/utils/selection.js +28 -29
  501. package/dist/utils/selection.js.map +1 -1
  502. package/dist/utils/themes.js +275 -255
  503. package/dist/utils/themes.js.map +1 -1
  504. package/package.json +23 -10
@@ -1,62 +1,193 @@
1
- import b from "../Card/index.js";
1
+ import { cn as e } from "../../utils/cn.js";
2
+ import t from "../Card/index.js";
2
3
  import "react";
3
- import { jsx as e, jsxs as a } from "react/jsx-runtime";
4
- var x = {
5
- primary: {
6
- text: "text-primary",
7
- bg: "bg-primary/10"
8
- },
9
- success: {
10
- text: "text-success",
11
- bg: "bg-success/10"
12
- },
13
- warning: {
14
- text: "text-warning",
15
- bg: "bg-warning/10"
16
- },
17
- info: {
18
- text: "text-info",
19
- bg: "bg-info/10"
20
- },
21
- error: {
22
- text: "text-error",
23
- bg: "bg-error/10"
24
- },
25
- neutral: {
26
- text: "text-base-content/70",
27
- bg: "bg-base-content/5"
28
- }
29
- }, u = ({ label: n, value: o, icon: t, tone: c = "primary", hint: r, loading: i = !1, className: m = "" }) => {
30
- const s = x[c];
31
- return /* @__PURE__ */ a(b, {
32
- bordered: !0,
33
- glass: !1,
34
- hover: !0,
35
- className: `bg-base-200 p-4 ${m}`.trim(),
36
- children: [
37
- /* @__PURE__ */ a("div", {
38
- className: "mb-2 flex items-center justify-between gap-2",
39
- children: [/* @__PURE__ */ e("span", {
40
- className: "truncate text-xs font-medium text-base-content/60",
41
- children: n
42
- }), t && /* @__PURE__ */ e("span", {
43
- className: `rounded-md p-1.5 ${s.bg} [&>svg]:h-4 [&>svg]:w-4 ${s.text}`.trim(),
44
- children: t
45
- })]
46
- }),
47
- i ? /* @__PURE__ */ e("div", { className: "h-7 w-14 animate-pulse rounded bg-base-content/10" }) : /* @__PURE__ */ e("p", {
48
- className: "text-2xl font-bold leading-none text-base-content",
49
- children: o
50
- }),
51
- r && /* @__PURE__ */ e("p", {
52
- className: "mt-1.5 text-[11px] text-base-content/50",
53
- children: r
54
- })
55
- ]
56
- });
57
- };
58
- export {
59
- u as default
4
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
5
+ //#region src/components/StatCard/index.tsx
6
+ var i = {
7
+ primary: {
8
+ text: "text-primary",
9
+ bg: "bg-primary/10"
10
+ },
11
+ success: {
12
+ text: "text-success",
13
+ bg: "bg-success/10"
14
+ },
15
+ warning: {
16
+ text: "text-warning",
17
+ bg: "bg-warning/10"
18
+ },
19
+ info: {
20
+ text: "text-info",
21
+ bg: "bg-info/10"
22
+ },
23
+ error: {
24
+ text: "text-error",
25
+ bg: "bg-error/10"
26
+ },
27
+ neutral: {
28
+ text: "text-base-content/70",
29
+ bg: "bg-base-content/5"
30
+ }
31
+ }, a = {
32
+ primary: "bg-primary text-primary-content",
33
+ success: "bg-success text-success-content",
34
+ warning: "bg-warning text-warning-content",
35
+ info: "bg-info text-info-content",
36
+ error: "bg-error text-error-content",
37
+ neutral: "bg-neutral text-neutral-content"
38
+ }, o = {
39
+ md: "text-2xl",
40
+ lg: "text-4xl",
41
+ xl: "text-5xl",
42
+ "2xl": "text-6xl"
43
+ }, s = (e) => e === "neutral" ? "var(--color-base-content)" : `var(--color-${e})`, c = ({ data: e, type: t, height: i }) => {
44
+ if (!e || e.length < 2) return null;
45
+ let a = Math.min(...e), o = Math.max(...e) - a || 1, s = (t) => t / (e.length - 1) * 100, c = (e) => i - 3 - (e - a) / o * (i - 6), l = e.map((e, t) => `${s(t).toFixed(2)},${c(e).toFixed(2)}`);
46
+ if (t === "bar") {
47
+ let t = 100 / e.length;
48
+ return /* @__PURE__ */ n("svg", {
49
+ viewBox: `0 0 100 ${i}`,
50
+ preserveAspectRatio: "none",
51
+ className: "block w-full",
52
+ style: { height: i },
53
+ "aria-hidden": "true",
54
+ children: e.map((e, r) => /* @__PURE__ */ n("rect", {
55
+ x: s(r) - t / 2,
56
+ y: c(e),
57
+ width: t * .8,
58
+ height: Math.max(1, i - 3 - c(e)),
59
+ fill: "currentColor"
60
+ }, r))
61
+ });
62
+ }
63
+ return t === "area" ? /* @__PURE__ */ r("svg", {
64
+ viewBox: `0 0 100 ${i}`,
65
+ preserveAspectRatio: "none",
66
+ className: "block w-full",
67
+ style: { height: i },
68
+ "aria-hidden": "true",
69
+ children: [/* @__PURE__ */ n("path", {
70
+ d: `M0,${i} L${l.join(" L")} L100,${i} Z`,
71
+ fill: "currentColor",
72
+ opacity: .18
73
+ }), /* @__PURE__ */ n("polyline", {
74
+ points: l.join(" "),
75
+ fill: "none",
76
+ stroke: "currentColor",
77
+ strokeWidth: 1.5,
78
+ vectorEffect: "non-scaling-stroke"
79
+ })]
80
+ }) : /* @__PURE__ */ n("svg", {
81
+ viewBox: `0 0 100 ${i}`,
82
+ preserveAspectRatio: "none",
83
+ className: "block w-full",
84
+ style: { height: i },
85
+ "aria-hidden": "true",
86
+ children: /* @__PURE__ */ n("polyline", {
87
+ points: l.join(" "),
88
+ fill: "none",
89
+ stroke: "currentColor",
90
+ strokeWidth: 1.5,
91
+ vectorEffect: "non-scaling-stroke"
92
+ })
93
+ });
94
+ }, l = ({ label: l, value: u, icon: d, iconPosition: f = "top", tone: p = "primary", hint: m, loading: h = !1, className: g = "", panel: _ = !1, unit: v, valueSize: y = "xl", align: b = "left", sparkline: x, sparklineData: S, sparklineType: C = "line", sparklineHeight: w = 36, indicator: T = !1, filled: E = !1, onClick: D }) => {
95
+ let O = i[p];
96
+ if (_) {
97
+ let t = x ?? (S && S.length >= 2 ? /* @__PURE__ */ n(c, {
98
+ data: S,
99
+ type: C,
100
+ height: w
101
+ }) : null), i = E ? "" : O.text, d = E ? "opacity-80" : "text-base-content/60";
102
+ return /* @__PURE__ */ r("div", {
103
+ onClick: D,
104
+ className: e("relative flex flex-col overflow-hidden rounded-lg p-3", E ? a[p] : "border border-base-300/60 bg-base-200", D && "cursor-pointer transition-colors hover:border-primary/40", g),
105
+ children: [
106
+ T && !E && /* @__PURE__ */ n("span", {
107
+ "aria-hidden": "true",
108
+ className: "absolute right-0 top-0 h-0 w-0",
109
+ style: {
110
+ borderTop: "14px solid " + s(p),
111
+ borderLeft: "14px solid transparent"
112
+ }
113
+ }),
114
+ /* @__PURE__ */ n("div", {
115
+ className: e("truncate text-xs font-medium", d, b === "center" && "text-center"),
116
+ children: l
117
+ }),
118
+ /* @__PURE__ */ n("div", {
119
+ className: e("flex min-h-[3rem] flex-1 items-center py-1", b === "center" ? "justify-center" : "justify-start"),
120
+ children: h ? /* @__PURE__ */ n("span", { className: e("inline-block h-8 w-16 animate-pulse rounded", E ? "bg-white/25" : "bg-base-content/10") }) : /* @__PURE__ */ r("span", {
121
+ className: e("leading-none tracking-tight", o[y], "font-semibold", E ? "" : i),
122
+ children: [u, v != null && v !== "" && /* @__PURE__ */ n("span", {
123
+ className: "ml-0.5 text-[0.45em] font-semibold",
124
+ children: v
125
+ })]
126
+ })
127
+ }),
128
+ t && /* @__PURE__ */ n("div", {
129
+ className: e("-mx-3 -mb-3 mt-1", E ? "text-white" : O.text),
130
+ children: t
131
+ })
132
+ ]
133
+ });
134
+ }
135
+ return f === "left" ? /* @__PURE__ */ n(t, {
136
+ bordered: !0,
137
+ glass: !1,
138
+ hover: !0,
139
+ className: `bg-base-200 p-4 ${g}`.trim(),
140
+ children: /* @__PURE__ */ r("div", {
141
+ className: "flex items-center gap-3",
142
+ children: [d && /* @__PURE__ */ n("span", {
143
+ className: `flex shrink-0 items-center justify-center rounded-lg p-2.5 ${O.bg} [&>svg]:h-5 [&>svg]:w-5 ${O.text}`.trim(),
144
+ children: d
145
+ }), /* @__PURE__ */ r("div", {
146
+ className: "min-w-0 flex-1",
147
+ children: [
148
+ /* @__PURE__ */ n("span", {
149
+ className: "block truncate text-xs font-medium text-base-content/60",
150
+ children: l
151
+ }),
152
+ h ? /* @__PURE__ */ n("div", { className: "mt-1 h-6 w-14 animate-pulse rounded bg-base-content/10" }) : /* @__PURE__ */ n("p", {
153
+ className: "truncate text-xl font-bold leading-tight text-base-content",
154
+ children: u
155
+ }),
156
+ m && /* @__PURE__ */ n("p", {
157
+ className: "mt-0.5 truncate text-[11px] text-base-content/50",
158
+ children: m
159
+ })
160
+ ]
161
+ })]
162
+ })
163
+ }) : /* @__PURE__ */ r(t, {
164
+ bordered: !0,
165
+ glass: !1,
166
+ hover: !0,
167
+ className: `bg-base-200 p-4 ${g}`.trim(),
168
+ children: [
169
+ /* @__PURE__ */ r("div", {
170
+ className: "mb-2 flex items-center justify-between gap-2",
171
+ children: [/* @__PURE__ */ n("span", {
172
+ className: "truncate text-xs font-medium text-base-content/60",
173
+ children: l
174
+ }), d && /* @__PURE__ */ n("span", {
175
+ className: `rounded-md p-1.5 ${O.bg} [&>svg]:h-4 [&>svg]:w-4 ${O.text}`.trim(),
176
+ children: d
177
+ })]
178
+ }),
179
+ h ? /* @__PURE__ */ n("div", { className: "h-7 w-14 animate-pulse rounded bg-base-content/10" }) : /* @__PURE__ */ n("p", {
180
+ className: "text-2xl font-bold leading-none text-base-content",
181
+ children: u
182
+ }),
183
+ m && /* @__PURE__ */ n("p", {
184
+ className: "mt-1.5 text-[11px] text-base-content/50",
185
+ children: m
186
+ })
187
+ ]
188
+ });
60
189
  };
190
+ //#endregion
191
+ export { l as default };
61
192
 
62
193
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/StatCard/index.tsx"],"sourcesContent":["import React from 'react';\nimport Card from '../Card';\n\nexport type StatCardProps = {\n /** 指标名称 */\n label: React.ReactNode;\n /** 指标值(数字或短文本) */\n value: React.ReactNode;\n /** 右上角图标 */\n icon?: React.ReactNode;\n /** 色调(影响图标底色与文字色) */\n tone?: 'primary' | 'success' | 'warning' | 'info' | 'error' | 'neutral';\n /** 值下方的小字说明 */\n hint?: React.ReactNode;\n /** 加载态:值显示为骨架 */\n loading?: boolean;\n className?: string;\n};\n\nconst TONE_CLASS: Record<NonNullable<StatCardProps['tone']>, { text: string; bg: string }> = {\n primary: { text: 'text-primary', bg: 'bg-primary/10' },\n success: { text: 'text-success', bg: 'bg-success/10' },\n warning: { text: 'text-warning', bg: 'bg-warning/10' },\n info: { text: 'text-info', bg: 'bg-info/10' },\n error: { text: 'text-error', bg: 'bg-error/10' },\n neutral: { text: 'text-base-content/70', bg: 'bg-base-content/5' },\n};\n\n/**\n * 统计卡片:仪表盘等场景的「标签 + 数值 + 图标」小卡。\n * 内部基于 Card 组件,默认紧凑内边距与小号字体。\n */\nconst StatCard = ({\n label,\n value,\n icon,\n tone = 'primary',\n hint,\n loading = false,\n className = '',\n}: StatCardProps) => {\n const t = TONE_CLASS[tone];\n\n return (\n <Card bordered glass={false} hover className={`bg-base-200 p-4 ${className}`.trim()}>\n <div className=\"mb-2 flex items-center justify-between gap-2\">\n <span className=\"truncate text-xs font-medium text-base-content/60\">{label}</span>\n {icon && (\n <span className={`rounded-md p-1.5 ${t.bg} [&>svg]:h-4 [&>svg]:w-4 ${t.text}`.trim()}>\n {icon}\n </span>\n )}\n </div>\n {loading ? (\n <div className=\"h-7 w-14 animate-pulse rounded bg-base-content/10\" />\n ) : (\n <p className=\"text-2xl font-bold leading-none text-base-content\">{value}</p>\n )}\n {hint && <p className=\"mt-1.5 text-[11px] text-base-content/50\">{hint}</p>}\n </Card>\n );\n};\n\nexport default StatCard;\n"],"mappings":";;;AAmBA,IAAM,IAAuF;AAAA,EACzF,SAAS;AAAA,IAAE,MAAM;AAAA,IAAgB,IAAI;AAAA,EAAgB;AAAA,EACrD,SAAS;AAAA,IAAE,MAAM;AAAA,IAAgB,IAAI;AAAA,EAAgB;AAAA,EACrD,SAAS;AAAA,IAAE,MAAM;AAAA,IAAgB,IAAI;AAAA,EAAgB;AAAA,EACrD,MAAM;AAAA,IAAE,MAAM;AAAA,IAAa,IAAI;AAAA,EAAa;AAAA,EAC5C,OAAO;AAAA,IAAE,MAAM;AAAA,IAAc,IAAI;AAAA,EAAc;AAAA,EAC/C,SAAS;AAAA,IAAE,MAAM;AAAA,IAAwB,IAAI;AAAA,EAAoB;AACrE,GAMM,IAAA,CAAY,EACd,OAAA,GACA,OAAA,GACA,MAAA,GACA,MAAA,IAAO,WACP,MAAA,GACA,SAAA,IAAU,IACV,WAAA,IAAY,GAAA,MACK;AACjB,QAAM,IAAI,EAAW,CAAA;AAErB,SACI,gBAAA,EAAC,GAAD;AAAA,IAAM,UAAA;AAAA,IAAS,OAAO;AAAA,IAAO,OAAA;AAAA,IAAM,WAAW,mBAAmB,CAAA,GAAY,KAAK;AAAA,cAAlF;AAAA,MACI,gBAAA,EAAC,OAAD;AAAA,QAAK,WAAU;AAAA,kBAAf,CACI,gBAAA,EAAC,QAAD;AAAA,UAAM,WAAU;AAAA,oBAAqD;AAAA,QAAY,CAAA,GAChF,KACG,gBAAA,EAAC,QAAD;AAAA,UAAM,WAAW,oBAAoB,EAAE,EAAA,4BAA8B,EAAE,IAAA,GAAO,KAAK;AAAA,oBAC9E;AAAA,QACC,CAAA,CAET;AAAA;MACJ,IACG,gBAAA,EAAC,OAAD,EAAK,WAAU,oDAAqD,CAAA,IAEpE,gBAAA,EAAC,KAAD;AAAA,QAAG,WAAU;AAAA,kBAAqD;AAAA,MAAS,CAAA;AAAA,MAE9E,KAAQ,gBAAA,EAAC,KAAD;AAAA,QAAG,WAAU;AAAA,kBAA2C;AAAA,MAAQ,CAAA;AAAA,IACvE;AAAA;AAEd"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/StatCard/index.tsx"],"sourcesContent":["import React from 'react';\nimport Card from '../Card';\nimport { cn } from '../../utils/cn';\n\nexport type StatCardProps = {\n /** 指标名称 */\n label: React.ReactNode;\n /** 指标值(数字或短文本) */\n value: React.ReactNode;\n /** 右上角图标 */\n icon?: React.ReactNode;\n /** 图标位置:`top`(默认,图标在右上角)/ `left`(图标在左,文字居右) */\n iconPosition?: 'top' | 'left';\n /** 色调(影响图标底色与文字色) */\n tone?: 'primary' | 'success' | 'warning' | 'info' | 'error' | 'neutral';\n /** 值下方的小字说明 */\n hint?: React.ReactNode;\n /** 加载态:值显示为骨架 */\n loading?: boolean;\n className?: string;\n\n // ─── Grafana 风格统计面板(panel 模式)────────────────────────\n /**\n * 启用统计面板样式:标签在上、超大数值居中、可选迷你图与角标三角,\n * 对应 Grafana 的 stat panel 外观。\n */\n panel?: boolean;\n /** 数值单位后缀(如 `K`、`%`),以小号字体渲染在数值右侧。 */\n unit?: React.ReactNode;\n /** 面板数值字号(panel 模式),默认 `xl`。 */\n valueSize?: 'md' | 'lg' | 'xl' | '2xl';\n /** 面板内容对齐(panel 模式),默认 `left`。 */\n align?: 'left' | 'center';\n /** 直接传入迷你图节点(优先于 sparklineData)。 */\n sparkline?: React.ReactNode;\n /** 迷你图数据:传入数值数组后自动渲染 sparkline。 */\n sparklineData?: number[];\n /** 迷你图类型:折线 / 面积 / 柱状。 */\n sparklineType?: 'line' | 'area' | 'bar';\n /** 迷你图高度(px)。 */\n sparklineHeight?: number;\n /** 右上角状态三角(Grafana 阈值指示)。 */\n indicator?: boolean;\n /** 整卡填充 tone 底色、文字用对应 content 色(图 RabbitMQ 风格)。 */\n filled?: boolean;\n /** 点击回调(面板常用于跳转详情)。 */\n onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;\n};\n\nconst TONE_CLASS: Record<NonNullable<StatCardProps['tone']>, { text: string; bg: string }> = {\n primary: { text: 'text-primary', bg: 'bg-primary/10' },\n success: { text: 'text-success', bg: 'bg-success/10' },\n warning: { text: 'text-warning', bg: 'bg-warning/10' },\n info: { text: 'text-info', bg: 'bg-info/10' },\n error: { text: 'text-error', bg: 'bg-error/10' },\n neutral: { text: 'text-base-content/70', bg: 'bg-base-content/5' },\n};\n\n/** panel 填充模式:整卡 tone 底色 + 对应 content 文字色 */\nconst FILLED_CLASS: Record<NonNullable<StatCardProps['tone']>, string> = {\n primary: 'bg-primary text-primary-content',\n success: 'bg-success text-success-content',\n warning: 'bg-warning text-warning-content',\n info: 'bg-info text-info-content',\n error: 'bg-error text-error-content',\n neutral: 'bg-neutral text-neutral-content',\n};\n\nconst VALUE_SIZE_CLASS: Record<NonNullable<StatCardProps['valueSize']> & string, string> = {\n md: 'text-2xl',\n lg: 'text-4xl',\n xl: 'text-5xl',\n '2xl': 'text-6xl',\n};\n\nconst cssVarColor = (tone: NonNullable<StatCardProps['tone']>) =>\n tone === 'neutral' ? 'var(--color-base-content)' : `var(--color-${tone})`;\n\n/** 由数值数组生成迷你图(viewBox 拉伸铺满,描边不随宽度变形) */\nconst MiniSparkline: React.FC<{\n data: number[];\n type: 'line' | 'area' | 'bar';\n height: number;\n}> = ({ data, type, height }) => {\n if (!data || data.length < 2) return null;\n const w = 100;\n const pad = 3;\n const min = Math.min(...data);\n const max = Math.max(...data);\n const range = max - min || 1;\n const px = (i: number) => (i / (data.length - 1)) * w;\n const py = (v: number) => height - pad - ((v - min) / range) * (height - pad * 2);\n const points = data.map((v, i) => `${px(i).toFixed(2)},${py(v).toFixed(2)}`);\n\n if (type === 'bar') {\n const bw = w / data.length;\n return (\n <svg\n viewBox={`0 0 ${w} ${height}`}\n preserveAspectRatio=\"none\"\n className=\"block w-full\"\n style={{ height }}\n aria-hidden=\"true\"\n >\n {data.map((v, i) => (\n <rect\n key={i}\n x={px(i) - bw / 2}\n y={py(v)}\n width={bw * 0.8}\n height={Math.max(1, height - pad - py(v))}\n fill=\"currentColor\"\n />\n ))}\n </svg>\n );\n }\n\n if (type === 'area') {\n return (\n <svg\n viewBox={`0 0 ${w} ${height}`}\n preserveAspectRatio=\"none\"\n className=\"block w-full\"\n style={{ height }}\n aria-hidden=\"true\"\n >\n <path\n d={`M0,${height} L${points.join(' L')} L${w},${height} Z`}\n fill=\"currentColor\"\n opacity={0.18}\n />\n <polyline\n points={points.join(' ')}\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.5}\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\n );\n }\n\n return (\n <svg\n viewBox={`0 0 ${w} ${height}`}\n preserveAspectRatio=\"none\"\n className=\"block w-full\"\n style={{ height }}\n aria-hidden=\"true\"\n >\n <polyline\n points={points.join(' ')}\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={1.5}\n vectorEffect=\"non-scaling-stroke\"\n />\n </svg>\n );\n};\n\n/**\n * 统计卡片:仪表盘等场景的「标签 + 数值 + 图标」小卡。\n * 内部基于 Card 组件,默认紧凑内边距与小号字体。\n *\n * 传入 `panel` 后切换为 Grafana 风格统计面板:\n * 大号数值、单位后缀、迷你折线/面积/柱状图、角标三角与整卡填充色。\n */\nconst StatCard = ({\n label,\n value,\n icon,\n iconPosition = 'top',\n tone = 'primary',\n hint,\n loading = false,\n className = '',\n panel = false,\n unit,\n valueSize = 'xl',\n align = 'left',\n sparkline,\n sparklineData,\n sparklineType = 'line',\n sparklineHeight = 36,\n indicator = false,\n filled = false,\n onClick,\n}: StatCardProps) => {\n const t = TONE_CLASS[tone];\n\n // ─── Grafana 风格统计面板 ───\n if (panel) {\n const sparklineNode =\n sparkline ??\n (sparklineData && sparklineData.length >= 2 ? (\n <MiniSparkline data={sparklineData} type={sparklineType} height={sparklineHeight} />\n ) : null);\n\n const textColor = filled ? '' : t.text;\n const mutedText = filled ? 'opacity-80' : 'text-base-content/60';\n\n return (\n <div\n onClick={onClick}\n className={cn(\n 'relative flex flex-col overflow-hidden rounded-lg p-3',\n filled ? FILLED_CLASS[tone] : 'border border-base-300/60 bg-base-200',\n onClick && 'cursor-pointer transition-colors hover:border-primary/40',\n className,\n )}\n >\n {indicator && !filled && (\n <span\n aria-hidden=\"true\"\n className=\"absolute right-0 top-0 h-0 w-0\"\n style={{\n borderTop: '14px solid ' + cssVarColor(tone),\n borderLeft: '14px solid transparent',\n }}\n />\n )}\n <div\n className={cn(\n 'truncate text-xs font-medium',\n mutedText,\n align === 'center' && 'text-center',\n )}\n >\n {label}\n </div>\n <div\n className={cn(\n 'flex min-h-[3rem] flex-1 items-center py-1',\n align === 'center' ? 'justify-center' : 'justify-start',\n )}\n >\n {loading ? (\n <span\n className={cn(\n 'inline-block h-8 w-16 animate-pulse rounded',\n filled ? 'bg-white/25' : 'bg-base-content/10',\n )}\n />\n ) : (\n <span\n className={cn(\n 'leading-none tracking-tight',\n VALUE_SIZE_CLASS[valueSize],\n 'font-semibold',\n filled ? '' : textColor,\n )}\n >\n {value}\n {unit !== undefined && unit !== null && unit !== '' && (\n <span className=\"ml-0.5 text-[0.45em] font-semibold\">{unit}</span>\n )}\n </span>\n )}\n </div>\n {sparklineNode && (\n <div className={cn('-mx-3 -mb-3 mt-1', filled ? 'text-white' : t.text)}>\n {sparklineNode}\n </div>\n )}\n </div>\n );\n }\n\n // 图标在左、文字居右的水平布局\n if (iconPosition === 'left') {\n return (\n <Card bordered glass={false} hover className={`bg-base-200 p-4 ${className}`.trim()}>\n <div className=\"flex items-center gap-3\">\n {icon && (\n <span className={`flex shrink-0 items-center justify-center rounded-lg p-2.5 ${t.bg} [&>svg]:h-5 [&>svg]:w-5 ${t.text}`.trim()}>\n {icon}\n </span>\n )}\n <div className=\"min-w-0 flex-1\">\n <span className=\"block truncate text-xs font-medium text-base-content/60\">{label}</span>\n {loading ? (\n <div className=\"mt-1 h-6 w-14 animate-pulse rounded bg-base-content/10\" />\n ) : (\n <p className=\"truncate text-xl font-bold leading-tight text-base-content\">{value}</p>\n )}\n {hint && <p className=\"mt-0.5 truncate text-[11px] text-base-content/50\">{hint}</p>}\n </div>\n </div>\n </Card>\n );\n }\n\n return (\n <Card bordered glass={false} hover className={`bg-base-200 p-4 ${className}`.trim()}>\n <div className=\"mb-2 flex items-center justify-between gap-2\">\n <span className=\"truncate text-xs font-medium text-base-content/60\">{label}</span>\n {icon && (\n <span className={`rounded-md p-1.5 ${t.bg} [&>svg]:h-4 [&>svg]:w-4 ${t.text}`.trim()}>\n {icon}\n </span>\n )}\n </div>\n {loading ? (\n <div className=\"h-7 w-14 animate-pulse rounded bg-base-content/10\" />\n ) : (\n <p className=\"text-2xl font-bold leading-none text-base-content\">{value}</p>\n )}\n {hint && <p className=\"mt-1.5 text-[11px] text-base-content/50\">{hint}</p>}\n </Card>\n );\n};\n\nexport default StatCard;\n"],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import React from 'react';
2
+ export type SwitchProps = {
3
+ /** Controlled checked state. */
4
+ checked?: boolean;
5
+ /** Uncontrolled initial checked state. */
6
+ defaultChecked?: boolean;
7
+ /** Change handler; receives the new checked value. */
8
+ onChange?: (checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;
9
+ /** Optional label rendered next to the switch. */
10
+ label?: React.ReactNode;
11
+ /** Label position relative to the switch. */
12
+ labelPosition?: 'right' | 'left';
13
+ /** Color variant (daisyUI). */
14
+ variant?: 'default' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error';
15
+ /** Size. */
16
+ size?: 'xs' | 'sm' | 'md' | 'lg';
17
+ /** Disabled state. */
18
+ disabled?: boolean;
19
+ /** Native name attribute (useful in forms). */
20
+ name?: string;
21
+ /** Native value attribute. */
22
+ value?: string;
23
+ /** Extra class names applied to the wrapping label element. */
24
+ className?: string;
25
+ /** Inline styles applied to the wrapping label element. */
26
+ style?: React.CSSProperties;
27
+ /** id forwarded to the input. */
28
+ id?: string;
29
+ };
30
+ /**
31
+ * Switch —— 开关控件。基于 daisyUI `toggle`,支持受控/非受控、色调变体与尺寸。
32
+ */
33
+ declare const Switch: React.FC<SwitchProps>;
34
+ export default Switch;
@@ -0,0 +1,55 @@
1
+ import { cn as e } from "../../utils/cn.js";
2
+ import { useCallback as t } from "react";
3
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
+ //#region src/components/Switch/index.tsx
5
+ var i = {
6
+ default: "",
7
+ primary: "toggle-primary",
8
+ secondary: "toggle-secondary",
9
+ accent: "toggle-accent",
10
+ info: "toggle-info",
11
+ success: "toggle-success",
12
+ warning: "toggle-warning",
13
+ error: "toggle-error"
14
+ }, a = {
15
+ xs: "toggle-xs",
16
+ sm: "toggle-sm",
17
+ md: "toggle-md",
18
+ lg: "toggle-lg"
19
+ }, o = ({ checked: o, defaultChecked: s, onChange: c, label: l, labelPosition: u = "right", variant: d = "default", size: f = "sm", disabled: p = !1, name: m, value: h, className: g = "", style: _, id: v }) => {
20
+ let y = t((e) => {
21
+ c?.(e.target.checked, e);
22
+ }, [c]), b = e("toggle", i[d], a[f], g && !l ? g : ""), x = /* @__PURE__ */ n("input", {
23
+ id: v,
24
+ type: "checkbox",
25
+ role: "switch",
26
+ className: b,
27
+ checked: o,
28
+ defaultChecked: s,
29
+ onChange: y,
30
+ disabled: p,
31
+ name: m,
32
+ value: h
33
+ });
34
+ if (l == null || l === "") return x;
35
+ let S = e("label cursor-pointer inline-flex items-center gap-2 w-fit", p && "opacity-50 cursor-not-allowed", g);
36
+ return /* @__PURE__ */ r("label", {
37
+ className: S,
38
+ style: _,
39
+ children: [
40
+ u === "left" && /* @__PURE__ */ n("span", {
41
+ className: "label-text",
42
+ children: l
43
+ }),
44
+ x,
45
+ u === "right" && /* @__PURE__ */ n("span", {
46
+ className: "label-text",
47
+ children: l
48
+ })
49
+ ]
50
+ });
51
+ };
52
+ //#endregion
53
+ export { o as default };
54
+
55
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/Switch/index.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport { cn } from '../../utils/cn';\n\nexport type SwitchProps = {\n /** Controlled checked state. */\n checked?: boolean;\n /** Uncontrolled initial checked state. */\n defaultChecked?: boolean;\n /** Change handler; receives the new checked value. */\n onChange?: (checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;\n /** Optional label rendered next to the switch. */\n label?: React.ReactNode;\n /** Label position relative to the switch. */\n labelPosition?: 'right' | 'left';\n /** Color variant (daisyUI). */\n variant?: 'default' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error';\n /** Size. */\n size?: 'xs' | 'sm' | 'md' | 'lg';\n /** Disabled state. */\n disabled?: boolean;\n /** Native name attribute (useful in forms). */\n name?: string;\n /** Native value attribute. */\n value?: string;\n /** Extra class names applied to the wrapping label element. */\n className?: string;\n /** Inline styles applied to the wrapping label element. */\n style?: React.CSSProperties;\n /** id forwarded to the input. */\n id?: string;\n};\n\nconst VARIANT_CLASS: Record<NonNullable<SwitchProps['variant']>, string> = {\n default: '',\n primary: 'toggle-primary',\n secondary: 'toggle-secondary',\n accent: 'toggle-accent',\n info: 'toggle-info',\n success: 'toggle-success',\n warning: 'toggle-warning',\n error: 'toggle-error',\n};\n\nconst SIZE_CLASS: Record<NonNullable<SwitchProps['size']>, string> = {\n xs: 'toggle-xs',\n sm: 'toggle-sm',\n md: 'toggle-md',\n lg: 'toggle-lg',\n};\n\n/**\n * Switch —— 开关控件。基于 daisyUI `toggle`,支持受控/非受控、色调变体与尺寸。\n */\nconst Switch: React.FC<SwitchProps> = ({\n checked,\n defaultChecked,\n onChange,\n label,\n labelPosition = 'right',\n variant = 'default',\n size = 'sm',\n disabled = false,\n name,\n value,\n className = '',\n style,\n id,\n}) => {\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(e.target.checked, e);\n },\n [onChange],\n );\n\n const inputClasses = cn(\n 'toggle',\n VARIANT_CLASS[variant],\n SIZE_CLASS[size],\n className && !label ? className : '',\n );\n\n const input = (\n <input\n id={id}\n type=\"checkbox\"\n role=\"switch\"\n className={inputClasses}\n checked={checked}\n defaultChecked={defaultChecked}\n onChange={handleChange}\n disabled={disabled}\n name={name}\n value={value}\n />\n );\n\n if (label === undefined || label === null || label === '') {\n return input;\n }\n\n const labelClasses = cn(\n 'label cursor-pointer inline-flex items-center gap-2 w-fit',\n disabled && 'opacity-50 cursor-not-allowed',\n className,\n );\n\n return (\n <label className={labelClasses} style={style}>\n {labelPosition === 'left' && <span className=\"label-text\">{label}</span>}\n {input}\n {labelPosition === 'right' && <span className=\"label-text\">{label}</span>}\n </label>\n );\n};\n\nexport default Switch;\n"],"mappings":";;;;AAgCA,IAAM,IAAqE;CACzE,SAAS;CACT,SAAS;CACT,WAAW;CACX,QAAQ;CACR,MAAM;CACN,SAAS;CACT,SAAS;CACT,OAAO;AACT,GAEM,IAA+D;CACnE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN,GAKM,KAAiC,EACrC,YACA,mBACA,aACA,UACA,mBAAgB,SAChB,aAAU,WACV,UAAO,MACP,cAAW,IACX,SACA,UACA,eAAY,IACZ,UACA,YACI;CACJ,IAAM,IAAe,GAClB,MAA2C;EAC1C,IAAW,EAAE,OAAO,SAAS,CAAC;CAChC,GACA,CAAC,CAAQ,CACX,GAEM,IAAe,EACnB,UACA,EAAc,IACd,EAAW,IACX,KAAa,CAAC,IAAQ,IAAY,EACpC,GAEM,IACJ,kBAAC,SAAD;EACM;EACJ,MAAK;EACL,MAAK;EACL,WAAW;EACF;EACO;EAChB,UAAU;EACA;EACJ;EACC;CACR,CAAA;CAGH,IAAI,KAAiC,QAAQ,MAAU,IACrD,OAAO;CAGT,IAAM,IAAe,EACnB,6DACA,KAAY,iCACZ,CACF;CAEA,OACE,kBAAC,SAAD;EAAO,WAAW;EAAqB;EAAvC,UAAA;GACG,MAAkB,UAAU,kBAAC,QAAD;IAAM,WAAU;IAAc,UAAA;GAAY,CAAA;GACtE;GACA,MAAkB,WAAW,kBAAC,QAAD;IAAM,WAAU;IAAc,UAAA;GAAY,CAAA;EACnE;;AAEX"}
@@ -0,0 +1,40 @@
1
+ import React from 'react';
2
+ export type TabPaneProps = {
3
+ /** Stable id for the pane (used with controlled / default value) */
4
+ id: string;
5
+ label: React.ReactNode;
6
+ children: React.ReactNode;
7
+ disabled?: boolean;
8
+ /** className on the tab button */
9
+ tabClassName?: string;
10
+ /** className on the active panel */
11
+ className?: string;
12
+ };
13
+ declare const TabPane: React.FC<TabPaneProps>;
14
+ export type TabShape = 'square' | 'rounded' | 'pill' | 'trapezoid' | 'angled';
15
+ export type TabProps = {
16
+ children: React.ReactNode;
17
+ defaultValue?: string;
18
+ value?: string;
19
+ onValueChange?: (id: string) => void;
20
+ variant?: 'line' | 'boxed' | 'lifted' | 'bordered';
21
+ /** Shape of the selected-tab background.
22
+ * - square: 0 radius (default for boxed/bordered)
23
+ * - rounded: small radius
24
+ * - pill: full radius capsule
25
+ * - trapezoid: bottom-wider CSS clip-path trapezoid
26
+ * - angled: slanted right edge
27
+ */
28
+ shape?: TabShape;
29
+ size?: 'sm' | 'md' | 'lg';
30
+ className?: string;
31
+ tabListClassName?: string;
32
+ panelClassName?: string;
33
+ fullWidth?: boolean;
34
+ };
35
+ export type TabComponent = React.FC<TabProps> & {
36
+ Pane: typeof TabPane;
37
+ };
38
+ declare const Tab: TabComponent;
39
+ export { Tab };
40
+ export default Tab;