@artooi/agents-web-components 0.0.0-stage → 0.1.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 +68 -0
- package/LICENSE +21 -0
- package/README.md +4397 -2
- package/dist/agents-web-components.bundle.js +5708 -0
- package/dist/agents-web-components.bundle.js.map +7 -0
- package/dist/bundle.d.ts +3 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/chat.d.ts +3 -0
- package/dist/chat.d.ts.map +1 -0
- package/dist/chat.js +16373 -0
- package/dist/chat.js.map +7 -0
- package/dist/chunk-ARNLFGCC.js +7715 -0
- package/dist/chunk-ARNLFGCC.js.map +7 -0
- package/dist/constants.d.ts +575 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/core/activity_registration.d.ts +19 -0
- package/dist/core/activity_registration.d.ts.map +1 -0
- package/dist/core/activity_registry.d.ts +46 -0
- package/dist/core/activity_registry.d.ts.map +1 -0
- package/dist/core/activity_renderer.d.ts +20 -0
- package/dist/core/activity_renderer.d.ts.map +1 -0
- package/dist/core/ag_ui_chat.d.ts +836 -0
- package/dist/core/ag_ui_chat.d.ts.map +1 -0
- package/dist/core/agui_client.d.ts +370 -0
- package/dist/core/agui_client.d.ts.map +1 -0
- package/dist/core/attachment.d.ts +42 -0
- package/dist/core/attachment.d.ts.map +1 -0
- package/dist/core/chat_registry.d.ts +23 -0
- package/dist/core/chat_registry.d.ts.map +1 -0
- package/dist/core/client_seed.d.ts +27 -0
- package/dist/core/client_seed.d.ts.map +1 -0
- package/dist/core/conversation_store.d.ts +195 -0
- package/dist/core/conversation_store.d.ts.map +1 -0
- package/dist/core/create_http_agent.d.ts +57 -0
- package/dist/core/create_http_agent.d.ts.map +1 -0
- package/dist/core/define_chat.d.ts +13 -0
- package/dist/core/define_chat.d.ts.map +1 -0
- package/dist/core/events/attachments_detail.d.ts +9 -0
- package/dist/core/events/attachments_detail.d.ts.map +1 -0
- package/dist/core/events/bar_height_detail.d.ts +6 -0
- package/dist/core/events/bar_height_detail.d.ts.map +1 -0
- package/dist/core/events/custom_agent_detail.d.ts +8 -0
- package/dist/core/events/custom_agent_detail.d.ts.map +1 -0
- package/dist/core/events/dock_width_detail.d.ts +8 -0
- package/dist/core/events/dock_width_detail.d.ts.map +1 -0
- package/dist/core/events/feedback_detail.d.ts +28 -0
- package/dist/core/events/feedback_detail.d.ts.map +1 -0
- package/dist/core/events/invalidate_detail.d.ts +16 -0
- package/dist/core/events/invalidate_detail.d.ts.map +1 -0
- package/dist/core/events/maximize_detail.d.ts +5 -0
- package/dist/core/events/maximize_detail.d.ts.map +1 -0
- package/dist/core/events/run_finished_detail.d.ts +36 -0
- package/dist/core/events/run_finished_detail.d.ts.map +1 -0
- package/dist/core/events/state_detail.d.ts +5 -0
- package/dist/core/events/state_detail.d.ts.map +1 -0
- package/dist/core/events/submit_detail.d.ts +8 -0
- package/dist/core/events/submit_detail.d.ts.map +1 -0
- package/dist/core/events/thread_detail.d.ts +27 -0
- package/dist/core/events/thread_detail.d.ts.map +1 -0
- package/dist/core/events/thread_title_detail.d.ts +8 -0
- package/dist/core/events/thread_title_detail.d.ts.map +1 -0
- package/dist/core/events/toggle_detail.d.ts +5 -0
- package/dist/core/events/toggle_detail.d.ts.map +1 -0
- package/dist/core/events/tool_run.d.ts +11 -0
- package/dist/core/events/tool_run.d.ts.map +1 -0
- package/dist/core/events/unread_detail.d.ts +11 -0
- package/dist/core/events/unread_detail.d.ts.map +1 -0
- package/dist/core/message_role.d.ts +4 -0
- package/dist/core/message_role.d.ts.map +1 -0
- package/dist/core/read_flag.d.ts +11 -0
- package/dist/core/read_flag.d.ts.map +1 -0
- package/dist/core/read_json_attribute.d.ts +15 -0
- package/dist/core/read_json_attribute.d.ts.map +1 -0
- package/dist/core/read_max_tool_rounds.d.ts +9 -0
- package/dist/core/read_max_tool_rounds.d.ts.map +1 -0
- package/dist/core/remote_conversation_store.d.ts +71 -0
- package/dist/core/remote_conversation_store.d.ts.map +1 -0
- package/dist/core/run_handlers.d.ts +85 -0
- package/dist/core/run_handlers.d.ts.map +1 -0
- package/dist/core/run_index.d.ts +58 -0
- package/dist/core/run_index.d.ts.map +1 -0
- package/dist/core/storage_scope.d.ts +118 -0
- package/dist/core/storage_scope.d.ts.map +1 -0
- package/dist/core/tool_outcome.d.ts +27 -0
- package/dist/core/tool_outcome.d.ts.map +1 -0
- package/dist/core/transcribe_audio.d.ts +32 -0
- package/dist/core/transcribe_audio.d.ts.map +1 -0
- package/dist/core/upload_attachment.d.ts +44 -0
- package/dist/core/upload_attachment.d.ts.map +1 -0
- package/dist/core/utils.d.ts +117 -0
- package/dist/core/utils.d.ts.map +1 -0
- package/dist/dom/animations.d.ts +122 -0
- package/dist/dom/animations.d.ts.map +1 -0
- package/dist/dom/dom_driver.d.ts +28 -0
- package/dist/dom/dom_driver.d.ts.map +1 -0
- package/dist/dom/highlight_overlay.d.ts +39 -0
- package/dist/dom/highlight_overlay.d.ts.map +1 -0
- package/dist/dom/native_setter.d.ts +5 -0
- package/dist/dom/native_setter.d.ts.map +1 -0
- package/dist/dom/ring_color.d.ts +16 -0
- package/dist/dom/ring_color.d.ts.map +1 -0
- package/dist/dom/utils.d.ts +3 -0
- package/dist/dom/utils.d.ts.map +1 -0
- package/dist/index.d.ts +62 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +223 -0
- package/dist/index.js.map +7 -0
- package/dist/skills/fill_template.d.ts +16 -0
- package/dist/skills/fill_template.d.ts.map +1 -0
- package/dist/skills/parse_skills.d.ts +8 -0
- package/dist/skills/parse_skills.d.ts.map +1 -0
- package/dist/skills/skill.d.ts +33 -0
- package/dist/skills/skill.d.ts.map +1 -0
- package/dist/skills/skill_catalog.d.ts +69 -0
- package/dist/skills/skill_catalog.d.ts.map +1 -0
- package/dist/skills/skill_name_from.d.ts +12 -0
- package/dist/skills/skill_name_from.d.ts.map +1 -0
- package/dist/tools/chat_surface_tools.d.ts +77 -0
- package/dist/tools/chat_surface_tools.d.ts.map +1 -0
- package/dist/tools/client_tool_registry.d.ts +58 -0
- package/dist/tools/client_tool_registry.d.ts.map +1 -0
- package/dist/tools/is_destructive.d.ts +14 -0
- package/dist/tools/is_destructive.d.ts.map +1 -0
- package/dist/tools/is_navigates.d.ts +9 -0
- package/dist/tools/is_navigates.d.ts.map +1 -0
- package/dist/tools/page_action_tools.d.ts +30 -0
- package/dist/tools/page_action_tools.d.ts.map +1 -0
- package/dist/tools/page_map.d.ts +16 -0
- package/dist/tools/page_map.d.ts.map +1 -0
- package/dist/tools/page_state.d.ts +27 -0
- package/dist/tools/page_state.d.ts.map +1 -0
- package/dist/tools/parse_tool_catalog.d.ts +21 -0
- package/dist/tools/parse_tool_catalog.d.ts.map +1 -0
- package/dist/tools/route_map.d.ts +37 -0
- package/dist/tools/route_map.d.ts.map +1 -0
- package/dist/tools/tool_catalog.d.ts +86 -0
- package/dist/tools/tool_catalog.d.ts.map +1 -0
- package/dist/tools/tool_dispatch.d.ts +82 -0
- package/dist/tools/tool_dispatch.d.ts.map +1 -0
- package/dist/ui/charts/chart_block.d.ts +57 -0
- package/dist/ui/charts/chart_block.d.ts.map +1 -0
- package/dist/ui/charts/chart_spec_from.d.ts +12 -0
- package/dist/ui/charts/chart_spec_from.d.ts.map +1 -0
- package/dist/ui/charts/chart_styles.d.ts +2 -0
- package/dist/ui/charts/chart_styles.d.ts.map +1 -0
- package/dist/ui/charts/chart_tool.d.ts +15 -0
- package/dist/ui/charts/chart_tool.d.ts.map +1 -0
- package/dist/ui/composer/attachment_styles.d.ts +2 -0
- package/dist/ui/composer/attachment_styles.d.ts.map +1 -0
- package/dist/ui/composer/attachment_tray.d.ts +53 -0
- package/dist/ui/composer/attachment_tray.d.ts.map +1 -0
- package/dist/ui/composer/auto_grow.d.ts +10 -0
- package/dist/ui/composer/auto_grow.d.ts.map +1 -0
- package/dist/ui/composer/build_composer.d.ts +32 -0
- package/dist/ui/composer/build_composer.d.ts.map +1 -0
- package/dist/ui/composer/composer_attachments.d.ts +57 -0
- package/dist/ui/composer/composer_attachments.d.ts.map +1 -0
- package/dist/ui/composer/composer_styles.d.ts +2 -0
- package/dist/ui/composer/composer_styles.d.ts.map +1 -0
- package/dist/ui/composer/composer_voice.d.ts +48 -0
- package/dist/ui/composer/composer_voice.d.ts.map +1 -0
- package/dist/ui/composer/skill_styles.d.ts +2 -0
- package/dist/ui/composer/skill_styles.d.ts.map +1 -0
- package/dist/ui/composer/skills_menu.d.ts +34 -0
- package/dist/ui/composer/skills_menu.d.ts.map +1 -0
- package/dist/ui/composer/voice_input.d.ts +46 -0
- package/dist/ui/composer/voice_input.d.ts.map +1 -0
- package/dist/ui/excerpts/attach_copy_buttons.d.ts +13 -0
- package/dist/ui/excerpts/attach_copy_buttons.d.ts.map +1 -0
- package/dist/ui/excerpts/copy_payload.d.ts +30 -0
- package/dist/ui/excerpts/copy_payload.d.ts.map +1 -0
- package/dist/ui/excerpts/page_quote_offer.d.ts +33 -0
- package/dist/ui/excerpts/page_quote_offer.d.ts.map +1 -0
- package/dist/ui/excerpts/place_offer.d.ts +9 -0
- package/dist/ui/excerpts/place_offer.d.ts.map +1 -0
- package/dist/ui/excerpts/quote_selection.d.ts +66 -0
- package/dist/ui/excerpts/quote_selection.d.ts.map +1 -0
- package/dist/ui/excerpts/transcript_quote_offer.d.ts +57 -0
- package/dist/ui/excerpts/transcript_quote_offer.d.ts.map +1 -0
- package/dist/ui/fill_ui_string.d.ts +32 -0
- package/dist/ui/fill_ui_string.d.ts.map +1 -0
- package/dist/ui/history/checkpoint_menu.d.ts +41 -0
- package/dist/ui/history/checkpoint_menu.d.ts.map +1 -0
- package/dist/ui/history/conversation_history.d.ts +317 -0
- package/dist/ui/history/conversation_history.d.ts.map +1 -0
- package/dist/ui/history/history_styles.d.ts +2 -0
- package/dist/ui/history/history_styles.d.ts.map +1 -0
- package/dist/ui/history/relative_time.d.ts +23 -0
- package/dist/ui/history/relative_time.d.ts.map +1 -0
- package/dist/ui/history/thread_drawer.d.ts +64 -0
- package/dist/ui/history/thread_drawer.d.ts.map +1 -0
- package/dist/ui/history/utils.d.ts +2 -0
- package/dist/ui/history/utils.d.ts.map +1 -0
- package/dist/ui/interrupts/approval_card.d.ts +64 -0
- package/dist/ui/interrupts/approval_card.d.ts.map +1 -0
- package/dist/ui/interrupts/approval_styles.d.ts +2 -0
- package/dist/ui/interrupts/approval_styles.d.ts.map +1 -0
- package/dist/ui/interrupts/confirmation_card.d.ts +51 -0
- package/dist/ui/interrupts/confirmation_card.d.ts.map +1 -0
- package/dist/ui/interrupts/confirmation_styles.d.ts +2 -0
- package/dist/ui/interrupts/confirmation_styles.d.ts.map +1 -0
- package/dist/ui/interrupts/pending_decision.d.ts +22 -0
- package/dist/ui/interrupts/pending_decision.d.ts.map +1 -0
- package/dist/ui/interrupts/question_card.d.ts +49 -0
- package/dist/ui/interrupts/question_card.d.ts.map +1 -0
- package/dist/ui/interrupts/question_styles.d.ts +2 -0
- package/dist/ui/interrupts/question_styles.d.ts.map +1 -0
- package/dist/ui/place/place.d.ts +17 -0
- package/dist/ui/place/place.d.ts.map +1 -0
- package/dist/ui/place/place_chip.d.ts +26 -0
- package/dist/ui/place/place_chip.d.ts.map +1 -0
- package/dist/ui/place/place_from_route.d.ts +9 -0
- package/dist/ui/place/place_from_route.d.ts.map +1 -0
- package/dist/ui/place/place_styles.d.ts +2 -0
- package/dist/ui/place/place_styles.d.ts.map +1 -0
- package/dist/ui/placement/clamp_launcher.d.ts +20 -0
- package/dist/ui/placement/clamp_launcher.d.ts.map +1 -0
- package/dist/ui/placement/clamp_panel.d.ts +13 -0
- package/dist/ui/placement/clamp_panel.d.ts.map +1 -0
- package/dist/ui/placement/collapse_styles.d.ts +2 -0
- package/dist/ui/placement/collapse_styles.d.ts.map +1 -0
- package/dist/ui/placement/dock_styles.d.ts +2 -0
- package/dist/ui/placement/dock_styles.d.ts.map +1 -0
- package/dist/ui/placement/embedded_styles.d.ts +2 -0
- package/dist/ui/placement/embedded_styles.d.ts.map +1 -0
- package/dist/ui/placement/launcher_drag.d.ts +49 -0
- package/dist/ui/placement/launcher_drag.d.ts.map +1 -0
- package/dist/ui/placement/launcher_placement.d.ts +77 -0
- package/dist/ui/placement/launcher_placement.d.ts.map +1 -0
- package/dist/ui/placement/launcher_styles.d.ts +2 -0
- package/dist/ui/placement/launcher_styles.d.ts.map +1 -0
- package/dist/ui/placement/page_styles.d.ts +2 -0
- package/dist/ui/placement/page_styles.d.ts.map +1 -0
- package/dist/ui/placement/panel_drag.d.ts +40 -0
- package/dist/ui/placement/panel_drag.d.ts.map +1 -0
- package/dist/ui/placement/panel_placement.d.ts +173 -0
- package/dist/ui/placement/panel_placement.d.ts.map +1 -0
- package/dist/ui/placement/place_widget.d.ts +31 -0
- package/dist/ui/placement/place_widget.d.ts.map +1 -0
- package/dist/ui/placement/preset_styles.d.ts +2 -0
- package/dist/ui/placement/preset_styles.d.ts.map +1 -0
- package/dist/ui/placement/resize_handle.d.ts +78 -0
- package/dist/ui/placement/resize_handle.d.ts.map +1 -0
- package/dist/ui/placement/resize_styles.d.ts +2 -0
- package/dist/ui/placement/resize_styles.d.ts.map +1 -0
- package/dist/ui/placement/sidebar_styles.d.ts +2 -0
- package/dist/ui/placement/sidebar_styles.d.ts.map +1 -0
- package/dist/ui/placement/small_viewport_styles.d.ts +2 -0
- package/dist/ui/placement/small_viewport_styles.d.ts.map +1 -0
- package/dist/ui/placement/surface_for.d.ts +93 -0
- package/dist/ui/placement/surface_for.d.ts.map +1 -0
- package/dist/ui/progress/prettify_tool_name.d.ts +11 -0
- package/dist/ui/progress/prettify_tool_name.d.ts.map +1 -0
- package/dist/ui/progress/run_announcer.d.ts +41 -0
- package/dist/ui/progress/run_announcer.d.ts.map +1 -0
- package/dist/ui/progress/run_notice.d.ts +21 -0
- package/dist/ui/progress/run_notice.d.ts.map +1 -0
- package/dist/ui/progress/run_notice_styles.d.ts +2 -0
- package/dist/ui/progress/run_notice_styles.d.ts.map +1 -0
- package/dist/ui/progress/subagent_panel.d.ts +101 -0
- package/dist/ui/progress/subagent_panel.d.ts.map +1 -0
- package/dist/ui/progress/subagent_progress.d.ts +57 -0
- package/dist/ui/progress/subagent_progress.d.ts.map +1 -0
- package/dist/ui/progress/subagent_update.d.ts +28 -0
- package/dist/ui/progress/subagent_update.d.ts.map +1 -0
- package/dist/ui/progress/thoughts_block.d.ts +57 -0
- package/dist/ui/progress/thoughts_block.d.ts.map +1 -0
- package/dist/ui/progress/thoughts_styles.d.ts +2 -0
- package/dist/ui/progress/thoughts_styles.d.ts.map +1 -0
- package/dist/ui/progress/tool_call_card.d.ts +167 -0
- package/dist/ui/progress/tool_call_card.d.ts.map +1 -0
- package/dist/ui/progress/tool_group_styles.d.ts +2 -0
- package/dist/ui/progress/tool_group_styles.d.ts.map +1 -0
- package/dist/ui/progress/tool_step_group.d.ts +50 -0
- package/dist/ui/progress/tool_step_group.d.ts.map +1 -0
- package/dist/ui/progress/tool_step_styles.d.ts +2 -0
- package/dist/ui/progress/tool_step_styles.d.ts.map +1 -0
- package/dist/ui/shell/adopt_styles.d.ts +28 -0
- package/dist/ui/shell/adopt_styles.d.ts.map +1 -0
- package/dist/ui/shell/build_header.d.ts +45 -0
- package/dist/ui/shell/build_header.d.ts.map +1 -0
- package/dist/ui/shell/build_launcher.d.ts +33 -0
- package/dist/ui/shell/build_launcher.d.ts.map +1 -0
- package/dist/ui/shell/collapse_glyph.d.ts +14 -0
- package/dist/ui/shell/collapse_glyph.d.ts.map +1 -0
- package/dist/ui/shell/frame_styles.d.ts +2 -0
- package/dist/ui/shell/frame_styles.d.ts.map +1 -0
- package/dist/ui/shell/glyph_slot.d.ts +7 -0
- package/dist/ui/shell/glyph_slot.d.ts.map +1 -0
- package/dist/ui/shell/header_button.d.ts +11 -0
- package/dist/ui/shell/header_button.d.ts.map +1 -0
- package/dist/ui/shell/icon_element.d.ts +12 -0
- package/dist/ui/shell/icon_element.d.ts.map +1 -0
- package/dist/ui/shell/is_unread_badge_enabled.d.ts +10 -0
- package/dist/ui/shell/is_unread_badge_enabled.d.ts.map +1 -0
- package/dist/ui/shell/read_launcher_icon_url.d.ts +8 -0
- package/dist/ui/shell/read_launcher_icon_url.d.ts.map +1 -0
- package/dist/ui/shell/theme_styles.d.ts +2 -0
- package/dist/ui/shell/theme_styles.d.ts.map +1 -0
- package/dist/ui/shell/token_styles.d.ts +2 -0
- package/dist/ui/shell/token_styles.d.ts.map +1 -0
- package/dist/ui/styles.d.ts +2 -0
- package/dist/ui/styles.d.ts.map +1 -0
- package/dist/ui/themes/classic_styles.d.ts +2 -0
- package/dist/ui/themes/classic_styles.d.ts.map +1 -0
- package/dist/ui/themes/classic_tokens.d.ts +2 -0
- package/dist/ui/themes/classic_tokens.d.ts.map +1 -0
- package/dist/ui/themes/code_tokens.d.ts +2 -0
- package/dist/ui/themes/code_tokens.d.ts.map +1 -0
- package/dist/ui/themes/ledger_styles.d.ts +2 -0
- package/dist/ui/themes/ledger_styles.d.ts.map +1 -0
- package/dist/ui/themes/ledger_tokens.d.ts +2 -0
- package/dist/ui/themes/ledger_tokens.d.ts.map +1 -0
- package/dist/ui/themes/modern_styles.d.ts +2 -0
- package/dist/ui/themes/modern_styles.d.ts.map +1 -0
- package/dist/ui/themes/quiet_styles.d.ts +2 -0
- package/dist/ui/themes/quiet_styles.d.ts.map +1 -0
- package/dist/ui/themes/scheme_styles.d.ts +2 -0
- package/dist/ui/themes/scheme_styles.d.ts.map +1 -0
- package/dist/ui/themes/soft_styles.d.ts +2 -0
- package/dist/ui/themes/soft_styles.d.ts.map +1 -0
- package/dist/ui/themes/soft_tokens.d.ts +2 -0
- package/dist/ui/themes/soft_tokens.d.ts.map +1 -0
- package/dist/ui/themes/theme_hosts.d.ts +15 -0
- package/dist/ui/themes/theme_hosts.d.ts.map +1 -0
- package/dist/ui/transcript/answer_actions.d.ts +50 -0
- package/dist/ui/transcript/answer_actions.d.ts.map +1 -0
- package/dist/ui/transcript/answer_stream.d.ts +56 -0
- package/dist/ui/transcript/answer_stream.d.ts.map +1 -0
- package/dist/ui/transcript/attachment_chip_styles.d.ts +2 -0
- package/dist/ui/transcript/attachment_chip_styles.d.ts.map +1 -0
- package/dist/ui/transcript/attachment_chips.d.ts +21 -0
- package/dist/ui/transcript/attachment_chips.d.ts.map +1 -0
- package/dist/ui/transcript/build_transcript.d.ts +21 -0
- package/dist/ui/transcript/build_transcript.d.ts.map +1 -0
- package/dist/ui/transcript/greeting_styles.d.ts +2 -0
- package/dist/ui/transcript/greeting_styles.d.ts.map +1 -0
- package/dist/ui/transcript/groups_tool_steps.d.ts +13 -0
- package/dist/ui/transcript/groups_tool_steps.d.ts.map +1 -0
- package/dist/ui/transcript/message_action_styles.d.ts +2 -0
- package/dist/ui/transcript/message_action_styles.d.ts.map +1 -0
- package/dist/ui/transcript/message_actions.d.ts +74 -0
- package/dist/ui/transcript/message_actions.d.ts.map +1 -0
- package/dist/ui/transcript/message_styles.d.ts +2 -0
- package/dist/ui/transcript/message_styles.d.ts.map +1 -0
- package/dist/ui/transcript/render_markdown.d.ts +40 -0
- package/dist/ui/transcript/render_markdown.d.ts.map +1 -0
- package/dist/ui/transcript/render_or_warn.d.ts +16 -0
- package/dist/ui/transcript/render_or_warn.d.ts.map +1 -0
- package/dist/ui/transcript/reveal_words.d.ts +8 -0
- package/dist/ui/transcript/reveal_words.d.ts.map +1 -0
- package/dist/ui/transcript/starter_chips.d.ts +21 -0
- package/dist/ui/transcript/starter_chips.d.ts.map +1 -0
- package/dist/ui/transcript/stick_to_bottom.d.ts +55 -0
- package/dist/ui/transcript/stick_to_bottom.d.ts.map +1 -0
- package/dist/ui/transcript/suggestion_chips.d.ts +29 -0
- package/dist/ui/transcript/suggestion_chips.d.ts.map +1 -0
- package/dist/ui/transcript/transcript.d.ts +196 -0
- package/dist/ui/transcript/transcript.d.ts.map +1 -0
- package/dist/ui/transcript/transcript_styles.d.ts +2 -0
- package/dist/ui/transcript/transcript_styles.d.ts.map +1 -0
- package/dist/ui/ui_strings.d.ts +352 -0
- package/dist/ui/ui_strings.d.ts.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/package.json +86 -3
- package/src/bundle.ts +2 -0
- package/src/chat.ts +2 -0
- package/src/constants.ts +650 -0
- package/src/core/activity_registration.ts +19 -0
- package/src/core/activity_registry.ts +133 -0
- package/src/core/activity_renderer.ts +19 -0
- package/src/core/ag_ui_chat.ts +3966 -0
- package/src/core/agui_client.ts +1028 -0
- package/src/core/attachment.ts +62 -0
- package/src/core/chat_registry.ts +53 -0
- package/src/core/client_seed.ts +27 -0
- package/src/core/conversation_store.ts +478 -0
- package/src/core/create_http_agent.ts +97 -0
- package/src/core/define_chat.ts +25 -0
- package/src/core/events/attachments_detail.ts +9 -0
- package/src/core/events/bar_height_detail.ts +5 -0
- package/src/core/events/custom_agent_detail.ts +7 -0
- package/src/core/events/dock_width_detail.ts +7 -0
- package/src/core/events/feedback_detail.ts +27 -0
- package/src/core/events/invalidate_detail.ts +15 -0
- package/src/core/events/maximize_detail.ts +4 -0
- package/src/core/events/run_finished_detail.ts +36 -0
- package/src/core/events/state_detail.ts +4 -0
- package/src/core/events/submit_detail.ts +8 -0
- package/src/core/events/thread_detail.ts +26 -0
- package/src/core/events/thread_title_detail.ts +7 -0
- package/src/core/events/toggle_detail.ts +4 -0
- package/src/core/events/tool_run.ts +10 -0
- package/src/core/events/unread_detail.ts +10 -0
- package/src/core/message_role.ts +4 -0
- package/src/core/read_flag.ts +13 -0
- package/src/core/read_json_attribute.ts +30 -0
- package/src/core/read_max_tool_rounds.ts +13 -0
- package/src/core/remote_conversation_store.ts +279 -0
- package/src/core/run_handlers.ts +524 -0
- package/src/core/run_index.ts +114 -0
- package/src/core/storage_scope.ts +291 -0
- package/src/core/tool_outcome.ts +39 -0
- package/src/core/transcribe_audio.ts +76 -0
- package/src/core/upload_attachment.ts +130 -0
- package/src/core/utils.ts +230 -0
- package/src/dom/animations.ts +341 -0
- package/src/dom/dom_driver.ts +91 -0
- package/src/dom/highlight_overlay.ts +204 -0
- package/src/dom/native_setter.ts +40 -0
- package/src/dom/ring_color.ts +206 -0
- package/src/dom/utils.ts +5 -0
- package/src/index.ts +220 -0
- package/src/skills/fill_template.ts +31 -0
- package/src/skills/parse_skills.ts +31 -0
- package/src/skills/skill.ts +32 -0
- package/src/skills/skill_catalog.ts +172 -0
- package/src/skills/skill_name_from.ts +19 -0
- package/src/tools/chat_surface_tools.ts +183 -0
- package/src/tools/client_tool_registry.ts +80 -0
- package/src/tools/is_destructive.ts +17 -0
- package/src/tools/is_navigates.ts +12 -0
- package/src/tools/page_action_tools.ts +123 -0
- package/src/tools/page_map.ts +26 -0
- package/src/tools/page_state.ts +57 -0
- package/src/tools/parse_tool_catalog.ts +41 -0
- package/src/tools/route_map.ts +132 -0
- package/src/tools/tool_catalog.ts +334 -0
- package/src/tools/tool_dispatch.ts +453 -0
- package/src/ui/charts/chart_block.ts +519 -0
- package/src/ui/charts/chart_spec_from.ts +125 -0
- package/src/ui/charts/chart_styles.ts +63 -0
- package/src/ui/charts/chart_tool.ts +72 -0
- package/src/ui/composer/attachment_styles.ts +71 -0
- package/src/ui/composer/attachment_tray.ts +295 -0
- package/src/ui/composer/auto_grow.ts +12 -0
- package/src/ui/composer/build_composer.ts +114 -0
- package/src/ui/composer/composer_attachments.ts +324 -0
- package/src/ui/composer/composer_styles.ts +177 -0
- package/src/ui/composer/composer_voice.ts +93 -0
- package/src/ui/composer/skill_styles.ts +120 -0
- package/src/ui/composer/skills_menu.ts +188 -0
- package/src/ui/composer/voice_input.ts +282 -0
- package/src/ui/excerpts/attach_copy_buttons.ts +73 -0
- package/src/ui/excerpts/copy_payload.ts +156 -0
- package/src/ui/excerpts/page_quote_offer.ts +203 -0
- package/src/ui/excerpts/place_offer.ts +24 -0
- package/src/ui/excerpts/quote_selection.ts +345 -0
- package/src/ui/excerpts/transcript_quote_offer.ts +175 -0
- package/src/ui/fill_ui_string.ts +41 -0
- package/src/ui/history/checkpoint_menu.ts +300 -0
- package/src/ui/history/conversation_history.ts +1169 -0
- package/src/ui/history/history_styles.ts +492 -0
- package/src/ui/history/relative_time.ts +50 -0
- package/src/ui/history/thread_drawer.ts +471 -0
- package/src/ui/history/utils.ts +11 -0
- package/src/ui/interrupts/approval_card.ts +202 -0
- package/src/ui/interrupts/approval_styles.ts +52 -0
- package/src/ui/interrupts/confirmation_card.ts +138 -0
- package/src/ui/interrupts/confirmation_styles.ts +114 -0
- package/src/ui/interrupts/pending_decision.ts +33 -0
- package/src/ui/interrupts/question_card.ts +213 -0
- package/src/ui/interrupts/question_styles.ts +73 -0
- package/src/ui/place/place.ts +16 -0
- package/src/ui/place/place_chip.ts +146 -0
- package/src/ui/place/place_from_route.ts +27 -0
- package/src/ui/place/place_styles.ts +108 -0
- package/src/ui/placement/clamp_launcher.ts +38 -0
- package/src/ui/placement/clamp_panel.ts +30 -0
- package/src/ui/placement/collapse_styles.ts +472 -0
- package/src/ui/placement/dock_styles.ts +116 -0
- package/src/ui/placement/embedded_styles.ts +14 -0
- package/src/ui/placement/launcher_drag.ts +206 -0
- package/src/ui/placement/launcher_placement.ts +133 -0
- package/src/ui/placement/launcher_styles.ts +189 -0
- package/src/ui/placement/page_styles.ts +47 -0
- package/src/ui/placement/panel_drag.ts +138 -0
- package/src/ui/placement/panel_placement.ts +1975 -0
- package/src/ui/placement/place_widget.ts +64 -0
- package/src/ui/placement/preset_styles.ts +49 -0
- package/src/ui/placement/resize_handle.ts +229 -0
- package/src/ui/placement/resize_styles.ts +201 -0
- package/src/ui/placement/sidebar_styles.ts +113 -0
- package/src/ui/placement/small_viewport_styles.ts +70 -0
- package/src/ui/placement/surface_for.ts +183 -0
- package/src/ui/progress/prettify_tool_name.ts +16 -0
- package/src/ui/progress/run_announcer.ts +67 -0
- package/src/ui/progress/run_notice.ts +61 -0
- package/src/ui/progress/run_notice_styles.ts +52 -0
- package/src/ui/progress/subagent_panel.ts +227 -0
- package/src/ui/progress/subagent_progress.ts +200 -0
- package/src/ui/progress/subagent_update.ts +89 -0
- package/src/ui/progress/thoughts_block.ts +165 -0
- package/src/ui/progress/thoughts_styles.ts +74 -0
- package/src/ui/progress/tool_call_card.ts +429 -0
- package/src/ui/progress/tool_group_styles.ts +313 -0
- package/src/ui/progress/tool_step_group.ts +317 -0
- package/src/ui/progress/tool_step_styles.ts +486 -0
- package/src/ui/shell/adopt_styles.ts +34 -0
- package/src/ui/shell/build_header.ts +121 -0
- package/src/ui/shell/build_launcher.ts +79 -0
- package/src/ui/shell/collapse_glyph.ts +42 -0
- package/src/ui/shell/frame_styles.ts +147 -0
- package/src/ui/shell/glyph_slot.ts +12 -0
- package/src/ui/shell/header_button.ts +22 -0
- package/src/ui/shell/icon_element.ts +33 -0
- package/src/ui/shell/is_unread_badge_enabled.ts +11 -0
- package/src/ui/shell/read_launcher_icon_url.ts +9 -0
- package/src/ui/shell/theme_styles.ts +11 -0
- package/src/ui/shell/token_styles.ts +480 -0
- package/src/ui/styles.ts +110 -0
- package/src/ui/themes/classic_styles.ts +32 -0
- package/src/ui/themes/classic_tokens.ts +51 -0
- package/src/ui/themes/code_tokens.ts +21 -0
- package/src/ui/themes/ledger_styles.ts +169 -0
- package/src/ui/themes/ledger_tokens.ts +33 -0
- package/src/ui/themes/modern_styles.ts +80 -0
- package/src/ui/themes/quiet_styles.ts +118 -0
- package/src/ui/themes/scheme_styles.ts +26 -0
- package/src/ui/themes/soft_styles.ts +149 -0
- package/src/ui/themes/soft_tokens.ts +29 -0
- package/src/ui/themes/theme_hosts.ts +14 -0
- package/src/ui/transcript/answer_actions.ts +165 -0
- package/src/ui/transcript/answer_stream.ts +123 -0
- package/src/ui/transcript/attachment_chip_styles.ts +116 -0
- package/src/ui/transcript/attachment_chips.ts +82 -0
- package/src/ui/transcript/build_transcript.ts +67 -0
- package/src/ui/transcript/greeting_styles.ts +171 -0
- package/src/ui/transcript/groups_tool_steps.ts +16 -0
- package/src/ui/transcript/message_action_styles.ts +155 -0
- package/src/ui/transcript/message_actions.ts +234 -0
- package/src/ui/transcript/message_styles.ts +262 -0
- package/src/ui/transcript/render_markdown.ts +181 -0
- package/src/ui/transcript/render_or_warn.ts +22 -0
- package/src/ui/transcript/reveal_words.ts +41 -0
- package/src/ui/transcript/starter_chips.ts +42 -0
- package/src/ui/transcript/stick_to_bottom.ts +126 -0
- package/src/ui/transcript/suggestion_chips.ts +73 -0
- package/src/ui/transcript/transcript.ts +555 -0
- package/src/ui/transcript/transcript_styles.ts +153 -0
- package/src/ui/ui_strings.ts +550 -0
- package/src/version.ts +1 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { ICON_LAUNCHER } from "../../constants.js";
|
|
2
|
+
import type { UiStrings } from "../ui_strings.js";
|
|
3
|
+
import { iconElement } from "./icon_element.js";
|
|
4
|
+
|
|
5
|
+
/** The launcher's parts, owned by the element, and what fills them. */
|
|
6
|
+
export interface LauncherOptions {
|
|
7
|
+
readonly launcher: HTMLButtonElement;
|
|
8
|
+
readonly badge: HTMLElement;
|
|
9
|
+
readonly railLabel: HTMLElement;
|
|
10
|
+
/** The bottom bar's wrapper, which holds the launcher and the history button. */
|
|
11
|
+
readonly bar: HTMLElement;
|
|
12
|
+
/** The bottom bar's history button, a sibling of the launcher in the bar. */
|
|
13
|
+
readonly barHistory: HTMLButtonElement;
|
|
14
|
+
/** The place beside the title, which its owner shows and hides. */
|
|
15
|
+
readonly barPlace: HTMLElement;
|
|
16
|
+
readonly titleText: string;
|
|
17
|
+
readonly iconUrl: string | null;
|
|
18
|
+
readonly strings: UiStrings;
|
|
19
|
+
readonly signal: AbortSignal;
|
|
20
|
+
readonly onOpen: () => void;
|
|
21
|
+
readonly onHistory: () => void;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Build what a collapsed widget shrinks to: a round floating button, the slim
|
|
26
|
+
* edge rail under `placement="sidebar"`, or the strip along the bottom edge
|
|
27
|
+
* under `collapse-to="bar"` -- one element, shaped by the stylesheet. The
|
|
28
|
+
* element mounts the bar wrapper as a sibling of the panel, so it survives the
|
|
29
|
+
* panel being hidden.
|
|
30
|
+
*
|
|
31
|
+
* The wrapper is there for the bar's history button: a button cannot nest in
|
|
32
|
+
* a button, so the strip is the launcher and the history button side by side.
|
|
33
|
+
* Outside the bar the wrapper draws no box and the history button is not
|
|
34
|
+
* drawn, so the launcher lays out against the host exactly as it did alone.
|
|
35
|
+
*/
|
|
36
|
+
export function buildLauncher(options: LauncherOptions): void {
|
|
37
|
+
const { launcher, badge, railLabel, bar, barHistory, barPlace } = options;
|
|
38
|
+
launcher.className = "launcher";
|
|
39
|
+
launcher.type = "button";
|
|
40
|
+
launcher.setAttribute("part", "launcher");
|
|
41
|
+
launcher.setAttribute("aria-label", options.strings.expand);
|
|
42
|
+
badge.className = "launcher-badge";
|
|
43
|
+
badge.setAttribute("part", "launcher-badge");
|
|
44
|
+
// The count is announced through the launcher's own label, so the badge is
|
|
45
|
+
// decoration to a screen reader rather than a second, context-free number.
|
|
46
|
+
badge.setAttribute("aria-hidden", "true");
|
|
47
|
+
badge.hidden = true;
|
|
48
|
+
// Only the edge rail shows this. A full-height column carrying one small
|
|
49
|
+
// icon reads as a coloured stripe rather than a way back into a
|
|
50
|
+
// conversation -- it is the widest collapsed state there is and the one
|
|
51
|
+
// that says least about itself. Written here and hidden in CSS everywhere
|
|
52
|
+
// else, because the launcher is one element shaped by placement.
|
|
53
|
+
railLabel.className = "rail-label";
|
|
54
|
+
railLabel.setAttribute("part", "rail-label");
|
|
55
|
+
railLabel.setAttribute("aria-hidden", "true");
|
|
56
|
+
railLabel.textContent = options.titleText;
|
|
57
|
+
launcher.replaceChildren(
|
|
58
|
+
iconElement("launcher", "launcher-icon", ICON_LAUNCHER, options.iconUrl),
|
|
59
|
+
railLabel,
|
|
60
|
+
badge,
|
|
61
|
+
);
|
|
62
|
+
launcher.addEventListener("click", options.onOpen, { signal: options.signal });
|
|
63
|
+
bar.className = "dock-bar";
|
|
64
|
+
bar.setAttribute("part", "bar");
|
|
65
|
+
barHistory.className = "bar-history";
|
|
66
|
+
barHistory.type = "button";
|
|
67
|
+
barHistory.setAttribute("part", "bar-history");
|
|
68
|
+
barHistory.title = options.strings.chatHistory;
|
|
69
|
+
barHistory.setAttribute("aria-label", options.strings.chatHistory);
|
|
70
|
+
// A glyph rather than the header's icon slot: a slot name may appear once
|
|
71
|
+
// per shadow root, and the header's history button already holds it.
|
|
72
|
+
const glyph = document.createElement("span");
|
|
73
|
+
glyph.className = "bar-history-glyph";
|
|
74
|
+
glyph.setAttribute("aria-hidden", "true");
|
|
75
|
+
glyph.textContent = "\u2630";
|
|
76
|
+
barHistory.replaceChildren(glyph);
|
|
77
|
+
barHistory.addEventListener("click", options.onHistory, { signal: options.signal });
|
|
78
|
+
bar.replaceChildren(launcher, barPlace, barHistory);
|
|
79
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ICON_CHEVRON_DOWN,
|
|
3
|
+
ICON_CHEVRON_LEFT,
|
|
4
|
+
ICON_CHEVRON_RIGHT,
|
|
5
|
+
ICON_CHEVRON_UP,
|
|
6
|
+
ICON_PANEL_CLOSE_LEFT,
|
|
7
|
+
ICON_PANEL_CLOSE_RIGHT,
|
|
8
|
+
} from "../../constants.js";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* The collapse control's mark for the element's `data-collapse-icon`,
|
|
12
|
+
* `placement` and `data-side`, read live by the caller.
|
|
13
|
+
*
|
|
14
|
+
* Unset, or a value it does not name, follows the placement: a docked column
|
|
15
|
+
* (`sidebar`, and the undocumented `side`) hides sideways into its edge, so it
|
|
16
|
+
* takes the panel mark, and everything else -- the corners, `full`,
|
|
17
|
+
* `embedded`, an unknown placement -- keeps the chevron down. The panel mark
|
|
18
|
+
* points into the edge the panel docks to, so it is mirrored for either docked
|
|
19
|
+
* placement on `data-side="left"`, whether it was chosen or defaulted. The
|
|
20
|
+
* chevrons are absolute.
|
|
21
|
+
*/
|
|
22
|
+
export function collapseGlyph(
|
|
23
|
+
choice: string | null,
|
|
24
|
+
placement: string | null,
|
|
25
|
+
side: string | null,
|
|
26
|
+
): string {
|
|
27
|
+
switch (choice) {
|
|
28
|
+
case "chevron-up":
|
|
29
|
+
return ICON_CHEVRON_UP;
|
|
30
|
+
case "chevron-down":
|
|
31
|
+
return ICON_CHEVRON_DOWN;
|
|
32
|
+
case "chevron-left":
|
|
33
|
+
return ICON_CHEVRON_LEFT;
|
|
34
|
+
case "chevron-right":
|
|
35
|
+
return ICON_CHEVRON_RIGHT;
|
|
36
|
+
}
|
|
37
|
+
const docked = placement === "sidebar" || placement === "side";
|
|
38
|
+
if (choice !== "panel-close" && !docked) {
|
|
39
|
+
return ICON_CHEVRON_DOWN;
|
|
40
|
+
}
|
|
41
|
+
return docked && side === "left" ? ICON_PANEL_CLOSE_LEFT : ICON_PANEL_CLOSE_RIGHT;
|
|
42
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
// The panel itself and its header: title, icon holder and header controls.
|
|
2
|
+
export const FRAME_STYLES: string = `
|
|
3
|
+
.chat {
|
|
4
|
+
position: relative;
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
flex: 1;
|
|
8
|
+
min-height: 0;
|
|
9
|
+
background: var(--_bg);
|
|
10
|
+
border: 1px solid var(--_border);
|
|
11
|
+
border-radius: var(--_panel-radius);
|
|
12
|
+
box-shadow: var(--_shadow);
|
|
13
|
+
overflow: hidden;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.header {
|
|
17
|
+
display: flex;
|
|
18
|
+
align-items: center;
|
|
19
|
+
justify-content: space-between;
|
|
20
|
+
gap: 8px;
|
|
21
|
+
padding: 10px 14px;
|
|
22
|
+
border-bottom: 1px solid var(--_border);
|
|
23
|
+
background: var(--_header-bg);
|
|
24
|
+
color: var(--_header-fg);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/* The header is the panel's title bar: on the placements that let the widget
|
|
28
|
+
be moved it drags the whole thing, matching the launcher's own drag. The
|
|
29
|
+
selector lists those placements rather than asking JS to stamp an attribute,
|
|
30
|
+
because a cursor that appears one frame late reads as a control that only
|
|
31
|
+
sometimes exists. touch-action keeps a finger drag here moving the panel
|
|
32
|
+
instead of scrolling the page behind it. */
|
|
33
|
+
:host(:not([placement])) .header,
|
|
34
|
+
:host([placement=""]) .header,
|
|
35
|
+
:host([placement="floating"]) .header,
|
|
36
|
+
:host([placement="bottom-left"]) .header {
|
|
37
|
+
cursor: move;
|
|
38
|
+
touch-action: none;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* A host that turned the drag off keeps a header that says so. */
|
|
42
|
+
:host([data-launcher-drag="false"]) .header {
|
|
43
|
+
cursor: auto;
|
|
44
|
+
touch-action: auto;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* A panel that is the screen has nowhere to go, so its header refuses the drag
|
|
48
|
+
and must not offer it. No selector can see that a host has sized the panel to
|
|
49
|
+
the window, so the placement stamps this from the measurement that refuses the
|
|
50
|
+
drag. :host is carried for the specificity, not the scope, as below. Before the
|
|
51
|
+
dragging rule, so a drag the header did take keeps its grabbing cursor. */
|
|
52
|
+
:host .header[data-fills-screen] {
|
|
53
|
+
cursor: auto;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* :host is carried for the specificity, not the scope: the placement rules
|
|
57
|
+
above are a host selector plus a class plus an attribute, and a bare
|
|
58
|
+
.header[data-dragging] loses to them -- silently, because the drag still
|
|
59
|
+
works and only the cursor is wrong. */
|
|
60
|
+
:host .header[data-dragging] {
|
|
61
|
+
cursor: grabbing;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/* The cursor inherits, so a control a host slots into the header would show
|
|
65
|
+
the drag cursor over something the drag deliberately ignores. Named to
|
|
66
|
+
match the controls panel_drag steps aside for. */
|
|
67
|
+
.header ::slotted(:is(button, a, input, select, textarea)) {
|
|
68
|
+
cursor: pointer;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.header-title {
|
|
72
|
+
flex: 1;
|
|
73
|
+
min-width: 0;
|
|
74
|
+
font-weight: 600;
|
|
75
|
+
overflow: hidden;
|
|
76
|
+
text-overflow: ellipsis;
|
|
77
|
+
white-space: nowrap;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/* Header / launcher icon holder: a slot, with a data-icon-url <img>
|
|
81
|
+
fallback, sized via --ag-ui-icon-size. */
|
|
82
|
+
.icon-holder {
|
|
83
|
+
display: inline-flex;
|
|
84
|
+
align-items: center;
|
|
85
|
+
justify-content: center;
|
|
86
|
+
flex: none;
|
|
87
|
+
width: var(--_icon-size);
|
|
88
|
+
height: var(--_icon-size);
|
|
89
|
+
line-height: 1;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.icon-img {
|
|
93
|
+
width: 100%;
|
|
94
|
+
height: 100%;
|
|
95
|
+
object-fit: contain;
|
|
96
|
+
border-radius: var(--_icon-radius);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.header-controls {
|
|
100
|
+
display: flex;
|
|
101
|
+
gap: var(--_header-gap);
|
|
102
|
+
flex: none;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* Under every theme: once the host sets the header text, the header behind the
|
|
106
|
+
buttons is the host's colour, so their rest opacity goes. The frame's 0.85
|
|
107
|
+
lets the header through the glyph, which took white on a mid-blue header from
|
|
108
|
+
5.1:1 to 4.2:1. With the header text set, the opacity below reads a colour,
|
|
109
|
+
which no opacity can be, so it is invalid at computed-value time and falls to
|
|
110
|
+
the initial 1; unset, it reads the fallback. The glyph is each theme's own
|
|
111
|
+
business: this inherits the header text, and a theme that draws the buttons
|
|
112
|
+
in another ink reads the same switch to yield. */
|
|
113
|
+
.header-btn {
|
|
114
|
+
display: inline-flex;
|
|
115
|
+
flex: 0 0 auto;
|
|
116
|
+
align-items: center;
|
|
117
|
+
justify-content: center;
|
|
118
|
+
box-sizing: border-box;
|
|
119
|
+
width: var(--_header-btn-size);
|
|
120
|
+
height: var(--_header-btn-size);
|
|
121
|
+
border: none;
|
|
122
|
+
background: transparent;
|
|
123
|
+
color: inherit;
|
|
124
|
+
font: inherit;
|
|
125
|
+
line-height: 1;
|
|
126
|
+
padding: 0;
|
|
127
|
+
border-radius: 6px;
|
|
128
|
+
cursor: pointer;
|
|
129
|
+
opacity: var(--_header-fg-set, 0.85);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/* The square is the host's own when it set one; otherwise it is mixed from the
|
|
133
|
+
header text when the host set that, so it reads on any header the host
|
|
134
|
+
painted; otherwise it is the theme's own. See the alias in the token defaults. */
|
|
135
|
+
.header-btn:hover {
|
|
136
|
+
opacity: 1;
|
|
137
|
+
background: var(--_header-btn-hover);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/* Every built-in header mark is a drawn glyph at the composer's size; the theme
|
|
141
|
+
toggle's holder takes that size too, so its moon matches its neighbours. */
|
|
142
|
+
.header-btn .glyph,
|
|
143
|
+
.header-btn .icon-holder {
|
|
144
|
+
width: var(--_glyph-size);
|
|
145
|
+
height: var(--_glyph-size);
|
|
146
|
+
}
|
|
147
|
+
`;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A `<slot>` a host can project its own mark into, falling back to one of the
|
|
3
|
+
* built-in glyphs. The markup is an author-written constant, never user or
|
|
4
|
+
* server data, so it is assigned directly rather than sanitised.
|
|
5
|
+
*/
|
|
6
|
+
export function glyphSlot(slotName: string, className: string, markup: string): HTMLSlotElement {
|
|
7
|
+
const slot = document.createElement("slot");
|
|
8
|
+
slot.name = slotName;
|
|
9
|
+
slot.className = className;
|
|
10
|
+
slot.innerHTML = markup;
|
|
11
|
+
return slot;
|
|
12
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build a header control button: a named slot a host can project markup into,
|
|
3
|
+
* with the built-in glyph (static SVG markup from `constants.ts`) as the slot's
|
|
4
|
+
* fallback.
|
|
5
|
+
*
|
|
6
|
+
* The slot is what lets a host replace the mark with its own `<img>` or
|
|
7
|
+
* `<svg>` rather than only restyle it through the `part`; the same
|
|
8
|
+
* slot-with-fallback idiom the header icon uses.
|
|
9
|
+
*/
|
|
10
|
+
export function headerButton(modifier: string, label: string, glyph: string): HTMLButtonElement {
|
|
11
|
+
const button = document.createElement("button");
|
|
12
|
+
button.type = "button";
|
|
13
|
+
button.className = `header-btn header-btn--${modifier}`;
|
|
14
|
+
button.setAttribute("part", `header-button ${modifier}-button`);
|
|
15
|
+
button.title = label;
|
|
16
|
+
button.setAttribute("aria-label", label);
|
|
17
|
+
const slot = document.createElement("slot");
|
|
18
|
+
slot.name = `icon-${modifier}`;
|
|
19
|
+
slot.innerHTML = glyph;
|
|
20
|
+
button.append(slot);
|
|
21
|
+
return button;
|
|
22
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* An icon holder wrapping a `<slot>` so a host can project custom markup;
|
|
3
|
+
* with an `<img>` as the slot's fallback when an icon URL is configured, or
|
|
4
|
+
* the given glyph markup when it is not.
|
|
5
|
+
*
|
|
6
|
+
* `iconUrl` is the caller's to read rather than defaulted here, because the
|
|
7
|
+
* three marks answer it differently: the header's is `data-icon-url`, the
|
|
8
|
+
* launcher's falls back to it from an attribute of its own, and the theme
|
|
9
|
+
* toggle never takes an image at all.
|
|
10
|
+
*/
|
|
11
|
+
export function iconElement(
|
|
12
|
+
slotName: string,
|
|
13
|
+
part: string,
|
|
14
|
+
fallbackGlyph: string | null,
|
|
15
|
+
iconUrl: string | null,
|
|
16
|
+
): HTMLSpanElement {
|
|
17
|
+
const holder = document.createElement("span");
|
|
18
|
+
holder.className = "icon-holder";
|
|
19
|
+
holder.setAttribute("part", part);
|
|
20
|
+
const slot = document.createElement("slot");
|
|
21
|
+
slot.name = slotName;
|
|
22
|
+
if (iconUrl !== null) {
|
|
23
|
+
const img = document.createElement("img");
|
|
24
|
+
img.className = "icon-img";
|
|
25
|
+
img.src = iconUrl;
|
|
26
|
+
img.alt = "";
|
|
27
|
+
slot.append(img);
|
|
28
|
+
} else if (fallbackGlyph !== null) {
|
|
29
|
+
slot.innerHTML = fallbackGlyph;
|
|
30
|
+
}
|
|
31
|
+
holder.append(slot);
|
|
32
|
+
return holder;
|
|
33
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether the launcher's unread badge is shown.
|
|
3
|
+
*
|
|
4
|
+
* The unread badge, unlike every other affordance here, is on by default:
|
|
5
|
+
* a collapsed widget is the one state where an answer can arrive with nothing
|
|
6
|
+
* on screen to say so. `data-unread-badge="false"` turns it off for a host
|
|
7
|
+
* that drives its own chrome from the `ag-ui-unread` event.
|
|
8
|
+
*/
|
|
9
|
+
export function isUnreadBadgeEnabled(element: Element): boolean {
|
|
10
|
+
return element.getAttribute("data-unread-badge") !== "false";
|
|
11
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The launcher's own image URL. `data-launcher-icon-url` lets the collapsed
|
|
3
|
+
* button carry a different mark from the header's — a product logo reads at
|
|
4
|
+
* 22px in a header bar but rarely at 26px in a circle — and falls back to the
|
|
5
|
+
* header icon so a single `data-icon-url` still feeds both.
|
|
6
|
+
*/
|
|
7
|
+
export function readLauncherIconUrl(element: Element): string | null {
|
|
8
|
+
return element.getAttribute("data-launcher-icon-url") ?? element.getAttribute("data-icon-url");
|
|
9
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// The density presets: token overrides only. The themes live in ui/themes.
|
|
2
|
+
export const THEME_STYLES: string = `
|
|
3
|
+
/* ── Density ────────────────────────────────────────────────────────────── */
|
|
4
|
+
:host([density="compact"]) {
|
|
5
|
+
--_font-size: var(--ag-ui-font-size, 13px);
|
|
6
|
+
--_space: var(--ag-ui-space, 6px);
|
|
7
|
+
--_pad: var(--ag-ui-pad, 10px);
|
|
8
|
+
--_msg-pad: var(--ag-ui-msg-pad, 5px 9px);
|
|
9
|
+
--_msg-radius: var(--ag-ui-msg-radius, 10px);
|
|
10
|
+
}
|
|
11
|
+
`;
|