@botiverse/raft-ui 0.51.0 → 0.52.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/CHANGELOG.md +20 -0
- package/dist/components/activity-inbox/activity-inbox-shell.d.mts +12 -0
- package/dist/components/activity-inbox/activity-inbox-shell.mjs +39 -0
- package/dist/components/activity-inbox/activity-inbox-shell.recipe.mjs +14 -0
- package/dist/components/activity-inbox/activity-inbox-sidebar.d.mts +6 -0
- package/dist/components/activity-inbox/activity-inbox-sidebar.mjs +22 -0
- package/dist/components/activity-inbox/activity-inbox-sidebar.recipe.mjs +22 -0
- package/dist/components/activity-inbox/activity-inbox-toolbar.d.mts +9 -0
- package/dist/components/activity-inbox/activity-inbox-toolbar.mjs +29 -0
- package/dist/components/activity-inbox/activity-inbox-toolbar.recipe.mjs +14 -0
- package/dist/components/activity-inbox/index.d.mts +4 -0
- package/dist/components/alert-dialog/alert-dialog.d.mts +41 -0
- package/dist/components/alert-dialog/alert-dialog.mjs +163 -0
- package/dist/components/alert-dialog/index.d.mts +2 -0
- package/dist/components/announcement-dialog/announcement-dialog.d.mts +18 -0
- package/dist/components/announcement-dialog/announcement-dialog.mjs +121 -0
- package/dist/components/announcement-dialog/index.d.mts +3 -0
- package/dist/components/app-rail/app-rail.d.mts +31 -0
- package/dist/components/app-rail/app-rail.mjs +126 -0
- package/dist/components/app-rail/app-rail.recipe.mjs +47 -0
- package/dist/components/app-rail/index.d.mts +2 -0
- package/dist/components/app-shell/app-shell.d.mts +27 -0
- package/dist/components/app-shell/app-shell.mjs +217 -0
- package/dist/components/app-shell/index.d.mts +2 -0
- package/dist/components/avatar/avatar.d.mts +169 -0
- package/dist/components/avatar/avatar.mjs +298 -0
- package/dist/components/avatar/index.d.mts +2 -0
- package/dist/components/badge/badge.d.mts +89 -0
- package/dist/components/badge/badge.mjs +203 -0
- package/dist/components/badge/index.d.mts +2 -0
- package/dist/components/banner/banner.d.mts +141 -0
- package/dist/components/banner/banner.mjs +228 -0
- package/dist/components/banner/index.d.mts +2 -0
- package/dist/components/button/button.d.mts +257 -0
- package/dist/components/button/button.mjs +177 -0
- package/dist/components/button/index.d.mts +2 -0
- package/dist/components/card/card.d.mts +21 -0
- package/dist/components/card/card.mjs +114 -0
- package/dist/components/card/card.recipe.d.mts +105 -0
- package/dist/components/card/card.recipe.mjs +67 -0
- package/dist/components/card/index.d.mts +2 -0
- package/dist/components/checkbox/checkbox-indicator.d.mts +92 -0
- package/dist/components/checkbox/checkbox-indicator.mjs +61 -0
- package/dist/components/checkbox/checkbox.d.mts +9 -0
- package/dist/components/checkbox/checkbox.mjs +40 -0
- package/dist/components/checkbox/index.d.mts +3 -0
- package/dist/components/choice-list/choice-list.d.mts +103 -0
- package/dist/components/choice-list/choice-list.mjs +301 -0
- package/dist/components/choice-list/choice-list.recipe.mjs +44 -0
- package/dist/components/choice-list/index.d.mts +2 -0
- package/dist/components/code-block/code-block.d.mts +30 -0
- package/dist/components/code-block/code-block.mjs +151 -0
- package/dist/components/code-block/code-block.recipe.mjs +47 -0
- package/dist/components/code-block/index.d.mts +2 -0
- package/dist/components/combobox/combobox.d.mts +69 -0
- package/dist/components/combobox/combobox.mjs +438 -0
- package/dist/components/combobox/index.d.mts +2 -0
- package/dist/components/combobox-select/combobox-select.d.mts +4 -0
- package/dist/components/combobox-select/combobox-select.list-side.mjs +16 -0
- package/dist/components/combobox-select/combobox-select.mjs +473 -0
- package/dist/components/combobox-select/combobox-select.options.mjs +21 -0
- package/dist/components/combobox-select/combobox-select.types.d.mts +83 -0
- package/dist/components/combobox-select/index.d.mts +3 -0
- package/dist/components/comment/comment-card.d.mts +40 -0
- package/dist/components/comment/comment-card.mjs +83 -0
- package/dist/components/comment/comment-entry.d.mts +24 -0
- package/dist/components/comment/comment-entry.mjs +75 -0
- package/dist/components/comment/comment-highlight.d.mts +18 -0
- package/dist/components/comment/comment-highlight.mjs +33 -0
- package/dist/components/comment/comment-margin-layout.d.mts +32 -0
- package/dist/components/comment/comment-margin-layout.mjs +44 -0
- package/dist/components/comment/comment-margin.d.mts +29 -0
- package/dist/components/comment/comment-margin.mjs +164 -0
- package/dist/components/comment/comment-marker.d.mts +16 -0
- package/dist/components/comment/comment-marker.mjs +24 -0
- package/dist/components/comment/comment.recipe.mjs +58 -0
- package/dist/components/comment/index.d.mts +8 -0
- package/dist/components/comment/use-comment-margin-fits.d.mts +16 -0
- package/dist/components/comment/use-comment-margin-fits.mjs +34 -0
- package/dist/components/composer/composer-attachment.recipe.mjs +85 -0
- package/dist/components/composer/composer-attachments-scroll-area.d.mts +5 -0
- package/dist/components/composer/composer-attachments-scroll-area.mjs +93 -0
- package/dist/components/composer/composer-attachments.d.mts +27 -0
- package/dist/components/composer/composer-attachments.mjs +147 -0
- package/dist/components/composer/composer-drop-overlay.d.mts +9 -0
- package/dist/components/composer/composer-drop-overlay.mjs +60 -0
- package/dist/components/composer/composer-drop-overlay.recipe.mjs +23 -0
- package/dist/components/composer/composer-root.d.mts +5 -0
- package/dist/components/composer/composer-root.mjs +18 -0
- package/dist/components/composer/composer-suggestion-list.d.mts +139 -0
- package/dist/components/composer/composer-suggestion-list.mjs +160 -0
- package/dist/components/composer/composer-toolbar-label.d.mts +5 -0
- package/dist/components/composer/composer-toolbar-label.mjs +24 -0
- package/dist/components/composer/composer.d.mts +20 -0
- package/dist/components/composer/composer.mjs +88 -0
- package/dist/components/composer/composer.recipe.mjs +29 -0
- package/dist/components/composer/index.d.mts +10 -0
- package/dist/components/composer/sortable-composer-attachments.d.mts +37 -0
- package/dist/components/composer/sortable-composer-attachments.mjs +247 -0
- package/dist/components/composer/use-composer-suggestions.d.mts +83 -0
- package/dist/components/composer/use-composer-suggestions.mjs +207 -0
- package/dist/components/context-menu/context-menu.d.mts +53 -0
- package/dist/components/context-menu/context-menu.mjs +275 -0
- package/dist/components/context-menu/index.d.mts +2 -0
- package/dist/components/conversation-panel/conversation-panel-empty-state.d.mts +9 -0
- package/dist/components/conversation-panel/conversation-panel-empty-state.mjs +57 -0
- package/dist/components/conversation-panel/conversation-panel.d.mts +20 -0
- package/dist/components/conversation-panel/conversation-panel.mjs +63 -0
- package/dist/components/conversation-panel/conversation-panel.recipe.mjs +15 -0
- package/dist/components/conversation-panel/index.d.mts +3 -0
- package/dist/components/copyable-code/copyable-code.d.mts +72 -0
- package/dist/components/copyable-code/copyable-code.mjs +153 -0
- package/dist/components/copyable-code/index.d.mts +2 -0
- package/dist/components/description-list/description-list.d.mts +59 -0
- package/dist/components/description-list/description-list.mjs +96 -0
- package/dist/components/description-list/index.d.mts +2 -0
- package/dist/components/dialog/dialog-sheet-context.mjs +58 -0
- package/dist/components/dialog/dialog-sheet.d.mts +31 -0
- package/dist/components/dialog/dialog-sheet.mjs +194 -0
- package/dist/components/dialog/dialog.d.mts +85 -0
- package/dist/components/dialog/dialog.mjs +371 -0
- package/dist/components/dialog/index.d.mts +3 -0
- package/dist/components/drag/drag-announcements.d.mts +72 -0
- package/dist/components/drag/drag-announcements.mjs +115 -0
- package/dist/components/drag/drag-lift.d.mts +100 -0
- package/dist/components/drag/drag-lift.mjs +276 -0
- package/dist/components/drag/drag-lists.d.mts +98 -0
- package/dist/components/drag/drag-lists.mjs +258 -0
- package/dist/components/drag/drag-sensors.d.mts +87 -0
- package/dist/components/drag/drag-sensors.mjs +169 -0
- package/dist/components/drag/drag.recipe.d.mts +7 -0
- package/dist/components/drag/drag.recipe.mjs +30 -0
- package/dist/components/drag/drop-placeholder.d.mts +41 -0
- package/dist/components/drag/drop-placeholder.mjs +161 -0
- package/dist/components/drag/index.d.mts +8 -0
- package/dist/components/drawer/drawer.d.mts +34 -0
- package/dist/components/drawer/drawer.mjs +202 -0
- package/dist/components/drawer/drawer.recipe.mjs +175 -0
- package/dist/components/drawer/index.d.mts +2 -0
- package/dist/components/dropdown-menu/dropdown-menu.d.mts +62 -0
- package/dist/components/dropdown-menu/dropdown-menu.mjs +319 -0
- package/dist/components/dropdown-menu/index.d.mts +2 -0
- package/dist/components/ellipsis/ellipsis.d.mts +55 -0
- package/dist/components/ellipsis/ellipsis.mjs +320 -0
- package/dist/components/ellipsis/index.d.mts +3 -0
- package/dist/components/empty-state/empty-state.d.mts +15 -0
- package/dist/components/empty-state/empty-state.mjs +102 -0
- package/dist/components/empty-state/index.d.mts +2 -0
- package/dist/components/field/field.d.mts +79 -0
- package/dist/components/field/field.mjs +100 -0
- package/dist/components/field/index.d.mts +2 -0
- package/dist/components/file-preview/file-preview.d.mts +17 -0
- package/dist/components/file-preview/file-preview.mjs +210 -0
- package/dist/components/file-preview/file-preview.recipe.d.mts +99 -0
- package/dist/components/file-preview/file-preview.recipe.mjs +39 -0
- package/dist/components/file-preview/index.d.mts +2 -0
- package/dist/components/files/files.d.mts +35 -0
- package/dist/components/files/files.mjs +69 -0
- package/dist/components/files/files.recipe.mjs +40 -0
- package/dist/components/files/index.d.mts +2 -0
- package/dist/components/filter-chip/filter-chip.d.mts +25 -0
- package/dist/components/filter-chip/filter-chip.mjs +59 -0
- package/dist/components/filter-chip/index.d.mts +2 -0
- package/dist/components/float-button/float-button.d.mts +36 -0
- package/dist/components/float-button/float-button.mjs +116 -0
- package/dist/components/float-button/float-button.position.d.mts +6 -0
- package/dist/components/float-button/float-button.position.mjs +41 -0
- package/dist/components/float-button/index.d.mts +3 -0
- package/dist/components/form-section/form-section.d.mts +16 -0
- package/dist/components/form-section/form-section.mjs +53 -0
- package/dist/components/form-section/index.d.mts +2 -0
- package/dist/components/icon-tile/icon-tile.d.mts +97 -0
- package/dist/components/icon-tile/icon-tile.mjs +49 -0
- package/dist/components/icon-tile/index.d.mts +2 -0
- package/dist/components/icons/action-icons.d.mts +34 -0
- package/dist/components/icons/action-icons.mjs +383 -0
- package/dist/components/icons/conversation-icons.d.mts +12 -0
- package/dist/components/icons/conversation-icons.mjs +147 -0
- package/dist/components/icons/index.d.mts +4 -0
- package/dist/components/icons/object-icons.d.mts +6 -0
- package/dist/components/icons/object-icons.mjs +27 -0
- package/dist/components/inbox-item/inbox-item-leading-badge.d.mts +13 -0
- package/dist/components/inbox-item/inbox-item-leading-badge.mjs +27 -0
- package/dist/components/inbox-item/inbox-item-skeleton.d.mts +46 -0
- package/dist/components/inbox-item/inbox-item-skeleton.mjs +89 -0
- package/dist/components/inbox-item/inbox-item-skeleton.recipe.mjs +20 -0
- package/dist/components/inbox-item/inbox-item.d.mts +71 -0
- package/dist/components/inbox-item/inbox-item.mjs +276 -0
- package/dist/components/inbox-item/inbox-item.recipe.mjs +137 -0
- package/dist/components/inbox-item/index.d.mts +2 -0
- package/dist/components/inline-code/index.d.mts +2 -0
- package/dist/components/inline-code/inline-code.d.mts +8 -0
- package/dist/components/inline-code/inline-code.mjs +30 -0
- package/dist/components/input/index.d.mts +2 -0
- package/dist/components/input/input.d.mts +16 -0
- package/dist/components/input/input.mjs +20 -0
- package/dist/components/input/input.recipe.mjs +12 -0
- package/dist/components/input-group/index.d.mts +2 -0
- package/dist/components/input-group/input-group.d.mts +93 -0
- package/dist/components/input-group/input-group.mjs +178 -0
- package/dist/components/kbd/index.d.mts +2 -0
- package/dist/components/kbd/kbd.d.mts +7 -0
- package/dist/components/kbd/kbd.mjs +34 -0
- package/dist/components/label/index.d.mts +2 -0
- package/dist/components/label/label.d.mts +60 -0
- package/dist/components/label/label.mjs +75 -0
- package/dist/components/legacy-task-panel/index.d.mts +2 -0
- package/dist/components/legacy-task-panel/legacy-task-panel.d.mts +57 -0
- package/dist/components/legacy-task-panel/legacy-task-panel.mjs +234 -0
- package/dist/components/legacy-task-panel/legacy-task-panel.recipe.mjs +30 -0
- package/dist/components/lightbox/index.d.mts +2 -0
- package/dist/components/lightbox/lightbox.d.mts +55 -0
- package/dist/components/lightbox/lightbox.mjs +336 -0
- package/dist/components/list-row/index.d.mts +2 -0
- package/dist/components/list-row/list-row-skeleton.d.mts +21 -0
- package/dist/components/list-row/list-row-skeleton.mjs +43 -0
- package/dist/components/list-row/list-row.d.mts +66 -0
- package/dist/components/list-row/list-row.mjs +167 -0
- package/dist/components/list-row/list-row.recipe.d.mts +126 -0
- package/dist/components/list-row/list-row.recipe.mjs +94 -0
- package/dist/components/live-agent-activity-bar/index.d.mts +2 -0
- package/dist/components/live-agent-activity-bar/live-agent-activity-bar.d.mts +25 -0
- package/dist/components/live-agent-activity-bar/live-agent-activity-bar.mjs +107 -0
- package/dist/components/logo/index.d.mts +2 -0
- package/dist/components/logo/raft-logo.d.mts +9 -0
- package/dist/components/logo/raft-logo.mjs +63 -0
- package/dist/components/markdown/index.d.mts +2 -0
- package/dist/components/markdown/markdown-parts.d.mts +54 -0
- package/dist/components/markdown/markdown-parts.mjs +153 -0
- package/dist/components/markdown/markdown.recipe.mjs +77 -0
- package/dist/components/message-action-card/index.d.mts +2 -0
- package/dist/components/message-action-card/message-action-card-content.recipe.mjs +50 -0
- package/dist/components/message-action-card/message-action-card.d.mts +95 -0
- package/dist/components/message-action-card/message-action-card.mjs +298 -0
- package/dist/components/message-action-card/message-action-card.recipe.mjs +47 -0
- package/dist/components/message-attachment/index.d.mts +5 -0
- package/dist/components/message-attachment/message-attachment.d.mts +27 -0
- package/dist/components/message-attachment/message-attachment.mjs +129 -0
- package/dist/components/message-attachment/message-attachment.recipe.mjs +36 -0
- package/dist/components/message-attachment/message-image-gallery-rows.d.mts +47 -0
- package/dist/components/message-attachment/message-image-gallery-rows.mjs +55 -0
- package/dist/components/message-attachment/message-image-gallery.d.mts +32 -0
- package/dist/components/message-attachment/message-image-gallery.mjs +105 -0
- package/dist/components/message-attachment/message-image-gallery.recipe.mjs +61 -0
- package/dist/components/message-attachment/message-video-preview.d.mts +19 -0
- package/dist/components/message-attachment/message-video-preview.mjs +92 -0
- package/dist/components/message-attachment/message-video-preview.recipe.mjs +33 -0
- package/dist/components/message-embed/index.d.mts +2 -0
- package/dist/components/message-embed/message-embed.d.mts +12 -0
- package/dist/components/message-embed/message-embed.mjs +42 -0
- package/dist/components/message-embed/message-embed.recipe.mjs +14 -0
- package/dist/components/message-forwarded-bundle/index.d.mts +2 -0
- package/dist/components/message-forwarded-bundle/message-forwarded-bundle.d.mts +92 -0
- package/dist/components/message-forwarded-bundle/message-forwarded-bundle.mjs +324 -0
- package/dist/components/message-forwarded-bundle/message-forwarded-bundle.recipe.mjs +81 -0
- package/dist/components/message-item/index.d.mts +13 -0
- package/dist/components/message-item/message-footer.d.mts +20 -0
- package/dist/components/message-item/message-footer.mjs +54 -0
- package/dist/components/message-item/message-footer.recipe.mjs +46 -0
- package/dist/components/message-item/message-item-content.d.mts +22 -0
- package/dist/components/message-item/message-item-content.mjs +81 -0
- package/dist/components/message-item/message-item-delegated.d.mts +38 -0
- package/dist/components/message-item/message-item-delegated.mjs +72 -0
- package/dist/components/message-item/message-item-gutter.d.mts +10 -0
- package/dist/components/message-item/message-item-gutter.mjs +41 -0
- package/dist/components/message-item/message-item-header.d.mts +29 -0
- package/dist/components/message-item/message-item-header.mjs +107 -0
- package/dist/components/message-item/message-item-label.mjs +113 -0
- package/dist/components/message-item/message-item-root.d.mts +25 -0
- package/dist/components/message-item/message-item-root.mjs +39 -0
- package/dist/components/message-item/message-item-toolbar.d.mts +9 -0
- package/dist/components/message-item/message-item-toolbar.mjs +131 -0
- package/dist/components/message-item/message-item.recipe.d.mts +101 -0
- package/dist/components/message-item/message-item.recipe.mjs +114 -0
- package/dist/components/message-item/message-multi-select.d.mts +15 -0
- package/dist/components/message-item/message-multi-select.mjs +49 -0
- package/dist/components/message-item/message-multi-select.recipe.mjs +23 -0
- package/dist/components/message-item/message-reaction.d.mts +39 -0
- package/dist/components/message-item/message-reaction.mjs +188 -0
- package/dist/components/message-item/message-reaction.recipe.mjs +76 -0
- package/dist/components/message-item/message-reference.d.mts +50 -0
- package/dist/components/message-item/message-reference.mjs +111 -0
- package/dist/components/message-item/message-reference.recipe.d.mts +6 -0
- package/dist/components/message-item/message-reference.recipe.mjs +63 -0
- package/dist/components/message-item/message-text-selection-toolbar.d.mts +24 -0
- package/dist/components/message-item/message-text-selection-toolbar.mjs +13 -0
- package/dist/components/message-list/index.d.mts +4 -0
- package/dist/components/message-list/message-list-jump.d.mts +21 -0
- package/dist/components/message-list/message-list-jump.mjs +73 -0
- package/dist/components/message-list/message-list-markers.d.mts +13 -0
- package/dist/components/message-list/message-list-markers.mjs +70 -0
- package/dist/components/message-list/message-list.d.mts +7 -0
- package/dist/components/message-list/message-list.mjs +52 -0
- package/dist/components/message-list/message-list.recipe.mjs +54 -0
- package/dist/components/message-quoted-preview/index.d.mts +2 -0
- package/dist/components/message-quoted-preview/message-quoted-preview.d.mts +40 -0
- package/dist/components/message-quoted-preview/message-quoted-preview.mjs +144 -0
- package/dist/components/message-quoted-preview/message-quoted-preview.recipe.mjs +38 -0
- package/dist/components/message-replies/index.d.mts +2 -0
- package/dist/components/message-replies/message-replies.d.mts +17 -0
- package/dist/components/message-replies/message-replies.mjs +79 -0
- package/dist/components/message-replies/message-replies.recipe.mjs +25 -0
- package/dist/components/message-translation/index.d.mts +2 -0
- package/dist/components/message-translation/message-translation.d.mts +20 -0
- package/dist/components/message-translation/message-translation.mjs +64 -0
- package/dist/components/message-translation/message-translation.recipe.mjs +27 -0
- package/dist/components/meter/index.d.mts +2 -0
- package/dist/components/meter/meter.d.mts +107 -0
- package/dist/components/meter/meter.mjs +118 -0
- package/dist/components/mobile-nav/index.d.mts +3 -0
- package/dist/components/mobile-nav/mobile-nav-server.d.mts +71 -0
- package/dist/components/mobile-nav/mobile-nav-server.mjs +287 -0
- package/dist/components/mobile-nav/mobile-nav.d.mts +12 -0
- package/dist/components/mobile-nav/mobile-nav.mjs +73 -0
- package/dist/components/mode-bar/index.d.mts +2 -0
- package/dist/components/mode-bar/mode-bar.d.mts +33 -0
- package/dist/components/mode-bar/mode-bar.mjs +115 -0
- package/dist/components/notification-center/index.d.mts +2 -0
- package/dist/components/notification-center/notification-center.d.mts +225 -0
- package/dist/components/notification-center/notification-center.mjs +340 -0
- package/dist/components/panel/index.d.mts +7 -0
- package/dist/components/panel/panel-action.d.mts +15 -0
- package/dist/components/panel/panel-action.mjs +23 -0
- package/dist/components/panel/panel-action.recipe.mjs +40 -0
- package/dist/components/panel/panel-header.d.mts +34 -0
- package/dist/components/panel/panel-header.mjs +135 -0
- package/dist/components/panel/panel-header.recipe.mjs +78 -0
- package/dist/components/panel/panel-notice.d.mts +16 -0
- package/dist/components/panel/panel-notice.mjs +77 -0
- package/dist/components/panel/panel-split-action.d.mts +34 -0
- package/dist/components/panel/panel-split-action.mjs +69 -0
- package/dist/components/panel/panel-split-action.recipe.mjs +53 -0
- package/dist/components/panel/panel-toggle-action.d.mts +6 -0
- package/dist/components/panel/panel-toggle-action.mjs +15 -0
- package/dist/components/panel/panel.d.mts +25 -0
- package/dist/components/panel/panel.mjs +96 -0
- package/dist/components/panel/panel.recipe.mjs +24 -0
- package/dist/components/picker-trigger-button/index.d.mts +2 -0
- package/dist/components/picker-trigger-button/picker-trigger-button.d.mts +7 -0
- package/dist/components/picker-trigger-button/picker-trigger-button.mjs +36 -0
- package/dist/components/popover/index.d.mts +2 -0
- package/dist/components/popover/popover.d.mts +41 -0
- package/dist/components/popover/popover.mjs +184 -0
- package/dist/components/preview-card/index.d.mts +2 -0
- package/dist/components/preview-card/preview-card.d.mts +43 -0
- package/dist/components/preview-card/preview-card.mjs +197 -0
- package/dist/components/profile-panel/index.d.mts +2 -0
- package/dist/components/profile-panel/profile-panel.d.mts +14 -0
- package/dist/components/profile-panel/profile-panel.mjs +46 -0
- package/dist/components/profile-panel/profile-panel.recipe.mjs +14 -0
- package/dist/components/progress/index.d.mts +2 -0
- package/dist/components/progress/progress.d.mts +119 -0
- package/dist/components/progress/progress.mjs +139 -0
- package/dist/components/pull-to-refresh/index.d.mts +4 -0
- package/dist/components/pull-to-refresh/pull-to-refresh-gesture.d.mts +30 -0
- package/dist/components/pull-to-refresh/pull-to-refresh-gesture.mjs +134 -0
- package/dist/components/pull-to-refresh/pull-to-refresh-indicator.d.mts +21 -0
- package/dist/components/pull-to-refresh/pull-to-refresh-indicator.mjs +153 -0
- package/dist/components/pull-to-refresh/pull-to-refresh-material-progress.mjs +150 -0
- package/dist/components/pull-to-refresh/use-pull-to-refresh.d.mts +55 -0
- package/dist/components/pull-to-refresh/use-pull-to-refresh.mjs +156 -0
- package/dist/components/radio-group/index.d.mts +2 -0
- package/dist/components/radio-group/radio-group.d.mts +14 -0
- package/dist/components/radio-group/radio-group.mjs +59 -0
- package/dist/components/resizable/index.d.mts +2 -0
- package/dist/components/resizable/resizable.d.mts +15 -0
- package/dist/components/resizable/resizable.mjs +39 -0
- package/dist/components/resizable/resizable.recipe.mjs +24 -0
- package/dist/components/scroll-area/index.d.mts +2 -0
- package/dist/components/scroll-area/scroll-area.d.mts +17 -0
- package/dist/components/scroll-area/scroll-area.mjs +55 -0
- package/dist/components/scroll-area/scroll-area.recipe.mjs +23 -0
- package/dist/components/search/index.d.mts +6 -0
- package/dist/components/search/search-entity.d.mts +24 -0
- package/dist/components/search/search-entity.mjs +106 -0
- package/dist/components/search/search-entity.recipe.mjs +41 -0
- package/dist/components/search/search-message.d.mts +25 -0
- package/dist/components/search/search-message.mjs +115 -0
- package/dist/components/search/search-message.recipe.mjs +32 -0
- package/dist/components/search/search-thread.d.mts +17 -0
- package/dist/components/search/search-thread.mjs +79 -0
- package/dist/components/search/search-thread.recipe.mjs +16 -0
- package/dist/components/search/search-trigger.d.mts +15 -0
- package/dist/components/search/search-trigger.mjs +59 -0
- package/dist/components/search/search.d.mts +23 -0
- package/dist/components/search/search.mjs +88 -0
- package/dist/components/search/search.recipe.mjs +22 -0
- package/dist/components/segmented-control/index.d.mts +2 -0
- package/dist/components/segmented-control/segmented-control.d.mts +38 -0
- package/dist/components/segmented-control/segmented-control.mjs +306 -0
- package/dist/components/select/index.d.mts +2 -0
- package/dist/components/select/select.d.mts +95 -0
- package/dist/components/select/select.mjs +483 -0
- package/dist/components/separator/index.d.mts +2 -0
- package/dist/components/separator/separator.d.mts +10 -0
- package/dist/components/separator/separator.mjs +49 -0
- package/dist/components/sidebar/index.d.mts +5 -0
- package/dist/components/sidebar/sidebar-item.d.mts +64 -0
- package/dist/components/sidebar/sidebar-item.mjs +201 -0
- package/dist/components/sidebar/sidebar-item.recipe.mjs +100 -0
- package/dist/components/sidebar/sidebar-menu.d.mts +13 -0
- package/dist/components/sidebar/sidebar-menu.mjs +67 -0
- package/dist/components/sidebar/sidebar-menu.recipe.mjs +22 -0
- package/dist/components/sidebar/sidebar-section.d.mts +41 -0
- package/dist/components/sidebar/sidebar-section.mjs +164 -0
- package/dist/components/sidebar/sidebar-section.recipe.mjs +45 -0
- package/dist/components/sidebar/sidebar.d.mts +17 -0
- package/dist/components/sidebar/sidebar.mjs +149 -0
- package/dist/components/sidebar/sidebar.recipe.mjs +37 -0
- package/dist/components/skeleton/index.d.mts +2 -0
- package/dist/components/skeleton/skeleton.d.mts +50 -0
- package/dist/components/skeleton/skeleton.mjs +29 -0
- package/dist/components/spinner/index.d.mts +2 -0
- package/dist/components/spinner/spinner.d.mts +77 -0
- package/dist/components/spinner/spinner.mjs +118 -0
- package/dist/components/status/index.d.mts +2 -0
- package/dist/components/status/status.d.mts +143 -0
- package/dist/components/status/status.mjs +56 -0
- package/dist/components/steps/index.d.mts +3 -0
- package/dist/components/steps/otter-indicator.d.mts +17 -0
- package/dist/components/steps/otter-indicator.mjs +331 -0
- package/dist/components/steps/steps.d.mts +50 -0
- package/dist/components/steps/steps.mjs +174 -0
- package/dist/components/switch/index.d.mts +2 -0
- package/dist/components/switch/switch.d.mts +9 -0
- package/dist/components/switch/switch.mjs +50 -0
- package/dist/components/system-message/index.d.mts +2 -0
- package/dist/components/system-message/system-message.d.mts +27 -0
- package/dist/components/system-message/system-message.mjs +113 -0
- package/dist/components/system-message/system-message.recipe.mjs +34 -0
- package/dist/components/table/index.d.mts +2 -0
- package/dist/components/table/table.d.mts +35 -0
- package/dist/components/table/table.mjs +102 -0
- package/dist/components/table/table.recipe.mjs +31 -0
- package/dist/components/tabs/index.d.mts +2 -0
- package/dist/components/tabs/tabs.d.mts +185 -0
- package/dist/components/tabs/tabs.mjs +528 -0
- package/dist/components/task-board/index.d.mts +2 -0
- package/dist/components/task-board/task-board-column.recipe.mjs +46 -0
- package/dist/components/task-board/task-board.d.mts +40 -0
- package/dist/components/task-board/task-board.mjs +155 -0
- package/dist/components/task-card/index.d.mts +2 -0
- package/dist/components/task-card/task-card-status.recipe.mjs +17 -0
- package/dist/components/task-card/task-card.d.mts +30 -0
- package/dist/components/task-card/task-card.mjs +141 -0
- package/dist/components/task-card/task-card.recipe.mjs +39 -0
- package/dist/components/task-dnd/index.d.mts +2 -0
- package/dist/components/task-dnd/task-dnd.d.mts +75 -0
- package/dist/components/task-dnd/task-dnd.mjs +341 -0
- package/dist/components/task-dnd/task-dnd.recipe.mjs +20 -0
- package/dist/components/task-list/index.d.mts +2 -0
- package/dist/components/task-list/task-list-section.recipe.mjs +37 -0
- package/dist/components/task-list/task-list.d.mts +34 -0
- package/dist/components/task-list/task-list.mjs +119 -0
- package/dist/components/tasks/index.d.mts +7 -0
- package/dist/components/tasks/task-chip.d.mts +14 -0
- package/dist/components/tasks/task-chip.mjs +81 -0
- package/dist/components/tasks/task-loading.d.mts +7 -0
- package/dist/components/tasks/task-loading.mjs +32 -0
- package/dist/components/tasks/task-loading.recipe.mjs +8 -0
- package/dist/components/tasks/task-status-badge.d.mts +24 -0
- package/dist/components/tasks/task-status-badge.mjs +24 -0
- package/dist/components/tasks/task-status-icon.d.mts +13 -0
- package/dist/components/tasks/task-status-icon.mjs +90 -0
- package/dist/components/tasks/task-status.recipe.d.mts +62 -0
- package/dist/components/tasks/task-status.recipe.mjs +33 -0
- package/dist/components/tasks/tasks-panel.d.mts +22 -0
- package/dist/components/tasks/tasks-panel.mjs +114 -0
- package/dist/components/tasks/tasks-panel.recipe.mjs +36 -0
- package/dist/components/text/index.d.mts +2 -0
- package/dist/components/text/text.d.mts +186 -0
- package/dist/components/text/text.mjs +114 -0
- package/dist/components/text-link/index.d.mts +2 -0
- package/dist/components/text-link/text-link.d.mts +36 -0
- package/dist/components/text-link/text-link.mjs +60 -0
- package/dist/components/text-selection-toolbar/index.d.mts +3 -0
- package/dist/components/text-selection-toolbar/text-selection-anchor.d.mts +22 -0
- package/dist/components/text-selection-toolbar/text-selection-anchor.mjs +106 -0
- package/dist/components/text-selection-toolbar/text-selection-toolbar.d.mts +20 -0
- package/dist/components/text-selection-toolbar/text-selection-toolbar.mjs +41 -0
- package/dist/components/text-selection-toolbar/text-selection-toolbar.recipe.mjs +19 -0
- package/dist/components/textarea/index.d.mts +2 -0
- package/dist/components/textarea/textarea.d.mts +16 -0
- package/dist/components/textarea/textarea.mjs +62 -0
- package/dist/components/thread-panel/index.d.mts +2 -0
- package/dist/components/thread-panel/thread-panel.d.mts +31 -0
- package/dist/components/thread-panel/thread-panel.mjs +162 -0
- package/dist/components/thread-panel/thread-panel.recipe.mjs +36 -0
- package/dist/components/timeline/index.d.mts +2 -0
- package/dist/components/timeline/timeline.d.mts +44 -0
- package/dist/components/timeline/timeline.mjs +81 -0
- package/dist/components/toast/index.d.mts +2 -0
- package/dist/components/toast/toast.d.mts +263 -0
- package/dist/components/toast/toast.mjs +556 -0
- package/dist/components/toggle-group/index.d.mts +2 -0
- package/dist/components/toggle-group/toggle-group.d.mts +15 -0
- package/dist/components/toggle-group/toggle-group.mjs +64 -0
- package/dist/components/tooltip/index.d.mts +2 -0
- package/dist/components/tooltip/tooltip.d.mts +18 -0
- package/dist/components/tooltip/tooltip.mjs +197 -0
- package/dist/components/virtual-list/ItemColumns.mjs +37 -0
- package/dist/components/virtual-list/VirtualList.d.mts +4 -0
- package/dist/components/virtual-list/VirtualList.mjs +1401 -0
- package/dist/components/virtual-list/VirtualListContext.mjs +5 -0
- package/dist/components/virtual-list/hooks/use-event-callback.mjs +10 -0
- package/dist/components/virtual-list/hooks/use-ios-momentum-compensation.mjs +148 -0
- package/dist/components/virtual-list/hooks/use-keyboard-scroll.mjs +42 -0
- package/dist/components/virtual-list/hooks/use-latest-ref.mjs +10 -0
- package/dist/components/virtual-list/hooks/use-layout-effect-with-previous.mjs +16 -0
- package/dist/components/virtual-list/hooks/use-memo-with-previous.mjs +22 -0
- package/dist/components/virtual-list/hooks/use-non-passive-wheel.mjs +23 -0
- package/dist/components/virtual-list/hooks/use-non-virtual-content-resize.mjs +28 -0
- package/dist/components/virtual-list/hooks/use-scroll-anchor.mjs +55 -0
- package/dist/components/virtual-list/index.d.mts +5 -0
- package/dist/components/virtual-list/public-types.d.mts +341 -0
- package/dist/components/virtual-list/resize-observer/ResizeObserverWrapper.d.mts +5 -0
- package/dist/components/virtual-list/resize-observer/ResizeObserverWrapper.mjs +70 -0
- package/dist/components/virtual-list/resize-observer/resize-observer-delegate.d.mts +6 -0
- package/dist/components/virtual-list/resize-observer/resize-observer-delegate.mjs +54 -0
- package/dist/components/virtual-list/utils/align.mjs +19 -0
- package/dist/components/virtual-list/utils/constants.mjs +30 -0
- package/dist/components/virtual-list/utils/fenwick-tree.mjs +66 -0
- package/dist/components/virtual-list/utils/items-anchor.mjs +49 -0
- package/dist/components/virtual-list/utils/measure.mjs +77 -0
- package/dist/components/virtual-list/utils/platform.mjs +39 -0
- package/dist/components/virtual-list/utils/range.mjs +103 -0
- package/dist/components/virtual-list/utils/size-cache.mjs +35 -0
- package/dist/components/workspace-button/index.d.mts +2 -0
- package/dist/components/workspace-button/workspace-button.d.mts +9 -0
- package/dist/components/workspace-button/workspace-button.mjs +28 -0
- package/dist/index.d.mts +239 -4864
- package/dist/index.mjs +142 -17054
- package/dist/lib/chip-remove.mjs +17 -0
- package/dist/lib/data-attributes.d.mts +5 -0
- package/dist/lib/decision-width.mjs +9 -0
- package/dist/lib/default-native-button.mjs +8 -0
- package/dist/lib/desktop-media.mjs +10 -0
- package/dist/lib/drag-escape.mjs +37 -0
- package/dist/lib/frame-insets.mjs +127 -0
- package/dist/lib/head-edges.mjs +44 -0
- package/dist/lib/hud-text-action.mjs +10 -0
- package/dist/lib/inline-chip.mjs +30 -0
- package/dist/lib/input-modality.d.mts +36 -0
- package/dist/lib/input-modality.mjs +186 -0
- package/dist/lib/list-cell.mjs +21 -0
- package/dist/lib/located.d.mts +25 -0
- package/dist/lib/located.mjs +28 -0
- package/dist/lib/overlay-depth.d.mts +42 -0
- package/dist/lib/overlay-depth.mjs +59 -0
- package/dist/lib/phone-media.mjs +24 -0
- package/dist/lib/presence.d.mts +16 -0
- package/dist/lib/presence.mjs +16 -0
- package/dist/lib/row-tone.d.mts +8 -0
- package/dist/lib/search-hit.mjs +18 -0
- package/dist/lib/stacked-actions.mjs +112 -0
- package/dist/lib/styled-props.d.mts +15 -0
- package/dist/lib/tap-activation.mjs +133 -0
- package/dist/lib/theme/theme-context.d.mts +10 -0
- package/dist/lib/theme/theme-context.mjs +9 -0
- package/dist/lib/theme/theme-provider.d.mts +23 -0
- package/dist/lib/theme/theme-provider.mjs +61 -0
- package/dist/lib/theme/theme-scope.mjs +19 -0
- package/dist/lib/theme/use-theme.d.mts +5 -0
- package/dist/lib/theme/use-theme.mjs +9 -0
- package/dist/lib/touch-drag.d.mts +55 -0
- package/dist/lib/touch-drag.mjs +151 -0
- package/dist/lib/truncation.d.mts +26 -0
- package/dist/lib/truncation.mjs +153 -0
- package/dist/lib/tv.d.mts +2 -0
- package/dist/lib/tv.mjs +14 -0
- package/dist/lib/use-copy-to-clipboard.mjs +58 -0
- package/dist/lib/use-merged-ref.mjs +60 -0
- package/dist/lib/use-mobile-viewport.mjs +17 -0
- package/dist/lib/use-overflow-title.mjs +49 -0
- package/dist/lib/use-scrollbar-size.d.mts +16 -0
- package/dist/lib/use-scrollbar-size.mjs +46 -0
- package/dist/lib/use-truncated.d.mts +20 -0
- package/dist/lib/use-truncated.mjs +34 -0
- package/dist/lib/without-children.d.mts +8 -0
- package/dist/wip.d.mts +61 -1190
- package/dist/wip.mjs +43 -2970
- package/package.json +8 -1
- package/dist/index-C3ymUW98.d.mts +0 -1816
- package/dist/mode-bar-tGnYByXp.mjs +0 -7564
- package/dist/style.css +0 -1395
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../../cn.mjs";
|
|
3
|
+
import { SILENT_DRAG_ANNOUNCEMENTS, dragInstructions, dragMessages } from "./drag-announcements.mjs";
|
|
4
|
+
import { useDragAcrossLists } from "./drag-sensors.mjs";
|
|
5
|
+
import { DropPlaceholder } from "./drop-placeholder.mjs";
|
|
6
|
+
import { useCallback, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { arrayMove, verticalListSortingStrategy } from "@dnd-kit/sortable";
|
|
9
|
+
//#region src/components/drag/drag-lists.tsx
|
|
10
|
+
/** dnd-kit's vertical strategy, except that nothing moves while the hand is outside the list. */
|
|
11
|
+
const dragListStrategy = (args) => args.overIndex < 0 ? null : verticalListSortingStrategy(args);
|
|
12
|
+
/**
|
|
13
|
+
* Items in one or more lists that can be reordered and moved between lists
|
|
14
|
+
* (a sidebar's sections, a board's columns): the lists half of the drag
|
|
15
|
+
* model (design/patterns/drag-and-drop.md#where-it-will-land). While dragging,
|
|
16
|
+
* the item stands at its landing spot (its own slot is the place; siblings
|
|
17
|
+
* slide apart), a list can refuse it, and every step is announced by name.
|
|
18
|
+
* The keyboard is measured from the item's real place, so the arrows never
|
|
19
|
+
* skip one after a move into another list.
|
|
20
|
+
*
|
|
21
|
+
* Spread `handlers`, `collisionDetection` and `accessibility` on the
|
|
22
|
+
* `DndContext`, pass `coordinateGetter` to `useDragSensors`, and render
|
|
23
|
+
* `DragRemeasure version={items}` inside it.
|
|
24
|
+
*/
|
|
25
|
+
function useDragLists({ lists, items, onItemsChange, listName, itemName, refuse, collisionDetection, announce, messages }) {
|
|
26
|
+
const say = useMemo(() => dragMessages(messages), [messages]);
|
|
27
|
+
const across = useDragAcrossLists(collisionDetection);
|
|
28
|
+
const itemsRef = useRef(items);
|
|
29
|
+
useLayoutEffect(() => {
|
|
30
|
+
itemsRef.current = items;
|
|
31
|
+
}, [items]);
|
|
32
|
+
const [activeId, setActiveId] = useState(null);
|
|
33
|
+
const [originList, setOriginList] = useState(null);
|
|
34
|
+
const [refusal, setRefusalState] = useState(null);
|
|
35
|
+
const refusalRef = useRef(refusal);
|
|
36
|
+
const setRefusal = (next) => {
|
|
37
|
+
refusalRef.current = next;
|
|
38
|
+
setRefusalState(next);
|
|
39
|
+
};
|
|
40
|
+
const origin = useRef(null);
|
|
41
|
+
const inserted = useRef(null);
|
|
42
|
+
const listOf = useCallback((state, id) => lists.includes(id) ? id : lists.find((list) => state[list].includes(String(id))) ?? null, [lists]);
|
|
43
|
+
const isList = (id) => lists.includes(id);
|
|
44
|
+
const where = (state, id) => {
|
|
45
|
+
const list = listOf(state, id);
|
|
46
|
+
return {
|
|
47
|
+
place: listName(list),
|
|
48
|
+
position: state[list].indexOf(id) + 1,
|
|
49
|
+
count: state[list].length
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
const update = (next) => {
|
|
53
|
+
itemsRef.current = next;
|
|
54
|
+
onItemsChange(next);
|
|
55
|
+
};
|
|
56
|
+
/** Still home: in its own list, at its own index (pass the sortable's projected index). */
|
|
57
|
+
const isHome = useCallback((id, index) => {
|
|
58
|
+
const start = origin.current;
|
|
59
|
+
return start != null && listOf(itemsRef.current, id) === start.list && index === start.index;
|
|
60
|
+
}, [listOf]);
|
|
61
|
+
const onDragStart = ({ active, activatorEvent }) => {
|
|
62
|
+
const id = String(active.id);
|
|
63
|
+
const list = listOf(items, id);
|
|
64
|
+
if (!list) return;
|
|
65
|
+
origin.current = {
|
|
66
|
+
list,
|
|
67
|
+
index: items[list].indexOf(id),
|
|
68
|
+
snapshot: items,
|
|
69
|
+
keyboard: typeof KeyboardEvent !== "undefined" && activatorEvent instanceof KeyboardEvent
|
|
70
|
+
};
|
|
71
|
+
inserted.current = null;
|
|
72
|
+
setActiveId(id);
|
|
73
|
+
setOriginList(list);
|
|
74
|
+
announce(say.pickedUp({
|
|
75
|
+
name: itemName(id),
|
|
76
|
+
...where(items, id)
|
|
77
|
+
}));
|
|
78
|
+
};
|
|
79
|
+
const onDragOver = ({ active, over }) => {
|
|
80
|
+
const start = origin.current;
|
|
81
|
+
if (!start) return;
|
|
82
|
+
const id = String(active.id);
|
|
83
|
+
if (!over) {
|
|
84
|
+
if (refusalRef.current) setRefusal(null);
|
|
85
|
+
announce(say.notOver({ name: itemName(id) }));
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const current = itemsRef.current;
|
|
89
|
+
const from = listOf(current, id);
|
|
90
|
+
const to = listOf(current, over.id);
|
|
91
|
+
if (!from || !to) return;
|
|
92
|
+
const reason = refuse?.(start.list, to, id) ?? null;
|
|
93
|
+
if (reason) {
|
|
94
|
+
setRefusal({
|
|
95
|
+
list: to,
|
|
96
|
+
reason
|
|
97
|
+
});
|
|
98
|
+
update(start.snapshot);
|
|
99
|
+
inserted.current = null;
|
|
100
|
+
announce(say.refused({
|
|
101
|
+
name: itemName(id),
|
|
102
|
+
place: listName(to),
|
|
103
|
+
reason
|
|
104
|
+
}));
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
if (refusalRef.current) setRefusal(null);
|
|
108
|
+
if (from !== to) {
|
|
109
|
+
const fromList = current[from].filter((item) => item !== id);
|
|
110
|
+
const toList = [...current[to]];
|
|
111
|
+
let at = toList.indexOf(String(over.id));
|
|
112
|
+
if (at < 0) at = toList.length;
|
|
113
|
+
else if (start.keyboard) {
|
|
114
|
+
if (lists.indexOf(from) > lists.indexOf(to)) at += 1;
|
|
115
|
+
} else {
|
|
116
|
+
const rect = active.rect.current.translated;
|
|
117
|
+
if (rect && rect.top + rect.height / 2 > over.rect.top + over.rect.height / 2) at += 1;
|
|
118
|
+
}
|
|
119
|
+
toList.splice(at, 0, id);
|
|
120
|
+
const next = {
|
|
121
|
+
...current,
|
|
122
|
+
[from]: fromList,
|
|
123
|
+
[to]: toList
|
|
124
|
+
};
|
|
125
|
+
across.moved(start.keyboard);
|
|
126
|
+
update(next);
|
|
127
|
+
inserted.current = isList(over.id) ? null : over.id;
|
|
128
|
+
announce(say.over({
|
|
129
|
+
name: itemName(id),
|
|
130
|
+
...where(next, id)
|
|
131
|
+
}));
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
if (over.id === id) {
|
|
135
|
+
inserted.current = null;
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
const list = current[to];
|
|
139
|
+
if (inserted.current === over.id) {
|
|
140
|
+
announce(say.over({
|
|
141
|
+
name: itemName(id),
|
|
142
|
+
...where(current, id)
|
|
143
|
+
}));
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
inserted.current = null;
|
|
147
|
+
const overIndex = isList(over.id) ? list.length - 1 : list.indexOf(String(over.id));
|
|
148
|
+
announce(say.over({
|
|
149
|
+
name: itemName(id),
|
|
150
|
+
place: listName(to),
|
|
151
|
+
position: overIndex + 1,
|
|
152
|
+
count: list.length
|
|
153
|
+
}));
|
|
154
|
+
};
|
|
155
|
+
const finish = (dropped, overId) => {
|
|
156
|
+
const start = origin.current;
|
|
157
|
+
const id = activeId;
|
|
158
|
+
const refused = refusalRef.current;
|
|
159
|
+
origin.current = null;
|
|
160
|
+
across.reset();
|
|
161
|
+
setActiveId(null);
|
|
162
|
+
setOriginList(null);
|
|
163
|
+
setRefusal(null);
|
|
164
|
+
if (!start || !id) return;
|
|
165
|
+
if (!dropped || overId == null || refused) {
|
|
166
|
+
update(start.snapshot);
|
|
167
|
+
const home = {
|
|
168
|
+
name: itemName(id),
|
|
169
|
+
...where(start.snapshot, id)
|
|
170
|
+
};
|
|
171
|
+
announce(refused && dropped ? say.refusedDrop({
|
|
172
|
+
...home,
|
|
173
|
+
reason: refused.reason
|
|
174
|
+
}) : say.cancelled(home));
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
const current = itemsRef.current;
|
|
178
|
+
const list = listOf(current, id);
|
|
179
|
+
const ids = current[list];
|
|
180
|
+
const fromIndex = ids.indexOf(id);
|
|
181
|
+
const toIndex = inserted.current === overId ? fromIndex : isList(overId) ? ids.length - 1 : ids.indexOf(String(overId));
|
|
182
|
+
const next = toIndex >= 0 && toIndex !== fromIndex ? {
|
|
183
|
+
...current,
|
|
184
|
+
[list]: arrayMove([...ids], fromIndex, toIndex)
|
|
185
|
+
} : current;
|
|
186
|
+
update(next);
|
|
187
|
+
announce(say.dropped({
|
|
188
|
+
name: itemName(id),
|
|
189
|
+
...where(next, id)
|
|
190
|
+
}));
|
|
191
|
+
};
|
|
192
|
+
const accessibility = useMemo(() => ({
|
|
193
|
+
announcements: SILENT_DRAG_ANNOUNCEMENTS,
|
|
194
|
+
screenReaderInstructions: dragInstructions(messages)
|
|
195
|
+
}), [messages]);
|
|
196
|
+
return {
|
|
197
|
+
/** The dragged item's id, or null. */
|
|
198
|
+
activeId,
|
|
199
|
+
/** The list that refuses the item under the hand, and why. */
|
|
200
|
+
refusal,
|
|
201
|
+
/** The list the drag started in, while dragging. */
|
|
202
|
+
originList,
|
|
203
|
+
isHome,
|
|
204
|
+
listOf,
|
|
205
|
+
collisionDetection: across.collisionDetection,
|
|
206
|
+
coordinateGetter: across.coordinateGetter,
|
|
207
|
+
accessibility,
|
|
208
|
+
handlers: {
|
|
209
|
+
onDragStart,
|
|
210
|
+
onDragOver,
|
|
211
|
+
onDragEnd: ({ over }) => finish(true, over?.id ?? null),
|
|
212
|
+
onDragCancel: () => finish(false, null)
|
|
213
|
+
}
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Wraps each item's content in a list. The dragged item's own node is at 40%
|
|
218
|
+
* while it is still home, and the dashed place (its size, its radius) once it
|
|
219
|
+
* stands anywhere else. Every other item renders as it is: the wrapper stays
|
|
220
|
+
* the same, so the item keeps focus when its drag starts.
|
|
221
|
+
*/
|
|
222
|
+
function DraggedSlot({ dragging = false, home, radius, className, children }) {
|
|
223
|
+
const place = dragging && !home;
|
|
224
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
225
|
+
"data-slot": "drag-slot",
|
|
226
|
+
className: "relative",
|
|
227
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
228
|
+
"data-drag-origin": dragging && home ? "" : void 0,
|
|
229
|
+
className: place ? "invisible" : void 0,
|
|
230
|
+
children
|
|
231
|
+
}), place ? /* @__PURE__ */ jsx(DropPlaceholder, { className: cn("absolute inset-0", radius, className) }) : null]
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
/** The last announcement, for a polite live region (`DragLiveRegion`). Repeats are dropped. */
|
|
235
|
+
function useDragAnnouncer() {
|
|
236
|
+
const [message, setMessage] = useState("");
|
|
237
|
+
const last = useRef("");
|
|
238
|
+
return {
|
|
239
|
+
message,
|
|
240
|
+
announce: useCallback((text) => {
|
|
241
|
+
if (text === last.current) return;
|
|
242
|
+
last.current = text;
|
|
243
|
+
setMessage(text);
|
|
244
|
+
}, [])
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
/** A polite, visually hidden live region for drag announcements. */
|
|
248
|
+
function DragLiveRegion({ message }) {
|
|
249
|
+
return /* @__PURE__ */ jsx("span", {
|
|
250
|
+
className: "sr-only",
|
|
251
|
+
role: "status",
|
|
252
|
+
"aria-live": "polite",
|
|
253
|
+
"aria-atomic": "true",
|
|
254
|
+
children: message
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
//#endregion
|
|
258
|
+
export { DragLiveRegion, DraggedSlot, dragListStrategy, useDragAnnouncer, useDragLists };
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { HoldThenMoveOptions } from "../../lib/touch-drag.mjs";
|
|
2
|
+
import { CollisionDetection, KeyboardCoordinateGetter, KeyboardSensorOptions } from "@dnd-kit/core";
|
|
3
|
+
//#region src/components/drag/drag-sensors.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* A mouse or a pen picks an item up once it has moved this far, so a click
|
|
6
|
+
* never moves anything (design/patterns/drag-and-drop.md#starting-a-drag).
|
|
7
|
+
*/
|
|
8
|
+
export declare const MOUSE_DRAG_DISTANCE_PX = 6;
|
|
9
|
+
/**
|
|
10
|
+
* Space picks up and drops, Escape puts back, the arrow keys move. Enter
|
|
11
|
+
* never starts a drag: on an item that can also be opened or activated, Enter
|
|
12
|
+
* does that.
|
|
13
|
+
*/
|
|
14
|
+
export declare const DRAG_KEYBOARD_CODES: NonNullable<KeyboardSensorOptions["keyboardCodes"]>;
|
|
15
|
+
export type DragSensorsOptions = {
|
|
16
|
+
/**
|
|
17
|
+
* How the arrow keys move a lifted item. Defaults to
|
|
18
|
+
* `listKeyboardCoordinates`, which steps through a sortable list.
|
|
19
|
+
*/
|
|
20
|
+
coordinateGetter?: KeyboardCoordinateGetter;
|
|
21
|
+
/** Leave the keyboard out, for a surface whose keyboard path is a button. */
|
|
22
|
+
keyboard?: boolean;
|
|
23
|
+
/** The touch hold, distance and tolerance; the defaults are the system's. */
|
|
24
|
+
touch?: HoldThenMoveOptions;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* The one sensor set for everything that can be dragged
|
|
28
|
+
* (design/patterns/drag-and-drop.md#starting-a-drag):
|
|
29
|
+
*
|
|
30
|
+
* - a mouse or a pen: after 6px of movement;
|
|
31
|
+
* - a finger: hold still 500ms, then move 10px (`useHoldThenMoveTouchSensor`);
|
|
32
|
+
* - the keyboard: Space picks up, the arrows move, Space drops, Escape puts
|
|
33
|
+
* back. Enter never starts a drag.
|
|
34
|
+
*
|
|
35
|
+
* However the drag started, Escape during it only puts the item back: it is
|
|
36
|
+
* taken in the capture phase on the window and stopped, so no app handler
|
|
37
|
+
* (a dialog, a panel, a popover that closes on Escape) hears it. Once the drag
|
|
38
|
+
* is over, Escape reaches the app again.
|
|
39
|
+
*
|
|
40
|
+
* Pass the options, or only the keyboard's `coordinateGetter`.
|
|
41
|
+
*/
|
|
42
|
+
export declare function useDragSensors(options?: DragSensorsOptions | KeyboardCoordinateGetter): import("@dnd-kit/core").SensorDescriptor<import("@dnd-kit/core").SensorOptions>[];
|
|
43
|
+
/**
|
|
44
|
+
* dnd-kit's sortable keyboard steps, measured from where the item's place
|
|
45
|
+
* actually is (its own node, slid into the landing spot) rather than from the
|
|
46
|
+
* lifted copy. After an item moves into another list the two differ, and the
|
|
47
|
+
* arrows would skip a place. Use it for lists inside one `DndContext`.
|
|
48
|
+
*/
|
|
49
|
+
export declare const listKeyboardCoordinates: KeyboardCoordinateGetter;
|
|
50
|
+
export type DragAcrossLists = {
|
|
51
|
+
/** The caller's collision detection, holding the item over itself right after it moves list. */
|
|
52
|
+
collisionDetection: CollisionDetection;
|
|
53
|
+
/** Pass to `useDragSensors({ coordinateGetter })`. */
|
|
54
|
+
coordinateGetter: KeyboardCoordinateGetter;
|
|
55
|
+
/**
|
|
56
|
+
* Call when the item has just been moved into another list. By keyboard it
|
|
57
|
+
* then stays over itself until the next arrow; by pointer, for one frame.
|
|
58
|
+
*/
|
|
59
|
+
moved: (viaKeyboard: boolean) => void;
|
|
60
|
+
/** Call when the drag ends or is cancelled. */
|
|
61
|
+
reset: () => void;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* The keyboard fix for an item that moves between lists while it is dragged
|
|
65
|
+
* (a sidebar's sections, a board's columns). Without it, dnd-kit still counts
|
|
66
|
+
* the row the item was put next to as the place under it, projects one more
|
|
67
|
+
* move, and the next arrow skips a place: what is announced and where the item
|
|
68
|
+
* drops disagree. With it:
|
|
69
|
+
*
|
|
70
|
+
* - right after it moves list, the item is over itself (by keyboard until the
|
|
71
|
+
* next arrow, by pointer for one frame);
|
|
72
|
+
* - the arrows are measured from the item's real place (`listKeyboardCoordinates`).
|
|
73
|
+
*
|
|
74
|
+
* Render `DragRemeasure` too, so the lists are measured again after the move.
|
|
75
|
+
*/
|
|
76
|
+
export declare function useDragAcrossLists(collisionDetection: CollisionDetection): DragAcrossLists;
|
|
77
|
+
export type DragRemeasureProps = {
|
|
78
|
+
/** Anything that changes when an item moves list, such as the lists' items. */
|
|
79
|
+
version: unknown;
|
|
80
|
+
};
|
|
81
|
+
/**
|
|
82
|
+
* Measures every drop target again once an item's move into another list has
|
|
83
|
+
* rendered. dnd-kit's own observers skip targets whose size didn't change,
|
|
84
|
+
* even when they moved. Render it inside the `DndContext`.
|
|
85
|
+
*/
|
|
86
|
+
export declare function DragRemeasure({ version }: DragRemeasureProps): null;
|
|
87
|
+
//#endregion
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { eventWindow, holdEscape, releaseEscape } from "../../lib/drag-escape.mjs";
|
|
3
|
+
import { useHoldThenMoveTouchSensor, useMouseOnlyPointerSensor } from "../../lib/touch-drag.mjs";
|
|
4
|
+
import { useLayoutEffect, useMemo, useRef } from "react";
|
|
5
|
+
import { KeyboardSensor, useDndContext, useSensor, useSensors } from "@dnd-kit/core";
|
|
6
|
+
import { sortableKeyboardCoordinates } from "@dnd-kit/sortable";
|
|
7
|
+
//#region src/components/drag/drag-sensors.ts
|
|
8
|
+
/**
|
|
9
|
+
* A mouse or a pen picks an item up once it has moved this far, so a click
|
|
10
|
+
* never moves anything (design/patterns/drag-and-drop.md#starting-a-drag).
|
|
11
|
+
*/
|
|
12
|
+
const MOUSE_DRAG_DISTANCE_PX = 6;
|
|
13
|
+
/**
|
|
14
|
+
* Space picks up and drops, Escape puts back, the arrow keys move. Enter
|
|
15
|
+
* never starts a drag: on an item that can also be opened or activated, Enter
|
|
16
|
+
* does that.
|
|
17
|
+
*/
|
|
18
|
+
const DRAG_KEYBOARD_CODES = {
|
|
19
|
+
start: ["Space"],
|
|
20
|
+
cancel: ["Escape"],
|
|
21
|
+
end: ["Space"]
|
|
22
|
+
};
|
|
23
|
+
var DragKeyboardSensorImpl = class extends KeyboardSensor {
|
|
24
|
+
static activators = KeyboardSensor.activators;
|
|
25
|
+
attach() {
|
|
26
|
+
super.attach();
|
|
27
|
+
holdEscape(eventWindow(this.props.event), this, (event) => this.handleCancel(event));
|
|
28
|
+
}
|
|
29
|
+
detach() {
|
|
30
|
+
releaseEscape(eventWindow(this.props.event), this);
|
|
31
|
+
super.detach();
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* dnd-kit's KeyboardSensor, but Escape during the drag puts the item back and
|
|
36
|
+
* reaches nothing else: no dialog, panel or popover that closes on Escape
|
|
37
|
+
* hears it (`drag-escape.ts`). The pointer sensors of `useDragSensors` do the
|
|
38
|
+
* same.
|
|
39
|
+
*/
|
|
40
|
+
const DragKeyboardSensor = DragKeyboardSensorImpl;
|
|
41
|
+
const NO_TOUCH = {};
|
|
42
|
+
/**
|
|
43
|
+
* The one sensor set for everything that can be dragged
|
|
44
|
+
* (design/patterns/drag-and-drop.md#starting-a-drag):
|
|
45
|
+
*
|
|
46
|
+
* - a mouse or a pen: after 6px of movement;
|
|
47
|
+
* - a finger: hold still 500ms, then move 10px (`useHoldThenMoveTouchSensor`);
|
|
48
|
+
* - the keyboard: Space picks up, the arrows move, Space drops, Escape puts
|
|
49
|
+
* back. Enter never starts a drag.
|
|
50
|
+
*
|
|
51
|
+
* However the drag started, Escape during it only puts the item back: it is
|
|
52
|
+
* taken in the capture phase on the window and stopped, so no app handler
|
|
53
|
+
* (a dialog, a panel, a popover that closes on Escape) hears it. Once the drag
|
|
54
|
+
* is over, Escape reaches the app again.
|
|
55
|
+
*
|
|
56
|
+
* Pass the options, or only the keyboard's `coordinateGetter`.
|
|
57
|
+
*/
|
|
58
|
+
function useDragSensors(options = {}) {
|
|
59
|
+
const { coordinateGetter = listKeyboardCoordinates, keyboard = true, touch = NO_TOUCH } = typeof options === "function" ? { coordinateGetter: options } : options;
|
|
60
|
+
const keyboardOptions = useMemo(() => ({
|
|
61
|
+
keyboardCodes: DRAG_KEYBOARD_CODES,
|
|
62
|
+
coordinateGetter
|
|
63
|
+
}), [coordinateGetter]);
|
|
64
|
+
const mouse = useMouseOnlyPointerSensor(6);
|
|
65
|
+
const finger = useHoldThenMoveTouchSensor(touch);
|
|
66
|
+
const keys = useSensor(DragKeyboardSensor, keyboardOptions);
|
|
67
|
+
return useSensors(mouse, finger, keyboard ? keys : null);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* dnd-kit's sortable keyboard steps, measured from where the item's place
|
|
71
|
+
* actually is (its own node, slid into the landing spot) rather than from the
|
|
72
|
+
* lifted copy. After an item moves into another list the two differ, and the
|
|
73
|
+
* arrows would skip a place. Use it for lists inside one `DndContext`.
|
|
74
|
+
*/
|
|
75
|
+
const listKeyboardCoordinates = (event, args) => {
|
|
76
|
+
const { context } = args;
|
|
77
|
+
const node = context.active == null ? null : context.draggableNodes.get(context.active.id)?.node.current;
|
|
78
|
+
if (!node) return sortableKeyboardCoordinates(event, args);
|
|
79
|
+
const rect = node.getBoundingClientRect();
|
|
80
|
+
const collisionRect = {
|
|
81
|
+
top: rect.top,
|
|
82
|
+
left: rect.left,
|
|
83
|
+
width: rect.width,
|
|
84
|
+
height: rect.height,
|
|
85
|
+
bottom: rect.bottom,
|
|
86
|
+
right: rect.right
|
|
87
|
+
};
|
|
88
|
+
return sortableKeyboardCoordinates(event, {
|
|
89
|
+
...args,
|
|
90
|
+
context: {
|
|
91
|
+
...context,
|
|
92
|
+
collisionRect
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* The keyboard fix for an item that moves between lists while it is dragged
|
|
98
|
+
* (a sidebar's sections, a board's columns). Without it, dnd-kit still counts
|
|
99
|
+
* the row the item was put next to as the place under it, projects one more
|
|
100
|
+
* move, and the next arrow skips a place: what is announced and where the item
|
|
101
|
+
* drops disagree. With it:
|
|
102
|
+
*
|
|
103
|
+
* - right after it moves list, the item is over itself (by keyboard until the
|
|
104
|
+
* next arrow, by pointer for one frame);
|
|
105
|
+
* - the arrows are measured from the item's real place (`listKeyboardCoordinates`).
|
|
106
|
+
*
|
|
107
|
+
* Render `DragRemeasure` too, so the lists are measured again after the move.
|
|
108
|
+
*/
|
|
109
|
+
function useDragAcrossLists(collisionDetection) {
|
|
110
|
+
const box = useRef({
|
|
111
|
+
overSelf: false,
|
|
112
|
+
justMoved: false,
|
|
113
|
+
frame: 0
|
|
114
|
+
});
|
|
115
|
+
return useMemo(() => {
|
|
116
|
+
const clearFrame = () => {
|
|
117
|
+
const state = box.current;
|
|
118
|
+
if (state.frame && typeof cancelAnimationFrame !== "undefined") cancelAnimationFrame(state.frame);
|
|
119
|
+
state.frame = 0;
|
|
120
|
+
};
|
|
121
|
+
return {
|
|
122
|
+
collisionDetection: (args) => (box.current.justMoved || box.current.overSelf) && args.active ? [{ id: args.active.id }] : collisionDetection(args),
|
|
123
|
+
coordinateGetter: (event, args) => {
|
|
124
|
+
box.current.overSelf = false;
|
|
125
|
+
return listKeyboardCoordinates(event, args);
|
|
126
|
+
},
|
|
127
|
+
moved: (viaKeyboard) => {
|
|
128
|
+
const state = box.current;
|
|
129
|
+
state.justMoved = true;
|
|
130
|
+
if (viaKeyboard) state.overSelf = true;
|
|
131
|
+
clearFrame();
|
|
132
|
+
if (typeof requestAnimationFrame === "undefined") {
|
|
133
|
+
state.justMoved = false;
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
state.frame = requestAnimationFrame(() => {
|
|
137
|
+
state.frame = requestAnimationFrame(() => {
|
|
138
|
+
state.justMoved = false;
|
|
139
|
+
state.frame = 0;
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
},
|
|
143
|
+
reset: () => {
|
|
144
|
+
clearFrame();
|
|
145
|
+
box.current.overSelf = false;
|
|
146
|
+
box.current.justMoved = false;
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
}, [collisionDetection]);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Measures every drop target again once an item's move into another list has
|
|
153
|
+
* rendered. dnd-kit's own observers skip targets whose size didn't change,
|
|
154
|
+
* even when they moved. Render it inside the `DndContext`.
|
|
155
|
+
*/
|
|
156
|
+
function DragRemeasure({ version }) {
|
|
157
|
+
const context = useDndContext();
|
|
158
|
+
const latest = useRef(context);
|
|
159
|
+
useLayoutEffect(() => {
|
|
160
|
+
latest.current = context;
|
|
161
|
+
});
|
|
162
|
+
useLayoutEffect(() => {
|
|
163
|
+
const { active, droppableContainers } = latest.current;
|
|
164
|
+
if (active) latest.current.measureDroppableContainers([...droppableContainers.keys()]);
|
|
165
|
+
}, [version]);
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
//#endregion
|
|
169
|
+
export { DRAG_KEYBOARD_CODES, DragRemeasure, MOUSE_DRAG_DISTANCE_PX, listKeyboardCoordinates, useDragAcrossLists, useDragSensors };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
//#region src/components/drag/drag.recipe.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* The lift look, for a copy drawn outside `DragLift`: an opaque popover
|
|
4
|
+
* surface, `shadow-float` and the `line-seam` ring. No scale, no tilt.
|
|
5
|
+
*/
|
|
6
|
+
export declare const LIFT_CLASS = "bg-layer-popover shadow-float ring-1 ring-line-seam";
|
|
7
|
+
//#endregion
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { tv } from "../../lib/tv.mjs";
|
|
2
|
+
//#region src/components/drag/drag.recipe.ts
|
|
3
|
+
/**
|
|
4
|
+
* The lift look, for a copy drawn outside `DragLift`: an opaque popover
|
|
5
|
+
* surface, `shadow-float` and the `line-seam` ring. No scale, no tilt.
|
|
6
|
+
*/
|
|
7
|
+
const LIFT_CLASS = "bg-layer-popover shadow-float ring-1 ring-line-seam";
|
|
8
|
+
const drag = tv({
|
|
9
|
+
slots: {
|
|
10
|
+
lift: [
|
|
11
|
+
"pointer-events-none size-full",
|
|
12
|
+
"rounded-control",
|
|
13
|
+
LIFT_CLASS
|
|
14
|
+
],
|
|
15
|
+
placeholder: [
|
|
16
|
+
"pointer-events-none box-border",
|
|
17
|
+
"rounded-control",
|
|
18
|
+
"border-[1.5px] border-dashed border-line-strong bg-fill-subtle"
|
|
19
|
+
],
|
|
20
|
+
hint: [
|
|
21
|
+
"pointer-events-none fixed top-0 left-0 z-70 max-w-80",
|
|
22
|
+
"rounded-chip px-2 py-1",
|
|
23
|
+
"font-sans text-caption",
|
|
24
|
+
"bg-layer-hud text-foreground-on-hud shadow-float ring-1 ring-line-seam"
|
|
25
|
+
]
|
|
26
|
+
},
|
|
27
|
+
variants: { opaque: { true: { placeholder: ["bg-layer-canvas", "bg-[linear-gradient(var(--fill-subtle),var(--fill-subtle))]"] } } }
|
|
28
|
+
});
|
|
29
|
+
//#endregion
|
|
30
|
+
export { LIFT_CLASS, drag };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ComponentPropsWithRef } from "react";
|
|
2
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
3
|
+
//#region src/components/drag/drop-placeholder.d.ts
|
|
4
|
+
export type DropPlaceholderProps = useRender.ComponentProps<"div"> & {
|
|
5
|
+
/**
|
|
6
|
+
* In a layout (the gap a column makes, a new column's strip): an opaque
|
|
7
|
+
* `layer-canvas` under the `fill-subtle` wash, so the column behind the gap
|
|
8
|
+
* doesn't show through while its sections reflow. Nothing is drawn over
|
|
9
|
+
* live content (design/patterns/drag-and-drop.md#where-it-will-land).
|
|
10
|
+
*/
|
|
11
|
+
opaque?: boolean;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Where a dragged item will land (design/patterns/drag-and-drop.md#where-it-will-land):
|
|
15
|
+
* a 1.5px dashed `line-strong` outline on `fill-subtle`, with the item's
|
|
16
|
+
* radius and size. One look for every place. The control radius is the
|
|
17
|
+
* default; pass the item's own (`rounded-container` for a card). Hidden from
|
|
18
|
+
* assistive technology: the announcements say where the item is.
|
|
19
|
+
*/
|
|
20
|
+
export declare function DropPlaceholder({ opaque, className, render, ...props }: DropPlaceholderProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
21
|
+
export type DragRefusalHintProps = Omit<ComponentPropsWithRef<"div">, "children" | "ref"> & {
|
|
22
|
+
/** Why the place under the hand won't take the item, such as "Can't move from Todo to Done". */
|
|
23
|
+
children: string;
|
|
24
|
+
/** Render the hint in another element; by default it renders in `document.body`. */
|
|
25
|
+
container?: Element | DocumentFragment | null;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Shown while the hand is over a place that refuses the item
|
|
29
|
+
* (design/patterns/drag-and-drop.md#refused-places): the reason, in a HUD
|
|
30
|
+
* chip by the pointer (by the lifted copy in a keyboard drag), and the
|
|
31
|
+
* not-allowed cursor. Render it only while the place is refused, inside the
|
|
32
|
+
* `DndContext`, with no placeholder anywhere. Announce the reason as well:
|
|
33
|
+
* the chip is not read out.
|
|
34
|
+
*
|
|
35
|
+
* The chip sits right of and below the pointer. Near the window's right edge
|
|
36
|
+
* it goes left of the pointer and of the lifted copy, near the bottom edge
|
|
37
|
+
* above the pointer; it never sits under the copy, and always stays 8px inside
|
|
38
|
+
* the window. Its size is measured when its content changes, not every frame.
|
|
39
|
+
*/
|
|
40
|
+
export declare function DragRefusalHint({ children, container, className, style, ...props }: DragRefusalHintProps): import("react").ReactPortal | null;
|
|
41
|
+
//#endregion
|