Skip to content

feat(ui): shared UI components everywhere, outbound heartbeats in Administration - #126

Merged
btouchard merged 5 commits into
mainfrom
039-ui-components
Sep 28, 2026
Merged

btouchard merged 5 commits into
mainfrom
039-ui-components

Conversation

@btouchard

@btouchard btouchard commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Outbound heartbeats let another instance watch this one, so they leave the
Heartbeats page (incoming monitors) for their own Outbound heartbeats page
in the Administration section of the menu. The entry is hidden in demo mode.

The frontend now has one shared component per UI need in components/ui/:
tabs, buttons, form fields, text inputs, selects, textareas, checkboxes,
radios, switches, counters, modals, popover menus, disclosure headers, chips,
option cards, range, file and color inputs. Every page uses them; the seven
hand-made tab navigations, the five button styles and the two different
switches are gone, along with the hardcoded colors found on the way.

Add TabNav, CountBadge, UiButton, FormField, TextInput, SelectInput,
TextareaInput, CheckboxInput, RadioGroup, ToggleSwitch and UiModal, with
their demo on /_ds and unit tests. ConfirmDialog is rebuilt on UiModal and
UiButton with an unchanged API.

ESLint now warns on raw input, select, textarea and button elements outside
components/ui, pointing to the shared component to use.
Outbound heartbeats let another instance watch this one, so they leave the
Heartbeats page (incoming monitors) for an Outbound heartbeats page in the
Administration section of the menu. The menu entry is hidden in demo mode
and the page shows an unavailable state there.

The panel now uses the shared form, switch and button components.
…mponents

Tabs, buttons, fields, selects, textareas, checkboxes, radios, switches,
counters and hand-made modals now go through components/ui. Hardcoded
colors met along the way are replaced by mnt- tokens.
Add PopoverMenu, DisclosureButton, ChipToggle, OptionCards, RangeInput,
FileInput and ColorInput, give SegmentedToggle locked and disabled options,
TextInput a bare variant, UiButton a danger-ghost variant, and make the
value-bound components generic. No raw input, select, textarea or button
remains outside components/ui, and ESLint now rejects them.
The /_ds gallery only existed in development builds and no one runs one;
each shared component keeps its own unit tests.
@btouchard
btouchard merged commit 4bbc7a4 into main Sep 28, 2026
21 checks passed
@btouchard
btouchard deleted the 039-ui-components branch September 28, 2026 19:35
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.

1 participant