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.
- package/dist/_virtual/_rolldown/runtime.js +10 -11
- package/dist/chart.js +12 -46
- package/dist/code-editor.js +16 -43
- package/dist/components/Badge/index.js +11 -13
- package/dist/components/Badge/index.js.map +1 -1
- package/dist/components/Button/index.js +62 -86
- package/dist/components/Button/index.js.map +1 -1
- package/dist/components/Card/index.d.ts +87 -0
- package/dist/components/Card/index.js +178 -44
- package/dist/components/Card/index.js.map +1 -1
- package/dist/components/Chart/Chart.js +25 -25
- package/dist/components/Chart/Chart.js.map +1 -1
- package/dist/components/Checkbox/index.js +57 -63
- package/dist/components/Checkbox/index.js.map +1 -1
- package/dist/components/ChoicePicker/index.d.ts +44 -0
- package/dist/components/ChoicePicker/index.js +81 -0
- package/dist/components/ChoicePicker/index.js.map +1 -0
- package/dist/components/Column/index.d.ts +28 -0
- package/dist/components/Column/index.js +30 -0
- package/dist/components/Column/index.js.map +1 -0
- package/dist/components/DateTimeInput/index.d.ts +44 -0
- package/dist/components/DateTimeInput/index.js +48 -0
- package/dist/components/DateTimeInput/index.js.map +1 -0
- package/dist/components/Demo/index.js +107 -107
- package/dist/components/Demo/index.js.map +1 -1
- package/dist/components/Divider/index.d.ts +20 -0
- package/dist/components/Divider/index.js +30 -0
- package/dist/components/Divider/index.js.map +1 -0
- package/dist/components/EmptyState/index.d.ts +4 -1
- package/dist/components/EmptyState/index.js +24 -24
- package/dist/components/EmptyState/index.js.map +1 -1
- package/dist/components/FileUploader/DropZone.js +134 -136
- package/dist/components/FileUploader/DropZone.js.map +1 -1
- package/dist/components/FileUploader/FileItem.js +159 -163
- package/dist/components/FileUploader/FileItem.js.map +1 -1
- package/dist/components/FileUploader/FileUploader.js +126 -127
- package/dist/components/FileUploader/FileUploader.js.map +1 -1
- package/dist/components/FileUploader/UploadQueue.js +62 -62
- package/dist/components/FileUploader/UploadQueue.js.map +1 -1
- package/dist/components/FloatWindow/index.d.ts +28 -0
- package/dist/components/GridLayout/index.d.ts +42 -0
- package/dist/components/Icon/index.d.ts +24 -0
- package/dist/components/Icon/index.js +26 -0
- package/dist/components/Icon/index.js.map +1 -0
- package/dist/components/Image/index.d.ts +33 -0
- package/dist/components/Image/index.js +44 -0
- package/dist/components/Image/index.js.map +1 -0
- package/dist/components/Input/index.js +196 -197
- package/dist/components/Input/index.js.map +1 -1
- package/dist/components/Label/index.js +62 -73
- package/dist/components/Label/index.js.map +1 -1
- package/dist/components/Layout/index.js +134 -139
- package/dist/components/Layout/index.js.map +1 -1
- package/dist/components/List/index.js +45 -43
- package/dist/components/List/index.js.map +1 -1
- package/dist/components/Markdown/Markdown.js +106 -103
- package/dist/components/Markdown/Markdown.js.map +1 -1
- package/dist/components/Markdown/codeThemes.js +24 -33
- package/dist/components/Markdown/codeThemes.js.map +1 -1
- package/dist/components/Markdown/markdownComponents.js +203 -208
- package/dist/components/Markdown/markdownComponents.js.map +1 -1
- package/dist/components/Markdown/parseCodeBlockMeta.js +22 -22
- package/dist/components/Markdown/parseCodeBlockMeta.js.map +1 -1
- package/dist/components/Markdown/useMarkdownSource.js +46 -46
- package/dist/components/Markdown/useMarkdownSource.js.map +1 -1
- package/dist/components/Markdown/useMarkmapRenderer.js +35 -36
- package/dist/components/Markdown/useMarkmapRenderer.js.map +1 -1
- package/dist/components/Markdown/useMermaidRenderer.js +41 -42
- package/dist/components/Markdown/useMermaidRenderer.js.map +1 -1
- package/dist/components/Modal/index.d.ts +7 -3
- package/dist/components/Modal/index.js +82 -70
- package/dist/components/Modal/index.js.map +1 -1
- package/dist/components/MultipleChoice/index.d.ts +44 -0
- package/dist/components/MultipleChoice/index.js +52 -0
- package/dist/components/MultipleChoice/index.js.map +1 -0
- package/dist/components/Notification/index.d.ts +17 -0
- package/dist/components/Page/index.d.ts +58 -0
- package/dist/components/Page/index.js +43 -0
- package/dist/components/Page/index.js.map +1 -0
- package/dist/components/PageHeader/index.js +28 -28
- package/dist/components/PageHeader/index.js.map +1 -1
- package/dist/components/ProtectedRoute/index.js +8 -9
- package/dist/components/ProtectedRoute/index.js.map +1 -1
- package/dist/components/Row/index.d.ts +28 -0
- package/dist/components/Row/index.js +30 -0
- package/dist/components/Row/index.js.map +1 -0
- package/dist/components/Select/index.js +251 -257
- package/dist/components/Select/index.js.map +1 -1
- package/dist/components/SidebarToggleButton/index.js +56 -59
- package/dist/components/SidebarToggleButton/index.js.map +1 -1
- package/dist/components/Slider/index.d.ts +39 -0
- package/dist/components/Slider/index.js +52 -0
- package/dist/components/Slider/index.js.map +1 -0
- package/dist/components/StatCard/index.d.ts +31 -1
- package/dist/components/StatCard/index.js +189 -58
- package/dist/components/StatCard/index.js.map +1 -1
- package/dist/components/Switch/index.d.ts +34 -0
- package/dist/components/Switch/index.js +55 -0
- package/dist/components/Switch/index.js.map +1 -0
- package/dist/components/Tab/index.d.ts +40 -0
- package/dist/components/Table/index.js +109 -103
- package/dist/components/Table/index.js.map +1 -1
- package/dist/components/Tabs/index.d.ts +19 -5
- package/dist/components/Tabs/index.js +30 -21
- package/dist/components/Tabs/index.js.map +1 -1
- package/dist/components/Text/index.d.ts +43 -0
- package/dist/components/Text/index.js +55 -0
- package/dist/components/Text/index.js.map +1 -0
- package/dist/components/Tooltip/index.d.ts +23 -0
- package/dist/components/Tooltip/index.js +34 -0
- package/dist/components/Tooltip/index.js.map +1 -0
- package/dist/components/Tree/Tree.js +205 -205
- package/dist/components/Tree/Tree.js.map +1 -1
- package/dist/components/pro/ArticleContextMenu/index.js +86 -87
- package/dist/components/pro/ArticleContextMenu/index.js.map +1 -1
- package/dist/components/pro/ArticleControl/ArticleControl2.js +250 -250
- package/dist/components/pro/ArticleControl/ArticleControl2.js.map +1 -1
- package/dist/components/pro/ArticleControl/buildHeadingTree.js +31 -32
- package/dist/components/pro/ArticleControl/buildHeadingTree.js.map +1 -1
- package/dist/components/pro/ArticleControl/useArticleToc.js +100 -102
- package/dist/components/pro/ArticleControl/useArticleToc.js.map +1 -1
- package/dist/components/pro/Calendar/Calendar.d.ts +10 -0
- package/dist/components/pro/Calendar/hooks/useCalendarDrag.d.ts +47 -0
- package/dist/components/pro/Calendar/hooks/useCalendarState.d.ts +56 -0
- package/dist/components/pro/Calendar/index.d.ts +7 -0
- package/dist/components/pro/Calendar/types.d.ts +151 -0
- package/dist/components/pro/Calendar/utils.d.ts +94 -0
- package/dist/components/pro/Chat/Chat.d.ts +6 -0
- package/dist/components/pro/Chat/index.d.ts +2 -0
- package/dist/components/pro/Chat/types.d.ts +84 -0
- package/dist/components/pro/CodeEditor/editors/CodeEditor.js +287 -320
- package/dist/components/pro/CodeEditor/editors/CodeEditor.js.map +1 -1
- package/dist/components/pro/CodeEditor/editors/MarkdownEditor.js +167 -221
- package/dist/components/pro/CodeEditor/editors/MarkdownEditor.js.map +1 -1
- package/dist/components/pro/CodeEditor/editors/markdownExtensions.js +594 -613
- package/dist/components/pro/CodeEditor/editors/markdownExtensions.js.map +1 -1
- package/dist/components/pro/CodeEditor/extensions/contextMenu.js +54 -55
- package/dist/components/pro/CodeEditor/extensions/contextMenu.js.map +1 -1
- package/dist/components/pro/CodeEditor/extensions/index.js +152 -160
- package/dist/components/pro/CodeEditor/extensions/index.js.map +1 -1
- package/dist/components/pro/CodeEditor/langs/index.js +7 -15
- package/dist/components/pro/CodeEditor/langs/index.js.map +1 -1
- package/dist/components/pro/CodeEditor/langs/javascript.js +11 -48
- package/dist/components/pro/CodeEditor/langs/javascript.js.map +1 -1
- package/dist/components/pro/CodeEditor/langs/python.js +4 -40
- package/dist/components/pro/CodeEditor/langs/python.js.map +1 -1
- package/dist/components/pro/CodeEditor/langs/snippets.js +118 -147
- package/dist/components/pro/CodeEditor/langs/snippets.js.map +1 -1
- package/dist/components/pro/CodeEditor/panels/FootnotePanel.js +153 -153
- package/dist/components/pro/CodeEditor/panels/FootnotePanel.js.map +1 -1
- package/dist/components/pro/CodeEditor/panels/HistoryPanel.js +180 -190
- package/dist/components/pro/CodeEditor/panels/HistoryPanel.js.map +1 -1
- package/dist/components/pro/CodeEditor/panels/OutlinePanel.js +130 -137
- package/dist/components/pro/CodeEditor/panels/OutlinePanel.js.map +1 -1
- package/dist/components/pro/CodeEditor/panels/TableOfContentsPanel.js +228 -242
- package/dist/components/pro/CodeEditor/panels/TableOfContentsPanel.js.map +1 -1
- package/dist/components/pro/CodeEditor/panels/VariablePanel.js +208 -248
- package/dist/components/pro/CodeEditor/panels/VariablePanel.js.map +1 -1
- package/dist/components/pro/CodeEditor/themes.js +513 -483
- package/dist/components/pro/CodeEditor/themes.js.map +1 -1
- package/dist/components/pro/CodeEditor/types.d.ts +1 -1
- package/dist/components/pro/CodeEditor/utils.js +171 -175
- package/dist/components/pro/CodeEditor/utils.js.map +1 -1
- package/dist/components/pro/DataTable/DataTable.js +305 -305
- package/dist/components/pro/DataTable/DataTable.js.map +1 -1
- package/dist/components/pro/DataTable/Filters.js +299 -314
- package/dist/components/pro/DataTable/Filters.js.map +1 -1
- package/dist/components/pro/DataTable/PivotPanel.js +203 -204
- package/dist/components/pro/DataTable/PivotPanel.js.map +1 -1
- package/dist/components/pro/DataTable/PivotView.js +142 -141
- package/dist/components/pro/DataTable/PivotView.js.map +1 -1
- package/dist/components/pro/DataTable/components/BulkActions.js +42 -42
- package/dist/components/pro/DataTable/components/BulkActions.js.map +1 -1
- package/dist/components/pro/DataTable/components/ColumnSelector.js +84 -84
- package/dist/components/pro/DataTable/components/ColumnSelector.js.map +1 -1
- package/dist/components/pro/DataTable/components/FilterBar.js +58 -58
- package/dist/components/pro/DataTable/components/FilterBar.js.map +1 -1
- package/dist/components/pro/DataTable/components/TableBody.js +93 -94
- package/dist/components/pro/DataTable/components/TableBody.js.map +1 -1
- package/dist/components/pro/DataTable/components/TableHeader.js +78 -78
- package/dist/components/pro/DataTable/components/TableHeader.js.map +1 -1
- package/dist/components/pro/DataTable/components/TablePagination.js +77 -77
- package/dist/components/pro/DataTable/components/TablePagination.js.map +1 -1
- package/dist/components/pro/DataTable/components/TableToolbar.js +40 -40
- package/dist/components/pro/DataTable/components/TableToolbar.js.map +1 -1
- package/dist/components/pro/DataTable/extension.js +5 -5
- package/dist/components/pro/DataTable/extension.js.map +1 -1
- package/dist/components/pro/DataTable/pivotEngine.js +84 -92
- package/dist/components/pro/DataTable/pivotEngine.js.map +1 -1
- package/dist/components/pro/DataTable/pivotExtension.js +93 -93
- package/dist/components/pro/DataTable/pivotExtension.js.map +1 -1
- package/dist/components/pro/DataTable/rowDetailExtension.js +30 -30
- package/dist/components/pro/DataTable/rowDetailExtension.js.map +1 -1
- package/dist/components/pro/DataTable/tanstack-table.js +45 -62
- package/dist/components/pro/DataTable/tanstack-table.js.map +1 -1
- package/dist/components/pro/DataTable/treeDataUtils.js +37 -48
- package/dist/components/pro/DataTable/treeDataUtils.js.map +1 -1
- package/dist/components/pro/DataTable/useColumnDragReorder.js +68 -68
- package/dist/components/pro/DataTable/useColumnDragReorder.js.map +1 -1
- package/dist/components/pro/DataTable/utils.js +156 -168
- package/dist/components/pro/DataTable/utils.js.map +1 -1
- package/dist/components/pro/FileExplorer/Breadcrumb.js +180 -180
- package/dist/components/pro/FileExplorer/Breadcrumb.js.map +1 -1
- package/dist/components/pro/FileExplorer/CreateDialog.js +78 -78
- package/dist/components/pro/FileExplorer/CreateDialog.js.map +1 -1
- package/dist/components/pro/FileExplorer/FileExplorer.js +202 -205
- package/dist/components/pro/FileExplorer/FileExplorer.js.map +1 -1
- package/dist/components/pro/FileExplorer/FileIcon.js +190 -190
- package/dist/components/pro/FileExplorer/FileIcon.js.map +1 -1
- package/dist/components/pro/FileExplorer/GridView.js +100 -100
- package/dist/components/pro/FileExplorer/GridView.js.map +1 -1
- package/dist/components/pro/FileExplorer/ListView.js +209 -209
- package/dist/components/pro/FileExplorer/ListView.js.map +1 -1
- package/dist/components/pro/FileExplorer/Toolbar.js +199 -199
- package/dist/components/pro/FileExplorer/Toolbar.js.map +1 -1
- package/dist/components/pro/Flow/Flow.js +920 -946
- package/dist/components/pro/Flow/Flow.js.map +1 -1
- package/dist/components/pro/Flow/FlowCanvas.js +1626 -1663
- package/dist/components/pro/Flow/FlowCanvas.js.map +1 -1
- package/dist/components/pro/Flow/archify/build.js +85 -94
- package/dist/components/pro/Flow/archify/build.js.map +1 -1
- package/dist/components/pro/Flow/archify/convert.js +512 -519
- package/dist/components/pro/Flow/archify/convert.js.map +1 -1
- package/dist/components/pro/Flow/archify/palette.js +87 -104
- package/dist/components/pro/Flow/archify/palette.js.map +1 -1
- package/dist/components/pro/Flow/archify/presets.js +34 -37
- package/dist/components/pro/Flow/archify/presets.js.map +1 -1
- package/dist/components/pro/Flow/archify/spec.js +7 -7
- package/dist/components/pro/Flow/archify/spec.js.map +1 -1
- package/dist/components/pro/Flow/canvas/AlignmentGuides.js +25 -25
- package/dist/components/pro/Flow/canvas/AlignmentGuides.js.map +1 -1
- package/dist/components/pro/Flow/canvas/GridRenderer.js +54 -55
- package/dist/components/pro/Flow/canvas/GridRenderer.js.map +1 -1
- package/dist/components/pro/Flow/canvas/MiniMapRenderer.js +54 -58
- package/dist/components/pro/Flow/canvas/MiniMapRenderer.js.map +1 -1
- package/dist/components/pro/Flow/canvas/PixiApp.js +105 -102
- package/dist/components/pro/Flow/canvas/PixiApp.js.map +1 -1
- package/dist/components/pro/Flow/canvas/SelectionOverlay.js +38 -38
- package/dist/components/pro/Flow/canvas/SelectionOverlay.js.map +1 -1
- package/dist/components/pro/Flow/canvas/ViewportContainer.js +117 -117
- package/dist/components/pro/Flow/canvas/ViewportContainer.js.map +1 -1
- package/dist/components/pro/Flow/constants.js +266 -278
- package/dist/components/pro/Flow/constants.js.map +1 -1
- package/dist/components/pro/Flow/context/FlowAIContext.js +27 -28
- package/dist/components/pro/Flow/context/FlowAIContext.js.map +1 -1
- package/dist/components/pro/Flow/context/FlowContext.js +60 -61
- package/dist/components/pro/Flow/context/FlowContext.js.map +1 -1
- package/dist/components/pro/Flow/context/FlowUIContext.js +115 -117
- package/dist/components/pro/Flow/context/FlowUIContext.js.map +1 -1
- package/dist/components/pro/Flow/edges/EdgeRenderer.js +135 -138
- package/dist/components/pro/Flow/edges/EdgeRenderer.js.map +1 -1
- package/dist/components/pro/Flow/edges/edgeMarkers.js +11 -14
- package/dist/components/pro/Flow/edges/edgeMarkers.js.map +1 -1
- package/dist/components/pro/Flow/edges/edgePaths.js +351 -367
- package/dist/components/pro/Flow/edges/edgePaths.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useAlignmentGuides.js +49 -52
- package/dist/components/pro/Flow/hooks/useAlignmentGuides.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useClipboard.js +154 -154
- package/dist/components/pro/Flow/hooks/useClipboard.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useCompactMode.js +17 -17
- package/dist/components/pro/Flow/hooks/useCompactMode.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useDeleteSelection.js +40 -40
- package/dist/components/pro/Flow/hooks/useDeleteSelection.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useDraggablePanel.js +51 -51
- package/dist/components/pro/Flow/hooks/useDraggablePanel.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useEdgeMutations.js +157 -157
- package/dist/components/pro/Flow/hooks/useEdgeMutations.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useFlowImportExport.js +190 -201
- package/dist/components/pro/Flow/hooks/useFlowImportExport.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useKeyboardShortcuts.js +32 -38
- package/dist/components/pro/Flow/hooks/useKeyboardShortcuts.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useLayoutActions.js +172 -182
- package/dist/components/pro/Flow/hooks/useLayoutActions.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useLineMutations.js +57 -57
- package/dist/components/pro/Flow/hooks/useLineMutations.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useMindMap.js +229 -238
- package/dist/components/pro/Flow/hooks/useMindMap.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useNodeMutations.js +102 -102
- package/dist/components/pro/Flow/hooks/useNodeMutations.js.map +1 -1
- package/dist/components/pro/Flow/hooks/usePdfExport.js +55 -56
- package/dist/components/pro/Flow/hooks/usePdfExport.js.map +1 -1
- package/dist/components/pro/Flow/hooks/usePixiApp.js +55 -57
- package/dist/components/pro/Flow/hooks/usePixiApp.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useResizablePanel.js +31 -31
- package/dist/components/pro/Flow/hooks/useResizablePanel.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useSelection.js +69 -69
- package/dist/components/pro/Flow/hooks/useSelection.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useUndoRedo.js +27 -27
- package/dist/components/pro/Flow/hooks/useUndoRedo.js.map +1 -1
- package/dist/components/pro/Flow/hooks/useViewport.js +28 -28
- package/dist/components/pro/Flow/hooks/useViewport.js.map +1 -1
- package/dist/components/pro/Flow/lines/FreehandTool.js +63 -63
- package/dist/components/pro/Flow/lines/FreehandTool.js.map +1 -1
- package/dist/components/pro/Flow/lines/GeometricLineTool.js +80 -80
- package/dist/components/pro/Flow/lines/GeometricLineTool.js.map +1 -1
- package/dist/components/pro/Flow/lines/LineRenderer.js +88 -88
- package/dist/components/pro/Flow/lines/LineRenderer.js.map +1 -1
- package/dist/components/pro/Flow/lines/lineSmoothing.js +32 -34
- package/dist/components/pro/Flow/lines/lineSmoothing.js.map +1 -1
- package/dist/components/pro/Flow/nodes/DataNodeView.js +236 -222
- package/dist/components/pro/Flow/nodes/DataNodeView.js.map +1 -1
- package/dist/components/pro/Flow/nodes/MediaContent.js +236 -246
- package/dist/components/pro/Flow/nodes/MediaContent.js.map +1 -1
- package/dist/components/pro/Flow/nodes/MediaOverlay.js +63 -63
- package/dist/components/pro/Flow/nodes/MediaOverlay.js.map +1 -1
- package/dist/components/pro/Flow/nodes/Model3DView.js +111 -113
- package/dist/components/pro/Flow/nodes/Model3DView.js.map +1 -1
- package/dist/components/pro/Flow/nodes/NodeHandles.js +74 -80
- package/dist/components/pro/Flow/nodes/NodeHandles.js.map +1 -1
- package/dist/components/pro/Flow/nodes/NodeRenderer.js +303 -314
- package/dist/components/pro/Flow/nodes/NodeRenderer.js.map +1 -1
- package/dist/components/pro/Flow/nodes/NodeText.js +25 -29
- package/dist/components/pro/Flow/nodes/NodeText.js.map +1 -1
- package/dist/components/pro/Flow/nodes/aiClient.js +124 -137
- package/dist/components/pro/Flow/nodes/aiClient.js.map +1 -1
- package/dist/components/pro/Flow/nodes/animAnchors.js +42 -49
- package/dist/components/pro/Flow/nodes/animAnchors.js.map +1 -1
- package/dist/components/pro/Flow/nodes/dataUtils.js +246 -267
- package/dist/components/pro/Flow/nodes/dataUtils.js.map +1 -1
- package/dist/components/pro/Flow/nodes/nodeUtils.js +23 -28
- package/dist/components/pro/Flow/nodes/nodeUtils.js.map +1 -1
- package/dist/components/pro/Flow/nodes/shapes.js +556 -591
- package/dist/components/pro/Flow/nodes/shapes.js.map +1 -1
- package/dist/components/pro/Flow/nodes/svgIconTexture.js +37 -39
- package/dist/components/pro/Flow/nodes/svgIconTexture.js.map +1 -1
- package/dist/components/pro/Flow/nodes/svgIcons.js +684 -689
- package/dist/components/pro/Flow/nodes/svgIcons.js.map +1 -1
- package/dist/components/pro/Flow/panels/AIPanel.js +464 -491
- package/dist/components/pro/Flow/panels/AIPanel.js.map +1 -1
- package/dist/components/pro/Flow/panels/Breadcrumb.js +41 -41
- package/dist/components/pro/Flow/panels/Breadcrumb.js.map +1 -1
- package/dist/components/pro/Flow/panels/ContextMenu.js +37 -37
- package/dist/components/pro/Flow/panels/ContextMenu.js.map +1 -1
- package/dist/components/pro/Flow/panels/DataInspectorSection.js +428 -432
- package/dist/components/pro/Flow/panels/DataInspectorSection.js.map +1 -1
- package/dist/components/pro/Flow/panels/ExpandableTextarea.js +61 -62
- package/dist/components/pro/Flow/panels/ExpandableTextarea.js.map +1 -1
- package/dist/components/pro/Flow/panels/FlowPanelGroup.js +114 -114
- package/dist/components/pro/Flow/panels/FlowPanelGroup.js.map +1 -1
- package/dist/components/pro/Flow/panels/FlowToolbar.js +347 -391
- package/dist/components/pro/Flow/panels/FlowToolbar.js.map +1 -1
- package/dist/components/pro/Flow/panels/InspectorPanel.js +1792 -1798
- package/dist/components/pro/Flow/panels/InspectorPanel.js.map +1 -1
- package/dist/components/pro/Flow/panels/OutlinePanel.js +242 -244
- package/dist/components/pro/Flow/panels/OutlinePanel.js.map +1 -1
- package/dist/components/pro/Flow/panels/PresentationMode.js +137 -138
- package/dist/components/pro/Flow/panels/PresentationMode.js.map +1 -1
- package/dist/components/pro/Flow/panels/ProjectTitle.js +46 -46
- package/dist/components/pro/Flow/panels/ProjectTitle.js.map +1 -1
- package/dist/components/pro/Flow/panels/ShapePalette.js +557 -567
- package/dist/components/pro/Flow/panels/ShapePalette.js.map +1 -1
- package/dist/components/pro/Flow/panels/toolbarIcons.d.ts +0 -1
- package/dist/components/pro/Flow/panels/toolbarIcons.js +508 -557
- package/dist/components/pro/Flow/panels/toolbarIcons.js.map +1 -1
- package/dist/components/pro/Flow/types.js +26 -26
- package/dist/components/pro/Flow/types.js.map +1 -1
- package/dist/components/pro/Flow/utils/dashedLine.js +113 -117
- package/dist/components/pro/Flow/utils/dashedLine.js.map +1 -1
- package/dist/components/pro/Flow/utils/gradient.js +55 -55
- package/dist/components/pro/Flow/utils/gradient.js.map +1 -1
- package/dist/components/pro/Flow/utils/pdfExport.js +50 -89
- package/dist/components/pro/Flow/utils/pdfExport.js.map +1 -1
- package/dist/components/pro/Flow/utils/themeColor.js +185 -195
- package/dist/components/pro/Flow/utils/themeColor.js.map +1 -1
- package/dist/components/pro/Gantt/Gantt.d.ts +7 -0
- package/dist/components/pro/Gantt/hooks/useGanttDrag.d.ts +31 -0
- package/dist/components/pro/Gantt/hooks/useGanttState.d.ts +58 -0
- package/dist/components/pro/Gantt/index.d.ts +6 -0
- package/dist/components/pro/Gantt/types.d.ts +478 -0
- package/dist/components/pro/Gantt/utils.d.ts +124 -0
- package/dist/components/pro/Resizable/Resizable.d.ts +30 -0
- package/dist/components/pro/Resizable/index.d.ts +2 -0
- package/dist/components/pro/RichTextEditor/AIRewrite.js +323 -334
- package/dist/components/pro/RichTextEditor/AIRewrite.js.map +1 -1
- package/dist/components/pro/RichTextEditor/BlockHandle.js +314 -316
- package/dist/components/pro/RichTextEditor/BlockHandle.js.map +1 -1
- package/dist/components/pro/RichTextEditor/BubbleToolbar.js +97 -97
- package/dist/components/pro/RichTextEditor/BubbleToolbar.js.map +1 -1
- package/dist/components/pro/RichTextEditor/CommentDialog.js +88 -88
- package/dist/components/pro/RichTextEditor/CommentDialog.js.map +1 -1
- package/dist/components/pro/RichTextEditor/CommentPanel.js +240 -240
- package/dist/components/pro/RichTextEditor/CommentPanel.js.map +1 -1
- package/dist/components/pro/RichTextEditor/CommentPopover.js +234 -234
- package/dist/components/pro/RichTextEditor/CommentPopover.js.map +1 -1
- package/dist/components/pro/RichTextEditor/ContextMenu.js +251 -252
- package/dist/components/pro/RichTextEditor/ContextMenu.js.map +1 -1
- package/dist/components/pro/RichTextEditor/RichTextEditor.js +267 -271
- package/dist/components/pro/RichTextEditor/RichTextEditor.js.map +1 -1
- package/dist/components/pro/RichTextEditor/SlashMenu.js +214 -214
- package/dist/components/pro/RichTextEditor/SlashMenu.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/ColorPicker.js +44 -75
- package/dist/components/pro/RichTextEditor/Toolbar/ColorPicker.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/FloatingDialogMenu.js +261 -261
- package/dist/components/pro/RichTextEditor/Toolbar/FloatingDialogMenu.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/MarkdownTemplates.js +172 -526
- package/dist/components/pro/RichTextEditor/Toolbar/MarkdownTemplates.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/SelectDropdown.js +112 -114
- package/dist/components/pro/RichTextEditor/Toolbar/SelectDropdown.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/TableOpsMenu.js +194 -194
- package/dist/components/pro/RichTextEditor/Toolbar/TableOpsMenu.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/Toolbar.js +970 -973
- package/dist/components/pro/RichTextEditor/Toolbar/Toolbar.js.map +1 -1
- package/dist/components/pro/RichTextEditor/Toolbar/ToolbarButton.js +11 -12
- package/dist/components/pro/RichTextEditor/Toolbar/ToolbarButton.js.map +1 -1
- package/dist/components/pro/RichTextEditor/extensions/CodeBlockView.js +310 -344
- package/dist/components/pro/RichTextEditor/extensions/CodeBlockView.js.map +1 -1
- package/dist/components/pro/RichTextEditor/extensions/CommentMark.js +38 -39
- package/dist/components/pro/RichTextEditor/extensions/CommentMark.js.map +1 -1
- package/dist/components/pro/RichTextEditor/extensions/FloatingDialog.js +620 -625
- package/dist/components/pro/RichTextEditor/extensions/FloatingDialog.js.map +1 -1
- package/dist/components/pro/RichTextEditor/extensions/FontSize.js +25 -25
- package/dist/components/pro/RichTextEditor/extensions/FontSize.js.map +1 -1
- package/dist/components/pro/RichTextEditor/extensions/MarkdownBlock.js +167 -176
- package/dist/components/pro/RichTextEditor/extensions/MarkdownBlock.js.map +1 -1
- package/dist/components/pro/RichTextEditor/types.js +75 -75
- package/dist/components/pro/RichTextEditor/types.js.map +1 -1
- package/dist/contexts/AppContext.d.ts +1 -1
- package/dist/contexts/AppContext.js +216 -221
- package/dist/contexts/AppContext.js.map +1 -1
- package/dist/data-table.js +15 -41
- package/dist/data-table.js.map +1 -1
- package/dist/dishui.css +1 -1
- package/dist/flow.js +27 -83
- package/dist/hooks/useClickOutside.js +18 -18
- package/dist/hooks/useClickOutside.js.map +1 -1
- package/dist/hooks/useContainerElement.js +9 -9
- package/dist/hooks/useContainerElement.js.map +1 -1
- package/dist/hooks/useControllableState.js +33 -35
- package/dist/hooks/useControllableState.js.map +1 -1
- package/dist/hooks/useCopyToClipboard.js +16 -16
- package/dist/hooks/useCopyToClipboard.js.map +1 -1
- package/dist/hooks/useDebounce.js +14 -14
- package/dist/hooks/useDebounce.js.map +1 -1
- package/dist/hooks/useDraggable.js +50 -50
- package/dist/hooks/useDraggable.js.map +1 -1
- package/dist/hooks/useTableColumns.js +39 -42
- package/dist/hooks/useTableColumns.js.map +1 -1
- package/dist/hooks/useTableData.js +67 -68
- package/dist/hooks/useTableData.js.map +1 -1
- package/dist/index-nostyled.d.ts +8 -0
- package/dist/index.d.ts +29 -1
- package/dist/index.js +106 -236
- package/dist/layouts/MainLayout.js +56 -56
- package/dist/layouts/MainLayout.js.map +1 -1
- package/dist/layouts/Navbar.js +214 -214
- package/dist/layouts/Navbar.js.map +1 -1
- package/dist/layouts/Sidebar.js +184 -165
- package/dist/layouts/Sidebar.js.map +1 -1
- package/dist/layouts/headbar/Headbar.js +25 -25
- package/dist/layouts/headbar/Headbar.js.map +1 -1
- package/dist/layouts/headbar/HeadbarLangSwitcher.js +39 -39
- package/dist/layouts/headbar/HeadbarLangSwitcher.js.map +1 -1
- package/dist/layouts/headbar/HeadbarSearch.js +120 -120
- package/dist/layouts/headbar/HeadbarSearch.js.map +1 -1
- package/dist/layouts/headbar/HeadbarThemeSwitcher.js +27 -27
- package/dist/layouts/headbar/HeadbarThemeSwitcher.js.map +1 -1
- package/dist/layouts/headbar/HeadbarTitle.js +26 -26
- package/dist/layouts/headbar/HeadbarTitle.js.map +1 -1
- package/dist/lite.js +9 -24
- package/dist/markdown.js +4 -9
- package/dist/pages/components/Calendar/index.d.ts +3 -0
- package/dist/pages/components/Calendar/index.en.d.ts +3 -0
- package/dist/pages/components/Calendar/index.zh.d.ts +3 -0
- package/dist/pages/components/Chat/index.d.ts +3 -0
- package/dist/pages/components/Chat/index.en.d.ts +3 -0
- package/dist/pages/components/Chat/index.zh.d.ts +3 -0
- package/dist/pages/components/FloatWindow/index.d.ts +3 -0
- package/dist/pages/components/FloatWindow/index.en.d.ts +3 -0
- package/dist/pages/components/FloatWindow/index.zh.d.ts +3 -0
- package/dist/pages/components/Gantt/index.d.ts +3 -0
- package/dist/pages/components/Gantt/index.en.d.ts +3 -0
- package/dist/pages/components/Gantt/index.zh.d.ts +3 -0
- package/dist/pages/components/GridLayout/index.d.ts +3 -0
- package/dist/pages/components/GridLayout/index.en.d.ts +3 -0
- package/dist/pages/components/GridLayout/index.zh.d.ts +3 -0
- package/dist/pages/components/Notification/index.d.ts +3 -0
- package/dist/pages/components/Notification/index.en.d.ts +3 -0
- package/dist/pages/components/Notification/index.zh.d.ts +3 -0
- package/dist/pages/components/Resizable/index.d.ts +3 -0
- package/dist/pages/components/Resizable/index.en.d.ts +3 -0
- package/dist/pages/components/Resizable/index.zh.d.ts +3 -0
- package/dist/pages/components/Tab/index.d.ts +3 -0
- package/dist/pages/components/Tab/index.en.d.ts +3 -0
- package/dist/pages/components/Tab/index.zh.d.ts +3 -0
- package/dist/styles/themeStyles.js +87 -86
- package/dist/styles/themeStyles.js.map +1 -1
- package/dist/utils/cn.d.ts +13 -0
- package/dist/utils/cn.js +16 -0
- package/dist/utils/cn.js.map +1 -0
- package/dist/utils/i18n.js +690 -602
- package/dist/utils/i18n.js.map +1 -1
- package/dist/utils/menu.js +94 -94
- package/dist/utils/menu.js.map +1 -1
- package/dist/utils/rehype-code-meta.js +14 -14
- package/dist/utils/rehype-code-meta.js.map +1 -1
- package/dist/utils/remark-code-meta.js +9 -9
- package/dist/utils/remark-code-meta.js.map +1 -1
- package/dist/utils/routerBuilder.js +59 -58
- package/dist/utils/routerBuilder.js.map +1 -1
- package/dist/utils/selection.js +28 -29
- package/dist/utils/selection.js.map +1 -1
- package/dist/utils/themes.js +275 -255
- package/dist/utils/themes.js.map +1 -1
- package/package.json +23 -10
|
@@ -1,62 +1,193 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { cn as e } from "../../utils/cn.js";
|
|
2
|
+
import t from "../Card/index.js";
|
|
2
3
|
import "react";
|
|
3
|
-
import { jsx as
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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;
|