When ?page= param contains a full URL (e.g. https://domain/module/page.ui),
normalize it to relative path (/module/page.ui) before loading.
Applied in _restore, _loadInto, navigate, and _onReplace.
Replace add.svg and delete.svg with minimalist design:
- 1.5px stroke width for thin, elegant appearance
- Round line caps and joins for smooth edges
- Consistent style across both icons
- Uses currentColor for theme compatibility
Add requestAnimationFrame deferred handleInput() call in setValue()
to ensure textarea height recalculates after DOM render, fixing
single-line display when value is set during Form build phase.
Menu widget's menu_clicked() was bypassing the standard _buildWidget
path in bricks.js, so Router._onReplace was never called when navigating
via sidebar menu items. This caused:
- Browser URL not updating on menu clicks
- F5 refresh not restoring the current page
Added Router hook after t.add_widget(w) in menu_clicked(), matching
the same pattern used in bricks.js _buildWidget.
1. Default uitype to 'str' when no alter matches (text input)
2. Handle alter.uitype='select' by converting to code with inline data
3. Read browserfields from opts.row_options.browserfields (CRUD-generated
UIs nest it under row_options, not at opts top level)
When valueField/textField are not explicitly set in opts, the auto-select
logic (line 1140) and nullable empty-option creation (lines 1144-1145) used
data[0][undefined] which returned undefined, causing:
- Single-option selects to show blank (auto-select failed)
- nullable empty options to have undefined keys
Now extracts vf/tf local variables with ||'value'/||'text' fallback at the
top of build_options(), used consistently throughout.
- Remove unused event.target.bricks_widget assignment
- Add check to prevent clicks on interactive elements (A, BUTTON, INPUT, SELECT, TEXTAREA) from triggering row selection
- This ensures toolbar buttons and form inputs inside rows work correctly
Menu constructor hardcoded background to 'white' when no bgcolor option
was provided. This caused white background in sidebar menus regardless
of theme (dark/light). Changed default to 'transparent' so Menu inherits
parent container's themed background color.
- .menuitem: dark bg #334155 + light text #E2E8F0 (with !important to
override Menu widget's inline backgroundColor:white)
- .popup .vbox/.vcontainer/.vscroll: override inline white bg
- .popup h1-h6: light text color for headings
- .mini-window: dark card style for WindowsPanel dock items
- .toppopup: dark shadow variant
Sage shell defaults to dark theme but bricks.css had no dark rules,
causing light-gray text (#8a8a8a) on light backgrounds (#fafafa/#efefef)
in CRUD tables — unreadable against the dark shell.
Added comprehensive [data-theme=dark] overrides:
- body: #CBD5E1 text on #0F172A bg
- .card/.tabular/.tabular-row: dark slate backgrounds
- .inputbox/.popup/.modal/.toolbar: dark variants
- .accordion/.tabpanel/.message: dark variants