0 directories, 46 files

util

Home / tinai / util
import { getEl, queryEl, queryAll } from './dom-utils.js';

/**
 * Looks up all shared DOM elements used by the app and its feature modules.
 * Call once during initialization and assign the result onto the App instance.
 * @returns {Object} Map of element names to DOM elements.
 */
export function initElements() {
	return {
		// Header / prompt
		btn_close: getEl('btn-close'),
		btn_send: getEl('btn-send'),
		prompt: getEl('id-prompt'),
		div_title: getEl('id-div-response-title'),
		span_title_loading: getEl('id-span-title-loading'),
		div_response: getEl('id-div-response-render'),
		div_chat_container: getEl('div-structure-chat-container'),

		// Theme & utility model
		select_theme_family: getEl('id-select-theme-family'),
		select_theme: getEl('id-select-theme'),
		select_utility_model: getEl('id-select-utility-model'),
		div_utility_model_cost: getEl('id-div-utility-model-cost'),
		select_tts_model: getEl('id-select-tts-model'),
		select_tts_voice: getEl('id-select-tts-voice'),
		btn_tts_preview: getEl('btn-tts-preview'),
		btn_tts_clear_cache: getEl('btn-tts-clear-cache'),
		div_tts_cost: getEl('id-div-tts-cost'),

		// Model settings (app + conversation)
		select_default_verbosity: getEl('id-select-default-verbosity'),
		select_conversation_verbosity: getEl('id-select-conversation-verbosity'),
		select_default_model: getEl('id-select-default-model'),
		select_default_model_family: getEl('id-select-default-model-family'),
		select_default_model_version: getEl('id-select-default-model-version'),
		select_default_thinking_level: getEl('id-select-default-thinking-level'),
		select_conversation_model: getEl('id-select-conversation-model'),
		select_conversation_model_family: getEl('id-select-conversation-model-family'),
		select_conversation_model_version: getEl('id-select-conversation-model-version'),
		select_conversation_model_level: getEl('id-select-conversation-model-level'),
		div_default_model_description: getEl('id-div-default-model-description'),
		div_default_model_costs: getEl('id-div-default-model-costs'),
		div_conversation_model_description: getEl('id-div-conversation-model-description'),
		div_conversation_model_costs: getEl('id-div-conversation-model-costs'),
		div_default_verbosity_description: getEl('id-div-default-verbosity-description'),
		div_conversation_verbosity_description: getEl('id-div-conversation-verbosity-description'),

		// Options & experimental checkboxes
		checkbox_experimental_features: getEl('id-checkbox-experimental-features'),
		div_experimental_features_container: getEl('id-div-experimental-features-container'),
		div_experimental_options: getEl('id-div-experimental-options'),
		div_experimental_features_list: getEl('id-div-experimental-features-list'),
		div_tool_config: getEl('id-div-tool-config-list'),
		checkbox_default_show_suggestions: getEl('id-checkbox-default-show-suggestions'),
		checkbox_default_show_related: getEl('id-checkbox-default-show-related'),
		checkbox_default_enforce_topics: getEl('id-checkbox-default-enforce-topics'),
		checkbox_default_auto_send_prompts: getEl('id-checkbox-default-auto-send-prompts'),
		checkbox_default_play_chime: getEl('id-checkbox-default-play-chime'),
		checkbox_default_web_search: getEl('id-checkbox-default-web-search'),
		checkbox_default_synced: getEl('id-checkbox-default-synced'),
		div_default_web_search_container: getEl('id-div-default-web-search-container'),
		checkbox_default_disable_safeguards: getEl('id-checkbox-default-disable-safeguards'),
		checkbox_default_encourage_creativity: getEl('id-checkbox-default-encourage-creativity'),
		input_max_tool_use: getEl('id-input-max-tool-use'),
		checkbox_allow_tool_requests: getEl('id-checkbox-allow-tool-requests'),
		input_ui_zoom: getEl('id-input-ui-zoom'),
		span_ui_zoom_value: getEl('id-span-ui-zoom-value'),
		checkbox_conversation_show_suggestions: getEl('id-checkbox-conversation-show-suggestions'),
		checkbox_conversation_show_related: getEl('id-checkbox-conversation-show-related'),
		checkbox_conversation_enforce_topics: getEl('id-checkbox-conversation-enforce-topics'),
		checkbox_conversation_auto_send_prompts: getEl('id-checkbox-conversation-auto-send-prompts'),
		checkbox_conversation_disable_safeguards: getEl('id-checkbox-conversation-disable-safeguards'),
		checkbox_conversation_encourage_creativity: getEl('id-checkbox-conversation-encourage-creativity'),
		div_conversation_creativity_container: getEl('id-div-conversation-creativity-container'),
		checkbox_conversation_google_search: getEl('id-checkbox-conversation-google-search'),
		div_conversation_google_search_container: getEl('id-div-conversation-google-search-container'),
		label_sync_switch: getEl('id-label-sync-switch'),
		checkbox_sync_switch: getEl('id-checkbox-sync-switch'),
		btn_collaborate: getEl('id-btn-collaborate'),
		btn_share: getEl('id-btn-share'),
		btn_share_dot: queryEl('#id-btn-share .span-share-dot'),

		// Content list & index buttons
		div_list: getEl('id-div-list'),
		div_index_list: getEl('id-div-center-index-list'),
		btn_conversation_new: getEl('id-btn-conversation-new'),
		btn_document_preview: getEl('id-btn-document-preview'),
		select_scratchpad_export: getEl('id-select-scratchpad-export'),
		btn_content_new: getEl('id-btn-content-new'),
		btn_content_select: getEl('id-btn-content-select'),
		btn_content_archive: getEl('id-btn-content-archive'),
		btn_archives_toggle: getEl('id-btn-content-archives'),
		btn_content_delete: getEl('id-btn-content-delete'),
		btn_empty_new_chat: getEl('id-btn-empty-new-chat'),
		select_new_document: getEl('id-select-new-document'),
		btn_empty_new_scratchpad: getEl('id-btn-empty-new-scratchpad'),
		btn_show_content: getEl('id-btn-show-content'),
		btn_show_scratchpads_new: getEl('id-btn-show-scratchpads-new'),
		btn_content: getEl('id-btn-content'),
		btn_conversation_index: getEl('id-btn-conversation-index'),
		btn_conversation_index_select: getEl('id-btn-conversation-index-select'),
		btn_conversation_index_favorite: getEl('id-btn-conversation-index-favorite'),
		btn_conversation_index_delete: getEl('id-btn-conversation-index-delete'),

		// Chat empty state & option chips
		div_chat_empty: queryEl('.div-chat-empty'),
		div_chat_empty_header: queryEl('.div-chat-empty-header'),
		div_chat_ui_elements: queryAll('.div-chat-ui-elements'),
		div_options_chips: queryEl('.div-options-chips'),
		span_option_model: getEl('id-span-option-model'),
		span_option_verbosity: getEl('id-span-option-verbosity'),
		span_option_suggested: getEl('id-span-option-suggested'),
		span_option_related: getEl('id-span-option-related'),
		span_option_search: getEl('id-span-option-search'),
		span_option_enforce_topics: getEl('id-span-option-enforce-topics'),
		span_option_auto_run: getEl('id-span-option-auto-run'),
		div_dialog_backdrop: getEl('id-dialog-backdrop'),

		// Instant Answer overlay
		btn_instant_answer: getEl('id-btn-instant-answer'),
		div_instant_answer_overlay: getEl('id-instant-answer-overlay'),
		btn_instant_answer_close: getEl('btn-instant-answer-close'),
		btn_instant_answer_auto_read: getEl('btn-instant-answer-auto-read'),
		btn_instant_answer_play: getEl('btn-instant-answer-play'),
		btn_instant_answer_send: getEl('btn-instant-answer-send'),
		btn_instant_answer_search: getEl('btn-instant-answer-search'),
		select_instant_answer_model: getEl('id-select-instant-answer-model'),
		div_instant_answer_model_cost: getEl('id-div-instant-answer-model-cost'),
		instant_answer_query: getEl('id-instant-answer-query'),
		div_instant_answer_status: getEl('id-instant-answer-status'),
		div_instant_answer_placeholder: getEl('id-instant-answer-placeholder'),
		div_instant_answer_answer_header: getEl('id-instant-answer-answer-header'),
		btn_instant_answer_clear: getEl('btn-instant-answer-clear'),
		div_instant_answer_response_container: getEl('id-instant-answer-response-container'),
		div_instant_answer_response: getEl('id-instant-answer-response'),
		div_instant_answer_cost: getEl('id-instant-answer-cost'),

		// Options & version overlays
	btn_app_options: getEl('btn-app-options'),
		btn_conversation_options: getEl('id-btn-conversation-options'),
		btn_rank: getEl('id-btn-rank'),
	div_app_options_overlay: getEl('id-app-options-overlay'),
		div_conversation_options_overlay: getEl('id-conversation-options-overlay'),
		btn_title_edit: getEl('btn-title-edit'),
		div_conversation_verbosity_container: getEl('id-div-conversation-verbosity-container'),
		hr_conversation_model_divider: getEl('id-hr-conversation-model-divider'),
		div_conversation_suggested_container: getEl('id-div-conversation-suggested-container'),
		div_conversation_enforce_topics_container: getEl('id-div-conversation-enforce-topics-container'),
		div_conversation_auto_send_container: getEl('id-div-conversation-auto-send-container'),
		div_conversation_safeguards_container: getEl('id-div-conversation-safeguards-container'),
		btn_options_close: getEl('btn-options-close'),
		btn_conversation_options_close: getEl('btn-conversation-options-close'),
		div_version_overlay: getEl('id-version-dialog-overlay'),
		btn_version_close: getEl('btn-version-close'),
		btn_show_changelog: getEl('btn-show-changelog'),
		div_app_version_title: getEl('id-div-app-version-title'),
		div_app_version_description: getEl('id-div-app-version-description'),
		div_version_content: getEl('id-div-version-content'),

		// Tabs & scroll containers
		btn_tab_conversation: getEl('id-btn-tab-conversation'),
		btn_tab_rankings: getEl('id-btn-tab-rankings'),
		btn_tab_tags: getEl('id-btn-tab-tags'),
		btn_tab_context: getEl('id-btn-tab-context'),
		btn_tab_attachments: getEl('id-btn-tab-attachments'),
		btn_tab_memory: getEl('id-btn-tab-memory'),
		btn_tab_document: getEl('id-btn-tab-document'),
		btn_tab_diction: getEl('id-btn-tab-diction'),
		btn_tab_memory: getEl('id-btn-tab-memory'),
		div_chat_container_scroll: getEl('id-chat-container-scroll'),
		div_chat_context_scroll: getEl('div-chat-context-scroll'),
		div_chat_rankings_scroll: getEl('div-chat-rankings-scroll'),
		div_chat_attachments_scroll: getEl('div-chat-attachments-scroll'),
		div_chat_memory_scroll: getEl('div-chat-memory-scroll'),
		div_document_memory_scroll: getEl('div-document-memory-scroll'),
		div_chat_document_scroll: getEl('div-chat-document-scroll'),
		div_chat_diction_scroll: getEl('div-chat-diction-scroll'),
		div_chat_prompt_inset: getEl('div-chat-prompt-inset'),
		div_chat_prompt_container: getEl('div-chat-prompt-container'),
		div_chat_title_bar: queryEl('.div-chat-title-bar'),
		div_tab_bar: queryEl('.div-tab-bar'),
		div_document_container: getEl('div-document-container'),
		div_choices_container: getEl('div-choices-container'),
		div_choices_scroll: getEl('div-choices-scroll'),
		div_notes_container: getEl('div-notes-container'),
		div_notes_scroll: getEl('div-notes-scroll'),
		div_chat_tags_scroll: getEl('div-chat-tags-scroll'),
		div_scratchpad_drawer: getEl('div-scratchpad-drawer'),
		div_buttons_nav: getEl('id-div-buttons-nav'),
		div_buttons_chat: getEl('id-div-buttons-chat'),
		div_chat_buttons: getEl('div-chat-buttons'),
		div_buttons_document: getEl('id-div-buttons-document'),
		div_structure_center_document_options: getEl('div-structure-center-document-options'),
		div_structure_center_index_options: queryEl('.div-structure-center-index-options'),
	};
}
🌐
elements.js ×
Type: Web, text/x-java
11.06 Kilobytes
Last Modified 2026-11-04 09:48:28
⬇ Download File