-
Notifications
You must be signed in to change notification settings - Fork 5
Ahmad - Ui Components #2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: Ahmad Munir <142005659+ddroid@users.noreply.github.com>
Signed-off-by: Ahmad Munir <142005659+ddroid@users.noreply.github.com>
Signed-off-by: Ahmad Munir <142005659+ddroid@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request introduces a comprehensive UI components system for debugging and testing website themes. The PR adds approximately 15 major UI components including theme_widget, taskbar, tabs, actions, and various editors, along with a protocol-based messaging system for component communication.
Key Changes
- Implemented a state-driven component architecture with protocol-based messaging
- Added 15+ reusable UI components (theme_widget, taskbar, tabs, actions, etc.)
- Created comprehensive documentation for the standard protocol and component structure
- Established a consistent component pattern across all modules
Reviewed changes
Copilot reviewed 11 out of 71 changed files in this pull request and generated 12 comments.
Show a summary per file
| File | Description |
|---|---|
| web/page.js | Main application entry point with component orchestration |
| src/node_modules/theme_widget/ | Core theme widget component with space and taskbar subcomponents |
| src/node_modules/taskbar/ | Taskbar component managing tabs and manager |
| src/node_modules/tabs/ | Tab management component with drag-scroll functionality |
| src/node_modules/actions/ | Actions menu component with filtering capability |
| src/node_modules/quick_actions/ | Quick action bar with search and step tracking |
| src/node_modules/console_history/ | Command history display component |
| src/node_modules/action_bar/ | Action bar orchestrating quick actions, actions menu, and steps wizard |
| src/node_modules/steps_wizard/ | Multi-step wizard component with progress tracking |
| src/node_modules/manager/ | Manager component coordinating program and action bar |
| src/node_modules/program/ | Program component handling form inputs and actions |
| src/node_modules/space.js | Space component managing editor and action views |
| src/node_modules/quick_editor.js | Quick editor for data manipulation |
| src/node_modules/tabbed_editor/ | Tabbed code editor with syntax highlighting |
| src/node_modules/graph_explorer_wrapper/ | Wrapper for graph explorer with database integration |
| guide/ | Documentation for protocols and component architecture |
| package.json | Project metadata and dependencies |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
bundle.js
Outdated
| } | ||
|
|
||
| function update_scroll_position () { | ||
| // TODO | ||
| } | ||
|
|
||
| func |
Copilot
AI
Dec 20, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Variable dataset is used like a local variable, but is missing a declaration.
| } | |
| function update_scroll_position () { | |
| // TODO | |
| } | |
| func | |
| for (const dataset of datasets) { | |
| // eslint-disable-next-line no-undef | |
| result[node][dataset] = {} | |
| // eslint-disable-next-line no-undef | |
| const files = drive.list(dataset, node) | |
| // eslint-disable-next-line no-undef | |
| for (const file of files) { |
bundle.js
Outdated
| } | ||
|
|
||
| function update_scroll_position () { | ||
| // TODO | ||
| } | ||
|
|
||
| func |
Copilot
AI
Dec 20, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Variable file is used like a local variable, but is missing a declaration.
| } | |
| function update_scroll_position () { | |
| // TODO | |
| } | |
| func | |
| for (const dataset of datasets) { | |
| // eslint-disable-next-line no-undef | |
| result[node][dataset] = {} | |
| // eslint-disable-next-line no-undef | |
| const files = drive.list(dataset, node) | |
| // eslint-disable-next-line no-undef | |
| for (const file of files) { |
| @@ -0,0 +1,88 @@ | |||
| // @TODO: replace `callback` and `actions_callback` with this | |||
| async function component (opts, protocol) { | |||
Copilot
AI
Dec 20, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unused function component.
| @@ -0,0 +1,88 @@ | |||
| // @TODO: replace `callback` and `actions_callback` with this | |||
| async function component (opts, protocol) { | |||
| const { id, sdb } = await get(opts.sid) | |||
Copilot
AI
Dec 20, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unused variable sdb.
| // ... | ||
| return el | ||
| // ... | ||
| function create_action_item (action_data, index) { |
Copilot
AI
Dec 20, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unused function create_action_item.
| // eslint-disable-next-line no-unused-vars | ||
| const { drive } = sdb |
Copilot
AI
Dec 20, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unused variable drive.
| // eslint-disable-next-line no-unused-vars | |
| const { drive } = sdb | |
| // NOTE: When drive-based functionality is implemented, destructure it from sdb here. | |
| // const { drive } = sdb |
| // eslint-disable-next-line no-unused-vars | ||
| const subs = await sdb.watch(onbatch) |
Copilot
AI
Dec 20, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unused variable subs.
| // eslint-disable-next-line no-unused-vars | |
| const subs = await sdb.watch(onbatch) | |
| await sdb.watch(onbatch) |
| commands_container.className = 'commands-list' | ||
|
|
||
| commands.forEach((command, index) => { | ||
| const command_item = create_command_item(command, index) |
Copilot
AI
Dec 20, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Superfluous argument passed to function create_command_item.
| const command_item = create_command_item(command, index) | |
| const command_item = create_command_item(command) |
|
|
||
| const btn = make_btn(key, `tab-button${first}`, labels[nesting], nesting) | ||
| const tab = make_tab(key, `tab-content${sub + first}`, ['btns', 'tabs'], local_nesting) | ||
| btn.onclick = () => tab_btn_click(btn, btns, tabs, '.root-tabs > .tab-content', 'node', key) |
Copilot
AI
Dec 20, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Superfluous arguments passed to function tab_btn_click.
| btn.onclick = () => tab_btn_click(btn, btns, tabs, '.root-tabs > .tab-content', 'node', key) | |
| btn.onclick = () => tab_btn_click(btn, btns, tabs) |
| const { type, data } = msg | ||
| if (type === 'console_history_toggle') console_history_toggle_view() | ||
| else if (type === 'graph_explorer_toggle') graph_explorer_toggle_view() | ||
| else if (type === 'display_actions') actions_toggle_view(data) |
Copilot
AI
Dec 20, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Superfluous argument passed to function actions_toggle_view.
| else if (type === 'display_actions') actions_toggle_view(data) | |
| else if (type === 'display_actions') actions_toggle_view() |
@todo@output📦 from Notes - ThemeWidget #4