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,76 +1,65 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
style: K,
|
|
62
|
-
onClick: I,
|
|
63
|
-
onDoubleClick: O,
|
|
64
|
-
onMouseEnter: q,
|
|
65
|
-
onMouseLeave: A,
|
|
66
|
-
onDragStart: F,
|
|
67
|
-
onDragEnd: G,
|
|
68
|
-
draggable: R,
|
|
69
|
-
children: k
|
|
70
|
-
});
|
|
71
|
-
};
|
|
72
|
-
export {
|
|
73
|
-
Z as default
|
|
1
|
+
import { cn as e } from "../../utils/cn.js";
|
|
2
|
+
import { useEffect as t, useRef as n, useState as r } from "react";
|
|
3
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
4
|
+
//#region src/components/Label/index.tsx
|
|
5
|
+
var a = ({ children: a, variant: o = "neutral", size: s = "sm", outline: c = !1, dash: l = !1, soft: u = !1, bold: d = !1, italic: f = !1, underline: p = !1, ellipsis: m = !1, maxWidth: h, stateTimeout: g, styleConfig: _ = {}, state: v, onStateChange: y, onClick: b, onDoubleClick: x, onMouseEnter: S, onMouseLeave: C, onDragStart: w, onDragEnd: T, draggable: E = !1, className: D = "", style: O = {} }) => {
|
|
6
|
+
let [k, A] = r("default"), j = v === void 0 ? k : v, M = n(null), N = (e) => {
|
|
7
|
+
v === void 0 && A(e), y?.(e), P(e);
|
|
8
|
+
}, P = (e = j) => {
|
|
9
|
+
M.current &&= (clearTimeout(M.current), null), g && e !== "default" && v === void 0 && (M.current = setTimeout(() => {
|
|
10
|
+
A("default"), y?.("default");
|
|
11
|
+
}, g));
|
|
12
|
+
};
|
|
13
|
+
t(() => (P(), () => {
|
|
14
|
+
M.current && clearTimeout(M.current);
|
|
15
|
+
}), [
|
|
16
|
+
j,
|
|
17
|
+
g,
|
|
18
|
+
v
|
|
19
|
+
]);
|
|
20
|
+
let F = {
|
|
21
|
+
xs: "text-xs",
|
|
22
|
+
sm: "text-sm",
|
|
23
|
+
md: "text-base",
|
|
24
|
+
lg: "text-lg",
|
|
25
|
+
xl: "text-xl"
|
|
26
|
+
}, ee = F[s] || F.md, I = c || l || u, L = I ? "badge" : "label dark:text-white", R = !I && o ? `text-${o}` : "", z = c ? "badge-outline" : "", B = l ? "badge-dash" : "", V = u ? "badge-soft" : "", H = I && o && o !== "neutral" ? `badge-${o}` : "", U = e(L, R, ee, z, B, V, H, d ? "font-bold" : "", f ? "italic" : "", p ? "underline" : "", m ? "truncate" : "", D), W = (e) => {
|
|
27
|
+
N("clicked"), b?.(e);
|
|
28
|
+
}, G = (e) => {
|
|
29
|
+
N("doubleClicked"), x?.(e);
|
|
30
|
+
}, K = (e) => {
|
|
31
|
+
N("hover"), S?.(e);
|
|
32
|
+
}, q = (e) => {
|
|
33
|
+
N("default"), C?.(e);
|
|
34
|
+
}, J = (e) => {
|
|
35
|
+
N("dragging"), w?.(e);
|
|
36
|
+
}, Y = (e) => {
|
|
37
|
+
N("default"), T?.(e);
|
|
38
|
+
}, X = _[j]?.style || {}, Z = _[j]?.className || "", Q = {
|
|
39
|
+
...O,
|
|
40
|
+
...X,
|
|
41
|
+
...h ? { maxWidth: h } : {},
|
|
42
|
+
...m ? {
|
|
43
|
+
display: "inline-block",
|
|
44
|
+
overflow: "hidden",
|
|
45
|
+
textOverflow: "ellipsis",
|
|
46
|
+
whiteSpace: "nowrap"
|
|
47
|
+
} : {}
|
|
48
|
+
}, $ = e(U, Z);
|
|
49
|
+
return /* @__PURE__ */ i("span", {
|
|
50
|
+
className: $,
|
|
51
|
+
style: Q,
|
|
52
|
+
onClick: W,
|
|
53
|
+
onDoubleClick: G,
|
|
54
|
+
onMouseEnter: K,
|
|
55
|
+
onMouseLeave: q,
|
|
56
|
+
onDragStart: J,
|
|
57
|
+
onDragEnd: Y,
|
|
58
|
+
draggable: E,
|
|
59
|
+
children: a
|
|
60
|
+
});
|
|
74
61
|
};
|
|
62
|
+
//#endregion
|
|
63
|
+
export { a as default };
|
|
75
64
|
|
|
76
65
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/Label/index.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef, DragEvent } from 'react';\n\n// 扩展LabelState类型为字符串,允许用户定义任意状态\nexport type LabelState = string;\n\nexport type LabelStyleConfig = {\n [key: string]: {\n className?: string;\n style?: React.CSSProperties;\n }\n};\n\nexport type LabelProps = {\n children: React.ReactNode;\n variant?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error';\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n outline?: boolean;\n dash?: boolean;\n soft?: boolean;\n bold?: boolean;\n italic?: boolean;\n underline?: boolean;\n ellipsis?: boolean;\n maxWidth?: string;\n stateTimeout?: number;\n styleConfig?: LabelStyleConfig;\n // 新增属性:用户自定义状态\n state?: LabelState;\n // 新增属性:状态变化回调\n onStateChange?: (newState: LabelState) => void;\n onClick?: (e: React.MouseEvent) => void;\n onDoubleClick?: (e: React.MouseEvent) => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseLeave?: (e: React.MouseEvent) => void;\n onDragStart?: (e: DragEvent<HTMLSpanElement>) => void;\n onDragEnd?: (e: DragEvent<HTMLSpanElement>) => void;\n draggable?: boolean;\n className?: string;\n style?: React.CSSProperties;\n};\n\nconst Label = ({\n children,\n variant = 'neutral',\n size = 'sm',\n outline = false,\n dash = false,\n soft = false,\n bold = false,\n italic = false,\n underline = false,\n ellipsis = false,\n maxWidth,\n stateTimeout,\n styleConfig = {},\n // 使用用户传入的状态,默认为'default'\n state: userState,\n onStateChange,\n onClick,\n onDoubleClick,\n onMouseEnter,\n onMouseLeave,\n onDragStart,\n onDragEnd,\n draggable = false,\n className = '',\n style = {},\n}: LabelProps) => {\n // 当用户传入state时使用用户的状态,否则内部管理状态\n const [internalState, setInternalState] = useState<LabelState>('default');\n const state = userState !== undefined ? userState : internalState;\n \n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n \n // 更新状态的函数,同时执行回调\n const updateState = (newState: LabelState) => {\n if (userState === undefined) {\n setInternalState(newState);\n }\n onStateChange
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/Label/index.tsx"],"sourcesContent":["import React, { useState, useEffect, useRef, DragEvent } from 'react';\nimport { cn } from '../../utils/cn';\n\n// 扩展LabelState类型为字符串,允许用户定义任意状态\nexport type LabelState = string;\n\nexport type LabelStyleConfig = {\n [key: string]: {\n className?: string;\n style?: React.CSSProperties;\n }\n};\n\nexport type LabelProps = {\n children: React.ReactNode;\n variant?: 'neutral' | 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error';\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n outline?: boolean;\n dash?: boolean;\n soft?: boolean;\n bold?: boolean;\n italic?: boolean;\n underline?: boolean;\n ellipsis?: boolean;\n maxWidth?: string;\n stateTimeout?: number;\n styleConfig?: LabelStyleConfig;\n // 新增属性:用户自定义状态\n state?: LabelState;\n // 新增属性:状态变化回调\n onStateChange?: (newState: LabelState) => void;\n onClick?: (e: React.MouseEvent) => void;\n onDoubleClick?: (e: React.MouseEvent) => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseLeave?: (e: React.MouseEvent) => void;\n onDragStart?: (e: DragEvent<HTMLSpanElement>) => void;\n onDragEnd?: (e: DragEvent<HTMLSpanElement>) => void;\n draggable?: boolean;\n className?: string;\n style?: React.CSSProperties;\n};\n\nconst Label = ({\n children,\n variant = 'neutral',\n size = 'sm',\n outline = false,\n dash = false,\n soft = false,\n bold = false,\n italic = false,\n underline = false,\n ellipsis = false,\n maxWidth,\n stateTimeout,\n styleConfig = {},\n // 使用用户传入的状态,默认为'default'\n state: userState,\n onStateChange,\n onClick,\n onDoubleClick,\n onMouseEnter,\n onMouseLeave,\n onDragStart,\n onDragEnd,\n draggable = false,\n className = '',\n style = {},\n}: LabelProps) => {\n // 当用户传入state时使用用户的状态,否则内部管理状态\n const [internalState, setInternalState] = useState<LabelState>('default');\n const state = userState !== undefined ? userState : internalState;\n \n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n \n // 更新状态的函数,同时执行回调\n const updateState = (newState: LabelState) => {\n if (userState === undefined) {\n setInternalState(newState);\n }\n onStateChange?.(newState);\n resetStateTimeout(newState);\n };\n \n // 重置状态计时器\n const resetStateTimeout = (currentState: LabelState = state) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n \n if (stateTimeout && currentState !== 'default' && userState === undefined) {\n timeoutRef.current = setTimeout(() => {\n setInternalState('default');\n onStateChange?.('default');\n }, stateTimeout);\n }\n };\n \n // 当状态变化或stateTimeout变化时重置计时器\n useEffect(() => {\n resetStateTimeout();\n \n // 清除计时器\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, [state, stateTimeout, userState]);\n \n // 尺寸类映射\n const sizeClassMap = {\n 'xs': 'text-xs',\n 'sm': 'text-sm',\n 'md': 'text-base',\n 'lg': 'text-lg',\n 'xl': 'text-xl',\n };\n const sizeClass = sizeClassMap[size] || sizeClassMap.md;\n \n // 样式类(依托 daisyUI badge 的 outline/dash/soft 外观,保证与主题联动)\n const decorated = outline || dash || soft;\n // 基础类:普通文本 label;带装饰时用 badge 充当“标签”容器\n //(装饰态不叠加 text-${variant}/dark:text-white,避免与 badge 自身前景色冲突)\n const baseClass = decorated ? 'badge' : 'label dark:text-white';\n const variantClass = !decorated && variant ? `text-${variant}` : '';\n const outlineClass = outline ? 'badge-outline' : '';\n const dashClass = dash ? 'badge-dash' : '';\n const softClass = soft ? 'badge-soft' : '';\n // 为带装饰的标签补上色调变体(badge-${variant}),让边框/底色跟随 variant\n const badgeVariantClass = decorated && variant && variant !== 'neutral' ? `badge-${variant}` : '';\n const boldClass = bold ? 'font-bold' : '';\n const italicClass = italic ? 'italic' : '';\n const underlineClass = underline ? 'underline' : '';\n const ellipsisClass = ellipsis ? 'truncate' : '';\n \n // 组合所有类名\n const labelClasses = cn(\n baseClass,\n variantClass,\n sizeClass,\n outlineClass,\n dashClass,\n softClass,\n badgeVariantClass,\n boldClass,\n italicClass,\n underlineClass,\n ellipsisClass,\n className\n );\n \n // 处理事件\n const handleClick = (e: React.MouseEvent) => {\n updateState('clicked');\n onClick?.(e);\n };\n \n const handleDoubleClick = (e: React.MouseEvent) => {\n updateState('doubleClicked');\n onDoubleClick?.(e);\n };\n \n const handleMouseEnter = (e: React.MouseEvent) => {\n updateState('hover');\n onMouseEnter?.(e);\n };\n \n const handleMouseLeave = (e: React.MouseEvent) => {\n updateState('default');\n onMouseLeave?.(e);\n };\n \n const handleDragStart = (e: DragEvent<HTMLSpanElement>) => {\n updateState('dragging');\n onDragStart?.(e);\n };\n \n const handleDragEnd = (e: DragEvent<HTMLSpanElement>) => {\n updateState('default');\n onDragEnd?.(e);\n };\n \n // 获取当前状态的自定义样式和类\n const stateStyle = styleConfig[state]?.style || {};\n const stateClassName = styleConfig[state]?.className || '';\n \n // 合并样式\n const combinedStyle = {\n ...style,\n ...stateStyle,\n ...(maxWidth ? { maxWidth } : {}),\n ...(ellipsis ? { display: 'inline-block', overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' } : {})\n };\n \n // 最终类名\n const finalClassName = cn(labelClasses, stateClassName);\n \n return (\n <span\n className={finalClassName}\n style={combinedStyle}\n onClick={handleClick}\n onDoubleClick={handleDoubleClick}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n draggable={draggable}\n >\n {children}\n </span>\n );\n};\n\nexport default Label; "],"mappings":";;;;AA0CA,IAAM,KAAS,EACb,aACA,aAAU,WACV,UAAO,MACP,aAAU,IACV,UAAO,IACP,UAAO,IACP,UAAO,IACP,YAAS,IACT,eAAY,IACZ,cAAW,IACX,aACA,iBACA,iBAAc,CAAC,GAEf,OAAO,GACP,kBACA,YACA,kBACA,iBACA,iBACA,gBACA,cACA,eAAY,IACZ,eAAY,IACZ,WAAQ,CAAC,QACO;CAEhB,IAAM,CAAC,GAAe,KAAoB,EAAqB,SAAS,GAClE,IAAQ,MAAc,KAAA,IAAwB,IAAZ,GAElC,IAAa,EAA6C,IAAI,GAG9D,KAAe,MAAyB;EAK5C,AAJI,MAAc,KAAA,KAChB,EAAiB,CAAQ,GAE3B,IAAgB,CAAQ,GACxB,EAAkB,CAAQ;CAC5B,GAGM,KAAqB,IAA2B,MAAU;EAM9D,AALA,AAEE,EAAW,aADX,aAAa,EAAW,OAAO,GACV,OAGnB,KAAgB,MAAiB,aAAa,MAAc,KAAA,MAC9D,EAAW,UAAU,iBAAiB;GAEpC,AADA,EAAiB,SAAS,GAC1B,IAAgB,SAAS;EAC3B,GAAG,CAAY;CAEnB;CAGA,SACE,EAAkB,SAGL;EACX,AAAI,EAAW,WACb,aAAa,EAAW,OAAO;CAEnC,IACC;EAAC;EAAO;EAAc;CAAS,CAAC;CAGnC,IAAM,IAAe;EACnB,IAAM;EACN,IAAM;EACN,IAAM;EACN,IAAM;EACN,IAAM;CACR,GACM,KAAY,EAAa,MAAS,EAAa,IAG/C,IAAY,KAAW,KAAQ,GAG/B,IAAY,IAAY,UAAU,yBAClC,IAAe,CAAC,KAAa,IAAU,QAAQ,MAAY,IAC3D,IAAe,IAAU,kBAAkB,IAC3C,IAAY,IAAO,eAAe,IAClC,IAAY,IAAO,eAAe,IAElC,IAAoB,KAAa,KAAW,MAAY,YAAY,SAAS,MAAY,IAOzF,IAAe,EACnB,GACA,GACA,IACA,GACA,GACA,GACA,GAbgB,IAAO,cAAc,IACnB,IAAS,WAAW,IACjB,IAAY,cAAc,IAC3B,IAAW,aAAa,IAe5C,CACF,GAGM,KAAe,MAAwB;EAE3C,AADA,EAAY,SAAS,GACrB,IAAU,CAAC;CACb,GAEM,KAAqB,MAAwB;EAEjD,AADA,EAAY,eAAe,GAC3B,IAAgB,CAAC;CACnB,GAEM,KAAoB,MAAwB;EAEhD,AADA,EAAY,OAAO,GACnB,IAAe,CAAC;CAClB,GAEM,KAAoB,MAAwB;EAEhD,AADA,EAAY,SAAS,GACrB,IAAe,CAAC;CAClB,GAEM,KAAmB,MAAkC;EAEzD,AADA,EAAY,UAAU,GACtB,IAAc,CAAC;CACjB,GAEM,KAAiB,MAAkC;EAEvD,AADA,EAAY,SAAS,GACrB,IAAY,CAAC;CACf,GAGM,IAAa,EAAY,EAAM,EAAE,SAAS,CAAC,GAC3C,IAAiB,EAAY,EAAM,EAAE,aAAa,IAGlD,IAAgB;EACpB,GAAG;EACH,GAAG;EACH,GAAI,IAAW,EAAE,YAAS,IAAI,CAAC;EAC/B,GAAI,IAAW;GAAE,SAAS;GAAgB,UAAU;GAAU,cAAc;GAAY,YAAY;EAAS,IAAI,CAAC;CACpH,GAGM,IAAiB,EAAG,GAAc,CAAc;CAEtD,OACE,kBAAC,QAAD;EACE,WAAW;EACX,OAAO;EACP,SAAS;EACT,eAAe;EACf,cAAc;EACd,cAAc;EACd,aAAa;EACb,WAAW;EACA;EAEV;CACG,CAAA;AAEV"}
|
|
@@ -1,142 +1,137 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
N as Container,
|
|
134
|
-
z as Flex,
|
|
135
|
-
b as Grid,
|
|
136
|
-
S as GridItem,
|
|
137
|
-
B as Group,
|
|
138
|
-
R as Space,
|
|
139
|
-
D as default
|
|
1
|
+
import { cn as e } from "../../utils/cn.js";
|
|
2
|
+
import { forwardRef as t } from "react";
|
|
3
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
4
|
+
//#region src/components/Layout/index.tsx
|
|
5
|
+
var r = {
|
|
6
|
+
sm: "640px",
|
|
7
|
+
md: "768px",
|
|
8
|
+
lg: "1024px",
|
|
9
|
+
xl: "1280px",
|
|
10
|
+
"2xl": "1536px",
|
|
11
|
+
full: "100%"
|
|
12
|
+
}, i = (e) => typeof e == "number" ? `${e}px` : e, a = (e) => typeof e == "string" ? r[e] ?? e : i(e), o = (e) => e === "start" || e === "end" ? `flex-${e}` : e, s = (e) => typeof e == "string" ? {
|
|
13
|
+
start: "flex-start",
|
|
14
|
+
end: "flex-end",
|
|
15
|
+
between: "space-between",
|
|
16
|
+
around: "space-around",
|
|
17
|
+
evenly: "space-evenly"
|
|
18
|
+
}[e] ?? e : e, c = (e) => typeof e == "number" ? `${e}px` : e, l = (e, t) => {
|
|
19
|
+
if (!Number.isInteger(e) || e <= 0) throw Error(`Layout.${t} must be a positive integer.`);
|
|
20
|
+
return e;
|
|
21
|
+
}, u = (e, t) => {
|
|
22
|
+
if (!Number.isFinite(e) || e <= 0) throw Error(`Layout.${t} must be a positive number.`);
|
|
23
|
+
return e;
|
|
24
|
+
}, d = (e) => {
|
|
25
|
+
if (typeof e == "number") return `repeat(${l(e, "Grid columns")}, minmax(0, 1fr))`;
|
|
26
|
+
if (typeof e == "string") return e;
|
|
27
|
+
if (e.length === 0) throw Error("Layout.Grid columns ratio must contain at least one value.");
|
|
28
|
+
return e.map((e) => `${u(e, "Grid ratio")}fr`).join(" ");
|
|
29
|
+
}, f = (e) => typeof e == "number" ? `span ${l(e, "Grid.Item span")} / span ${e}` : e, p = (e, t) => typeof e == "number" ? l(e, t) : e, m = t(function({ maxWidth: t = 1280, padding: r = "1rem", centered: o = !0, fluid: s = !1, responsive: c = !1, className: l = "", style: u, ...d }, f) {
|
|
30
|
+
return /* @__PURE__ */ n("div", {
|
|
31
|
+
ref: f,
|
|
32
|
+
className: e("dishui-layout-container", l),
|
|
33
|
+
style: {
|
|
34
|
+
width: "100%",
|
|
35
|
+
maxWidth: s ? void 0 : a(t),
|
|
36
|
+
marginInline: o && !s ? "auto" : void 0,
|
|
37
|
+
paddingInline: c ? `clamp(${i(r)}, 4vw, max(${i(r)}, 2rem))` : i(r),
|
|
38
|
+
...u
|
|
39
|
+
},
|
|
40
|
+
...d
|
|
41
|
+
});
|
|
42
|
+
}), h = t(function({ span: t, start: r, offset: i, rowSpan: a, rowStart: o, className: s = "", style: c, ...u }, d) {
|
|
43
|
+
return /* @__PURE__ */ n("div", {
|
|
44
|
+
ref: d,
|
|
45
|
+
className: e("dishui-layout-grid-item", s),
|
|
46
|
+
style: {
|
|
47
|
+
gridColumn: f(t),
|
|
48
|
+
gridColumnStart: p(r ?? (i === void 0 ? void 0 : l(i + 1, "Grid.Item offset")), "Grid.Item start"),
|
|
49
|
+
gridRow: f(a),
|
|
50
|
+
gridRowStart: p(o, "Grid.Item rowStart"),
|
|
51
|
+
minWidth: 0,
|
|
52
|
+
...c
|
|
53
|
+
},
|
|
54
|
+
...u
|
|
55
|
+
});
|
|
56
|
+
}), g = t(function({ columns: t = 12, gap: r, space: i, rowGap: a, columnGap: l, align: u, justify: f, autoRows: p, dense: m = !1, className: h = "", style: g, ..._ }, v) {
|
|
57
|
+
return /* @__PURE__ */ n("div", {
|
|
58
|
+
ref: v,
|
|
59
|
+
className: e("dishui-layout-grid", h),
|
|
60
|
+
style: {
|
|
61
|
+
display: "grid",
|
|
62
|
+
gridTemplateColumns: d(t),
|
|
63
|
+
gap: c(r ?? i),
|
|
64
|
+
rowGap: c(a),
|
|
65
|
+
columnGap: c(l),
|
|
66
|
+
alignItems: o(u),
|
|
67
|
+
justifyContent: s(f),
|
|
68
|
+
gridAutoRows: p,
|
|
69
|
+
gridAutoFlow: m ? "row dense" : void 0,
|
|
70
|
+
...g
|
|
71
|
+
},
|
|
72
|
+
..._
|
|
73
|
+
});
|
|
74
|
+
}), _ = t(function({ direction: t = "row", wrap: r = "nowrap", align: i = "center", justify: a = "start", gap: l, fullWidth: u = !1, className: d = "", style: f, ...p }, m) {
|
|
75
|
+
return /* @__PURE__ */ n("div", {
|
|
76
|
+
ref: m,
|
|
77
|
+
className: e("dishui-layout-group", d),
|
|
78
|
+
style: {
|
|
79
|
+
display: "flex",
|
|
80
|
+
width: u ? "100%" : void 0,
|
|
81
|
+
flexDirection: t,
|
|
82
|
+
flexWrap: r,
|
|
83
|
+
alignItems: o(i),
|
|
84
|
+
justifyContent: s(a),
|
|
85
|
+
gap: c(l),
|
|
86
|
+
...f
|
|
87
|
+
},
|
|
88
|
+
...p
|
|
89
|
+
});
|
|
90
|
+
}), v = t(function({ direction: t = "horizontal", size: r = 16, flex: a, className: o = "", style: s, ...c }, l) {
|
|
91
|
+
let u = i(r);
|
|
92
|
+
return /* @__PURE__ */ n("span", {
|
|
93
|
+
ref: l,
|
|
94
|
+
"aria-hidden": "true",
|
|
95
|
+
className: e("dishui-layout-space", o),
|
|
96
|
+
style: {
|
|
97
|
+
display: "block",
|
|
98
|
+
flex: a ?? "0 0 auto",
|
|
99
|
+
width: t === "horizontal" ? u : "100%",
|
|
100
|
+
minWidth: t === "horizontal" ? u : void 0,
|
|
101
|
+
height: t === "vertical" ? u : 1,
|
|
102
|
+
minHeight: t === "vertical" ? u : void 0,
|
|
103
|
+
pointerEvents: "none",
|
|
104
|
+
...s
|
|
105
|
+
},
|
|
106
|
+
...c
|
|
107
|
+
});
|
|
108
|
+
}), y = t(function({ direction: t = "row", wrap: r = "nowrap", align: i, justify: a, gap: l, rowGap: u, columnGap: d, inline: f = !1, className: p = "", style: m, ...h }, g) {
|
|
109
|
+
return /* @__PURE__ */ n("div", {
|
|
110
|
+
ref: g,
|
|
111
|
+
className: e("dishui-layout-flex", p),
|
|
112
|
+
style: {
|
|
113
|
+
display: f ? "inline-flex" : "flex",
|
|
114
|
+
flexDirection: t,
|
|
115
|
+
flexWrap: r,
|
|
116
|
+
alignItems: o(i),
|
|
117
|
+
justifyContent: s(a),
|
|
118
|
+
gap: c(l),
|
|
119
|
+
rowGap: c(u),
|
|
120
|
+
columnGap: c(d),
|
|
121
|
+
...m
|
|
122
|
+
},
|
|
123
|
+
...h
|
|
124
|
+
});
|
|
125
|
+
}), b = g;
|
|
126
|
+
b.Item = h;
|
|
127
|
+
var x = {
|
|
128
|
+
Container: m,
|
|
129
|
+
Grid: b,
|
|
130
|
+
Flex: y,
|
|
131
|
+
Group: _,
|
|
132
|
+
Space: v
|
|
140
133
|
};
|
|
134
|
+
//#endregion
|
|
135
|
+
export { m as Container, y as Flex, b as Grid, h as GridItem, _ as Group, v as Space, x as default };
|
|
141
136
|
|
|
142
137
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/Layout/index.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nexport type LayoutGap = number | string;\nexport type GridColumns = number | readonly number[] | string;\nexport type GridPlacement = number | string;\nexport type LayoutMaxWidth = number | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | string;\nexport type LayoutAlign = React.CSSProperties['alignItems'] | 'start' | 'end';\nexport type LayoutJustify = React.CSSProperties['justifyContent'] | 'start' | 'end' | 'between' | 'around' | 'evenly';\n\nexport type LayoutContainerProps = React.HTMLAttributes<HTMLDivElement> & {\n /** Maximum content width. Numbers are interpreted as pixels. */\n maxWidth?: LayoutMaxWidth;\n /** Horizontal container padding. Numbers are interpreted as pixels. */\n padding?: number | string;\n /** Centers the container when a max width is applied. */\n centered?: boolean;\n /** Makes the container span the available width. */\n fluid?: boolean;\n /** Uses adaptive horizontal padding that grows with the viewport. */\n responsive?: boolean;\n};\n\nexport type LayoutGridProps = React.HTMLAttributes<HTMLDivElement> & {\n /** Column count (12 by default) or a custom ratio such as [1, 2, 1] or \"1fr 2fr 1fr\". */\n columns?: GridColumns;\n gap?: LayoutGap;\n /** Alias for gap. gap takes precedence when both are provided. */\n space?: LayoutGap;\n rowGap?: LayoutGap;\n columnGap?: LayoutGap;\n align?: LayoutAlign;\n justify?: LayoutJustify;\n autoRows?: React.CSSProperties['gridAutoRows'];\n dense?: boolean;\n};\n\nexport type LayoutGridItemProps = React.HTMLAttributes<HTMLDivElement> & {\n /** Number of grid tracks to span, or a valid CSS grid-column value. */\n span?: GridPlacement;\n /** One-based grid column start, or a valid CSS grid-column-start value. */\n start?: GridPlacement;\n /** Number of empty tracks before the item. Ignored when start is set. */\n offset?: number;\n rowSpan?: GridPlacement;\n rowStart?: GridPlacement;\n};\n\nexport type LayoutFlexProps = React.HTMLAttributes<HTMLDivElement> & {\n direction?: React.CSSProperties['flexDirection'];\n wrap?: React.CSSProperties['flexWrap'];\n align?: LayoutAlign;\n justify?: LayoutJustify;\n gap?: LayoutGap;\n rowGap?: LayoutGap;\n columnGap?: LayoutGap;\n inline?: boolean;\n};\n\nexport type LayoutGroupProps = React.HTMLAttributes<HTMLDivElement> & {\n direction?: React.CSSProperties['flexDirection'];\n wrap?: React.CSSProperties['flexWrap'];\n align?: LayoutAlign;\n justify?: LayoutJustify;\n gap?: LayoutGap;\n fullWidth?: boolean;\n};\n\nexport type LayoutSpaceProps = React.HTMLAttributes<HTMLSpanElement> & {\n direction?: 'horizontal' | 'vertical';\n /** Width for horizontal spaces and height for vertical spaces. */\n size?: number | string;\n /** Makes the spacer consume remaining flex space. */\n flex?: number | string;\n};\n\nconst maxWidths: Record<string, string> = {\n sm: '640px',\n md: '768px',\n lg: '1024px',\n xl: '1280px',\n '2xl': '1536px',\n full: '100%',\n};\n\nconst cssSize = (value: number | string | undefined): string | undefined =>\n typeof value === 'number' ? `${value}px` : value;\n\nconst cssMaxWidth = (value: LayoutMaxWidth | undefined): string | undefined =>\n typeof value === 'string' ? maxWidths[value] ?? value : cssSize(value);\n\nconst cssAlign = (value: LayoutAlign | undefined): React.CSSProperties['alignItems'] =>\n value === 'start' || value === 'end' ? `flex-${value}` : value;\n\nconst cssJustify = (value: LayoutJustify | undefined): React.CSSProperties['justifyContent'] => {\n const aliases: Record<string, React.CSSProperties['justifyContent']> = {\n start: 'flex-start',\n end: 'flex-end',\n between: 'space-between',\n around: 'space-around',\n evenly: 'space-evenly',\n };\n return typeof value === 'string' ? aliases[value] ?? value : value;\n};\n\nconst cssGap = (value: LayoutGap | undefined): string | undefined =>\n typeof value === 'number' ? `${value}px` : value;\n\nconst positiveInteger = (value: number, name: string): number => {\n if (!Number.isInteger(value) || value <= 0) {\n throw new Error(`Layout.${name} must be a positive integer.`);\n }\n return value;\n};\n\nconst positiveNumber = (value: number, name: string): number => {\n if (!Number.isFinite(value) || value <= 0) {\n throw new Error(`Layout.${name} must be a positive number.`);\n }\n return value;\n};\n\nconst gridTemplateColumns = (columns: GridColumns): string => {\n if (typeof columns === 'number') {\n return `repeat(${positiveInteger(columns, 'Grid columns')}, minmax(0, 1fr))`;\n }\n\n if (typeof columns === 'string') {\n return columns;\n }\n\n if (columns.length === 0) {\n throw new Error('Layout.Grid columns ratio must contain at least one value.');\n }\n\n return columns\n .map((ratio) => `${positiveNumber(ratio, 'Grid ratio')}fr`)\n .join(' ');\n};\n\nconst gridSpan = (value: GridPlacement | undefined): string | number | undefined =>\n typeof value === 'number'\n ? `span ${positiveInteger(value, 'Grid.Item span')} / span ${value}`\n : value;\n\nconst gridStart = (value: GridPlacement | undefined, name: string): string | number | undefined =>\n typeof value === 'number' ? positiveInteger(value, name) : value;\n\nconst Container = forwardRef<HTMLDivElement, LayoutContainerProps>(function LayoutContainer(\n {\n maxWidth = 1280,\n padding = '1rem',\n centered = true,\n fluid = false,\n responsive = false,\n className = '',\n style,\n ...props\n },\n ref,\n) {\n return (\n <div\n ref={ref}\n className={['dishui-layout-container', className].filter(Boolean).join(' ')}\n style={{\n width: '100%',\n maxWidth: fluid ? undefined : cssMaxWidth(maxWidth),\n marginInline: centered && !fluid ? 'auto' : undefined,\n paddingInline: responsive\n ? `clamp(${cssSize(padding)}, 4vw, max(${cssSize(padding)}, 2rem))`\n : cssSize(padding),\n ...style,\n }}\n {...props}\n />\n );\n});\n\nconst GridItem = forwardRef<HTMLDivElement, LayoutGridItemProps>(function LayoutGridItem(\n { span, start, offset, rowSpan, rowStart, className = '', style, ...props },\n ref,\n) {\n return (\n <div\n ref={ref}\n className={['dishui-layout-grid-item', className].filter(Boolean).join(' ')}\n style={{\n gridColumn: gridSpan(span),\n gridColumnStart: gridStart(\n start ?? (offset !== undefined ? positiveInteger(offset + 1, 'Grid.Item offset') : undefined),\n 'Grid.Item start',\n ),\n gridRow: gridSpan(rowSpan),\n gridRowStart: gridStart(rowStart, 'Grid.Item rowStart'),\n minWidth: 0,\n ...style,\n }}\n {...props}\n />\n );\n});\n\nconst GridRoot = forwardRef<HTMLDivElement, LayoutGridProps>(function LayoutGrid(\n {\n columns = 12,\n gap,\n space,\n rowGap,\n columnGap,\n align,\n justify,\n autoRows,\n dense = false,\n className = '',\n style,\n ...props\n },\n ref,\n) {\n return (\n <div\n ref={ref}\n className={['dishui-layout-grid', className].filter(Boolean).join(' ')}\n style={{\n display: 'grid',\n gridTemplateColumns: gridTemplateColumns(columns),\n gap: cssGap(gap ?? space),\n rowGap: cssGap(rowGap),\n columnGap: cssGap(columnGap),\n alignItems: cssAlign(align),\n justifyContent: cssJustify(justify),\n gridAutoRows: autoRows,\n gridAutoFlow: dense ? 'row dense' : undefined,\n ...style,\n }}\n {...props}\n />\n );\n});\n\nconst Group = forwardRef<HTMLDivElement, LayoutGroupProps>(function LayoutGroup(\n {\n direction = 'row',\n wrap = 'nowrap',\n align = 'center',\n justify = 'start',\n gap,\n fullWidth = false,\n className = '',\n style,\n ...props\n },\n ref,\n) {\n return (\n <div\n ref={ref}\n className={['dishui-layout-group', className].filter(Boolean).join(' ')}\n style={{\n display: 'flex',\n width: fullWidth ? '100%' : undefined,\n flexDirection: direction,\n flexWrap: wrap,\n alignItems: cssAlign(align),\n justifyContent: cssJustify(justify),\n gap: cssGap(gap),\n ...style,\n }}\n {...props}\n />\n );\n});\n\nconst Space = forwardRef<HTMLSpanElement, LayoutSpaceProps>(function LayoutSpace(\n { direction = 'horizontal', size = 16, flex, className = '', style, ...props },\n ref,\n) {\n const dimension = cssSize(size);\n\n return (\n <span\n ref={ref}\n aria-hidden=\"true\"\n className={['dishui-layout-space', className].filter(Boolean).join(' ')}\n style={{\n display: 'block',\n flex: flex ?? '0 0 auto',\n width: direction === 'horizontal' ? dimension : '100%',\n minWidth: direction === 'horizontal' ? dimension : undefined,\n height: direction === 'vertical' ? dimension : 1,\n minHeight: direction === 'vertical' ? dimension : undefined,\n pointerEvents: 'none',\n ...style,\n }}\n {...props}\n />\n );\n});\n\nconst Flex = forwardRef<HTMLDivElement, LayoutFlexProps>(function LayoutFlex(\n {\n direction = 'row',\n wrap = 'nowrap',\n align,\n justify,\n gap,\n rowGap,\n columnGap,\n inline = false,\n className = '',\n style,\n ...props\n },\n ref,\n) {\n return (\n <div\n ref={ref}\n className={['dishui-layout-flex', className].filter(Boolean).join(' ')}\n style={{\n display: inline ? 'inline-flex' : 'flex',\n flexDirection: direction,\n flexWrap: wrap,\n alignItems: cssAlign(align),\n justifyContent: cssJustify(justify),\n gap: cssGap(gap),\n rowGap: cssGap(rowGap),\n columnGap: cssGap(columnGap),\n ...style,\n }}\n {...props}\n />\n );\n});\n\ninterface LayoutGridCompound extends React.ForwardRefExoticComponent<\n LayoutGridProps & React.RefAttributes<HTMLDivElement>\n> {\n Item: typeof GridItem;\n}\n\nconst Grid = GridRoot as LayoutGridCompound;\nGrid.Item = GridItem;\n\nexport interface LayoutCompound {\n Container: typeof Container;\n Grid: LayoutGridCompound;\n Flex: typeof Flex;\n Group: typeof Group;\n Space: typeof Space;\n}\n\nconst Layout: LayoutCompound = {\n Container,\n Grid,\n Flex,\n Group,\n Space,\n};\n\nexport { Container, Grid, GridItem, Flex, Group, Space };\nexport default Layout;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/Layout/index.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { cn } from '../../utils/cn';\n\nexport type LayoutGap = number | string;\nexport type GridColumns = number | readonly number[] | string;\nexport type GridPlacement = number | string;\nexport type LayoutMaxWidth = number | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full' | string;\nexport type LayoutAlign = React.CSSProperties['alignItems'] | 'start' | 'end';\nexport type LayoutJustify = React.CSSProperties['justifyContent'] | 'start' | 'end' | 'between' | 'around' | 'evenly';\n\nexport type LayoutContainerProps = React.HTMLAttributes<HTMLDivElement> & {\n /** Maximum content width. Numbers are interpreted as pixels. */\n maxWidth?: LayoutMaxWidth;\n /** Horizontal container padding. Numbers are interpreted as pixels. */\n padding?: number | string;\n /** Centers the container when a max width is applied. */\n centered?: boolean;\n /** Makes the container span the available width. */\n fluid?: boolean;\n /** Uses adaptive horizontal padding that grows with the viewport. */\n responsive?: boolean;\n};\n\nexport type LayoutGridProps = React.HTMLAttributes<HTMLDivElement> & {\n /** Column count (12 by default) or a custom ratio such as [1, 2, 1] or \"1fr 2fr 1fr\". */\n columns?: GridColumns;\n gap?: LayoutGap;\n /** Alias for gap. gap takes precedence when both are provided. */\n space?: LayoutGap;\n rowGap?: LayoutGap;\n columnGap?: LayoutGap;\n align?: LayoutAlign;\n justify?: LayoutJustify;\n autoRows?: React.CSSProperties['gridAutoRows'];\n dense?: boolean;\n};\n\nexport type LayoutGridItemProps = React.HTMLAttributes<HTMLDivElement> & {\n /** Number of grid tracks to span, or a valid CSS grid-column value. */\n span?: GridPlacement;\n /** One-based grid column start, or a valid CSS grid-column-start value. */\n start?: GridPlacement;\n /** Number of empty tracks before the item. Ignored when start is set. */\n offset?: number;\n rowSpan?: GridPlacement;\n rowStart?: GridPlacement;\n};\n\nexport type LayoutFlexProps = React.HTMLAttributes<HTMLDivElement> & {\n direction?: React.CSSProperties['flexDirection'];\n wrap?: React.CSSProperties['flexWrap'];\n align?: LayoutAlign;\n justify?: LayoutJustify;\n gap?: LayoutGap;\n rowGap?: LayoutGap;\n columnGap?: LayoutGap;\n inline?: boolean;\n};\n\nexport type LayoutGroupProps = React.HTMLAttributes<HTMLDivElement> & {\n direction?: React.CSSProperties['flexDirection'];\n wrap?: React.CSSProperties['flexWrap'];\n align?: LayoutAlign;\n justify?: LayoutJustify;\n gap?: LayoutGap;\n fullWidth?: boolean;\n};\n\nexport type LayoutSpaceProps = React.HTMLAttributes<HTMLSpanElement> & {\n direction?: 'horizontal' | 'vertical';\n /** Width for horizontal spaces and height for vertical spaces. */\n size?: number | string;\n /** Makes the spacer consume remaining flex space. */\n flex?: number | string;\n};\n\nconst maxWidths: Record<string, string> = {\n sm: '640px',\n md: '768px',\n lg: '1024px',\n xl: '1280px',\n '2xl': '1536px',\n full: '100%',\n};\n\nconst cssSize = (value: number | string | undefined): string | undefined =>\n typeof value === 'number' ? `${value}px` : value;\n\nconst cssMaxWidth = (value: LayoutMaxWidth | undefined): string | undefined =>\n typeof value === 'string' ? maxWidths[value] ?? value : cssSize(value);\n\nconst cssAlign = (value: LayoutAlign | undefined): React.CSSProperties['alignItems'] =>\n value === 'start' || value === 'end' ? `flex-${value}` : value;\n\nconst cssJustify = (value: LayoutJustify | undefined): React.CSSProperties['justifyContent'] => {\n const aliases: Record<string, React.CSSProperties['justifyContent']> = {\n start: 'flex-start',\n end: 'flex-end',\n between: 'space-between',\n around: 'space-around',\n evenly: 'space-evenly',\n };\n return typeof value === 'string' ? aliases[value] ?? value : value;\n};\n\nconst cssGap = (value: LayoutGap | undefined): string | undefined =>\n typeof value === 'number' ? `${value}px` : value;\n\nconst positiveInteger = (value: number, name: string): number => {\n if (!Number.isInteger(value) || value <= 0) {\n throw new Error(`Layout.${name} must be a positive integer.`);\n }\n return value;\n};\n\nconst positiveNumber = (value: number, name: string): number => {\n if (!Number.isFinite(value) || value <= 0) {\n throw new Error(`Layout.${name} must be a positive number.`);\n }\n return value;\n};\n\nconst gridTemplateColumns = (columns: GridColumns): string => {\n if (typeof columns === 'number') {\n return `repeat(${positiveInteger(columns, 'Grid columns')}, minmax(0, 1fr))`;\n }\n\n if (typeof columns === 'string') {\n return columns;\n }\n\n if (columns.length === 0) {\n throw new Error('Layout.Grid columns ratio must contain at least one value.');\n }\n\n return columns\n .map((ratio) => `${positiveNumber(ratio, 'Grid ratio')}fr`)\n .join(' ');\n};\n\nconst gridSpan = (value: GridPlacement | undefined): string | number | undefined =>\n typeof value === 'number'\n ? `span ${positiveInteger(value, 'Grid.Item span')} / span ${value}`\n : value;\n\nconst gridStart = (value: GridPlacement | undefined, name: string): string | number | undefined =>\n typeof value === 'number' ? positiveInteger(value, name) : value;\n\nconst Container = forwardRef<HTMLDivElement, LayoutContainerProps>(function LayoutContainer(\n {\n maxWidth = 1280,\n padding = '1rem',\n centered = true,\n fluid = false,\n responsive = false,\n className = '',\n style,\n ...props\n },\n ref,\n) {\n return (\n <div\n ref={ref}\n className={cn('dishui-layout-container', className)}\n style={{\n width: '100%',\n maxWidth: fluid ? undefined : cssMaxWidth(maxWidth),\n marginInline: centered && !fluid ? 'auto' : undefined,\n paddingInline: responsive\n ? `clamp(${cssSize(padding)}, 4vw, max(${cssSize(padding)}, 2rem))`\n : cssSize(padding),\n ...style,\n }}\n {...props}\n />\n );\n});\n\nconst GridItem = forwardRef<HTMLDivElement, LayoutGridItemProps>(function LayoutGridItem(\n { span, start, offset, rowSpan, rowStart, className = '', style, ...props },\n ref,\n) {\n return (\n <div\n ref={ref}\n className={cn('dishui-layout-grid-item', className)}\n style={{\n gridColumn: gridSpan(span),\n gridColumnStart: gridStart(\n start ?? (offset !== undefined ? positiveInteger(offset + 1, 'Grid.Item offset') : undefined),\n 'Grid.Item start',\n ),\n gridRow: gridSpan(rowSpan),\n gridRowStart: gridStart(rowStart, 'Grid.Item rowStart'),\n minWidth: 0,\n ...style,\n }}\n {...props}\n />\n );\n});\n\nconst GridRoot = forwardRef<HTMLDivElement, LayoutGridProps>(function LayoutGrid(\n {\n columns = 12,\n gap,\n space,\n rowGap,\n columnGap,\n align,\n justify,\n autoRows,\n dense = false,\n className = '',\n style,\n ...props\n },\n ref,\n) {\n return (\n <div\n ref={ref}\n className={cn('dishui-layout-grid', className)}\n style={{\n display: 'grid',\n gridTemplateColumns: gridTemplateColumns(columns),\n gap: cssGap(gap ?? space),\n rowGap: cssGap(rowGap),\n columnGap: cssGap(columnGap),\n alignItems: cssAlign(align),\n justifyContent: cssJustify(justify),\n gridAutoRows: autoRows,\n gridAutoFlow: dense ? 'row dense' : undefined,\n ...style,\n }}\n {...props}\n />\n );\n});\n\nconst Group = forwardRef<HTMLDivElement, LayoutGroupProps>(function LayoutGroup(\n {\n direction = 'row',\n wrap = 'nowrap',\n align = 'center',\n justify = 'start',\n gap,\n fullWidth = false,\n className = '',\n style,\n ...props\n },\n ref,\n) {\n return (\n <div\n ref={ref}\n className={cn('dishui-layout-group', className)}\n style={{\n display: 'flex',\n width: fullWidth ? '100%' : undefined,\n flexDirection: direction,\n flexWrap: wrap,\n alignItems: cssAlign(align),\n justifyContent: cssJustify(justify),\n gap: cssGap(gap),\n ...style,\n }}\n {...props}\n />\n );\n});\n\nconst Space = forwardRef<HTMLSpanElement, LayoutSpaceProps>(function LayoutSpace(\n { direction = 'horizontal', size = 16, flex, className = '', style, ...props },\n ref,\n) {\n const dimension = cssSize(size);\n\n return (\n <span\n ref={ref}\n aria-hidden=\"true\"\n className={cn('dishui-layout-space', className)}\n style={{\n display: 'block',\n flex: flex ?? '0 0 auto',\n width: direction === 'horizontal' ? dimension : '100%',\n minWidth: direction === 'horizontal' ? dimension : undefined,\n height: direction === 'vertical' ? dimension : 1,\n minHeight: direction === 'vertical' ? dimension : undefined,\n pointerEvents: 'none',\n ...style,\n }}\n {...props}\n />\n );\n});\n\nconst Flex = forwardRef<HTMLDivElement, LayoutFlexProps>(function LayoutFlex(\n {\n direction = 'row',\n wrap = 'nowrap',\n align,\n justify,\n gap,\n rowGap,\n columnGap,\n inline = false,\n className = '',\n style,\n ...props\n },\n ref,\n) {\n return (\n <div\n ref={ref}\n className={cn('dishui-layout-flex', className)}\n style={{\n display: inline ? 'inline-flex' : 'flex',\n flexDirection: direction,\n flexWrap: wrap,\n alignItems: cssAlign(align),\n justifyContent: cssJustify(justify),\n gap: cssGap(gap),\n rowGap: cssGap(rowGap),\n columnGap: cssGap(columnGap),\n ...style,\n }}\n {...props}\n />\n );\n});\n\ninterface LayoutGridCompound extends React.ForwardRefExoticComponent<\n LayoutGridProps & React.RefAttributes<HTMLDivElement>\n> {\n Item: typeof GridItem;\n}\n\nconst Grid = GridRoot as LayoutGridCompound;\nGrid.Item = GridItem;\n\nexport interface LayoutCompound {\n Container: typeof Container;\n Grid: LayoutGridCompound;\n Flex: typeof Flex;\n Group: typeof Group;\n Space: typeof Space;\n}\n\nconst Layout: LayoutCompound = {\n Container,\n Grid,\n Flex,\n Group,\n Space,\n};\n\nexport { Container, Grid, GridItem, Flex, Group, Space };\nexport default Layout;\n"],"mappings":";;;;AA4EA,IAAM,IAAoC;CACxC,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACP,MAAM;AACR,GAEM,KAAW,MACf,OAAO,KAAU,WAAW,GAAG,EAAM,MAAM,GAEvC,KAAe,MACnB,OAAO,KAAU,WAAW,EAAU,MAAU,IAAQ,EAAQ,CAAK,GAEjE,KAAY,MAChB,MAAU,WAAW,MAAU,QAAQ,QAAQ,MAAU,GAErD,KAAc,MAQX,OAAO,KAAU,WAAW;CANjC,OAAO;CACP,KAAK;CACL,SAAS;CACT,QAAQ;CACR,QAAQ;AAEyB,EAAQ,MAAU,IAAQ,GAGzD,KAAU,MACd,OAAO,KAAU,WAAW,GAAG,EAAM,MAAM,GAEvC,KAAmB,GAAe,MAAyB;CAC/D,IAAI,CAAC,OAAO,UAAU,CAAK,KAAK,KAAS,GACvC,MAAU,MAAM,UAAU,EAAK,6BAA6B;CAE9D,OAAO;AACT,GAEM,KAAkB,GAAe,MAAyB;CAC9D,IAAI,CAAC,OAAO,SAAS,CAAK,KAAK,KAAS,GACtC,MAAU,MAAM,UAAU,EAAK,4BAA4B;CAE7D,OAAO;AACT,GAEM,KAAuB,MAAiC;CAC5D,IAAI,OAAO,KAAY,UACrB,OAAO,UAAU,EAAgB,GAAS,cAAc,EAAE;CAG5D,IAAI,OAAO,KAAY,UACrB,OAAO;CAGT,IAAI,EAAQ,WAAW,GACrB,MAAU,MAAM,4DAA4D;CAG9E,OAAO,EACJ,KAAK,MAAU,GAAG,EAAe,GAAO,YAAY,EAAE,GAAG,CAAC,CAC1D,KAAK,GAAG;AACb,GAEM,KAAY,MAChB,OAAO,KAAU,WACb,QAAQ,EAAgB,GAAO,gBAAgB,EAAE,UAAU,MAC3D,GAEA,KAAa,GAAkC,MACnD,OAAO,KAAU,WAAW,EAAgB,GAAO,CAAI,IAAI,GAEvD,IAAY,EAAiD,SACjE,EACE,cAAW,MACX,aAAU,QACV,cAAW,IACX,WAAQ,IACR,gBAAa,IACb,eAAY,IACZ,UACA,GAAG,KAEL,GACA;CACA,OACE,kBAAC,OAAD;EACO;EACL,WAAW,EAAG,2BAA2B,CAAS;EAClD,OAAO;GACL,OAAO;GACP,UAAU,IAAQ,KAAA,IAAY,EAAY,CAAQ;GAClD,cAAc,KAAY,CAAC,IAAQ,SAAS,KAAA;GAC5C,eAAe,IACX,SAAS,EAAQ,CAAO,EAAE,aAAa,EAAQ,CAAO,EAAE,YACxD,EAAQ,CAAO;GACnB,GAAG;EACL;EACA,GAAI;CACL,CAAA;AAEL,CAAC,GAEK,IAAW,EAAgD,SAC/D,EAAE,SAAM,UAAO,WAAQ,YAAS,aAAU,eAAY,IAAI,UAAO,GAAG,KACpE,GACA;CACA,OACE,kBAAC,OAAD;EACO;EACL,WAAW,EAAG,2BAA2B,CAAS;EAClD,OAAO;GACL,YAAY,EAAS,CAAI;GACzB,iBAAiB,EACf,MAAU,MAAW,KAAA,IAA8D,KAAA,IAAlD,EAAgB,IAAS,GAAG,kBAAkB,IAC/E,iBACF;GACA,SAAS,EAAS,CAAO;GACzB,cAAc,EAAU,GAAU,oBAAoB;GACtD,UAAU;GACV,GAAG;EACL;EACA,GAAI;CACL,CAAA;AAEL,CAAC,GAEK,IAAW,EAA4C,SAC3D,EACE,aAAU,IACV,QACA,UACA,WACA,cACA,UACA,YACA,aACA,WAAQ,IACR,eAAY,IACZ,UACA,GAAG,KAEL,GACA;CACA,OACE,kBAAC,OAAD;EACO;EACL,WAAW,EAAG,sBAAsB,CAAS;EAC7C,OAAO;GACL,SAAS;GACT,qBAAqB,EAAoB,CAAO;GAChD,KAAK,EAAO,KAAO,CAAK;GACxB,QAAQ,EAAO,CAAM;GACrB,WAAW,EAAO,CAAS;GAC3B,YAAY,EAAS,CAAK;GAC1B,gBAAgB,EAAW,CAAO;GAClC,cAAc;GACd,cAAc,IAAQ,cAAc,KAAA;GACpC,GAAG;EACL;EACA,GAAI;CACL,CAAA;AAEL,CAAC,GAEK,IAAQ,EAA6C,SACzD,EACE,eAAY,OACZ,UAAO,UACP,WAAQ,UACR,aAAU,SACV,QACA,eAAY,IACZ,eAAY,IACZ,UACA,GAAG,KAEL,GACA;CACA,OACE,kBAAC,OAAD;EACO;EACL,WAAW,EAAG,uBAAuB,CAAS;EAC9C,OAAO;GACL,SAAS;GACT,OAAO,IAAY,SAAS,KAAA;GAC5B,eAAe;GACf,UAAU;GACV,YAAY,EAAS,CAAK;GAC1B,gBAAgB,EAAW,CAAO;GAClC,KAAK,EAAO,CAAG;GACf,GAAG;EACL;EACA,GAAI;CACL,CAAA;AAEL,CAAC,GAEK,IAAQ,EAA8C,SAC1D,EAAE,eAAY,cAAc,UAAO,IAAI,SAAM,eAAY,IAAI,UAAO,GAAG,KACvE,GACA;CACA,IAAM,IAAY,EAAQ,CAAI;CAE9B,OACE,kBAAC,QAAD;EACO;EACL,eAAY;EACZ,WAAW,EAAG,uBAAuB,CAAS;EAC9C,OAAO;GACL,SAAS;GACT,MAAM,KAAQ;GACd,OAAO,MAAc,eAAe,IAAY;GAChD,UAAU,MAAc,eAAe,IAAY,KAAA;GACnD,QAAQ,MAAc,aAAa,IAAY;GAC/C,WAAW,MAAc,aAAa,IAAY,KAAA;GAClD,eAAe;GACf,GAAG;EACL;EACA,GAAI;CACL,CAAA;AAEL,CAAC,GAEK,IAAO,EAA4C,SACvD,EACE,eAAY,OACZ,UAAO,UACP,UACA,YACA,QACA,WACA,cACA,YAAS,IACT,eAAY,IACZ,UACA,GAAG,KAEL,GACA;CACA,OACE,kBAAC,OAAD;EACO;EACL,WAAW,EAAG,sBAAsB,CAAS;EAC7C,OAAO;GACL,SAAS,IAAS,gBAAgB;GAClC,eAAe;GACf,UAAU;GACV,YAAY,EAAS,CAAK;GAC1B,gBAAgB,EAAW,CAAO;GAClC,KAAK,EAAO,CAAG;GACf,QAAQ,EAAO,CAAM;GACrB,WAAW,EAAO,CAAS;GAC3B,GAAG;EACL;EACA,GAAI;CACL,CAAA;AAEL,CAAC,GAQK,IAAO;AACb,EAAK,OAAO;AAUZ,IAAM,IAAyB;CAC7B;CACA;CACA;CACA;CACA;AACF"}
|