@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,298 @@
|
|
|
1
|
+
import { Badge } from "../badge/badge.mjs";
|
|
2
|
+
import { MessageEmbed, MessageEmbedContent, MessageEmbedHeader } from "../message-embed/message-embed.mjs";
|
|
3
|
+
import { messageActionCard } from "./message-action-card.recipe.mjs";
|
|
4
|
+
import { messageActionCardContent } from "./message-action-card-content.recipe.mjs";
|
|
5
|
+
import { ChevronDown, Info, Zap } from "lucide-react";
|
|
6
|
+
import { useEffect, useState } from "react";
|
|
7
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { mergeProps } from "@base-ui/react/merge-props";
|
|
9
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
10
|
+
import { Collapsible } from "@base-ui/react/collapsible";
|
|
11
|
+
//#region src/components/message-action-card/message-action-card.tsx
|
|
12
|
+
/**
|
|
13
|
+
* The card is a disclosure: open by default, and a consumer can fold a
|
|
14
|
+
* resolved or view-only card to its header with `defaultOpen={false}` (or
|
|
15
|
+
* control it with `open` / `onOpenChange`). The fold is offered by placing a
|
|
16
|
+
* MessageActionCardCollapseTrigger in the header; without one the card simply
|
|
17
|
+
* stays open.
|
|
18
|
+
*/
|
|
19
|
+
function MessageActionCard({ className, render, open, defaultOpen = true, onOpenChange, ...props }) {
|
|
20
|
+
const { root } = messageActionCard();
|
|
21
|
+
return /* @__PURE__ */ jsx(Collapsible.Root, {
|
|
22
|
+
open,
|
|
23
|
+
defaultOpen,
|
|
24
|
+
onOpenChange,
|
|
25
|
+
render: /* @__PURE__ */ jsx(MessageEmbed, {
|
|
26
|
+
className: root({ className }),
|
|
27
|
+
render,
|
|
28
|
+
...props
|
|
29
|
+
})
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
function MessageActionCardContent({ className, render, ...props }) {
|
|
33
|
+
const { root, panel } = messageActionCardContent();
|
|
34
|
+
return /* @__PURE__ */ jsx(Collapsible.Panel, {
|
|
35
|
+
className: panel(),
|
|
36
|
+
children: /* @__PURE__ */ jsx(MessageEmbedContent, {
|
|
37
|
+
className: root({ className }),
|
|
38
|
+
render,
|
|
39
|
+
...props
|
|
40
|
+
})
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/** The card type's icon. Without children it shows a generic action icon. */
|
|
44
|
+
function MessageActionCardHeaderIcon({ className, render, children, ...props }) {
|
|
45
|
+
const { headerIcon } = messageActionCard();
|
|
46
|
+
return useRender({
|
|
47
|
+
defaultTagName: "span",
|
|
48
|
+
render,
|
|
49
|
+
props: mergeProps({
|
|
50
|
+
className: headerIcon({ className }),
|
|
51
|
+
"aria-hidden": true,
|
|
52
|
+
children: children ?? /* @__PURE__ */ jsx(Zap, {})
|
|
53
|
+
}, props),
|
|
54
|
+
state: { slot: "message-action-card-header-icon" }
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
function MessageActionCardHeaderTitle({ className, render, ...props }) {
|
|
58
|
+
const { headerTitle } = messageActionCard();
|
|
59
|
+
return useRender({
|
|
60
|
+
defaultTagName: "span",
|
|
61
|
+
render,
|
|
62
|
+
props: mergeProps({ className: headerTitle({ className }) }, props),
|
|
63
|
+
state: { slot: "message-action-card-header-title" }
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* A line under the title: what happened on a resolved card ("Installed by Ada
|
|
68
|
+
* → Lens"), or why you cannot act on a view-only one. Place it inside
|
|
69
|
+
* MessageActionCardHeaderTitle; it stays visible while the card is folded.
|
|
70
|
+
*/
|
|
71
|
+
function MessageActionCardHeaderDescription({ className, render, ...props }) {
|
|
72
|
+
const { headerDescription } = messageActionCard();
|
|
73
|
+
return useRender({
|
|
74
|
+
defaultTagName: "span",
|
|
75
|
+
render,
|
|
76
|
+
props: mergeProps({ className: headerDescription({ className }) }, props),
|
|
77
|
+
state: { slot: "message-action-card-header-description" }
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
const STATUS_TONES = {
|
|
81
|
+
default: "neutral",
|
|
82
|
+
muted: "neutral",
|
|
83
|
+
primary: "primary",
|
|
84
|
+
you: "primary",
|
|
85
|
+
busy: "primary",
|
|
86
|
+
information: "information",
|
|
87
|
+
accent: "accent",
|
|
88
|
+
success: "success",
|
|
89
|
+
warning: "warning",
|
|
90
|
+
danger: "danger"
|
|
91
|
+
};
|
|
92
|
+
/**
|
|
93
|
+
* The card's state label in the header: plain text led by a square pixel in
|
|
94
|
+
* the variant's colour, so a column of "Done" cards does not shout.
|
|
95
|
+
*/
|
|
96
|
+
function MessageActionCardStatus({ className, appearance, ...props }) {
|
|
97
|
+
const { headerStatus, status } = messageActionCard({ tone: STATUS_TONES[props.variant ?? "default"] });
|
|
98
|
+
return /* @__PURE__ */ jsx(Badge, {
|
|
99
|
+
appearance: appearance ?? "soft",
|
|
100
|
+
className: headerStatus({ className: status({ className }) }),
|
|
101
|
+
...props
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
/** Folds the card to its header and back. Needs an accessible `aria-label`. */
|
|
105
|
+
function MessageActionCardCollapseTrigger({ className, ...props }) {
|
|
106
|
+
const { collapseTrigger } = messageActionCard();
|
|
107
|
+
return /* @__PURE__ */ jsx(Collapsible.Trigger, {
|
|
108
|
+
className: collapseTrigger({ className }),
|
|
109
|
+
...props,
|
|
110
|
+
children: /* @__PURE__ */ jsx(ChevronDown, { "aria-hidden": true })
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
function MessageActionCardHeader({ className, render, ...props }) {
|
|
114
|
+
const { header } = messageActionCard();
|
|
115
|
+
return /* @__PURE__ */ jsx(MessageEmbedHeader, {
|
|
116
|
+
className: header({ className }),
|
|
117
|
+
render,
|
|
118
|
+
...props
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
function MessageActionCardHeaderStatus({ className, render, ...props }) {
|
|
122
|
+
const { headerStatus } = messageActionCard();
|
|
123
|
+
return useRender({
|
|
124
|
+
defaultTagName: "span",
|
|
125
|
+
render,
|
|
126
|
+
props: mergeProps({ className: headerStatus({ className }) }, props),
|
|
127
|
+
state: { slot: "message-action-card-header-status" }
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
function MessageActionCardProperties({ className, render, ...props }) {
|
|
131
|
+
const { properties } = messageActionCardContent();
|
|
132
|
+
return useRender({
|
|
133
|
+
defaultTagName: "dl",
|
|
134
|
+
render,
|
|
135
|
+
props: mergeProps({ className: properties({ className }) }, props),
|
|
136
|
+
state: { slot: "message-action-card-properties" }
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
function MessageActionCardProperty({ className, render, ...props }) {
|
|
140
|
+
const { property } = messageActionCardContent();
|
|
141
|
+
return useRender({
|
|
142
|
+
defaultTagName: "div",
|
|
143
|
+
render,
|
|
144
|
+
props: mergeProps({ className: property({ className }) }, props),
|
|
145
|
+
state: { slot: "message-action-card-property" }
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
function MessageActionCardPropertyLabel({ className, render, ...props }) {
|
|
149
|
+
const { propertyLabel } = messageActionCardContent();
|
|
150
|
+
return useRender({
|
|
151
|
+
defaultTagName: "dt",
|
|
152
|
+
render,
|
|
153
|
+
props: mergeProps({ className: propertyLabel({ className }) }, props),
|
|
154
|
+
state: { slot: "message-action-card-property-label" }
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
function MessageActionCardPropertyValue({ className, render, ...props }) {
|
|
158
|
+
const { propertyValue } = messageActionCardContent();
|
|
159
|
+
return useRender({
|
|
160
|
+
defaultTagName: "dd",
|
|
161
|
+
render,
|
|
162
|
+
props: mergeProps({ className: propertyValue({ className }) }, props),
|
|
163
|
+
state: { slot: "message-action-card-property-value" }
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
function MessageActionCardScopeList({ className, render, ...props }) {
|
|
167
|
+
const { scopeList } = messageActionCardContent();
|
|
168
|
+
return useRender({
|
|
169
|
+
defaultTagName: "div",
|
|
170
|
+
render,
|
|
171
|
+
props: mergeProps({ className: scopeList({ className }) }, props),
|
|
172
|
+
state: { slot: "message-action-card-scope-list" }
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
function MessageActionCardScopeListLabel({ className, render, ...props }) {
|
|
176
|
+
const { scopeListLabel } = messageActionCardContent();
|
|
177
|
+
return useRender({
|
|
178
|
+
defaultTagName: "div",
|
|
179
|
+
render,
|
|
180
|
+
props: mergeProps({ className: scopeListLabel({ className }) }, props),
|
|
181
|
+
state: { slot: "message-action-card-scope-list-label" }
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Scrolls a long permission list. It is a Tab stop only while it overflows, so
|
|
186
|
+
* keyboard users can scroll it; a short list adds no empty stop.
|
|
187
|
+
*/
|
|
188
|
+
function MessageActionCardScopeListViewport({ className, render, ...props }) {
|
|
189
|
+
const { scopeListViewport } = messageActionCardContent();
|
|
190
|
+
const [element, setElement] = useState(null);
|
|
191
|
+
const [overflows, setOverflows] = useState(false);
|
|
192
|
+
useEffect(() => {
|
|
193
|
+
if (element === null) return;
|
|
194
|
+
const measure = () => setOverflows(element.scrollHeight > element.clientHeight);
|
|
195
|
+
measure();
|
|
196
|
+
const observer = new ResizeObserver(measure);
|
|
197
|
+
observer.observe(element);
|
|
198
|
+
for (const child of element.children) observer.observe(child);
|
|
199
|
+
return () => observer.disconnect();
|
|
200
|
+
}, [element]);
|
|
201
|
+
return useRender({
|
|
202
|
+
defaultTagName: "div",
|
|
203
|
+
render,
|
|
204
|
+
ref: setElement,
|
|
205
|
+
props: mergeProps({
|
|
206
|
+
className: scopeListViewport({ className }),
|
|
207
|
+
tabIndex: overflows ? 0 : void 0
|
|
208
|
+
}, props),
|
|
209
|
+
state: { slot: "message-action-card-scope-list-viewport" }
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
function MessageActionCardScope({ className, render, ...props }) {
|
|
213
|
+
const { scope } = messageActionCardContent();
|
|
214
|
+
return useRender({
|
|
215
|
+
defaultTagName: "div",
|
|
216
|
+
render,
|
|
217
|
+
props: mergeProps({ className: scope({ className }) }, props),
|
|
218
|
+
state: { slot: "message-action-card-scope" }
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
function MessageActionCardScopeName({ className, render, ...props }) {
|
|
222
|
+
const { scopeName } = messageActionCardContent();
|
|
223
|
+
return useRender({
|
|
224
|
+
defaultTagName: "div",
|
|
225
|
+
render,
|
|
226
|
+
props: mergeProps({ className: scopeName({ className }) }, props),
|
|
227
|
+
state: { slot: "message-action-card-scope-name" }
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
function MessageActionCardScopeDescription({ className, render, ...props }) {
|
|
231
|
+
const { scopeDescription } = messageActionCardContent();
|
|
232
|
+
return useRender({
|
|
233
|
+
defaultTagName: "div",
|
|
234
|
+
render,
|
|
235
|
+
props: mergeProps({ className: scopeDescription({ className }) }, props),
|
|
236
|
+
state: { slot: "message-action-card-scope-description" }
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
function MessageActionCardHintLabel({ className, render, ...props }) {
|
|
240
|
+
const { hintLabel } = messageActionCardContent();
|
|
241
|
+
return useRender({
|
|
242
|
+
defaultTagName: "div",
|
|
243
|
+
render,
|
|
244
|
+
props: mergeProps({ className: hintLabel({ className }) }, props),
|
|
245
|
+
state: { slot: "message-action-card-hint-label" }
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
function MessageActionCardHint({ className, render, ...props }) {
|
|
249
|
+
const { hint } = messageActionCardContent();
|
|
250
|
+
return useRender({
|
|
251
|
+
defaultTagName: "div",
|
|
252
|
+
render,
|
|
253
|
+
props: mergeProps({ className: hint({ className }) }, props),
|
|
254
|
+
state: { slot: "message-action-card-hint" }
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
/** Raft's standing note. Leads with an info icon unless `icon` replaces it. */
|
|
258
|
+
function MessageActionCardNotice({ className, render, icon, children, ...props }) {
|
|
259
|
+
const { notice } = messageActionCardContent();
|
|
260
|
+
return useRender({
|
|
261
|
+
defaultTagName: "div",
|
|
262
|
+
render,
|
|
263
|
+
props: mergeProps({
|
|
264
|
+
className: notice({ className }),
|
|
265
|
+
children: /* @__PURE__ */ jsxs(Fragment$1, { children: [icon ?? /* @__PURE__ */ jsx(Info, { "aria-hidden": true }), /* @__PURE__ */ jsx("span", { children })] })
|
|
266
|
+
}, props),
|
|
267
|
+
state: { slot: "message-action-card-notice" }
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
function MessageActionCardCompletion({ className, render, ...props }) {
|
|
271
|
+
const { completion } = messageActionCardContent();
|
|
272
|
+
return useRender({
|
|
273
|
+
defaultTagName: "div",
|
|
274
|
+
render,
|
|
275
|
+
props: mergeProps({ className: completion({ className }) }, props),
|
|
276
|
+
state: { slot: "message-action-card-completion" }
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
function MessageActionCardActions({ className, render, ...props }) {
|
|
280
|
+
const { actions } = messageActionCardContent();
|
|
281
|
+
return useRender({
|
|
282
|
+
defaultTagName: "div",
|
|
283
|
+
render,
|
|
284
|
+
props: mergeProps({ className: actions({ className }) }, props),
|
|
285
|
+
state: { slot: "message-action-card-actions" }
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
function MessageActionCardActionsNote({ className, render, ...props }) {
|
|
289
|
+
const { actionsNote } = messageActionCardContent();
|
|
290
|
+
return useRender({
|
|
291
|
+
defaultTagName: "div",
|
|
292
|
+
render,
|
|
293
|
+
props: mergeProps({ className: actionsNote({ className }) }, props),
|
|
294
|
+
state: { slot: "message-action-card-actions-note" }
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
//#endregion
|
|
298
|
+
export { MessageActionCard, MessageActionCardActions, MessageActionCardActionsNote, MessageActionCardCollapseTrigger, MessageActionCardCompletion, MessageActionCardContent, MessageActionCardHeader, MessageActionCardHeaderDescription, MessageActionCardHeaderIcon, MessageActionCardHeaderStatus, MessageActionCardHeaderTitle, MessageActionCardHint, MessageActionCardHintLabel, MessageActionCardNotice, MessageActionCardProperties, MessageActionCardProperty, MessageActionCardPropertyLabel, MessageActionCardPropertyValue, MessageActionCardScope, MessageActionCardScopeDescription, MessageActionCardScopeList, MessageActionCardScopeListLabel, MessageActionCardScopeListViewport, MessageActionCardScopeName, MessageActionCardStatus };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { tv } from "../../lib/tv.mjs";
|
|
2
|
+
//#region src/components/message-action-card/message-action-card.recipe.ts
|
|
3
|
+
const messageActionCard = tv({
|
|
4
|
+
slots: {
|
|
5
|
+
root: ["w-full", "group/action-card mt-2 max-w-[440px]"],
|
|
6
|
+
header: [
|
|
7
|
+
"flex items-start",
|
|
8
|
+
"gap-2 px-3 pt-3 pb-2 group-data-closed/action-card:pb-3",
|
|
9
|
+
"text-subhead font-bold text-foreground"
|
|
10
|
+
],
|
|
11
|
+
headerIcon: [
|
|
12
|
+
"flex shrink-0 items-center justify-center",
|
|
13
|
+
"[&>svg]:shrink-0",
|
|
14
|
+
"size-[27px] rounded-sticker bg-fill-muted text-foreground-muted",
|
|
15
|
+
"[&>svg]:size-3.5"
|
|
16
|
+
],
|
|
17
|
+
headerTitle: ["min-w-0 flex-1", "pt-[calc((27px-1lh)/2)]"],
|
|
18
|
+
headerDescription: ["block", "mt-0.5 text-footnote font-normal text-foreground-muted"],
|
|
19
|
+
headerStatus: ["ml-auto shrink-0", "mt-[calc((27px-1lh)/2)] text-caption font-semibold text-foreground-muted"],
|
|
20
|
+
status: [
|
|
21
|
+
"inline-flex h-auto items-center gap-1.5 rounded-none border-0 bg-transparent p-0 shadow-none",
|
|
22
|
+
"text-caption font-semibold text-foreground-muted",
|
|
23
|
+
"before:size-2.5 before:shrink-0 before:rounded-[2px] before:border-[1.5px] before:border-sticker-ink before:content-['']"
|
|
24
|
+
],
|
|
25
|
+
collapseTrigger: [
|
|
26
|
+
"flex shrink-0 cursor-pointer items-center justify-center",
|
|
27
|
+
"[&>svg]:transition-transform [&>svg]:duration-200 motion-reduce:[&>svg]:transition-none",
|
|
28
|
+
"data-panel-open:[&>svg]:rotate-180",
|
|
29
|
+
"focus-visible:keyboard:outline-2 focus-visible:keyboard:outline-offset-1",
|
|
30
|
+
"my-0 -mr-1 size-[27px] rounded-chip text-foreground-muted",
|
|
31
|
+
"hover:bg-fill-medium hover:text-foreground active:bg-fill-medium",
|
|
32
|
+
"focus-visible:outline-none focus-visible:shadow-focus",
|
|
33
|
+
"[&>svg]:size-4"
|
|
34
|
+
]
|
|
35
|
+
},
|
|
36
|
+
variants: { tone: {
|
|
37
|
+
neutral: { status: ["before:bg-inactive"] },
|
|
38
|
+
primary: { status: ["before:bg-presence-busy"] },
|
|
39
|
+
information: { status: ["before:bg-info"] },
|
|
40
|
+
accent: { status: ["before:bg-attention"] },
|
|
41
|
+
success: { status: ["before:bg-success"] },
|
|
42
|
+
warning: { status: ["before:bg-warning"] },
|
|
43
|
+
danger: { status: ["before:bg-danger"] }
|
|
44
|
+
} }
|
|
45
|
+
});
|
|
46
|
+
//#endregion
|
|
47
|
+
export { messageActionCard };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { MessageAttachmentAction, MessageAttachmentActionProps, MessageAttachmentCard, MessageAttachmentCardProps, MessageAttachmentCommentSummary, MessageAttachmentCommentSummaryProps, MessageAttachmentDiffAddition, MessageAttachmentDiffAdditionProps, MessageAttachmentDiffDeletion, MessageAttachmentDiffDeletionProps, MessageAttachmentDiffSummary, MessageAttachmentDiffSummaryProps, MessageAttachmentGroup, MessageAttachmentGroupProps, MessageAttachmentMeta, MessageAttachmentMetaEnd, MessageAttachmentMetaEndProps, MessageAttachmentMetaProps, MessageAttachmentMetaStart, MessageAttachmentMetaStartProps, MessageAttachmentSummary, MessageAttachmentSummaryProps, MessageAttachmentTitle, MessageAttachmentTitleProps } from "./message-attachment.mjs";
|
|
2
|
+
import { MessageImageGalleryAspectKind, MessageImageGalleryFit, MessageImageGalleryImage, MessageImageGalleryItemLayout, MessageImageGalleryRowData, SINGLE_IMAGE_MAX_HEIGHT, SINGLE_IMAGE_MAX_WIDTH, buildMessageImageGalleryRows, classifyMessageImageAspect } from "./message-image-gallery-rows.mjs";
|
|
3
|
+
import { MessageImageGallery, MessageImageGalleryAction, MessageImageGalleryActionProps, MessageImageGalleryItem, MessageImageGalleryItemProps, MessageImageGalleryMedia, MessageImageGalleryMediaProps, MessageImageGalleryOverlay, MessageImageGalleryOverlayProps, MessageImageGalleryPreview, MessageImageGalleryPreviewProps, MessageImageGalleryProps, MessageImageGalleryRow, MessageImageGalleryRowProps } from "./message-image-gallery.mjs";
|
|
4
|
+
import { MessageVideoPreview, MessageVideoPreviewAction, MessageVideoPreviewActionProps, MessageVideoPreviewFailureAction, MessageVideoPreviewFailureActionProps, MessageVideoPreviewFailureContent, MessageVideoPreviewFailureContentProps, MessageVideoPreviewFailureIcon, MessageVideoPreviewFailureIconProps, MessageVideoPreviewFailureTitle, MessageVideoPreviewFailureTitleProps, MessageVideoPreviewFallback, MessageVideoPreviewFallbackProps, MessageVideoPreviewMedia, MessageVideoPreviewMediaProps, MessageVideoPreviewProps } from "./message-video-preview.mjs";
|
|
5
|
+
export { MessageAttachmentAction, type MessageAttachmentActionProps, MessageAttachmentCard, type MessageAttachmentCardProps, MessageAttachmentCommentSummary, type MessageAttachmentCommentSummaryProps, MessageAttachmentDiffAddition, type MessageAttachmentDiffAdditionProps, MessageAttachmentDiffDeletion, type MessageAttachmentDiffDeletionProps, MessageAttachmentDiffSummary, type MessageAttachmentDiffSummaryProps, MessageAttachmentGroup, type MessageAttachmentGroupProps, MessageAttachmentMeta, MessageAttachmentMetaEnd, type MessageAttachmentMetaEndProps, type MessageAttachmentMetaProps, MessageAttachmentMetaStart, type MessageAttachmentMetaStartProps, MessageAttachmentSummary, type MessageAttachmentSummaryProps, MessageAttachmentTitle, type MessageAttachmentTitleProps, MessageImageGallery, MessageImageGalleryAction, type MessageImageGalleryActionProps, type MessageImageGalleryAspectKind, type MessageImageGalleryFit, type MessageImageGalleryImage, MessageImageGalleryItem, type MessageImageGalleryItemLayout, type MessageImageGalleryItemProps, MessageImageGalleryMedia, type MessageImageGalleryMediaProps, MessageImageGalleryOverlay, type MessageImageGalleryOverlayProps, MessageImageGalleryPreview, type MessageImageGalleryPreviewProps, type MessageImageGalleryProps, MessageImageGalleryRow, type MessageImageGalleryRowData, type MessageImageGalleryRowProps, MessageVideoPreview, MessageVideoPreviewAction, type MessageVideoPreviewActionProps, MessageVideoPreviewFailureAction, type MessageVideoPreviewFailureActionProps, MessageVideoPreviewFailureContent, type MessageVideoPreviewFailureContentProps, MessageVideoPreviewFailureIcon, type MessageVideoPreviewFailureIconProps, MessageVideoPreviewFailureTitle, type MessageVideoPreviewFailureTitleProps, MessageVideoPreviewFallback, type MessageVideoPreviewFallbackProps, MessageVideoPreviewMedia, type MessageVideoPreviewMediaProps, type MessageVideoPreviewProps, SINGLE_IMAGE_MAX_HEIGHT, SINGLE_IMAGE_MAX_WIDTH, buildMessageImageGalleryRows, classifyMessageImageAspect };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { useRender } from "@base-ui/react/use-render";
|
|
2
|
+
//#region src/components/message-attachment/message-attachment.d.ts
|
|
3
|
+
export type MessageAttachmentGroupProps = useRender.ComponentProps<"div">;
|
|
4
|
+
export declare function MessageAttachmentGroup({ className, render, ...props }: MessageAttachmentGroupProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
5
|
+
export type MessageAttachmentCardProps = useRender.ComponentProps<"div">;
|
|
6
|
+
export declare function MessageAttachmentCard({ className, render, ...props }: MessageAttachmentCardProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
7
|
+
export type MessageAttachmentTitleProps = useRender.ComponentProps<"span">;
|
|
8
|
+
export declare function MessageAttachmentTitle({ className, render, ...props }: MessageAttachmentTitleProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
9
|
+
export type MessageAttachmentMetaProps = useRender.ComponentProps<"span">;
|
|
10
|
+
export declare function MessageAttachmentMeta({ className, render, ...props }: MessageAttachmentMetaProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
11
|
+
export type MessageAttachmentMetaStartProps = useRender.ComponentProps<"span">;
|
|
12
|
+
export declare function MessageAttachmentMetaStart({ className, render, ...props }: MessageAttachmentMetaStartProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
13
|
+
export type MessageAttachmentMetaEndProps = useRender.ComponentProps<"span">;
|
|
14
|
+
export declare function MessageAttachmentMetaEnd({ className, render, ...props }: MessageAttachmentMetaEndProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
15
|
+
export type MessageAttachmentSummaryProps = useRender.ComponentProps<"span">;
|
|
16
|
+
export declare function MessageAttachmentSummary({ className, render, ...props }: MessageAttachmentSummaryProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
17
|
+
export type MessageAttachmentCommentSummaryProps = useRender.ComponentProps<"span">;
|
|
18
|
+
export declare function MessageAttachmentCommentSummary({ className, render, ...props }: MessageAttachmentCommentSummaryProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
19
|
+
export type MessageAttachmentDiffSummaryProps = useRender.ComponentProps<"span">;
|
|
20
|
+
export declare function MessageAttachmentDiffSummary({ className, render, ...props }: MessageAttachmentDiffSummaryProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
21
|
+
export type MessageAttachmentDiffAdditionProps = useRender.ComponentProps<"span">;
|
|
22
|
+
export declare function MessageAttachmentDiffAddition({ className, render, ...props }: MessageAttachmentDiffAdditionProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
23
|
+
export type MessageAttachmentDiffDeletionProps = useRender.ComponentProps<"span">;
|
|
24
|
+
export declare function MessageAttachmentDiffDeletion({ className, render, ...props }: MessageAttachmentDiffDeletionProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
25
|
+
export type MessageAttachmentActionProps = useRender.ComponentProps<"button">;
|
|
26
|
+
export declare function MessageAttachmentAction({ className, render, ...props }: MessageAttachmentActionProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
27
|
+
//#endregion
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { messageAttachment } from "./message-attachment.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-attachment/message-attachment.tsx
|
|
5
|
+
function MessageAttachmentGroup({ className, render, ...props }) {
|
|
6
|
+
const { group } = messageAttachment();
|
|
7
|
+
const defaultProps = { className: group({ className }) };
|
|
8
|
+
return useRender({
|
|
9
|
+
defaultTagName: "div",
|
|
10
|
+
render,
|
|
11
|
+
props: mergeProps(defaultProps, props),
|
|
12
|
+
state: { slot: "message-attachment-group" }
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
function MessageAttachmentCard({ className, render, ...props }) {
|
|
16
|
+
const { card } = messageAttachment();
|
|
17
|
+
const defaultProps = { className: card({ className }) };
|
|
18
|
+
return useRender({
|
|
19
|
+
defaultTagName: "div",
|
|
20
|
+
render,
|
|
21
|
+
props: mergeProps(defaultProps, props),
|
|
22
|
+
state: { slot: "message-attachment-card" }
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
function MessageAttachmentTitle({ className, render, ...props }) {
|
|
26
|
+
const { title } = messageAttachment();
|
|
27
|
+
const defaultProps = { className: title({ className }) };
|
|
28
|
+
return useRender({
|
|
29
|
+
defaultTagName: "span",
|
|
30
|
+
render,
|
|
31
|
+
props: mergeProps(defaultProps, props),
|
|
32
|
+
state: { slot: "message-attachment-title" }
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
function MessageAttachmentMeta({ className, render, ...props }) {
|
|
36
|
+
const { meta } = messageAttachment();
|
|
37
|
+
const defaultProps = { className: meta({ className }) };
|
|
38
|
+
return useRender({
|
|
39
|
+
defaultTagName: "span",
|
|
40
|
+
render,
|
|
41
|
+
props: mergeProps(defaultProps, props),
|
|
42
|
+
state: { slot: "message-attachment-meta" }
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
function MessageAttachmentMetaStart({ className, render, ...props }) {
|
|
46
|
+
const { metaStart } = messageAttachment();
|
|
47
|
+
const defaultProps = { className: metaStart({ className }) };
|
|
48
|
+
return useRender({
|
|
49
|
+
defaultTagName: "span",
|
|
50
|
+
render,
|
|
51
|
+
props: mergeProps(defaultProps, props),
|
|
52
|
+
state: { slot: "message-attachment-meta-start" }
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
function MessageAttachmentMetaEnd({ className, render, ...props }) {
|
|
56
|
+
const { metaEnd } = messageAttachment();
|
|
57
|
+
const defaultProps = { className: metaEnd({ className }) };
|
|
58
|
+
return useRender({
|
|
59
|
+
defaultTagName: "span",
|
|
60
|
+
render,
|
|
61
|
+
props: mergeProps(defaultProps, props),
|
|
62
|
+
state: { slot: "message-attachment-meta-end" }
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
function MessageAttachmentSummary({ className, render, ...props }) {
|
|
66
|
+
const { summary } = messageAttachment();
|
|
67
|
+
const defaultProps = { className: summary({ className }) };
|
|
68
|
+
return useRender({
|
|
69
|
+
defaultTagName: "span",
|
|
70
|
+
render,
|
|
71
|
+
props: mergeProps(defaultProps, props),
|
|
72
|
+
state: { slot: "message-attachment-summary" }
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
function MessageAttachmentCommentSummary({ className, render, ...props }) {
|
|
76
|
+
const { commentSummary } = messageAttachment();
|
|
77
|
+
const defaultProps = { className: commentSummary({ className }) };
|
|
78
|
+
return useRender({
|
|
79
|
+
defaultTagName: "span",
|
|
80
|
+
render,
|
|
81
|
+
props: mergeProps(defaultProps, props),
|
|
82
|
+
state: { slot: "message-attachment-comment-summary" }
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
function MessageAttachmentDiffSummary({ className, render, ...props }) {
|
|
86
|
+
const { diffSummary } = messageAttachment();
|
|
87
|
+
const defaultProps = { className: diffSummary({ className }) };
|
|
88
|
+
return useRender({
|
|
89
|
+
defaultTagName: "span",
|
|
90
|
+
render,
|
|
91
|
+
props: mergeProps(defaultProps, props),
|
|
92
|
+
state: { slot: "message-attachment-diff-summary" }
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
function MessageAttachmentDiffAddition({ className, render, ...props }) {
|
|
96
|
+
const { diffAddition } = messageAttachment();
|
|
97
|
+
const defaultProps = { className: diffAddition({ className }) };
|
|
98
|
+
return useRender({
|
|
99
|
+
defaultTagName: "span",
|
|
100
|
+
render,
|
|
101
|
+
props: mergeProps(defaultProps, props),
|
|
102
|
+
state: { slot: "message-attachment-diff-addition" }
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
function MessageAttachmentDiffDeletion({ className, render, ...props }) {
|
|
106
|
+
const { diffDeletion } = messageAttachment();
|
|
107
|
+
const defaultProps = { className: diffDeletion({ className }) };
|
|
108
|
+
return useRender({
|
|
109
|
+
defaultTagName: "span",
|
|
110
|
+
render,
|
|
111
|
+
props: mergeProps(defaultProps, props),
|
|
112
|
+
state: { slot: "message-attachment-diff-deletion" }
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
function MessageAttachmentAction({ className, render, ...props }) {
|
|
116
|
+
const { action } = messageAttachment();
|
|
117
|
+
const defaultProps = {
|
|
118
|
+
type: "button",
|
|
119
|
+
className: action({ className })
|
|
120
|
+
};
|
|
121
|
+
return useRender({
|
|
122
|
+
defaultTagName: "button",
|
|
123
|
+
render,
|
|
124
|
+
props: mergeProps(defaultProps, props),
|
|
125
|
+
state: { slot: "message-attachment-action" }
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
//#endregion
|
|
129
|
+
export { MessageAttachmentAction, MessageAttachmentCard, MessageAttachmentCommentSummary, MessageAttachmentDiffAddition, MessageAttachmentDiffDeletion, MessageAttachmentDiffSummary, MessageAttachmentGroup, MessageAttachmentMeta, MessageAttachmentMetaEnd, MessageAttachmentMetaStart, MessageAttachmentSummary, MessageAttachmentTitle };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { tv } from "../../lib/tv.mjs";
|
|
2
|
+
//#region src/components/message-attachment/message-attachment.recipe.ts
|
|
3
|
+
const messageAttachment = tv({ slots: {
|
|
4
|
+
group: "flex max-w-[360px] flex-wrap items-start gap-2",
|
|
5
|
+
card: [
|
|
6
|
+
"group/attachment relative inline-flex h-20 w-44 min-w-44 max-w-44 shrink-0 flex-col overflow-hidden",
|
|
7
|
+
"text-left",
|
|
8
|
+
"rounded-container border border-line-hairline bg-layer-card py-2 pr-[calc(var(--control-embedded-inset)-1px)] pl-2.5 text-foreground",
|
|
9
|
+
"outline-none hover:overlay-subtle active:overlay-medium focus-visible:shadow-focus",
|
|
10
|
+
"[&_[data-slot=message-attachment-action]_svg]:size-4"
|
|
11
|
+
],
|
|
12
|
+
title: ["block w-full max-w-full shrink-0 truncate", "pr-1 font-sans text-callout font-semibold text-foreground"],
|
|
13
|
+
meta: ["mt-auto flex w-full min-w-0 max-w-full items-center justify-between", "gap-2 font-mono text-mono-meta text-foreground-hint"],
|
|
14
|
+
metaStart: "min-w-0 flex-1 truncate",
|
|
15
|
+
metaEnd: ["ml-auto inline-flex shrink-0 items-center gap-1 self-stretch", "[&_svg]:size-[10px] [&_svg]:shrink-0"],
|
|
16
|
+
summary: [
|
|
17
|
+
"mt-0.5 inline-flex shrink-0 items-center whitespace-nowrap",
|
|
18
|
+
"[&_svg]:shrink-0",
|
|
19
|
+
"pr-1 font-mono text-mono-meta text-foreground-hint [&_svg]:size-3.5"
|
|
20
|
+
],
|
|
21
|
+
commentSummary: "gap-[2.5px]",
|
|
22
|
+
diffSummary: "gap-1.5",
|
|
23
|
+
diffAddition: ["text-success-strong"],
|
|
24
|
+
diffDeletion: ["text-danger-strong"],
|
|
25
|
+
action: [
|
|
26
|
+
"relative flex items-center justify-center",
|
|
27
|
+
"before:absolute before:-inset-1 before:content-['']",
|
|
28
|
+
"[&_svg]:shrink-0",
|
|
29
|
+
"-mt-1 mb-[calc(var(--control-embedded-inset)-9px)] size-6 self-end rounded-chip text-foreground",
|
|
30
|
+
"outline-none hover:bg-fill-medium active:bg-fill-medium",
|
|
31
|
+
"focus-visible:shadow-focus",
|
|
32
|
+
"[&_svg]:size-4"
|
|
33
|
+
]
|
|
34
|
+
} });
|
|
35
|
+
//#endregion
|
|
36
|
+
export { messageAttachment };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
//#region src/components/message-attachment/message-image-gallery-rows.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Row-building rules shared by the message image gallery and the forwarded
|
|
4
|
+
* bundle gallery.
|
|
5
|
+
*
|
|
6
|
+
* Ported verbatim from the Raft web app's message gallery
|
|
7
|
+
* (`buildImageGalleryRows` / `classifyImageAspect`), including the two aspect
|
|
8
|
+
* thresholds and the split rules, so both surfaces lay the same attachments out
|
|
9
|
+
* identically:
|
|
10
|
+
*
|
|
11
|
+
* - a wide image (ratio >= 2.2) always takes a row of its own;
|
|
12
|
+
* - the others fill rows of three, except a lone buffer of exactly four,
|
|
13
|
+
* which splits two-and-two;
|
|
14
|
+
* - normal images crop (`cover`), wide and tall (<= 0.55) ones stay fully
|
|
15
|
+
* visible (`contain`);
|
|
16
|
+
* - a single image keeps its own proportions, capped to
|
|
17
|
+
* SINGLE_IMAGE_MAX_WIDTH x SINGLE_IMAGE_MAX_HEIGHT, and reserves that box
|
|
18
|
+
* before the image loads.
|
|
19
|
+
*/
|
|
20
|
+
export interface MessageImageGalleryImage {
|
|
21
|
+
width?: number | null;
|
|
22
|
+
height?: number | null;
|
|
23
|
+
}
|
|
24
|
+
export type MessageImageGalleryAspectKind = "wide" | "tall" | "normal";
|
|
25
|
+
export type MessageImageGalleryFit = "cover" | "contain";
|
|
26
|
+
export interface MessageImageGalleryItemLayout {
|
|
27
|
+
/** Index into the images array given to the builder. */
|
|
28
|
+
index: number;
|
|
29
|
+
/** `cover` crops to fill the cell; `contain` keeps the whole image visible. */
|
|
30
|
+
fit: MessageImageGalleryFit;
|
|
31
|
+
/**
|
|
32
|
+
* Present only for a single-image gallery: the box to reserve (as inline
|
|
33
|
+
* style) so the cell measures right before the image loads.
|
|
34
|
+
*/
|
|
35
|
+
reserved?: {
|
|
36
|
+
width: string;
|
|
37
|
+
aspectRatio: string;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export interface MessageImageGalleryRowData {
|
|
41
|
+
items: MessageImageGalleryItemLayout[];
|
|
42
|
+
}
|
|
43
|
+
export declare const SINGLE_IMAGE_MAX_WIDTH = 416;
|
|
44
|
+
export declare const SINGLE_IMAGE_MAX_HEIGHT = 288;
|
|
45
|
+
export declare function classifyMessageImageAspect(image: MessageImageGalleryImage): MessageImageGalleryAspectKind;
|
|
46
|
+
export declare function buildMessageImageGalleryRows(images: ReadonlyArray<MessageImageGalleryImage>): MessageImageGalleryRowData[];
|
|
47
|
+
//#endregion
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
//#region src/components/message-attachment/message-image-gallery-rows.ts
|
|
2
|
+
const SINGLE_IMAGE_MAX_WIDTH = 416;
|
|
3
|
+
const SINGLE_IMAGE_MAX_HEIGHT = 288;
|
|
4
|
+
function classifyMessageImageAspect(image) {
|
|
5
|
+
if (!image.width || !image.height || image.width <= 0 || image.height <= 0) return "normal";
|
|
6
|
+
const ratio = image.width / image.height;
|
|
7
|
+
if (ratio >= 2.2) return "wide";
|
|
8
|
+
if (ratio <= .55) return "tall";
|
|
9
|
+
return "normal";
|
|
10
|
+
}
|
|
11
|
+
function reserveSingleImage(image) {
|
|
12
|
+
if (!image.width || !image.height || image.width <= 0 || image.height <= 0) return {
|
|
13
|
+
width: "min(11rem, 100%)",
|
|
14
|
+
aspectRatio: "4 / 3"
|
|
15
|
+
};
|
|
16
|
+
const scale = Math.min(416 / image.width, 288 / image.height, 1);
|
|
17
|
+
return {
|
|
18
|
+
width: `min(${Math.max(1, Math.round(image.width * scale))}px, 100%)`,
|
|
19
|
+
aspectRatio: `${image.width} / ${image.height}`
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function itemLayout(image, index, single) {
|
|
23
|
+
if (single) return {
|
|
24
|
+
index,
|
|
25
|
+
fit: "contain",
|
|
26
|
+
reserved: reserveSingleImage(image)
|
|
27
|
+
};
|
|
28
|
+
return {
|
|
29
|
+
index,
|
|
30
|
+
fit: classifyMessageImageAspect(image) === "normal" ? "cover" : "contain"
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function buildMessageImageGalleryRows(images) {
|
|
34
|
+
if (images.length === 1) return [{ items: [itemLayout(images[0], 0, true)] }];
|
|
35
|
+
const rows = [];
|
|
36
|
+
let buffer = [];
|
|
37
|
+
const pushBufferedRows = () => {
|
|
38
|
+
if (buffer.length === 0) return;
|
|
39
|
+
const chunkSize = buffer.length === 4 ? 2 : 3;
|
|
40
|
+
for (let i = 0; i < buffer.length; i += chunkSize) rows.push({ items: buffer.slice(i, i + chunkSize).map((index) => itemLayout(images[index], index, false)) });
|
|
41
|
+
buffer = [];
|
|
42
|
+
};
|
|
43
|
+
images.forEach((image, index) => {
|
|
44
|
+
if (classifyMessageImageAspect(image) === "wide") {
|
|
45
|
+
pushBufferedRows();
|
|
46
|
+
rows.push({ items: [itemLayout(image, index, false)] });
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
buffer.push(index);
|
|
50
|
+
});
|
|
51
|
+
pushBufferedRows();
|
|
52
|
+
return rows;
|
|
53
|
+
}
|
|
54
|
+
//#endregion
|
|
55
|
+
export { SINGLE_IMAGE_MAX_HEIGHT, SINGLE_IMAGE_MAX_WIDTH, buildMessageImageGalleryRows, classifyMessageImageAspect };
|