Open
Conversation
1f2271c to
cf70447
Compare
Enable selective component overrides by replacing relative cross-component imports with #bindx-ui/ subpath imports. A Vite plugin can intercept these at build time to resolve local overrides or fall back to package defaults. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…omponent overrides - Vite plugin intercepts #bindx-ui/ imports, resolves local overrides from user's src/ui/ directory, falls back to package defaults - CLI tool (bindx-ui eject/restore/status/diff) for managing overrides with metadata tracking and version-aware status checks - BindxUIDefaultsProvider context for global component default props with nested provider merging support Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…y, and defaults context Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The _internal/* package export didn't work because wildcard patterns don't auto-resolve extensions. Instead, the plugin now resolves fallback paths directly to source files in the package directory. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds a local Button override with border-red-500 to the example app and verifies that package components (PersistButton) pick up the override through the #bindx-ui/ import resolution. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…r overrides Split multi-component files into individual files for cherry-pick ejecting: - ui/: extract CheckboxInput, RadioInput, SheetLayout into separate files - form/: split inputs.tsx into InputField, TextareaField, CheckboxField, RadioEnumField individual files - select/: split ui.tsx into input-ui, multi-select-ui, popover-ui - datagrid/: split columns.tsx into columns/ subfolder (one per type), cells.tsx into cells/ subfolder, ui.tsx into ui/ subfolder - upload/: split progress.tsx states, extract abort/dismiss buttons, split metadata.tsx by media type - repeater/: split block-repeater into item, sortable, ui, add-button Rename for consistency: - Drop "Default" prefix: DefaultDataGrid → DataGrid, DefaultRepeater → Repeater - Drop "DataGrid" prefix on columns: DataGridTextColumn → TextColumn - DefaultSelectDataView → SelectDataView Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ompt - backport command: retrieves base source via git refs, performs diff3 three-way merge, handles fast paths (no changes, auto-update, etc.) - --agent flag: generates structured prompt for AI-assisted merge - --sync flag: updates metadata after agent completes merge - diff upstream/local sub-commands: show targeted diffs against base - Enhanced status: distinguishes upstream-only vs both-changed vs local-only - Git helpers: store gitRef/gitPath in metadata at eject time - Fix stale test assertions from component restructure Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- backport --agent --all: auto-updates unmodified components, generates batch summary prompt for merge-needed ones (inline if ≤5, summary if more) - backport --skip: acknowledges upstream changes without merging, updates base ref so future backports use current upstream as new base - Handle edge cases: upstream removed, local file missing, shallow clone, missing git ref — all reported in batch summary Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…owser test The test was waiting for the container div (datagrid-example) which renders immediately, then asserting datagrid-table exists — but that element only appears after data loads inside DataViewNonEmpty. On slower CI, this races. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…shared CLI utils - Replace execSync with execFileSync in git.ts, diff.ts, merge.ts, backport.ts to prevent shell injection via user-editable .bindx-ui.json metadata - Update metadata after writing conflict markers in backport to prevent re-merging conflict content on subsequent runs - Track metadata changes with a flag in backportAll to save when localHash === upstreamHash (not only when auto-updates occur) - Extract hashContent, stripHeader, isExecError into shared utils.ts - Skip findDependents for glob ejections where the pattern can't match imports Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…re via block renderers Core BlockRepeater.getSelection now discovers field dependencies directly from block definitions by calling any callable properties (render, form) with a collector proxy. This eliminates the need for UI-layer void proxy hacks to force fields into the selection. - Add optional staticRender to BlockDefinition for explicit collection - Add collectBlockRenderers fallback for duck-typed render/form discovery - Make children optional on BlockRepeaterProps (blocks can self-describe) - Remove WithMeta exports — getSelection attached directly to components - Simplify styled repeater staticRender to pure delegation to core - Make withCollector staticRender parameter optional Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add data-testid attributes to headless block repeater example and 11 browser tests covering add/remove blocks, move operations, empty state, and styled repeater rendering. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… browser tests Add explicit waitFor before assertions that depend on prior test state, increase timeouts for slow CI, and use waitFor-based removal loop to avoid fixed-sleep timeouts. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…owser tests - Wait for "No blocks yet" text (not just element existence) to handle slow data loading on CI - Wait for move-down button disabled state (not just existence) to handle render timing Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… browser tests Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Tests assumed empty initial state but CI has seeded blocks. Rewrite to be data-agnostic: count-based assertions, evalJs for DOM queries to avoid strict-mode multi-match errors with agent-browser selectors. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.