dsh-plugin-core 0.31.0 → 0.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adv/explorer/FileBrowser.d.ts +58 -0
- package/dist/adv/explorer/FileBrowser.d.ts.map +1 -0
- package/dist/adv/explorer/FileBrowser.js +632 -0
- package/dist/adv/explorer/FileBrowser.js.map +1 -0
- package/dist/adv/explorer/crumb-nav.d.ts +45 -0
- package/dist/adv/explorer/crumb-nav.d.ts.map +1 -0
- package/dist/adv/explorer/crumb-nav.js +78 -0
- package/dist/adv/explorer/crumb-nav.js.map +1 -0
- package/dist/adv/explorer/crumbs-menu.d.ts +37 -0
- package/dist/adv/explorer/crumbs-menu.d.ts.map +1 -0
- package/dist/adv/explorer/crumbs-menu.js +102 -0
- package/dist/adv/explorer/crumbs-menu.js.map +1 -0
- package/dist/adv/explorer/explorer-css.d.ts +2 -0
- package/dist/adv/explorer/explorer-css.d.ts.map +1 -0
- package/dist/adv/explorer/explorer-css.generated.d.ts +2 -0
- package/dist/adv/explorer/explorer-css.generated.d.ts.map +1 -0
- package/dist/adv/explorer/explorer-css.generated.js +4 -0
- package/dist/adv/explorer/explorer-css.generated.js.map +1 -0
- package/dist/adv/explorer/explorer-css.js +3 -0
- package/dist/adv/explorer/explorer-css.js.map +1 -0
- package/dist/adv/explorer/fs-face.d.ts +36 -0
- package/dist/adv/explorer/fs-face.d.ts.map +1 -0
- package/dist/adv/explorer/fs-face.js +74 -0
- package/dist/adv/explorer/fs-face.js.map +1 -0
- package/dist/adv/explorer/index.d.ts +6 -0
- package/dist/adv/explorer/index.d.ts.map +1 -0
- package/dist/adv/explorer/index.js +6 -0
- package/dist/adv/explorer/index.js.map +1 -0
- package/dist/adv/explorer/landing.d.ts +26 -0
- package/dist/adv/explorer/landing.d.ts.map +1 -0
- package/dist/adv/explorer/landing.js +43 -0
- package/dist/adv/explorer/landing.js.map +1 -0
- package/dist/adv/explorer/open.d.ts +137 -0
- package/dist/adv/explorer/open.d.ts.map +1 -0
- package/dist/adv/explorer/open.js +350 -0
- package/dist/adv/explorer/open.js.map +1 -0
- package/dist/adv/explorer/picker-placement.d.ts +69 -0
- package/dist/adv/explorer/picker-placement.d.ts.map +1 -0
- package/dist/adv/explorer/picker-placement.js +122 -0
- package/dist/adv/explorer/picker-placement.js.map +1 -0
- package/dist/adv/explorer/preview/BytesPreview.d.ts +12 -0
- package/dist/adv/explorer/preview/BytesPreview.d.ts.map +1 -0
- package/dist/adv/explorer/preview/BytesPreview.js +60 -0
- package/dist/adv/explorer/preview/BytesPreview.js.map +1 -0
- package/dist/adv/explorer/preview/HtmlPreview.d.ts +17 -0
- package/dist/adv/explorer/preview/HtmlPreview.d.ts.map +1 -0
- package/dist/adv/explorer/preview/HtmlPreview.js +113 -0
- package/dist/adv/explorer/preview/HtmlPreview.js.map +1 -0
- package/dist/adv/explorer/preview/OfficePreview.d.ts +12 -0
- package/dist/adv/explorer/preview/OfficePreview.d.ts.map +1 -0
- package/dist/adv/explorer/preview/OfficePreview.js +63 -0
- package/dist/adv/explorer/preview/OfficePreview.js.map +1 -0
- package/dist/adv/explorer/preview/TextPreview.d.ts +18 -0
- package/dist/adv/explorer/preview/TextPreview.d.ts.map +1 -0
- package/dist/adv/explorer/preview/TextPreview.js +122 -0
- package/dist/adv/explorer/preview/TextPreview.js.map +1 -0
- package/dist/adv/explorer/preview/index.d.ts +24 -0
- package/dist/adv/explorer/preview/index.d.ts.map +1 -0
- package/dist/adv/explorer/preview/index.js +58 -0
- package/dist/adv/explorer/preview/index.js.map +1 -0
- package/dist/adv/explorer/preview/md-labels.d.ts +3 -0
- package/dist/adv/explorer/preview/md-labels.d.ts.map +1 -0
- package/dist/adv/explorer/preview/md-labels.js +12 -0
- package/dist/adv/explorer/preview/md-labels.js.map +1 -0
- package/dist/adv/explorer/preview-title-bar.d.ts +26 -0
- package/dist/adv/explorer/preview-title-bar.d.ts.map +1 -0
- package/dist/adv/explorer/preview-title-bar.js +48 -0
- package/dist/adv/explorer/preview-title-bar.js.map +1 -0
- package/dist/adv/explorer/types.d.ts +259 -0
- package/dist/adv/explorer/types.d.ts.map +1 -0
- package/dist/adv/explorer/types.js +379 -0
- package/dist/adv/explorer/types.js.map +1 -0
- package/dist/adv/session/SessionViewModal.d.ts +37 -0
- package/dist/adv/session/SessionViewModal.d.ts.map +1 -0
- package/dist/adv/session/SessionViewModal.js +1133 -0
- package/dist/adv/session/SessionViewModal.js.map +1 -0
- package/dist/adv/session/changes.d.ts +73 -0
- package/dist/adv/session/changes.d.ts.map +1 -0
- package/dist/adv/session/changes.js +134 -0
- package/dist/adv/session/changes.js.map +1 -0
- package/dist/adv/session/faces.d.ts +244 -0
- package/dist/adv/session/faces.d.ts.map +1 -0
- package/dist/adv/session/faces.js +17 -0
- package/dist/adv/session/faces.js.map +1 -0
- package/dist/adv/session/index.d.ts +7 -0
- package/dist/adv/session/index.d.ts.map +1 -0
- package/dist/adv/session/index.js +27 -0
- package/dist/adv/session/index.js.map +1 -0
- package/dist/adv/session/mirror/AskCard.d.ts +35 -0
- package/dist/adv/session/mirror/AskCard.d.ts.map +1 -0
- package/dist/adv/session/mirror/AskCard.js +131 -0
- package/dist/adv/session/mirror/AskCard.js.map +1 -0
- package/dist/adv/session/mirror/BashRow.d.ts +14 -0
- package/dist/adv/session/mirror/BashRow.d.ts.map +1 -0
- package/dist/adv/session/mirror/BashRow.js +143 -0
- package/dist/adv/session/mirror/BashRow.js.map +1 -0
- package/dist/adv/session/mirror/ChangedFileDiff.d.ts +25 -0
- package/dist/adv/session/mirror/ChangedFileDiff.d.ts.map +1 -0
- package/dist/adv/session/mirror/ChangedFileDiff.js +178 -0
- package/dist/adv/session/mirror/ChangedFileDiff.js.map +1 -0
- package/dist/adv/session/mirror/ChangedFilesCard.d.ts +18 -0
- package/dist/adv/session/mirror/ChangedFilesCard.d.ts.map +1 -0
- package/dist/adv/session/mirror/ChangedFilesCard.js +165 -0
- package/dist/adv/session/mirror/ChangedFilesCard.js.map +1 -0
- package/dist/adv/session/mirror/ChatGroupSeat.d.ts +24 -0
- package/dist/adv/session/mirror/ChatGroupSeat.d.ts.map +1 -0
- package/dist/adv/session/mirror/ChatGroupSeat.js +135 -0
- package/dist/adv/session/mirror/ChatGroupSeat.js.map +1 -0
- package/dist/adv/session/mirror/ChatNodeSeat.d.ts +43 -0
- package/dist/adv/session/mirror/ChatNodeSeat.d.ts.map +1 -0
- package/dist/adv/session/mirror/ChatNodeSeat.js +133 -0
- package/dist/adv/session/mirror/ChatNodeSeat.js.map +1 -0
- package/dist/adv/session/mirror/ChatView.d.ts +47 -0
- package/dist/adv/session/mirror/ChatView.d.ts.map +1 -0
- package/dist/adv/session/mirror/ChatView.js +138 -0
- package/dist/adv/session/mirror/ChatView.js.map +1 -0
- package/dist/adv/session/mirror/CommandCard.d.ts +20 -0
- package/dist/adv/session/mirror/CommandCard.d.ts.map +1 -0
- package/dist/adv/session/mirror/CommandCard.js +69 -0
- package/dist/adv/session/mirror/CommandCard.js.map +1 -0
- package/dist/adv/session/mirror/ContextInjectionRow.d.ts +18 -0
- package/dist/adv/session/mirror/ContextInjectionRow.d.ts.map +1 -0
- package/dist/adv/session/mirror/ContextInjectionRow.js +50 -0
- package/dist/adv/session/mirror/ContextInjectionRow.js.map +1 -0
- package/dist/adv/session/mirror/Deliverables.d.ts +24 -0
- package/dist/adv/session/mirror/Deliverables.d.ts.map +1 -0
- package/dist/adv/session/mirror/Deliverables.js +175 -0
- package/dist/adv/session/mirror/Deliverables.js.map +1 -0
- package/dist/adv/session/mirror/GenericCommandCard.d.ts +136 -0
- package/dist/adv/session/mirror/GenericCommandCard.d.ts.map +1 -0
- package/dist/adv/session/mirror/GenericCommandCard.js +948 -0
- package/dist/adv/session/mirror/GenericCommandCard.js.map +1 -0
- package/dist/adv/session/mirror/MessageIconActions.d.ts +16 -0
- package/dist/adv/session/mirror/MessageIconActions.d.ts.map +1 -0
- package/dist/adv/session/mirror/MessageIconActions.js +69 -0
- package/dist/adv/session/mirror/MessageIconActions.js.map +1 -0
- package/dist/adv/session/mirror/MessageItem.d.ts +93 -0
- package/dist/adv/session/mirror/MessageItem.d.ts.map +1 -0
- package/dist/adv/session/mirror/MessageItem.js +194 -0
- package/dist/adv/session/mirror/MessageItem.js.map +1 -0
- package/dist/adv/session/mirror/ReasoningRow.d.ts +11 -0
- package/dist/adv/session/mirror/ReasoningRow.d.ts.map +1 -0
- package/dist/adv/session/mirror/ReasoningRow.js +111 -0
- package/dist/adv/session/mirror/ReasoningRow.js.map +1 -0
- package/dist/adv/session/mirror/RunningStatus.d.ts +12 -0
- package/dist/adv/session/mirror/RunningStatus.d.ts.map +1 -0
- package/dist/adv/session/mirror/RunningStatus.js +57 -0
- package/dist/adv/session/mirror/RunningStatus.js.map +1 -0
- package/dist/adv/session/mirror/StatDialog.d.ts +20 -0
- package/dist/adv/session/mirror/StatDialog.d.ts.map +1 -0
- package/dist/adv/session/mirror/StatDialog.js +49 -0
- package/dist/adv/session/mirror/StatDialog.js.map +1 -0
- package/dist/adv/session/mirror/ToolDetails.d.ts +65 -0
- package/dist/adv/session/mirror/ToolDetails.d.ts.map +1 -0
- package/dist/adv/session/mirror/ToolDetails.js +268 -0
- package/dist/adv/session/mirror/ToolDetails.js.map +1 -0
- package/dist/adv/session/mirror/TurnProcessNodeView.d.ts +10 -0
- package/dist/adv/session/mirror/TurnProcessNodeView.d.ts.map +1 -0
- package/dist/adv/session/mirror/TurnProcessNodeView.js +57 -0
- package/dist/adv/session/mirror/TurnProcessNodeView.js.map +1 -0
- package/dist/adv/session/mirror/TurnTailNodeView.d.ts +57 -0
- package/dist/adv/session/mirror/TurnTailNodeView.d.ts.map +1 -0
- package/dist/adv/session/mirror/TurnTailNodeView.js +106 -0
- package/dist/adv/session/mirror/TurnTailNodeView.js.map +1 -0
- package/dist/adv/session/mirror/TurnTriggerNodeView.d.ts +16 -0
- package/dist/adv/session/mirror/TurnTriggerNodeView.d.ts.map +1 -0
- package/dist/adv/session/mirror/TurnTriggerNodeView.js +103 -0
- package/dist/adv/session/mirror/TurnTriggerNodeView.js.map +1 -0
- package/dist/adv/session/mirror/TurnUsagePanel.d.ts +21 -0
- package/dist/adv/session/mirror/TurnUsagePanel.d.ts.map +1 -0
- package/dist/adv/session/mirror/TurnUsagePanel.js +41 -0
- package/dist/adv/session/mirror/TurnUsagePanel.js.map +1 -0
- package/dist/adv/session/mirror/control-details.d.ts +9 -0
- package/dist/adv/session/mirror/control-details.d.ts.map +1 -0
- package/dist/adv/session/mirror/control-details.js +549 -0
- package/dist/adv/session/mirror/control-details.js.map +1 -0
- package/dist/adv/session/mirror/detail-i18n.d.ts +4 -0
- package/dist/adv/session/mirror/detail-i18n.d.ts.map +1 -0
- package/dist/adv/session/mirror/detail-i18n.js +153 -0
- package/dist/adv/session/mirror/detail-i18n.js.map +1 -0
- package/dist/adv/session/mirror/message-chrome.d.ts +39 -0
- package/dist/adv/session/mirror/message-chrome.d.ts.map +1 -0
- package/dist/adv/session/mirror/message-chrome.js +153 -0
- package/dist/adv/session/mirror/message-chrome.js.map +1 -0
- package/dist/adv/session/mirror/process-groups.d.ts +56 -0
- package/dist/adv/session/mirror/process-groups.d.ts.map +1 -0
- package/dist/adv/session/mirror/process-groups.js +204 -0
- package/dist/adv/session/mirror/process-groups.js.map +1 -0
- package/dist/adv/session/official-classes.d.ts +28 -0
- package/dist/adv/session/official-classes.d.ts.map +1 -0
- package/dist/adv/session/official-classes.js +152 -0
- package/dist/adv/session/official-classes.js.map +1 -0
- package/dist/adv/session/open-review.d.ts +13 -0
- package/dist/adv/session/open-review.d.ts.map +1 -0
- package/dist/adv/session/open-review.js +32 -0
- package/dist/adv/session/open-review.js.map +1 -0
- package/dist/adv/session/open-session-view.d.ts +19 -0
- package/dist/adv/session/open-session-view.d.ts.map +1 -0
- package/dist/adv/session/open-session-view.js +147 -0
- package/dist/adv/session/open-session-view.js.map +1 -0
- package/dist/adv/session/pending-inputs.d.ts +33 -0
- package/dist/adv/session/pending-inputs.d.ts.map +1 -0
- package/dist/adv/session/pending-inputs.js +130 -0
- package/dist/adv/session/pending-inputs.js.map +1 -0
- package/dist/adv/session/session-css.d.ts +2 -0
- package/dist/adv/session/session-css.d.ts.map +1 -0
- package/dist/adv/session/session-css.generated.d.ts +2 -0
- package/dist/adv/session/session-css.generated.d.ts.map +1 -0
- package/dist/adv/session/session-css.generated.js +4 -0
- package/dist/adv/session/session-css.generated.js.map +1 -0
- package/dist/adv/session/session-css.js +3 -0
- package/dist/adv/session/session-css.js.map +1 -0
- package/dist/adv/session/tail-follow.d.ts +29 -0
- package/dist/adv/session/tail-follow.d.ts.map +1 -0
- package/dist/adv/session/tail-follow.js +106 -0
- package/dist/adv/session/tail-follow.js.map +1 -0
- package/dist/design/tokens-css.generated.d.ts +1 -1
- package/dist/design/tokens-css.generated.d.ts.map +1 -1
- package/dist/design/tokens-css.generated.js +1 -1
- package/dist/design/tokens-css.generated.js.map +1 -1
- package/dist/ui/Button.d.ts.map +1 -1
- package/dist/ui/Button.js +6 -2
- package/dist/ui/Button.js.map +1 -1
- package/dist/ui/Checkbox.d.ts.map +1 -1
- package/dist/ui/Checkbox.js +7 -3
- package/dist/ui/Checkbox.js.map +1 -1
- package/dist/ui/DateTimePicker.d.ts.map +1 -1
- package/dist/ui/DateTimePicker.js +4 -3
- package/dist/ui/DateTimePicker.js.map +1 -1
- package/dist/ui/Field.d.ts.map +1 -1
- package/dist/ui/Field.js +15 -7
- package/dist/ui/Field.js.map +1 -1
- package/dist/ui/Modal.d.ts +7 -6
- package/dist/ui/Modal.d.ts.map +1 -1
- package/dist/ui/Modal.js +6 -6
- package/dist/ui/Modal.js.map +1 -1
- package/dist/ui/Pagination.d.ts.map +1 -1
- package/dist/ui/Pagination.js +3 -1
- package/dist/ui/Pagination.js.map +1 -1
- package/dist/ui/Picker.d.ts.map +1 -1
- package/dist/ui/Picker.js +3 -2
- package/dist/ui/Picker.js.map +1 -1
- package/dist/ui/Segmented.d.ts.map +1 -1
- package/dist/ui/Segmented.js +4 -1
- package/dist/ui/Segmented.js.map +1 -1
- package/dist/ui/SideSheet.d.ts.map +1 -1
- package/dist/ui/SideSheet.js +6 -5
- package/dist/ui/SideSheet.js.map +1 -1
- package/dist/ui/Textarea.d.ts.map +1 -1
- package/dist/ui/Textarea.js +4 -1
- package/dist/ui/Textarea.js.map +1 -1
- package/dist/ui/actions/Button.d.ts +102 -0
- package/dist/ui/actions/Button.d.ts.map +1 -0
- package/dist/ui/actions/Button.js +233 -0
- package/dist/ui/actions/Button.js.map +1 -0
- package/dist/ui/actions/button-css.generated.d.ts +2 -0
- package/dist/ui/actions/button-css.generated.d.ts.map +1 -0
- package/dist/ui/actions/button-css.generated.js +4 -0
- package/dist/ui/actions/button-css.generated.js.map +1 -0
- package/dist/ui/display/Card.d.ts +65 -0
- package/dist/ui/display/Card.d.ts.map +1 -0
- package/dist/ui/display/Card.js +109 -0
- package/dist/ui/display/Card.js.map +1 -0
- package/dist/ui/display/Chip.d.ts +28 -0
- package/dist/ui/display/Chip.d.ts.map +1 -0
- package/dist/ui/display/Chip.js +36 -0
- package/dist/ui/display/Chip.js.map +1 -0
- package/dist/ui/display/CodeViewer.d.ts +38 -0
- package/dist/ui/display/CodeViewer.d.ts.map +1 -0
- package/dist/ui/display/CodeViewer.js +107 -0
- package/dist/ui/display/CodeViewer.js.map +1 -0
- package/dist/ui/display/FieldHint.d.ts +18 -0
- package/dist/ui/display/FieldHint.d.ts.map +1 -0
- package/dist/ui/display/FieldHint.js +40 -0
- package/dist/ui/display/FieldHint.js.map +1 -0
- package/dist/ui/display/FlipText.d.ts +43 -0
- package/dist/ui/display/FlipText.d.ts.map +1 -0
- package/dist/ui/display/FlipText.js +59 -0
- package/dist/ui/display/FlipText.js.map +1 -0
- package/dist/ui/display/LiveText.d.ts +13 -0
- package/dist/ui/display/LiveText.d.ts.map +1 -0
- package/dist/ui/display/LiveText.js +19 -0
- package/dist/ui/display/LiveText.js.map +1 -0
- package/dist/ui/display/MarqueeText.d.ts +22 -0
- package/dist/ui/display/MarqueeText.d.ts.map +1 -0
- package/dist/ui/display/MarqueeText.js +52 -0
- package/dist/ui/display/MarqueeText.js.map +1 -0
- package/dist/ui/display/SectionHead.d.ts +35 -0
- package/dist/ui/display/SectionHead.d.ts.map +1 -0
- package/dist/ui/display/SectionHead.js +45 -0
- package/dist/ui/display/SectionHead.js.map +1 -0
- package/dist/ui/display/Surface.d.ts +43 -0
- package/dist/ui/display/Surface.d.ts.map +1 -0
- package/dist/ui/display/Surface.js +39 -0
- package/dist/ui/display/Surface.js.map +1 -0
- package/dist/ui/display/Table.d.ts +30 -0
- package/dist/ui/display/Table.d.ts.map +1 -0
- package/dist/ui/display/Table.js +96 -0
- package/dist/ui/display/Table.js.map +1 -0
- package/dist/ui/display/card-css.d.ts +2 -0
- package/dist/ui/display/card-css.d.ts.map +1 -0
- package/dist/ui/display/card-css.generated.d.ts +2 -0
- package/dist/ui/display/card-css.generated.d.ts.map +1 -0
- package/dist/ui/display/card-css.generated.js +4 -0
- package/dist/ui/display/card-css.generated.js.map +1 -0
- package/dist/ui/display/card-css.js +5 -0
- package/dist/ui/display/card-css.js.map +1 -0
- package/dist/ui/display/chip-css.d.ts +2 -0
- package/dist/ui/display/chip-css.d.ts.map +1 -0
- package/dist/ui/display/chip-css.generated.d.ts +2 -0
- package/dist/ui/display/chip-css.generated.d.ts.map +1 -0
- package/dist/ui/display/chip-css.generated.js +4 -0
- package/dist/ui/display/chip-css.generated.js.map +1 -0
- package/dist/ui/display/chip-css.js +12 -0
- package/dist/ui/display/chip-css.js.map +1 -0
- package/dist/ui/display/code-viewer-css.d.ts +2 -0
- package/dist/ui/display/code-viewer-css.d.ts.map +1 -0
- package/dist/ui/display/code-viewer-css.generated.d.ts +2 -0
- package/dist/ui/display/code-viewer-css.generated.d.ts.map +1 -0
- package/dist/ui/display/code-viewer-css.generated.js +4 -0
- package/dist/ui/display/code-viewer-css.generated.js.map +1 -0
- package/dist/ui/display/code-viewer-css.js +3 -0
- package/dist/ui/display/code-viewer-css.js.map +1 -0
- package/dist/ui/display/code-viewer-lang.d.ts +15 -0
- package/dist/ui/display/code-viewer-lang.d.ts.map +1 -0
- package/dist/ui/display/code-viewer-lang.js +190 -0
- package/dist/ui/display/code-viewer-lang.js.map +1 -0
- package/dist/ui/display/code-viewer-theme.d.ts +5 -0
- package/dist/ui/display/code-viewer-theme.d.ts.map +1 -0
- package/dist/ui/display/code-viewer-theme.js +138 -0
- package/dist/ui/display/code-viewer-theme.js.map +1 -0
- package/dist/ui/display/flip-css.d.ts +2 -0
- package/dist/ui/display/flip-css.d.ts.map +1 -0
- package/dist/ui/display/flip-css.generated.d.ts +2 -0
- package/dist/ui/display/flip-css.generated.d.ts.map +1 -0
- package/dist/ui/display/flip-css.generated.js +4 -0
- package/dist/ui/display/flip-css.generated.js.map +1 -0
- package/dist/ui/display/flip-css.js +4 -0
- package/dist/ui/display/flip-css.js.map +1 -0
- package/dist/ui/display/hint-css.generated.d.ts +2 -0
- package/dist/ui/display/hint-css.generated.d.ts.map +1 -0
- package/dist/ui/display/hint-css.generated.js +4 -0
- package/dist/ui/display/hint-css.generated.js.map +1 -0
- package/dist/ui/display/marquee-css.d.ts +2 -0
- package/dist/ui/display/marquee-css.d.ts.map +1 -0
- package/dist/ui/display/marquee-css.generated.d.ts +2 -0
- package/dist/ui/display/marquee-css.generated.d.ts.map +1 -0
- package/dist/ui/display/marquee-css.generated.js +4 -0
- package/dist/ui/display/marquee-css.generated.js.map +1 -0
- package/dist/ui/display/marquee-css.js +4 -0
- package/dist/ui/display/marquee-css.js.map +1 -0
- package/dist/ui/display/section-head-css.generated.d.ts +2 -0
- package/dist/ui/display/section-head-css.generated.d.ts.map +1 -0
- package/dist/ui/display/section-head-css.generated.js +4 -0
- package/dist/ui/display/section-head-css.generated.js.map +1 -0
- package/dist/ui/display/surface-css.d.ts +2 -0
- package/dist/ui/display/surface-css.d.ts.map +1 -0
- package/dist/ui/display/surface-css.generated.d.ts +2 -0
- package/dist/ui/display/surface-css.generated.d.ts.map +1 -0
- package/dist/ui/display/surface-css.generated.js +4 -0
- package/dist/ui/display/surface-css.generated.js.map +1 -0
- package/dist/ui/display/surface-css.js +7 -0
- package/dist/ui/display/surface-css.js.map +1 -0
- package/dist/ui/display/table-css.generated.d.ts +2 -0
- package/dist/ui/display/table-css.generated.d.ts.map +1 -0
- package/dist/ui/display/table-css.generated.js +4 -0
- package/dist/ui/display/table-css.generated.js.map +1 -0
- package/dist/ui/display/table-logic.d.ts +110 -0
- package/dist/ui/display/table-logic.d.ts.map +1 -0
- package/dist/ui/display/table-logic.js +81 -0
- package/dist/ui/display/table-logic.js.map +1 -0
- package/dist/ui/display/table-plain-css.generated.d.ts +2 -0
- package/dist/ui/display/table-plain-css.generated.d.ts.map +1 -0
- package/dist/ui/display/table-plain-css.generated.js +4 -0
- package/dist/ui/display/table-plain-css.generated.js.map +1 -0
- package/dist/ui/display/table-shared.d.ts +101 -0
- package/dist/ui/display/table-shared.d.ts.map +1 -0
- package/dist/ui/display/table-shared.js +229 -0
- package/dist/ui/display/table-shared.js.map +1 -0
- package/dist/ui/feedback/AlertModal.d.ts +41 -0
- package/dist/ui/feedback/AlertModal.d.ts.map +1 -0
- package/dist/ui/feedback/AlertModal.js +45 -0
- package/dist/ui/feedback/AlertModal.js.map +1 -0
- package/dist/ui/feedback/ConfirmModal.d.ts +50 -0
- package/dist/ui/feedback/ConfirmModal.d.ts.map +1 -0
- package/dist/ui/feedback/ConfirmModal.js +47 -0
- package/dist/ui/feedback/ConfirmModal.js.map +1 -0
- package/dist/ui/feedback/Loader.d.ts +49 -0
- package/dist/ui/feedback/Loader.d.ts.map +1 -0
- package/dist/ui/feedback/Loader.js +79 -0
- package/dist/ui/feedback/Loader.js.map +1 -0
- package/dist/ui/feedback/LoaderBar.d.ts +38 -0
- package/dist/ui/feedback/LoaderBar.d.ts.map +1 -0
- package/dist/ui/feedback/LoaderBar.js +79 -0
- package/dist/ui/feedback/LoaderBar.js.map +1 -0
- package/dist/ui/feedback/Loading.d.ts +69 -0
- package/dist/ui/feedback/Loading.d.ts.map +1 -0
- package/dist/ui/feedback/Loading.js +164 -0
- package/dist/ui/feedback/Loading.js.map +1 -0
- package/dist/ui/feedback/Modal.d.ts +73 -0
- package/dist/ui/feedback/Modal.d.ts.map +1 -0
- package/dist/ui/feedback/Modal.js +83 -0
- package/dist/ui/feedback/Modal.js.map +1 -0
- package/dist/ui/feedback/SideSheet.d.ts +70 -0
- package/dist/ui/feedback/SideSheet.d.ts.map +1 -0
- package/dist/ui/feedback/SideSheet.js +130 -0
- package/dist/ui/feedback/SideSheet.js.map +1 -0
- package/dist/ui/feedback/Toast.d.ts +45 -0
- package/dist/ui/feedback/Toast.d.ts.map +1 -0
- package/dist/ui/feedback/Toast.js +225 -0
- package/dist/ui/feedback/Toast.js.map +1 -0
- package/dist/ui/feedback/feedback-css.d.ts +2 -0
- package/dist/ui/feedback/feedback-css.d.ts.map +1 -0
- package/dist/ui/feedback/feedback-css.generated.d.ts +2 -0
- package/dist/ui/feedback/feedback-css.generated.d.ts.map +1 -0
- package/dist/ui/feedback/feedback-css.generated.js +4 -0
- package/dist/ui/feedback/feedback-css.generated.js.map +1 -0
- package/dist/ui/feedback/feedback-css.js +4 -0
- package/dist/ui/feedback/feedback-css.js.map +1 -0
- package/dist/ui/feedback/host-toast.d.ts +23 -0
- package/dist/ui/feedback/host-toast.d.ts.map +1 -0
- package/dist/ui/feedback/host-toast.js +34 -0
- package/dist/ui/feedback/host-toast.js.map +1 -0
- package/dist/ui/feedback/loader-bar-art.d.ts +6 -0
- package/dist/ui/feedback/loader-bar-art.d.ts.map +1 -0
- package/dist/ui/feedback/loader-bar-art.js +6 -0
- package/dist/ui/feedback/loader-bar-art.js.map +1 -0
- package/dist/ui/feedback/loader-bar-css.generated.d.ts +2 -0
- package/dist/ui/feedback/loader-bar-css.generated.d.ts.map +1 -0
- package/dist/ui/feedback/loader-bar-css.generated.js +4 -0
- package/dist/ui/feedback/loader-bar-css.generated.js.map +1 -0
- package/dist/ui/feedback/loader-css.generated.d.ts +2 -0
- package/dist/ui/feedback/loader-css.generated.d.ts.map +1 -0
- package/dist/ui/feedback/loader-css.generated.js +4 -0
- package/dist/ui/feedback/loader-css.generated.js.map +1 -0
- package/dist/ui/feedback/loading-css.generated.d.ts +2 -0
- package/dist/ui/feedback/loading-css.generated.d.ts.map +1 -0
- package/dist/ui/feedback/loading-css.generated.js +4 -0
- package/dist/ui/feedback/loading-css.generated.js.map +1 -0
- package/dist/ui/feedback/loading-host.d.ts +49 -0
- package/dist/ui/feedback/loading-host.d.ts.map +1 -0
- package/dist/ui/feedback/loading-host.js +57 -0
- package/dist/ui/feedback/loading-host.js.map +1 -0
- package/dist/ui/feedback/modal-host.d.ts +51 -0
- package/dist/ui/feedback/modal-host.d.ts.map +1 -0
- package/dist/ui/feedback/modal-host.js +170 -0
- package/dist/ui/feedback/modal-host.js.map +1 -0
- package/dist/ui/feedback/side-sheet-css.d.ts +2 -0
- package/dist/ui/feedback/side-sheet-css.d.ts.map +1 -0
- package/dist/ui/feedback/side-sheet-css.generated.d.ts +2 -0
- package/dist/ui/feedback/side-sheet-css.generated.d.ts.map +1 -0
- package/dist/ui/feedback/side-sheet-css.generated.js +4 -0
- package/dist/ui/feedback/side-sheet-css.generated.js.map +1 -0
- package/dist/ui/feedback/side-sheet-css.js +2 -0
- package/dist/ui/feedback/side-sheet-css.js.map +1 -0
- package/dist/ui/feedback/toast-host.d.ts +24 -0
- package/dist/ui/feedback/toast-host.d.ts.map +1 -0
- package/dist/ui/feedback/toast-host.js +20 -0
- package/dist/ui/feedback/toast-host.js.map +1 -0
- package/dist/ui/feedback-css.generated.d.ts +1 -1
- package/dist/ui/feedback-css.generated.d.ts.map +1 -1
- package/dist/ui/feedback-css.generated.js +1 -1
- package/dist/ui/feedback-css.generated.js.map +1 -1
- package/dist/ui/index.d.ts +44 -44
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +44 -44
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/infra/chevron.d.ts +22 -0
- package/dist/ui/infra/chevron.d.ts.map +1 -0
- package/dist/ui/infra/chevron.js +33 -0
- package/dist/ui/infra/chevron.js.map +1 -0
- package/dist/ui/infra/controls-css.d.ts +16 -0
- package/dist/ui/infra/controls-css.d.ts.map +1 -0
- package/dist/ui/infra/controls-css.js +26 -0
- package/dist/ui/infra/controls-css.js.map +1 -0
- package/dist/ui/infra/css.d.ts +35 -0
- package/dist/ui/infra/css.d.ts.map +1 -0
- package/dist/ui/infra/css.js +52 -0
- package/dist/ui/infra/css.js.map +1 -0
- package/dist/ui/infra/host-data.d.ts +119 -0
- package/dist/ui/infra/host-data.d.ts.map +1 -0
- package/dist/ui/infra/host-data.js +122 -0
- package/dist/ui/infra/host-data.js.map +1 -0
- package/dist/ui/infra/locale.d.ts +4 -0
- package/dist/ui/infra/locale.d.ts.map +1 -0
- package/dist/ui/infra/locale.js +17 -0
- package/dist/ui/infra/locale.js.map +1 -0
- package/dist/ui/infra/overlay-css.d.ts +2 -0
- package/dist/ui/infra/overlay-css.d.ts.map +1 -0
- package/dist/ui/infra/overlay-css.generated.d.ts +2 -0
- package/dist/ui/infra/overlay-css.generated.d.ts.map +1 -0
- package/dist/ui/infra/overlay-css.generated.js +4 -0
- package/dist/ui/infra/overlay-css.generated.js.map +1 -0
- package/dist/ui/infra/overlay-css.js +2 -0
- package/dist/ui/infra/overlay-css.js.map +1 -0
- package/dist/ui/infra/overlay.d.ts +62 -0
- package/dist/ui/infra/overlay.d.ts.map +1 -0
- package/dist/ui/infra/overlay.js +94 -0
- package/dist/ui/infra/overlay.js.map +1 -0
- package/dist/ui/infra/panel-css.d.ts +2 -0
- package/dist/ui/infra/panel-css.d.ts.map +1 -0
- package/dist/ui/infra/panel-css.generated.d.ts +2 -0
- package/dist/ui/infra/panel-css.generated.d.ts.map +1 -0
- package/dist/ui/infra/panel-css.generated.js +4 -0
- package/dist/ui/infra/panel-css.generated.js.map +1 -0
- package/dist/ui/infra/panel-css.js +2 -0
- package/dist/ui/infra/panel-css.js.map +1 -0
- package/dist/ui/infra/panel.d.ts +41 -0
- package/dist/ui/infra/panel.d.ts.map +1 -0
- package/dist/ui/infra/panel.js +37 -0
- package/dist/ui/infra/panel.js.map +1 -0
- package/dist/ui/infra/side-panel-css.d.ts +2 -0
- package/dist/ui/infra/side-panel-css.d.ts.map +1 -0
- package/dist/ui/infra/side-panel-css.generated.d.ts +2 -0
- package/dist/ui/infra/side-panel-css.generated.d.ts.map +1 -0
- package/dist/ui/infra/side-panel-css.generated.js +4 -0
- package/dist/ui/infra/side-panel-css.generated.js.map +1 -0
- package/dist/ui/infra/side-panel-css.js +2 -0
- package/dist/ui/infra/side-panel-css.js.map +1 -0
- package/dist/ui/infra/thenable.d.ts +9 -0
- package/dist/ui/infra/thenable.d.ts.map +1 -0
- package/dist/ui/infra/thenable.js +15 -0
- package/dist/ui/infra/thenable.js.map +1 -0
- package/dist/ui/infra/ticker.d.ts +8 -0
- package/dist/ui/infra/ticker.d.ts.map +1 -0
- package/dist/ui/infra/ticker.js +49 -0
- package/dist/ui/infra/ticker.js.map +1 -0
- package/dist/ui/infra/tooltip.d.ts +29 -0
- package/dist/ui/infra/tooltip.d.ts.map +1 -0
- package/dist/ui/infra/tooltip.js +10 -0
- package/dist/ui/infra/tooltip.js.map +1 -0
- package/dist/ui/inputs/Checkbox.d.ts +24 -0
- package/dist/ui/inputs/Checkbox.d.ts.map +1 -0
- package/dist/ui/inputs/Checkbox.js +35 -0
- package/dist/ui/inputs/Checkbox.js.map +1 -0
- package/dist/ui/inputs/DateTimePicker.d.ts +45 -0
- package/dist/ui/inputs/DateTimePicker.d.ts.map +1 -0
- package/dist/ui/inputs/DateTimePicker.js +462 -0
- package/dist/ui/inputs/DateTimePicker.js.map +1 -0
- package/dist/ui/inputs/Field.d.ts +125 -0
- package/dist/ui/inputs/Field.d.ts.map +1 -0
- package/dist/ui/inputs/Field.js +175 -0
- package/dist/ui/inputs/Field.js.map +1 -0
- package/dist/ui/inputs/InputGroup.d.ts +91 -0
- package/dist/ui/inputs/InputGroup.d.ts.map +1 -0
- package/dist/ui/inputs/InputGroup.js +125 -0
- package/dist/ui/inputs/InputGroup.js.map +1 -0
- package/dist/ui/inputs/ModelPicker.d.ts +48 -0
- package/dist/ui/inputs/ModelPicker.d.ts.map +1 -0
- package/dist/ui/inputs/ModelPicker.js +101 -0
- package/dist/ui/inputs/ModelPicker.js.map +1 -0
- package/dist/ui/inputs/Picker.d.ts +56 -0
- package/dist/ui/inputs/Picker.d.ts.map +1 -0
- package/dist/ui/inputs/Picker.js +244 -0
- package/dist/ui/inputs/Picker.js.map +1 -0
- package/dist/ui/inputs/Segmented.d.ts +99 -0
- package/dist/ui/inputs/Segmented.d.ts.map +1 -0
- package/dist/ui/inputs/Segmented.js +135 -0
- package/dist/ui/inputs/Segmented.js.map +1 -0
- package/dist/ui/inputs/Textarea.d.ts +36 -0
- package/dist/ui/inputs/Textarea.d.ts.map +1 -0
- package/dist/ui/inputs/Textarea.js +35 -0
- package/dist/ui/inputs/Textarea.js.map +1 -0
- package/dist/ui/inputs/WorkspacePicker.d.ts +35 -0
- package/dist/ui/inputs/WorkspacePicker.d.ts.map +1 -0
- package/dist/ui/inputs/WorkspacePicker.js +39 -0
- package/dist/ui/inputs/WorkspacePicker.js.map +1 -0
- package/dist/ui/inputs/datetime-css.generated.d.ts +2 -0
- package/dist/ui/inputs/datetime-css.generated.d.ts.map +1 -0
- package/dist/ui/inputs/datetime-css.generated.js +4 -0
- package/dist/ui/inputs/datetime-css.generated.js.map +1 -0
- package/dist/ui/inputs/datetime-logic.d.ts +102 -0
- package/dist/ui/inputs/datetime-logic.d.ts.map +1 -0
- package/dist/ui/inputs/datetime-logic.js +200 -0
- package/dist/ui/inputs/datetime-logic.js.map +1 -0
- package/dist/ui/inputs/field-css.generated.d.ts +2 -0
- package/dist/ui/inputs/field-css.generated.d.ts.map +1 -0
- package/dist/ui/inputs/field-css.generated.js +4 -0
- package/dist/ui/inputs/field-css.generated.js.map +1 -0
- package/dist/ui/inputs/input-group-css.generated.d.ts +2 -0
- package/dist/ui/inputs/input-group-css.generated.d.ts.map +1 -0
- package/dist/ui/inputs/input-group-css.generated.js +4 -0
- package/dist/ui/inputs/input-group-css.generated.js.map +1 -0
- package/dist/ui/inputs/picker-css.d.ts +2 -0
- package/dist/ui/inputs/picker-css.d.ts.map +1 -0
- package/dist/ui/inputs/picker-css.generated.d.ts +2 -0
- package/dist/ui/inputs/picker-css.generated.d.ts.map +1 -0
- package/dist/ui/inputs/picker-css.generated.js +4 -0
- package/dist/ui/inputs/picker-css.generated.js.map +1 -0
- package/dist/ui/inputs/picker-css.js +4 -0
- package/dist/ui/inputs/picker-css.js.map +1 -0
- package/dist/ui/inputs/picker-icons.d.ts +12 -0
- package/dist/ui/inputs/picker-icons.d.ts.map +1 -0
- package/dist/ui/inputs/picker-icons.js +29 -0
- package/dist/ui/inputs/picker-icons.js.map +1 -0
- package/dist/ui/inputs/picker-logic.d.ts +33 -0
- package/dist/ui/inputs/picker-logic.d.ts.map +1 -0
- package/dist/ui/inputs/picker-logic.js +68 -0
- package/dist/ui/inputs/picker-logic.js.map +1 -0
- package/dist/ui/inputs/segmented-css.generated.d.ts +2 -0
- package/dist/ui/inputs/segmented-css.generated.d.ts.map +1 -0
- package/dist/ui/inputs/segmented-css.generated.js +4 -0
- package/dist/ui/inputs/segmented-css.generated.js.map +1 -0
- package/dist/ui/layout/PanelDock.d.ts +132 -0
- package/dist/ui/layout/PanelDock.d.ts.map +1 -0
- package/dist/ui/layout/PanelDock.js +390 -0
- package/dist/ui/layout/PanelDock.js.map +1 -0
- package/dist/ui/layout/QuickToolbar.d.ts +54 -0
- package/dist/ui/layout/QuickToolbar.d.ts.map +1 -0
- package/dist/ui/layout/QuickToolbar.js +254 -0
- package/dist/ui/layout/QuickToolbar.js.map +1 -0
- package/dist/ui/layout/SplitGroup.d.ts +37 -0
- package/dist/ui/layout/SplitGroup.d.ts.map +1 -0
- package/dist/ui/layout/SplitGroup.js +36 -0
- package/dist/ui/layout/SplitGroup.js.map +1 -0
- package/dist/ui/layout/panel-dock-css.d.ts +2 -0
- package/dist/ui/layout/panel-dock-css.d.ts.map +1 -0
- package/dist/ui/layout/panel-dock-css.generated.d.ts +2 -0
- package/dist/ui/layout/panel-dock-css.generated.d.ts.map +1 -0
- package/dist/ui/layout/panel-dock-css.generated.js +4 -0
- package/dist/ui/layout/panel-dock-css.generated.js.map +1 -0
- package/dist/ui/layout/panel-dock-css.js +4 -0
- package/dist/ui/layout/panel-dock-css.js.map +1 -0
- package/dist/ui/layout/panel-dock-logic.d.ts +67 -0
- package/dist/ui/layout/panel-dock-logic.d.ts.map +1 -0
- package/dist/ui/layout/panel-dock-logic.js +110 -0
- package/dist/ui/layout/panel-dock-logic.js.map +1 -0
- package/dist/ui/layout/quick-toolbar-css.generated.d.ts +2 -0
- package/dist/ui/layout/quick-toolbar-css.generated.d.ts.map +1 -0
- package/dist/ui/layout/quick-toolbar-css.generated.js +4 -0
- package/dist/ui/layout/quick-toolbar-css.generated.js.map +1 -0
- package/dist/ui/layout/quick-toolbar-logic.d.ts +76 -0
- package/dist/ui/layout/quick-toolbar-logic.d.ts.map +1 -0
- package/dist/ui/layout/quick-toolbar-logic.js +40 -0
- package/dist/ui/layout/quick-toolbar-logic.js.map +1 -0
- package/dist/ui/layout/resizer.d.ts +29 -0
- package/dist/ui/layout/resizer.d.ts.map +1 -0
- package/dist/ui/layout/resizer.js +42 -0
- package/dist/ui/layout/resizer.js.map +1 -0
- package/dist/ui/layout/split-group-css.generated.d.ts +2 -0
- package/dist/ui/layout/split-group-css.generated.d.ts.map +1 -0
- package/dist/ui/layout/split-group-css.generated.js +4 -0
- package/dist/ui/layout/split-group-css.generated.js.map +1 -0
- package/dist/ui/navigation/Pagination.d.ts +59 -0
- package/dist/ui/navigation/Pagination.d.ts.map +1 -0
- package/dist/ui/navigation/Pagination.js +112 -0
- package/dist/ui/navigation/Pagination.js.map +1 -0
- package/dist/ui/navigation/pagination-css.generated.d.ts +2 -0
- package/dist/ui/navigation/pagination-css.generated.d.ts.map +1 -0
- package/dist/ui/navigation/pagination-css.generated.js +4 -0
- package/dist/ui/navigation/pagination-css.generated.js.map +1 -0
- package/dist/ui/navigation/pagination-logic.d.ts +36 -0
- package/dist/ui/navigation/pagination-logic.d.ts.map +1 -0
- package/dist/ui/navigation/pagination-logic.js +73 -0
- package/dist/ui/navigation/pagination-logic.js.map +1 -0
- package/dist/ui/official.js +2 -2
- package/dist/ui/official.js.map +1 -1
- package/dist/ui/overlay-css.generated.d.ts +1 -1
- package/dist/ui/overlay-css.generated.d.ts.map +1 -1
- package/dist/ui/overlay-css.generated.js +1 -1
- package/dist/ui/overlay-css.generated.js.map +1 -1
- package/dist/ui/overlay.d.ts +13 -0
- package/dist/ui/overlay.d.ts.map +1 -1
- package/dist/ui/overlay.js +33 -0
- package/dist/ui/overlay.js.map +1 -1
- package/dist/ui/side-sheet-css.generated.d.ts +1 -1
- package/dist/ui/side-sheet-css.generated.d.ts.map +1 -1
- package/dist/ui/side-sheet-css.generated.js +1 -1
- package/dist/ui/side-sheet-css.generated.js.map +1 -1
- package/dist/utils/i18n.d.ts +2 -2
- package/dist/utils/i18n.d.ts.map +1 -1
- package/dist/utils/i18n.js +1 -1
- package/dist/utils/i18n.js.map +1 -1
- package/docs/README.md +1 -1
- package/docs/design/architecture.md +9 -8
- package/docs/design/copywriting.md +23 -0
- package/docs/design/external/dsh-host.md +5 -5
- package/docs/design/structure.md +132 -128
- package/docs/design/style.md +5 -5
- package/docs/help/ui.doc.ts +4 -4
- package/docs/help/ui.md +4 -4
- package/docs/help/utils.doc.ts +3 -3
- package/docs/help/utils.md +3 -3
- package/docs/requirements.md +30 -276
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoaderBar.d.ts","sourceRoot":"","sources":["../../../src/ui/feedback/LoaderBar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,aAAa,IAAI,CAAC,EAAS,MAAM,OAAO,CAAA;AAIjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAuB7C,MAAM,WAAW,cAAc;IAC7B,+BAA+B;IAC/B,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAoDrE"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LoaderBar —— 胶囊不定进度 loading(Loader 家族成员)。
|
|
3
|
+
*
|
|
4
|
+
* 图形来源:设计出的「轨道 + 蓝色段 + 斜纹」胶囊条。动画是**不定进度**语义:
|
|
5
|
+
* 蓝色那半截**固定不动**,只有它上面的一道道细斜纹单向流动(0.55 秒走一个条纹周期),
|
|
6
|
+
* 看着像条纹在转,不表示任何百分比。要「确定进度」别改这个控件 —— 它是固定加载态,
|
|
7
|
+
* 不是进度条 API。
|
|
8
|
+
*
|
|
9
|
+
* 尺寸轴按**高度**给(宽固定 4:1):图形本身是横条,套方形的尺寸轴没意义。
|
|
10
|
+
*
|
|
11
|
+
* 实现要点:外层 `<g clip-path>` 静止、只让内层的蓝色段动。若把 `clip-path` 与
|
|
12
|
+
* `transform` 放在同一层,裁剪框会跟着平移,等于没裁,蓝段会跑出胶囊外。
|
|
13
|
+
* clipPath 的 id 由 `useId` 生成(同一页面可能有多个实例,写死 id 会互相抢)。
|
|
14
|
+
*
|
|
15
|
+
* 边界同 `Loader`:不带背景、不带内距、不带定位。
|
|
16
|
+
*
|
|
17
|
+
* ⚠️ 图形数据在 `loader-bar-art.ts`(源 SVG 一次性转录),别手改坐标。
|
|
18
|
+
*/
|
|
19
|
+
import { createElement as h, useId } from 'react';
|
|
20
|
+
import { ensureComponentStyles } from '../infra/css.js';
|
|
21
|
+
import { LOADER_BAR_CSS } from '../infra/controls-css.js';
|
|
22
|
+
import { BAR_PATHS } from './loader-bar-art.js';
|
|
23
|
+
/** 源图三条路径的固定顺序:轨道 / 蓝色段 / 斜纹。 */
|
|
24
|
+
const TRACK_INDEX = 0;
|
|
25
|
+
const FILL_INDEX = 1;
|
|
26
|
+
const STRIPE_INDEX = 2;
|
|
27
|
+
/**
|
|
28
|
+
* 斜纹的横向重复周期(用户单位):源图相邻斜线的间距。
|
|
29
|
+
* 平移整整一个周期后与原图重合 ⇒ 循环无缝。
|
|
30
|
+
* ⚠️ 必须与 `loader-bar.css` 里 `translateX(85.333px)` 保持一致。
|
|
31
|
+
*/
|
|
32
|
+
const STRIPE_PERIOD = 85.333;
|
|
33
|
+
/** 取第 index 条路径:转录不全就当场抛,别静默少画一块。 */
|
|
34
|
+
function pathAt(paths, index) {
|
|
35
|
+
const path = paths[index];
|
|
36
|
+
if (path === undefined) {
|
|
37
|
+
throw new Error(`loader-bar-art 缺少第 ${String(index)} 条路径`);
|
|
38
|
+
}
|
|
39
|
+
return path;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* 渲染胶囊不定进度 loading。
|
|
43
|
+
*
|
|
44
|
+
* @param props 见 {@link LoaderBarProps}。
|
|
45
|
+
* @returns `<svg>` 元素。
|
|
46
|
+
*/
|
|
47
|
+
export function LoaderBar(props) {
|
|
48
|
+
ensureComponentStyles('loader-bar', LOADER_BAR_CSS);
|
|
49
|
+
const { size = 'md', animated = true, label, className } = props;
|
|
50
|
+
// useId 返回形如 `:r0:` 的串,冒号放进 url(#…) 需要转义,这里直接剔掉。
|
|
51
|
+
const clipId = `dshpc-loader-bar-clip-${useId().replace(/[^a-zA-Z0-9_-]/g, '')}`;
|
|
52
|
+
const track = pathAt(BAR_PATHS, TRACK_INDEX);
|
|
53
|
+
const fill = pathAt(BAR_PATHS, FILL_INDEX);
|
|
54
|
+
const stripe = pathAt(BAR_PATHS, STRIPE_INDEX);
|
|
55
|
+
const classes = ['dshpc-loader-bar', `dshpc-loader-bar--${size}`];
|
|
56
|
+
if (animated === false)
|
|
57
|
+
classes.push('dshpc-loader-bar--still');
|
|
58
|
+
if (className !== undefined && className !== '')
|
|
59
|
+
classes.push(className);
|
|
60
|
+
return h('svg', {
|
|
61
|
+
className: classes.join(' '),
|
|
62
|
+
viewBox: '0 384 1024 256',
|
|
63
|
+
role: label === undefined ? undefined : 'status',
|
|
64
|
+
'aria-label': label,
|
|
65
|
+
'aria-hidden': label === undefined ? true : undefined,
|
|
66
|
+
focusable: 'false',
|
|
67
|
+
}, h('defs', null,
|
|
68
|
+
// 直接拿「蓝色段」自己的路径当裁剪区:它左端是圆的、**右端是平直的**
|
|
69
|
+
// (进度刚走到一大半,右边界是一条切面,不能带弧度)。
|
|
70
|
+
// 早先用 rect + rx 裁,四个角都是圆的 ⇒ 右端被裁成弧形,看着像走满了。
|
|
71
|
+
h('clipPath', { id: clipId }, h('path', { d: fill.d }))), h('path', { d: track.d, fill: track.fill }), h('path', { d: fill.d, fill: fill.fill }), h('g', { clipPath: `url(#${clipId})` }, h('g', { className: 'dshpc-loader-bar__stripe' },
|
|
72
|
+
// 三份:原图 + 左移一个周期 + 左移两个周期。
|
|
73
|
+
// 左端圆弧区也要铺满条纹,并且平移过程中左边界不露空。
|
|
74
|
+
...[0, 1, 2].map((step) => h('g', {
|
|
75
|
+
key: step,
|
|
76
|
+
transform: step === 0 ? undefined : `translate(${String(-STRIPE_PERIOD * step)} 0)`,
|
|
77
|
+
}, h('path', { d: stripe.d, fill: stripe.fill }))))));
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=LoaderBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoaderBar.js","sourceRoot":"","sources":["../../../src/ui/feedback/LoaderBar.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 全局浮动 Loading 指示器(UI 基础层 · P1)。
|
|
3
|
+
*
|
|
4
|
+
* @deprecated 这是「自带定位 + 自带 pill 背景」的复合件,不属于通用加载图标。
|
|
5
|
+
* 只要图标请用 {@link Loader}(无背景、无定位,背景与位置归调用方);
|
|
6
|
+
* 要居中 / 带文案的整卡请继续用 {@link LoadingToast} / {@link LoadingBlock}。
|
|
7
|
+
* 本组件保留不删(消费方可能还在用),但新代码不要再用。
|
|
8
|
+
*
|
|
9
|
+
* 用法:
|
|
10
|
+
* <Loading />
|
|
11
|
+
*
|
|
12
|
+
* 行为:
|
|
13
|
+
* - fixed 定位在主内容容器右下角,**不占布局空间**;
|
|
14
|
+
* - 右侧贴齐主内容容器右边缘(`anchorId` 默认 `dshpc-main`),底部留 16px;
|
|
15
|
+
* - **三个小方块依次脉动,无任何文案**(基础抽象统一外观,禁止加字;用户 2026-10-06);
|
|
16
|
+
* - 监听窗口 resize / scroll / 内容盒 resize,自动跟住内容宽度。
|
|
17
|
+
*
|
|
18
|
+
* 配套 also 导出 `<RunningBlocks />`:同样的三个脉动方块(无文案),
|
|
19
|
+
* 用于表格单元格里的「运行中」状态指示。
|
|
20
|
+
*
|
|
21
|
+
* 文档登记:docs/design/ui-foundation.md §二「唯一实现表」。
|
|
22
|
+
*/
|
|
23
|
+
import { createElement as h } from 'react';
|
|
24
|
+
import { type Translate } from '../../utils/i18n.js';
|
|
25
|
+
import { type LoadingHandle, type LoadingPosition, type LoadingVariant } from './loading-host.js';
|
|
26
|
+
export interface LoadingProps {
|
|
27
|
+
/** 主内容容器 id,loading 贴到它的右下角;默认 `dshpc-main`。 */
|
|
28
|
+
anchorId?: string;
|
|
29
|
+
}
|
|
30
|
+
/** 浮动 Loading pill:三个脉动方块(无文案;基础抽象统一外观)。 */
|
|
31
|
+
export declare function Loading(props: LoadingProps): ReturnType<typeof h>;
|
|
32
|
+
/** 运行中状态用的三个脉动方块(无文案),颜色跟随 `currentColor`。 */
|
|
33
|
+
export declare function RunningBlocks(): ReturnType<typeof h>;
|
|
34
|
+
/** 两种加载提示共用的 props。 */
|
|
35
|
+
export interface LoadingViewProps {
|
|
36
|
+
/** 文案,默认内置字典 `loadingDefault`(数据加载中 / Loading)。 */
|
|
37
|
+
text?: string;
|
|
38
|
+
/** 文案翻译函数,默认用内置字典。 */
|
|
39
|
+
translate?: Translate;
|
|
40
|
+
}
|
|
41
|
+
export interface LoadingOptions extends LoadingViewProps {
|
|
42
|
+
/** `toast` = 横排卡(默认);`block` = 方块卡。 */
|
|
43
|
+
variant?: LoadingVariant;
|
|
44
|
+
/** 屏幕方位,默认 `bottom-center`(与 Toast 同屏位);`center` 为正中。 */
|
|
45
|
+
position?: LoadingPosition;
|
|
46
|
+
/** 铺全屏遮罩挡住后面的一切点击,默认 false(不挡,随点随走)。 */
|
|
47
|
+
mask?: boolean;
|
|
48
|
+
/** 遮罩浓度 0–1,默认 0(全透明,但仍挡住点击)。 */
|
|
49
|
+
maskOpacity?: number;
|
|
50
|
+
}
|
|
51
|
+
/** 样式一:横排提示卡(转圈在左、文字在右),灰色底与 notify 的 info 卡同色。就地渲染,位置随调用方。 */
|
|
52
|
+
export declare function LoadingToast(props: LoadingViewProps): ReturnType<typeof h>;
|
|
53
|
+
/** 样式二:方块卡(转圈在上、文字在下,内距更大)。就地渲染,位置随调用方。 */
|
|
54
|
+
export declare function LoadingBlock(props: LoadingViewProps): ReturnType<typeof h>;
|
|
55
|
+
/**
|
|
56
|
+
* 命令式加载提示(全局唯一浮层,**不自动消失**)。所有插件、所有位置调用都落在**同一处**
|
|
57
|
+
* (默认屏幕下方居中,与 Toast 同屏位),且屏幕上永远只有一张卡 —— 后一次调用直接顶掉
|
|
58
|
+
* 前一次,被顶掉那次的句柄再 `close()` 是空操作。收起只能靠自己调 `close()`。
|
|
59
|
+
*
|
|
60
|
+
* ```ts
|
|
61
|
+
* const loading = showLoading({ text: '正在保存…', mask: true, maskOpacity: 0.3 })
|
|
62
|
+
* await save()
|
|
63
|
+
* loading.close()
|
|
64
|
+
* ```
|
|
65
|
+
*
|
|
66
|
+
* 无 `document` 时静默返回空句柄(Node 单测 / SSR 不炸)。
|
|
67
|
+
*/
|
|
68
|
+
export declare function showLoading(opts?: LoadingOptions): LoadingHandle;
|
|
69
|
+
//# sourceMappingURL=Loading.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Loading.d.ts","sourceRoot":"","sources":["../../../src/ui/feedback/Loading.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,aAAa,IAAI,CAAC,EAAuB,MAAM,OAAO,CAAA;AAE/D,OAAO,EAAK,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAIL,KAAK,aAAa,EAElB,KAAK,eAAe,EAEpB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAA;AA6C1B,MAAM,WAAW,YAAY;IAC3B,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,4CAA4C;AAC5C,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAOjE;AAED,8CAA8C;AAC9C,wBAAgB,aAAa,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAGpD;AAMD,uBAAuB;AACvB,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,sBAAsB;IACtB,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACtD,uCAAuC;IACvC,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,eAAe,CAAA;IAC1B,wCAAwC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAMD,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAQ1E;AAED,2CAA2C;AAC3C,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAQ1E;AAyDD;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,aAAa,CAUhE"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 全局浮动 Loading 指示器(UI 基础层 · P1)。
|
|
3
|
+
*
|
|
4
|
+
* @deprecated 这是「自带定位 + 自带 pill 背景」的复合件,不属于通用加载图标。
|
|
5
|
+
* 只要图标请用 {@link Loader}(无背景、无定位,背景与位置归调用方);
|
|
6
|
+
* 要居中 / 带文案的整卡请继续用 {@link LoadingToast} / {@link LoadingBlock}。
|
|
7
|
+
* 本组件保留不删(消费方可能还在用),但新代码不要再用。
|
|
8
|
+
*
|
|
9
|
+
* 用法:
|
|
10
|
+
* <Loading />
|
|
11
|
+
*
|
|
12
|
+
* 行为:
|
|
13
|
+
* - fixed 定位在主内容容器右下角,**不占布局空间**;
|
|
14
|
+
* - 右侧贴齐主内容容器右边缘(`anchorId` 默认 `dshpc-main`),底部留 16px;
|
|
15
|
+
* - **三个小方块依次脉动,无任何文案**(基础抽象统一外观,禁止加字;用户 2026-10-06);
|
|
16
|
+
* - 监听窗口 resize / scroll / 内容盒 resize,自动跟住内容宽度。
|
|
17
|
+
*
|
|
18
|
+
* 配套 also 导出 `<RunningBlocks />`:同样的三个脉动方块(无文案),
|
|
19
|
+
* 用于表格单元格里的「运行中」状态指示。
|
|
20
|
+
*
|
|
21
|
+
* 文档登记:docs/design/ui-foundation.md §二「唯一实现表」。
|
|
22
|
+
*/
|
|
23
|
+
import { createElement as h, useEffect, useState } from 'react';
|
|
24
|
+
import { createRoot } from 'react-dom/client';
|
|
25
|
+
import { t } from '../../utils/i18n.js';
|
|
26
|
+
import { claimLoadingHost, createLoadingSlot, loadingOverlayClass, } from './loading-host.js';
|
|
27
|
+
import { ensureComponentStyles, getStyleKit } from '../infra/css.js';
|
|
28
|
+
import { LOADING_CSS } from '../infra/controls-css.js';
|
|
29
|
+
import { Loader } from './Loader.js';
|
|
30
|
+
const pillStyle = {
|
|
31
|
+
position: 'fixed',
|
|
32
|
+
bottom: '16px',
|
|
33
|
+
zIndex: 'var(--dshpc-z-dock)',
|
|
34
|
+
display: 'inline-flex', alignItems: 'center', gap: '6px',
|
|
35
|
+
padding: '5px 10px', borderRadius: 'var(--dshpc-radius-md)',
|
|
36
|
+
background: 'var(--dshpc-surface-1)', border: '1px solid var(--dshpc-border)',
|
|
37
|
+
boxShadow: 'var(--dshpc-shadow-1, 0 2px 8px rgba(0,0,0,.12))',
|
|
38
|
+
color: 'var(--dshpc-fg-2)', fontSize: 'var(--dshpc-font-xs)', lineHeight: 'var(--dshpc-line-sm)',
|
|
39
|
+
// 纯提示,不吃鼠标事件(别挡住底下的内容)。
|
|
40
|
+
pointerEvents: 'none',
|
|
41
|
+
};
|
|
42
|
+
const RIGHT_MARGIN_PX = 0;
|
|
43
|
+
function useContentRight(anchorId) {
|
|
44
|
+
const [right, setRight] = useState(`${RIGHT_MARGIN_PX}px`);
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
const update = () => {
|
|
47
|
+
const el = document.getElementById(anchorId);
|
|
48
|
+
if (!el)
|
|
49
|
+
return;
|
|
50
|
+
const rect = el.getBoundingClientRect();
|
|
51
|
+
const viewportW = document.documentElement.clientWidth;
|
|
52
|
+
setRight(`${Math.max(0, viewportW - rect.right + RIGHT_MARGIN_PX)}px`);
|
|
53
|
+
};
|
|
54
|
+
update();
|
|
55
|
+
window.addEventListener('resize', update);
|
|
56
|
+
window.addEventListener('scroll', update, true);
|
|
57
|
+
const ro = new ResizeObserver(update);
|
|
58
|
+
const el = document.getElementById(anchorId);
|
|
59
|
+
if (el)
|
|
60
|
+
ro.observe(el);
|
|
61
|
+
return () => {
|
|
62
|
+
window.removeEventListener('resize', update);
|
|
63
|
+
window.removeEventListener('scroll', update, true);
|
|
64
|
+
ro.disconnect();
|
|
65
|
+
};
|
|
66
|
+
}, [anchorId]);
|
|
67
|
+
return right;
|
|
68
|
+
}
|
|
69
|
+
/** 浮动 Loading pill:三个脉动方块(无文案;基础抽象统一外观)。 */
|
|
70
|
+
export function Loading(props) {
|
|
71
|
+
ensureComponentStyles('loading', LOADING_CSS);
|
|
72
|
+
ensureComponentStyles('loading', LOADING_CSS);
|
|
73
|
+
const right = useContentRight(props.anchorId ?? 'dshpc-main');
|
|
74
|
+
return h('div', { style: { ...pillStyle, right }, role: 'status', 'aria-live': 'polite' }, h('span', { className: 'dshpc-run-blocks' }, h('i', null), h('i', null), h('i', null)));
|
|
75
|
+
}
|
|
76
|
+
/** 运行中状态用的三个脉动方块(无文案),颜色跟随 `currentColor`。 */
|
|
77
|
+
export function RunningBlocks() {
|
|
78
|
+
ensureComponentStyles('loading', LOADING_CSS);
|
|
79
|
+
return h('span', { className: 'dshpc-run-blocks' }, h('i', null), h('i', null), h('i', null));
|
|
80
|
+
}
|
|
81
|
+
function textOf(props) {
|
|
82
|
+
return props.text ?? (props.translate ?? t)('loadingDefault');
|
|
83
|
+
}
|
|
84
|
+
/** 样式一:横排提示卡(转圈在左、文字在右),灰色底与 notify 的 info 卡同色。就地渲染,位置随调用方。 */
|
|
85
|
+
export function LoadingToast(props) {
|
|
86
|
+
ensureComponentStyles('loading', LOADING_CSS);
|
|
87
|
+
return h('div', { className: 'dshpc-loading-toast', role: 'status', 'aria-live': 'polite' }, h(Loader, { size: 'sm' }), h('span', null, textOf(props)));
|
|
88
|
+
}
|
|
89
|
+
/** 样式二:方块卡(转圈在上、文字在下,内距更大)。就地渲染,位置随调用方。 */
|
|
90
|
+
export function LoadingBlock(props) {
|
|
91
|
+
ensureComponentStyles('loading', LOADING_CSS);
|
|
92
|
+
return h('div', { className: 'dshpc-loading-block', role: 'status', 'aria-live': 'polite' }, h(Loader, { size: 'md' }), h('span', null, textOf(props)));
|
|
93
|
+
}
|
|
94
|
+
// 宿主实现:唯一浮层根 + 唯一槽位(`createLoadingSlot`)。屏幕上永远最多一张卡。
|
|
95
|
+
function createLoadingHost() {
|
|
96
|
+
const slot = createLoadingSlot();
|
|
97
|
+
let root = null;
|
|
98
|
+
let container = null;
|
|
99
|
+
function flush() {
|
|
100
|
+
const state = slot.current();
|
|
101
|
+
if (state === null) {
|
|
102
|
+
root?.unmount();
|
|
103
|
+
container?.remove();
|
|
104
|
+
root = null;
|
|
105
|
+
container = null;
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (root === null) {
|
|
109
|
+
container = document.createElement('div');
|
|
110
|
+
container.setAttribute('data-dshpc-loading-host', '');
|
|
111
|
+
document.body.appendChild(container);
|
|
112
|
+
root = createRoot(container);
|
|
113
|
+
}
|
|
114
|
+
ensureComponentStyles('loading', LOADING_CSS, getStyleKit());
|
|
115
|
+
const { request } = state;
|
|
116
|
+
const opacity = Math.min(1, Math.max(0, request.maskOpacity));
|
|
117
|
+
root.render(h('div', { className: loadingOverlayClass(request.position) }, request.mask
|
|
118
|
+
? h('div', {
|
|
119
|
+
className: 'dshpc-loading-overlay__mask',
|
|
120
|
+
style: { background: `rgba(0, 0, 0, ${opacity})` },
|
|
121
|
+
})
|
|
122
|
+
: null, request.variant === 'block'
|
|
123
|
+
? h(LoadingBlock, { text: request.text, translate: request.translate })
|
|
124
|
+
: h(LoadingToast, { text: request.text, translate: request.translate })));
|
|
125
|
+
}
|
|
126
|
+
return {
|
|
127
|
+
show(request) {
|
|
128
|
+
const handle = slot.show(request);
|
|
129
|
+
flush();
|
|
130
|
+
return {
|
|
131
|
+
close() {
|
|
132
|
+
handle.close();
|
|
133
|
+
flush();
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
},
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* 命令式加载提示(全局唯一浮层,**不自动消失**)。所有插件、所有位置调用都落在**同一处**
|
|
141
|
+
* (默认屏幕下方居中,与 Toast 同屏位),且屏幕上永远只有一张卡 —— 后一次调用直接顶掉
|
|
142
|
+
* 前一次,被顶掉那次的句柄再 `close()` 是空操作。收起只能靠自己调 `close()`。
|
|
143
|
+
*
|
|
144
|
+
* ```ts
|
|
145
|
+
* const loading = showLoading({ text: '正在保存…', mask: true, maskOpacity: 0.3 })
|
|
146
|
+
* await save()
|
|
147
|
+
* loading.close()
|
|
148
|
+
* ```
|
|
149
|
+
*
|
|
150
|
+
* 无 `document` 时静默返回空句柄(Node 单测 / SSR 不炸)。
|
|
151
|
+
*/
|
|
152
|
+
export function showLoading(opts) {
|
|
153
|
+
if (typeof document === 'undefined')
|
|
154
|
+
return { close: () => { } };
|
|
155
|
+
return claimLoadingHost(createLoadingHost).show({
|
|
156
|
+
text: opts?.text,
|
|
157
|
+
variant: opts?.variant ?? 'toast',
|
|
158
|
+
position: opts?.position ?? 'bottom-center',
|
|
159
|
+
mask: opts?.mask === true,
|
|
160
|
+
maskOpacity: opts?.maskOpacity ?? 0,
|
|
161
|
+
translate: opts?.translate,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=Loading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Loading.js","sourceRoot":"","sources":["../../../src/ui/feedback/Loading.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { createElement as h, type ReactNode } from 'react';
|
|
2
|
+
import { type Translate } from '../../utils/i18n.js';
|
|
3
|
+
/** 弹窗尺寸档:sm≈确认框 / md(默认) / lg 大窗。 */
|
|
4
|
+
export type ModalSize = 'sm' | 'md' | 'lg';
|
|
5
|
+
export interface ModalProps {
|
|
6
|
+
/** 头部左侧图标位(可不传)。 */
|
|
7
|
+
icon?: ReactNode;
|
|
8
|
+
title?: ReactNode;
|
|
9
|
+
/**
|
|
10
|
+
* 标题**下方**的副标题行(等宽小字;会话预览的 sessionId 就放这里 —— 用户 2026-10-22:
|
|
11
|
+
* 标识属于标题区,不占正文)。与标题同宽、可换行。
|
|
12
|
+
*/
|
|
13
|
+
subtitle?: ReactNode;
|
|
14
|
+
/** 标题右侧小块:数字 / 标签(ReactNode;demo 用 Chip 演示)。 */
|
|
15
|
+
headerExtra?: ReactNode;
|
|
16
|
+
/** 头部右侧动作区:关闭钮之外的更多按钮(ReactNode)。 */
|
|
17
|
+
headerActions?: ReactNode;
|
|
18
|
+
/** 关闭回调;不传则 ✕ 不显示(必须自己给关闭路径)。 */
|
|
19
|
+
onClose?: () => void;
|
|
20
|
+
/** 是否显示右上角 ✕(默认 = `onClose` 是否传入)。确认框传 false 即可去掉小叉。 */
|
|
21
|
+
closable?: boolean;
|
|
22
|
+
/** 点遮罩是否关闭(默认 true;误触代价大的场景设 false)。 */
|
|
23
|
+
closeOnMask?: boolean;
|
|
24
|
+
/** 按 Esc 是否关闭(默认 true)。 */
|
|
25
|
+
escClose?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* 有异步在跑(如 footer 里的 `Button` 正在 loading):为真时遮罩 / Esc / ✕ **三条关闭路径全失效**,
|
|
28
|
+
* 内容照常渲染。与 `closeOnMask` / `escClose` / `closable` 是"与"关系 —— 它是否决项,不替代它们。
|
|
29
|
+
*/
|
|
30
|
+
busy?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* **锁死全部交互**(与 loading 解耦:按钮转不转圈是另一回事)。为真时:
|
|
33
|
+
* · 面板内的核心控件各自按**自己的禁用态**渲染(灰掉、点不动、Tab 跳过);
|
|
34
|
+
* · 面板上盖一层**全透明**的点击层,消费方自绘的元素也跟着点不动,鼠标是禁止手势;
|
|
35
|
+
* · 遮罩 / Esc / ✕ 三条关闭路径同时失效。
|
|
36
|
+
*
|
|
37
|
+
* 一律只做「或」,**永不写回调用方的 `disabled`**:本来禁用的解锁后照样禁用,锁定期间你把它改成
|
|
38
|
+
* 能用 / 禁用,解锁后也照你的。不压任何灰色遮罩 —— 整块蒙一层会让人以为界面坏了。
|
|
39
|
+
* 受控项,不落内部 state:关掉重开自然回到未锁。
|
|
40
|
+
*/
|
|
41
|
+
locked?: boolean;
|
|
42
|
+
/** 尺寸档:sm=小确认框家族 / md·lg=大弹窗家族;也可用 width/height 精确覆盖。 */
|
|
43
|
+
size?: ModalSize;
|
|
44
|
+
/** 面板宽度(默认随 size:sm 360px / md 720px / lg 1120px,均带视口兜底)。 */
|
|
45
|
+
width?: string;
|
|
46
|
+
/** 面板高度(默认仅 lg 有:calc(100% - 80px),同兄弟项目大弹窗)。 */
|
|
47
|
+
height?: string;
|
|
48
|
+
/** 面板最大宽度 / 最大高度覆盖(不传走 size 默认)。 */
|
|
49
|
+
maxWidth?: string;
|
|
50
|
+
maxHeight?: string;
|
|
51
|
+
/** 不渲染头部(沉浸式 / 无标题场景)。 */
|
|
52
|
+
hideHeader?: boolean;
|
|
53
|
+
footer?: ReactNode;
|
|
54
|
+
/**
|
|
55
|
+
* footer **左侧**的一行过程提示(换字即翻牌,太长省略、hover 跑马灯)。
|
|
56
|
+
* 不传 = 不占位、与以前完全一样;传了就自动出现(footer 也可不给,它会自己撑起底栏)。
|
|
57
|
+
* 换文案只改这个值,动效由 `FlipText` 负责。
|
|
58
|
+
*/
|
|
59
|
+
notice?: string;
|
|
60
|
+
/** footer 上面那条分隔线(默认 true)。传 false 关闭;sm 确认框家族本来就没有。 */
|
|
61
|
+
footerDivider?: boolean;
|
|
62
|
+
/** 追加 class(只允许补布局 / 视觉修饰,不许覆盖皮肤)。 */
|
|
63
|
+
className?: string;
|
|
64
|
+
children?: ReactNode;
|
|
65
|
+
translate?: Translate;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* 模态弹窗(自绘 overlay,**不用 react-dom 的 portal**,避免多一个必需依赖)。
|
|
69
|
+
*
|
|
70
|
+
* 定位:它是**呈现方式**,不是内容 —— 会话预览这类功能模块要用弹窗时用它来承载(需求文档 §4)。
|
|
71
|
+
*/
|
|
72
|
+
export declare function Modal(props: ModalProps): ReturnType<typeof h>;
|
|
73
|
+
//# sourceMappingURL=Modal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/ui/feedback/Modal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,IAAI,CAAC,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC1D,OAAO,EAAK,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAOvD,qCAAqC;AACrC,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAE1C,MAAM,WAAW,UAAU;IACzB,oBAAoB;IACpB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,gDAAgD;IAChD,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,qCAAqC;IACrC,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,wCAAwC;IACxC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IACd;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,yDAAyD;IACzD,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,0BAA0B;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,wDAAwD;IACxD,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CAwF7D"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { createElement as h } from 'react';
|
|
2
|
+
import { t } from '../../utils/i18n.js';
|
|
3
|
+
import { ensureComponentStyles } from '../infra/css.js';
|
|
4
|
+
import { FEEDBACK_CSS } from './feedback-css.js';
|
|
5
|
+
import { OverlayHead, OverlayLockCatcher, OverlayLockedProvider, OverlayMask, useEscapeClose, useLockGuards } from '../infra/overlay.js';
|
|
6
|
+
import { PanelSurface } from '../infra/panel.js';
|
|
7
|
+
import { FlipText } from '../display/FlipText.js';
|
|
8
|
+
/**
|
|
9
|
+
* 模态弹窗(自绘 overlay,**不用 react-dom 的 portal**,避免多一个必需依赖)。
|
|
10
|
+
*
|
|
11
|
+
* 定位:它是**呈现方式**,不是内容 —— 会话预览这类功能模块要用弹窗时用它来承载(需求文档 §4)。
|
|
12
|
+
*/
|
|
13
|
+
export function Modal(props) {
|
|
14
|
+
ensureComponentStyles('feedback', FEEDBACK_CSS);
|
|
15
|
+
const tt = props.translate ?? t;
|
|
16
|
+
// busy / locked 都是否决项:三条关闭路径一起封死(✕ 见下面 showClose)。
|
|
17
|
+
// locked 比 busy 多管一层:面板整块不可交互(inert)。
|
|
18
|
+
const busy = props.busy === true;
|
|
19
|
+
const locked = props.locked === true;
|
|
20
|
+
const denyClose = busy || locked;
|
|
21
|
+
const closeOnMask = !denyClose && props.closeOnMask !== false;
|
|
22
|
+
useEscapeClose(!denyClose && props.escClose !== false, denyClose ? undefined : props.onClose);
|
|
23
|
+
useLockGuards(locked);
|
|
24
|
+
// 空串等同于没给:底栏那块地方复用给下一轮时,传 "" 就把上一句清干净、不留占位。
|
|
25
|
+
const notice = props.notice === '' ? undefined : props.notice;
|
|
26
|
+
// 默认宽高(兄弟项目真值:小框 360px(task-list.tsx:457)/ 大弹窗 min(1120px,100vw-32px) × calc(100%-80px)(archive-session-css.ts:42))。
|
|
27
|
+
// 宽度用 `100%`(相对遮罩盒)而不是 `100vw`:遮罩已按右侧分栏让位(见 feedback.css),
|
|
28
|
+
// 用 `100vw` 算出来的宽在分栏在场时会溢出到分栏上,等于白让(用户 2026-10-22)。
|
|
29
|
+
const sizeStyle = {
|
|
30
|
+
sm: { width: '360px', maxWidth: 'calc(100% - 48px)' },
|
|
31
|
+
md: { width: 'min(720px, calc(100% - 32px))', maxHeight: '86vh' },
|
|
32
|
+
lg: { width: 'min(1120px, calc(100% - 32px))', height: 'calc(100% - 80px)' },
|
|
33
|
+
};
|
|
34
|
+
const s = sizeStyle[props.size ?? 'md'];
|
|
35
|
+
const showClose = props.closable !== false && props.onClose !== undefined && !denyClose;
|
|
36
|
+
const showHeader = props.hideHeader !== true &&
|
|
37
|
+
(props.icon !== undefined ||
|
|
38
|
+
props.title !== undefined ||
|
|
39
|
+
props.subtitle !== undefined ||
|
|
40
|
+
props.headerExtra !== undefined ||
|
|
41
|
+
props.headerActions !== undefined ||
|
|
42
|
+
showClose);
|
|
43
|
+
return h(OverlayMask, {
|
|
44
|
+
kind: 'center',
|
|
45
|
+
closeOnMask,
|
|
46
|
+
onClose: denyClose ? undefined : props.onClose,
|
|
47
|
+
// inert 子树不参与命中测试,鼠标落到遮罩上 —— 禁止手势得挂在遮罩这层才看得见。
|
|
48
|
+
attrs: locked ? { 'data-dshpc-locked': '' } : undefined,
|
|
49
|
+
}, h(OverlayLockedProvider, { value: locked },
|
|
50
|
+
// 表面(底色/描边/圆角/阴影)来自 panel.css 的 modal 档;`.dshpc-modal` 只剩家族布局,
|
|
51
|
+
// 且继续作为既有类名别名存在(消费方写在它上面的覆盖不受影响)。
|
|
52
|
+
h(PanelSurface, {
|
|
53
|
+
tier: 'modal',
|
|
54
|
+
className: `dshpc-modal${props.size ? ` dshpc-modal--${props.size}` : ''}${locked ? ' dshpc-modal--locked dshpc-locked' : ''}${props.className !== undefined && props.className !== '' ? ` ${props.className}` : ''}`,
|
|
55
|
+
style: {
|
|
56
|
+
width: props.width ?? s.width,
|
|
57
|
+
maxWidth: props.maxWidth ?? s.maxWidth,
|
|
58
|
+
maxHeight: props.maxHeight ?? s.maxHeight,
|
|
59
|
+
height: props.height ?? s.height,
|
|
60
|
+
},
|
|
61
|
+
stopPropagation: true,
|
|
62
|
+
},
|
|
63
|
+
// 头部与遮罩都是浮层公共件(overlay.ts),SideSheet 用的是同一套。
|
|
64
|
+
showHeader
|
|
65
|
+
? h(OverlayHead, {
|
|
66
|
+
icon: props.icon,
|
|
67
|
+
title: props.title,
|
|
68
|
+
subtitle: props.subtitle,
|
|
69
|
+
extra: props.headerExtra,
|
|
70
|
+
actions: props.headerActions,
|
|
71
|
+
closeLabel: tt('modalClose'),
|
|
72
|
+
onClose: showClose ? props.onClose : undefined,
|
|
73
|
+
})
|
|
74
|
+
: null,
|
|
75
|
+
// body 是**唯一滚动容器**:内距归它、滚动条归它、滚动条贴面板右缘;
|
|
76
|
+
// 内容只管按流排,不许自己定高、不许自己再开滚动条(用户 2026-10-22 定的口径)。
|
|
77
|
+
h('div', { className: 'dshpc-modal__body' }, props.children ?? null), props.footer === undefined && notice === undefined
|
|
78
|
+
? null
|
|
79
|
+
: h('div', { className: `dshpc-modal__foot${props.footerDivider === false ? ' dshpc-modal__foot--bare' : ''}` }, notice === undefined ? null : h(FlipText, { text: notice, className: 'dshpc-modal__notice', sweep: true }), props.footer),
|
|
80
|
+
// 透明点击层兜住消费方自绘的元素;核心控件此时已各自是真 disabled。
|
|
81
|
+
locked ? h(OverlayLockCatcher) : null)));
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=Modal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../../src/ui/feedback/Modal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 侧边抽屉(SideSheet)—— 从屏幕左/右缘滑入的**覆盖式**浮层。
|
|
3
|
+
*
|
|
4
|
+
* 与 PanelDock 的关系(用户 2026-11-02 定):**皮肤一模一样**(同一份 side-panel.css:
|
|
5
|
+
* 头部、拖拽条、关闭钮、背景阴影、入场动画),宽度也能拖;差别只有两点:
|
|
6
|
+
* · PanelDock 是布局成员(sticky 占宽、挤窄主区,调用方必须给挂载点);
|
|
7
|
+
* · SideSheet 是浮层(absolute 贴边、盖住页面,自铺遮罩,不需要挂载点);
|
|
8
|
+
* · SideSheet **没有收起**(没有耳朵、没有收起钮)—— 关就是关。
|
|
9
|
+
*
|
|
10
|
+
* 开关行为与 Modal 一致:渲染即显示(`{open && <SideSheet … />}`)、点遮罩 / Esc / ✕ 都能关,
|
|
11
|
+
* 三者都可关掉;遮罩与 Esc 判定走 overlay.ts 的公共件。
|
|
12
|
+
*/
|
|
13
|
+
import { type ReactNode } from 'react';
|
|
14
|
+
import { type Translate } from '../../utils/i18n.js';
|
|
15
|
+
/** 从哪一侧滑入。默认 `left`。 */
|
|
16
|
+
export type SideSheetSide = 'left' | 'right';
|
|
17
|
+
export interface SideSheetProps {
|
|
18
|
+
/** 贴哪条边、从哪边滑入(默认 `left`)。 */
|
|
19
|
+
side?: SideSheetSide;
|
|
20
|
+
/** 内置头的标题。 */
|
|
21
|
+
title?: ReactNode;
|
|
22
|
+
/** 标题前的图标位。 */
|
|
23
|
+
icon?: ReactNode;
|
|
24
|
+
/** 标题**右侧**的任意内容(按钮、标签、下拉……)。 */
|
|
25
|
+
extra?: ReactNode;
|
|
26
|
+
/**
|
|
27
|
+
* 整块替换头部:
|
|
28
|
+
* · 不传 ⇒ 内置头(`icon` + `title` + `extra`)
|
|
29
|
+
* · `null` ⇒ 不要头部(关闭钮自动浮到右上角)
|
|
30
|
+
* · 其他 ReactNode ⇒ 你的头部,库不加内边距/边框/背景
|
|
31
|
+
*/
|
|
32
|
+
header?: ReactNode | null;
|
|
33
|
+
/** 是否显示关闭钮(默认 true)。 */
|
|
34
|
+
closable?: boolean;
|
|
35
|
+
/** 自定义关闭图标(默认 ✕)。 */
|
|
36
|
+
closeIcon?: ReactNode;
|
|
37
|
+
/** 关闭回调;不传则不出关闭钮(必须自己给关闭路径)。 */
|
|
38
|
+
onClose?: () => void;
|
|
39
|
+
/**
|
|
40
|
+
* 受控开关(默认 true)。传 `false` 时先播收起动画再卸载 —— 想让关闭有动效就常驻渲染它、只切这个布尔;
|
|
41
|
+
* 继续用 `{open && <SideSheet/>}` 的老写法也能跑,只是没有收起动画(一卸载就没 DOM 了)。
|
|
42
|
+
*/
|
|
43
|
+
open?: boolean;
|
|
44
|
+
/** 点遮罩是否关闭(默认 true)。 */
|
|
45
|
+
closeOnMask?: boolean;
|
|
46
|
+
/** 按 Esc 是否关闭(默认 true)。 */
|
|
47
|
+
escClose?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* 有异步在跑(如 footer 里的 `Button` 正在 loading):为真时遮罩 / Esc / ✕ **三条关闭路径全失效**,
|
|
50
|
+
* 内容照常渲染。与 `closeOnMask` / `escClose` / `closable` 是"与"关系 —— 它是否决项,不替代它们。
|
|
51
|
+
*/
|
|
52
|
+
busy?: boolean;
|
|
53
|
+
/** 锁死全部交互(含义见 `Modal.locked`):抽屉整块点不动、Tab 进不去、三条关闭路径同时失效。 */
|
|
54
|
+
locked?: boolean;
|
|
55
|
+
/** **初始**宽度(px,默认 460,与 PanelDock 同档);拖过之后以拖出来的为准。 */
|
|
56
|
+
width?: number;
|
|
57
|
+
/** 可拖宽的下限(默认 320)。 */
|
|
58
|
+
minWidth?: number;
|
|
59
|
+
/** 可拖宽的上限;不传 = 只受遮罩盒宽度约束。 */
|
|
60
|
+
maxWidth?: number;
|
|
61
|
+
/** 能否拖宽(默认 true)。 */
|
|
62
|
+
resizable?: boolean;
|
|
63
|
+
footer?: ReactNode;
|
|
64
|
+
/** 底栏左侧的一行过程提示(换字即翻牌,超长省略 + hover 跑马灯)。不传 = 不占位。 */
|
|
65
|
+
notice?: string;
|
|
66
|
+
children?: ReactNode;
|
|
67
|
+
translate?: Translate;
|
|
68
|
+
}
|
|
69
|
+
export declare function SideSheet(props: SideSheetProps): ReactNode;
|
|
70
|
+
//# sourceMappingURL=SideSheet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SideSheet.d.ts","sourceRoot":"","sources":["../../../src/ui/feedback/SideSheet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAmD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACvF,OAAO,EAAK,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAQvD,wBAAwB;AACxB,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,CAAA;AAE5C,MAAM,WAAW,cAAc;IAC7B,6BAA6B;IAC7B,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,cAAc;IACd,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,eAAe;IACf,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,iCAAiC;IACjC,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IACzB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,qBAAqB;IACrB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,wBAAwB;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,6DAA6D;IAC7D,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sBAAsB;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,qBAAqB;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,SAAS,CAAA;IACpB,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CA8I1D"}
|