kash-shell 0.3.16__tar.gz → 0.3.17__tar.gz
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.
- {kash_shell-0.3.16 → kash_shell-0.3.17}/PKG-INFO +1 -1
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/commands/base/files_command.py +2 -2
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/config/colors.py +15 -7
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/model/actions_model.py +2 -2
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/web_gen/templates/base_styles.css.jinja +73 -16
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/web_gen/templates/base_webpage.html.jinja +45 -19
- kash_shell-0.3.17/src/kash/web_gen/templates/simple_webpage.html.jinja +552 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/web_gen/templates/tabbed_webpage.html.jinja +4 -2
- {kash_shell-0.3.16 → kash_shell-0.3.17}/uv.lock +96 -111
- kash_shell-0.3.16/src/kash/web_gen/templates/simple_webpage.html.jinja +0 -48
- {kash_shell-0.3.16 → kash_shell-0.3.17}/.copier-answers.yml +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/.env.template +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/.github/workflows/ci.yml +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/.github/workflows/publish.yml +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/.gitignore +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/LICENSE +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/Makefile +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/README.md +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/development.md +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/devtools/generate_readme.xsh +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/devtools/lint.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/devtools/profile_main.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/installation.md +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/publishing.md +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/pyproject.toml +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/__main__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/actions/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/actions/core/assistant_chat.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/actions/core/chat.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/actions/core/format_markdown_template.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/actions/core/markdownify.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/actions/core/readability.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/actions/core/render_as_html.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/actions/core/show_webpage.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/actions/core/strip_html.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/actions/core/summarize_as_bullets.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/actions/core/tabbed_webpage_config.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/actions/core/tabbed_webpage_generate.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/actions/meta/write_instructions.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/actions/meta/write_new_action.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/commands/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/commands/base/basic_file_commands.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/commands/base/browser_commands.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/commands/base/debug_commands.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/commands/base/diff_commands.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/commands/base/general_commands.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/commands/base/logs_commands.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/commands/base/model_commands.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/commands/base/reformat_command.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/commands/base/search_command.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/commands/base/show_command.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/commands/extras/parse_uv_lock.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/commands/extras/utils_commands.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/commands/help/assistant_commands.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/commands/help/doc_commands.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/commands/help/help_commands.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/commands/help/logo.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/commands/help/welcome.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/commands/workspace/selection_commands.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/commands/workspace/workspace_commands.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/config/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/config/capture_output.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/config/env_settings.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/config/init.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/config/lazy_imports.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/config/logger.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/config/logger_basic.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/config/logo.txt +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/config/server_config.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/config/settings.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/config/setup.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/config/suppress_warnings.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/config/text_styles.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs/all_docs.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs/load_actions_info.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs/load_api_docs.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs/load_help_topics.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs/load_source_code.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs/markdown/api_docs_template.md +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs/markdown/assistant_instructions_template.md +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs/markdown/readme_template.md +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs/markdown/topics/a1_what_is_kash.md +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs/markdown/topics/a2_installation.md +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs/markdown/topics/a3_getting_started.md +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs/markdown/topics/a4_elements.md +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs/markdown/topics/a5_tips_for_use_with_other_tools.md +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs/markdown/topics/b0_philosophy_of_kash.md +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs/markdown/topics/b1_kash_overview.md +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs/markdown/topics/b2_workspace_and_file_formats.md +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs/markdown/topics/b3_modern_shell_tool_recommendations.md +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs/markdown/topics/b4_faq.md +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs/markdown/warning.md +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs/markdown/welcome.md +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs_base/docs_base.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs_base/load_custom_command_info.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs_base/load_faqs.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs_base/load_recipe_snippets.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs_base/recipes/general_system_commands.sh +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs_base/recipes/python_dev_commands.sh +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/docs_base/recipes/tldr_standard_commands.sh +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/embeddings/cosine.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/embeddings/embeddings.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/embeddings/text_similarity.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/exec/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/exec/action_decorators.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/exec/action_exec.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/exec/action_registry.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/exec/combiners.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/exec/command_exec.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/exec/command_registry.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/exec/fetch_url_metadata.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/exec/history.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/exec/importing.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/exec/llm_transforms.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/exec/precondition_checks.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/exec/precondition_registry.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/exec/preconditions.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/exec/resolve_args.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/exec/runtime_settings.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/exec/shell_callable_action.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/exec_model/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/exec_model/args_model.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/exec_model/commands_model.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/exec_model/script_model.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/exec_model/shell_model.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/file_storage/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/file_storage/file_store.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/file_storage/item_file_format.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/file_storage/metadata_dirs.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/file_storage/persisted_yaml.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/file_storage/store_cache_warmer.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/file_storage/store_filenames.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/help/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/help/assistant.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/help/assistant_instructions.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/help/assistant_output.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/help/docstring_utils.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/help/function_param_info.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/help/help_embeddings.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/help/help_lookups.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/help/help_pages.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/help/help_printing.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/help/help_types.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/help/recommended_commands.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/help/tldr_help.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/llm_utils/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/llm_utils/clean_headings.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/llm_utils/custom_sliding_transforms.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/llm_utils/fuzzy_parsing.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/llm_utils/init_litellm.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/llm_utils/llm_api_keys.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/llm_utils/llm_completion.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/llm_utils/llm_features.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/llm_utils/llm_messages.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/llm_utils/llm_names.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/llm_utils/llms.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/local_server/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/local_server/local_server.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/local_server/local_server_commands.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/local_server/local_server_routes.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/local_server/local_url_formatters.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/local_server/port_tools.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/local_server/rich_html_template.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/mcp/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/mcp/mcp_cli.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/mcp/mcp_main.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/mcp/mcp_server_commands.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/mcp/mcp_server_routes.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/mcp/mcp_server_sse.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/mcp/mcp_server_stdio.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/media_base/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/media_base/audio_processing.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/media_base/media_cache.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/media_base/media_services.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/media_base/media_tools.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/media_base/services/local_file_media.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/media_base/timestamp_citations.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/media_base/transcription_deepgram.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/media_base/transcription_format.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/media_base/transcription_whisper.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/model/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/model/assistant_response_model.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/model/compound_actions_model.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/model/concept_model.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/model/exec_model.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/model/graph_model.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/model/items_model.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/model/language_list.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/model/llm_actions_model.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/model/media_model.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/model/operations_model.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/model/params_model.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/model/paths_model.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/model/preconditions_model.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/completions/completion_scoring.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/completions/completion_types.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/completions/shell_completions.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/file_icons/color_for_format.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/file_icons/nerd_icons.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/input/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/input/input_prompts.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/input/inquirer_settings.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/input/param_inputs.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/input/shell_confirm.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/output/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/output/kerm_code_utils.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/output/kerm_codes.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/output/kmarkdown.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/output/shell_formatting.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/output/shell_output.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/shell_main.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/ui/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/ui/shell_results.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/ui/shell_syntax.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/utils/exception_printing.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/utils/native_utils.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/utils/shell_function_wrapper.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/shell/version.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/common/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/common/format_utils.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/common/function_inspect.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/common/import_utils.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/common/lazyobject.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/common/obj_replace.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/common/parse_key_vals.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/common/parse_shell_args.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/common/stack_traces.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/common/task_stack.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/common/type_utils.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/common/uniquifier.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/common/url.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/errors.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/file_formats/chat_format.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/file_utils/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/file_utils/dir_info.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/file_utils/file_ext.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/file_utils/file_formats.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/file_utils/file_formats_model.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/file_utils/file_sort_filter.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/file_utils/file_walk.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/file_utils/filename_parsing.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/file_utils/ignore_files.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/file_utils/mtime_cache.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/file_utils/path_utils.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/lang_utils/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/lang_utils/capitalization.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/rich_custom/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/rich_custom/ansi_cell_len.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/rich_custom/rich_char_transform.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/rich_custom/rich_indent.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/rich_custom/rich_markdown_fork.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/text_handling/doc_normalization.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/text_handling/escape_html_tags.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/text_handling/markdown_render.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/text_handling/markdown_utils.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/text_handling/markdownify_utils.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/utils/text_handling/unified_diffs.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/web_content/canon_url.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/web_content/dir_store.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/web_content/file_cache_utils.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/web_content/file_processing.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/web_content/local_file_cache.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/web_content/web_extract.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/web_content/web_extract_justext.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/web_content/web_extract_readabilipy.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/web_content/web_fetch.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/web_content/web_page_model.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/web_gen/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/web_gen/simple_webpage.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/web_gen/tabbed_webpage.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/web_gen/template_render.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/web_gen/templates/content_styles.css.jinja +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/web_gen/templates/explain_view.html.jinja +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/web_gen/templates/item_view.html.jinja +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/workspaces/__init__.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/workspaces/param_state.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/workspaces/selections.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/workspaces/source_items.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/workspaces/workspace_dirs.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/workspaces/workspace_output.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/workspaces/workspace_registry.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/workspaces/workspaces.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/xonsh_custom/command_nl_utils.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/xonsh_custom/custom_shell.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/xonsh_custom/customize_prompt.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/xonsh_custom/load_into_xonsh.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/xonsh_custom/shell_load_commands.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/xonsh_custom/shell_which.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/xonsh_custom/xonsh_completers.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/xonsh_custom/xonsh_env.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/xonsh_custom/xonsh_keybindings.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/xonsh_custom/xonsh_modern_tools.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/xonsh_custom/xonsh_ranking_completer.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/xontrib/fnm.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/src/kash/xontrib/kash_extension.py +0 -0
- {kash_shell-0.3.16 → kash_shell-0.3.17}/tests/test_shell.py +0 -0
|
@@ -64,7 +64,6 @@ def _print_listing_tallies(
|
|
|
64
64
|
f"{EMOJI_WARN} {file_listing.files_ignored} files and {file_listing.dirs_ignored} dirs were ignored",
|
|
65
65
|
style=COLOR_EXTRA,
|
|
66
66
|
)
|
|
67
|
-
cprint("(use --no_ignore to show hidden files)", style=STYLE_HINT)
|
|
68
67
|
|
|
69
68
|
if file_listing.total_skipped > 0:
|
|
70
69
|
cprint(
|
|
@@ -72,7 +71,8 @@ def _print_listing_tallies(
|
|
|
72
71
|
f"at max_files={max_files}, max_depth={max_depth}, max_per_subdir={max_per_subdir}",
|
|
73
72
|
style=COLOR_EXTRA,
|
|
74
73
|
)
|
|
75
|
-
|
|
74
|
+
if file_listing.total_ignored + file_listing.total_skipped > 0:
|
|
75
|
+
cprint("(use --all to show all files)", style=STYLE_HINT)
|
|
76
76
|
|
|
77
77
|
|
|
78
78
|
DEFAULT_MAX_PER_GROUP = 50
|
|
@@ -133,22 +133,26 @@ web_light_translucent = SimpleNamespace(
|
|
|
133
133
|
primary=hsl_to_hex("hsl(188, 31%, 41%)"),
|
|
134
134
|
primary_light=hsl_to_hex("hsl(188, 40%, 62%)"),
|
|
135
135
|
secondary=hsl_to_hex("hsl(188, 12%, 28%)"),
|
|
136
|
+
tertiary=hsl_to_hex("hsl(188, 7%, 64%)"),
|
|
136
137
|
bg=hsl_to_hex("hsla(44, 6%, 100%, 0.75)"),
|
|
137
138
|
bg_solid=hsl_to_hex("hsla(44, 6%, 100%, 1)"),
|
|
138
139
|
bg_header=hsl_to_hex("hsla(188, 42%, 70%, 0.2)"),
|
|
139
140
|
bg_alt=hsl_to_hex("hsla(39, 24%, 90%, 0.3)"),
|
|
140
141
|
bg_alt_solid=hsl_to_hex("hsla(39, 24%, 97%, 1)"),
|
|
141
142
|
text=hsl_to_hex("hsl(188, 39%, 11%)"),
|
|
143
|
+
code=hsl_to_hex("hsl(44, 38%, 23%)"),
|
|
142
144
|
border=hsl_to_hex("hsl(188, 8%, 50%)"),
|
|
143
|
-
border_hint=hsl_to_hex("hsla(188, 8%, 72%, 0.
|
|
145
|
+
border_hint=hsl_to_hex("hsla(188, 8%, 72%, 0.3)"),
|
|
144
146
|
border_accent=hsl_to_hex("hsla(305, 18%, 65%, 0.85)"),
|
|
145
147
|
hover=hsl_to_hex("hsl(188, 12%, 84%)"),
|
|
146
|
-
hover_bg=hsl_to_hex("hsla(188,
|
|
148
|
+
hover_bg=hsl_to_hex("hsla(188, 12%, 94%, 0.8)"),
|
|
147
149
|
hint=hsl_to_hex("hsl(188, 11%, 65%)"),
|
|
150
|
+
hint_gentle=hsl_to_hex("hsla(188, 11%, 65%, 0.2)"),
|
|
148
151
|
tooltip_bg=hsl_to_hex("hsla(188, 6%, 37%, 0.7)"),
|
|
149
152
|
popover_bg=hsl_to_hex("hsla(188, 6%, 37%, 0.7)"),
|
|
150
153
|
bright=hsl_to_hex("hsl(134, 43%, 60%)"),
|
|
151
|
-
success=hsl_to_hex("hsl(134,
|
|
154
|
+
success=hsl_to_hex("hsl(134, 70%, 37%)"),
|
|
155
|
+
failure=hsl_to_hex("hsl(7, 70%, 37%)"),
|
|
152
156
|
selection="hsla(225, 61%, 82%, 0.80)",
|
|
153
157
|
scrollbar=hsl_to_hex("hsla(189, 12%, 55%, 0.9)"),
|
|
154
158
|
scrollbar_hover=hsl_to_hex("hsla(190, 12%, 38%, 0.9)"),
|
|
@@ -160,22 +164,26 @@ web_dark_translucent = SimpleNamespace(
|
|
|
160
164
|
primary=hsl_to_hex("hsl(188, 40%, 62%)"),
|
|
161
165
|
primary_light=hsl_to_hex("hsl(188, 50%, 72%)"),
|
|
162
166
|
secondary=hsl_to_hex("hsl(188, 12%, 65%)"),
|
|
167
|
+
tertiary=hsl_to_hex("hsl(188, 7%, 40%)"),
|
|
163
168
|
bg=hsl_to_hex("hsla(220, 14%, 7%, 0.95)"),
|
|
164
169
|
bg_solid=hsl_to_hex("hsl(220, 14%, 7%)"),
|
|
165
170
|
bg_header=hsl_to_hex("hsla(188, 42%, 20%, 0.3)"),
|
|
166
171
|
bg_alt=hsl_to_hex("hsla(220, 14%, 12%, 0.5)"),
|
|
167
172
|
bg_alt_solid=hsl_to_hex("hsl(220, 14%, 12%)"),
|
|
168
|
-
text=hsl_to_hex("hsl(188,
|
|
173
|
+
text=hsl_to_hex("hsl(188, 10%, 90%)"),
|
|
174
|
+
code=hsl_to_hex("hsl(44, 38%, 72%)"),
|
|
169
175
|
border=hsl_to_hex("hsl(188, 8%, 25%)"),
|
|
170
|
-
border_hint=hsl_to_hex("hsla(188, 8%, 35%, 0.
|
|
176
|
+
border_hint=hsl_to_hex("hsla(188, 8%, 35%, 0.3)"),
|
|
171
177
|
border_accent=hsl_to_hex("hsla(305, 30%, 55%, 0.85)"),
|
|
172
178
|
hover=hsl_to_hex("hsl(188, 12%, 35%)"),
|
|
173
179
|
hover_bg=hsl_to_hex("hsla(188, 20%, 25%, 0.4)"),
|
|
174
180
|
hint=hsl_to_hex("hsl(188, 11%, 55%)"),
|
|
181
|
+
hint_gentle=hsl_to_hex("hsla(188, 11%, 55%, 0.2)"),
|
|
175
182
|
tooltip_bg=hsl_to_hex("hsla(188, 6%, 20%, 0.9)"),
|
|
176
183
|
popover_bg=hsl_to_hex("hsla(188, 6%, 20%, 0.9)"),
|
|
177
|
-
bright=hsl_to_hex("hsl(134,
|
|
178
|
-
success=hsl_to_hex("hsl(134,
|
|
184
|
+
bright=hsl_to_hex("hsl(134, 52%, 65%)"),
|
|
185
|
+
success=hsl_to_hex("hsl(134, 72%, 73%)"),
|
|
186
|
+
failure=hsl_to_hex("hsl(7, 46%, 53%)"),
|
|
179
187
|
selection=hsl_to_hex("hsla(225, 61%, 40%, 0.40)"),
|
|
180
188
|
scrollbar=hsl_to_hex("hsla(189, 12%, 35%, 0.9)"),
|
|
181
189
|
scrollbar_hover=hsl_to_hex("hsla(190, 12%, 50%, 0.9)"),
|
|
@@ -102,9 +102,9 @@ class ActionResult:
|
|
|
102
102
|
shell_result: ShellResult | None = None
|
|
103
103
|
"""Customize control of how the action's result is displayed in the shell."""
|
|
104
104
|
|
|
105
|
-
def get_by_format(self,
|
|
105
|
+
def get_by_format(self, *formats: Format) -> Item:
|
|
106
106
|
"""Convenience method to get an item for actions that return multiple formats."""
|
|
107
|
-
return next(item for item in self.items if item.format
|
|
107
|
+
return next(item for item in self.items if item.format in formats)
|
|
108
108
|
|
|
109
109
|
def has_hints(self) -> bool:
|
|
110
110
|
return bool(
|
|
@@ -187,20 +187,34 @@ code {
|
|
|
187
187
|
font-family: var(--font-mono);
|
|
188
188
|
font-size: var(--font-size-mono);
|
|
189
189
|
letter-spacing: -0.025em;
|
|
190
|
+
|
|
190
191
|
transition: color 0.4s ease-in-out;
|
|
191
192
|
}
|
|
193
|
+
/* For code inside pre we style the pre tag */
|
|
194
|
+
code:not(pre code) {
|
|
195
|
+
background-color: var(--color-bg-alt);
|
|
196
|
+
border-radius: 3px;
|
|
197
|
+
border: 1px solid var(--color-hint-gentle);
|
|
198
|
+
padding: 0.25em 0.2em 0.1em 0.2em;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/* Code block wrapper for positioning copy button */
|
|
202
|
+
.code-block-wrapper {
|
|
203
|
+
position: relative;
|
|
204
|
+
}
|
|
192
205
|
|
|
193
206
|
/* Code blocks (pre + code) */
|
|
194
207
|
pre {
|
|
195
208
|
font-family: var(--font-mono);
|
|
196
209
|
font-size: var(--font-size-mono);
|
|
197
210
|
letter-spacing: -0.025em;
|
|
211
|
+
|
|
198
212
|
background-color: var(--color-bg-alt);
|
|
199
|
-
border-radius:
|
|
200
|
-
border: 1px
|
|
201
|
-
padding: 0.
|
|
213
|
+
border-radius: 3px;
|
|
214
|
+
border: 1px solid var(--color-hint-gentle);
|
|
215
|
+
padding: 0.25rem 0.2rem 0.1rem 0.2rem;
|
|
202
216
|
overflow-x: auto; /* Enable horizontal scrolling */
|
|
203
|
-
|
|
217
|
+
margin: 0;
|
|
204
218
|
transition: background-color 0.4s ease-in-out, border-color 0.4s ease-in-out;
|
|
205
219
|
}
|
|
206
220
|
|
|
@@ -215,11 +229,12 @@ pre > code {
|
|
|
215
229
|
position: absolute;
|
|
216
230
|
top: 0;
|
|
217
231
|
right: 0;
|
|
218
|
-
|
|
232
|
+
margin: 1px;
|
|
233
|
+
background: var(--color-bg-alt-solid);
|
|
219
234
|
color: var(--color-hint);
|
|
220
235
|
border: none;
|
|
221
236
|
border-radius: 0.25rem;
|
|
222
|
-
padding: 0
|
|
237
|
+
padding: 0;
|
|
223
238
|
cursor: pointer;
|
|
224
239
|
font-size: 0.75rem;
|
|
225
240
|
z-index: 10;
|
|
@@ -229,7 +244,7 @@ pre > code {
|
|
|
229
244
|
justify-content: center;
|
|
230
245
|
width: 1.5rem;
|
|
231
246
|
height: 1.5rem;
|
|
232
|
-
opacity: 0.
|
|
247
|
+
opacity: 0.9;
|
|
233
248
|
}
|
|
234
249
|
|
|
235
250
|
.code-copy-button:hover {
|
|
@@ -240,7 +255,6 @@ pre > code {
|
|
|
240
255
|
|
|
241
256
|
.code-copy-button.copied {
|
|
242
257
|
color: var(--color-success);
|
|
243
|
-
opacity: 1;
|
|
244
258
|
}
|
|
245
259
|
|
|
246
260
|
.code-copy-button svg {
|
|
@@ -337,7 +351,7 @@ hr:before {
|
|
|
337
351
|
font-weight: var(--font-weight-sans-bold);
|
|
338
352
|
text-transform: uppercase;
|
|
339
353
|
letter-spacing: 0.03em;
|
|
340
|
-
margin-top:
|
|
354
|
+
margin-top: 1rem;
|
|
341
355
|
margin-bottom: 0.8rem;
|
|
342
356
|
}
|
|
343
357
|
{% endblock long_text_styles %}
|
|
@@ -378,13 +392,21 @@ tbody tr:nth-child(even) {
|
|
|
378
392
|
|
|
379
393
|
/* Container for wide tables to allow tables to break out of parent width. */
|
|
380
394
|
.table-container {
|
|
381
|
-
{# max-width: calc(100vw - 6rem); #}
|
|
382
395
|
position: relative;
|
|
383
|
-
left: 50%;
|
|
384
|
-
transform: translateX(-50%);
|
|
385
396
|
box-sizing: border-box;
|
|
386
397
|
margin: 2rem 0;
|
|
387
398
|
background-color: var(--color-bg-solid);
|
|
399
|
+
/* Default: center tables within their container */
|
|
400
|
+
left: 50%;
|
|
401
|
+
transform: translateX(-50%);
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
/* When TOC is present, simplify table container positioning */
|
|
405
|
+
.content-with-toc.has-toc .table-container {
|
|
406
|
+
/* Within grid layout, position relative to the grid column */
|
|
407
|
+
left: 50%;
|
|
408
|
+
transform: translateX(-50%);
|
|
409
|
+
/* Let the table width be controlled by the responsive styles */
|
|
388
410
|
}
|
|
389
411
|
{% endblock table_styles %}
|
|
390
412
|
|
|
@@ -438,16 +460,50 @@ sup {
|
|
|
438
460
|
|
|
439
461
|
/* Apply shadow to long-text containers on larger screens */
|
|
440
462
|
.long-text {
|
|
463
|
+
border: 1px solid var(--color-hint-gentle);
|
|
441
464
|
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 -2px 6px -1px rgba(0, 0, 0, 0.07);
|
|
442
465
|
}
|
|
443
466
|
/* But remove shadow when wrapped in no-shadow class */
|
|
444
467
|
.no-shadow .long-text {
|
|
445
|
-
box-shadow: none
|
|
468
|
+
box-shadow: none;
|
|
469
|
+
border: none;
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
/* Handle TOC layouts specially - tables should bleed within their grid column */
|
|
474
|
+
@media (min-width: 1200px) {
|
|
475
|
+
/* When TOC is present, tables should bleed within the content grid column */
|
|
476
|
+
.content-with-toc.has-toc table {
|
|
477
|
+
/* Calculate available width: full viewport minus TOC column width minus margins */
|
|
478
|
+
width: calc(100vw - var(--toc-width, 16rem) - 8rem);
|
|
479
|
+
max-width: none;
|
|
480
|
+
}
|
|
481
|
+
.content-with-toc.has-toc .table-container {
|
|
482
|
+
width: calc(100vw - var(--toc-width, 16rem) - 8rem);
|
|
483
|
+
max-width: none;
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
/* But ensure tables don't exceed their grid column space */
|
|
487
|
+
.content-with-toc.has-toc .long-text {
|
|
488
|
+
/* The content area needs to allow tables to bleed beyond the text width */
|
|
489
|
+
overflow: visible;
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
/* Medium screens (768px - TOC breakpoint) - no TOC, tables should bleed but not as wide */
|
|
494
|
+
@media (min-width: 768px) and (max-width: 1199px) {
|
|
495
|
+
table {
|
|
496
|
+
width: calc(100vw - 6rem);
|
|
497
|
+
max-width: calc(100vw - 6rem);
|
|
498
|
+
}
|
|
499
|
+
.table-container {
|
|
500
|
+
width: calc(100vw - 6rem);
|
|
501
|
+
max-width: calc(100vw - 6rem);
|
|
446
502
|
}
|
|
447
503
|
}
|
|
448
504
|
|
|
449
505
|
/* Make narrower screens more usable for lists and tables. */
|
|
450
|
-
@media (max-width:
|
|
506
|
+
@media (max-width: 767px) {
|
|
451
507
|
/* Prevent horizontal scrolling on the body */
|
|
452
508
|
body {
|
|
453
509
|
overflow-x: hidden;
|
|
@@ -461,7 +517,7 @@ sup {
|
|
|
461
517
|
|
|
462
518
|
/* Make table containers scrollable without affecting page layout */
|
|
463
519
|
.table-container {
|
|
464
|
-
max-width:
|
|
520
|
+
max-width: calc(100vw - 3rem);
|
|
465
521
|
overflow-x: auto;
|
|
466
522
|
transform: none;
|
|
467
523
|
left: 0;
|
|
@@ -472,9 +528,10 @@ sup {
|
|
|
472
528
|
|
|
473
529
|
table {
|
|
474
530
|
font-size: var(--font-size-smaller);
|
|
475
|
-
/* Tables can be wider than container */
|
|
531
|
+
/* Tables can be wider than container on mobile */
|
|
476
532
|
width: auto;
|
|
477
533
|
min-width: 100%;
|
|
534
|
+
max-width: none;
|
|
478
535
|
}
|
|
479
536
|
|
|
480
537
|
ul, ol {
|
|
@@ -64,43 +64,58 @@
|
|
|
64
64
|
transition: background 0.4s ease-in-out, color 0.4s ease-in-out;
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
.
|
|
68
|
-
position: fixed;
|
|
69
|
-
top: 1rem;
|
|
70
|
-
right: 1rem;
|
|
71
|
-
background: transparent;
|
|
67
|
+
.button {
|
|
72
68
|
color: var(--color-hint);
|
|
69
|
+
background: var(--color-bg);
|
|
73
70
|
border: none;
|
|
74
71
|
padding: 0;
|
|
75
72
|
border-radius: 0.3rem;
|
|
76
73
|
cursor: pointer;
|
|
77
74
|
font-size: 1rem;
|
|
78
|
-
z-index: 100;
|
|
79
|
-
transition: all 0.2s ease-in-out;
|
|
80
75
|
display: flex;
|
|
81
76
|
align-items: center;
|
|
82
77
|
justify-content: center;
|
|
83
78
|
width: 2.5rem;
|
|
84
79
|
height: 2.5rem;
|
|
80
|
+
|
|
81
|
+
/* Separate transitions for theme vs interaction */
|
|
82
|
+
transition: background-color 0.4s ease-in-out,
|
|
83
|
+
color 0.4s ease-in-out,
|
|
84
|
+
transform 0.2s ease-in-out,
|
|
85
|
+
box-shadow 0.2s ease-in-out;
|
|
85
86
|
}
|
|
86
87
|
|
|
87
|
-
.
|
|
88
|
+
.button:hover {
|
|
88
89
|
background: var(--color-hover-bg);
|
|
89
90
|
color: var(--color-primary);
|
|
90
91
|
}
|
|
91
92
|
|
|
92
|
-
|
|
93
|
+
.button svg {
|
|
94
|
+
width: 1rem;
|
|
95
|
+
height: 1rem;
|
|
96
|
+
transition: inherit; /* Inherit the color transition */
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/* Dark mode styles for buttons */
|
|
100
|
+
[data-theme="dark"] .button {
|
|
93
101
|
color: var(--color-primary-light);
|
|
94
102
|
}
|
|
95
103
|
|
|
96
|
-
[data-theme="dark"] .
|
|
97
|
-
color: var(--color-bright);
|
|
104
|
+
[data-theme="dark"] .button:hover {
|
|
98
105
|
background: var(--color-hover-bg);
|
|
106
|
+
color: var(--color-bright);
|
|
99
107
|
}
|
|
100
108
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
109
|
+
/* Positioning class for fixed buttons */
|
|
110
|
+
.fixed-button {
|
|
111
|
+
position: fixed;
|
|
112
|
+
top: 1rem;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/* Specific positioning and z-index for theme toggle */
|
|
116
|
+
.theme-toggle {
|
|
117
|
+
right: 1rem;
|
|
118
|
+
z-index: 100;
|
|
104
119
|
}
|
|
105
120
|
|
|
106
121
|
{% block font_faces %}
|
|
@@ -178,7 +193,7 @@
|
|
|
178
193
|
<body>
|
|
179
194
|
{% block theme_toggle %}
|
|
180
195
|
{% if show_theme_toggle %}
|
|
181
|
-
<button class="theme-toggle" aria-label="toggle dark mode">
|
|
196
|
+
<button class="button fixed-button theme-toggle" aria-label="toggle dark mode">
|
|
182
197
|
<i data-feather="moon"></i>
|
|
183
198
|
</button>
|
|
184
199
|
{% endif %}
|
|
@@ -197,11 +212,20 @@
|
|
|
197
212
|
document.addEventListener('DOMContentLoaded', () => {
|
|
198
213
|
// Add copy buttons to code blocks
|
|
199
214
|
document.querySelectorAll('pre').forEach(pre => {
|
|
200
|
-
// Skip if already has a copy button
|
|
201
|
-
if (pre.
|
|
215
|
+
// Skip if already has a copy button (check parent for wrapper)
|
|
216
|
+
if (pre.parentElement.classList.contains('code-block-wrapper')) {
|
|
202
217
|
return;
|
|
203
218
|
}
|
|
204
219
|
|
|
220
|
+
// Create wrapper div
|
|
221
|
+
const wrapper = document.createElement('div');
|
|
222
|
+
wrapper.className = 'code-block-wrapper';
|
|
223
|
+
|
|
224
|
+
// Insert wrapper before pre and move pre inside it
|
|
225
|
+
pre.parentNode.insertBefore(wrapper, pre);
|
|
226
|
+
wrapper.appendChild(pre);
|
|
227
|
+
|
|
228
|
+
// Create copy button
|
|
205
229
|
const copyButton = document.createElement('button');
|
|
206
230
|
copyButton.className = 'code-copy-button';
|
|
207
231
|
copyButton.setAttribute('aria-label', 'Copy code');
|
|
@@ -229,7 +253,8 @@
|
|
|
229
253
|
});
|
|
230
254
|
});
|
|
231
255
|
|
|
232
|
-
pre
|
|
256
|
+
// Add button to wrapper, not to pre
|
|
257
|
+
wrapper.appendChild(copyButton);
|
|
233
258
|
});
|
|
234
259
|
|
|
235
260
|
// Theme toggle (if present on page)
|
|
@@ -307,8 +332,9 @@
|
|
|
307
332
|
}
|
|
308
333
|
});
|
|
309
334
|
|
|
310
|
-
|
|
335
|
+
|
|
311
336
|
</script>
|
|
337
|
+
{% block scripts_extra %}{% endblock scripts_extra %}
|
|
312
338
|
{% endblock scripts %}
|
|
313
339
|
|
|
314
340
|
{% block analytics %}{% endblock analytics %}
|