Skip to content

M kovalsky/exceldep - #1317

Merged
Michael Kovalsky (m-kovalsky) merged 35 commits into
microsoft:mainfrom
m-kovalsky:m-kovalsky/exceldep
Aug 12, 2026
Merged

M kovalsky/exceldep#1317
Michael Kovalsky (m-kovalsky) merged 35 commits into
microsoft:mainfrom
m-kovalsky:m-kovalsky/exceldep

Conversation

@m-kovalsky

Copy link
Copy Markdown
Collaborator

No description provided.

Copilot AI lite review requested due to automatic review settings August 10, 2026 07:07

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR standardizes the interactive-tool UI surface across Semantic Link Labs (shared header controls, searchable pickers, fullscreen behavior) while expanding/aligning “picker-first” entry points (notably Vertipaq Analyzer) and adding/adjusting tests to lock those behaviors in.

Changes:

  • Make vertipaq_analyzer accept dataset=None to launch an initial workspace/model picker, and refine the initial-picker UX (inline picker screen + progress state).
  • Consolidate header control styling/markup around shared .sl-theme-btn, .sl-change-btn, .sl-reload-btn and update multiple tools to consume the shared controls/searchable selects.
  • Add/extend tests to enforce the shared header controls and picker UX consistency; add verbose control to clear_cache() and suppress noise in internal calls.

Reviewed changes

Copilot reviewed 26 out of 26 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tests/test_vertipaq_picker.py Adds tests validating Vertipaq’s dataset-optional picker-first flow and picker markup/layout expectations.
tests/test_ui_header_controls.py Adds cross-tool assertions that shared header controls are referenced and not restyled per-tool.
tests/test_refresh_manager.py Updates/extends Refresh Manager UI tests to match shared controls and picker design.
tests/test_perspective_editor.py Adds tests for new Perspective Editor picker/state sync and table-kind handling.
tests/test_lineage_view_picker.py Adds tests asserting lineage view uses shared searchable pickers and shared reload control styling.
tests/test_lineage_view_excel_scan.py Adds tests around lineage view’s local Excel scan behaviors/UI wiring.
tests/test_find_unused_objects_layout.py Adds tests for updated Find Unused Objects layout sizing.
tests/test_direct_lake_migration_picker.py Adds tests ensuring Direct Lake migration picker uses shared searchable controls.
tests/test_delta_analyzer_picker.py Adds tests for the Delta Analyzer anywidget picker/shell/fullscreen behavior.
tests/test_dax_model_picker.py Extends DAX Perf Optimizer tests for picker UX/layout and model-tree icon/kind behaviors.
tests/test_clear_cache.py Adds tests for new clear_cache(verbose=...) behavior.
tests/test_bpa_rule_editor.py Extends BPA tests for modal centering and “change model” picker-as-modal behavior.
src/sempy_labs/semantic_model/_vertipaq_analyzer.py Implements dataset-optional entry (picker-first), shared searchable selects in picker, and progress-in-root behavior.
src/sempy_labs/semantic_model/_perspective_editor.py Adds picker-first flow when dataset omitted, shared searchable picker controls, table-kind icons, and calculation-group normalization.
src/sempy_labs/semantic_model/_find_unused_objects.py Widens layout and switches header buttons to shared control classes; injects shared header CSS.
src/sempy_labs/semantic_model/_direct_lake_migration.py Updates picker UI to searchable selects and aligns picker layout with shared patterns.
src/sempy_labs/semantic_model/_dax_perf.py Tweaks workspace resolution defaults, suppresses cache-clear output, adds table-kind metadata, refactors monitoring requests, and simplifies build-query execution.
src/sempy_labs/semantic_model/_bpa.py Injects shared header CSS and updates header controls to shared classes; changes “change model” to open picker as modal.
src/sempy_labs/_vertipaq.py Updates wrapper signature to support dataset=None and passes through visualize.
src/sempy_labs/_utils.py Adds item-type mapping for Plan.
src/sempy_labs/_ui_components.py Adds shared reload button styles, adjusts caret icon behavior, updates header markup (title-row), and tweaks fullscreen script behavior.
src/sempy_labs/_delta_analyzer.py Introduces anywidget-based interactive picker shell for Delta Analyzer and supporting list/adaptor helpers.
src/sempy_labs/_clear_cache.py Adds verbose flag to suppress confirmation output when used internally.
.claude/skills/ui-styling/SKILL.md Updates UI styling guidance to explicitly include the standard header controls as part of shared header CSS expectations.
Suppressed comments (2)

src/sempy_labs/_ui_components.py:1521

  • The picker_btn_id parameter docstring appears to include a copy/paste of the fullscreen_btn_id description (it repeats full-screen toggle details). This is misleading for API consumers reading the docs.

This issue also appears on line 1816 of the same file.

    picker_btn_id : str, default=None
        If provided, includes a small "change" (swap) button with this DOM id
        in the title area. Used to reveal/toggle an interactive picker.
        If provided, includes a full-screen toggle button with this DOM id,
        placed immediately to the left of the theme toggle button. Pair with
        :func:`fullscreen_toggle_script` to wire up behavior.

src/sempy_labs/_ui_components.py:1820

  • fullscreen_toggle_script is defined twice in this module (an earlier implementation using fs_class, and a later one that wraps _FULLSCREEN_BODY). Only the last definition is used at runtime, so the earlier one is dead code and can mislead future maintenance. Consider removing or renaming the earlier implementation so there is a single source of truth.
        root.classList.toggle(fullscreenClass, cssFullscreen);
    }
    function enterFullscreen() {
        cssFullscreen = true;
        renderFullscreenBtn();

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +1422 to +1425
.replace("__LIGHT_VARS__", _UI_LIGHT_VARS)
.replace("__DARK_VARS__", _UI_DARK_VARS)
.replace("__HEADER_CSS__", _UI_HEADER_CSS)
.replace("__SEARCH_CSS__", _UI_SEARCH_SELECT_CSS)
Comment on lines +46 to 50
SEARCH_SELECT_CSS as _UI_SEARCH_SELECT_CSS,
SEARCH_SELECT_JS as _UI_SEARCH_SELECT_JS,
HEADER_CSS as _UI_HEADER_CSS,
fullscreen_setup_js as _ui_fullscreen_setup_js,
)
@m-kovalsky
Michael Kovalsky (m-kovalsky) merged commit 064881b into microsoft:main Aug 12, 2026
1 check passed
@m-kovalsky
Michael Kovalsky (m-kovalsky) deleted the m-kovalsky/exceldep branch August 12, 2026 09:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants