dsh-plugin-core 0.33.0 → 0.33.2
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/README.md +197 -64
- package/README.zh-CN.md +242 -0
- package/dist/adv/explorer/open.js +4 -4
- package/dist/adv/explorer/open.js.map +1 -1
- package/dist/ui/feedback/host-toast.d.ts +1 -1
- package/dist/ui/feedback/host-toast.js +1 -1
- package/docs/README.md +1 -0
- package/docs/help/explorer.doc.ts +1 -1
- package/docs/help/explorer.md +1 -1
- package/docs/help/integration.doc.ts +2 -2
- package/docs/help/integration.md +2 -2
- package/docs/help/session.doc.ts +1 -1
- package/docs/help/session.md +1 -1
- package/docs/help/ui.doc.ts +1 -1
- package/docs/help/ui.md +1 -1
- package/package.json +16 -16
- package/dist/explorer/ExplorerPanel.d.ts +0 -25
- package/dist/explorer/ExplorerPanel.d.ts.map +0 -1
- package/dist/explorer/ExplorerPanel.js +0 -111
- package/dist/explorer/ExplorerPanel.js.map +0 -1
- package/dist/explorer/FileBrowser.d.ts +0 -58
- package/dist/explorer/FileBrowser.d.ts.map +0 -1
- package/dist/explorer/FileBrowser.js +0 -632
- package/dist/explorer/FileBrowser.js.map +0 -1
- package/dist/explorer/crumb-nav.d.ts +0 -45
- package/dist/explorer/crumb-nav.d.ts.map +0 -1
- package/dist/explorer/crumb-nav.js +0 -78
- package/dist/explorer/crumb-nav.js.map +0 -1
- package/dist/explorer/crumbs-menu.d.ts +0 -37
- package/dist/explorer/crumbs-menu.d.ts.map +0 -1
- package/dist/explorer/crumbs-menu.js +0 -102
- package/dist/explorer/crumbs-menu.js.map +0 -1
- package/dist/explorer/explorer-css.d.ts +0 -2
- package/dist/explorer/explorer-css.d.ts.map +0 -1
- package/dist/explorer/explorer-css.generated.d.ts +0 -2
- package/dist/explorer/explorer-css.generated.d.ts.map +0 -1
- package/dist/explorer/explorer-css.generated.js +0 -4
- package/dist/explorer/explorer-css.generated.js.map +0 -1
- package/dist/explorer/explorer-css.js +0 -3
- package/dist/explorer/explorer-css.js.map +0 -1
- package/dist/explorer/fs-face.d.ts +0 -36
- package/dist/explorer/fs-face.d.ts.map +0 -1
- package/dist/explorer/fs-face.js +0 -74
- package/dist/explorer/fs-face.js.map +0 -1
- package/dist/explorer/index.d.ts +0 -6
- package/dist/explorer/index.d.ts.map +0 -1
- package/dist/explorer/index.js +0 -6
- package/dist/explorer/index.js.map +0 -1
- package/dist/explorer/landing.d.ts +0 -26
- package/dist/explorer/landing.d.ts.map +0 -1
- package/dist/explorer/landing.js +0 -43
- package/dist/explorer/landing.js.map +0 -1
- package/dist/explorer/open.d.ts +0 -137
- package/dist/explorer/open.d.ts.map +0 -1
- package/dist/explorer/open.js +0 -350
- package/dist/explorer/open.js.map +0 -1
- package/dist/explorer/picker-placement.d.ts +0 -69
- package/dist/explorer/picker-placement.d.ts.map +0 -1
- package/dist/explorer/picker-placement.js +0 -122
- package/dist/explorer/picker-placement.js.map +0 -1
- package/dist/explorer/preview/BytesPreview.d.ts +0 -12
- package/dist/explorer/preview/BytesPreview.d.ts.map +0 -1
- package/dist/explorer/preview/BytesPreview.js +0 -60
- package/dist/explorer/preview/BytesPreview.js.map +0 -1
- package/dist/explorer/preview/HtmlPreview.d.ts +0 -17
- package/dist/explorer/preview/HtmlPreview.d.ts.map +0 -1
- package/dist/explorer/preview/HtmlPreview.js +0 -113
- package/dist/explorer/preview/HtmlPreview.js.map +0 -1
- package/dist/explorer/preview/OfficePreview.d.ts +0 -12
- package/dist/explorer/preview/OfficePreview.d.ts.map +0 -1
- package/dist/explorer/preview/OfficePreview.js +0 -63
- package/dist/explorer/preview/OfficePreview.js.map +0 -1
- package/dist/explorer/preview/TextPreview.d.ts +0 -18
- package/dist/explorer/preview/TextPreview.d.ts.map +0 -1
- package/dist/explorer/preview/TextPreview.js +0 -122
- package/dist/explorer/preview/TextPreview.js.map +0 -1
- package/dist/explorer/preview/index.d.ts +0 -24
- package/dist/explorer/preview/index.d.ts.map +0 -1
- package/dist/explorer/preview/index.js +0 -58
- package/dist/explorer/preview/index.js.map +0 -1
- package/dist/explorer/preview/md-labels.d.ts +0 -3
- package/dist/explorer/preview/md-labels.d.ts.map +0 -1
- package/dist/explorer/preview/md-labels.js +0 -12
- package/dist/explorer/preview/md-labels.js.map +0 -1
- package/dist/explorer/preview-title-bar.d.ts +0 -26
- package/dist/explorer/preview-title-bar.d.ts.map +0 -1
- package/dist/explorer/preview-title-bar.js +0 -48
- package/dist/explorer/preview-title-bar.js.map +0 -1
- package/dist/explorer/types.d.ts +0 -259
- package/dist/explorer/types.d.ts.map +0 -1
- package/dist/explorer/types.js +0 -379
- package/dist/explorer/types.js.map +0 -1
- package/dist/session/SessionViewModal.d.ts +0 -37
- package/dist/session/SessionViewModal.d.ts.map +0 -1
- package/dist/session/SessionViewModal.js +0 -1133
- package/dist/session/SessionViewModal.js.map +0 -1
- package/dist/session/changes.d.ts +0 -73
- package/dist/session/changes.d.ts.map +0 -1
- package/dist/session/changes.js +0 -134
- package/dist/session/changes.js.map +0 -1
- package/dist/session/faces.d.ts +0 -244
- package/dist/session/faces.d.ts.map +0 -1
- package/dist/session/faces.js +0 -17
- package/dist/session/faces.js.map +0 -1
- package/dist/session/index.d.ts +0 -7
- package/dist/session/index.d.ts.map +0 -1
- package/dist/session/index.js +0 -27
- package/dist/session/index.js.map +0 -1
- package/dist/session/mirror/AskCard.d.ts +0 -35
- package/dist/session/mirror/AskCard.d.ts.map +0 -1
- package/dist/session/mirror/AskCard.js +0 -131
- package/dist/session/mirror/AskCard.js.map +0 -1
- package/dist/session/mirror/BashRow.d.ts +0 -14
- package/dist/session/mirror/BashRow.d.ts.map +0 -1
- package/dist/session/mirror/BashRow.js +0 -143
- package/dist/session/mirror/BashRow.js.map +0 -1
- package/dist/session/mirror/ChangedFileDiff.d.ts +0 -25
- package/dist/session/mirror/ChangedFileDiff.d.ts.map +0 -1
- package/dist/session/mirror/ChangedFileDiff.js +0 -178
- package/dist/session/mirror/ChangedFileDiff.js.map +0 -1
- package/dist/session/mirror/ChangedFilesCard.d.ts +0 -18
- package/dist/session/mirror/ChangedFilesCard.d.ts.map +0 -1
- package/dist/session/mirror/ChangedFilesCard.js +0 -165
- package/dist/session/mirror/ChangedFilesCard.js.map +0 -1
- package/dist/session/mirror/ChatGroupSeat.d.ts +0 -24
- package/dist/session/mirror/ChatGroupSeat.d.ts.map +0 -1
- package/dist/session/mirror/ChatGroupSeat.js +0 -135
- package/dist/session/mirror/ChatGroupSeat.js.map +0 -1
- package/dist/session/mirror/ChatNodeSeat.d.ts +0 -43
- package/dist/session/mirror/ChatNodeSeat.d.ts.map +0 -1
- package/dist/session/mirror/ChatNodeSeat.js +0 -133
- package/dist/session/mirror/ChatNodeSeat.js.map +0 -1
- package/dist/session/mirror/ChatView.d.ts +0 -47
- package/dist/session/mirror/ChatView.d.ts.map +0 -1
- package/dist/session/mirror/ChatView.js +0 -138
- package/dist/session/mirror/ChatView.js.map +0 -1
- package/dist/session/mirror/CommandCard.d.ts +0 -20
- package/dist/session/mirror/CommandCard.d.ts.map +0 -1
- package/dist/session/mirror/CommandCard.js +0 -69
- package/dist/session/mirror/CommandCard.js.map +0 -1
- package/dist/session/mirror/ContextInjectionRow.d.ts +0 -18
- package/dist/session/mirror/ContextInjectionRow.d.ts.map +0 -1
- package/dist/session/mirror/ContextInjectionRow.js +0 -50
- package/dist/session/mirror/ContextInjectionRow.js.map +0 -1
- package/dist/session/mirror/Deliverables.d.ts +0 -24
- package/dist/session/mirror/Deliverables.d.ts.map +0 -1
- package/dist/session/mirror/Deliverables.js +0 -175
- package/dist/session/mirror/Deliverables.js.map +0 -1
- package/dist/session/mirror/GenericCommandCard.d.ts +0 -136
- package/dist/session/mirror/GenericCommandCard.d.ts.map +0 -1
- package/dist/session/mirror/GenericCommandCard.js +0 -948
- package/dist/session/mirror/GenericCommandCard.js.map +0 -1
- package/dist/session/mirror/MessageIconActions.d.ts +0 -16
- package/dist/session/mirror/MessageIconActions.d.ts.map +0 -1
- package/dist/session/mirror/MessageIconActions.js +0 -69
- package/dist/session/mirror/MessageIconActions.js.map +0 -1
- package/dist/session/mirror/MessageItem.d.ts +0 -93
- package/dist/session/mirror/MessageItem.d.ts.map +0 -1
- package/dist/session/mirror/MessageItem.js +0 -194
- package/dist/session/mirror/MessageItem.js.map +0 -1
- package/dist/session/mirror/ReasoningRow.d.ts +0 -11
- package/dist/session/mirror/ReasoningRow.d.ts.map +0 -1
- package/dist/session/mirror/ReasoningRow.js +0 -111
- package/dist/session/mirror/ReasoningRow.js.map +0 -1
- package/dist/session/mirror/RunningStatus.d.ts +0 -12
- package/dist/session/mirror/RunningStatus.d.ts.map +0 -1
- package/dist/session/mirror/RunningStatus.js +0 -57
- package/dist/session/mirror/RunningStatus.js.map +0 -1
- package/dist/session/mirror/StatDialog.d.ts +0 -20
- package/dist/session/mirror/StatDialog.d.ts.map +0 -1
- package/dist/session/mirror/StatDialog.js +0 -49
- package/dist/session/mirror/StatDialog.js.map +0 -1
- package/dist/session/mirror/ToolDetails.d.ts +0 -65
- package/dist/session/mirror/ToolDetails.d.ts.map +0 -1
- package/dist/session/mirror/ToolDetails.js +0 -268
- package/dist/session/mirror/ToolDetails.js.map +0 -1
- package/dist/session/mirror/TurnProcessNodeView.d.ts +0 -10
- package/dist/session/mirror/TurnProcessNodeView.d.ts.map +0 -1
- package/dist/session/mirror/TurnProcessNodeView.js +0 -57
- package/dist/session/mirror/TurnProcessNodeView.js.map +0 -1
- package/dist/session/mirror/TurnTailNodeView.d.ts +0 -57
- package/dist/session/mirror/TurnTailNodeView.d.ts.map +0 -1
- package/dist/session/mirror/TurnTailNodeView.js +0 -106
- package/dist/session/mirror/TurnTailNodeView.js.map +0 -1
- package/dist/session/mirror/TurnTriggerNodeView.d.ts +0 -16
- package/dist/session/mirror/TurnTriggerNodeView.d.ts.map +0 -1
- package/dist/session/mirror/TurnTriggerNodeView.js +0 -103
- package/dist/session/mirror/TurnTriggerNodeView.js.map +0 -1
- package/dist/session/mirror/TurnUsagePanel.d.ts +0 -21
- package/dist/session/mirror/TurnUsagePanel.d.ts.map +0 -1
- package/dist/session/mirror/TurnUsagePanel.js +0 -41
- package/dist/session/mirror/TurnUsagePanel.js.map +0 -1
- package/dist/session/mirror/control-details.d.ts +0 -9
- package/dist/session/mirror/control-details.d.ts.map +0 -1
- package/dist/session/mirror/control-details.js +0 -549
- package/dist/session/mirror/control-details.js.map +0 -1
- package/dist/session/mirror/detail-i18n.d.ts +0 -4
- package/dist/session/mirror/detail-i18n.d.ts.map +0 -1
- package/dist/session/mirror/detail-i18n.js +0 -153
- package/dist/session/mirror/detail-i18n.js.map +0 -1
- package/dist/session/mirror/message-chrome.d.ts +0 -39
- package/dist/session/mirror/message-chrome.d.ts.map +0 -1
- package/dist/session/mirror/message-chrome.js +0 -153
- package/dist/session/mirror/message-chrome.js.map +0 -1
- package/dist/session/mirror/process-groups.d.ts +0 -56
- package/dist/session/mirror/process-groups.d.ts.map +0 -1
- package/dist/session/mirror/process-groups.js +0 -202
- package/dist/session/mirror/process-groups.js.map +0 -1
- package/dist/session/official-classes.d.ts +0 -28
- package/dist/session/official-classes.d.ts.map +0 -1
- package/dist/session/official-classes.js +0 -152
- package/dist/session/official-classes.js.map +0 -1
- package/dist/session/open-review.d.ts +0 -13
- package/dist/session/open-review.d.ts.map +0 -1
- package/dist/session/open-review.js +0 -32
- package/dist/session/open-review.js.map +0 -1
- package/dist/session/open-session-view.d.ts +0 -19
- package/dist/session/open-session-view.d.ts.map +0 -1
- package/dist/session/open-session-view.js +0 -147
- package/dist/session/open-session-view.js.map +0 -1
- package/dist/session/pending-inputs.d.ts +0 -33
- package/dist/session/pending-inputs.d.ts.map +0 -1
- package/dist/session/pending-inputs.js +0 -130
- package/dist/session/pending-inputs.js.map +0 -1
- package/dist/session/session-css.d.ts +0 -2
- package/dist/session/session-css.d.ts.map +0 -1
- package/dist/session/session-css.generated.d.ts +0 -2
- package/dist/session/session-css.generated.d.ts.map +0 -1
- package/dist/session/session-css.generated.js +0 -4
- package/dist/session/session-css.generated.js.map +0 -1
- package/dist/session/session-css.js +0 -3
- package/dist/session/session-css.js.map +0 -1
- package/dist/session/tail-follow.d.ts +0 -29
- package/dist/session/tail-follow.d.ts.map +0 -1
- package/dist/session/tail-follow.js +0 -106
- package/dist/session/tail-follow.js.map +0 -1
- package/dist/session/types.d.ts +0 -28
- package/dist/session/types.d.ts.map +0 -1
- package/dist/session/types.js +0 -12
- package/dist/session/types.js.map +0 -1
- package/dist/ui/AlertModal.d.ts +0 -41
- package/dist/ui/AlertModal.d.ts.map +0 -1
- package/dist/ui/AlertModal.js +0 -45
- package/dist/ui/AlertModal.js.map +0 -1
- package/dist/ui/Button.d.ts +0 -102
- package/dist/ui/Button.d.ts.map +0 -1
- package/dist/ui/Button.js +0 -233
- package/dist/ui/Button.js.map +0 -1
- package/dist/ui/Card.d.ts +0 -65
- package/dist/ui/Card.d.ts.map +0 -1
- package/dist/ui/Card.js +0 -109
- package/dist/ui/Card.js.map +0 -1
- package/dist/ui/Checkbox.d.ts +0 -24
- package/dist/ui/Checkbox.d.ts.map +0 -1
- package/dist/ui/Checkbox.js +0 -35
- package/dist/ui/Checkbox.js.map +0 -1
- package/dist/ui/Chip.d.ts +0 -28
- package/dist/ui/Chip.d.ts.map +0 -1
- package/dist/ui/Chip.js +0 -36
- package/dist/ui/Chip.js.map +0 -1
- package/dist/ui/CodeViewer.d.ts +0 -38
- package/dist/ui/CodeViewer.d.ts.map +0 -1
- package/dist/ui/CodeViewer.js +0 -107
- package/dist/ui/CodeViewer.js.map +0 -1
- package/dist/ui/ConfirmModal.d.ts +0 -50
- package/dist/ui/ConfirmModal.d.ts.map +0 -1
- package/dist/ui/ConfirmModal.js +0 -47
- package/dist/ui/ConfirmModal.js.map +0 -1
- package/dist/ui/DateTimePicker.d.ts +0 -45
- package/dist/ui/DateTimePicker.d.ts.map +0 -1
- package/dist/ui/DateTimePicker.js +0 -462
- package/dist/ui/DateTimePicker.js.map +0 -1
- package/dist/ui/EmptyState.d.ts +0 -12
- package/dist/ui/EmptyState.d.ts.map +0 -1
- package/dist/ui/EmptyState.js +0 -10
- package/dist/ui/EmptyState.js.map +0 -1
- package/dist/ui/Field.d.ts +0 -125
- package/dist/ui/Field.d.ts.map +0 -1
- package/dist/ui/Field.js +0 -175
- package/dist/ui/Field.js.map +0 -1
- package/dist/ui/FieldHint.d.ts +0 -18
- package/dist/ui/FieldHint.d.ts.map +0 -1
- package/dist/ui/FieldHint.js +0 -40
- package/dist/ui/FieldHint.js.map +0 -1
- package/dist/ui/FlipText.d.ts +0 -43
- package/dist/ui/FlipText.d.ts.map +0 -1
- package/dist/ui/FlipText.js +0 -59
- package/dist/ui/FlipText.js.map +0 -1
- package/dist/ui/InputGroup.d.ts +0 -91
- package/dist/ui/InputGroup.d.ts.map +0 -1
- package/dist/ui/InputGroup.js +0 -125
- package/dist/ui/InputGroup.js.map +0 -1
- package/dist/ui/LiveText.d.ts +0 -13
- package/dist/ui/LiveText.d.ts.map +0 -1
- package/dist/ui/LiveText.js +0 -19
- package/dist/ui/LiveText.js.map +0 -1
- package/dist/ui/Loader.d.ts +0 -49
- package/dist/ui/Loader.d.ts.map +0 -1
- package/dist/ui/Loader.js +0 -79
- package/dist/ui/Loader.js.map +0 -1
- package/dist/ui/LoaderBar.d.ts +0 -38
- package/dist/ui/LoaderBar.d.ts.map +0 -1
- package/dist/ui/LoaderBar.js +0 -79
- package/dist/ui/LoaderBar.js.map +0 -1
- package/dist/ui/Loading.d.ts +0 -69
- package/dist/ui/Loading.d.ts.map +0 -1
- package/dist/ui/Loading.js +0 -164
- package/dist/ui/Loading.js.map +0 -1
- package/dist/ui/MarqueeText.d.ts +0 -22
- package/dist/ui/MarqueeText.d.ts.map +0 -1
- package/dist/ui/MarqueeText.js +0 -52
- package/dist/ui/MarqueeText.js.map +0 -1
- package/dist/ui/Modal.d.ts +0 -73
- package/dist/ui/Modal.d.ts.map +0 -1
- package/dist/ui/Modal.js +0 -83
- package/dist/ui/Modal.js.map +0 -1
- package/dist/ui/ModelPicker.d.ts +0 -48
- package/dist/ui/ModelPicker.d.ts.map +0 -1
- package/dist/ui/ModelPicker.js +0 -101
- package/dist/ui/ModelPicker.js.map +0 -1
- package/dist/ui/Pagination.d.ts +0 -59
- package/dist/ui/Pagination.d.ts.map +0 -1
- package/dist/ui/Pagination.js +0 -112
- package/dist/ui/Pagination.js.map +0 -1
- package/dist/ui/PanelDock.d.ts +0 -132
- package/dist/ui/PanelDock.d.ts.map +0 -1
- package/dist/ui/PanelDock.js +0 -390
- package/dist/ui/PanelDock.js.map +0 -1
- package/dist/ui/Picker.d.ts +0 -56
- package/dist/ui/Picker.d.ts.map +0 -1
- package/dist/ui/Picker.js +0 -244
- package/dist/ui/Picker.js.map +0 -1
- package/dist/ui/QuickToolbar.d.ts +0 -54
- package/dist/ui/QuickToolbar.d.ts.map +0 -1
- package/dist/ui/QuickToolbar.js +0 -254
- package/dist/ui/QuickToolbar.js.map +0 -1
- package/dist/ui/SectionHead.d.ts +0 -35
- package/dist/ui/SectionHead.d.ts.map +0 -1
- package/dist/ui/SectionHead.js +0 -45
- package/dist/ui/SectionHead.js.map +0 -1
- package/dist/ui/Segmented.d.ts +0 -99
- package/dist/ui/Segmented.d.ts.map +0 -1
- package/dist/ui/Segmented.js +0 -135
- package/dist/ui/Segmented.js.map +0 -1
- package/dist/ui/SideSheet.d.ts +0 -70
- package/dist/ui/SideSheet.d.ts.map +0 -1
- package/dist/ui/SideSheet.js +0 -130
- package/dist/ui/SideSheet.js.map +0 -1
- package/dist/ui/SplitGroup.d.ts +0 -37
- package/dist/ui/SplitGroup.d.ts.map +0 -1
- package/dist/ui/SplitGroup.js +0 -36
- package/dist/ui/SplitGroup.js.map +0 -1
- package/dist/ui/Surface.d.ts +0 -43
- package/dist/ui/Surface.d.ts.map +0 -1
- package/dist/ui/Surface.js +0 -39
- package/dist/ui/Surface.js.map +0 -1
- package/dist/ui/Table.d.ts +0 -30
- package/dist/ui/Table.d.ts.map +0 -1
- package/dist/ui/Table.js +0 -96
- package/dist/ui/Table.js.map +0 -1
- package/dist/ui/Textarea.d.ts +0 -36
- package/dist/ui/Textarea.d.ts.map +0 -1
- package/dist/ui/Textarea.js +0 -35
- package/dist/ui/Textarea.js.map +0 -1
- package/dist/ui/Toast.d.ts +0 -45
- package/dist/ui/Toast.d.ts.map +0 -1
- package/dist/ui/Toast.js +0 -225
- package/dist/ui/Toast.js.map +0 -1
- package/dist/ui/WorkspacePicker.d.ts +0 -35
- package/dist/ui/WorkspacePicker.d.ts.map +0 -1
- package/dist/ui/WorkspacePicker.js +0 -39
- package/dist/ui/WorkspacePicker.js.map +0 -1
- package/dist/ui/card-css.d.ts +0 -2
- package/dist/ui/card-css.d.ts.map +0 -1
- package/dist/ui/card-css.generated.d.ts +0 -2
- package/dist/ui/card-css.generated.d.ts.map +0 -1
- package/dist/ui/card-css.generated.js +0 -4
- package/dist/ui/card-css.generated.js.map +0 -1
- package/dist/ui/card-css.js +0 -5
- package/dist/ui/card-css.js.map +0 -1
- package/dist/ui/chevron.d.ts +0 -22
- package/dist/ui/chevron.d.ts.map +0 -1
- package/dist/ui/chevron.js +0 -33
- package/dist/ui/chevron.js.map +0 -1
- package/dist/ui/chip-css.d.ts +0 -2
- package/dist/ui/chip-css.d.ts.map +0 -1
- package/dist/ui/chip-css.generated.d.ts +0 -2
- package/dist/ui/chip-css.generated.d.ts.map +0 -1
- package/dist/ui/chip-css.generated.js +0 -4
- package/dist/ui/chip-css.generated.js.map +0 -1
- package/dist/ui/chip-css.js +0 -12
- package/dist/ui/chip-css.js.map +0 -1
- package/dist/ui/code-viewer-css.d.ts +0 -2
- package/dist/ui/code-viewer-css.d.ts.map +0 -1
- package/dist/ui/code-viewer-css.generated.d.ts +0 -2
- package/dist/ui/code-viewer-css.generated.d.ts.map +0 -1
- package/dist/ui/code-viewer-css.generated.js +0 -4
- package/dist/ui/code-viewer-css.generated.js.map +0 -1
- package/dist/ui/code-viewer-css.js +0 -3
- package/dist/ui/code-viewer-css.js.map +0 -1
- package/dist/ui/code-viewer-lang.d.ts +0 -15
- package/dist/ui/code-viewer-lang.d.ts.map +0 -1
- package/dist/ui/code-viewer-lang.js +0 -190
- package/dist/ui/code-viewer-lang.js.map +0 -1
- package/dist/ui/code-viewer-theme.d.ts +0 -5
- package/dist/ui/code-viewer-theme.d.ts.map +0 -1
- package/dist/ui/code-viewer-theme.js +0 -138
- package/dist/ui/code-viewer-theme.js.map +0 -1
- package/dist/ui/controls/button-css.generated.d.ts +0 -2
- package/dist/ui/controls/button-css.generated.d.ts.map +0 -1
- package/dist/ui/controls/button-css.generated.js +0 -4
- package/dist/ui/controls/button-css.generated.js.map +0 -1
- package/dist/ui/controls/datetime-css.generated.d.ts +0 -2
- package/dist/ui/controls/datetime-css.generated.d.ts.map +0 -1
- package/dist/ui/controls/datetime-css.generated.js +0 -4
- package/dist/ui/controls/datetime-css.generated.js.map +0 -1
- package/dist/ui/controls/field-css.generated.d.ts +0 -2
- package/dist/ui/controls/field-css.generated.d.ts.map +0 -1
- package/dist/ui/controls/field-css.generated.js +0 -4
- package/dist/ui/controls/field-css.generated.js.map +0 -1
- package/dist/ui/controls/hint-css.generated.d.ts +0 -2
- package/dist/ui/controls/hint-css.generated.d.ts.map +0 -1
- package/dist/ui/controls/hint-css.generated.js +0 -4
- package/dist/ui/controls/hint-css.generated.js.map +0 -1
- package/dist/ui/controls/input-group-css.generated.d.ts +0 -2
- package/dist/ui/controls/input-group-css.generated.d.ts.map +0 -1
- package/dist/ui/controls/input-group-css.generated.js +0 -4
- package/dist/ui/controls/input-group-css.generated.js.map +0 -1
- package/dist/ui/controls/loader-bar-css.generated.d.ts +0 -2
- package/dist/ui/controls/loader-bar-css.generated.d.ts.map +0 -1
- package/dist/ui/controls/loader-bar-css.generated.js +0 -4
- package/dist/ui/controls/loader-bar-css.generated.js.map +0 -1
- package/dist/ui/controls/loader-css.generated.d.ts +0 -2
- package/dist/ui/controls/loader-css.generated.d.ts.map +0 -1
- package/dist/ui/controls/loader-css.generated.js +0 -4
- package/dist/ui/controls/loader-css.generated.js.map +0 -1
- package/dist/ui/controls/loading-css.generated.d.ts +0 -2
- package/dist/ui/controls/loading-css.generated.d.ts.map +0 -1
- package/dist/ui/controls/loading-css.generated.js +0 -4
- package/dist/ui/controls/loading-css.generated.js.map +0 -1
- package/dist/ui/controls/pagination-css.generated.d.ts +0 -2
- package/dist/ui/controls/pagination-css.generated.d.ts.map +0 -1
- package/dist/ui/controls/pagination-css.generated.js +0 -4
- package/dist/ui/controls/pagination-css.generated.js.map +0 -1
- package/dist/ui/controls/quick-toolbar-css.generated.d.ts +0 -2
- package/dist/ui/controls/quick-toolbar-css.generated.d.ts.map +0 -1
- package/dist/ui/controls/quick-toolbar-css.generated.js +0 -4
- package/dist/ui/controls/quick-toolbar-css.generated.js.map +0 -1
- package/dist/ui/controls/section-head-css.generated.d.ts +0 -2
- package/dist/ui/controls/section-head-css.generated.d.ts.map +0 -1
- package/dist/ui/controls/section-head-css.generated.js +0 -4
- package/dist/ui/controls/section-head-css.generated.js.map +0 -1
- package/dist/ui/controls/segmented-css.generated.d.ts +0 -2
- package/dist/ui/controls/segmented-css.generated.d.ts.map +0 -1
- package/dist/ui/controls/segmented-css.generated.js +0 -4
- package/dist/ui/controls/segmented-css.generated.js.map +0 -1
- package/dist/ui/controls/split-group-css.generated.d.ts +0 -2
- package/dist/ui/controls/split-group-css.generated.d.ts.map +0 -1
- package/dist/ui/controls/split-group-css.generated.js +0 -4
- package/dist/ui/controls/split-group-css.generated.js.map +0 -1
- package/dist/ui/controls/table-css.generated.d.ts +0 -2
- package/dist/ui/controls/table-css.generated.d.ts.map +0 -1
- package/dist/ui/controls/table-css.generated.js +0 -4
- package/dist/ui/controls/table-css.generated.js.map +0 -1
- package/dist/ui/controls/table-plain-css.generated.d.ts +0 -2
- package/dist/ui/controls/table-plain-css.generated.d.ts.map +0 -1
- package/dist/ui/controls/table-plain-css.generated.js +0 -4
- package/dist/ui/controls/table-plain-css.generated.js.map +0 -1
- package/dist/ui/controls-css.d.ts +0 -16
- package/dist/ui/controls-css.d.ts.map +0 -1
- package/dist/ui/controls-css.js +0 -26
- package/dist/ui/controls-css.js.map +0 -1
- package/dist/ui/css.d.ts +0 -35
- package/dist/ui/css.d.ts.map +0 -1
- package/dist/ui/css.js +0 -52
- package/dist/ui/css.js.map +0 -1
- package/dist/ui/datetime-logic.d.ts +0 -102
- package/dist/ui/datetime-logic.d.ts.map +0 -1
- package/dist/ui/datetime-logic.js +0 -200
- package/dist/ui/datetime-logic.js.map +0 -1
- package/dist/ui/feedback-css.d.ts +0 -2
- package/dist/ui/feedback-css.d.ts.map +0 -1
- package/dist/ui/feedback-css.generated.d.ts +0 -2
- package/dist/ui/feedback-css.generated.d.ts.map +0 -1
- package/dist/ui/feedback-css.generated.js +0 -4
- package/dist/ui/feedback-css.generated.js.map +0 -1
- package/dist/ui/feedback-css.js +0 -4
- package/dist/ui/feedback-css.js.map +0 -1
- package/dist/ui/flip-css.d.ts +0 -2
- package/dist/ui/flip-css.d.ts.map +0 -1
- package/dist/ui/flip-css.generated.d.ts +0 -2
- package/dist/ui/flip-css.generated.d.ts.map +0 -1
- package/dist/ui/flip-css.generated.js +0 -4
- package/dist/ui/flip-css.generated.js.map +0 -1
- package/dist/ui/flip-css.js +0 -4
- package/dist/ui/flip-css.js.map +0 -1
- package/dist/ui/host-data.d.ts +0 -119
- package/dist/ui/host-data.d.ts.map +0 -1
- package/dist/ui/host-data.js +0 -122
- package/dist/ui/host-data.js.map +0 -1
- package/dist/ui/host-toast.d.ts +0 -23
- package/dist/ui/host-toast.d.ts.map +0 -1
- package/dist/ui/host-toast.js +0 -34
- package/dist/ui/host-toast.js.map +0 -1
- package/dist/ui/loader-bar-art.d.ts +0 -6
- package/dist/ui/loader-bar-art.d.ts.map +0 -1
- package/dist/ui/loader-bar-art.js +0 -6
- package/dist/ui/loader-bar-art.js.map +0 -1
- package/dist/ui/loading-host.d.ts +0 -49
- package/dist/ui/loading-host.d.ts.map +0 -1
- package/dist/ui/loading-host.js +0 -57
- package/dist/ui/loading-host.js.map +0 -1
- package/dist/ui/locale.d.ts +0 -4
- package/dist/ui/locale.d.ts.map +0 -1
- package/dist/ui/locale.js +0 -17
- package/dist/ui/locale.js.map +0 -1
- package/dist/ui/marquee-css.d.ts +0 -2
- package/dist/ui/marquee-css.d.ts.map +0 -1
- package/dist/ui/marquee-css.generated.d.ts +0 -2
- package/dist/ui/marquee-css.generated.d.ts.map +0 -1
- package/dist/ui/marquee-css.generated.js +0 -4
- package/dist/ui/marquee-css.generated.js.map +0 -1
- package/dist/ui/marquee-css.js +0 -4
- package/dist/ui/marquee-css.js.map +0 -1
- package/dist/ui/modal-host.d.ts +0 -51
- package/dist/ui/modal-host.d.ts.map +0 -1
- package/dist/ui/modal-host.js +0 -170
- package/dist/ui/modal-host.js.map +0 -1
- package/dist/ui/overlay-css.d.ts +0 -2
- package/dist/ui/overlay-css.d.ts.map +0 -1
- package/dist/ui/overlay-css.generated.d.ts +0 -2
- package/dist/ui/overlay-css.generated.d.ts.map +0 -1
- package/dist/ui/overlay-css.generated.js +0 -4
- package/dist/ui/overlay-css.generated.js.map +0 -1
- package/dist/ui/overlay-css.js +0 -2
- package/dist/ui/overlay-css.js.map +0 -1
- package/dist/ui/overlay.d.ts +0 -62
- package/dist/ui/overlay.d.ts.map +0 -1
- package/dist/ui/overlay.js +0 -94
- package/dist/ui/overlay.js.map +0 -1
- package/dist/ui/pagination-logic.d.ts +0 -36
- package/dist/ui/pagination-logic.d.ts.map +0 -1
- package/dist/ui/pagination-logic.js +0 -73
- package/dist/ui/pagination-logic.js.map +0 -1
- package/dist/ui/panel-css.d.ts +0 -2
- package/dist/ui/panel-css.d.ts.map +0 -1
- package/dist/ui/panel-css.generated.d.ts +0 -2
- package/dist/ui/panel-css.generated.d.ts.map +0 -1
- package/dist/ui/panel-css.generated.js +0 -4
- package/dist/ui/panel-css.generated.js.map +0 -1
- package/dist/ui/panel-css.js +0 -2
- package/dist/ui/panel-css.js.map +0 -1
- package/dist/ui/panel-dock-css.d.ts +0 -2
- package/dist/ui/panel-dock-css.d.ts.map +0 -1
- package/dist/ui/panel-dock-css.generated.d.ts +0 -2
- package/dist/ui/panel-dock-css.generated.d.ts.map +0 -1
- package/dist/ui/panel-dock-css.generated.js +0 -4
- package/dist/ui/panel-dock-css.generated.js.map +0 -1
- package/dist/ui/panel-dock-css.js +0 -4
- package/dist/ui/panel-dock-css.js.map +0 -1
- package/dist/ui/panel-dock-logic.d.ts +0 -67
- package/dist/ui/panel-dock-logic.d.ts.map +0 -1
- package/dist/ui/panel-dock-logic.js +0 -110
- package/dist/ui/panel-dock-logic.js.map +0 -1
- package/dist/ui/panel.d.ts +0 -41
- package/dist/ui/panel.d.ts.map +0 -1
- package/dist/ui/panel.js +0 -37
- package/dist/ui/panel.js.map +0 -1
- package/dist/ui/picker-css.d.ts +0 -2
- package/dist/ui/picker-css.d.ts.map +0 -1
- package/dist/ui/picker-css.generated.d.ts +0 -2
- package/dist/ui/picker-css.generated.d.ts.map +0 -1
- package/dist/ui/picker-css.generated.js +0 -4
- package/dist/ui/picker-css.generated.js.map +0 -1
- package/dist/ui/picker-css.js +0 -4
- package/dist/ui/picker-css.js.map +0 -1
- package/dist/ui/picker-icons.d.ts +0 -12
- package/dist/ui/picker-icons.d.ts.map +0 -1
- package/dist/ui/picker-icons.js +0 -29
- package/dist/ui/picker-icons.js.map +0 -1
- package/dist/ui/picker-logic.d.ts +0 -33
- package/dist/ui/picker-logic.d.ts.map +0 -1
- package/dist/ui/picker-logic.js +0 -68
- package/dist/ui/picker-logic.js.map +0 -1
- package/dist/ui/quick-toolbar-logic.d.ts +0 -76
- package/dist/ui/quick-toolbar-logic.d.ts.map +0 -1
- package/dist/ui/quick-toolbar-logic.js +0 -40
- package/dist/ui/quick-toolbar-logic.js.map +0 -1
- package/dist/ui/resizer.d.ts +0 -29
- package/dist/ui/resizer.d.ts.map +0 -1
- package/dist/ui/resizer.js +0 -42
- package/dist/ui/resizer.js.map +0 -1
- package/dist/ui/side-panel-css.d.ts +0 -2
- package/dist/ui/side-panel-css.d.ts.map +0 -1
- package/dist/ui/side-panel-css.generated.d.ts +0 -2
- package/dist/ui/side-panel-css.generated.d.ts.map +0 -1
- package/dist/ui/side-panel-css.generated.js +0 -4
- package/dist/ui/side-panel-css.generated.js.map +0 -1
- package/dist/ui/side-panel-css.js +0 -2
- package/dist/ui/side-panel-css.js.map +0 -1
- package/dist/ui/side-sheet-css.d.ts +0 -2
- package/dist/ui/side-sheet-css.d.ts.map +0 -1
- package/dist/ui/side-sheet-css.generated.d.ts +0 -2
- package/dist/ui/side-sheet-css.generated.d.ts.map +0 -1
- package/dist/ui/side-sheet-css.generated.js +0 -4
- package/dist/ui/side-sheet-css.generated.js.map +0 -1
- package/dist/ui/side-sheet-css.js +0 -2
- package/dist/ui/side-sheet-css.js.map +0 -1
- package/dist/ui/surface-css.d.ts +0 -2
- package/dist/ui/surface-css.d.ts.map +0 -1
- package/dist/ui/surface-css.generated.d.ts +0 -2
- package/dist/ui/surface-css.generated.d.ts.map +0 -1
- package/dist/ui/surface-css.generated.js +0 -4
- package/dist/ui/surface-css.generated.js.map +0 -1
- package/dist/ui/surface-css.js +0 -7
- package/dist/ui/surface-css.js.map +0 -1
- package/dist/ui/table-logic.d.ts +0 -110
- package/dist/ui/table-logic.d.ts.map +0 -1
- package/dist/ui/table-logic.js +0 -81
- package/dist/ui/table-logic.js.map +0 -1
- package/dist/ui/table-shared.d.ts +0 -101
- package/dist/ui/table-shared.d.ts.map +0 -1
- package/dist/ui/table-shared.js +0 -229
- package/dist/ui/table-shared.js.map +0 -1
- package/dist/ui/thenable.d.ts +0 -9
- package/dist/ui/thenable.d.ts.map +0 -1
- package/dist/ui/thenable.js +0 -15
- package/dist/ui/thenable.js.map +0 -1
- package/dist/ui/ticker.d.ts +0 -8
- package/dist/ui/ticker.d.ts.map +0 -1
- package/dist/ui/ticker.js +0 -49
- package/dist/ui/ticker.js.map +0 -1
- package/dist/ui/toast-host.d.ts +0 -24
- package/dist/ui/toast-host.d.ts.map +0 -1
- package/dist/ui/toast-host.js +0 -20
- package/dist/ui/toast-host.js.map +0 -1
- package/dist/ui/tooltip.d.ts +0 -29
- package/dist/ui/tooltip.d.ts.map +0 -1
- package/dist/ui/tooltip.js +0 -10
- package/dist/ui/tooltip.js.map +0 -1
package/dist/ui/overlay.js
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 浮层公共件 —— Modal 与 SideSheet 共用,**别各写一份**。
|
|
3
|
-
*
|
|
4
|
-
* 抽出来的判据:这两件在两种浮层里完全同构(遮罩让位分栏、头部四槽、Esc 判定),
|
|
5
|
-
* 差异只在「面板怎么排」(居中 vs 贴边),那部分留在各自的控件里。
|
|
6
|
-
*/
|
|
7
|
-
import { createContext, createElement as h, useContext, useEffect } from 'react';
|
|
8
|
-
import { ensureComponentStyles } from './css.js';
|
|
9
|
-
import { OVERLAY_CSS } from './overlay-css.js';
|
|
10
|
-
import { PANEL_CSS } from './panel-css.js';
|
|
11
|
-
import { PanelClose } from './panel.js';
|
|
12
|
-
/**
|
|
13
|
-
* 锁定广播:Modal / SideSheet `locked` 时把 true 传下去。
|
|
14
|
-
* 为什么要有它:面板挂 `inert` 管不到 **portal 到 body** 的那几个浮层(Picker / 日期选择的菜单
|
|
15
|
-
* 不在面板 DOM 里),锁定时它们还浮在屏幕上能点;那几个组件自己订阅这里、锁上就收起。
|
|
16
|
-
*/
|
|
17
|
-
const LockedContext = createContext(false);
|
|
18
|
-
/** 外层浮层是否锁死(不在浮层里 = false)。 */
|
|
19
|
-
export function useOverlayLocked() {
|
|
20
|
-
return useContext(LockedContext);
|
|
21
|
-
}
|
|
22
|
-
export const OverlayLockedProvider = LockedContext.Provider;
|
|
23
|
-
/**
|
|
24
|
-
* 锁定期间的两道保险(消费方自绘的控件不是我们的,管不到它们的 `disabled`):
|
|
25
|
-
* ① Tab 整个吃掉 —— 否则能 Tab 进他们的 input 打字;
|
|
26
|
-
* ② 把面板里没被禁用的活动元素 `blur` 掉 —— 否则锁定前已经停在里面的光标还能继续打字。
|
|
27
|
-
* 只认 `.dshpc-locked` 子树里的元素,不碰面板外面的焦点。
|
|
28
|
-
*/
|
|
29
|
-
export function useLockGuards(enabled) {
|
|
30
|
-
useEffect(() => {
|
|
31
|
-
if (!enabled || typeof document === 'undefined')
|
|
32
|
-
return;
|
|
33
|
-
const active = document.activeElement;
|
|
34
|
-
if (active instanceof Element && active.closest('.dshpc-locked') !== null)
|
|
35
|
-
active.blur();
|
|
36
|
-
const onKey = (event) => {
|
|
37
|
-
if (event.key === 'Tab')
|
|
38
|
-
event.preventDefault();
|
|
39
|
-
};
|
|
40
|
-
document.addEventListener('keydown', onKey, true);
|
|
41
|
-
return () => document.removeEventListener('keydown', onKey, true);
|
|
42
|
-
}, [enabled]);
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* 锁定时的**透明点击层**:盖住整块面板、不遮任何像素,只吃掉指针事件
|
|
46
|
-
* (消费方自绘的元素也跟着点不动)。变灰由各控件自己的 `:disabled` 负责,这里不管外观。
|
|
47
|
-
* 不做焦点接管:核心控件此刻已是真 disabled,Tab 自己就跳过它们。
|
|
48
|
-
*/
|
|
49
|
-
export function OverlayLockCatcher() {
|
|
50
|
-
return h('div', {
|
|
51
|
-
className: 'dshpc-lock-catcher',
|
|
52
|
-
// 点它不能再冒到遮罩:否则等于点了外部,会顺带把弹窗关掉。
|
|
53
|
-
onClick: (event) => event.stopPropagation(),
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Esc 关闭。不传 `onClose` 或 `enabled=false` 时完全不挂监听
|
|
58
|
-
* (无回调还挂监听,等于让 Esc 被白白吃掉)。
|
|
59
|
-
*/
|
|
60
|
-
export function useEscapeClose(enabled, onClose) {
|
|
61
|
-
useEffect(() => {
|
|
62
|
-
if (!enabled || onClose === undefined)
|
|
63
|
-
return;
|
|
64
|
-
const onKey = (event) => {
|
|
65
|
-
if (event.key === 'Escape')
|
|
66
|
-
onClose();
|
|
67
|
-
};
|
|
68
|
-
document.addEventListener('keydown', onKey);
|
|
69
|
-
return () => document.removeEventListener('keydown', onKey);
|
|
70
|
-
}, [enabled, onClose]);
|
|
71
|
-
}
|
|
72
|
-
/** 遮罩 + 承载盒。右边界让位分栏的规则只有这一份。 */
|
|
73
|
-
export function OverlayMask(props) {
|
|
74
|
-
ensureComponentStyles('overlay', OVERLAY_CSS);
|
|
75
|
-
return h('div', {
|
|
76
|
-
...props.attrs,
|
|
77
|
-
className: `dshpc-overlay dshpc-overlay--${props.kind}`,
|
|
78
|
-
onClick: () => {
|
|
79
|
-
if (props.closeOnMask)
|
|
80
|
-
props.onClose?.();
|
|
81
|
-
},
|
|
82
|
-
}, props.children ?? null);
|
|
83
|
-
}
|
|
84
|
-
/** 头部四槽:icon + 标题组 + 右侧动作 + 关闭钮。 */
|
|
85
|
-
export function OverlayHead(props) {
|
|
86
|
-
ensureComponentStyles('overlay', OVERLAY_CSS);
|
|
87
|
-
// 关闭钮的皮肤在 panel.css(浮层唯一那枚);旧类名 `dshpc-overlay-head__close` 仍挂着做别名。
|
|
88
|
-
ensureComponentStyles('panel', PANEL_CSS);
|
|
89
|
-
return h('div', { className: 'dshpc-overlay-head' }, h('div', { className: 'dshpc-overlay-head__heading' }, props.icon === undefined ? null : h('span', { className: 'dshpc-overlay-head__lead' }, props.icon), h('div', { className: 'dshpc-overlay-head__titlegroup' }, h('div', { className: 'dshpc-overlay-head__titlerow' }, h('div', { className: 'dshpc-overlay-head__title' }, props.title ?? ''), props.extra === undefined ? null : h('div', { className: 'dshpc-overlay-head__extra' }, props.extra)), props.subtitle === undefined ? null : h('div', { className: 'dshpc-overlay-head__sid' }, props.subtitle))), h('div', { className: 'dshpc-overlay-head__spacer' }), props.actions === undefined ? null : h('div', { className: 'dshpc-overlay-head__actions' }, props.actions), props.onClose === undefined
|
|
90
|
-
? null
|
|
91
|
-
// 关闭钮只此一枚(`PanelClose`);旧类名挂着做别名,消费方写在上面的覆盖仍生效。
|
|
92
|
-
: h(PanelClose, { label: props.closeLabel, onClick: props.onClose, className: 'dshpc-overlay-head__close' }));
|
|
93
|
-
}
|
|
94
|
-
//# sourceMappingURL=overlay.js.map
|
package/dist/ui/overlay.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"overlay.js","sourceRoot":"","sources":["../../src/ui/overlay.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 分页纯逻辑:总页数、页码夹取、省略号窗口、当前页可见区间。
|
|
3
|
-
*
|
|
4
|
-
* 零 React 运行时依赖(只 `import type`,编译后不留痕迹),可被 node 单测直接引。
|
|
5
|
-
*
|
|
6
|
-
* 口径照通行的分页约定(Ant Design / MUI / Element Plus 一致):
|
|
7
|
-
* 调用方只给「当前页 / 每页条数 / 总条数」,总页数与省略窗口一律由这里算,
|
|
8
|
-
* **消费方永远不自己算页数、也不自己拼页码**。
|
|
9
|
-
*/
|
|
10
|
-
import type { ReactNode } from 'react';
|
|
11
|
-
/** 页码条对齐:默认 right(放内容右下角)。 */
|
|
12
|
-
export type PaginationAlign = 'left' | 'center' | 'right';
|
|
13
|
-
/** 页码条里的一项:页码,或省略号占位。 */
|
|
14
|
-
export type PageItem = number | 'gap';
|
|
15
|
-
/** 总页数:`ceil(total / pageSize)`,至少 1 页(空数据也显示单页)。 */
|
|
16
|
-
export declare function pageCountOf(total: number, pageSize: number): number;
|
|
17
|
-
/** 把页码夹回 `[1, pageCount]`(越界 / NaN 一律落到第 1 页)。 */
|
|
18
|
-
export declare function clampPage(page: number, pageCount: number): number;
|
|
19
|
-
/**
|
|
20
|
-
* 当前页在数据里的区间(1 起的闭区间行号)。
|
|
21
|
-
* 空数据返回 `[0, 0]`(调用方据此显示「共 0 条」而不是「第 0-0 条」)。
|
|
22
|
-
*/
|
|
23
|
-
export declare function pageRange(page: number, pageSize: number, total: number): [number, number];
|
|
24
|
-
/**
|
|
25
|
-
* 页码条上的项序列(含省略号占位)。
|
|
26
|
-
*
|
|
27
|
-
* 窗口算法照 MUI 的实现:首尾各固定 `boundaryCount` 页,当前页两侧各留 `siblingCount` 页,
|
|
28
|
-
* 中间不足的部分收成 `'gap'`。默认 1 / 1 —— 最多 7 个位置(与 Element Plus `pager-count: 7` 等价)。
|
|
29
|
-
*
|
|
30
|
-
* 关键细节(各家一致,别改成「有缝就画省略号」):间隔**正好 1 页**时直接显示那个页号,
|
|
31
|
-
* 不画省略号,否则会出现 `1 2 … 4` 这种丑态。
|
|
32
|
-
*/
|
|
33
|
-
export declare function pageItems(page: number, pageCount: number, siblingCount?: number, boundaryCount?: number): PageItem[];
|
|
34
|
-
/** `showTotal` 的两种写法:`true` 走内置字典,函数则拿到 (总条数, 起始行, 结束行)。 */
|
|
35
|
-
export type PageTotalRenderer = (total: number, from: number, to: number) => ReactNode;
|
|
36
|
-
//# sourceMappingURL=pagination-logic.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pagination-logic.d.ts","sourceRoot":"","sources":["../../src/ui/pagination-logic.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,8BAA8B;AAC9B,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;AAEzD,yBAAyB;AACzB,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAA;AAErC,qDAAqD;AACrD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAInE;AAED,kDAAkD;AAClD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAIjE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAOzF;AAQD;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,YAAY,SAAI,EAChB,aAAa,SAAI,GAChB,QAAQ,EAAE,CA6BZ;AAED,4DAA4D;AAC5D,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,SAAS,CAAA"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 分页纯逻辑:总页数、页码夹取、省略号窗口、当前页可见区间。
|
|
3
|
-
*
|
|
4
|
-
* 零 React 运行时依赖(只 `import type`,编译后不留痕迹),可被 node 单测直接引。
|
|
5
|
-
*
|
|
6
|
-
* 口径照通行的分页约定(Ant Design / MUI / Element Plus 一致):
|
|
7
|
-
* 调用方只给「当前页 / 每页条数 / 总条数」,总页数与省略窗口一律由这里算,
|
|
8
|
-
* **消费方永远不自己算页数、也不自己拼页码**。
|
|
9
|
-
*/
|
|
10
|
-
/** 总页数:`ceil(total / pageSize)`,至少 1 页(空数据也显示单页)。 */
|
|
11
|
-
export function pageCountOf(total, pageSize) {
|
|
12
|
-
const size = Math.max(1, Math.floor(pageSize));
|
|
13
|
-
const rows = Math.max(0, Math.floor(total));
|
|
14
|
-
return Math.max(1, Math.ceil(rows / size));
|
|
15
|
-
}
|
|
16
|
-
/** 把页码夹回 `[1, pageCount]`(越界 / NaN 一律落到第 1 页)。 */
|
|
17
|
-
export function clampPage(page, pageCount) {
|
|
18
|
-
const count = Math.max(1, Math.floor(pageCount));
|
|
19
|
-
if (!Number.isFinite(page))
|
|
20
|
-
return 1;
|
|
21
|
-
return Math.min(Math.max(1, Math.floor(page)), count);
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* 当前页在数据里的区间(1 起的闭区间行号)。
|
|
25
|
-
* 空数据返回 `[0, 0]`(调用方据此显示「共 0 条」而不是「第 0-0 条」)。
|
|
26
|
-
*/
|
|
27
|
-
export function pageRange(page, pageSize, total) {
|
|
28
|
-
const rows = Math.max(0, Math.floor(total));
|
|
29
|
-
if (rows === 0)
|
|
30
|
-
return [0, 0];
|
|
31
|
-
const size = Math.max(1, Math.floor(pageSize));
|
|
32
|
-
const current = clampPage(page, pageCountOf(rows, size));
|
|
33
|
-
const from = (current - 1) * size + 1;
|
|
34
|
-
return [from, Math.min(rows, from + size - 1)];
|
|
35
|
-
}
|
|
36
|
-
function range(start, end) {
|
|
37
|
-
const out = [];
|
|
38
|
-
for (let n = start; n <= end; n += 1)
|
|
39
|
-
out.push(n);
|
|
40
|
-
return out;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* 页码条上的项序列(含省略号占位)。
|
|
44
|
-
*
|
|
45
|
-
* 窗口算法照 MUI 的实现:首尾各固定 `boundaryCount` 页,当前页两侧各留 `siblingCount` 页,
|
|
46
|
-
* 中间不足的部分收成 `'gap'`。默认 1 / 1 —— 最多 7 个位置(与 Element Plus `pager-count: 7` 等价)。
|
|
47
|
-
*
|
|
48
|
-
* 关键细节(各家一致,别改成「有缝就画省略号」):间隔**正好 1 页**时直接显示那个页号,
|
|
49
|
-
* 不画省略号,否则会出现 `1 2 … 4` 这种丑态。
|
|
50
|
-
*/
|
|
51
|
-
export function pageItems(page, pageCount, siblingCount = 1, boundaryCount = 1) {
|
|
52
|
-
const count = Math.max(1, Math.floor(pageCount));
|
|
53
|
-
const current = clampPage(page, count);
|
|
54
|
-
const boundary = Math.max(0, Math.floor(boundaryCount));
|
|
55
|
-
const siblings = Math.max(0, Math.floor(siblingCount));
|
|
56
|
-
const startPages = range(1, Math.min(boundary, count));
|
|
57
|
-
const endPages = range(Math.max(count - boundary + 1, boundary + 1), count);
|
|
58
|
-
const siblingsStart = Math.max(Math.min(current - siblings, count - boundary - siblings * 2 - 1), boundary + 2);
|
|
59
|
-
const siblingsEnd = Math.min(Math.max(current + siblings, boundary + siblings * 2 + 2), endPages.length > 0 ? endPages[0] - 2 : count - 1);
|
|
60
|
-
const items = [...startPages];
|
|
61
|
-
if (siblingsStart > boundary + 2)
|
|
62
|
-
items.push('gap');
|
|
63
|
-
else if (boundary + 1 < count - boundary)
|
|
64
|
-
items.push(boundary + 1);
|
|
65
|
-
items.push(...range(siblingsStart, siblingsEnd));
|
|
66
|
-
if (siblingsEnd < count - boundary - 1)
|
|
67
|
-
items.push('gap');
|
|
68
|
-
else if (count - boundary > boundary)
|
|
69
|
-
items.push(count - boundary);
|
|
70
|
-
items.push(...endPages);
|
|
71
|
-
return items;
|
|
72
|
-
}
|
|
73
|
-
//# sourceMappingURL=pagination-logic.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pagination-logic.js","sourceRoot":"","sources":["../../src/ui/pagination-logic.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/panel-css.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"panel-css.d.ts","sourceRoot":"","sources":["../../src/ui/panel-css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export declare const PANEL_CSS = "/* \u6D6E\u5C42\u9762\u677F\u76AE\u80A4\uFF082026-11-03 \u7528\u6237\u5B9A\uFF1A\u76AE\u80A4\u7EDF\u4E00\uFF0C\u53EA\u6539\u6837\u5F0F\u4E0D\u52A8\u4EA4\u4E92\uFF09\u3002\n *\n * \u8FD9\u4EFD\u6587\u4EF6\u662F**\u6240\u6709\u300C\u6D6E\u8D77\u6765\u7684\u6846\u300D\u7684\u76AE\u80A4\u771F\u6E90**\u3002\u5B9A\u4F4D\uFF08fixed / absolute\u3001\u8D34\u8C01\u3001\u600E\u4E48\u7FFB\u8F6C\u3001\u591A\u5927\u7684\n * \u5C42\u5E8F\uFF09\u7559\u5728\u5404\u81EA\u63A7\u4EF6\u91CC\uFF0C\u8FD9\u91CC\u53EA\u7BA1\u8868\u9762\u56DB\u4EF6\uFF1A\u5E95\u8272 / \u63CF\u8FB9\u5BBD / \u5706\u89D2 / \u9634\u5F71\u3002\n * \u26A0\uFE0F \u7EC4\u4EF6 CSS \u91CC\u4E0D\u8BB8\u518D\u5199\u8FD9\u56DB\u4E2A\u5B57\u9762\u503C \u2014\u2014 \u60F3\u6539\u5916\u89C2\u5C31\u6539\u8FD9\u91CC\uFF0C\u522B\u5728\u6D88\u8D39\u65B9\u53E6\u8D77\u4E00\u5957\u3002\n *\n * \u4E09\u6863\uFF08\u5DEE\u5F02\u53EA\u5728\u8FD9\u4E09\u6BB5\u5B9A\u4E49\uFF0C\u522B\u5904\u5206\u53C9\uFF09\uFF1A\n * --modal \u5C45\u4E2D\u6A21\u6001\uFF08Modal / ConfirmModal / AlertModal \u5BB6\u65CF\uFF09\n * --popover \u8D34\u951A\u70B9\u7684\u6D6E\u5C42\u9762\u677F\uFF08pickWorkspaceFile \u7684\u9009\u6587\u4EF6\u5F39\u7A97\uFF09\n * --menu \u4E0B\u62C9\u83DC\u5355\uFF08\u6587\u4EF6\u6D4F\u89C8\u5668 \u25BE \u9009\u5C42\u3001Picker \u4E0B\u62C9\uFF09\n *\n * \u4E0D\u5E76\u5165\u4E09\u6863\u7684\uFF1APanelDock \u4E0E SideSheet \u662F**\u8D34\u8FB9\u5BB6\u65CF**\uFF08side-panel.css \u7684\n * .dshpc-side-surface\uFF0Csurface-base\u3001\u65E0\u5916\u63CF\u8FB9\uFF09\u2014\u2014 2026-11-02 \u62CD\u677F\u300C\u4E24\u8005\u76AE\u80A4\u4E00\u6A21\u4E00\u6837\u300D\uFF0C\n * \u4E00\u4E2A\u662F\u5E03\u5C40\u6210\u5458\u3001\u4E00\u4E2A\u662F\u8D34\u8FB9\u62BD\u5C49\uFF0C\u90FD\u4E0D\u662F\u6D6E\u5C42\u3002\n */\n.dshpc-panel{\n background:var(--dshpc-panel-bg);color:var(--dshpc-fg);\n border:var(--dshpc-panel-bw) solid var(--dshpc-border);\n border-radius:var(--dshpc-panel-radius);box-shadow:var(--dshpc-panel-shadow);\n}\n.dshpc-panel--modal{\n --dshpc-panel-bg:var(--dshpc-surface-1);\n --dshpc-panel-bw:3px;\n --dshpc-panel-radius:var(--dshpc-radius-xl);\n --dshpc-panel-shadow:var(--dshpc-shadow-2);\n overflow:hidden;\n}\n.dshpc-panel--popover{\n --dshpc-panel-bg:var(--dshpc-surface-1);\n --dshpc-panel-bw:1px;\n --dshpc-panel-radius:var(--dshpc-radius-lg);\n --dshpc-panel-shadow:var(--dshpc-shadow-2);\n overflow:hidden;\n}\n.dshpc-panel--menu{\n /* \u83DC\u5355\u5E95\u4E0E\u6A21\u6001\u540C\u4E00\u5C42\uFF08\u7528\u6237 2026-11-03\uFF1A\u522B\u7528\u9875\u9762\u5E95\u8272\uFF0C\u6697\u8272\u4E0B\u770B\u7740\u5168\u9ED1\uFF09\u3002 */\n --dshpc-panel-bg:var(--dshpc-surface-1);\n --dshpc-panel-bw:1px;\n --dshpc-panel-radius:var(--dshpc-radius-sm);\n --dshpc-panel-shadow:var(--dshpc-shadow-1);\n}\n\n/* \u6D6E\u5C42\u552F\u4E00\u7684\u5173\u95ED\u94AE\uFF0820\u00D720 \u65B9\u89D2\u56FE\u6807\u4F4D\uFF09\u3002\n \u65E7\u7C7B\u540D .dshpc-overlay-head__close \u4FDD\u7559\u4E3A\u522B\u540D\uFF1A\u6D88\u8D39\u65B9\u5199\u5728\u65E7\u7C7B\u540D\u4E0A\u7684\u8986\u76D6\u4ECD\u751F\u6548\u3002 */\n.dshpc-panel__close,.dshpc-overlay-head__close{\n display:inline-flex;align-items:center;justify-content:center;flex:none;\n width:20px;height:20px;padding:0;border:none;border-radius:var(--dshpc-radius-sm);\n background:transparent;color:var(--dshpc-fg-3);font-family:inherit;font-size:13px;line-height:1;cursor:pointer;\n transition:background-color var(--dshpc-dur-fast) var(--dshpc-ease),color var(--dshpc-dur-fast) var(--dshpc-ease);\n}\n.dshpc-panel__close:hover,.dshpc-overlay-head__close:hover{background:var(--dshpc-hover);color:var(--dshpc-fg)}\n.dshpc-panel__close:focus-visible,.dshpc-overlay-head__close:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:1px}\n";
|
|
2
|
-
//# sourceMappingURL=panel-css.generated.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"panel-css.generated.d.ts","sourceRoot":"","sources":["../../src/ui/panel-css.generated.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,qtHAAoqE,CAAA"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
// ⚠️ 生成物,勿手改。真源 = src/ui/panel.css
|
|
2
|
-
// 由 scripts/gen-css.mjs 生成(`pnpm run gen:css`):改样式请改那个 .css 文件后重新生成。
|
|
3
|
-
export const PANEL_CSS = "/* 浮层面板皮肤(2026-11-03 用户定:皮肤统一,只改样式不动交互)。\n *\n * 这份文件是**所有「浮起来的框」的皮肤真源**。定位(fixed / absolute、贴谁、怎么翻转、多大的\n * 层序)留在各自控件里,这里只管表面四件:底色 / 描边宽 / 圆角 / 阴影。\n * ⚠️ 组件 CSS 里不许再写这四个字面值 —— 想改外观就改这里,别在消费方另起一套。\n *\n * 三档(差异只在这三段定义,别处分叉):\n * --modal 居中模态(Modal / ConfirmModal / AlertModal 家族)\n * --popover 贴锚点的浮层面板(pickWorkspaceFile 的选文件弹窗)\n * --menu 下拉菜单(文件浏览器 ▾ 选层、Picker 下拉)\n *\n * 不并入三档的:PanelDock 与 SideSheet 是**贴边家族**(side-panel.css 的\n * .dshpc-side-surface,surface-base、无外描边)—— 2026-11-02 拍板「两者皮肤一模一样」,\n * 一个是布局成员、一个是贴边抽屉,都不是浮层。\n */\n.dshpc-panel{\n background:var(--dshpc-panel-bg);color:var(--dshpc-fg);\n border:var(--dshpc-panel-bw) solid var(--dshpc-border);\n border-radius:var(--dshpc-panel-radius);box-shadow:var(--dshpc-panel-shadow);\n}\n.dshpc-panel--modal{\n --dshpc-panel-bg:var(--dshpc-surface-1);\n --dshpc-panel-bw:3px;\n --dshpc-panel-radius:var(--dshpc-radius-xl);\n --dshpc-panel-shadow:var(--dshpc-shadow-2);\n overflow:hidden;\n}\n.dshpc-panel--popover{\n --dshpc-panel-bg:var(--dshpc-surface-1);\n --dshpc-panel-bw:1px;\n --dshpc-panel-radius:var(--dshpc-radius-lg);\n --dshpc-panel-shadow:var(--dshpc-shadow-2);\n overflow:hidden;\n}\n.dshpc-panel--menu{\n /* 菜单底与模态同一层(用户 2026-11-03:别用页面底色,暗色下看着全黑)。 */\n --dshpc-panel-bg:var(--dshpc-surface-1);\n --dshpc-panel-bw:1px;\n --dshpc-panel-radius:var(--dshpc-radius-sm);\n --dshpc-panel-shadow:var(--dshpc-shadow-1);\n}\n\n/* 浮层唯一的关闭钮(20×20 方角图标位)。\n 旧类名 .dshpc-overlay-head__close 保留为别名:消费方写在旧类名上的覆盖仍生效。 */\n.dshpc-panel__close,.dshpc-overlay-head__close{\n display:inline-flex;align-items:center;justify-content:center;flex:none;\n width:20px;height:20px;padding:0;border:none;border-radius:var(--dshpc-radius-sm);\n background:transparent;color:var(--dshpc-fg-3);font-family:inherit;font-size:13px;line-height:1;cursor:pointer;\n transition:background-color var(--dshpc-dur-fast) var(--dshpc-ease),color var(--dshpc-dur-fast) var(--dshpc-ease);\n}\n.dshpc-panel__close:hover,.dshpc-overlay-head__close:hover{background:var(--dshpc-hover);color:var(--dshpc-fg)}\n.dshpc-panel__close:focus-visible,.dshpc-overlay-head__close:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:1px}\n";
|
|
4
|
-
//# sourceMappingURL=panel-css.generated.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"panel-css.generated.js","sourceRoot":"","sources":["../../src/ui/panel-css.generated.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,qEAAqE;AACrE,MAAM,CAAC,MAAM,SAAS,GAAG,iqEAAiqE,CAAA"}
|
package/dist/ui/panel-css.js
DELETED
package/dist/ui/panel-css.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"panel-css.js","sourceRoot":"","sources":["../../src/ui/panel-css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"panel-dock-css.d.ts","sourceRoot":"","sources":["../../src/ui/panel-dock-css.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export declare const PANEL_DOCK_CSS = "/* \u505C\u9760\u680F = **\u5E03\u5C40\u6210\u5458**\uFF0C\u4E0D\u662F\u6D6E\u5C42\uFF1A\u5B83\u5360\u5BBD\u5EA6\u3001\u628A\u4E3B\u533A\u771F\u6B63\u6324\u7A84\uFF08\u5144\u5F1F\u9879\u76EE 2026-09-28\uFF1A\n \u300C\u5206\u680F\u538B\u8FC7\u6765\uFF0C\u4E0D\u662F\u76D6\u4E0A\u53BB\u300D\uFF09\u3002\u6240\u4EE5\u8C03\u7528\u65B9\u5FC5\u987B\u628A\u5B83\u653E\u8FDB\u81EA\u5DF1\u7684 flex \u6839\u91CC\u3002\n \u76AE\u80A4\uFF08\u5934\u90E8 / \u62D6\u62FD\u6761 / \u5173\u95ED\u94AE / \u80CC\u666F\u9634\u5F71\uFF09\u5728 side-panel.css\uFF0C\u4E0E SideSheet \u5171\u7528\u3002 */\n.dshpc-dock{display:flex;flex:0 0 auto;align-self:stretch;min-width:0}\n/* dock \u4E0D\u518D\u66FF\u4E3B\u533A\u8BA9\u7F1D\uFF08\u539F --dshpc-dock-gap \u7684 1px margin \u5DF2\u5220\uFF0C\u7528\u6237 2026-11-02\uFF09\uFF1A\n \u6EDA\u52A8\u6761\u4E0E\u5BB9\u5668\u8FB9\u7F18\u7684 1px \u7EDF\u4E00\u7531\u6EDA\u52A8\u5BB9\u5668\u81EA\u5DF1\u7684\u900F\u660E\u8FB9\u6846\u63D0\u4F9B\uFF08\u89C1 style.md \u00A7\u6EDA\u52A8\u6761\u8BA9\u4F4D\uFF09\uFF0C\n \u4E3B\u533A\u5BB9\u5668\u5E26\u4E86\u8BA9\u4F4D\uFF0C\u6EDA\u52A8\u6761\u4E0E\u8FD9\u6761\u5206\u9694\u7EBF\u4E4B\u95F4\u81EA\u7136\u8FD8\u662F 1px\u3002\u522B\u518D\u5F80\u8FD9\u91CC\u52A0 margin\u3002 */\n\n/* \u81EA\u52A8\u52A0\u7684\u5BBF\u4E3B\u884C\uFF08openFilePreview \u52A0 / \u5173\u95ED\u5373\u6458\uFF09\uFF1A\u6D88\u8D39\u65B9\u90A3\u884C\u4E0D\u5FC5\u81EA\u5DF1\u5199 flex\u3002\n \u53EA\u8BA9\u300C\u7B2C\u4E00\u4E2A\u975E\u9884\u89C8\u5B50\u9879\u300D\u5F53\u4E3B\u533A\u4F38\u5C55\uFF0C\u5176\u4F59\u76F4\u63A5\u5B50\u9879\u4E0D\u52A8\uFF08\u9875\u811A\u6761\u3001\u5DE5\u5177\u6761\u4E0D\u8BEF\u4F24\uFF09\uFF1B\n display \u4E0D\u5728\u8FD9\u91CC\u5199\u6B7B \u2014\u2014 \u672C\u6765\u5C31\u662F grid \u7B49\u5E03\u5C40\u7684\u5143\u7D20\u4FDD\u6301\u539F\u6837\uFF0C\u7531 TS \u4FA7\u6309\u8BA1\u7B97\u503C\u8865 flex\u3002 */\n.dshpc-dock-host{min-width:0;min-height:0}\n.dshpc-dock-host>:not([data-dshpc-file-preview]){min-width:0}\n.dshpc-dock-host>:first-child:not([data-dshpc-file-preview]){flex:1 1 auto}\n\n/* \u5355\u680F**\u5360\u4F4D**\uFF1Asticky + \u89C6\u53E3\u9AD8\u8BA9\u5B83\u5728\u9875\u9762\u6EDA\u52A8\u65F6\u4FDD\u6301\u53EF\u89C1\uFF0C\u540C\u65F6\u4ECD\u7136\u5360\u5BBD\u5EA6\u3002\n \u26A0\uFE0F **\u672C\u6761\u523B\u610F\u4E0D\u8BBE z-index**\uFF1A\u5E03\u5C40\u6210\u5458\u4E00\u65E6\u5E26\u6B63 z-index\uFF0C\u5C31\u4F1A\u65E0\u6761\u4EF6\u538B\u8FC7\u5BBF\u4E3B portal \u5230 body \u7684\n \u5F39\u7A97\uFF08\u5144\u5F1F\u9879\u76EE 2026-10-05 \u771F\u673A\u4E8B\u6545\u300C\u4FA7\u8FB9\u680F\u76D6\u4F4F\u5BBF\u4E3B\u8BBE\u7F6E\u5F39\u7A97\u300D\uFF09\u3002\u5C42\u5E8F\u4EA4\u7ED9 DOM \u987A\u5E8F\u88C1\u51B3\u3002\n \u5916\u89C2\u6765\u81EA .dshpc-side-surface\uFF08side-panel.css\uFF09\uFF0C\u8FD9\u91CC\u53EA\u7BA1\u600E\u4E48\u5360\u4F4D\u4E0E\u671D\u54EA\u8FB9\u63CF\u8FB9\u3002 */\n.dshpc-dock__panel{\n position:sticky;top:0;align-self:stretch;\n /* \u9AD8\u5EA6\u9ED8\u8BA4\u89C6\u53E3\u9AD8\uFF08\u6574\u9875\u573A\u666F\uFF09\uFF1B\u5D4C\u5728\u5B9A\u9AD8\u5BB9\u5668\u91CC\u65F6\u7531\u8C03\u7528\u65B9\u7ED9 --dshpc-dock-h\uFF08\u5982 420px / 100%\uFF09\u3002 */\n height:var(--dshpc-dock-h,100vh);max-height:var(--dshpc-dock-h,100vh);\n border-left:1px solid var(--dshpc-border);\n}\n/* \u6536\u8D77\u7684\u51FA\u573A\uFF1A\u5BBD\u5EA6\u6536\u5230 0\u3001\u900F\u660E\u6DE1\u51FA\uFF1B\u843D\u5B9A\u540E\u7EC4\u4EF6\u624D\u771F\u6B63\u6458\u6389\u8FD9\u4E00\u680F\uFF08JS \u5EF6\u65F6 220ms \u914D\u5408\uFF09\u3002 */\n.dshpc-dock__panel--closing{\n width:0!important;min-width:0!important;opacity:0;border-left-width:0;\n transition:width .2s var(--dshpc-ease),opacity .2s var(--dshpc-ease),border-left-width .2s var(--dshpc-ease);\n}\n\n/* \u62D6\u52A8\u671F\uFF1A\u2460 <iframe>\uFF08PDF / HTML \u9884\u89C8\uFF09\u662F\u72EC\u7ACB\u6587\u6863\uFF0C\u4F1A\u541E\u6389\u7236\u6587\u6863\u7684 pointermove\uFF0C\n \u5411\u53F3\u62D6\u8FDB iframe \u5C31\u5361\u6B7B \u2014\u2014 \u6574\u7247\u8BA9\u51FA\u6307\u9488\u4E8B\u4EF6\uFF1B\u2461 contain \u628A\u91CD\u6392\u9694\u79BB\u5728\u680F\u5185\uFF0C\n \u5426\u5219\u6BCF\u5E27\u6539\u5BBD\u5EA6\u90FD\u4F1A\u7275\u52A8\u6574\u9875\u91CD\u6392\uFF08\u5144\u5F1F\u9879\u76EE 2026-10-04 \u771F\u673A\u300C\u632A\u5F88\u4E45\u624D\u52A8\u4E00\u4E0B\u300D\uFF09\u3002 */\n.dshpc-dock.dshpc-dock--resizing iframe{pointer-events:none}\n.dshpc-dock.dshpc-dock--resizing .dshpc-dock__panel{contain:layout paint;will-change:width}\n\n/* \u6536\u8D77\u94AE\uFF1A**\u5F85\u5728\u9762\u677F\u81EA\u5DF1\u7684\u6846\u91CC**\uFF08\u7528\u6237 2026-10-28 \u4E09\u8F6E\uFF1A\u5360\u9762\u677F\u5185\u90E8\u7A7A\u95F4\uFF0C\u4E0D\u4F38\u5230\u5916\u9762\u53BB\uFF09\u3002\n left:0 \u4ECE\u5185\u4FA7\u8D34\u7740\u5206\u9694\u7EBF \u2014\u2014 \u8D34\u7EBF\u7684\u4E00\u8FB9\u4E0D\u63CF\u8FB9\uFF08\u7EBF\u662F\u9762\u677F\u81EA\u5DF1\u7684 border-left\uFF09\uFF0C\u9875\u7B7E\u4E0E\u7EBF\u4E0D\u91CD\u5408\u3002\n 20\u00D744\uFF08\u7528\u6237 2026-10-28 \u56DB\u8F6E\u5B9A\u5C3A\u5BF8\uFF09\uFF1B\u5B9E\u8272\u5E95\uFF08--dshpc-plate\uFF0C\u660E\u6697\u5404\u6709\u5B9E\u503C\uFF09\uFF0Chover \u4EAE\u4E00\u6863\u3002\n padding-right:2px \u662F**\u89C6\u89C9\u5C45\u4E2D**\uFF1A\u53F3\u4FA7\u662F\u5706\u89D2\uFF0C\u7BAD\u5934\u5F80\u76F4\u7EBF\u90A3\u8FB9\u632A 1px\uFF08\u7528\u6237 2026-10-28 \u56DB\u8F6E\uFF09\u3002 */\n.dshpc-dock__collapse{\n position:absolute;left:0;top:50%;transform:translateY(-50%);\n z-index:8;display:inline-flex;align-items:center;justify-content:center;\n width:20px;height:44px;padding:0 2px 0 0;\n border-top:1px solid var(--dshpc-border);\n border-bottom:1px solid var(--dshpc-border);\n border-right:1px solid var(--dshpc-border);\n border-left:none;\n border-radius:0 var(--dshpc-radius-sm) var(--dshpc-radius-sm) 0;\n background:var(--dshpc-plate);color:var(--dshpc-fg-3);\n font-family:inherit;font-size:16px;line-height:1;cursor:pointer;\n transition:background-color var(--dshpc-dur-fast) var(--dshpc-ease),color var(--dshpc-dur-fast) var(--dshpc-ease);\n}\n.dshpc-dock__collapse:hover{background:var(--dshpc-plate-hover);color:var(--dshpc-fg)}\n.dshpc-dock__collapse:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:1px}\n\n/* \u6536\u8D77\u540E\u7684\u6D6E\u52A8\u8033\u6735\uFF1A**fixed \u8D34\u53F3\u7F18\u3001\u5782\u76F4\u5C45\u4E2D\u3001\u72EC\u7ACB\u4E8E\u5206\u680F**\uFF08\u7528\u6237 2026-10-28 \u5B9A\u7A3F\uFF1A\n \u5C0F\u9875\u7B7E\u6302\u4E2D\u95F4\u3001\u91CC\u9762\u653E\u9762\u677F\u56FE\u6807\u3001\u4E0D\u663E\u793A\u6587\u5B57\uFF0C\u7BAD\u5934\u4E0E\u6536\u8D77\u94AE\u53CD\u5411\uFF09\u3002\u591A\u4E2A\u6309\u6536\u8D77\u987A\u5E8F\u7EB5\u5411\u5806\u53E0\u3002\n z \u8D70 ear \u6863\uFF08\u9AD8\u4E8E\u5F39\u7A97\u906E\u7F69\uFF0C2026-11-04\uFF09\uFF1A\u9762\u677F\u5728\u5F39\u7A97\u4E0B\u9762\u65F6\uFF0C\u8033\u6735\u4ECD\u662F\u552F\u4E00\u80FD\u70B9\u5230\u7684\u5165\u53E3\u3002\n DOM \u4E0A portal \u5230 body\uFF08PanelDock.ts\uFF09\uFF0C\u5426\u5219\u4F1A\u88AB\u5F39\u7A97\u7684 stacking context \u5173\u5728\u91CC\u9762\u3002 */\n.dshpc-dock__ears{\n position:fixed;top:50%;right:0;transform:translateY(-50%);\n z-index:var(--dshpc-z-ear,1080);\n display:flex;flex-direction:column;gap:8px;align-items:flex-end;\n pointer-events:none;\n}\n.dshpc-dock__ear{\n pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;\n /* \u4E0E\u6536\u8D77\u94AE**\u540C\u5C3A\u5BF8**\uFF0820\u00D744\uFF0C\u7528\u6237 2026-10-28 \u56DB\u8F6E\uFF09\uFF1A\u4E0A/\u4E0B/\u5DE6\u63CF\u8FB9\uFF0C\u8D34\u53F3\u7F18\u7684\u4E00\u4FA7\u4E0D\u63CF\u3002\n \u5B9E\u8272\u5E95\uFF08--dshpc-plate\uFF09\uFF0C\u4E0D\u7528\u900F\u660E\u8272 \u2014\u2014 \u900F\u660E\u5E95\u4E0B\u900F\u51FA\u4E1C\u897F\u5F88\u96BE\u770B\u3002\n padding-left:2px \u662F**\u89C6\u89C9\u5C45\u4E2D**\uFF1A\u5DE6\u4FA7\u662F\u5706\u89D2\uFF0C\u7BAD\u5934\u5F80\u76F4\u7EBF\uFF08\u53F3\u7F18\uFF09\u90A3\u8FB9\u632A 1px\u3002 */\n width:20px;height:44px;box-sizing:border-box;padding:0 0 0 2px;\n border-top:1px solid var(--dshpc-border);\n border-bottom:1px solid var(--dshpc-border);\n border-left:1px solid var(--dshpc-border);\n border-right:none;\n border-radius:var(--dshpc-radius-sm) 0 0 var(--dshpc-radius-sm);\n background:var(--dshpc-plate);color:var(--dshpc-fg-2);\n cursor:pointer;font-family:inherit;line-height:1;\n animation:dshpc-ear-in .2s var(--dshpc-ease);\n transition:background-color var(--dshpc-dur-fast) var(--dshpc-ease),color var(--dshpc-dur-fast) var(--dshpc-ease);\n}\n/* \u5165\u573A\uFF1A\u4ECE\u53F3\u7F18\u5916\u6ED1\u8FDB\u6765\uFF0C\u522B\u300C\u7A81\u7136\u51FA\u73B0\u300D\uFF08\u7528\u6237 2026-10-28\uFF09\u3002 */\n@keyframes dshpc-ear-in{from{opacity:0;transform:translateX(14px)}}\n.dshpc-dock__ear:hover{background:var(--dshpc-plate-hover);color:var(--dshpc-fg)}\n.dshpc-dock__ear:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:1px}\n/* \u4E0E\u6536\u8D77\u94AE\u7684\u7BAD\u5934\u540C\u4E00\u5B57\u53F7\uFF0816px\uFF09\uFF1A\u6536\u8FDB\u53BB\u524D\u540E\u7BAD\u5934\u4E00\u6A21\u4E00\u6837\u5927\uFF08\u7528\u6237 2026-10-28\uFF09\u3002 */\n.dshpc-dock__ear-arrow{font-size:16px;color:var(--dshpc-fg-3)}\n.dshpc-dock__ear:hover .dshpc-dock__ear-arrow{color:var(--dshpc-fg)}\n/* \u52A8\u6548\u793C\u8C8C\uFF1A\u7CFB\u7EDF\u58F0\u660E\u51CF\u5C11\u52A8\u6548\u65F6\u5168\u90E8\u5173\u6389\uFF0C\u6536\u8D77\u9000\u5316\u4E3A\u77AC\u65F6\u3001\u529F\u80FD\u4E0D\u53D7\u5F71\u54CD\u3002 */\n@media (prefers-reduced-motion:reduce){\n .dshpc-dock__panel{animation:none}\n .dshpc-dock__panel--closing{transition:none}\n .dshpc-dock__ear{animation:none}\n}\n";
|
|
2
|
-
//# sourceMappingURL=panel-dock-css.generated.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"panel-dock-css.generated.d.ts","sourceRoot":"","sources":["../../src/ui/panel-dock-css.generated.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,y+SAAg2J,CAAA"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
// ⚠️ 生成物,勿手改。真源 = src/ui/panel-dock.css
|
|
2
|
-
// 由 scripts/gen-css.mjs 生成(`pnpm run gen:css`):改样式请改那个 .css 文件后重新生成。
|
|
3
|
-
export const PANEL_DOCK_CSS = "/* 停靠栏 = **布局成员**,不是浮层:它占宽度、把主区真正挤窄(兄弟项目 2026-09-28:\n 「分栏压过来,不是盖上去」)。所以调用方必须把它放进自己的 flex 根里。\n 皮肤(头部 / 拖拽条 / 关闭钮 / 背景阴影)在 side-panel.css,与 SideSheet 共用。 */\n.dshpc-dock{display:flex;flex:0 0 auto;align-self:stretch;min-width:0}\n/* dock 不再替主区让缝(原 --dshpc-dock-gap 的 1px margin 已删,用户 2026-11-02):\n 滚动条与容器边缘的 1px 统一由滚动容器自己的透明边框提供(见 style.md §滚动条让位),\n 主区容器带了让位,滚动条与这条分隔线之间自然还是 1px。别再往这里加 margin。 */\n\n/* 自动加的宿主行(openFilePreview 加 / 关闭即摘):消费方那行不必自己写 flex。\n 只让「第一个非预览子项」当主区伸展,其余直接子项不动(页脚条、工具条不误伤);\n display 不在这里写死 —— 本来就是 grid 等布局的元素保持原样,由 TS 侧按计算值补 flex。 */\n.dshpc-dock-host{min-width:0;min-height:0}\n.dshpc-dock-host>:not([data-dshpc-file-preview]){min-width:0}\n.dshpc-dock-host>:first-child:not([data-dshpc-file-preview]){flex:1 1 auto}\n\n/* 单栏**占位**:sticky + 视口高让它在页面滚动时保持可见,同时仍然占宽度。\n ⚠️ **本条刻意不设 z-index**:布局成员一旦带正 z-index,就会无条件压过宿主 portal 到 body 的\n 弹窗(兄弟项目 2026-10-05 真机事故「侧边栏盖住宿主设置弹窗」)。层序交给 DOM 顺序裁决。\n 外观来自 .dshpc-side-surface(side-panel.css),这里只管怎么占位与朝哪边描边。 */\n.dshpc-dock__panel{\n position:sticky;top:0;align-self:stretch;\n /* 高度默认视口高(整页场景);嵌在定高容器里时由调用方给 --dshpc-dock-h(如 420px / 100%)。 */\n height:var(--dshpc-dock-h,100vh);max-height:var(--dshpc-dock-h,100vh);\n border-left:1px solid var(--dshpc-border);\n}\n/* 收起的出场:宽度收到 0、透明淡出;落定后组件才真正摘掉这一栏(JS 延时 220ms 配合)。 */\n.dshpc-dock__panel--closing{\n width:0!important;min-width:0!important;opacity:0;border-left-width:0;\n transition:width .2s var(--dshpc-ease),opacity .2s var(--dshpc-ease),border-left-width .2s var(--dshpc-ease);\n}\n\n/* 拖动期:① <iframe>(PDF / HTML 预览)是独立文档,会吞掉父文档的 pointermove,\n 向右拖进 iframe 就卡死 —— 整片让出指针事件;② contain 把重排隔离在栏内,\n 否则每帧改宽度都会牵动整页重排(兄弟项目 2026-10-04 真机「挪很久才动一下」)。 */\n.dshpc-dock.dshpc-dock--resizing iframe{pointer-events:none}\n.dshpc-dock.dshpc-dock--resizing .dshpc-dock__panel{contain:layout paint;will-change:width}\n\n/* 收起钮:**待在面板自己的框里**(用户 2026-10-28 三轮:占面板内部空间,不伸到外面去)。\n left:0 从内侧贴着分隔线 —— 贴线的一边不描边(线是面板自己的 border-left),页签与线不重合。\n 20×44(用户 2026-10-28 四轮定尺寸);实色底(--dshpc-plate,明暗各有实值),hover 亮一档。\n padding-right:2px 是**视觉居中**:右侧是圆角,箭头往直线那边挪 1px(用户 2026-10-28 四轮)。 */\n.dshpc-dock__collapse{\n position:absolute;left:0;top:50%;transform:translateY(-50%);\n z-index:8;display:inline-flex;align-items:center;justify-content:center;\n width:20px;height:44px;padding:0 2px 0 0;\n border-top:1px solid var(--dshpc-border);\n border-bottom:1px solid var(--dshpc-border);\n border-right:1px solid var(--dshpc-border);\n border-left:none;\n border-radius:0 var(--dshpc-radius-sm) var(--dshpc-radius-sm) 0;\n background:var(--dshpc-plate);color:var(--dshpc-fg-3);\n font-family:inherit;font-size:16px;line-height:1;cursor:pointer;\n transition:background-color var(--dshpc-dur-fast) var(--dshpc-ease),color var(--dshpc-dur-fast) var(--dshpc-ease);\n}\n.dshpc-dock__collapse:hover{background:var(--dshpc-plate-hover);color:var(--dshpc-fg)}\n.dshpc-dock__collapse:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:1px}\n\n/* 收起后的浮动耳朵:**fixed 贴右缘、垂直居中、独立于分栏**(用户 2026-10-28 定稿:\n 小页签挂中间、里面放面板图标、不显示文字,箭头与收起钮反向)。多个按收起顺序纵向堆叠。\n z 走 ear 档(高于弹窗遮罩,2026-11-04):面板在弹窗下面时,耳朵仍是唯一能点到的入口。\n DOM 上 portal 到 body(PanelDock.ts),否则会被弹窗的 stacking context 关在里面。 */\n.dshpc-dock__ears{\n position:fixed;top:50%;right:0;transform:translateY(-50%);\n z-index:var(--dshpc-z-ear,1080);\n display:flex;flex-direction:column;gap:8px;align-items:flex-end;\n pointer-events:none;\n}\n.dshpc-dock__ear{\n pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;\n /* 与收起钮**同尺寸**(20×44,用户 2026-10-28 四轮):上/下/左描边,贴右缘的一侧不描。\n 实色底(--dshpc-plate),不用透明色 —— 透明底下透出东西很难看。\n padding-left:2px 是**视觉居中**:左侧是圆角,箭头往直线(右缘)那边挪 1px。 */\n width:20px;height:44px;box-sizing:border-box;padding:0 0 0 2px;\n border-top:1px solid var(--dshpc-border);\n border-bottom:1px solid var(--dshpc-border);\n border-left:1px solid var(--dshpc-border);\n border-right:none;\n border-radius:var(--dshpc-radius-sm) 0 0 var(--dshpc-radius-sm);\n background:var(--dshpc-plate);color:var(--dshpc-fg-2);\n cursor:pointer;font-family:inherit;line-height:1;\n animation:dshpc-ear-in .2s var(--dshpc-ease);\n transition:background-color var(--dshpc-dur-fast) var(--dshpc-ease),color var(--dshpc-dur-fast) var(--dshpc-ease);\n}\n/* 入场:从右缘外滑进来,别「突然出现」(用户 2026-10-28)。 */\n@keyframes dshpc-ear-in{from{opacity:0;transform:translateX(14px)}}\n.dshpc-dock__ear:hover{background:var(--dshpc-plate-hover);color:var(--dshpc-fg)}\n.dshpc-dock__ear:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:1px}\n/* 与收起钮的箭头同一字号(16px):收进去前后箭头一模一样大(用户 2026-10-28)。 */\n.dshpc-dock__ear-arrow{font-size:16px;color:var(--dshpc-fg-3)}\n.dshpc-dock__ear:hover .dshpc-dock__ear-arrow{color:var(--dshpc-fg)}\n/* 动效礼貌:系统声明减少动效时全部关掉,收起退化为瞬时、功能不受影响。 */\n@media (prefers-reduced-motion:reduce){\n .dshpc-dock__panel{animation:none}\n .dshpc-dock__panel--closing{transition:none}\n .dshpc-dock__ear{animation:none}\n}\n";
|
|
4
|
-
//# sourceMappingURL=panel-dock-css.generated.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"panel-dock-css.generated.js","sourceRoot":"","sources":["../../src/ui/panel-dock-css.generated.ts"],"names":[],"mappings":"AAAA,wCAAwC;AACxC,qEAAqE;AACrE,MAAM,CAAC,MAAM,cAAc,GAAG,61JAA61J,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"panel-dock-css.js","sourceRoot":"","sources":["../../src/ui/panel-dock-css.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,kDAAkD;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA"}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 停靠面板的状态逻辑(纯函数,零 React / 零 DOM)。
|
|
3
|
-
*
|
|
4
|
-
* 只记三件事:**哪些面板开着**、**每栏多宽**、**哪些收起成了耳朵**。
|
|
5
|
-
* 内容与头部不在这里——那是调用方在页面里声明的东西(`<DockPanel id="…">…</DockPanel>`),
|
|
6
|
-
* 与 Ant Design `Tabs` 的 `activeKey` + `<TabPane>` 同一分工:
|
|
7
|
-
* **显隐归状态,结构归 children**。
|
|
8
|
-
*
|
|
9
|
-
* 口径(用户 2026-10-20 定案):
|
|
10
|
-
* · 组名 = 窗口,一对一:`open('A')` 再 `open('A')` 只是重复打开,不新增一栏;
|
|
11
|
-
* · 未到上限 ⇒ 追加;到上限 ⇒ 返回 `{ ok: false, reason: 'limit' }`,不静默丢弃;
|
|
12
|
-
* · 关一栏即腾位,之后可以开新组名;
|
|
13
|
-
* · 没有多份同名、没有自动淘汰、没有 tab 切换。
|
|
14
|
-
*
|
|
15
|
-
* 收起(用户 2026-10-28 定案)= **面板退出布局、换成一只独立的固定耳朵**,不是把栏宽缩细:
|
|
16
|
-
* · `collapsePanel` 把组名从 `ids` 移到 `collapsed`,**宽度留着**(展开要回到原宽);
|
|
17
|
-
* · 耳朵是另一块 fixed 浮层,不在这里表达布局——这里只记「谁收起了」。
|
|
18
|
-
*/
|
|
19
|
-
/** 默认窗口的保留名:`open()` 不传 id 时用它。 */
|
|
20
|
-
export declare const DEFAULT_PANEL_ID = "default";
|
|
21
|
-
export interface DockState {
|
|
22
|
-
/** 打开顺序即数组顺序(稳定,不随重开变化)。 */
|
|
23
|
-
ids: string[];
|
|
24
|
-
/** 每栏宽度(px);没有记录的栏由组件用它的 `width` 兜底。 */
|
|
25
|
-
widths: Record<string, number>;
|
|
26
|
-
/** 已收起(变成右侧浮动耳朵)的组名,按收起顺序;宽度仍在 `widths` 里等展开还原。 */
|
|
27
|
-
collapsed: string[];
|
|
28
|
-
}
|
|
29
|
-
export type OpenResult = {
|
|
30
|
-
ok: true;
|
|
31
|
-
id: string;
|
|
32
|
-
created: boolean;
|
|
33
|
-
} | {
|
|
34
|
-
ok: false;
|
|
35
|
-
id: string;
|
|
36
|
-
reason: 'limit';
|
|
37
|
-
};
|
|
38
|
-
export declare function emptyDock(): DockState;
|
|
39
|
-
/** 夹到 [min, max];`max` 缺省表示不设上限。NaN / Infinity 一律落回 min。 */
|
|
40
|
-
export declare function clampWidth(value: number, min: number, max?: number): number;
|
|
41
|
-
export declare function isOpen(state: DockState, id: string): boolean;
|
|
42
|
-
export declare function isCollapsed(state: DockState, id: string): boolean;
|
|
43
|
-
/**
|
|
44
|
-
* 打开一栏。已开 ⇒ 原样返回(`created: false`,位置不变);
|
|
45
|
-
* 未开且已满 ⇒ 返回失败结果,状态不动。打开即撤销同名耳朵。
|
|
46
|
-
*/
|
|
47
|
-
export declare function openPanel(state: DockState, id: string, maxPanels: number): {
|
|
48
|
-
state: DockState;
|
|
49
|
-
result: OpenResult;
|
|
50
|
-
};
|
|
51
|
-
/**
|
|
52
|
-
* 关一栏;不存在即原样返回(幂等)。宽度记忆随栏一起丢弃。
|
|
53
|
-
* 对已收起的耳朵也生效 —— 「关闭」= 彻底不留,耳朵一起抹掉(用户 2026-10-28 口径)。
|
|
54
|
-
*/
|
|
55
|
-
export declare function closePanel(state: DockState, id: string): DockState;
|
|
56
|
-
/** 记某栏宽度(已夹过);值没变时原样返回,避免无谓重渲染。 */
|
|
57
|
-
export declare function setPanelWidth(state: DockState, id: string, width: number): DockState;
|
|
58
|
-
/**
|
|
59
|
-
* 收起一栏:退出布局(从 `ids` 移除,**立即不占宽**),转入耳朵列表。
|
|
60
|
-
* 宽度**不删**——耳朵展开时要回到原宽。只对开着的栏生效。
|
|
61
|
-
*/
|
|
62
|
-
export declare function collapsePanel(state: DockState, id: string): DockState;
|
|
63
|
-
/** 展开耳朵:移出耳朵列表、回到打开列表末尾;宽度照旧(`collapsePanel` 没删)。 */
|
|
64
|
-
export declare function expandPanel(state: DockState, id: string): DockState;
|
|
65
|
-
/** 其他栏宽度之和(算「这一栏最多能拖多宽」用)。 */
|
|
66
|
-
export declare function othersWidth(state: DockState, id: string, fallbackOf: (panelId: string) => number): number;
|
|
67
|
-
//# sourceMappingURL=panel-dock-logic.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"panel-dock-logic.d.ts","sourceRoot":"","sources":["../../src/ui/panel-dock-logic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,mCAAmC;AACnC,eAAO,MAAM,gBAAgB,YAAY,CAAA;AAEzC,MAAM,WAAW,SAAS;IACxB,4BAA4B;IAC5B,GAAG,EAAE,MAAM,EAAE,CAAA;IACb,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,mDAAmD;IACnD,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB;AAED,MAAM,MAAM,UAAU,GAClB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAC1C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAA;AAE9C,wBAAgB,SAAS,IAAI,SAAS,CAErC;AAED,4DAA4D;AAC5D,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAI3E;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,SAAS,EAChB,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,MAAM,GAChB;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAW1C;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,CAWlE;AAED,mCAAmC;AACnC,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAIpF;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,CAOrE;AAED,qDAAqD;AACrD,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,CAOnE;AAED,8BAA8B;AAC9B,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,CAKzG"}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 停靠面板的状态逻辑(纯函数,零 React / 零 DOM)。
|
|
3
|
-
*
|
|
4
|
-
* 只记三件事:**哪些面板开着**、**每栏多宽**、**哪些收起成了耳朵**。
|
|
5
|
-
* 内容与头部不在这里——那是调用方在页面里声明的东西(`<DockPanel id="…">…</DockPanel>`),
|
|
6
|
-
* 与 Ant Design `Tabs` 的 `activeKey` + `<TabPane>` 同一分工:
|
|
7
|
-
* **显隐归状态,结构归 children**。
|
|
8
|
-
*
|
|
9
|
-
* 口径(用户 2026-10-20 定案):
|
|
10
|
-
* · 组名 = 窗口,一对一:`open('A')` 再 `open('A')` 只是重复打开,不新增一栏;
|
|
11
|
-
* · 未到上限 ⇒ 追加;到上限 ⇒ 返回 `{ ok: false, reason: 'limit' }`,不静默丢弃;
|
|
12
|
-
* · 关一栏即腾位,之后可以开新组名;
|
|
13
|
-
* · 没有多份同名、没有自动淘汰、没有 tab 切换。
|
|
14
|
-
*
|
|
15
|
-
* 收起(用户 2026-10-28 定案)= **面板退出布局、换成一只独立的固定耳朵**,不是把栏宽缩细:
|
|
16
|
-
* · `collapsePanel` 把组名从 `ids` 移到 `collapsed`,**宽度留着**(展开要回到原宽);
|
|
17
|
-
* · 耳朵是另一块 fixed 浮层,不在这里表达布局——这里只记「谁收起了」。
|
|
18
|
-
*/
|
|
19
|
-
/** 默认窗口的保留名:`open()` 不传 id 时用它。 */
|
|
20
|
-
export const DEFAULT_PANEL_ID = 'default';
|
|
21
|
-
export function emptyDock() {
|
|
22
|
-
return { ids: [], widths: {}, collapsed: [] };
|
|
23
|
-
}
|
|
24
|
-
/** 夹到 [min, max];`max` 缺省表示不设上限。NaN / Infinity 一律落回 min。 */
|
|
25
|
-
export function clampWidth(value, min, max) {
|
|
26
|
-
const wide = Number.isFinite(value) ? value : min;
|
|
27
|
-
const capped = max === undefined || !Number.isFinite(max) ? wide : Math.min(wide, max);
|
|
28
|
-
return Math.max(min, Math.round(capped));
|
|
29
|
-
}
|
|
30
|
-
export function isOpen(state, id) {
|
|
31
|
-
return state.ids.includes(id);
|
|
32
|
-
}
|
|
33
|
-
export function isCollapsed(state, id) {
|
|
34
|
-
return state.collapsed.includes(id);
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* 打开一栏。已开 ⇒ 原样返回(`created: false`,位置不变);
|
|
38
|
-
* 未开且已满 ⇒ 返回失败结果,状态不动。打开即撤销同名耳朵。
|
|
39
|
-
*/
|
|
40
|
-
export function openPanel(state, id, maxPanels) {
|
|
41
|
-
if (isOpen(state, id))
|
|
42
|
-
return { state, result: { ok: true, id, created: false } };
|
|
43
|
-
if (state.ids.length >= maxPanels)
|
|
44
|
-
return { state, result: { ok: false, id, reason: 'limit' } };
|
|
45
|
-
return {
|
|
46
|
-
state: {
|
|
47
|
-
ids: [...state.ids, id],
|
|
48
|
-
widths: state.widths,
|
|
49
|
-
collapsed: state.collapsed.filter((item) => item !== id),
|
|
50
|
-
},
|
|
51
|
-
result: { ok: true, id, created: true },
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* 关一栏;不存在即原样返回(幂等)。宽度记忆随栏一起丢弃。
|
|
56
|
-
* 对已收起的耳朵也生效 —— 「关闭」= 彻底不留,耳朵一起抹掉(用户 2026-10-28 口径)。
|
|
57
|
-
*/
|
|
58
|
-
export function closePanel(state, id) {
|
|
59
|
-
const open = isOpen(state, id);
|
|
60
|
-
const ear = isCollapsed(state, id);
|
|
61
|
-
if (!open && !ear)
|
|
62
|
-
return state;
|
|
63
|
-
const widths = { ...state.widths };
|
|
64
|
-
delete widths[id];
|
|
65
|
-
return {
|
|
66
|
-
ids: open ? state.ids.filter((item) => item !== id) : state.ids,
|
|
67
|
-
widths,
|
|
68
|
-
collapsed: ear ? state.collapsed.filter((item) => item !== id) : state.collapsed,
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
/** 记某栏宽度(已夹过);值没变时原样返回,避免无谓重渲染。 */
|
|
72
|
-
export function setPanelWidth(state, id, width) {
|
|
73
|
-
if (!isOpen(state, id))
|
|
74
|
-
return state;
|
|
75
|
-
if (state.widths[id] === width)
|
|
76
|
-
return state;
|
|
77
|
-
return { ids: state.ids, widths: { ...state.widths, [id]: width }, collapsed: state.collapsed };
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* 收起一栏:退出布局(从 `ids` 移除,**立即不占宽**),转入耳朵列表。
|
|
81
|
-
* 宽度**不删**——耳朵展开时要回到原宽。只对开着的栏生效。
|
|
82
|
-
*/
|
|
83
|
-
export function collapsePanel(state, id) {
|
|
84
|
-
if (!isOpen(state, id))
|
|
85
|
-
return state;
|
|
86
|
-
return {
|
|
87
|
-
ids: state.ids.filter((item) => item !== id),
|
|
88
|
-
widths: state.widths,
|
|
89
|
-
collapsed: state.collapsed.includes(id) ? state.collapsed : [...state.collapsed, id],
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
/** 展开耳朵:移出耳朵列表、回到打开列表末尾;宽度照旧(`collapsePanel` 没删)。 */
|
|
93
|
-
export function expandPanel(state, id) {
|
|
94
|
-
if (!isCollapsed(state, id))
|
|
95
|
-
return state;
|
|
96
|
-
return {
|
|
97
|
-
ids: state.ids.includes(id) ? state.ids : [...state.ids, id],
|
|
98
|
-
widths: state.widths,
|
|
99
|
-
collapsed: state.collapsed.filter((item) => item !== id),
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
/** 其他栏宽度之和(算「这一栏最多能拖多宽」用)。 */
|
|
103
|
-
export function othersWidth(state, id, fallbackOf) {
|
|
104
|
-
return state.ids.reduce((sum, item) => {
|
|
105
|
-
if (item === id)
|
|
106
|
-
return sum;
|
|
107
|
-
return sum + (state.widths[item] ?? fallbackOf(item));
|
|
108
|
-
}, 0);
|
|
109
|
-
}
|
|
110
|
-
//# sourceMappingURL=panel-dock-logic.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"panel-dock-logic.js","sourceRoot":"","sources":["../../src/ui/panel-dock-logic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,mCAAmC;AACnC,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAA;AAezC,MAAM,UAAU,SAAS;IACvB,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;AAC/C,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,GAAW,EAAE,GAAY;IACjE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAA;IACjD,MAAM,MAAM,GAAG,GAAG,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACtF,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,KAAgB,EAAE,EAAU;IACjD,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAgB,EAAE,EAAU;IACtD,OAAO,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CACvB,KAAgB,EAChB,EAAU,EACV,SAAiB;IAEjB,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAA;IACjF,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAA;IAC/F,OAAO;QACL,KAAK,EAAE;YACL,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC;YACvB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;SACzD;QACD,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;KACxC,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAgB,EAAE,EAAU;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC9B,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAClC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAA;IAC/B,MAAM,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAA;IAClC,OAAO,MAAM,CAAC,EAAE,CAAC,CAAA;IACjB,OAAO;QACL,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG;QAC/D,MAAM;QACN,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS;KACjF,CAAA;AACH,CAAC;AAED,mCAAmC;AACnC,MAAM,UAAU,aAAa,CAAC,KAAgB,EAAE,EAAU,EAAE,KAAa;IACvE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QAAE,OAAO,KAAK,CAAA;IACpC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK;QAAE,OAAO,KAAK,CAAA;IAC5C,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;AACjG,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAgB,EAAE,EAAU;IACxD,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;QAAE,OAAO,KAAK,CAAA;IACpC,OAAO;QACL,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;QAC5C,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;KACrF,CAAA;AACH,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,WAAW,CAAC,KAAgB,EAAE,EAAU;IACtD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,CAAC;QAAE,OAAO,KAAK,CAAA;IACzC,OAAO;QACL,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC;QAC5D,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;KACzD,CAAA;AACH,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,WAAW,CAAC,KAAgB,EAAE,EAAU,EAAE,UAAuC;IAC/F,OAAO,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACpC,IAAI,IAAI,KAAK,EAAE;YAAE,OAAO,GAAG,CAAA;QAC3B,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAA;IACvD,CAAC,EAAE,CAAC,CAAC,CAAA;AACP,CAAC"}
|
package/dist/ui/panel.d.ts
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 浮层面板公共件(2026-11-03):`PanelSurface` = 皮肤载体,`PanelClose` = 唯一那枚关闭钮。
|
|
3
|
-
*
|
|
4
|
-
* 分工(用户 2026-11-03 定,目的就是「样式统一但各家用各家自己的逻辑」):
|
|
5
|
-
* - **定位**留在各自控件:Modal 居中、选文件弹窗贴锚点并翻转、菜单挂在触发器下方;
|
|
6
|
-
* - **表面**全部来自 `panel.css` 的三档(modal / popover / menu),组件里不许再写
|
|
7
|
-
* 底色 / 描边 / 圆角 / 阴影。
|
|
8
|
-
*
|
|
9
|
-
* 为什么不做成「一个万能 Panel 组件」:那会把定位也吞进来,等于要求所有浮层同一套交互。
|
|
10
|
-
* 这里只统一皮肤,不统一行为。
|
|
11
|
-
*/
|
|
12
|
-
import { type CSSProperties, type ReactNode } from 'react';
|
|
13
|
-
/** 面板档位:居中模态 / 贴锚点面板 / 下拉菜单。 */
|
|
14
|
-
export type PanelTier = 'modal' | 'popover' | 'menu';
|
|
15
|
-
export interface PanelSurfaceProps {
|
|
16
|
-
tier: PanelTier;
|
|
17
|
-
/** 容器角色(`dialog` / `menu` 这类;不传则不写 role)。 */
|
|
18
|
-
role?: string;
|
|
19
|
-
/** 追加类名:**只允许补布局 / 定位**,皮肤归档位管。 */
|
|
20
|
-
className?: string;
|
|
21
|
-
/** 内联样式:同样只放定位与尺寸。 */
|
|
22
|
-
style?: CSSProperties;
|
|
23
|
-
/** 原样铺到节点上的属性(`aria-*` / `data-*` 这类钩子)。 */
|
|
24
|
-
attrs?: Record<string, string | number | undefined>;
|
|
25
|
-
/** 面板上的点击不再冒到遮罩(否则点正文等于点了外部,会把自己关掉)。 */
|
|
26
|
-
stopPropagation?: boolean;
|
|
27
|
-
children?: ReactNode;
|
|
28
|
-
}
|
|
29
|
-
/** 皮肤载体:`dshpc-panel` + 档位类,别的地方不要手拼这两个类。 */
|
|
30
|
-
export declare function PanelSurface(props: PanelSurfaceProps): ReactNode;
|
|
31
|
-
export interface PanelCloseProps {
|
|
32
|
-
/** 无障碍名(走调用方的内置字典)。 */
|
|
33
|
-
label: string;
|
|
34
|
-
onClick: () => void;
|
|
35
|
-
/** 自定义图标(默认 ✕)。 */
|
|
36
|
-
icon?: ReactNode;
|
|
37
|
-
className?: string;
|
|
38
|
-
}
|
|
39
|
-
/** 浮层唯一那枚关闭钮(20×20 方角);位置由各自的头部决定,这个件不管定位。 */
|
|
40
|
-
export declare function PanelClose(props: PanelCloseProps): ReactNode;
|
|
41
|
-
//# sourceMappingURL=panel.d.ts.map
|
package/dist/ui/panel.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"panel.d.ts","sourceRoot":"","sources":["../../src/ui/panel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAsB,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAI9E,gCAAgC;AAChC,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;AAEpD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,SAAS,CAAA;IACf,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sBAAsB;IACtB,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAA;IACnD,wCAAwC;IACxC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,6CAA6C;AAC7C,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS,CAchE;AAED,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,mBAAmB;IACnB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,8CAA8C;AAC9C,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,CAY5D"}
|
package/dist/ui/panel.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 浮层面板公共件(2026-11-03):`PanelSurface` = 皮肤载体,`PanelClose` = 唯一那枚关闭钮。
|
|
3
|
-
*
|
|
4
|
-
* 分工(用户 2026-11-03 定,目的就是「样式统一但各家用各家自己的逻辑」):
|
|
5
|
-
* - **定位**留在各自控件:Modal 居中、选文件弹窗贴锚点并翻转、菜单挂在触发器下方;
|
|
6
|
-
* - **表面**全部来自 `panel.css` 的三档(modal / popover / menu),组件里不许再写
|
|
7
|
-
* 底色 / 描边 / 圆角 / 阴影。
|
|
8
|
-
*
|
|
9
|
-
* 为什么不做成「一个万能 Panel 组件」:那会把定位也吞进来,等于要求所有浮层同一套交互。
|
|
10
|
-
* 这里只统一皮肤,不统一行为。
|
|
11
|
-
*/
|
|
12
|
-
import { createElement as h } from 'react';
|
|
13
|
-
import { ensureComponentStyles } from './css.js';
|
|
14
|
-
import { PANEL_CSS } from './panel-css.js';
|
|
15
|
-
/** 皮肤载体:`dshpc-panel` + 档位类,别的地方不要手拼这两个类。 */
|
|
16
|
-
export function PanelSurface(props) {
|
|
17
|
-
ensureComponentStyles('panel', PANEL_CSS);
|
|
18
|
-
const className = `dshpc-panel dshpc-panel--${props.tier}${props.className === undefined || props.className === '' ? '' : ` ${props.className}`}`;
|
|
19
|
-
return h('div', {
|
|
20
|
-
...props.attrs,
|
|
21
|
-
className,
|
|
22
|
-
style: props.style,
|
|
23
|
-
role: props.role,
|
|
24
|
-
onClick: props.stopPropagation === true ? (event) => event.stopPropagation() : undefined,
|
|
25
|
-
}, props.children ?? null);
|
|
26
|
-
}
|
|
27
|
-
/** 浮层唯一那枚关闭钮(20×20 方角);位置由各自的头部决定,这个件不管定位。 */
|
|
28
|
-
export function PanelClose(props) {
|
|
29
|
-
ensureComponentStyles('panel', PANEL_CSS);
|
|
30
|
-
return h('button', {
|
|
31
|
-
type: 'button',
|
|
32
|
-
className: `dshpc-panel__close${props.className === undefined ? '' : ` ${props.className}`}`,
|
|
33
|
-
'aria-label': props.label,
|
|
34
|
-
onClick: () => props.onClick(),
|
|
35
|
-
}, props.icon ?? '✕');
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=panel.js.map
|