dsh-plugin-core 0.33.1 → 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 +9 -9
- 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/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/Picker.js
DELETED
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
import { createElement as h, useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
2
|
-
import { useFloating, FloatingPortal, flip, shift, offset, autoUpdate, size as floatingSize } from '@floating-ui/react';
|
|
3
|
-
import { Chevron } from './chevron.js';
|
|
4
|
-
import { t } from '../utils/i18n.js';
|
|
5
|
-
import { FieldHint } from './FieldHint.js';
|
|
6
|
-
import { MarqueeText } from './MarqueeText.js';
|
|
7
|
-
import { filterGroups, flattenOptions, labelsOf, resolveTriggerSizing, toGroups, toggleValue, } from './picker-logic.js';
|
|
8
|
-
import { ensureComponentStyles } from './css.js';
|
|
9
|
-
import { useOverlayLocked } from './overlay.js';
|
|
10
|
-
import { PANEL_CSS } from './panel-css.js';
|
|
11
|
-
import { PICKER_CSS } from './picker-css.js';
|
|
12
|
-
import { FIELD_CSS } from './controls-css.js';
|
|
13
|
-
/**
|
|
14
|
-
* 通用选择器:单选 / 多选 / 上限 / 搜索 / 分组 / 空态 / 降级。
|
|
15
|
-
*
|
|
16
|
-
* **纯零件,不自己取数** —— 选项由调用方传入(工作区列表、模型列表这类数据要跨 host↔client
|
|
17
|
-
* 边界,通道是插件私有的,组件取不到,见需求文档 §6)。
|
|
18
|
-
*/
|
|
19
|
-
export function Picker(props) {
|
|
20
|
-
ensureComponentStyles('picker', PICKER_CSS);
|
|
21
|
-
// 下拉面板的表皮来自 panel.css 的 menu 档(2026-11-03 皮肤统一):这里只留定位与滚动。
|
|
22
|
-
ensureComponentStyles('panel', PANEL_CSS);
|
|
23
|
-
ensureComponentStyles('field', FIELD_CSS);
|
|
24
|
-
const tt = props.translate ?? t;
|
|
25
|
-
const mode = props.mode ?? 'single';
|
|
26
|
-
const size = props.size ?? 'md';
|
|
27
|
-
const placement = props.placement ?? 'down';
|
|
28
|
-
const clearable = props.clearable === true;
|
|
29
|
-
const showLabels = props.showLabels !== false;
|
|
30
|
-
const triggerStyle = resolveTriggerSizing(props);
|
|
31
|
-
const groups = useMemo(() => toGroups(props.groups, props.options), [props.groups, props.options]);
|
|
32
|
-
const controlled = props.value !== undefined;
|
|
33
|
-
const [inner, setInner] = useState(() => toArray(props.defaultValue));
|
|
34
|
-
const selected = controlled
|
|
35
|
-
? toArray(props.value)
|
|
36
|
-
: inner;
|
|
37
|
-
const emit = (next) => {
|
|
38
|
-
if (!controlled)
|
|
39
|
-
setInner(next);
|
|
40
|
-
props.onChange?.(mode === 'single' ? (next[0] ?? '') : next);
|
|
41
|
-
};
|
|
42
|
-
const [open, setOpen] = useState(false);
|
|
43
|
-
const [query, setQuery] = useState('');
|
|
44
|
-
const [active, setActive] = useState(-1);
|
|
45
|
-
const rootRef = useRef(null);
|
|
46
|
-
const searchRef = useRef(null);
|
|
47
|
-
// 浮层定位:portal 到 body + viewport 相对 + 滚动/缩放自动跟随 + 贴边自动翻转,
|
|
48
|
-
// 彻底避开祖先 overflow/transform 裁剪(核心缺陷修复)。宽度/最大高由 size 中间件内联设置。
|
|
49
|
-
const { refs, floatingStyles } = useFloating({
|
|
50
|
-
open,
|
|
51
|
-
onOpenChange: setOpen,
|
|
52
|
-
placement: placement === 'up' ? 'top-start' : 'bottom-start',
|
|
53
|
-
middleware: [
|
|
54
|
-
offset(4),
|
|
55
|
-
flip(),
|
|
56
|
-
shift({ padding: 8 }),
|
|
57
|
-
floatingSize({
|
|
58
|
-
apply({ elements, rects, availableWidth, availableHeight }) {
|
|
59
|
-
Object.assign(elements.floating.style, {
|
|
60
|
-
// 触发器可以限宽,菜单不能跟着限:至少与触发器同宽,随内容变宽,封顶 480 免得太夸张
|
|
61
|
-
minWidth: `${rects.reference.width}px`,
|
|
62
|
-
maxWidth: `${Math.min(480, availableWidth ?? 480)}px`,
|
|
63
|
-
maxHeight: `${Math.max(80, Math.min(280, (availableHeight ?? 320) - 8))}px`,
|
|
64
|
-
});
|
|
65
|
-
},
|
|
66
|
-
}),
|
|
67
|
-
],
|
|
68
|
-
whileElementsMounted: autoUpdate,
|
|
69
|
-
strategy: 'fixed',
|
|
70
|
-
});
|
|
71
|
-
// 展开即聚焦搜索框(2026-10-20 用户:点开就能直接打字,不用再点一下)。
|
|
72
|
-
// 用回调 ref 在搜索框「真正挂载」时聚焦:菜单经 FloatingPortal 延后挂载,
|
|
73
|
-
// 普通 useEffect(open) 会在输入框还没挂上时跑(searchRef 仍为 null),导致失效。
|
|
74
|
-
const setSearchRef = useCallback((el) => {
|
|
75
|
-
searchRef.current = el;
|
|
76
|
-
if (el !== null && open)
|
|
77
|
-
el.focus();
|
|
78
|
-
}, [open]);
|
|
79
|
-
// 点外面收起(同时认 root 与浮层两个 DOM 子树:菜单 portal 到 body 后不在 root 内)
|
|
80
|
-
useEffect(() => {
|
|
81
|
-
if (!open)
|
|
82
|
-
return;
|
|
83
|
-
const onDown = (e) => {
|
|
84
|
-
const root = rootRef.current;
|
|
85
|
-
const floatingEl = refs.floating.current;
|
|
86
|
-
if (root?.contains(e.target) === true)
|
|
87
|
-
return;
|
|
88
|
-
if (floatingEl?.contains(e.target) === true)
|
|
89
|
-
return;
|
|
90
|
-
setOpen(false);
|
|
91
|
-
};
|
|
92
|
-
document.addEventListener('mousedown', onDown);
|
|
93
|
-
return () => document.removeEventListener('mousedown', onDown);
|
|
94
|
-
}, [open]);
|
|
95
|
-
// 外层浮层锁死就收起:菜单是 portal 到 body 的,不在面板的 inert 子树里,锁不住。
|
|
96
|
-
const overlayLocked = useOverlayLocked();
|
|
97
|
-
const off = props.disabled === true || overlayLocked;
|
|
98
|
-
useEffect(() => {
|
|
99
|
-
if (overlayLocked)
|
|
100
|
-
setOpen(false);
|
|
101
|
-
}, [overlayLocked]);
|
|
102
|
-
// 收起时清掉搜索词与键盘游标,别让下次打开带着上次的过滤条件
|
|
103
|
-
useEffect(() => {
|
|
104
|
-
if (open)
|
|
105
|
-
return;
|
|
106
|
-
setQuery('');
|
|
107
|
-
setActive(-1);
|
|
108
|
-
}, [open]);
|
|
109
|
-
const shown = filterGroups(groups, query);
|
|
110
|
-
const flat = flattenOptions(shown);
|
|
111
|
-
const atMax = mode === 'multiple' && props.max !== undefined && selected.length >= props.max;
|
|
112
|
-
const summary = selected.length === 0
|
|
113
|
-
? (props.placeholder ?? tt('pickerPlaceholder'))
|
|
114
|
-
: mode === 'multiple' && !showLabels
|
|
115
|
-
? tt('pickerSelected', { n: selected.length })
|
|
116
|
-
: labelsOf(groups, selected).join('、') || (props.placeholder ?? tt('pickerPlaceholder'));
|
|
117
|
-
const pick = (value) => {
|
|
118
|
-
if (mode === 'single') {
|
|
119
|
-
emit([value]);
|
|
120
|
-
setOpen(false);
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
emit(toggleValue(selected, value, props.max));
|
|
124
|
-
if (props.closeOnSelect === true)
|
|
125
|
-
setOpen(false);
|
|
126
|
-
};
|
|
127
|
-
const clear = () => {
|
|
128
|
-
emit([]);
|
|
129
|
-
setOpen(false);
|
|
130
|
-
};
|
|
131
|
-
// 键盘可达:Esc 关、上下移、回车选(没有 aria 树那么全,但能用键盘走完一遍)
|
|
132
|
-
const onKeyDown = (e) => {
|
|
133
|
-
if (!open)
|
|
134
|
-
return;
|
|
135
|
-
if (e.key === 'Escape') {
|
|
136
|
-
setOpen(false);
|
|
137
|
-
return;
|
|
138
|
-
}
|
|
139
|
-
if (flat.length === 0)
|
|
140
|
-
return;
|
|
141
|
-
if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {
|
|
142
|
-
e.preventDefault();
|
|
143
|
-
const dir = e.key === 'ArrowDown' ? 1 : -1;
|
|
144
|
-
setActive((cur) => (cur + dir + flat.length) % flat.length);
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
if (e.key === 'Enter' && active >= 0) {
|
|
148
|
-
e.preventDefault();
|
|
149
|
-
const hit = flat[active];
|
|
150
|
-
if (hit !== undefined)
|
|
151
|
-
pick(hit.value);
|
|
152
|
-
}
|
|
153
|
-
};
|
|
154
|
-
// 触发器(右侧箭头 = 全站唯一的 Chevron,与官方 ⌄ 同形;ui 零官方依赖故自绘)。
|
|
155
|
-
const trigger = h('button', {
|
|
156
|
-
type: 'button',
|
|
157
|
-
'aria-label': props.ariaLabel,
|
|
158
|
-
'aria-expanded': open,
|
|
159
|
-
ref: refs.setReference,
|
|
160
|
-
className: `dshpc-picker__trigger dshpc-picker__trigger--${size}${props.align === 'center' ? ' dshpc-picker__trigger--center' : ''}`,
|
|
161
|
-
style: triggerStyle,
|
|
162
|
-
disabled: off,
|
|
163
|
-
onClick: () => {
|
|
164
|
-
if (!off)
|
|
165
|
-
setOpen(!open);
|
|
166
|
-
},
|
|
167
|
-
}, props.icon !== undefined && props.icon !== null
|
|
168
|
-
? h('span', { className: 'dshpc-picker__icon' }, props.icon)
|
|
169
|
-
: null,
|
|
170
|
-
// 文字吃掉剩余宽度并靠左(默认);超长时外层省略号、hover 跑马灯(MarqueeText 自带)。
|
|
171
|
-
h(MarqueeText, { text: summary, className: 'dshpc-picker__label' }), h(Chevron, { size: 12, className: 'dshpc-picker__caret' }));
|
|
172
|
-
// hint 给了就把触发器与 FieldHint 包进同一行(间距/对齐收进组件)。
|
|
173
|
-
const triggerRow = props.hint === undefined
|
|
174
|
-
? trigger
|
|
175
|
-
: h('span', { className: 'dshpc-fieldwrap dshpc-fieldwrap--inline' }, trigger, h(FieldHint, { text: props.hint }));
|
|
176
|
-
return h('div', {
|
|
177
|
-
className: `dshpc-picker${props.className === undefined ? '' : ` ${props.className}`}`,
|
|
178
|
-
ref: rootRef,
|
|
179
|
-
onKeyDown,
|
|
180
|
-
}, triggerRow, open
|
|
181
|
-
? h(FloatingPortal, null, h('div', {
|
|
182
|
-
className: 'dshpc-panel dshpc-panel--menu dshpc-picker__menu',
|
|
183
|
-
ref: refs.setFloating,
|
|
184
|
-
style: floatingStyles,
|
|
185
|
-
}, props.degraded === true
|
|
186
|
-
? h('div', { className: 'dshpc-picker__degraded' }, tt('pickerDegraded'))
|
|
187
|
-
: null, atMax ? h('div', { className: 'dshpc-picker__degraded' }, tt('pickerMaxReached', { n: props.max ?? 0 })) : null, props.searchable === true
|
|
188
|
-
? h('input', {
|
|
189
|
-
ref: setSearchRef,
|
|
190
|
-
className: 'dshpc-picker__search',
|
|
191
|
-
placeholder: tt('pickerSearch'),
|
|
192
|
-
value: query,
|
|
193
|
-
onChange: (e) => setQuery(e.target.value),
|
|
194
|
-
})
|
|
195
|
-
: null, flat.length === 0 && groups.length === 0
|
|
196
|
-
? h('div', { className: 'dshpc-picker__empty' }, tt('pickerEmpty'))
|
|
197
|
-
: flat.length === 0
|
|
198
|
-
? h('div', { className: 'dshpc-picker__empty' }, tt('pickerNoMatch'))
|
|
199
|
-
: [
|
|
200
|
-
clearable && mode === 'single' && selected.length > 0
|
|
201
|
-
? h('div', {
|
|
202
|
-
key: '__clear__',
|
|
203
|
-
className: 'dshpc-picker__option dshpc-picker__option--clear',
|
|
204
|
-
onClick: clear,
|
|
205
|
-
}, tt('pickerClear'))
|
|
206
|
-
: null,
|
|
207
|
-
...shown.map((g) => h('div', { key: g.value || '_' }, g.label === ''
|
|
208
|
-
? null
|
|
209
|
-
: h('div', { className: 'dshpc-picker__group-label' }, g.label), g.options.map((o) => {
|
|
210
|
-
// 到上限后:未选项置灰,**已选项保持可点**(点了是取消,不是再加)。
|
|
211
|
-
const blocked = o.disabled === true || (atMax && !selected.includes(o.value));
|
|
212
|
-
const activeCls = [
|
|
213
|
-
'dshpc-picker__option',
|
|
214
|
-
selected.includes(o.value) ? 'dshpc-picker__option--active' : '',
|
|
215
|
-
blocked ? 'dshpc-picker__option--disabled' : '',
|
|
216
|
-
]
|
|
217
|
-
.filter((s) => s !== '')
|
|
218
|
-
.join(' ');
|
|
219
|
-
const idx = flat.indexOf(o);
|
|
220
|
-
return h('div', {
|
|
221
|
-
key: o.value,
|
|
222
|
-
className: activeCls,
|
|
223
|
-
'data-active': idx === active ? 'true' : undefined,
|
|
224
|
-
onClick: () => {
|
|
225
|
-
if (!blocked)
|
|
226
|
-
pick(o.value);
|
|
227
|
-
},
|
|
228
|
-
}, mode === 'multiple'
|
|
229
|
-
? h('span', { className: 'dshpc-picker__tick' }, selected.includes(o.value) ? '✓' : '')
|
|
230
|
-
: null, o.icon !== undefined && o.icon !== null
|
|
231
|
-
? h('span', { className: 'dshpc-picker__option-icon' }, o.icon)
|
|
232
|
-
: null,
|
|
233
|
-
// 选项文字超长时省略号 + hover 跑马灯(与触发器同一套逻辑),不把菜单撑出横向滚动条。
|
|
234
|
-
h(MarqueeText, { text: o.label, className: 'dshpc-picker__option-label' }));
|
|
235
|
-
}))),
|
|
236
|
-
]))
|
|
237
|
-
: null);
|
|
238
|
-
}
|
|
239
|
-
function toArray(v) {
|
|
240
|
-
if (v === undefined)
|
|
241
|
-
return [];
|
|
242
|
-
return Array.isArray(v) ? [...v] : [v];
|
|
243
|
-
}
|
|
244
|
-
//# sourceMappingURL=Picker.js.map
|
package/dist/ui/Picker.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Picker.js","sourceRoot":"","sources":["../../src/ui/Picker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 快捷工具栏(UI 基础层):**右侧悬浮的一列圆钮**,内置「回到顶部」,并可挂自定义按钮。
|
|
3
|
-
*
|
|
4
|
-
* 用法:
|
|
5
|
-
* <QuickToolbar
|
|
6
|
-
* anchorId="dshpc-main"
|
|
7
|
-
* onAction={(id) => …}
|
|
8
|
-
* items={[{ id: 'search', icon: <SearchIcon />, label: '搜索' }]}
|
|
9
|
-
* />
|
|
10
|
-
*
|
|
11
|
-
* 行为(2026-10-31 用户拍板):
|
|
12
|
-
* - **纵向恒定**贴屏幕底边,距离 `offset`(默认 16px);按钮从下往上排。
|
|
13
|
-
* - **横向默认**贴屏幕右缘、留 `offset`;给了 `anchorId` / `anchor()` 就贴到那个控件的
|
|
14
|
-
* **右缘外侧**,同样留 `offset`。右侧放不下(再留一个 `offset` 后越界)就退回贴屏幕右缘。
|
|
15
|
-
* 控件找不到按「跟随窗口」处理,不报错。
|
|
16
|
-
* - 内置「回到顶部」默认 `when: 'scroll'`、阈值 320:滚过才出现;可传 `backToTop: false` 关掉,
|
|
17
|
-
* 或用 `{ order, label, threshold }` 调整。
|
|
18
|
-
* - 自定义项:`icon` / `label` / `onClick`;`visible` / `when` / `order` / `threshold` / `color` /
|
|
19
|
-
* `fgColor` 都可配。点击后先调 `onClick`,再统一回调 `onAction(id, item)`。
|
|
20
|
-
* - 滚动容器默认取工具栏最近的「可纵向滚动」祖先,也可以显式给 `scrollContainer`。
|
|
21
|
-
* - 显隐切换带 0.2s 动画:挂载淡入,消失先淡出、播完才卸载(`reduced-motion` 下关闭)。
|
|
22
|
-
*
|
|
23
|
-
* 样式只注入自己那一份(`controls/quick-toolbar.css`),横向位置 / 尺寸 / 间距由本组件在
|
|
24
|
-
* style 上实时写入,不写死 CSS。
|
|
25
|
-
*/
|
|
26
|
-
import { createElement as h } from 'react';
|
|
27
|
-
import { type QuickToolbarBackToTop, type QuickToolbarItem } from './quick-toolbar-logic.js';
|
|
28
|
-
export interface QuickToolbarProps {
|
|
29
|
-
/** 自定义按钮;按数组顺序排在「回到顶部」下面。 */
|
|
30
|
-
items?: QuickToolbarItem[];
|
|
31
|
-
/** 内置回顶部:`false` 关掉;对象可调 `order` / `label` / `threshold`。 */
|
|
32
|
-
backToTop?: boolean | QuickToolbarBackToTop;
|
|
33
|
-
/** 自定义项点击后的统一回调(在单项 `onClick` 之后触发)。 */
|
|
34
|
-
onAction?: (id: string, item: QuickToolbarItem) => void;
|
|
35
|
-
/** 与屏幕 / 锚点右缘、屏幕底边的距离(px,默认 16)。 */
|
|
36
|
-
offset?: number;
|
|
37
|
-
/** 相邻按钮的纵向间距(px,默认 12)。 */
|
|
38
|
-
gap?: number;
|
|
39
|
-
/** 按钮直径(px,默认 44)。 */
|
|
40
|
-
size?: number;
|
|
41
|
-
/** 跟随这个 id 的控件:横向贴它的右缘外侧;不传 = 跟随窗口右缘。 */
|
|
42
|
-
anchorId?: string;
|
|
43
|
-
/** 动态锚点函数(优先于 `anchorId`):返回 null 时按跟随窗口处理。 */
|
|
44
|
-
anchor?: () => HTMLElement | null;
|
|
45
|
-
/** 滚动容器;不传则取工具栏最近的可纵向滚动祖先,再退回窗口。 */
|
|
46
|
-
scrollContainer?: HTMLElement | (() => HTMLElement | null);
|
|
47
|
-
/** 无障碍名,默认内置字典「快捷工具栏」。 */
|
|
48
|
-
ariaLabel?: string;
|
|
49
|
-
/** 追加 class(只允许补布局)。 */
|
|
50
|
-
className?: string;
|
|
51
|
-
}
|
|
52
|
-
/** 右侧浮动的快捷工具栏:内置回顶部 + 自定义按钮。 */
|
|
53
|
-
export declare function QuickToolbar(props: QuickToolbarProps): ReturnType<typeof h>;
|
|
54
|
-
//# sourceMappingURL=QuickToolbar.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QuickToolbar.d.ts","sourceRoot":"","sources":["../../src/ui/QuickToolbar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,aAAa,IAAI,CAAC,EAAmE,MAAM,OAAO,CAAA;AAI3G,OAAO,EAKL,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EAEtB,MAAM,0BAA0B,CAAA;AAYjC,MAAM,WAAW,iBAAiB;IAChC,6BAA6B;IAC7B,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC1B,6DAA6D;IAC7D,SAAS,CAAC,EAAE,OAAO,GAAG,qBAAqB,CAAA;IAC3C,wCAAwC;IACxC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAA;IACvD,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2BAA2B;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,sBAAsB;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,CAAA;IACjC,oCAAoC;IACpC,eAAe,CAAC,EAAE,WAAW,GAAG,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,CAAA;IAC1D,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AA+CD,gCAAgC;AAChC,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAoL3E"}
|
package/dist/ui/QuickToolbar.js
DELETED
|
@@ -1,254 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 快捷工具栏(UI 基础层):**右侧悬浮的一列圆钮**,内置「回到顶部」,并可挂自定义按钮。
|
|
3
|
-
*
|
|
4
|
-
* 用法:
|
|
5
|
-
* <QuickToolbar
|
|
6
|
-
* anchorId="dshpc-main"
|
|
7
|
-
* onAction={(id) => …}
|
|
8
|
-
* items={[{ id: 'search', icon: <SearchIcon />, label: '搜索' }]}
|
|
9
|
-
* />
|
|
10
|
-
*
|
|
11
|
-
* 行为(2026-10-31 用户拍板):
|
|
12
|
-
* - **纵向恒定**贴屏幕底边,距离 `offset`(默认 16px);按钮从下往上排。
|
|
13
|
-
* - **横向默认**贴屏幕右缘、留 `offset`;给了 `anchorId` / `anchor()` 就贴到那个控件的
|
|
14
|
-
* **右缘外侧**,同样留 `offset`。右侧放不下(再留一个 `offset` 后越界)就退回贴屏幕右缘。
|
|
15
|
-
* 控件找不到按「跟随窗口」处理,不报错。
|
|
16
|
-
* - 内置「回到顶部」默认 `when: 'scroll'`、阈值 320:滚过才出现;可传 `backToTop: false` 关掉,
|
|
17
|
-
* 或用 `{ order, label, threshold }` 调整。
|
|
18
|
-
* - 自定义项:`icon` / `label` / `onClick`;`visible` / `when` / `order` / `threshold` / `color` /
|
|
19
|
-
* `fgColor` 都可配。点击后先调 `onClick`,再统一回调 `onAction(id, item)`。
|
|
20
|
-
* - 滚动容器默认取工具栏最近的「可纵向滚动」祖先,也可以显式给 `scrollContainer`。
|
|
21
|
-
* - 显隐切换带 0.2s 动画:挂载淡入,消失先淡出、播完才卸载(`reduced-motion` 下关闭)。
|
|
22
|
-
*
|
|
23
|
-
* 样式只注入自己那一份(`controls/quick-toolbar.css`),横向位置 / 尺寸 / 间距由本组件在
|
|
24
|
-
* style 上实时写入,不写死 CSS。
|
|
25
|
-
*/
|
|
26
|
-
import { createElement as h, useEffect, useRef, useState } from 'react';
|
|
27
|
-
import { Chevron } from './chevron.js';
|
|
28
|
-
import { ensureComponentStyles } from './css.js';
|
|
29
|
-
import { QUICK_TOOLBAR_CSS } from './controls-css.js';
|
|
30
|
-
import { DEFAULT_SCROLL_THRESHOLD, isToolbarEntryVisible, resolveToolbarLeft, sortToolbarEntries, } from './quick-toolbar-logic.js';
|
|
31
|
-
import { t } from '../utils/i18n.js';
|
|
32
|
-
/** 默认贴边距离(px)。 */
|
|
33
|
-
const DEFAULT_OFFSET = 16;
|
|
34
|
-
/** 默认按钮直径(px)。 */
|
|
35
|
-
const DEFAULT_SIZE = 44;
|
|
36
|
-
/** 默认按钮间距(px)。 */
|
|
37
|
-
const DEFAULT_GAP = 12;
|
|
38
|
-
/** 退场动画的卸载延迟(ms,与 CSS 的 0.2s 对齐并留余量)。 */
|
|
39
|
-
const LEAVE_MS = 220;
|
|
40
|
-
/** 向上找最近的「可纵向滚动」祖先。 */
|
|
41
|
-
function findScrollParent(node) {
|
|
42
|
-
let el = node?.parentElement ?? null;
|
|
43
|
-
while (el !== null) {
|
|
44
|
-
const oy = getComputedStyle(el).overflowY;
|
|
45
|
-
if (oy === 'auto' || oy === 'scroll')
|
|
46
|
-
return el;
|
|
47
|
-
el = el.parentElement;
|
|
48
|
-
}
|
|
49
|
-
return null;
|
|
50
|
-
}
|
|
51
|
-
/** 显式 scrollContainer 优先,其次最近的可滚动祖先,最后退回窗口。 */
|
|
52
|
-
function resolveScrollTarget(explicit, node) {
|
|
53
|
-
let target = null;
|
|
54
|
-
if (typeof explicit === 'function')
|
|
55
|
-
target = explicit();
|
|
56
|
-
else if (explicit !== undefined)
|
|
57
|
-
target = explicit;
|
|
58
|
-
if (target === null)
|
|
59
|
-
target = findScrollParent(node);
|
|
60
|
-
return target ?? window;
|
|
61
|
-
}
|
|
62
|
-
/** 读当前滚动距离。 */
|
|
63
|
-
function scrollTopOf(target) {
|
|
64
|
-
if (typeof HTMLElement !== 'undefined' && target instanceof HTMLElement)
|
|
65
|
-
return target.scrollTop;
|
|
66
|
-
if (typeof window === 'undefined')
|
|
67
|
-
return 0;
|
|
68
|
-
return window.scrollY || document.documentElement.scrollTop || 0;
|
|
69
|
-
}
|
|
70
|
-
/** 平滑回到顶部(reduced-motion 下瞬时)。 */
|
|
71
|
-
function scrollToTop(target) {
|
|
72
|
-
const reduce = typeof window !== 'undefined'
|
|
73
|
-
&& typeof window.matchMedia === 'function'
|
|
74
|
-
&& window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
75
|
-
const behavior = reduce ? 'auto' : 'smooth';
|
|
76
|
-
if (typeof HTMLElement !== 'undefined' && target instanceof HTMLElement)
|
|
77
|
-
target.scrollTo({ top: 0, behavior });
|
|
78
|
-
else if (typeof window !== 'undefined')
|
|
79
|
-
window.scrollTo({ top: 0, behavior });
|
|
80
|
-
}
|
|
81
|
-
/** 右侧浮动的快捷工具栏:内置回顶部 + 自定义按钮。 */
|
|
82
|
-
export function QuickToolbar(props) {
|
|
83
|
-
ensureComponentStyles('quick-toolbar', QUICK_TOOLBAR_CSS);
|
|
84
|
-
const ref = useRef(null);
|
|
85
|
-
const [left, setLeft] = useState(null);
|
|
86
|
-
const [scrollTop, setScrollTop] = useState(0);
|
|
87
|
-
// 正在退场的按钮:先留在 DOM 里播 fade-out,计时到了才卸载。
|
|
88
|
-
const [leaving, setLeaving] = useState([]);
|
|
89
|
-
const shownRef = useRef([]);
|
|
90
|
-
const leaveTimers = useRef(new Map());
|
|
91
|
-
const offset = props.offset ?? DEFAULT_OFFSET;
|
|
92
|
-
const size = props.size ?? DEFAULT_SIZE;
|
|
93
|
-
const gap = props.gap ?? DEFAULT_GAP;
|
|
94
|
-
// 横向定位:锚点右缘外侧;放不下 / 没锚点 ⇒ 贴视口右缘。
|
|
95
|
-
useEffect(() => {
|
|
96
|
-
const node = ref.current;
|
|
97
|
-
if (node === null)
|
|
98
|
-
return;
|
|
99
|
-
const resolveAnchor = () => {
|
|
100
|
-
if (props.anchor !== undefined)
|
|
101
|
-
return props.anchor();
|
|
102
|
-
const id = props.anchorId;
|
|
103
|
-
return id === undefined ? null : document.getElementById(id);
|
|
104
|
-
};
|
|
105
|
-
let observed = null;
|
|
106
|
-
let lastRight = null;
|
|
107
|
-
let lastViewport = -1;
|
|
108
|
-
const ro = new ResizeObserver(update);
|
|
109
|
-
function update() {
|
|
110
|
-
const anchorEl = resolveAnchor();
|
|
111
|
-
if (anchorEl !== observed) {
|
|
112
|
-
if (observed !== null)
|
|
113
|
-
ro.unobserve(observed);
|
|
114
|
-
if (anchorEl !== null)
|
|
115
|
-
ro.observe(anchorEl);
|
|
116
|
-
observed = anchorEl;
|
|
117
|
-
}
|
|
118
|
-
const viewportWidth = document.documentElement.clientWidth;
|
|
119
|
-
const rect = anchorEl === null ? null : anchorEl.getBoundingClientRect();
|
|
120
|
-
// 锚点被隐藏 / 收起(宽高均为 0)时不跟随,按「找不到控件」退回贴视口右缘。
|
|
121
|
-
const anchorRight = rect === null || (rect.width === 0 && rect.height === 0) ? null : rect.right;
|
|
122
|
-
// 值没变就不写 state。位置另做轮询兜底:侧栏开合可能只改 clientWidth(滚动条增减)
|
|
123
|
-
// 或推动锚点位置(尺寸不变),这两种都不会触发 resize / ResizeObserver。
|
|
124
|
-
if (viewportWidth === lastViewport && anchorRight === lastRight)
|
|
125
|
-
return;
|
|
126
|
-
lastViewport = viewportWidth;
|
|
127
|
-
lastRight = anchorRight;
|
|
128
|
-
setLeft(resolveToolbarLeft({ viewportWidth, offset, size }, anchorRight));
|
|
129
|
-
}
|
|
130
|
-
update();
|
|
131
|
-
const poll = setInterval(update, 100);
|
|
132
|
-
window.addEventListener('resize', update);
|
|
133
|
-
return () => {
|
|
134
|
-
clearInterval(poll);
|
|
135
|
-
window.removeEventListener('resize', update);
|
|
136
|
-
ro.disconnect();
|
|
137
|
-
};
|
|
138
|
-
}, [props.anchor, props.anchorId, offset, size]);
|
|
139
|
-
// 滚动距离:驱动 `when: 'scroll'` 的显隐。
|
|
140
|
-
useEffect(() => {
|
|
141
|
-
const node = ref.current;
|
|
142
|
-
if (node === null)
|
|
143
|
-
return;
|
|
144
|
-
const target = resolveScrollTarget(props.scrollContainer, node);
|
|
145
|
-
const onScroll = () => setScrollTop(scrollTopOf(target));
|
|
146
|
-
onScroll();
|
|
147
|
-
target.addEventListener('scroll', onScroll, { passive: true });
|
|
148
|
-
return () => target.removeEventListener('scroll', onScroll);
|
|
149
|
-
}, [props.scrollContainer]);
|
|
150
|
-
// 内置回顶部与自定义项摊平成同一张排序表。
|
|
151
|
-
const backTop = props.backToTop === false
|
|
152
|
-
? null
|
|
153
|
-
: (typeof props.backToTop === 'object' ? props.backToTop : {});
|
|
154
|
-
const entries = [];
|
|
155
|
-
if (backTop !== null) {
|
|
156
|
-
entries.push({ id: '__backtop', kind: 'backtop', order: backTop.order ?? 0, index: 0 });
|
|
157
|
-
}
|
|
158
|
-
for (const [index, item] of (props.items ?? []).entries()) {
|
|
159
|
-
entries.push({ id: item.id, kind: 'custom', order: item.order ?? index + 1, index, item });
|
|
160
|
-
}
|
|
161
|
-
const threshold = backTop?.threshold ?? DEFAULT_SCROLL_THRESHOLD;
|
|
162
|
-
const sorted = sortToolbarEntries(entries);
|
|
163
|
-
const visible = sorted.filter((entry) => {
|
|
164
|
-
if (entry.kind === 'backtop')
|
|
165
|
-
return isToolbarEntryVisible({ when: 'scroll', threshold }, scrollTop);
|
|
166
|
-
return isToolbarEntryVisible(entry.item ?? {}, scrollTop);
|
|
167
|
-
});
|
|
168
|
-
const visibleKey = JSON.stringify(visible.map((entry) => entry.id));
|
|
169
|
-
// 显隐切换:新出现的项挂载即淡入;消失的项先转为退场态、延迟卸载。
|
|
170
|
-
useEffect(() => {
|
|
171
|
-
const next = JSON.parse(visibleKey);
|
|
172
|
-
const revived = next.filter((id) => leaveTimers.current.has(id));
|
|
173
|
-
for (const id of revived) {
|
|
174
|
-
const timer = leaveTimers.current.get(id);
|
|
175
|
-
if (timer !== undefined)
|
|
176
|
-
clearTimeout(timer);
|
|
177
|
-
leaveTimers.current.delete(id);
|
|
178
|
-
}
|
|
179
|
-
if (revived.length > 0)
|
|
180
|
-
setLeaving((prev) => prev.filter((id) => !revived.includes(id)));
|
|
181
|
-
const gone = shownRef.current.filter((id) => !next.includes(id));
|
|
182
|
-
if (gone.length > 0) {
|
|
183
|
-
setLeaving((prev) => [...prev, ...gone.filter((id) => !prev.includes(id))]);
|
|
184
|
-
for (const id of gone) {
|
|
185
|
-
const timer = leaveTimers.current.get(id);
|
|
186
|
-
if (timer !== undefined)
|
|
187
|
-
clearTimeout(timer);
|
|
188
|
-
leaveTimers.current.set(id, setTimeout(() => {
|
|
189
|
-
leaveTimers.current.delete(id);
|
|
190
|
-
setLeaving((prev) => prev.filter((value) => value !== id));
|
|
191
|
-
}, LEAVE_MS));
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
shownRef.current = next;
|
|
195
|
-
}, [visibleKey]);
|
|
196
|
-
useEffect(() => () => {
|
|
197
|
-
for (const timer of leaveTimers.current.values())
|
|
198
|
-
clearTimeout(timer);
|
|
199
|
-
leaveTimers.current.clear();
|
|
200
|
-
}, []);
|
|
201
|
-
const style = {
|
|
202
|
-
bottom: `${offset}px`,
|
|
203
|
-
gap: `${gap}px`,
|
|
204
|
-
...(left === null ? { right: `${offset}px` } : { left: `${left}px` }),
|
|
205
|
-
};
|
|
206
|
-
const shownSet = new Set(visible.map((entry) => entry.id));
|
|
207
|
-
const leavingSet = new Set(leaving);
|
|
208
|
-
const rendered = sorted.filter((entry) => shownSet.has(entry.id) || leavingSet.has(entry.id));
|
|
209
|
-
const renderItem = (entry, isLeaving) => {
|
|
210
|
-
const leaveClass = isLeaving ? ' is-leaving' : '';
|
|
211
|
-
if (entry.kind === 'backtop') {
|
|
212
|
-
const label = backTop?.label ?? t('backToTop');
|
|
213
|
-
return h('button', {
|
|
214
|
-
key: entry.id,
|
|
215
|
-
type: 'button',
|
|
216
|
-
className: `dshpc-quick-toolbar__item dshpc-quick-toolbar__backtop${leaveClass}`,
|
|
217
|
-
style: { width: size, height: size },
|
|
218
|
-
'aria-label': label,
|
|
219
|
-
title: label,
|
|
220
|
-
onClick: () => scrollToTop(resolveScrollTarget(props.scrollContainer, ref.current)),
|
|
221
|
-
}, h(Chevron, { dir: 'up', size: 18 }));
|
|
222
|
-
}
|
|
223
|
-
const item = entry.item;
|
|
224
|
-
if (item === undefined)
|
|
225
|
-
return null;
|
|
226
|
-
// 自定义配色只写 CSS 变量,不直接写 background / color —— 否则会压过 hover / active 的混色规则。
|
|
227
|
-
const buttonStyle = { width: size, height: size };
|
|
228
|
-
if (item.color !== undefined)
|
|
229
|
-
buttonStyle['--dshpc-quick-toolbar-bg'] = item.color;
|
|
230
|
-
if (item.fgColor !== undefined)
|
|
231
|
-
buttonStyle['--dshpc-quick-toolbar-fg'] = item.fgColor;
|
|
232
|
-
const onClick = () => {
|
|
233
|
-
item.onClick?.();
|
|
234
|
-
props.onAction?.(item.id, item);
|
|
235
|
-
};
|
|
236
|
-
return h('button', {
|
|
237
|
-
key: entry.id,
|
|
238
|
-
type: 'button',
|
|
239
|
-
className: `dshpc-quick-toolbar__item${leaveClass}`,
|
|
240
|
-
style: buttonStyle,
|
|
241
|
-
'aria-label': item.label,
|
|
242
|
-
title: item.label,
|
|
243
|
-
onClick,
|
|
244
|
-
}, item.icon);
|
|
245
|
-
};
|
|
246
|
-
return h('div', {
|
|
247
|
-
ref,
|
|
248
|
-
className: `dshpc-quick-toolbar${props.className === undefined ? '' : ` ${props.className}`}`,
|
|
249
|
-
style,
|
|
250
|
-
role: 'toolbar',
|
|
251
|
-
'aria-label': props.ariaLabel ?? t('quickToolbarAria'),
|
|
252
|
-
}, ...rendered.map((entry) => renderItem(entry, leavingSet.has(entry.id))));
|
|
253
|
-
}
|
|
254
|
-
//# sourceMappingURL=QuickToolbar.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"QuickToolbar.js","sourceRoot":"","sources":["../../src/ui/QuickToolbar.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/SectionHead.d.ts
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 模块标题行(UI 基础层):**标签(可选,画出来的短竖线)/ icon(可选)+ 标题 + 右侧控件**。
|
|
3
|
-
*
|
|
4
|
-
* 2026-10-08 设置页重构时定型:每块 = 标题行 + 一块内容,标题行左侧 icon、右侧留给该块的控件
|
|
5
|
-
* (日志块的自动刷新 / 刷新钮,表查询块的表切换)。此前三个块各写一个 `h3`,形态不统一。
|
|
6
|
-
* 2026-10-30 增加 `accent`:标题前画一条固定样式的短竖线(4px 圆头),颜色可换、可关;
|
|
7
|
-
* 通栏表格标题也复用这一份标题样式(不再在 Table 里另画)。
|
|
8
|
-
*
|
|
9
|
-
* 排版规则:字号 / 行高 / 字色走 `--dshpc-*` token;`right` 用 `flex:1` + `justifyContent:flex-end`
|
|
10
|
-
* 靠右(比 `marginLeft:auto` 稳:内容再宽也始终贴右,不会塌成靠左);标题 `flex:none` 不被压缩。
|
|
11
|
-
*/
|
|
12
|
-
import { createElement as h, type CSSProperties, type ReactNode } from 'react';
|
|
13
|
-
/**
|
|
14
|
-
* 标题前固定标签(画出来的短竖线)的颜色:内置语义色名映射到 `--dshpc-*` token、随主题自动成立;
|
|
15
|
-
* 也可直接给任意 CSS 色值(如 `#7c3aed`);`'default'` = 主题默认(浅色深灰 / 深色浅灰)。
|
|
16
|
-
*/
|
|
17
|
-
export type SectionHeadAccent = 'default' | 'business' | 'success' | 'warning' | 'danger' | 'purple' | 'pink' | 'cyan' | 'teal' | 'orange' | 'indigo' | 'rose' | 'slate' | (string & {});
|
|
18
|
-
export interface SectionHeadProps {
|
|
19
|
-
/** 左侧图标(可选;要固定标签请用 `accent`)。 */
|
|
20
|
-
icon?: ReactNode;
|
|
21
|
-
title: ReactNode;
|
|
22
|
-
/** 右侧控件区(靠右,内容可压缩)。 */
|
|
23
|
-
right?: ReactNode;
|
|
24
|
-
/**
|
|
25
|
-
* 标题前的固定标签:`'default'` / 内置语义色名 / 任意 CSS 色值;不传 = 不画,`false` 也 = 不画。
|
|
26
|
-
*/
|
|
27
|
-
accent?: SectionHeadAccent | false;
|
|
28
|
-
/** 去掉底边距(嵌进表格通栏等自带间距的容器时用)。 */
|
|
29
|
-
flush?: boolean;
|
|
30
|
-
/** 追加 class(只允许补布局,不许覆盖皮肤)。 */
|
|
31
|
-
className?: string;
|
|
32
|
-
style?: CSSProperties;
|
|
33
|
-
}
|
|
34
|
-
export declare function SectionHead(props: SectionHeadProps): ReturnType<typeof h>;
|
|
35
|
-
//# sourceMappingURL=SectionHead.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SectionHead.d.ts","sourceRoot":"","sources":["../../src/ui/SectionHead.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,aAAa,IAAI,CAAC,EAAE,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAI9E;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAC7C,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAC5E,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAEjB,MAAM,WAAW,gBAAgB;IAC/B,iCAAiC;IACjC,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,KAAK,EAAE,SAAS,CAAA;IAChB,uBAAuB;IACvB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB;;OAEG;IACH,MAAM,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAA;IAClC,+BAA+B;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,aAAa,CAAA;CACtB;AAaD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CA0BzE"}
|