@botiverse/raft-ui 0.50.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 +32 -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 -17053
- 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 -1222
- package/dist/wip.mjs +43 -3079
- package/package.json +8 -1
- package/dist/inbox-item-B4nNvpp1.d.mts +0 -1784
- package/dist/inbox-item-DHJOrxB8.mjs +0 -7454
- package/dist/style.css +0 -1395
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
import { MessageEmbed, MessageEmbedContent, MessageEmbedFooter, MessageEmbedHeader } from "../message-embed/message-embed.mjs";
|
|
2
|
+
import { MessageImageGallery, MessageImageGalleryItem } from "../message-attachment/message-image-gallery.mjs";
|
|
3
|
+
import { messageForwardedBundle, messageForwardedBundleGallery, messageForwardedBundleItem } from "./message-forwarded-bundle.recipe.mjs";
|
|
4
|
+
import { Children, createContext, useCallback, useContext, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import { mergeProps } from "@base-ui/react/merge-props";
|
|
7
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
8
|
+
//#region src/components/message-forwarded-bundle/message-forwarded-bundle.tsx
|
|
9
|
+
const MessageForwardedBundleFoldContext = createContext(null);
|
|
10
|
+
/**
|
|
11
|
+
* The card folds when the items' text renders beyond this many lines in
|
|
12
|
+
* total. This is the component's own rule — consumers render the parts and get
|
|
13
|
+
* the fold for free — and it is measured from the rendered content, so
|
|
14
|
+
* wrapping, zoom and language do not need to be modelled anywhere.
|
|
15
|
+
*/
|
|
16
|
+
const FOLD_LINE_LIMIT = 8;
|
|
17
|
+
/** Fallback line height when the computed style reports `normal`. */
|
|
18
|
+
const FOLD_LINE_HEIGHT_FALLBACK = 20;
|
|
19
|
+
function measureLineHeight(slot) {
|
|
20
|
+
if (!slot) return FOLD_LINE_HEIGHT_FALLBACK;
|
|
21
|
+
return Number.parseFloat(getComputedStyle(slot).lineHeight) || FOLD_LINE_HEIGHT_FALLBACK;
|
|
22
|
+
}
|
|
23
|
+
function exceedsFoldLineLimit(slots, lineHeight, lineLimit) {
|
|
24
|
+
if (slots.length === 0) return false;
|
|
25
|
+
return slots.reduce((height, slot) => height + slot.getBoundingClientRect().height, 0) > lineHeight * lineLimit + 1;
|
|
26
|
+
}
|
|
27
|
+
function MessageForwardedBundle({ className, fullWidth = false, render, ...props }) {
|
|
28
|
+
const { root } = messageForwardedBundle({ fullWidth });
|
|
29
|
+
const [collapsed, setCollapsed] = useState(false);
|
|
30
|
+
const [foldable, setFoldable] = useState(false);
|
|
31
|
+
const [auto, setAuto] = useState(false);
|
|
32
|
+
const touchedRef = useRef(false);
|
|
33
|
+
const toggle = useCallback(() => {
|
|
34
|
+
touchedRef.current = true;
|
|
35
|
+
setCollapsed((current) => !current);
|
|
36
|
+
}, []);
|
|
37
|
+
const reportFold = useCallback((nextFoldable) => {
|
|
38
|
+
setFoldable(nextFoldable);
|
|
39
|
+
setAuto(true);
|
|
40
|
+
if (!nextFoldable) setCollapsed(false);
|
|
41
|
+
else if (!touchedRef.current) setCollapsed(true);
|
|
42
|
+
}, []);
|
|
43
|
+
const fold = useMemo(() => ({
|
|
44
|
+
collapsed,
|
|
45
|
+
foldable,
|
|
46
|
+
auto,
|
|
47
|
+
toggle,
|
|
48
|
+
reportFold
|
|
49
|
+
}), [
|
|
50
|
+
collapsed,
|
|
51
|
+
foldable,
|
|
52
|
+
auto,
|
|
53
|
+
toggle,
|
|
54
|
+
reportFold
|
|
55
|
+
]);
|
|
56
|
+
return /* @__PURE__ */ jsx(MessageForwardedBundleFoldContext.Provider, {
|
|
57
|
+
value: fold,
|
|
58
|
+
children: /* @__PURE__ */ jsx(MessageEmbed, {
|
|
59
|
+
className: root({ className }),
|
|
60
|
+
render,
|
|
61
|
+
...props
|
|
62
|
+
})
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
function MessageForwardedBundleHeader({ className, render, ...props }) {
|
|
66
|
+
const { header } = messageForwardedBundle();
|
|
67
|
+
return /* @__PURE__ */ jsx(MessageEmbedHeader, {
|
|
68
|
+
className: header({ className }),
|
|
69
|
+
render,
|
|
70
|
+
...props
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
function MessageForwardedBundleHeaderContent({ className, render, ...props }) {
|
|
74
|
+
const { headerContent } = messageForwardedBundle();
|
|
75
|
+
return useRender({
|
|
76
|
+
defaultTagName: "div",
|
|
77
|
+
render,
|
|
78
|
+
props: mergeProps({ className: headerContent({ className }) }, props),
|
|
79
|
+
state: { slot: "message-forwarded-bundle-header-content" }
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
function MessageForwardedBundleHeaderLabel({ className, render, ...props }) {
|
|
83
|
+
const { headerLabel } = messageForwardedBundle();
|
|
84
|
+
return useRender({
|
|
85
|
+
defaultTagName: "span",
|
|
86
|
+
render,
|
|
87
|
+
props: mergeProps({ className: headerLabel({ className }) }, props),
|
|
88
|
+
state: { slot: "message-forwarded-bundle-header-label" }
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
function MessageForwardedBundleHeaderCount({ className, render, ...props }) {
|
|
92
|
+
const { headerCount } = messageForwardedBundle();
|
|
93
|
+
return useRender({
|
|
94
|
+
defaultTagName: "span",
|
|
95
|
+
render,
|
|
96
|
+
props: mergeProps({ className: headerCount({ className }) }, props),
|
|
97
|
+
state: { slot: "message-forwarded-bundle-header-count" }
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* The items surface. Without a `collapsed` prop the fold is component-owned:
|
|
102
|
+
* the surface measures its item-content slots and collapses itself to
|
|
103
|
+
* `foldLineLimit` lines when the text renders beyond that many lines in total
|
|
104
|
+
* (eight by default). Passing `collapsed` switches to the controlled mode
|
|
105
|
+
* (the detail view pins everything open) and skips the measurement.
|
|
106
|
+
*/
|
|
107
|
+
function MessageForwardedBundleItems({ className, collapsed, foldLineLimit = FOLD_LINE_LIMIT, render, style, ...props }) {
|
|
108
|
+
const fold = useContext(MessageForwardedBundleFoldContext);
|
|
109
|
+
const controlled = collapsed !== void 0;
|
|
110
|
+
const isCollapsed = controlled ? collapsed : fold?.collapsed ?? false;
|
|
111
|
+
const { items } = messageForwardedBundle({ collapsed: isCollapsed });
|
|
112
|
+
const containerRef = useRef(null);
|
|
113
|
+
const [foldHeight, setFoldHeight] = useState(null);
|
|
114
|
+
useLayoutEffect(() => {
|
|
115
|
+
if (controlled || !fold) return;
|
|
116
|
+
const container = containerRef.current;
|
|
117
|
+
if (!container) return;
|
|
118
|
+
let cancelled = false;
|
|
119
|
+
const measure = () => {
|
|
120
|
+
if (cancelled) return;
|
|
121
|
+
const slots = [...container.querySelectorAll("[data-slot=\"message-forwarded-bundle-item-content\"]")];
|
|
122
|
+
const lineHeight = measureLineHeight(slots[0]);
|
|
123
|
+
fold.reportFold(exceedsFoldLineLimit(slots, lineHeight, foldLineLimit));
|
|
124
|
+
setFoldHeight(slots.length > 0 ? lineHeight * foldLineLimit : null);
|
|
125
|
+
};
|
|
126
|
+
measure();
|
|
127
|
+
const resizeObserver = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(measure);
|
|
128
|
+
resizeObserver?.observe(container);
|
|
129
|
+
const mutationObserver = typeof MutationObserver === "undefined" ? null : new MutationObserver(measure);
|
|
130
|
+
mutationObserver?.observe(container, {
|
|
131
|
+
childList: true,
|
|
132
|
+
subtree: true,
|
|
133
|
+
characterData: true
|
|
134
|
+
});
|
|
135
|
+
return () => {
|
|
136
|
+
cancelled = true;
|
|
137
|
+
resizeObserver?.disconnect();
|
|
138
|
+
mutationObserver?.disconnect();
|
|
139
|
+
};
|
|
140
|
+
}, [
|
|
141
|
+
controlled,
|
|
142
|
+
fold,
|
|
143
|
+
foldLineLimit
|
|
144
|
+
]);
|
|
145
|
+
const clampStyle = useMemo(() => isCollapsed && foldHeight !== null ? { maxHeight: `${foldHeight}px` } : void 0, [isCollapsed, foldHeight]);
|
|
146
|
+
const mergedStyle = useMemo(() => clampStyle || style ? {
|
|
147
|
+
...clampStyle,
|
|
148
|
+
...style
|
|
149
|
+
} : void 0, [clampStyle, style]);
|
|
150
|
+
const tightFold = foldHeight !== null && foldHeight < 60;
|
|
151
|
+
return /* @__PURE__ */ jsx(MessageEmbedContent, {
|
|
152
|
+
ref: containerRef,
|
|
153
|
+
className: items({ className }),
|
|
154
|
+
"data-collapsed": isCollapsed || void 0,
|
|
155
|
+
"data-tight-fold": tightFold || void 0,
|
|
156
|
+
style: mergedStyle,
|
|
157
|
+
render,
|
|
158
|
+
...props
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
function MessageForwardedBundleItem({ className, render, ...props }) {
|
|
162
|
+
const { root } = messageForwardedBundleItem();
|
|
163
|
+
return useRender({
|
|
164
|
+
defaultTagName: "article",
|
|
165
|
+
render,
|
|
166
|
+
props: mergeProps({ className: root({ className }) }, props),
|
|
167
|
+
state: { slot: "message-forwarded-bundle-item" }
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
function MessageForwardedBundleItemMeta({ className, render, ...props }) {
|
|
171
|
+
const { meta } = messageForwardedBundleItem();
|
|
172
|
+
return useRender({
|
|
173
|
+
defaultTagName: "div",
|
|
174
|
+
render,
|
|
175
|
+
props: mergeProps({ className: meta({ className }) }, props),
|
|
176
|
+
state: { slot: "message-forwarded-bundle-item-meta" }
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
function MessageForwardedBundleItemAuthor({ className, render, ...props }) {
|
|
180
|
+
const { author } = messageForwardedBundleItem();
|
|
181
|
+
return useRender({
|
|
182
|
+
defaultTagName: "span",
|
|
183
|
+
render,
|
|
184
|
+
props: mergeProps({ className: author({ className }) }, props),
|
|
185
|
+
state: { slot: "message-forwarded-bundle-item-author" }
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* The item's text body. The component-owned fold measures these slots: when
|
|
190
|
+
* their combined content renders beyond the fold line limit the card folds.
|
|
191
|
+
*/
|
|
192
|
+
function MessageForwardedBundleItemContent({ className, render, ...props }) {
|
|
193
|
+
const { itemContent } = messageForwardedBundleItem();
|
|
194
|
+
return useRender({
|
|
195
|
+
defaultTagName: "div",
|
|
196
|
+
render,
|
|
197
|
+
props: mergeProps({ className: itemContent({ className }) }, props),
|
|
198
|
+
state: { slot: "message-forwarded-bundle-item-content" }
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
function MessageForwardedBundleAttachments({ className, render, ...props }) {
|
|
202
|
+
const { attachments } = messageForwardedBundleItem();
|
|
203
|
+
return useRender({
|
|
204
|
+
defaultTagName: "div",
|
|
205
|
+
render,
|
|
206
|
+
props: mergeProps({ className: attachments({ className }) }, props),
|
|
207
|
+
state: { slot: "message-forwarded-bundle-attachments" }
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
function MessageForwardedBundleAttachment({ className, interactive = false, render, ...props }) {
|
|
211
|
+
const { attachment } = messageForwardedBundleItem({ action: interactive ? "interactive" : "static" });
|
|
212
|
+
return useRender({
|
|
213
|
+
defaultTagName: "span",
|
|
214
|
+
render,
|
|
215
|
+
props: mergeProps({ className: attachment({ className }) }, props),
|
|
216
|
+
state: { slot: "message-forwarded-bundle-attachment" }
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
function MessageForwardedBundleAttachmentName({ className, render, ...props }) {
|
|
220
|
+
const { attachmentName } = messageForwardedBundleItem();
|
|
221
|
+
return useRender({
|
|
222
|
+
defaultTagName: "span",
|
|
223
|
+
render,
|
|
224
|
+
props: mergeProps({ className: attachmentName({ className }) }, props),
|
|
225
|
+
state: { slot: "message-forwarded-bundle-attachment-name" }
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
function MessageForwardedBundleAttachmentMeta({ className, render, ...props }) {
|
|
229
|
+
const { attachmentMeta } = messageForwardedBundleItem();
|
|
230
|
+
return useRender({
|
|
231
|
+
defaultTagName: "span",
|
|
232
|
+
render,
|
|
233
|
+
props: mergeProps({ className: attachmentMeta({ className }) }, props),
|
|
234
|
+
state: { slot: "message-forwarded-bundle-attachment-meta" }
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
function MessageForwardedBundleFooter({ className, render, ...props }) {
|
|
238
|
+
const fold = useContext(MessageForwardedBundleFoldContext);
|
|
239
|
+
if (fold?.auto && !fold.foldable) return null;
|
|
240
|
+
return /* @__PURE__ */ jsx(MessageEmbedFooter, {
|
|
241
|
+
className,
|
|
242
|
+
render,
|
|
243
|
+
...props
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
function MessageForwardedBundleSource({ className, render, ...props }) {
|
|
247
|
+
const { source } = messageForwardedBundle();
|
|
248
|
+
return useRender({
|
|
249
|
+
defaultTagName: "button",
|
|
250
|
+
render,
|
|
251
|
+
props: mergeProps({
|
|
252
|
+
type: "button",
|
|
253
|
+
className: source({ className })
|
|
254
|
+
}, props),
|
|
255
|
+
state: { slot: "message-forwarded-bundle-source" }
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
function MessageForwardedBundleSourceLabel({ className, render, ...props }) {
|
|
259
|
+
const { sourceLabel } = messageForwardedBundle();
|
|
260
|
+
return useRender({
|
|
261
|
+
defaultTagName: "span",
|
|
262
|
+
render,
|
|
263
|
+
props: mergeProps({ className: sourceLabel({ className }) }, props),
|
|
264
|
+
state: { slot: "message-forwarded-bundle-source-label" }
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
function MessageForwardedBundleFooterAction({ className, render, onClick, children, expandedContent, ...props }) {
|
|
268
|
+
const fold = useContext(MessageForwardedBundleFoldContext);
|
|
269
|
+
const { footerAction } = messageForwardedBundle();
|
|
270
|
+
const handleClick = useCallback((event) => {
|
|
271
|
+
onClick?.(event);
|
|
272
|
+
if (!event.defaultPrevented) fold?.toggle();
|
|
273
|
+
}, [fold, onClick]);
|
|
274
|
+
const expanded = fold ? fold.auto && !fold.collapsed : false;
|
|
275
|
+
return useRender({
|
|
276
|
+
defaultTagName: "button",
|
|
277
|
+
render,
|
|
278
|
+
props: mergeProps({
|
|
279
|
+
type: "button",
|
|
280
|
+
className: footerAction({ className }),
|
|
281
|
+
onClick: handleClick,
|
|
282
|
+
"aria-expanded": fold?.auto ? expanded : void 0,
|
|
283
|
+
children: expanded && expandedContent !== void 0 ? expandedContent : children
|
|
284
|
+
}, props),
|
|
285
|
+
state: { slot: "message-forwarded-bundle-footer-action" }
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
/**
|
|
289
|
+
* Image rows for forwarded attachments. The gallery owns the layout — rows of
|
|
290
|
+
* three (a lone row of exactly four splits two-and-two) at the message gallery
|
|
291
|
+
* row heights — and composes the shared MessageImageGallery surfaces, so
|
|
292
|
+
* forwarded images are the same component family as images in a message.
|
|
293
|
+
* Consumers only place the media (`MessageForwardedBundleGalleryTile`).
|
|
294
|
+
*/
|
|
295
|
+
function MessageForwardedBundleGallery({ className, children, ...props }) {
|
|
296
|
+
const { root, row } = messageForwardedBundleGallery();
|
|
297
|
+
const items = Children.toArray(children);
|
|
298
|
+
const chunkSize = items.length === 4 ? 2 : 3;
|
|
299
|
+
const rows = [];
|
|
300
|
+
for (let index = 0; index < items.length; index += chunkSize) rows.push(items.slice(index, index + chunkSize));
|
|
301
|
+
return /* @__PURE__ */ jsx(MessageImageGallery, {
|
|
302
|
+
className: root({ className }),
|
|
303
|
+
...props,
|
|
304
|
+
children: rows.map((rowItems, index) => /* @__PURE__ */ jsx("div", {
|
|
305
|
+
className: row({ count: rowItems.length }),
|
|
306
|
+
"data-slot": "message-forwarded-bundle-gallery-row",
|
|
307
|
+
children: rowItems
|
|
308
|
+
}, index))
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* A media cell in the forwarded gallery rows: the shared message gallery item
|
|
313
|
+
* (its surface and rounding come from MessageImageGalleryItem).
|
|
314
|
+
*/
|
|
315
|
+
function MessageForwardedBundleGalleryTile({ className, render, ...props }) {
|
|
316
|
+
const { tile } = messageForwardedBundleGallery();
|
|
317
|
+
return /* @__PURE__ */ jsx(MessageImageGalleryItem, {
|
|
318
|
+
className: tile({ className }),
|
|
319
|
+
render,
|
|
320
|
+
...props
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
//#endregion
|
|
324
|
+
export { MessageForwardedBundle, MessageForwardedBundleAttachment, MessageForwardedBundleAttachmentMeta, MessageForwardedBundleAttachmentName, MessageForwardedBundleAttachments, MessageForwardedBundleFooter, MessageForwardedBundleFooterAction, MessageForwardedBundleGallery, MessageForwardedBundleGalleryTile, MessageForwardedBundleHeader, MessageForwardedBundleHeaderContent, MessageForwardedBundleHeaderCount, MessageForwardedBundleHeaderLabel, MessageForwardedBundleItem, MessageForwardedBundleItemAuthor, MessageForwardedBundleItemContent, MessageForwardedBundleItemMeta, MessageForwardedBundleItems, MessageForwardedBundleSource, MessageForwardedBundleSourceLabel };
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { tv } from "../../lib/tv.mjs";
|
|
2
|
+
//#region src/components/message-forwarded-bundle/message-forwarded-bundle.recipe.ts
|
|
3
|
+
const messageForwardedBundle = tv({
|
|
4
|
+
slots: {
|
|
5
|
+
root: ["mt-1 max-w-[min(34rem,100%)]"],
|
|
6
|
+
header: ["flex flex-wrap items-center justify-between", "gap-2"],
|
|
7
|
+
headerContent: ["flex min-w-0 items-center", "gap-2"],
|
|
8
|
+
headerLabel: ["inline-flex shrink-0 items-center", "gap-1 text-footnote font-bold text-foreground-muted [&_svg]:size-3.5"],
|
|
9
|
+
headerCount: ["shrink-0", "font-mono text-mono-meta text-foreground-hint"],
|
|
10
|
+
source: [
|
|
11
|
+
"min-w-0 truncate",
|
|
12
|
+
"inline-flex items-center gap-1 rounded-[2px] text-caption font-semibold text-foreground-hint",
|
|
13
|
+
"decoration-[1.5px] underline-offset-[3px] hover:text-foreground hover:underline",
|
|
14
|
+
"outline-none focus-visible:shadow-focus",
|
|
15
|
+
"[&_svg]:size-3.5"
|
|
16
|
+
],
|
|
17
|
+
sourceLabel: ["min-w-0 truncate", "inline-flex items-center gap-1 text-caption text-foreground-hint [&_svg]:size-3.5"],
|
|
18
|
+
items: ["relative", ""],
|
|
19
|
+
footerAction: [
|
|
20
|
+
"inline-flex items-center gap-1 rounded-[2px] text-footnote font-semibold text-foreground",
|
|
21
|
+
"decoration-[1.5px] underline-offset-[3px] hover:underline",
|
|
22
|
+
"outline-none focus-visible:shadow-focus"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
variants: {
|
|
26
|
+
fullWidth: { true: { root: "w-full max-w-none" } },
|
|
27
|
+
collapsed: { true: { items: ["max-h-40 overflow-clip", "mask-fade-b data-tight-fold:mask-fade-b-edge"] } }
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
const messageForwardedBundleItem = tv({
|
|
31
|
+
slots: {
|
|
32
|
+
root: ["px-3 py-2.5 text-body text-foreground"],
|
|
33
|
+
meta: ["flex min-w-0 flex-wrap items-center", "mb-0.5 gap-1.5 font-mono text-mono-meta tabular-nums text-foreground-hint"],
|
|
34
|
+
author: ["font-sans text-footnote font-bold text-foreground"],
|
|
35
|
+
/** The item's text body — also the fold measurement's reading surface. */
|
|
36
|
+
itemContent: ["min-w-0 max-w-full wrap-break-word"],
|
|
37
|
+
attachments: ["flex flex-wrap", "mt-1.5 gap-1.5"],
|
|
38
|
+
attachment: [
|
|
39
|
+
"inline-flex max-w-full items-center",
|
|
40
|
+
"h-[22px] gap-1 rounded-chip bg-fill-muted pr-[6.5px] pl-[5.5px]",
|
|
41
|
+
"text-caption font-semibold text-foreground [&_svg]:size-3.5"
|
|
42
|
+
],
|
|
43
|
+
attachmentName: ["min-w-0 truncate"],
|
|
44
|
+
attachmentMeta: ["shrink-0", "font-mono font-normal text-foreground-hint"]
|
|
45
|
+
},
|
|
46
|
+
variants: {
|
|
47
|
+
/**
|
|
48
|
+
* `interactive` marks an attachment the consumer wired to open (preview
|
|
49
|
+
* or download). The affordance is style-only here; the element and the
|
|
50
|
+
* action stay with the consumer via `render`.
|
|
51
|
+
*/
|
|
52
|
+
action: {
|
|
53
|
+
static: {},
|
|
54
|
+
interactive: { attachment: [
|
|
55
|
+
"cursor-pointer focus-visible:keyboard:outline-2 focus-visible:keyboard:outline-offset-2 focus-visible:keyboard:outline-line-strong",
|
|
56
|
+
"hover:overlay-medium active:overlay-medium",
|
|
57
|
+
"focus-visible:outline-none focus-visible:shadow-focus"
|
|
58
|
+
] }
|
|
59
|
+
} },
|
|
60
|
+
defaultVariants: { action: "static" }
|
|
61
|
+
});
|
|
62
|
+
/**
|
|
63
|
+
* Image rows for forwarded attachments: message-scale rows that compose the
|
|
64
|
+
* shared MessageImageGallery surfaces, so forwarded images read the same as
|
|
65
|
+
* images in a message. The component owns the layout (rows of three; a lone
|
|
66
|
+
* row of exactly four splits two-and-two) and the consumer owns the media.
|
|
67
|
+
*/
|
|
68
|
+
const messageForwardedBundleGallery = tv({
|
|
69
|
+
slots: {
|
|
70
|
+
root: ["@container/bundle w-full min-w-0"],
|
|
71
|
+
row: ["grid gap-2"],
|
|
72
|
+
tile: ["[&_img]:block [&_img]:size-full [&_img]:object-cover"]
|
|
73
|
+
},
|
|
74
|
+
variants: { count: {
|
|
75
|
+
1: { row: "grid-cols-1 auto-rows-[8rem] @min-[360px]/bundle:auto-rows-[9rem]" },
|
|
76
|
+
2: { row: "grid-cols-2 auto-rows-[8rem] @min-[360px]/bundle:auto-rows-[9rem]" },
|
|
77
|
+
3: { row: "grid-cols-2 auto-rows-[7rem] @min-[360px]/bundle:auto-rows-[8rem] @min-[360px]/bundle:grid-cols-3" }
|
|
78
|
+
} }
|
|
79
|
+
});
|
|
80
|
+
//#endregion
|
|
81
|
+
export { messageForwardedBundle, messageForwardedBundleGallery, messageForwardedBundleItem };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { MessageItem, MessageItemProps } from "./message-item-root.mjs";
|
|
2
|
+
import { MessageItemAvatarSlot, MessageItemAvatarSlotProps, MessageItemContinuationTime, MessageItemContinuationTimeProps, MessageItemGutter, MessageItemGutterProps } from "./message-item-gutter.mjs";
|
|
3
|
+
import { MessageItemAttachments, MessageItemAttachmentsProps, MessageItemBody, MessageItemBodyProps, MessageItemContent, MessageItemContentProps, MessageItemEdited, MessageItemEditedProps, MessageItemEmbedded, MessageItemEmbeddedProps, MessageItemFooter, MessageItemFooterProps, MessageItemSearchMatch, MessageItemSearchMatchProps } from "./message-item-content.mjs";
|
|
4
|
+
import { MessageItemHeader, MessageItemHeaderProps, MessageItemInlineStatus, MessageItemInlineStatusProps, MessageItemMeta, MessageItemMetaProps, MessageItemSender, MessageItemSenderBadges, MessageItemSenderBadgesProps, MessageItemSenderButton, MessageItemSenderButtonProps, MessageItemSenderGroup, MessageItemSenderGroupProps, MessageItemSenderProps, MessageItemTime, MessageItemTimeProps } from "./message-item-header.mjs";
|
|
5
|
+
import { MessageItemDelegatedAvatar, MessageItemDelegatedAvatarProps, MessageItemDelegatedBy, MessageItemDelegatedByButton, MessageItemDelegatedByButtonProps, MessageItemDelegatedByName, MessageItemDelegatedByNameProps, MessageItemDelegatedByProps } from "./message-item-delegated.mjs";
|
|
6
|
+
import { MessageItemToolbar, MessageItemToolbarButton, MessageItemToolbarButtonProps, MessageItemToolbarProps } from "./message-item-toolbar.mjs";
|
|
7
|
+
import { MessageItemBadge, MessageItemBadgeProps, MessageItemBadgeSeparator, MessageItemBadgeSeparatorProps, MessageItemBadgeStatus, MessageItemReadReceipt, MessageItemReadReceiptProps, MessageItemSavedIndicator, MessageItemSavedIndicatorProps } from "./message-footer.mjs";
|
|
8
|
+
import { MessageReactionAddButton, MessageReactionAddButtonProps, MessageReactionChip, MessageReactionChipProps, MessageReactionCount, MessageReactionCountProps, MessageReactionErrorIndicator, MessageReactionErrorIndicatorProps, MessageReactionGlyph, MessageReactionGlyphProps, MessageReactionPickerContent, MessageReactionPickerContentProps, MessageReactionPickerStatic, MessageReactionPickerStaticProps, MessageReactionQuickButton, MessageReactionQuickButtonProps, MessageReactionQuickRow, MessageReactionQuickRowProps, MessageReactionTooltipContent, MessageReactionTooltipContentProps, MessageReactionTooltipMeta, MessageReactionTooltipMetaProps, MessageReactionTooltipName, MessageReactionTooltipNameProps, MessageReactionTooltipNameText, MessageReactionTooltipNameTextProps, MessageReactionTooltipNames, MessageReactionTooltipNamesProps, MessageReactionTooltipSeparator, MessageReactionTooltipSeparatorProps } from "./message-reaction.mjs";
|
|
9
|
+
import { MessageReferenceChipVariant, MessageReferenceTextVariant } from "./message-reference.recipe.mjs";
|
|
10
|
+
import { MessageReferenceChip, MessageReferenceChipProps, MessageReferenceIcon, MessageReferenceIconProps, MessageReferenceIndicator, MessageReferenceIndicatorProps, MessageReferenceLabel, MessageReferenceLabelProps, MessageReferencePending, MessageReferencePendingProps, MessageReferenceReadMark, MessageReferenceReadMarkProps, MessageReferenceSuffix, MessageReferenceSuffixProps, MessageReferenceText, MessageReferenceTextProps, MessageReferenceUnavailable, MessageReferenceUnavailableProps } from "./message-reference.mjs";
|
|
11
|
+
import { MessageMultiSelect, MessageMultiSelectCheckbox, MessageMultiSelectCheckboxProps, MessageMultiSelectProps, MessageMultiSelectToolbar, MessageMultiSelectToolbarActions, MessageMultiSelectToolbarActionsProps, MessageMultiSelectToolbarProps } from "./message-multi-select.mjs";
|
|
12
|
+
import { MessageTextSelectionAnchor, MessageTextSelectionToolbar, MessageTextSelectionToolbarButton, MessageTextSelectionToolbarButtonProps, MessageTextSelectionToolbarProps, MessageTextSelectionToolbarSeparator, MessageTextSelectionToolbarSeparatorProps, createMessageTextSelectionAnchor } from "./message-text-selection-toolbar.mjs";
|
|
13
|
+
export { MessageItem, MessageItemAttachments, type MessageItemAttachmentsProps, MessageItemAvatarSlot, type MessageItemAvatarSlotProps, MessageItemBadge, type MessageItemBadgeProps, MessageItemBadgeSeparator, type MessageItemBadgeSeparatorProps, type MessageItemBadgeStatus, MessageItemBody, type MessageItemBodyProps, MessageItemContent, type MessageItemContentProps, MessageItemContinuationTime, type MessageItemContinuationTimeProps, MessageItemDelegatedAvatar, type MessageItemDelegatedAvatarProps, MessageItemDelegatedBy, MessageItemDelegatedByButton, type MessageItemDelegatedByButtonProps, MessageItemDelegatedByName, type MessageItemDelegatedByNameProps, type MessageItemDelegatedByProps, MessageItemEdited, type MessageItemEditedProps, MessageItemEmbedded, type MessageItemEmbeddedProps, MessageItemFooter, type MessageItemFooterProps, MessageItemGutter, type MessageItemGutterProps, MessageItemHeader, type MessageItemHeaderProps, MessageItemInlineStatus, type MessageItemInlineStatusProps, MessageItemMeta, type MessageItemMetaProps, type MessageItemProps, MessageItemReadReceipt, type MessageItemReadReceiptProps, MessageItemSavedIndicator, type MessageItemSavedIndicatorProps, MessageItemSearchMatch, type MessageItemSearchMatchProps, MessageItemSender, MessageItemSenderBadges, type MessageItemSenderBadgesProps, MessageItemSenderButton, type MessageItemSenderButtonProps, MessageItemSenderGroup, type MessageItemSenderGroupProps, type MessageItemSenderProps, MessageItemTime, type MessageItemTimeProps, MessageItemToolbar, MessageItemToolbarButton, type MessageItemToolbarButtonProps, type MessageItemToolbarProps, MessageMultiSelect, MessageMultiSelectCheckbox, type MessageMultiSelectCheckboxProps, type MessageMultiSelectProps, MessageMultiSelectToolbar, MessageMultiSelectToolbarActions, type MessageMultiSelectToolbarActionsProps, type MessageMultiSelectToolbarProps, MessageReactionAddButton, type MessageReactionAddButtonProps, MessageReactionChip, type MessageReactionChipProps, MessageReactionCount, type MessageReactionCountProps, MessageReactionErrorIndicator, type MessageReactionErrorIndicatorProps, MessageReactionGlyph, type MessageReactionGlyphProps, MessageReactionPickerContent, type MessageReactionPickerContentProps, MessageReactionPickerStatic, type MessageReactionPickerStaticProps, MessageReactionQuickButton, type MessageReactionQuickButtonProps, MessageReactionQuickRow, type MessageReactionQuickRowProps, MessageReactionTooltipContent, type MessageReactionTooltipContentProps, MessageReactionTooltipMeta, type MessageReactionTooltipMetaProps, MessageReactionTooltipName, type MessageReactionTooltipNameProps, MessageReactionTooltipNameText, type MessageReactionTooltipNameTextProps, MessageReactionTooltipNames, type MessageReactionTooltipNamesProps, MessageReactionTooltipSeparator, type MessageReactionTooltipSeparatorProps, MessageReferenceChip, type MessageReferenceChipProps, type MessageReferenceChipVariant, MessageReferenceIcon, type MessageReferenceIconProps, MessageReferenceIndicator, type MessageReferenceIndicatorProps, MessageReferenceLabel, type MessageReferenceLabelProps, MessageReferencePending, type MessageReferencePendingProps, MessageReferenceReadMark, type MessageReferenceReadMarkProps, MessageReferenceSuffix, type MessageReferenceSuffixProps, MessageReferenceText, type MessageReferenceTextProps, type MessageReferenceTextVariant, MessageReferenceUnavailable, type MessageReferenceUnavailableProps, type MessageTextSelectionAnchor, MessageTextSelectionToolbar, MessageTextSelectionToolbarButton, type MessageTextSelectionToolbarButtonProps, type MessageTextSelectionToolbarProps, MessageTextSelectionToolbarSeparator, type MessageTextSelectionToolbarSeparatorProps, createMessageTextSelectionAnchor };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
2
|
+
//#region src/components/message-item/message-footer.d.ts
|
|
3
|
+
export type MessageItemBadgeStatus = "read" | "unread";
|
|
4
|
+
export type MessageItemBadgeProps = useRender.ComponentProps<"span"> & {
|
|
5
|
+
status?: MessageItemBadgeStatus;
|
|
6
|
+
};
|
|
7
|
+
export declare function MessageItemBadge({ className, status, ...props }: MessageItemBadgeProps): import("react").JSX.Element;
|
|
8
|
+
export type MessageItemBadgeSeparatorProps = useRender.ComponentProps<"span">;
|
|
9
|
+
export declare function MessageItemBadgeSeparator({ className, render, ...props }: MessageItemBadgeSeparatorProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
10
|
+
export type MessageItemSavedIndicatorProps = useRender.ComponentProps<"span"> & {
|
|
11
|
+
/**
|
|
12
|
+
* Square icon-only affordance. Replaces the old `data-icon-only`
|
|
13
|
+
* attribute contract with an explicit prop.
|
|
14
|
+
*/
|
|
15
|
+
iconOnly?: boolean;
|
|
16
|
+
};
|
|
17
|
+
export declare function MessageItemSavedIndicator({ className, iconOnly, render, ...props }: MessageItemSavedIndicatorProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
18
|
+
export type MessageItemReadReceiptProps = useRender.ComponentProps<"span">;
|
|
19
|
+
export declare function MessageItemReadReceipt({ className, render, ...props }: MessageItemReadReceiptProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
20
|
+
//#endregion
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Badge } from "../badge/badge.mjs";
|
|
2
|
+
import { messageFooter } from "./message-footer.recipe.mjs";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { mergeProps } from "@base-ui/react/merge-props";
|
|
5
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
6
|
+
//#region src/components/message-item/message-footer.tsx
|
|
7
|
+
function MessageItemBadge({ className, status = "read", ...props }) {
|
|
8
|
+
const { badge } = messageFooter({ badgeStatus: status });
|
|
9
|
+
return /* @__PURE__ */ jsx(Badge, {
|
|
10
|
+
appearance: "soft",
|
|
11
|
+
"data-slot": "message-item-badge",
|
|
12
|
+
variant: "muted",
|
|
13
|
+
className: badge({ className }),
|
|
14
|
+
...props
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
function MessageItemBadgeSeparator({ className, render, ...props }) {
|
|
18
|
+
const { badgeSeparator } = messageFooter();
|
|
19
|
+
const defaultProps = {
|
|
20
|
+
"aria-hidden": true,
|
|
21
|
+
className: badgeSeparator({ className })
|
|
22
|
+
};
|
|
23
|
+
return useRender({
|
|
24
|
+
defaultTagName: "span",
|
|
25
|
+
render,
|
|
26
|
+
props: mergeProps(defaultProps, props),
|
|
27
|
+
state: { slot: "message-item-badge-separator" }
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
function MessageItemSavedIndicator({ className, iconOnly = false, render, ...props }) {
|
|
31
|
+
const { savedIndicator } = messageFooter({ iconOnly });
|
|
32
|
+
const defaultProps = {
|
|
33
|
+
...iconOnly ? { "data-icon-only": "" } : {},
|
|
34
|
+
className: savedIndicator({ className })
|
|
35
|
+
};
|
|
36
|
+
return useRender({
|
|
37
|
+
defaultTagName: "span",
|
|
38
|
+
render,
|
|
39
|
+
props: mergeProps(defaultProps, props),
|
|
40
|
+
state: { slot: "message-item-saved-indicator" }
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
function MessageItemReadReceipt({ className, render, ...props }) {
|
|
44
|
+
const { readReceipt } = messageFooter();
|
|
45
|
+
const defaultProps = { className: readReceipt({ className }) };
|
|
46
|
+
return useRender({
|
|
47
|
+
defaultTagName: "span",
|
|
48
|
+
render,
|
|
49
|
+
props: mergeProps(defaultProps, props),
|
|
50
|
+
state: { slot: "message-item-read-receipt" }
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
//#endregion
|
|
54
|
+
export { MessageItemBadge, MessageItemBadgeSeparator, MessageItemReadReceipt, MessageItemSavedIndicator };
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { tv } from "../../lib/tv.mjs";
|
|
2
|
+
//#region src/components/message-item/message-footer.recipe.ts
|
|
3
|
+
const messageFooter = tv({
|
|
4
|
+
slots: {
|
|
5
|
+
savedIndicator: [
|
|
6
|
+
"inline-flex min-w-0 max-w-full items-center gap-1 overflow-hidden whitespace-nowrap select-none",
|
|
7
|
+
"[&_svg]:shrink-0",
|
|
8
|
+
"h-[22px] rounded-chip pr-[6.5px] pl-[5.5px]",
|
|
9
|
+
"text-caption font-semibold text-foreground-muted",
|
|
10
|
+
"bg-fill-muted hover:overlay-medium active:overlay-medium",
|
|
11
|
+
"outline-none focus-visible:shadow-focus",
|
|
12
|
+
"[&_svg]:size-3.5 [&_svg]:text-foreground"
|
|
13
|
+
],
|
|
14
|
+
readReceipt: [
|
|
15
|
+
"ml-auto inline-flex shrink-0 items-center gap-1 whitespace-nowrap",
|
|
16
|
+
"[&_svg]:shrink-0",
|
|
17
|
+
"h-[22px] font-mono text-mono-meta text-foreground-hint [&_svg]:size-3"
|
|
18
|
+
],
|
|
19
|
+
badge: [
|
|
20
|
+
"inline-flex min-w-0 max-w-full items-center overflow-hidden whitespace-nowrap select-none",
|
|
21
|
+
"transition-colors [&_svg]:shrink-0",
|
|
22
|
+
"h-6 gap-1 rounded-chip border-0 px-2 shadow-none",
|
|
23
|
+
"text-footnote font-bold text-foreground-muted",
|
|
24
|
+
"bg-fill-muted hover:overlay-medium active:overlay-medium",
|
|
25
|
+
"[&_svg]:size-3.5"
|
|
26
|
+
],
|
|
27
|
+
badgeSeparator: ["text-foreground/45"]
|
|
28
|
+
},
|
|
29
|
+
variants: {
|
|
30
|
+
badgeStatus: {
|
|
31
|
+
read: {},
|
|
32
|
+
unread: { badge: ["text-foreground"] }
|
|
33
|
+
},
|
|
34
|
+
iconOnly: {
|
|
35
|
+
true: { savedIndicator: [
|
|
36
|
+
"justify-center p-0",
|
|
37
|
+
"size-8 rounded-control bg-transparent",
|
|
38
|
+
"[&_svg]:size-[18px] [&_svg]:text-foreground-muted"
|
|
39
|
+
] },
|
|
40
|
+
false: {}
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
defaultVariants: { iconOnly: false }
|
|
44
|
+
});
|
|
45
|
+
//#endregion
|
|
46
|
+
export { messageFooter };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
2
|
+
//#region src/components/message-item/message-item-content.d.ts
|
|
3
|
+
export type MessageItemContentProps = useRender.ComponentProps<"div">;
|
|
4
|
+
export declare function MessageItemContent({ className, render, ...props }: MessageItemContentProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
5
|
+
export type MessageItemBodyProps = useRender.ComponentProps<"div">;
|
|
6
|
+
export declare function MessageItemBody({ className, render, ...props }: MessageItemBodyProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
7
|
+
export type MessageItemEditedProps = useRender.ComponentProps<"span">;
|
|
8
|
+
/**
|
|
9
|
+
* The edited marker, inline at the end of the message text on every row, full
|
|
10
|
+
* or continuation. Put it inside the last paragraph so it follows the last
|
|
11
|
+
* word; pass the copy ("(edited)") as children and the edit time as its tooltip.
|
|
12
|
+
*/
|
|
13
|
+
export declare function MessageItemEdited({ className, render, ...props }: MessageItemEditedProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
14
|
+
export type MessageItemSearchMatchProps = useRender.ComponentProps<"mark">;
|
|
15
|
+
export declare function MessageItemSearchMatch({ className, render, ...props }: MessageItemSearchMatchProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
16
|
+
export type MessageItemEmbeddedProps = useRender.ComponentProps<"div">;
|
|
17
|
+
export declare function MessageItemEmbedded({ className, render, ...props }: MessageItemEmbeddedProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
18
|
+
export type MessageItemAttachmentsProps = useRender.ComponentProps<"div">;
|
|
19
|
+
export declare function MessageItemAttachments({ className, render, ...props }: MessageItemAttachmentsProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
20
|
+
export type MessageItemFooterProps = useRender.ComponentProps<"div">;
|
|
21
|
+
export declare function MessageItemFooter({ className, render, ...props }: MessageItemFooterProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
22
|
+
//#endregion
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { messageItem } from "./message-item.recipe.mjs";
|
|
2
|
+
import { mergeProps } from "@base-ui/react/merge-props";
|
|
3
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
4
|
+
//#region src/components/message-item/message-item-content.tsx
|
|
5
|
+
function MessageItemContent({ className, render, ...props }) {
|
|
6
|
+
const { content } = messageItem();
|
|
7
|
+
const defaultProps = { className: content({ className }) };
|
|
8
|
+
return useRender({
|
|
9
|
+
defaultTagName: "div",
|
|
10
|
+
render,
|
|
11
|
+
props: mergeProps(defaultProps, props),
|
|
12
|
+
state: { slot: "message-item-content" }
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
function MessageItemBody({ className, render, ...props }) {
|
|
16
|
+
const { body } = messageItem();
|
|
17
|
+
const defaultProps = { className: body({ className }) };
|
|
18
|
+
return useRender({
|
|
19
|
+
defaultTagName: "div",
|
|
20
|
+
render,
|
|
21
|
+
props: mergeProps(defaultProps, props),
|
|
22
|
+
state: { slot: "message-item-body" }
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The edited marker, inline at the end of the message text on every row, full
|
|
27
|
+
* or continuation. Put it inside the last paragraph so it follows the last
|
|
28
|
+
* word; pass the copy ("(edited)") as children and the edit time as its tooltip.
|
|
29
|
+
*/
|
|
30
|
+
function MessageItemEdited({ className, render, ...props }) {
|
|
31
|
+
const { edited } = messageItem();
|
|
32
|
+
const defaultProps = { className: edited({ className }) };
|
|
33
|
+
return useRender({
|
|
34
|
+
defaultTagName: "span",
|
|
35
|
+
render,
|
|
36
|
+
props: mergeProps(defaultProps, props),
|
|
37
|
+
state: { slot: "message-item-edited" }
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
function MessageItemSearchMatch({ className, render, ...props }) {
|
|
41
|
+
const { searchMatch } = messageItem();
|
|
42
|
+
const defaultProps = { className: searchMatch({ className }) };
|
|
43
|
+
return useRender({
|
|
44
|
+
defaultTagName: "mark",
|
|
45
|
+
render,
|
|
46
|
+
props: mergeProps(defaultProps, props),
|
|
47
|
+
state: { slot: "message-item-search-match" }
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
function MessageItemEmbedded({ className, render, ...props }) {
|
|
51
|
+
const { embedded } = messageItem();
|
|
52
|
+
const defaultProps = { className: embedded({ className }) };
|
|
53
|
+
return useRender({
|
|
54
|
+
defaultTagName: "div",
|
|
55
|
+
render,
|
|
56
|
+
props: mergeProps(defaultProps, props),
|
|
57
|
+
state: { slot: "message-item-embedded" }
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
function MessageItemAttachments({ className, render, ...props }) {
|
|
61
|
+
const { attachments } = messageItem();
|
|
62
|
+
const defaultProps = { className: attachments({ className }) };
|
|
63
|
+
return useRender({
|
|
64
|
+
defaultTagName: "div",
|
|
65
|
+
render,
|
|
66
|
+
props: mergeProps(defaultProps, props),
|
|
67
|
+
state: { slot: "message-item-attachments" }
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
function MessageItemFooter({ className, render, ...props }) {
|
|
71
|
+
const { footer } = messageItem();
|
|
72
|
+
const defaultProps = { className: footer({ className }) };
|
|
73
|
+
return useRender({
|
|
74
|
+
defaultTagName: "div",
|
|
75
|
+
render,
|
|
76
|
+
props: mergeProps(defaultProps, props),
|
|
77
|
+
state: { slot: "message-item-footer" }
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
//#endregion
|
|
81
|
+
export { MessageItemAttachments, MessageItemBody, MessageItemContent, MessageItemEdited, MessageItemEmbedded, MessageItemFooter, MessageItemSearchMatch };
|