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,47 +1,181 @@
1
+ import { cn as e } from "../../utils/cn.js";
1
2
  import "react";
2
- import { jsx as r } from "react/jsx-runtime";
3
- var x = ({ children: s, variant: a, bordered: e = !1, dash: d = !1, side: n = !1, imageFull: c = !1, compact: i = !1, hover: u = !0, glass: f = !0, size: l = "sm", className: t = "" }) => {
4
- const m = "card", C = f && !a ? "glass shadow-lg" : "", h = a ? `bg-${a} text-${a}-content shadow-md` : "", g = e ? "card-bordered" : "", v = d ? "card-dash" : "", w = n ? "card-side" : "", B = c ? "image-full" : "", j = i ? "card-compact" : "", p = u ? "hover:shadow-xl transition-shadow duration-300" : "", b = l ? `card-${l}` : "";
5
- return t.includes("w-") || t.match(/max-w-|min-w-/), /* @__PURE__ */ r("div", {
6
- className: [
7
- m,
8
- "",
9
- C,
10
- h,
11
- g,
12
- v,
13
- w,
14
- B,
15
- j,
16
- p,
17
- b,
18
- t
19
- ].filter(Boolean).join(" "),
20
- children: s
21
- });
22
- }, y = ({ children: s, className: a = "" }) => /* @__PURE__ */ r("h2", {
23
- className: ["card-title", a].filter(Boolean).join(" "),
24
- children: s
25
- }), $ = ({ children: s, className: a = "" }) => /* @__PURE__ */ r("div", {
26
- className: ["card-body", a].filter(Boolean).join(" "),
27
- children: s
28
- }), F = ({ children: s, className: a = "", justify: e = "end" }) => /* @__PURE__ */ r("div", {
29
- className: [
30
- "card-actions",
31
- e ? `justify-${e}` : "",
32
- a
33
- ].filter(Boolean).join(" "),
34
- children: s
35
- }), N = ({ children: s, className: a = "" }) => /* @__PURE__ */ r("figure", {
36
- className: ["figure", a].filter(Boolean).join(" "),
37
- children: s
38
- }), o = x;
39
- o.Title = y;
40
- o.Body = $;
41
- o.Actions = F;
42
- o.Figure = N;
43
- export {
44
- o as default
45
- };
3
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
4
+ //#region src/components/Card/index.tsx
5
+ var r = ({ children: n, variant: r, bordered: i = !1, dash: a = !1, side: o = !1, imageFull: s = !1, compact: c = !1, hover: l = !0, glass: u = !0, size: d = "sm", className: f = "" }) => {
6
+ let p = u && !r ? "glass shadow-lg" : "", m = r ? `bg-${r} text-${r}-content shadow-md` : "", h = i ? "card-bordered" : "", g = a ? "card-dash" : "", _ = o ? "card-side" : "", v = s ? "image-full" : "", y = c ? "card-compact" : "", b = l ? "hover:shadow-xl transition-shadow duration-300" : "", x = d ? `card-${d}` : "";
7
+ f.includes("w-") || f.match(/max-w-|min-w-/);
8
+ let S = e("card", "", p, m, h, g, _, v, y, b, x, f);
9
+ return /* @__PURE__ */ t("div", {
10
+ className: S,
11
+ children: n
12
+ });
13
+ }, i = ({ children: n, className: r = "" }) => {
14
+ let i = e("card-title", r);
15
+ return /* @__PURE__ */ t("h2", {
16
+ className: i,
17
+ children: n
18
+ });
19
+ }, a = ({ children: n, className: r = "" }) => {
20
+ let i = e("card-body", r);
21
+ return /* @__PURE__ */ t("div", {
22
+ className: i,
23
+ children: n
24
+ });
25
+ }, o = ({ children: n, className: r = "", justify: i = "end" }) => {
26
+ let a = e("card-actions", i && `justify-${i}`, r);
27
+ return /* @__PURE__ */ t("div", {
28
+ className: a,
29
+ children: n
30
+ });
31
+ }, s = {
32
+ cover: "[&>img]:object-cover",
33
+ contain: "[&>img]:object-contain",
34
+ fill: "[&>img]:object-fill"
35
+ }, c = (e) => typeof e == "number" ? `${e}px` : e, l = ({ children: n, className: r = "", fit: i = "cover", fill: a = !1, height: o }) => {
36
+ let l = e("figure", s[i], a && "w-full h-full [&>img]:h-full [&>img]:w-full", o !== void 0 && "w-full [&>img]:h-full [&>img]:w-full", r);
37
+ return /* @__PURE__ */ t("figure", {
38
+ className: l,
39
+ style: o === void 0 ? void 0 : { height: c(o) },
40
+ children: n
41
+ });
42
+ }, u = ({ variant: t, bordered: n = !1, glass: r = !0, className: i = "" }) => {
43
+ let a = r && !t ? "glass shadow-lg" : "", o = t ? `bg-${t} text-${t}-content shadow-md` : "";
44
+ return e("card", a, o, n && "card-bordered", i);
45
+ }, d = ({ className: r }) => /* @__PURE__ */ n("svg", {
46
+ xmlns: "http://www.w3.org/2000/svg",
47
+ className: e("h-4 w-4", r),
48
+ fill: "none",
49
+ viewBox: "0 0 24 24",
50
+ stroke: "currentColor",
51
+ strokeWidth: 2,
52
+ children: [/* @__PURE__ */ t("circle", {
53
+ cx: "12",
54
+ cy: "12",
55
+ r: "9"
56
+ }), /* @__PURE__ */ t("path", {
57
+ strokeLinecap: "round",
58
+ d: "M12 7v5l3 2"
59
+ })]
60
+ }), f = ({ icon: r, title: i, description: a, layout: o = "vertical", iconShape: s, children: c, variant: l, bordered: d, glass: f = !0, className: p = "", onClick: m }) => {
61
+ let h = r && /* @__PURE__ */ t("span", {
62
+ className: e("flex shrink-0 items-center justify-center bg-primary/10 text-primary", o === "vertical" ? "size-16" : "size-12", (s ?? (o === "vertical" ? "circle" : "square")) === "circle" ? "rounded-full" : "rounded-xl"),
63
+ children: r
64
+ });
65
+ return /* @__PURE__ */ t("div", {
66
+ className: u({
67
+ variant: l,
68
+ bordered: d,
69
+ glass: f,
70
+ className: p
71
+ }),
72
+ onClick: m,
73
+ children: o === "horizontal" ? /* @__PURE__ */ n("div", {
74
+ className: "card-body flex-row items-center gap-4",
75
+ children: [h, /* @__PURE__ */ n("div", {
76
+ className: "min-w-0 flex-1",
77
+ children: [
78
+ /* @__PURE__ */ t("h3", {
79
+ className: "font-semibold text-base-content",
80
+ children: i
81
+ }),
82
+ a && /* @__PURE__ */ t("p", {
83
+ className: "mt-0.5 text-sm text-base-content/70",
84
+ children: a
85
+ }),
86
+ c
87
+ ]
88
+ })]
89
+ }) : /* @__PURE__ */ n("div", {
90
+ className: "card-body items-center gap-3 text-center",
91
+ children: [
92
+ h,
93
+ /* @__PURE__ */ t("h3", {
94
+ className: "text-lg font-bold text-base-content",
95
+ children: i
96
+ }),
97
+ a && /* @__PURE__ */ t("p", {
98
+ className: "text-sm leading-relaxed text-base-content/70",
99
+ children: a
100
+ }),
101
+ c
102
+ ]
103
+ })
104
+ });
105
+ }, p = ({ children: r, author: i, avatar: a, date: o, quoteMark: s = !0, divider: c = !0, variant: l, bordered: f, glass: p = !0, className: m = "", onClick: h }) => /* @__PURE__ */ n("div", {
106
+ className: e(u({
107
+ variant: l,
108
+ bordered: f,
109
+ glass: p,
110
+ className: m
111
+ }), "relative overflow-hidden"),
112
+ onClick: h,
113
+ children: [s && /* @__PURE__ */ t("span", {
114
+ "aria-hidden": "true",
115
+ className: "pointer-events-none absolute right-5 top-2 select-none font-serif text-6xl leading-none text-primary/25",
116
+ children: "”"
117
+ }), /* @__PURE__ */ n("div", {
118
+ className: "card-body gap-0 p-6",
119
+ children: [/* @__PURE__ */ t("div", {
120
+ className: "relative z-10 text-lg text-base-content",
121
+ children: r
122
+ }), /* @__PURE__ */ n("div", {
123
+ className: e("mt-4 flex items-center justify-between gap-3", c && "border-t border-base-300 pt-3.5"),
124
+ children: [/* @__PURE__ */ n("div", {
125
+ className: "flex min-w-0 items-center gap-2.5",
126
+ children: [a && /* @__PURE__ */ t("span", {
127
+ className: "size-8 shrink-0 overflow-hidden rounded-full",
128
+ children: a
129
+ }), i && /* @__PURE__ */ t("span", {
130
+ className: "truncate text-sm font-medium text-primary",
131
+ children: i
132
+ })]
133
+ }), o && /* @__PURE__ */ n("span", {
134
+ className: "flex shrink-0 items-center gap-1.5 text-sm text-base-content/55",
135
+ children: [/* @__PURE__ */ t(d, {}), o]
136
+ })]
137
+ })]
138
+ })]
139
+ }), m = ({ title: e, badge: r, children: i, footerLeft: a, footerRight: o, variant: s, bordered: c, glass: l = !0, className: d = "", onClick: f }) => /* @__PURE__ */ t("div", {
140
+ className: u({
141
+ variant: s,
142
+ bordered: c,
143
+ glass: l,
144
+ className: d
145
+ }),
146
+ onClick: f,
147
+ children: /* @__PURE__ */ n("div", {
148
+ className: "card-body gap-2.5 p-6",
149
+ children: [
150
+ /* @__PURE__ */ n("div", {
151
+ className: "flex items-center justify-between gap-3",
152
+ children: [/* @__PURE__ */ t("h3", {
153
+ className: "min-w-0 flex-1 truncate text-lg font-bold text-base-content",
154
+ children: e
155
+ }), r && /* @__PURE__ */ t("span", {
156
+ className: "shrink-0",
157
+ children: r
158
+ })]
159
+ }),
160
+ i && /* @__PURE__ */ t("div", {
161
+ className: "text-sm text-base-content/75",
162
+ children: i
163
+ }),
164
+ (a || o) && /* @__PURE__ */ n("div", {
165
+ className: "mt-1.5 flex items-center justify-between gap-3 text-sm text-base-content/55",
166
+ children: [/* @__PURE__ */ t("span", {
167
+ className: "min-w-0 truncate",
168
+ children: a
169
+ }), /* @__PURE__ */ t("span", {
170
+ className: "shrink-0",
171
+ children: o
172
+ })]
173
+ })
174
+ ]
175
+ })
176
+ }), h = r;
177
+ h.Title = i, h.Body = a, h.Actions = o, h.Figure = l, h.Feature = f, h.Quote = p, h.Meta = m;
178
+ //#endregion
179
+ export { h as default };
46
180
 
47
181
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/Card/index.tsx"],"sourcesContent":["import React from 'react';\n\nexport type CardProps = {\n children: React.ReactNode;\n variant?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error';\n bordered?: boolean;\n dash?: boolean;\n side?: boolean;\n imageFull?: boolean;\n compact?: boolean;\n hover?: boolean;\n glass?: boolean; // 毛玻璃效果\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n className?: string;\n};\n\nconst Card = ({\n children,\n variant,\n bordered = false,\n dash = false,\n side = false,\n imageFull = false,\n compact = false,\n hover = true, // 默认启用 hover 效果\n glass = true, // 默认启用毛玻璃效果\n size = 'sm',\n className = '',\n}: CardProps) => {\n const baseClass = 'card';\n\n // 默认样式:如果没有指定 variant,则应用毛玻璃效果和阴影\n // 同时添加边界样式 (border + shadow)\n const defaultStyles = glass && !variant ? 'glass shadow-lg' : '';\n\n // 如果指定了 variant,使用该 variant 的背景色,并添加阴影\n const variantClass = variant ? `bg-${variant} text-${variant}-content shadow-md` : '';\n\n const borderedClass = bordered ? 'card-bordered' : '';\n const dashClass = dash ? 'card-dash' : '';\n const sideClass = side ? 'card-side' : '';\n const imageFullClass = imageFull ? 'image-full' : '';\n const compactClass = compact ? 'card-compact' : '';\n const hoverClass = hover ? 'hover:shadow-xl transition-shadow duration-300' : '';\n const sizeClass = size ? `card-${size}` : '';\n\n // 宽度策略:\n // 1. 如果用户指定了 w-/max-w-/min-w-,则完全使用用户的设置\n // 2. 否则不设置固定宽度,让 Card 自然适应父容器(Grid 中自动填充,Flex 中根据内容)\n const hasWidthClass = className.includes('w-') || className.match(/max-w-|min-w-/);\n const widthClass = ''; // 不设置默认宽度,让布局决定\n\n const cardClasses = [\n baseClass,\n widthClass,\n defaultStyles,\n variantClass,\n borderedClass,\n dashClass,\n sideClass,\n imageFullClass,\n compactClass,\n hoverClass,\n sizeClass,\n className\n ].filter(Boolean).join(' ');\n\n return (\n <div className={cardClasses}>\n {children}\n </div>\n );\n};\n\n// Card.Title 组件\nexport type CardTitleProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nconst CardTitle = ({\n children,\n className = '',\n}: CardTitleProps) => {\n const titleClasses = [\n 'card-title',\n className\n ].filter(Boolean).join(' ');\n\n return (\n <h2 className={titleClasses}>\n {children}\n </h2>\n );\n};\n\n// Card.Body 组件\nexport type CardBodyProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nconst CardBody = ({\n children,\n className = '',\n}: CardBodyProps) => {\n const bodyClasses = [\n 'card-body',\n className\n ].filter(Boolean).join(' ');\n\n return (\n <div className={bodyClasses}>\n {children}\n </div>\n );\n};\n\n// Card.Actions 组件\nexport type CardActionsProps = {\n children: React.ReactNode;\n className?: string;\n justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';\n};\n\nconst CardActions = ({\n children,\n className = '',\n justify = 'end',\n}: CardActionsProps) => {\n const actionsClasses = [\n 'card-actions',\n justify ? `justify-${justify}` : '',\n className\n ].filter(Boolean).join(' ');\n\n return (\n <div className={actionsClasses}>\n {children}\n </div>\n );\n};\n\n// Card.Figure 组件\nexport type CardFigureProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nconst CardFigure = ({\n children,\n className = '',\n}: CardFigureProps) => {\n const figureClasses = [\n 'figure',\n className\n ].filter(Boolean).join(' ');\n\n return (\n <figure className={figureClasses}>\n {children}\n </figure>\n );\n};\n\n// 扩展Card组件,添加子组件\ninterface CardCompound extends React.FC<CardProps> {\n Title: React.FC<CardTitleProps>;\n Body: React.FC<CardBodyProps>;\n Actions: React.FC<CardActionsProps>;\n Figure: React.FC<CardFigureProps>;\n}\n\nconst CardWithCompounds = Card as CardCompound;\nCardWithCompounds.Title = CardTitle;\nCardWithCompounds.Body = CardBody;\nCardWithCompounds.Actions = CardActions;\nCardWithCompounds.Figure = CardFigure;\n\nexport default CardWithCompounds; "],"mappings":";;AAgBA,IAAM,IAAA,CAAQ,EACZ,UAAA,GACA,SAAA,GACA,UAAA,IAAW,IACX,MAAA,IAAO,IACP,MAAA,IAAO,IACP,WAAA,IAAY,IACZ,SAAA,IAAU,IACV,OAAA,IAAQ,IACR,OAAA,IAAQ,IACR,MAAA,IAAO,MACP,WAAA,IAAY,GAAA,MACG;AACf,QAAM,IAAY,QAIZ,IAAgB,KAAS,CAAC,IAAU,oBAAoB,IAGxD,IAAe,IAAU,MAAM,CAAA,SAAgB,CAAA,uBAA8B,IAE7E,IAAgB,IAAW,kBAAkB,IAC7C,IAAY,IAAO,cAAc,IACjC,IAAY,IAAO,cAAc,IACjC,IAAiB,IAAY,eAAe,IAC5C,IAAe,IAAU,iBAAiB,IAC1C,IAAa,IAAQ,mDAAmD,IACxE,IAAY,IAAO,QAAQ,CAAA,KAAS;AAKpB,SAAA,EAAU,SAAS,IAAI,KAAK,EAAU,MAAM,eAAe,GAmB/E,gBAAA,EAAC,OAAD;AAAA,IAAK,WAhBa;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,EAAE,OAAO,OAAO,EAAE,KAAK,GAGL;AAAA,IACb,UAAA;AAAA,EACE,CAAA;AAET,GAQM,IAAA,CAAa,EACjB,UAAA,GACA,WAAA,IAAY,GAAA,MAQV,gBAAA,EAAC,MAAD;AAAA,EAAI,WANe,CACnB,cACA,CACF,EAAE,OAAO,OAAO,EAAE,KAAK,GAGN;AAAA,EACZ,UAAA;AACC,CAAA,GAUF,IAAA,CAAY,EAChB,UAAA,GACA,WAAA,IAAY,GAAA,MAQV,gBAAA,EAAC,OAAD;AAAA,EAAK,WANa,CAClB,aACA,CACF,EAAE,OAAO,OAAO,EAAE,KAAK,GAGL;AAAA,EACb,UAAA;AACE,CAAA,GAWH,IAAA,CAAe,EACnB,UAAA,GACA,WAAA,IAAY,IACZ,SAAA,IAAU,MAAA,MASR,gBAAA,EAAC,OAAD;AAAA,EAAK,WAPgB;AAAA,IACrB;AAAA,IACA,IAAU,WAAW,CAAA,KAAY;AAAA,IACjC;AAAA,EACF,EAAE,OAAO,OAAO,EAAE,KAAK,GAGL;AAAA,EACb,UAAA;AACE,CAAA,GAUH,IAAA,CAAc,EAClB,UAAA,GACA,WAAA,IAAY,GAAA,MAQV,gBAAA,EAAC,UAAD;AAAA,EAAQ,WANY,CACpB,UACA,CACF,EAAE,OAAO,OAAO,EAAE,KAAK,GAGF;AAAA,EAChB,UAAA;AACK,CAAA,GAYN,IAAoB;AAC1B,EAAkB,QAAQ;AAC1B,EAAkB,OAAO;AACzB,EAAkB,UAAU;AAC5B,EAAkB,SAAS"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/Card/index.tsx"],"sourcesContent":["import React from 'react';\nimport { cn } from '../../utils/cn';\n\nexport type CardProps = {\n children: React.ReactNode;\n variant?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error';\n bordered?: boolean;\n dash?: boolean;\n side?: boolean;\n imageFull?: boolean;\n compact?: boolean;\n hover?: boolean;\n glass?: boolean; // 毛玻璃效果\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n className?: string;\n};\n\nconst Card = ({\n children,\n variant,\n bordered = false,\n dash = false,\n side = false,\n imageFull = false,\n compact = false,\n hover = true, // 默认启用 hover 效果\n glass = true, // 默认启用毛玻璃效果\n size = 'sm',\n className = '',\n}: CardProps) => {\n const baseClass = 'card';\n\n // 默认样式:如果没有指定 variant,则应用毛玻璃效果和阴影\n // 同时添加边界样式 (border + shadow)\n const defaultStyles = glass && !variant ? 'glass shadow-lg' : '';\n\n // 如果指定了 variant,使用该 variant 的背景色,并添加阴影\n const variantClass = variant ? `bg-${variant} text-${variant}-content shadow-md` : '';\n\n const borderedClass = bordered ? 'card-bordered' : '';\n const dashClass = dash ? 'card-dash' : '';\n const sideClass = side ? 'card-side' : '';\n const imageFullClass = imageFull ? 'image-full' : '';\n const compactClass = compact ? 'card-compact' : '';\n const hoverClass = hover ? 'hover:shadow-xl transition-shadow duration-300' : '';\n const sizeClass = size ? `card-${size}` : '';\n\n // 宽度策略:\n // 1. 如果用户指定了 w-/max-w-/min-w-,则完全使用用户的设置\n // 2. 否则不设置固定宽度,让 Card 自然适应父容器(Grid 中自动填充,Flex 中根据内容)\n const hasWidthClass = className.includes('w-') || className.match(/max-w-|min-w-/);\n const widthClass = ''; // 不设置默认宽度,让布局决定\n\n const cardClasses = cn(\n baseClass,\n widthClass,\n defaultStyles,\n variantClass,\n borderedClass,\n dashClass,\n sideClass,\n imageFullClass,\n compactClass,\n hoverClass,\n sizeClass,\n className\n );\n\n return (\n <div className={cardClasses}>\n {children}\n </div>\n );\n};\n\n// Card.Title 组件\nexport type CardTitleProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nconst CardTitle = ({\n children,\n className = '',\n}: CardTitleProps) => {\n const titleClasses = cn('card-title', className);\n\n return (\n <h2 className={titleClasses}>\n {children}\n </h2>\n );\n};\n\n// Card.Body 组件\nexport type CardBodyProps = {\n children: React.ReactNode;\n className?: string;\n};\n\nconst CardBody = ({\n children,\n className = '',\n}: CardBodyProps) => {\n const bodyClasses = cn('card-body', className);\n\n return (\n <div className={bodyClasses}>\n {children}\n </div>\n );\n};\n\n// Card.Actions 组件\nexport type CardActionsProps = {\n children: React.ReactNode;\n className?: string;\n justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';\n};\n\nconst CardActions = ({\n children,\n className = '',\n justify = 'end',\n}: CardActionsProps) => {\n const actionsClasses = cn(\n 'card-actions',\n justify && `justify-${justify}`,\n className\n );\n\n return (\n <div className={actionsClasses}>\n {children}\n </div>\n );\n};\n\n// Card.Figure 组件\nexport type CardFigureProps = {\n children: React.ReactNode;\n className?: string;\n /**\n * 图片填充方式(作用于内部 <img>):\n * - `cover` 等比裁切填满(默认,“撑满”)\n * - `contain` 等比完整展示,可能留白\n * - `fill` 拉伸填满(不保持比例)\n */\n fit?: 'cover' | 'contain' | 'fill';\n /** 图片撑满整个 figure(w/h 100%)。card-side 时建议开启。 */\n fill?: boolean;\n /** 指定 figure 高度(数字按 px,支持 \"16rem\"/\"50%\" 等);内部图片自动填满该高度 */\n height?: number | string;\n};\n\nconst FIT_CLASS: Record<NonNullable<CardFigureProps['fit']>, string> = {\n cover: '[&>img]:object-cover',\n contain: '[&>img]:object-contain',\n fill: '[&>img]:object-fill',\n};\n\nconst toCssSize = (value: number | string | undefined): string | undefined =>\n typeof value === 'number' ? `${value}px` : value;\n\nconst CardFigure = ({\n children,\n className = '',\n fit = 'cover',\n fill = false,\n height,\n}: CardFigureProps) => {\n const figureClasses = cn(\n 'figure',\n FIT_CLASS[fit],\n // 撑满:figure 与内部 img 都占满可用空间\n fill && 'w-full h-full [&>img]:h-full [&>img]:w-full',\n // 指定高度:figure 定高,内部图片自动填满\n height !== undefined && 'w-full [&>img]:h-full [&>img]:w-full',\n className\n );\n\n return (\n <figure className={figureClasses} style={height !== undefined ? { height: toCssSize(height) } : undefined}>\n {children}\n </figure>\n );\n};\n\n// ─── 内部工具:复用基础 Card 的类名拼装逻辑 ──────────────────\n\ninterface CardClassOptions {\n variant?: CardProps['variant'];\n bordered?: boolean;\n glass?: boolean;\n className?: string;\n}\n\nconst buildCardClasses = ({ variant, bordered = false, glass = true, className = '' }: CardClassOptions) => {\n const defaultStyles = glass && !variant ? 'glass shadow-lg' : '';\n const variantClass = variant ? `bg-${variant} text-${variant}-content shadow-md` : '';\n return cn('card', defaultStyles, variantClass, bordered && 'card-bordered', className);\n};\n\nconst ClockGlyph: React.FC<{ className?: string }> = ({ className }) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" className={cn('h-4 w-4', className)} fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n <circle cx=\"12\" cy=\"12\" r=\"9\" />\n <path strokeLinecap=\"round\" d=\"M12 7v5l3 2\" />\n </svg>\n);\n\n// ─── Card.Feature:特性卡(图标 + 标题 + 描述) ───────────────\n\nexport type CardFeatureProps = {\n /** Icon node (usually a lucide / inline svg), rendered inside a tinted container. */\n icon?: React.ReactNode;\n /** Feature title. */\n title: React.ReactNode;\n /** Feature description rendered under the title. */\n description?: React.ReactNode;\n /** `vertical` centers everything with the icon on top; `horizontal` puts the icon at the left. */\n layout?: 'vertical' | 'horizontal';\n /** Icon container shape. Defaults to `circle` (vertical) / `square` (horizontal). */\n iconShape?: 'circle' | 'square';\n /** Extra content rendered under the description. */\n children?: React.ReactNode;\n /** Color variant (daisyUI). */\n variant?: CardProps['variant'];\n /** Show a border. */\n bordered?: boolean;\n /** Disable the default glass background. */\n glass?: boolean;\n /** Extra class names on the card. */\n className?: string;\n /** Click handler. */\n onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;\n};\n\nconst CardFeature: React.FC<CardFeatureProps> = ({\n icon,\n title,\n description,\n layout = 'vertical',\n iconShape,\n children,\n variant,\n bordered,\n glass = true,\n className = '',\n onClick,\n}) => {\n const shape = iconShape ?? (layout === 'vertical' ? 'circle' : 'square');\n const iconBox = icon && (\n <span\n className={cn(\n 'flex shrink-0 items-center justify-center bg-primary/10 text-primary',\n layout === 'vertical' ? 'size-16' : 'size-12',\n shape === 'circle' ? 'rounded-full' : 'rounded-xl',\n )}\n >\n {icon}\n </span>\n );\n\n return (\n <div\n className={buildCardClasses({ variant, bordered, glass, className })}\n onClick={onClick}\n >\n {layout === 'horizontal' ? (\n <div className=\"card-body flex-row items-center gap-4\">\n {iconBox}\n <div className=\"min-w-0 flex-1\">\n <h3 className=\"font-semibold text-base-content\">{title}</h3>\n {description && (\n <p className=\"mt-0.5 text-sm text-base-content/70\">{description}</p>\n )}\n {children}\n </div>\n </div>\n ) : (\n <div className=\"card-body items-center gap-3 text-center\">\n {iconBox}\n <h3 className=\"text-lg font-bold text-base-content\">{title}</h3>\n {description && (\n <p className=\"text-sm leading-relaxed text-base-content/70\">{description}</p>\n )}\n {children}\n </div>\n )}\n </div>\n );\n};\n\n// ─── Card.Quote:引用卡(引用文本 + 作者 / 日期 + 装饰引号) ──\n\nexport type CardQuoteProps = {\n /** The quoted text. */\n children: React.ReactNode;\n /** Author name (rendered in primary color). */\n author?: React.ReactNode;\n /** Avatar node (e.g. an `<img>` or initial circle) shown before the author. */\n avatar?: React.ReactNode;\n /** Date string/node rendered at the right side of the footer. */\n date?: React.ReactNode;\n /** Hide the decorative quote glyph in the top-right corner. */\n quoteMark?: boolean;\n /** Hide the divider between quote and footer. */\n divider?: boolean;\n /** Color variant (daisyUI). */\n variant?: CardProps['variant'];\n /** Show a border. */\n bordered?: boolean;\n /** Disable the default glass background. */\n glass?: boolean;\n /** Extra class names on the card. */\n className?: string;\n /** Click handler. */\n onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;\n};\n\nconst CardQuote: React.FC<CardQuoteProps> = ({\n children,\n author,\n avatar,\n date,\n quoteMark = true,\n divider = true,\n variant,\n bordered,\n glass = true,\n className = '',\n onClick,\n}) => (\n <div\n className={cn(\n buildCardClasses({ variant, bordered, glass, className }),\n 'relative overflow-hidden',\n )}\n onClick={onClick}\n >\n {quoteMark && (\n <span\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute right-5 top-2 select-none font-serif text-6xl leading-none text-primary/25\"\n >\n ”\n </span>\n )}\n <div className=\"card-body gap-0 p-6\">\n <div className=\"relative z-10 text-lg text-base-content\">{children}</div>\n <div\n className={cn(\n 'mt-4 flex items-center justify-between gap-3',\n divider && 'border-t border-base-300 pt-3.5',\n )}\n >\n <div className=\"flex min-w-0 items-center gap-2.5\">\n {avatar && <span className=\"size-8 shrink-0 overflow-hidden rounded-full\">{avatar}</span>}\n {author && (\n <span className=\"truncate text-sm font-medium text-primary\">{author}</span>\n )}\n </div>\n {date && (\n <span className=\"flex shrink-0 items-center gap-1.5 text-sm text-base-content/55\">\n <ClockGlyph />\n {date}\n </span>\n )}\n </div>\n </div>\n </div>\n);\n\n// ─── Card.Meta:元信息卡(标题 + 徽章 + 描述 + 左右页脚) ────\n\nexport type CardMetaProps = {\n /** Card title (top-left). */\n title: React.ReactNode;\n /** Badge / tag node (top-right, e.g. a visibility badge). */\n badge?: React.ReactNode;\n /** Body content under the title row. */\n children?: React.ReactNode;\n /** Footer left slot (e.g. `@author`). */\n footerLeft?: React.ReactNode;\n /** Footer right slot (e.g. a date). */\n footerRight?: React.ReactNode;\n /** Color variant (daisyUI). */\n variant?: CardProps['variant'];\n /** Show a border. */\n bordered?: boolean;\n /** Disable the default glass background. */\n glass?: boolean;\n /** Extra class names on the card. */\n className?: string;\n /** Click handler. */\n onClick?: (e: React.MouseEvent<HTMLDivElement>) => void;\n};\n\nconst CardMeta: React.FC<CardMetaProps> = ({\n title,\n badge,\n children,\n footerLeft,\n footerRight,\n variant,\n bordered,\n glass = true,\n className = '',\n onClick,\n}) => (\n <div\n className={buildCardClasses({ variant, bordered, glass, className })}\n onClick={onClick}\n >\n <div className=\"card-body gap-2.5 p-6\">\n <div className=\"flex items-center justify-between gap-3\">\n <h3 className=\"min-w-0 flex-1 truncate text-lg font-bold text-base-content\">{title}</h3>\n {badge && <span className=\"shrink-0\">{badge}</span>}\n </div>\n {children && <div className=\"text-sm text-base-content/75\">{children}</div>}\n {(footerLeft || footerRight) && (\n <div className=\"mt-1.5 flex items-center justify-between gap-3 text-sm text-base-content/55\">\n <span className=\"min-w-0 truncate\">{footerLeft}</span>\n <span className=\"shrink-0\">{footerRight}</span>\n </div>\n )}\n </div>\n </div>\n);\n\n// 扩展Card组件,添加子组件\ninterface CardCompound extends React.FC<CardProps> {\n Title: React.FC<CardTitleProps>;\n Body: React.FC<CardBodyProps>;\n Actions: React.FC<CardActionsProps>;\n Figure: React.FC<CardFigureProps>;\n /** 特性卡:图标 + 标题 + 描述(垂直居中 / 横向两种布局) */\n Feature: React.FC<CardFeatureProps>;\n /** 引用卡:引用文本 + 作者头像 / 日期 + 装饰引号 */\n Quote: React.FC<CardQuoteProps>;\n /** 元信息卡:标题 + 徽章 + 描述 + 左右页脚 */\n Meta: React.FC<CardMetaProps>;\n}\n\nconst CardWithCompounds = Card as CardCompound;\nCardWithCompounds.Title = CardTitle;\nCardWithCompounds.Body = CardBody;\nCardWithCompounds.Actions = CardActions;\nCardWithCompounds.Figure = CardFigure;\nCardWithCompounds.Feature = CardFeature;\nCardWithCompounds.Quote = CardQuote;\nCardWithCompounds.Meta = CardMeta;\n\nexport default CardWithCompounds; "],"mappings":"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"}
@@ -1,29 +1,29 @@
1
- import n from "react";
1
+ import e from "react";
2
2
  import { jsx as t } from "react/jsx-runtime";
3
- import { Chart as m } from "@tanstack/react-charts/tooltip";
4
- var v = n.forwardRef(function({ height: e = 360, className: a = "", style: o, empty: l = !1, emptyContent: i = "No chart data", definition: s, ...r }, d) {
5
- const f = typeof e == "number" ? Math.max(1, e - 26) : void 0;
6
- return /* @__PURE__ */ t("div", {
7
- ref: d,
8
- className: `relative w-full overflow-hidden rounded-xl border border-base-300 bg-base-100 p-3 ${a}`,
9
- style: {
10
- height: e,
11
- ...o
12
- },
13
- ...r,
14
- children: l ? /* @__PURE__ */ t("div", {
15
- className: "flex h-full items-center justify-center p-6 text-sm text-base-content/50",
16
- children: i
17
- }) : /* @__PURE__ */ t(m, {
18
- definition: s,
19
- ariaLabel: r["aria-label"] || "Chart",
20
- height: f,
21
- style: typeof e == "string" ? { height: "100%" } : void 0
22
- })
23
- });
3
+ import { Chart as n } from "@tanstack/react-charts/tooltip";
4
+ //#region src/components/Chart/Chart.tsx
5
+ var r = e.forwardRef(function({ height: e = 360, className: r = "", style: i, empty: a = !1, emptyContent: o = "No chart data", definition: s, ...c }, l) {
6
+ let u = typeof e == "number" ? Math.max(1, e - 26) : void 0;
7
+ return /* @__PURE__ */ t("div", {
8
+ ref: l,
9
+ className: `relative w-full overflow-hidden rounded-xl border border-base-300 bg-base-100 p-3 ${r}`,
10
+ style: {
11
+ height: e,
12
+ ...i
13
+ },
14
+ ...c,
15
+ children: a ? /* @__PURE__ */ t("div", {
16
+ className: "flex h-full items-center justify-center p-6 text-sm text-base-content/50",
17
+ children: o
18
+ }) : /* @__PURE__ */ t(n, {
19
+ definition: s,
20
+ ariaLabel: c["aria-label"] || "Chart",
21
+ height: u,
22
+ style: typeof e == "string" ? { height: "100%" } : void 0
23
+ })
24
+ });
24
25
  });
25
- export {
26
- v as default
27
- };
26
+ //#endregion
27
+ export { r as default };
28
28
 
29
29
  //# sourceMappingURL=Chart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.js","names":[],"sources":["../../../src/components/Chart/Chart.tsx"],"sourcesContent":["import React from 'react';\nimport { Chart as TanStackChart } from '@tanstack/react-charts/tooltip';\nimport type { DomChartDefinition } from '@tanstack/charts';\n\nexport interface ChartProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {\n /** TanStack Charts declarative chart definition. */\n definition: DomChartDefinition<any, any, any>;\n\n /** Wrapper height. TanStack Charts fills the available space. */\n height?: number | string;\n /** Additional wrapper class name. */\n className?: string;\n /** Additional wrapper style. */\n style?: React.CSSProperties;\n /** Optional empty state controlled by the caller. */\n empty?: boolean;\n emptyContent?: React.ReactNode;\n}\n\nconst Chart = React.forwardRef<HTMLDivElement, ChartProps>(function Chart({\n height = 360,\n className = '',\n style,\n empty = false,\n emptyContent = 'No chart data',\n definition,\n ...wrapperProps\n}, ref) {\n const numericChartHeight = typeof height === 'number' ? Math.max(1, height - 26) : undefined;\n\n return (\n <div\n ref={ref}\n className={`relative w-full overflow-hidden rounded-xl border border-base-300 bg-base-100 p-3 ${className}`}\n style={{ height, ...style }}\n {...wrapperProps}\n >\n {empty ? (\n <div className=\"flex h-full items-center justify-center p-6 text-sm text-base-content/50\">\n {emptyContent}\n </div>\n ) : (\n <TanStackChart\n definition={definition}\n ariaLabel={wrapperProps['aria-label'] || 'Chart'}\n height={numericChartHeight}\n style={typeof height === 'string' ? { height: '100%' } : undefined}\n />\n )}\n </div>\n );\n});\n\nexport default Chart;\n"],"mappings":";;;AAmBA,IAAM,IAAQ,EAAM,WAAuC,SAAe,EACxE,QAAA,IAAS,KACT,WAAA,IAAY,IACZ,OAAA,GACA,OAAA,IAAQ,IACR,cAAA,IAAe,iBACf,YAAA,GACA,GAAG,EAAA,GACF,GAAK;AACN,QAAM,IAAqB,OAAO,KAAW,WAAW,KAAK,IAAI,GAAG,IAAS,EAAE,IAAI;AAEnF,SACE,gBAAA,EAAC,OAAD;AAAA,IACO,KAAA;AAAA,IACL,WAAW,qFAAqF,CAAA;AAAA,IAChG,OAAO;AAAA,MAAE,QAAA;AAAA,MAAQ,GAAG;AAAA,IAAM;AAAA,IAC1B,GAAI;AAAA,cAEH,IACC,gBAAA,EAAC,OAAD;AAAA,MAAK,WAAU;AAAA,gBACZ;AAAA,IACE,CAAA,IAEL,gBAAA,EAAC,GAAD;AAAA,MACc,YAAA;AAAA,MACZ,WAAW,EAAa,YAAA,KAAiB;AAAA,MACzC,QAAQ;AAAA,MACR,OAAO,OAAO,KAAW,WAAW,EAAE,QAAQ,OAAO,IAAI;AAAA,IAC1D,CAAA;AAAA,EAEA,CAAA;AAET,CAAC"}
1
+ {"version":3,"file":"Chart.js","names":[],"sources":["../../../src/components/Chart/Chart.tsx"],"sourcesContent":["import React from 'react';\nimport { Chart as TanStackChart } from '@tanstack/react-charts/tooltip';\nimport type { DomChartDefinition } from '@tanstack/charts';\n\nexport interface ChartProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> {\n /** TanStack Charts declarative chart definition. */\n definition: DomChartDefinition<any, any, any>;\n\n /** Wrapper height. TanStack Charts fills the available space. */\n height?: number | string;\n /** Additional wrapper class name. */\n className?: string;\n /** Additional wrapper style. */\n style?: React.CSSProperties;\n /** Optional empty state controlled by the caller. */\n empty?: boolean;\n emptyContent?: React.ReactNode;\n}\n\nconst Chart = React.forwardRef<HTMLDivElement, ChartProps>(function Chart({\n height = 360,\n className = '',\n style,\n empty = false,\n emptyContent = 'No chart data',\n definition,\n ...wrapperProps\n}, ref) {\n const numericChartHeight = typeof height === 'number' ? Math.max(1, height - 26) : undefined;\n\n return (\n <div\n ref={ref}\n className={`relative w-full overflow-hidden rounded-xl border border-base-300 bg-base-100 p-3 ${className}`}\n style={{ height, ...style }}\n {...wrapperProps}\n >\n {empty ? (\n <div className=\"flex h-full items-center justify-center p-6 text-sm text-base-content/50\">\n {emptyContent}\n </div>\n ) : (\n <TanStackChart\n definition={definition}\n ariaLabel={wrapperProps['aria-label'] || 'Chart'}\n height={numericChartHeight}\n style={typeof height === 'string' ? { height: '100%' } : undefined}\n />\n )}\n </div>\n );\n});\n\nexport default Chart;\n"],"mappings":";;;;AAmBA,IAAM,IAAQ,EAAM,WAAuC,SAAe,EACxE,YAAS,KACT,eAAY,IACZ,UACA,WAAQ,IACR,kBAAe,iBACf,eACA,GAAG,KACF,GAAK;CACN,IAAM,IAAqB,OAAO,KAAW,WAAW,KAAK,IAAI,GAAG,IAAS,EAAE,IAAI,KAAA;CAEnF,OACE,kBAAC,OAAD;EACO;EACL,WAAW,qFAAqF;EAChG,OAAO;GAAE;GAAQ,GAAG;EAAM;EAC1B,GAAI;EAEH,UAAA,IACC,kBAAC,OAAD;GAAK,WAAU;GACZ,UAAA;EACE,CAAA,IAEL,kBAAC,GAAD;GACc;GACZ,WAAW,EAAa,iBAAiB;GACzC,QAAQ;GACR,OAAO,OAAO,KAAW,WAAW,EAAE,QAAQ,OAAO,IAAI,KAAA;EAC1D,CAAA;CAEA,CAAA;AAET,CAAC"}
@@ -1,66 +1,60 @@
1
- import { useCallback as g, useEffect as y, useRef as v } from "react";
2
- import { jsx as n, jsxs as C } from "react/jsx-runtime";
3
- var S = {
4
- default: "",
5
- primary: "checkbox-primary",
6
- secondary: "checkbox-secondary",
7
- accent: "checkbox-accent",
8
- info: "checkbox-info",
9
- success: "checkbox-success",
10
- warning: "checkbox-warning",
11
- error: "checkbox-error"
12
- }, j = {
13
- xs: "checkbox-xs",
14
- sm: "checkbox-sm",
15
- md: "checkbox-md",
16
- lg: "checkbox-lg"
17
- }, N = ({ checked: l, defaultChecked: x, onChange: t, label: e, labelPosition: a = "right", variant: f = "default", size: u = "sm", disabled: s = !1, indeterminate: c = !1, name: k, value: d, className: r = "", style: m, id: p }) => {
18
- const o = v(null);
19
- y(() => {
20
- o.current && (o.current.indeterminate = c);
21
- }, [c]);
22
- const b = g((h) => {
23
- t?.(h.target.checked, h);
24
- }, [t]), i = /* @__PURE__ */ n("input", {
25
- ref: o,
26
- id: p,
27
- type: "checkbox",
28
- className: [
29
- "checkbox",
30
- S[f],
31
- j[u],
32
- r && !e ? r : ""
33
- ].filter(Boolean).join(" "),
34
- checked: l,
35
- defaultChecked: x,
36
- onChange: b,
37
- disabled: s,
38
- name: k,
39
- value: d,
40
- "aria-checked": c ? "mixed" : void 0
41
- });
42
- return e == null || e === "" ? i : /* @__PURE__ */ C("label", {
43
- className: [
44
- "label cursor-pointer inline-flex items-center gap-2 w-fit",
45
- s ? "opacity-50 cursor-not-allowed" : "",
46
- r
47
- ].filter(Boolean).join(" "),
48
- style: m,
49
- children: [
50
- a === "left" && /* @__PURE__ */ n("span", {
51
- className: "label-text",
52
- children: e
53
- }),
54
- i,
55
- a === "right" && /* @__PURE__ */ n("span", {
56
- className: "label-text",
57
- children: e
58
- })
59
- ]
60
- });
61
- };
62
- export {
63
- N as default
1
+ import { cn as e } from "../../utils/cn.js";
2
+ import { useCallback as t, useEffect as n, useRef as r } from "react";
3
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
4
+ //#region src/components/Checkbox/index.tsx
5
+ var o = {
6
+ default: "",
7
+ primary: "checkbox-primary",
8
+ secondary: "checkbox-secondary",
9
+ accent: "checkbox-accent",
10
+ info: "checkbox-info",
11
+ success: "checkbox-success",
12
+ warning: "checkbox-warning",
13
+ error: "checkbox-error"
14
+ }, s = {
15
+ xs: "checkbox-xs",
16
+ sm: "checkbox-sm",
17
+ md: "checkbox-md",
18
+ lg: "checkbox-lg"
19
+ }, c = ({ checked: c, defaultChecked: l, onChange: u, label: d, labelPosition: f = "right", variant: p = "default", size: m = "sm", disabled: h = !1, indeterminate: g = !1, name: _, value: v, className: y = "", style: b, id: x }) => {
20
+ let S = r(null);
21
+ n(() => {
22
+ S.current && (S.current.indeterminate = g);
23
+ }, [g]);
24
+ let C = t((e) => {
25
+ u?.(e.target.checked, e);
26
+ }, [u]), w = e("checkbox", o[p], s[m], y && !d ? y : ""), T = /* @__PURE__ */ i("input", {
27
+ ref: S,
28
+ id: x,
29
+ type: "checkbox",
30
+ className: w,
31
+ checked: c,
32
+ defaultChecked: l,
33
+ onChange: C,
34
+ disabled: h,
35
+ name: _,
36
+ value: v,
37
+ "aria-checked": g ? "mixed" : void 0
38
+ });
39
+ if (d == null || d === "") return T;
40
+ let E = e("label cursor-pointer inline-flex items-center gap-2 w-fit", h && "opacity-50 cursor-not-allowed", y);
41
+ return /* @__PURE__ */ a("label", {
42
+ className: E,
43
+ style: b,
44
+ children: [
45
+ f === "left" && /* @__PURE__ */ i("span", {
46
+ className: "label-text",
47
+ children: d
48
+ }),
49
+ T,
50
+ f === "right" && /* @__PURE__ */ i("span", {
51
+ className: "label-text",
52
+ children: d
53
+ })
54
+ ]
55
+ });
64
56
  };
57
+ //#endregion
58
+ export { c as default };
65
59
 
66
60
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/Checkbox/index.tsx"],"sourcesContent":["import React, { useRef, useEffect, useCallback } from 'react';\n\nexport type CheckboxProps = {\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 box. */\n label?: React.ReactNode;\n /** Label position relative to the box. */\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 /** Indeterminate (partial) state; overrides the visual check mark. */\n indeterminate?: 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<CheckboxProps['variant']>, string> = {\n default: '',\n primary: 'checkbox-primary',\n secondary: 'checkbox-secondary',\n accent: 'checkbox-accent',\n info: 'checkbox-info',\n success: 'checkbox-success',\n warning: 'checkbox-warning',\n error: 'checkbox-error',\n};\n\nconst SIZE_CLASS: Record<NonNullable<CheckboxProps['size']>, string> = {\n xs: 'checkbox-xs',\n sm: 'checkbox-sm',\n md: 'checkbox-md',\n lg: 'checkbox-lg',\n};\n\nconst Checkbox: React.FC<CheckboxProps> = ({\n checked,\n defaultChecked,\n onChange,\n label,\n labelPosition = 'right',\n variant = 'default',\n size = 'sm',\n disabled = false,\n indeterminate = false,\n name,\n value,\n className = '',\n style,\n id,\n}) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n // The `indeterminate` visual state can only be set imperatively on the DOM node.\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate;\n }\n }, [indeterminate]);\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(e.target.checked, e);\n },\n [onChange],\n );\n\n const inputClasses = [\n 'checkbox',\n VARIANT_CLASS[variant],\n SIZE_CLASS[size],\n // If there is no label, allow className to style the input directly.\n className && !label ? className : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n const input = (\n <input\n ref={inputRef}\n id={id}\n type=\"checkbox\"\n className={inputClasses}\n checked={checked}\n defaultChecked={defaultChecked}\n onChange={handleChange}\n disabled={disabled}\n name={name}\n value={value}\n aria-checked={indeterminate ? 'mixed' : undefined}\n />\n );\n\n // No label → return the bare input.\n if (label === undefined || label === null || label === '') {\n return input;\n }\n\n const labelClasses = [\n 'label cursor-pointer inline-flex items-center gap-2 w-fit',\n disabled ? 'opacity-50 cursor-not-allowed' : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\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 Checkbox;\n"],"mappings":";;AAiCA,IAAM,IAAuE;AAAA,EAC3E,SAAS;AAAA,EACT,SAAS;AAAA,EACT,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AACT,GAEM,IAAiE;AAAA,EACrE,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN,GAEM,IAAA,CAAqC,EACzC,SAAA,GACA,gBAAA,GACA,UAAA,GACA,OAAA,GACA,eAAA,IAAgB,SAChB,SAAA,IAAU,WACV,MAAA,IAAO,MACP,UAAA,IAAW,IACX,eAAA,IAAgB,IAChB,MAAA,GACA,OAAA,GACA,WAAA,IAAY,IACZ,OAAA,GACA,IAAA,EAAA,MACI;AACJ,QAAM,IAAW,EAAyB,IAAI;AAG9C,EAAA,EAAA,MAAgB;AACd,IAAI,EAAS,YACX,EAAS,QAAQ,gBAAgB;AAAA,EAErC,GAAG,CAAC,CAAa,CAAC;AAElB,QAAM,IAAe,EAAA,CAClB,MAA2C;AAC1C,IAAA,IAAW,EAAE,OAAO,SAAS,CAAC;AAAA,EAChC,GACA,CAAC,CAAQ,CACX,GAYM,IACJ,gBAAA,EAAC,SAAD;AAAA,IACE,KAAK;AAAA,IACD,IAAA;AAAA,IACJ,MAAK;AAAA,IACL,WAfiB;AAAA,MACnB;AAAA,MACA,EAAc,CAAA;AAAA,MACd,EAAW,CAAA;AAAA,MAEX,KAAa,CAAC,IAAQ,IAAY;AAAA,IACpC,EACG,OAAO,OAAO,EACd,KAAK,GAOO;AAAA,IACF,SAAA;AAAA,IACO,gBAAA;AAAA,IAChB,UAAU;AAAA,IACA,UAAA;AAAA,IACJ,MAAA;AAAA,IACC,OAAA;AAAA,IACP,gBAAc,IAAgB,UAAU;AAAA,EACzC,CAAA;AAIH,SAA2B,KAAU,QAAQ,MAAU,KAC9C,IAYP,gBAAA,EAAC,SAAD;AAAA,IAAO,WATY;AAAA,MACnB;AAAA,MACA,IAAW,kCAAkC;AAAA,MAC7C;AAAA,IACF,EACG,OAAO,OAAO,EACd,KAAK,GAGY;AAAA,IAAqB,OAAA;AAAA,cAAvC;AAAA,MACG,MAAkB,UAAU,gBAAA,EAAC,QAAD;AAAA,QAAM,WAAU;AAAA,kBAAc;AAAA,MAAY,CAAA;AAAA,MACtE;AAAA,MACA,MAAkB,WAAW,gBAAA,EAAC,QAAD;AAAA,QAAM,WAAU;AAAA,kBAAc;AAAA,MAAY,CAAA;AAAA,IACnE;AAAA;AAEX"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/Checkbox/index.tsx"],"sourcesContent":["import React, { useRef, useEffect, useCallback } from 'react';\nimport { cn } from '../../utils/cn';\n\nexport type CheckboxProps = {\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 box. */\n label?: React.ReactNode;\n /** Label position relative to the box. */\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 /** Indeterminate (partial) state; overrides the visual check mark. */\n indeterminate?: 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<CheckboxProps['variant']>, string> = {\n default: '',\n primary: 'checkbox-primary',\n secondary: 'checkbox-secondary',\n accent: 'checkbox-accent',\n info: 'checkbox-info',\n success: 'checkbox-success',\n warning: 'checkbox-warning',\n error: 'checkbox-error',\n};\n\nconst SIZE_CLASS: Record<NonNullable<CheckboxProps['size']>, string> = {\n xs: 'checkbox-xs',\n sm: 'checkbox-sm',\n md: 'checkbox-md',\n lg: 'checkbox-lg',\n};\n\nconst Checkbox: React.FC<CheckboxProps> = ({\n checked,\n defaultChecked,\n onChange,\n label,\n labelPosition = 'right',\n variant = 'default',\n size = 'sm',\n disabled = false,\n indeterminate = false,\n name,\n value,\n className = '',\n style,\n id,\n}) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n // The `indeterminate` visual state can only be set imperatively on the DOM node.\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.indeterminate = indeterminate;\n }\n }, [indeterminate]);\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 'checkbox',\n VARIANT_CLASS[variant],\n SIZE_CLASS[size],\n // If there is no label, allow className to style the input directly.\n className && !label ? className : '',\n );\n\n const input = (\n <input\n ref={inputRef}\n id={id}\n type=\"checkbox\"\n className={inputClasses}\n checked={checked}\n defaultChecked={defaultChecked}\n onChange={handleChange}\n disabled={disabled}\n name={name}\n value={value}\n aria-checked={indeterminate ? 'mixed' : undefined}\n />\n );\n\n // No label → return the bare input.\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 Checkbox;\n"],"mappings":";;;;AAkCA,IAAM,IAAuE;CAC3E,SAAS;CACT,SAAS;CACT,WAAW;CACX,QAAQ;CACR,MAAM;CACN,SAAS;CACT,SAAS;CACT,OAAO;AACT,GAEM,IAAiE;CACrE,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN,GAEM,KAAqC,EACzC,YACA,mBACA,aACA,UACA,mBAAgB,SAChB,aAAU,WACV,UAAO,MACP,cAAW,IACX,mBAAgB,IAChB,SACA,UACA,eAAY,IACZ,UACA,YACI;CACJ,IAAM,IAAW,EAAyB,IAAI;CAG9C,QAAgB;EACd,AAAI,EAAS,YACX,EAAS,QAAQ,gBAAgB;CAErC,GAAG,CAAC,CAAa,CAAC;CAElB,IAAM,IAAe,GAClB,MAA2C;EAC1C,IAAW,EAAE,OAAO,SAAS,CAAC;CAChC,GACA,CAAC,CAAQ,CACX,GAEM,IAAe,EACnB,YACA,EAAc,IACd,EAAW,IAEX,KAAa,CAAC,IAAQ,IAAY,EACpC,GAEM,IACJ,kBAAC,SAAD;EACE,KAAK;EACD;EACJ,MAAK;EACL,WAAW;EACF;EACO;EAChB,UAAU;EACA;EACJ;EACC;EACP,gBAAc,IAAgB,UAAU,KAAA;CACzC,CAAA;CAIH,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,44 @@
1
+ import React from 'react';
2
+ export type ChoicePickerOption = {
3
+ /** Value submitted for this option. */
4
+ value: string | number;
5
+ /** Display label. */
6
+ label: React.ReactNode;
7
+ /** Disable this option only. */
8
+ disabled?: boolean;
9
+ };
10
+ export type ChoicePickerVariant = 'default' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error';
11
+ export type ChoicePickerProps = {
12
+ /** Available options. */
13
+ options: ChoicePickerOption[];
14
+ /** Controlled selected value. */
15
+ value?: string | number;
16
+ /** Uncontrolled initial value. */
17
+ defaultValue?: string | number;
18
+ /** Change handler with the selected value. */
19
+ onChange?: (value: string | number) => void;
20
+ /** `list` renders radio rows; `chip` renders a button group. */
21
+ appearance?: 'list' | 'chip';
22
+ /** Layout of list rows or chip wrapping. */
23
+ orientation?: 'vertical' | 'horizontal';
24
+ /** Color variant. */
25
+ variant?: ChoicePickerVariant;
26
+ /** Size (daisyUI). */
27
+ size?: 'xs' | 'sm' | 'md' | 'lg';
28
+ /** Disable the whole group. */
29
+ disabled?: boolean;
30
+ /** Optional group label rendered above the options. */
31
+ label?: React.ReactNode;
32
+ /** Native name attribute for the radios. */
33
+ name?: string;
34
+ /** Extra class names on the wrapper. */
35
+ className?: string;
36
+ /** Inline styles on the wrapper. */
37
+ style?: React.CSSProperties;
38
+ };
39
+ /**
40
+ * ChoicePicker —— A2UI 交互组件(v0.9):单选项组。
41
+ * `list` 外观为 radio 行(daisyUI radio),`chip` 外观为按钮组(daisyUI btn)。
42
+ */
43
+ declare const ChoicePicker: React.FC<ChoicePickerProps>;
44
+ export default ChoicePicker;