Open Healthcare NetworkOpen Healthcare Network
Open Healthcare NetworkOpen Healthcare Network
HomeLeaderboardPeopleBadges
HomeLeaderboardPeopleBadges
Open Healthcare NetworkOpen Healthcare Network

Open Healthcare Network(OHC) is an open-source platform that helps governments, hospitals, and innovators build connected healthcare systems faster, safer, and at national scale.

Building since

Pages

  • Home
  • People
  • Data Explorer
  • Badges
  • Docs

Leaderboard

  • This Week
  • This Month
  • This Year

Status

  • Updated

    updates on the hour, every 12 hours

    next update

  • ohcnetwork/leaderboard-data

Open Source

  • Contribute to Leaderboard

© 2026 Open Healthcare Network. All rights reserved.

Sitemap·Made with and open source
weekmonthyear

Jul 13, 2026 – Jul 20, 2026

Top Contributors

MO
Approved PR #16567+2

[ENG-748] fix: text overflow in Administration Table

Mohammed Nihal · 3 days ago
MO
Approved PR #16570+2

[ENG-746] Hide "completed" from encounter status

Mohammed Nihal · 3 days ago
MO
Changes requested on PR #16545+2

Fix "Show on Map" link oversized clickable area

Mohammed Nihal · 3 days ago
MO
Commented on #16561
Mohammed Nihal · 3 days ago
MO
Changes requested on PR #16526+2

Consolidate Sentry initialization: single init, opt-in DSN, URL scrubbing

Mohammed Nihal · 4 days ago
MO
Approved PR #16556+2

[ENG-736] Fix Diagnostic Report print in Org level

Mohammed Nihal · 4 days ago
MO
Opened pull request #16576+1

[QA-215] fix(ci): stop thank-you-note workflow failing on merged PRs

Mohammed Nihal · 4 days ago
MO
Pushed commit to develop+2

[QA-210] Allow QA project key in PR title JIRA validation (#16569)

Mohammed Nihal · 4 days ago
VI
Pushed commit to main+2

refactor(studio-sidebar): migrate 5 Slot/asChild parts to useRender - Replace radix-ui Slot with @base-ui/react's useRender across SidebarGroupLabel, SidebarGroupAction, SidebarMenuButton, SidebarMenuAction, SidebarMenuSubButton - Drop asChild entirely (render-only): zero usages found anywhere for this component (used only by App.tsx/app-sidebar.tsx/search-form.tsx, none pass asChild) - Same literal-data-attribute design as sidebar.tsx (not via state) for consistency and to avoid the same data-active value risk - Update @dependencies JSDoc tag, regenerate registry JSON - Add .migration/studio-sidebar.md report This is the last component on Radix in src/components/ui -- 0 files remain. Flagging the components.json style flip (radix-vega -> base-vega) and radix-ui package removal as a separate, explicit decision, not bundled into this commit.

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(item): migrate Item off Slot/asChild - Replace radix-ui Slot with useRender + mergeProps - Keep asChild compat shim: 4 real usages in docs render Item as a link (<Item asChild><a href="#">...) - data-slot/data-variant/data-size via useRender's state param; verified identical output to prior literal attributes since both are string values (only booleans differ under state conversion) - Update @dependencies JSDoc tag, regenerate registry JSON - Add .migration/item.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(collapsible): migrate to Base UI - Switch primitives from radix-ui to @base-ui/react/collapsible - Rename CollapsibleTrigger/CollapsibleContent parts to Trigger/Panel - Add asChild compat shim on both Root and Trigger (real consumers use asChild on the Root itself, e.g. nav-main.tsx/sidebar.tsx) - Fix 3 real consumer data-attribute selectors after verifying the actual runtime behavior against installed @base-ui/react source (not just the reference doc or official example, which disagreed): CollapsibleRoot emits data-open/data-closed on itself; CollapsibleTrigger emits only data-panel-open. Updated nav-main.tsx, lib/registry/collapsible.tsx (6 occurrences), and lib/registry/sidebar.tsx accordingly - Regenerate registry JSON - Add .migration/collapsible.md report Flagged (not fixed, out of scope): lib/registry/sidebar.tsx has 3 likely-dead data-[state=open] selectors tied to the already-migrated dropdown-menu.tsx, discovered while investigating this component but belonging to that migration instead.

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(menubar): migrate to Base UI - Swap radix-ui import for @base-ui/react/menu (shared parts) + @base-ui/react/menubar (the Root container, single-part callable) - Deliberately kept self-contained on MenuPrimitive rather than composing this project's dropdown-menu.tsx (which the shadcn golden does): dropdown-menu.tsx here is customized with larger responsive item sizing, and composing it would have silently leaked that sizing into menubar's independently-sized, smaller items - Part renames (exported names unchanged): Label -> GroupLabel, ItemIndicator splits per item type, Sub -> SubmenuRoot, SubTrigger -> SubmenuTrigger; SubContent composes the file's own MenubarContent - No consumer changes needed (Root's dropped value/onValueChange system and loop prop aren't used; the one consumer never uses MenubarLabel) - Verified live: hover-switching between menus, submenus, and a radio group all confirmed working, zero console errors - Regenerate registry JSON, add .migration/menubar.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(dropdown-menu): migrate to Base UI - Swap radix-ui import for @base-ui/react/menu (Radix DropdownMenu -> Base UI Menu): Content -> Portal>Positioner>Popup, Label -> GroupLabel, ItemIndicator splits into CheckboxItemIndicator/ RadioItemIndicator, Sub -> SubmenuRoot, SubTrigger -> SubmenuTrigger; SubContent now composes DropdownMenuContent (matches the shadcn golden's own SubContent shape) - DropdownMenuTrigger gains the standard asChild -> render compat shim (21+ call sites across the app) - onSelect -> onClick + closeOnClick (restructure, not rename): fixed 14 call sites in the docs demo and 1 in filters.tsx; the 4 CheckboxItem occurrences became pure no-ops (closeOnClick already defaults false there) and were removed outright, the rest got explicit closeOnClick to replicate the old preventDefault-to-stay-open behavior - Caught live, not by typecheck: Base UI's GroupLabel throws at runtime unless rendered inside a Group. Wrapped every bare <DropdownMenuLabel> in <DropdownMenuGroup> across 8 files (inner-page-01.tsx, sidebar-01.tsx, data-table.tsx, sidebar-01-demo.tsx, sidebar.tsx, and 9 spots in the docs demo) - Verified live: every menu trigger, submenu positioning, and checkbox-item stay-open behavior confirmed working, zero console errors - Regenerate registry JSON, add .migration/dropdown-menu.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(popover): migrate to Base UI - Swap radix-ui import for @base-ui/react/popover: Content -> Portal>Positioner>Popup, PopoverAnchor dropped entirely (Base UI has no Anchor part, replaced by a Positioner anchor prop; unused here) - PopoverTrigger gains the standard asChild -> render compat shim (initially migrated as a bare passthrough; typecheck immediately caught 12 broken asChild call sites across the app, confirming the shim was needed) - PopoverTitle/PopoverDescription now render real Base UI Title/ Description primitives instead of plain div/p (new a11y wiring, Radix's Popover never had these parts) - Fix filters.tsx's "Saved filters" popover: onOpenAutoFocus (focus the popup container itself, not an input) -> initialFocus via a ref attached to the now ref-forwarding PopoverContent - Regenerate registry JSON, add .migration/popover.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(sheet): migrate to Base UI - Swap radix-ui import for @base-ui/react/dialog (Sheet is built on the Dialog family): Overlay -> Backdrop, Content -> Popup - Outside-dismiss blocking restructured: moved from Content-level onInteractOutside/onPointerDownOutside to a Root-level onOpenChange interception, bridged via always-latest refs since `dismissible` is a Content-level prop but onOpenChange is now Root-only - onOpenAutoFocus -> initialFocus (same restructure as dialog.tsx), preserving the mobile-skip-autofocus behavior - All custom behavior (shake-on-blocked-dismiss, scroll-collapsing header, viewport-aware sizing) verified live and unchanged - No consumer changes needed - Regenerate registry JSON, add .migration/sheet.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(select): migrate to Base UI - Swap radix-ui import for @base-ui/react/select: restructured onto the positioner model (Content -> Portal>Positioner>Popup), position prop dropped in favor of alignItemWithTrigger, Viewport -> List, Label -> GroupLabel, ScrollUpButton/ScrollDownButton -> ScrollUpArrow/ScrollDownArrow, Select itself becomes a bare re-export (SelectPrimitive.Root.Props is generic and breaks the usual ComponentProps pattern) - Preserve the project's own larger trigger/item sizing and responsive breakpoints - Fix one consumer (lib/registry/button-group.tsx's currency selector): the bare-re-export Select has no explicit generic here, so onValueChange's value typed as unknown; cast to string - Regenerate registry JSON, add .migration/select.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(tabs): migrate to Base UI - Swap radix-ui import for @base-ui/react/tabs (Trigger -> Tab, Content -> Panel; exported names unchanged) - Preserve the project's own browser-style third variant, larger dimensions, and custom active-tab indicator colors; merged the one real upstream delta (added aria-disabled hook) onto the customized classes - Flagged, not patched: Base UI defaults to manual tab activation (arrow-key focus no longer auto-switches the panel), a behavior change from Radix's automatic default - No consumer changes needed - Regenerate registry JSON, add .migration/tabs.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(progress): migrate to Base UI - Swap radix-ui import for @base-ui/react/progress: restructured with new Track/Label/Value sub-parts; Progress itself keeps the same simple call shape (value/className/children) so existing <Progress value={x} /> usage is unaffected - Manual translateX() width calculation removed; Base UI's Indicator computes it internally - No consumer changes needed - Regenerate registry JSON, add .migration/progress.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(radio-group): migrate to Base UI - Swap radix-ui import for @base-ui/react/radio-group + @base-ui/react/radio: Base UI splits Radix's single RadioGroup namespace into a standalone callable RadioGroup and a separate Radio primitive (Root/Indicator) - RadioGroupItem now renders Radio.Root internally (exported name unchanged) - No consumer changes needed (orientation prop, the one dropped prop, isn't used anywhere in this repo) - Regenerate registry JSON, add .migration/radio-group.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(checkbox): migrate to Base UI - Swap radix-ui import for @base-ui/react/checkbox (Root/Indicator parts unchanged, Checkbox is not single-part-callable) - Preserve the project's own size variant (default/md via cva) and concrete lucide CheckIcon - checked="indeterminate" -> separate indeterminate boolean prop (Base UI split): fix 8 call sites in the data-table docs demo that used the old combined Radix idiom for the "select all" header checkbox, splitting into checked={allSelected} + indeterminate={someSelected && !allSelected} - Update the docs prop table (checked/onCheckedChange narrowed to boolean, new indeterminate row) - Regenerate registry JSON, add .migration/checkbox.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(separator): migrate to Base UI - Swap radix-ui import for @base-ui/react/separator (direct 1:1 mapping, Separator is a callable single-part primitive) - Drop the decorative prop entirely (Base UI has no equivalent; no consumer passed it explicitly) - Preserve the project's own variant system (solid/dashed/inset/dotted via cva) unchanged - Remove the decorative row from the docs prop table - Regenerate registry JSON, add .migration/separator.md report

Vinu · 4 days ago
MO
Opened pull request #5+1

playwright: document overlapping Radix overlay close-animation race

Mohammed Nihal · 4 days ago
VI
Pushed commit to main+2

refactor(toggle): migrate to Base UI - Swap radix-ui import for @base-ui/react/toggle - TogglePrimitive.Root -> TogglePrimitive (Base UI's Toggle is a callable single-part primitive, no .Root) - Customized wrapper (project's own size-variant padding scale, no has-data-[icon=...] utilities from the shadcn default): merged via git merge-file (radix-vega golden as ancestor, base-vega golden as target) so the customization survived byte-for-byte - Drop now-unused React import; keep pre-existing "use client" directive as-is - pressed/defaultPressed/onPressedChange/disabled and the aria-pressed:bg-muted class hook are unchanged (Base UI's Toggle sets a real aria-pressed attribute, confirmed against node_modules/@base-ui/react/toggle/Toggle.js) - Regenerate registry JSON, add .migration/toggle.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(tooltip): migrate to Base UI - Switch primitives from radix-ui to @base-ui/react/tooltip - Restructure Content -> Portal > Positioner > Popup per the positioner model; side/sideOffset/align/alignOffset move to Positioner - TooltipTrigger keeps an asChild compat prop translated to render via a local resolveAsChild helper, matching the alert-dialog.tsx/drawer.tsx/ button.tsx precedent (101+ asChild call sites project-wide) - TooltipProvider delayDuration -> delay (straight rename, no compat shim needed): update call sites in sidebar.tsx, filters.tsx, and button-group.tsx docs demo - Update docs prop table (delayDuration -> delay) - Regenerate registry JSON (tooltip, sidebar, filters, index) - Add .migration/tooltip.md and .migration/command.md reports (command.md documents that command.tsx is built on cmdk, not Radix, and is out of migration scope per the hard rules) Flagged behavior change: TooltipContent's default sideOffset moves from 0 to 4 (the base-vega registry's own default, not a discarded project customization) -- tooltips now render with a small gap from their trigger instead of touching it.

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(button): migrate to the real @base-ui/react/button primitive - Use ButtonPrimitive from @base-ui/react/button directly, per the skill's hard rule (never a hand-rolled useRender wrapper) - Keep asChild as a compat prop translated to render, matching the drawer.tsx/alert-dialog.tsx precedent already in this repo (101 asChild call sites across 28 files, out of scope to hand-migrate for a single-component request) - Add nativeButton auto-inference: Base UI's real Button logs a dev console warning when nativeButton doesn't match the rendered tag; automatically set nativeButton=false when asChild wraps a plain non-button DOM tag (e.g. <a>), matching real usages in brands-page.tsx/invalid-browser.tsx/empty.tsx with no consumer edits - Preserve data-slot/data-variant/data-size as explicit attributes (deviates from the golden pair, which drops them; kept since this project's existing public contract includes them) - Update @dependencies JSDoc tag, regenerate registry JSON - Add .migration/button.md report Full project typecheck stayed clean with zero consumer file changes.

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(avatar): migrate to Base UI - Swap radix-ui import for @base-ui/react/avatar (direct 1:1 mapping, confirmed via golden pair: identical anatomy/props/behavior) - Update type annotations to the AvatarPrimitive.X.Props idiom - Update @dependencies JSDoc tag - Regenerate registry JSON - Add .migration/avatar.md report No consumer or docs changes needed: no usage of asChild or delayMs anywhere in this repo, both of which are the only props that changed shape in the Radix -> Base UI avatar mapping.

Vinu · 4 days ago
VI
Pushed commit to main+2

docs(alert-dialog): document AlertDialogAction no longer auto-closes Add a props table entry clarifying that AlertDialogAction renders a plain button and does not close the dialog automatically on click (Base UI has no Action primitive), unlike AlertDialogCancel which still does.

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(accordion): migrate to Base UI - Switch primitives from radix-ui to @base-ui/react/accordion - Rename Content -> Panel, disabled: -> aria-disabled: on trigger - Rename CSS var --radix-accordion-content-height -> --accordion-panel-height - Update docs registry examples for Base UI Root API (drop type/collapsible, always-array value/defaultValue, multiple boolean for multi-mode) - Regenerate registry JSON - Add .migration/accordion.md migration report

Vinu · 4 days ago
MO
Commented on #16572
Mohammed Nihal · 5 days ago
VI
Pushed commit to main+2

chore: apply low-risk dependency upgrades and sync registry artifacts

Vinu · 5 days ago
RI
Pushed commit to main+2

ensure token number is always uppercase (#17)

Rithvik Nishad · 5 days ago
MO
Reviewed PR #16553+2

Fix js/trivial-conditional CodeQL quality alerts

Mohammed Nihal · 5 days ago
RI
Commented on #16
Rithvik Nishad · 5 days ago
MO
Changes requested on PR #16550+2

[ENG-754] Resolve react-hooks/refs violations

Mohammed Nihal · 5 days ago
MO
Changes requested on PR #16485+2

[ENG-642] Add clear button and adjust styling for questionnaire question types

Mohammed Nihal · 5 days ago
VI
Pushed commit to main+2

feat: migrate drawer to Base UI and refresh docs/examples

Vinu · 5 days ago
MO
Opened pull request #16569+1

[QA-210] Allow QA project key in PR title JIRA validation

Mohammed Nihal · 5 days ago
RI
Approved PR #16567+2

[ENG-748] fix: text overflow in Administration Table

Rithvik Nishad · 5 days ago
MO
Commented on #16317
Mohammed Nihal · 5 days ago
MO
Changes requested on PR #16514+2

Add a unit-test harness (Vitest), typecheck script, and CI gates

Mohammed Nihal · 6 days ago
MO
Approved PR #16514+2

Add a unit-test harness (Vitest), typecheck script, and CI gates

Mohammed Nihal · 6 days ago
MO
Approved PR #16529+2

Add characterization tests for monetary component math and medication active-window logic

Mohammed Nihal · 6 days ago
RI
Pushed commit to develop+2

move `dompurify` package to dependencies (#16532)

Rithvik Nishad · 6 days ago
RI
Pushed commit to main+2

Update care_token_display name in README

Rithvik Nishad · 6 days ago
RI
Opened pull request #15+1

Revert "ENG-549: Redesign the tv token display"

Rithvik Nishad · 6 days ago
MO
Approved PR #16567+2

[ENG-748] fix: text overflow in Administration Table

Mohammed Nihal · 3 days ago
MO
Approved PR #16570+2

[ENG-746] Hide "completed" from encounter status

Mohammed Nihal · 3 days ago
MO
Changes requested on PR #16545+2

Fix "Show on Map" link oversized clickable area

Mohammed Nihal · 3 days ago
MO
Commented on #16561
Mohammed Nihal · 3 days ago
MO
Changes requested on PR #16526+2

Consolidate Sentry initialization: single init, opt-in DSN, URL scrubbing

Mohammed Nihal · 4 days ago
MO
Approved PR #16556+2

[ENG-736] Fix Diagnostic Report print in Org level

Mohammed Nihal · 4 days ago
MO
Opened pull request #16576+1

[QA-215] fix(ci): stop thank-you-note workflow failing on merged PRs

Mohammed Nihal · 4 days ago
MO
Pushed commit to develop+2

[QA-210] Allow QA project key in PR title JIRA validation (#16569)

Mohammed Nihal · 4 days ago
VI
Pushed commit to main+2

refactor(studio-sidebar): migrate 5 Slot/asChild parts to useRender - Replace radix-ui Slot with @base-ui/react's useRender across SidebarGroupLabel, SidebarGroupAction, SidebarMenuButton, SidebarMenuAction, SidebarMenuSubButton - Drop asChild entirely (render-only): zero usages found anywhere for this component (used only by App.tsx/app-sidebar.tsx/search-form.tsx, none pass asChild) - Same literal-data-attribute design as sidebar.tsx (not via state) for consistency and to avoid the same data-active value risk - Update @dependencies JSDoc tag, regenerate registry JSON - Add .migration/studio-sidebar.md report This is the last component on Radix in src/components/ui -- 0 files remain. Flagging the components.json style flip (radix-vega -> base-vega) and radix-ui package removal as a separate, explicit decision, not bundled into this commit.

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(item): migrate Item off Slot/asChild - Replace radix-ui Slot with useRender + mergeProps - Keep asChild compat shim: 4 real usages in docs render Item as a link (<Item asChild><a href="#">...) - data-slot/data-variant/data-size via useRender's state param; verified identical output to prior literal attributes since both are string values (only booleans differ under state conversion) - Update @dependencies JSDoc tag, regenerate registry JSON - Add .migration/item.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(collapsible): migrate to Base UI - Switch primitives from radix-ui to @base-ui/react/collapsible - Rename CollapsibleTrigger/CollapsibleContent parts to Trigger/Panel - Add asChild compat shim on both Root and Trigger (real consumers use asChild on the Root itself, e.g. nav-main.tsx/sidebar.tsx) - Fix 3 real consumer data-attribute selectors after verifying the actual runtime behavior against installed @base-ui/react source (not just the reference doc or official example, which disagreed): CollapsibleRoot emits data-open/data-closed on itself; CollapsibleTrigger emits only data-panel-open. Updated nav-main.tsx, lib/registry/collapsible.tsx (6 occurrences), and lib/registry/sidebar.tsx accordingly - Regenerate registry JSON - Add .migration/collapsible.md report Flagged (not fixed, out of scope): lib/registry/sidebar.tsx has 3 likely-dead data-[state=open] selectors tied to the already-migrated dropdown-menu.tsx, discovered while investigating this component but belonging to that migration instead.

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(menubar): migrate to Base UI - Swap radix-ui import for @base-ui/react/menu (shared parts) + @base-ui/react/menubar (the Root container, single-part callable) - Deliberately kept self-contained on MenuPrimitive rather than composing this project's dropdown-menu.tsx (which the shadcn golden does): dropdown-menu.tsx here is customized with larger responsive item sizing, and composing it would have silently leaked that sizing into menubar's independently-sized, smaller items - Part renames (exported names unchanged): Label -> GroupLabel, ItemIndicator splits per item type, Sub -> SubmenuRoot, SubTrigger -> SubmenuTrigger; SubContent composes the file's own MenubarContent - No consumer changes needed (Root's dropped value/onValueChange system and loop prop aren't used; the one consumer never uses MenubarLabel) - Verified live: hover-switching between menus, submenus, and a radio group all confirmed working, zero console errors - Regenerate registry JSON, add .migration/menubar.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(dropdown-menu): migrate to Base UI - Swap radix-ui import for @base-ui/react/menu (Radix DropdownMenu -> Base UI Menu): Content -> Portal>Positioner>Popup, Label -> GroupLabel, ItemIndicator splits into CheckboxItemIndicator/ RadioItemIndicator, Sub -> SubmenuRoot, SubTrigger -> SubmenuTrigger; SubContent now composes DropdownMenuContent (matches the shadcn golden's own SubContent shape) - DropdownMenuTrigger gains the standard asChild -> render compat shim (21+ call sites across the app) - onSelect -> onClick + closeOnClick (restructure, not rename): fixed 14 call sites in the docs demo and 1 in filters.tsx; the 4 CheckboxItem occurrences became pure no-ops (closeOnClick already defaults false there) and were removed outright, the rest got explicit closeOnClick to replicate the old preventDefault-to-stay-open behavior - Caught live, not by typecheck: Base UI's GroupLabel throws at runtime unless rendered inside a Group. Wrapped every bare <DropdownMenuLabel> in <DropdownMenuGroup> across 8 files (inner-page-01.tsx, sidebar-01.tsx, data-table.tsx, sidebar-01-demo.tsx, sidebar.tsx, and 9 spots in the docs demo) - Verified live: every menu trigger, submenu positioning, and checkbox-item stay-open behavior confirmed working, zero console errors - Regenerate registry JSON, add .migration/dropdown-menu.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(popover): migrate to Base UI - Swap radix-ui import for @base-ui/react/popover: Content -> Portal>Positioner>Popup, PopoverAnchor dropped entirely (Base UI has no Anchor part, replaced by a Positioner anchor prop; unused here) - PopoverTrigger gains the standard asChild -> render compat shim (initially migrated as a bare passthrough; typecheck immediately caught 12 broken asChild call sites across the app, confirming the shim was needed) - PopoverTitle/PopoverDescription now render real Base UI Title/ Description primitives instead of plain div/p (new a11y wiring, Radix's Popover never had these parts) - Fix filters.tsx's "Saved filters" popover: onOpenAutoFocus (focus the popup container itself, not an input) -> initialFocus via a ref attached to the now ref-forwarding PopoverContent - Regenerate registry JSON, add .migration/popover.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(sheet): migrate to Base UI - Swap radix-ui import for @base-ui/react/dialog (Sheet is built on the Dialog family): Overlay -> Backdrop, Content -> Popup - Outside-dismiss blocking restructured: moved from Content-level onInteractOutside/onPointerDownOutside to a Root-level onOpenChange interception, bridged via always-latest refs since `dismissible` is a Content-level prop but onOpenChange is now Root-only - onOpenAutoFocus -> initialFocus (same restructure as dialog.tsx), preserving the mobile-skip-autofocus behavior - All custom behavior (shake-on-blocked-dismiss, scroll-collapsing header, viewport-aware sizing) verified live and unchanged - No consumer changes needed - Regenerate registry JSON, add .migration/sheet.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(select): migrate to Base UI - Swap radix-ui import for @base-ui/react/select: restructured onto the positioner model (Content -> Portal>Positioner>Popup), position prop dropped in favor of alignItemWithTrigger, Viewport -> List, Label -> GroupLabel, ScrollUpButton/ScrollDownButton -> ScrollUpArrow/ScrollDownArrow, Select itself becomes a bare re-export (SelectPrimitive.Root.Props is generic and breaks the usual ComponentProps pattern) - Preserve the project's own larger trigger/item sizing and responsive breakpoints - Fix one consumer (lib/registry/button-group.tsx's currency selector): the bare-re-export Select has no explicit generic here, so onValueChange's value typed as unknown; cast to string - Regenerate registry JSON, add .migration/select.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(tabs): migrate to Base UI - Swap radix-ui import for @base-ui/react/tabs (Trigger -> Tab, Content -> Panel; exported names unchanged) - Preserve the project's own browser-style third variant, larger dimensions, and custom active-tab indicator colors; merged the one real upstream delta (added aria-disabled hook) onto the customized classes - Flagged, not patched: Base UI defaults to manual tab activation (arrow-key focus no longer auto-switches the panel), a behavior change from Radix's automatic default - No consumer changes needed - Regenerate registry JSON, add .migration/tabs.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(progress): migrate to Base UI - Swap radix-ui import for @base-ui/react/progress: restructured with new Track/Label/Value sub-parts; Progress itself keeps the same simple call shape (value/className/children) so existing <Progress value={x} /> usage is unaffected - Manual translateX() width calculation removed; Base UI's Indicator computes it internally - No consumer changes needed - Regenerate registry JSON, add .migration/progress.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(radio-group): migrate to Base UI - Swap radix-ui import for @base-ui/react/radio-group + @base-ui/react/radio: Base UI splits Radix's single RadioGroup namespace into a standalone callable RadioGroup and a separate Radio primitive (Root/Indicator) - RadioGroupItem now renders Radio.Root internally (exported name unchanged) - No consumer changes needed (orientation prop, the one dropped prop, isn't used anywhere in this repo) - Regenerate registry JSON, add .migration/radio-group.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(checkbox): migrate to Base UI - Swap radix-ui import for @base-ui/react/checkbox (Root/Indicator parts unchanged, Checkbox is not single-part-callable) - Preserve the project's own size variant (default/md via cva) and concrete lucide CheckIcon - checked="indeterminate" -> separate indeterminate boolean prop (Base UI split): fix 8 call sites in the data-table docs demo that used the old combined Radix idiom for the "select all" header checkbox, splitting into checked={allSelected} + indeterminate={someSelected && !allSelected} - Update the docs prop table (checked/onCheckedChange narrowed to boolean, new indeterminate row) - Regenerate registry JSON, add .migration/checkbox.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(separator): migrate to Base UI - Swap radix-ui import for @base-ui/react/separator (direct 1:1 mapping, Separator is a callable single-part primitive) - Drop the decorative prop entirely (Base UI has no equivalent; no consumer passed it explicitly) - Preserve the project's own variant system (solid/dashed/inset/dotted via cva) unchanged - Remove the decorative row from the docs prop table - Regenerate registry JSON, add .migration/separator.md report

Vinu · 4 days ago
MO
Opened pull request #5+1

playwright: document overlapping Radix overlay close-animation race

Mohammed Nihal · 4 days ago
VI
Pushed commit to main+2

refactor(toggle): migrate to Base UI - Swap radix-ui import for @base-ui/react/toggle - TogglePrimitive.Root -> TogglePrimitive (Base UI's Toggle is a callable single-part primitive, no .Root) - Customized wrapper (project's own size-variant padding scale, no has-data-[icon=...] utilities from the shadcn default): merged via git merge-file (radix-vega golden as ancestor, base-vega golden as target) so the customization survived byte-for-byte - Drop now-unused React import; keep pre-existing "use client" directive as-is - pressed/defaultPressed/onPressedChange/disabled and the aria-pressed:bg-muted class hook are unchanged (Base UI's Toggle sets a real aria-pressed attribute, confirmed against node_modules/@base-ui/react/toggle/Toggle.js) - Regenerate registry JSON, add .migration/toggle.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(tooltip): migrate to Base UI - Switch primitives from radix-ui to @base-ui/react/tooltip - Restructure Content -> Portal > Positioner > Popup per the positioner model; side/sideOffset/align/alignOffset move to Positioner - TooltipTrigger keeps an asChild compat prop translated to render via a local resolveAsChild helper, matching the alert-dialog.tsx/drawer.tsx/ button.tsx precedent (101+ asChild call sites project-wide) - TooltipProvider delayDuration -> delay (straight rename, no compat shim needed): update call sites in sidebar.tsx, filters.tsx, and button-group.tsx docs demo - Update docs prop table (delayDuration -> delay) - Regenerate registry JSON (tooltip, sidebar, filters, index) - Add .migration/tooltip.md and .migration/command.md reports (command.md documents that command.tsx is built on cmdk, not Radix, and is out of migration scope per the hard rules) Flagged behavior change: TooltipContent's default sideOffset moves from 0 to 4 (the base-vega registry's own default, not a discarded project customization) -- tooltips now render with a small gap from their trigger instead of touching it.

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(button): migrate to the real @base-ui/react/button primitive - Use ButtonPrimitive from @base-ui/react/button directly, per the skill's hard rule (never a hand-rolled useRender wrapper) - Keep asChild as a compat prop translated to render, matching the drawer.tsx/alert-dialog.tsx precedent already in this repo (101 asChild call sites across 28 files, out of scope to hand-migrate for a single-component request) - Add nativeButton auto-inference: Base UI's real Button logs a dev console warning when nativeButton doesn't match the rendered tag; automatically set nativeButton=false when asChild wraps a plain non-button DOM tag (e.g. <a>), matching real usages in brands-page.tsx/invalid-browser.tsx/empty.tsx with no consumer edits - Preserve data-slot/data-variant/data-size as explicit attributes (deviates from the golden pair, which drops them; kept since this project's existing public contract includes them) - Update @dependencies JSDoc tag, regenerate registry JSON - Add .migration/button.md report Full project typecheck stayed clean with zero consumer file changes.

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(avatar): migrate to Base UI - Swap radix-ui import for @base-ui/react/avatar (direct 1:1 mapping, confirmed via golden pair: identical anatomy/props/behavior) - Update type annotations to the AvatarPrimitive.X.Props idiom - Update @dependencies JSDoc tag - Regenerate registry JSON - Add .migration/avatar.md report No consumer or docs changes needed: no usage of asChild or delayMs anywhere in this repo, both of which are the only props that changed shape in the Radix -> Base UI avatar mapping.

Vinu · 4 days ago
VI
Pushed commit to main+2

docs(alert-dialog): document AlertDialogAction no longer auto-closes Add a props table entry clarifying that AlertDialogAction renders a plain button and does not close the dialog automatically on click (Base UI has no Action primitive), unlike AlertDialogCancel which still does.

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(accordion): migrate to Base UI - Switch primitives from radix-ui to @base-ui/react/accordion - Rename Content -> Panel, disabled: -> aria-disabled: on trigger - Rename CSS var --radix-accordion-content-height -> --accordion-panel-height - Update docs registry examples for Base UI Root API (drop type/collapsible, always-array value/defaultValue, multiple boolean for multi-mode) - Regenerate registry JSON - Add .migration/accordion.md migration report

Vinu · 4 days ago
MO
Commented on #16572
Mohammed Nihal · 5 days ago
VI
Pushed commit to main+2

chore: apply low-risk dependency upgrades and sync registry artifacts

Vinu · 5 days ago
RI
Pushed commit to main+2

ensure token number is always uppercase (#17)

Rithvik Nishad · 5 days ago
MO
Reviewed PR #16553+2

Fix js/trivial-conditional CodeQL quality alerts

Mohammed Nihal · 5 days ago
RI
Commented on #16
Rithvik Nishad · 5 days ago
MO
Changes requested on PR #16550+2

[ENG-754] Resolve react-hooks/refs violations

Mohammed Nihal · 5 days ago
MO
Changes requested on PR #16485+2

[ENG-642] Add clear button and adjust styling for questionnaire question types

Mohammed Nihal · 5 days ago
VI
Pushed commit to main+2

feat: migrate drawer to Base UI and refresh docs/examples

Vinu · 5 days ago
MO
Opened pull request #16569+1

[QA-210] Allow QA project key in PR title JIRA validation

Mohammed Nihal · 5 days ago
RI
Approved PR #16567+2

[ENG-748] fix: text overflow in Administration Table

Rithvik Nishad · 5 days ago
MO
Commented on #16317
Mohammed Nihal · 5 days ago
MO
Changes requested on PR #16514+2

Add a unit-test harness (Vitest), typecheck script, and CI gates

Mohammed Nihal · 6 days ago
MO
Approved PR #16514+2

Add a unit-test harness (Vitest), typecheck script, and CI gates

Mohammed Nihal · 6 days ago
MO
Approved PR #16529+2

Add characterization tests for monetary component math and medication active-window logic

Mohammed Nihal · 6 days ago
RI
Pushed commit to develop+2

move `dompurify` package to dependencies (#16532)

Rithvik Nishad · 6 days ago
RI
Pushed commit to main+2

Update care_token_display name in README

Rithvik Nishad · 6 days ago
RI
Opened pull request #15+1

Revert "ENG-549: Redesign the tv token display"

Rithvik Nishad · 6 days ago
MO

Mohammed Nihal

@nihal467

61pts
239%
VI

Vinu

@vinutv

80pts
2567%
RI

Rithvik Nishad

@rithviknishad

30pts
65%
MO
Changes requested on PR #16548+2

[ENG-752] Resolve react-hooks/purity violations and enforce the rule

Mohammed Nihal · 3 days ago
MO
Approved PR #16551+2

[ENG-738] fix: update encounter end date handling in EncounterQuestion component

Mohammed Nihal · 3 days ago
MO
Changes requested on PR #16533+2

[ENG-111] Clicking on an inventory item should display all supply deliveries

Mohammed Nihal · 3 days ago
VI
Pushed commit to main+2

docs: remove remaining Radix references from docs and demos - Update install instructions in registry docs (checkbox, collapsible, context-menu, dialog, dropdown-menu, popover, radio-group, scroll-area, separator, sheet, switch, tooltip, button-group, sidebar) from 'radix-ui' to '@base-ui/react'. - Fix stale @dependencies JSDoc in field.tsx, combobox.tsx, command.tsx that still referenced radix-ui/vaul; regenerate registry JSON. - Update Get Started, Accessibility, and documentation.ts prose to credit Base UI instead of Radix for accessibility primitives and focus-trap behavior. - Replace dead --radix-dropdown-menu-*/--radix-popover-* CSS vars (never set by Base UI) with --anchor-width/--available-height in filters.tsx, sidebar.tsx, sidebar-01-demo.tsx, nav-user.tsx, and inner-page-01.tsx.

Vinu · 4 days ago
MO
Changes requested on PR #16455+2

[ENG-500] Support for creating multiple diagnostic reports in a service request

Mohammed Nihal · 4 days ago
MO
Approved PR #16527+2

Clear persisted query cache on logout

Mohammed Nihal · 4 days ago
MO
Merged pull request #16569+5

[QA-210] Allow QA project key in PR title JIRA validation

Mohammed Nihal · 4 days ago
VI
Pushed commit to main+2

chore: complete Radix -> Base UI migration - Flip components.json style from radix-vega to base-vega - Remove radix-ui dependency from package.json, pnpm install to sync the lockfile and prune it from node_modules - Delete src/components/careui/button.tsx and menubar.tsx: confirmed unused orphaned duplicates (not imported anywhere, not part of the active registry) that still imported radix-ui directly and would have broken compilation once the package was removed Verified after this change: - npx tsc -b --noEmit: clean - pnpm lint: clean (same 3 pre-existing unrelated warnings as before) - pnpm run build: succeeds - pnpm run build:registry: no diff (registry already in sync) - grep -rl 'from "radix-ui"' src/: zero matches anywhere in the project This is the final step of the progressive Radix -> Base UI migration covering all 32 active registry components (see .migration/*.md for the full per-component history).

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(sidebar): migrate 5 Slot/asChild parts to useRender - Replace radix-ui Slot with @base-ui/react's useRender across SidebarGroupLabel, SidebarGroupAction, SidebarMenuButton, SidebarMenuAction, SidebarMenuSubButton - Keep asChild compat shim only on SidebarMenuButton/SidebarMenuSubButton (real usage in nav-main.tsx/nav-projects.tsx/nav-secondary.tsx/ lib/registry/sidebar.tsx); drop it cleanly on the other 3 (zero usage) - Keep data-slot/data-sidebar/data-size/data-active as literal attributes, NOT via useRender's state param: verified a real consumer selector (data-[active=true]:font-medium) depends on the exact string value, which state-based conversion would silently break (data-active="" instead of data-active="true") - Drop mergeProps (TypeScript rejects data-* keys in its strict generic); use plain object spread instead, since props never actually conflicts with the explicit attributes - Update @dependencies JSDoc tag, regenerate registry JSON - Add .migration/sidebar.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(button-group): migrate ButtonGroupText off Slot/asChild - Replace radix-ui Slot with useRender + mergeProps (matches golden base-vega ButtonGroupText exactly) - No asChild compat shim: zero real usages found anywhere in the repo - Adds data-slot="button-group-text" (previously missing, matching every other part in this file; purely additive) - Update @dependencies JSDoc tag, regenerate registry JSON - Add .migration/button-group.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(navigation-menu): migrate to Base UI - Swap radix-ui import for @base-ui/react/navigation-menu: the biggest structural rewrite in this batch. viewport boolean prop dropped entirely; NavigationMenuViewport replaced by NavigationMenuPositioner (Portal>Positioner>Popup>Viewport), always mounted unconditionally in Root instead of Radix's below-the-list-viewport toggle - NavigationMenuIndicator now wraps Icon instead of .Indicator (Base UI's Icon is a different concept, a chevron inside the Trigger, not a tracker below the list) - unused by the one consumer here - NavigationMenuLink gains the standard asChild -> render compat shim - No consumer changes needed (viewport prop and NavigationMenuViewport/Indicator aren't used anywhere in this repo) - Verified live: menu open, animated content-swap between two different triggers, and chevron rotation all confirmed working, zero console errors - Regenerate registry JSON, add .migration/navigation-menu.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(context-menu): migrate to Base UI - Swap radix-ui import for @base-ui/react/context-menu (shares the Menu part set with dropdown-menu): Content -> Portal>Positioner>Popup, Label -> GroupLabel, ItemIndicator splits per item type, Sub -> SubmenuRoot, SubTrigger -> SubmenuTrigger; SubContent stays a true minimal compose (side="right" + shadow-lg only) - The wrapper's own `side` prop was silently dead under Radix (ContextMenu.Content has no positioning props at all); Base UI's Positioner makes it genuinely functional now, with no observed behavior change since no consumer passed it - Confirmed the two hard Base UI drops (Root has no modal, Trigger has no disabled) aren't used anywhere in this repo - No consumer changes needed; the one demo file already wrapped every ContextMenuLabel in a ContextMenuGroup - Verified live: right-click menu, submenu, checkbox/radio items, and destructive styling all confirmed working, zero console errors - Regenerate registry JSON, add .migration/context-menu.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(hover-card): migrate to Base UI's Preview Card - Swap radix-ui import for @base-ui/react/preview-card (renamed primitive; exported wrapper names HoverCard/HoverCardTrigger/ HoverCardContent kept unchanged for consumers) - HoverCardTrigger gains the standard asChild -> render compat shim - Fix the one consumer: openDelay/closeDelay move from Root to Trigger as delay/closeDelay (both the main and "Sides" demo, display code strings and executable previews) - Regenerate registry JSON, add .migration/hover-card.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

fix(sheet): regenerate registry JSON to include the useEffect refs fix The registry JSON for sheet was generated before the eslint react-hooks/refs fix (writing to refs during render -> useEffect) was applied to the source, so it had gone stale relative to the committed source file. No source changes here, just re-syncing the generated artifact.

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(dialog): migrate to Base UI - Swap radix-ui import for @base-ui/react/dialog: Overlay -> Backdrop, Content -> Popup (exported names unchanged); DialogTrigger/DialogClose gain the standard asChild -> render compat shim (101+ call sites project-wide use asChild) - onOpenAutoFocus -> initialFocus, restructured not renamed: attached a ref to Popup and default initialFocus to a function that queries it for the first enabled input, reproducing the original auto-focus-first-input behavior exactly (verified live) - Preserve the project's own inner-div layout (innerClassName) and header-embedded close button unchanged - Fix command.tsx's CommandDialogProps: it inherited React.ComponentProps<typeof Dialog> wholesale, which now conflicts with also passing the same children/onOpenChange into <Drawer> (a separately-typed sibling); narrowed to a boolean-only onOpenChange and plain ReactNode children (no runtime behavior change, command.tsx itself remains untouched cmdk code) - Regenerate registry JSON, add .migration/dialog.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(breadcrumb): migrate BreadcrumbLink off Slot/asChild - This file only ever imported Slot from radix-ui (not a stateful Radix primitive); replaced the asChild ? Slot.Root : "a" idiom with useRender + mergeProps, matching the badge.tsx precedent for non-button polymorphic components - Preserve the project's own soft-background/soft-foreground link and page styling unchanged - Update the docs "Link component" example's prose (asChild -> render) - Regenerate registry JSON, add .migration/breadcrumb.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(scroll-area): migrate to Base UI - Swap radix-ui import for @base-ui/react/scroll-area (direct 1:1, ScrollAreaScrollbar/ScrollAreaThumb renamed to Scrollbar/Thumb) - No consumer changes needed (the dropped type prop isn't used anywhere in this repo) - Regenerate registry JSON, add .migration/scroll-area.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(slider): migrate to Base UI - Swap radix-ui import for @base-ui/react/slider: new required Control part (Root > Control > Track > (Indicator, Thumb)), Range -> Indicator rename, thumbAlignment="edge" added to match Radix's original thumb-edge alignment - value/defaultValue/onValueChange widen to number | number[] (a bare number now means a single-thumb slider); fix 4 consumers whose useState<number[]> setters no longer satisfied the widened onValueChange type: playground.tsx, lib/registry/filters.tsx, lib/registry/progress.tsx, lib/registry/slider.tsx (both the display code string and executable preview for the range-slider example) - Regenerate registry JSON, add .migration/slider.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(switch): migrate to Base UI - Swap radix-ui import for @base-ui/react/switch (Root/Thumb parts unchanged; checked/onCheckedChange/disabled/required/name/value all unchanged prop names) - Preserve the project's own larger sizing scale, responsive breakpoints, and checked/unchecked thumb icons unchanged - No consumer changes needed - Regenerate registry JSON, add .migration/switch.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(label): drop Radix, use native <label> - No Base UI counterpart exists for Radix's Label primitive; swap for a plain <label> element (matches the base-vega registry's own approach) - No consumer changes needed: every usage only passes className/htmlFor/children - Regenerate registry JSON, add .migration/label.md report

Vinu · 4 days ago
MO
Changes requested on PR #16083+2

[ENG-30] Pharmacy: Improved bill medications flow

Mohammed Nihal · 4 days ago
VI
Pushed commit to main+2

refactor(toggle-group): migrate to Base UI - Swap radix-ui import for @base-ui/react/toggle-group + @base-ui/react/toggle - ToggleGroupPrimitive.Root -> ToggleGroupPrimitive (callable single-part primitive); ToggleGroupPrimitive.Item -> TogglePrimitive (Base UI has no dedicated Item part: group items ARE Toggle primitives) - Customized wrapper (different default spacing, verbose data-[orientation=vertical] selector instead of shadcn's data-vertical shorthand, no has-data-[icon=...] utilities): merged via git merge-file so all three customizations survived - Corrected a bug in the live shadcn base-vega registry: its ToggleGroupItem still uses data-[state=on]:bg-muted, but Base UI's Toggle never emits data-state, only data-pressed (confirmed against node_modules/@base-ui/react/toggle/ToggleDataAttributes.js). Reproducing it verbatim would have silently broken the pressed background highlight; used data-pressed:bg-muted instead - Update the one demo consumer (lib/registry/toggle-group.tsx): type="single" dropped entirely (Base UI ToggleGroup has no type prop; multiple defaults to false, same as the old single mode) - Regenerate registry JSON, add .migration/toggle-group.md report - Verified live: dev server + headless browser click-through confirmed press/highlight and single-select mutual exclusivity both work, no console errors

Vinu · 4 days ago
RI
Opened pull request #16575+1

[ENG-763] Allow plugins to add sections in user's profile page

Rithvik Nishad · 4 days ago
RI
Pushed commit to main+2

update data

Rithvik Nishad · 4 days ago
VI
Pushed commit to main+2

refactor(badge): migrate Slot/asChild to useRender + mergeProps - Replace radix-ui Slot-based polymorphism with @base-ui/react's useRender + mergeProps (first Slot/asChild component migrated in this project) - asChild -> render; zero consumers use it, no compat shim needed - data-slot/data-variant now generated automatically via useRender's state param (verified byte-identical output against getStateAttributesProps.mjs) - data-solid now renders as data-solid="" instead of data-solid="true"; flagged as a behavior change, harmless since nothing selects on the specific string value - Preserve all custom features unchanged: dot, solid, counter, onClose, full color variant system (badgeVariants CVA untouched) - Update @dependencies JSDoc tag, regenerate registry JSON - Add .migration/badge.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(aspect-ratio): drop Radix, use CSS aspect-ratio - Replace AspectRatioPrimitive.Root with a plain div using the aspect-(--ratio) Tailwind v4 utility driven by a --ratio CSS var, matching the canonical shadcn base-vega golden pair exactly - ratio is now a required prop (previously an implicit Radix default); verified as a no-op against all real consumers, which already pass it - Apply the same fix to tv-display.tsx, which independently imported AspectRatioPrimitive directly from radix-ui - Update @dependencies JSDoc tags and the aspect-ratio docs install snippet - Regenerate registry JSON - Add .migration/aspect-ratio.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

fix(alert-dialog): match canonical Base UI golden pair - Import from @base-ui/react/alert-dialog subpath instead of the barrel - Use AlertDialogPrimitive.Root.Props idiom on the Root type - Add isolate to AlertDialogOverlay (Base UI-specific stacking fix) - Revert AlertDialogAction to a plain Button: Base UI has no Action primitive, so wrapping it in Close (as done previously) silently reintroduced auto-close-on-click behavior that the canonical shadcn base-vega target intentionally drops. Flagged as a behavior change. - Regenerate alert-dialog.json - Add .migration/alert-dialog.md and .migration/alert.md reports (alert.md documents that plain alert.tsx has no Radix dependency and needs no migration)

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(alert-dialog): migrate to Base UI - Switch primitives from radix-ui to @base-ui/react - Add asChild compatibility shim for AlertDialogTrigger - Map AlertDialogOverlay -> Backdrop, AlertDialogContent -> Popup - Map AlertDialogAction/AlertDialogCancel -> Close rendered with Button - Update registry docs install snippet and regenerate registry JSON

Vinu · 4 days ago
MO
Approved PR #16554+2

[ENG-735] Add pagination in Dispense History selector

Mohammed Nihal · 5 days ago
RI
Merged pull request #17+5

ensure token number is always uppercase

Rithvik Nishad · 5 days ago
RI
Opened pull request #17+1

ensure token number is always uppercase

Rithvik Nishad · 5 days ago
MO
Opened pull request #16572+1

[QA-214] Fix flaky device service history edit flow test

Mohammed Nihal · 5 days ago
MO
Approved PR #16552+2

Remove unneeded defensive code in useMultiFilterState

Mohammed Nihal · 5 days ago
MO
Approved PR #16550+2

[ENG-754] Resolve react-hooks/refs violations

Mohammed Nihal · 5 days ago
MO
Commented on #16361
Mohammed Nihal · 5 days ago
RI
Approved PR #16569+2

[QA-210] Allow QA project key in PR title JIRA validation

Rithvik Nishad · 5 days ago
MO
Commented on #16317
Mohammed Nihal · 5 days ago
RI
Merged pull request #15+5

Revert "ENG-549: Redesign the tv token display"

Rithvik Nishad · 5 days ago
MO
Changes requested on PR #16472+2

[ENG - 506] Add support for custom links in the left sidebar

Mohammed Nihal · 6 days ago
MO
Approved PR #16530+2

[ENG-707]: Default account close reason to completed for settled accounts

Mohammed Nihal · 6 days ago
MO
Approved PR #16528+2

Request layer: bound the paginated fetch loop and fix double body consumption

Mohammed Nihal · 6 days ago
RI
Merged pull request #16532+5

move `dompurify` package to dependencies

Rithvik Nishad · 6 days ago
MO
Approved PR #16562+2

[ENG-744] Highlight dosages when they aren't 1

Mohammed Nihal · 6 days ago
MO
Approved PR #16445+2

Register Components for Plugins using Vite

Mohammed Nihal · 6 days ago
MO
Changes requested on PR #16548+2

[ENG-752] Resolve react-hooks/purity violations and enforce the rule

Mohammed Nihal · 3 days ago
MO
Approved PR #16551+2

[ENG-738] fix: update encounter end date handling in EncounterQuestion component

Mohammed Nihal · 3 days ago
MO
Changes requested on PR #16533+2

[ENG-111] Clicking on an inventory item should display all supply deliveries

Mohammed Nihal · 3 days ago
VI
Pushed commit to main+2

docs: remove remaining Radix references from docs and demos - Update install instructions in registry docs (checkbox, collapsible, context-menu, dialog, dropdown-menu, popover, radio-group, scroll-area, separator, sheet, switch, tooltip, button-group, sidebar) from 'radix-ui' to '@base-ui/react'. - Fix stale @dependencies JSDoc in field.tsx, combobox.tsx, command.tsx that still referenced radix-ui/vaul; regenerate registry JSON. - Update Get Started, Accessibility, and documentation.ts prose to credit Base UI instead of Radix for accessibility primitives and focus-trap behavior. - Replace dead --radix-dropdown-menu-*/--radix-popover-* CSS vars (never set by Base UI) with --anchor-width/--available-height in filters.tsx, sidebar.tsx, sidebar-01-demo.tsx, nav-user.tsx, and inner-page-01.tsx.

Vinu · 4 days ago
MO
Changes requested on PR #16455+2

[ENG-500] Support for creating multiple diagnostic reports in a service request

Mohammed Nihal · 4 days ago
MO
Approved PR #16527+2

Clear persisted query cache on logout

Mohammed Nihal · 4 days ago
MO
Merged pull request #16569+5

[QA-210] Allow QA project key in PR title JIRA validation

Mohammed Nihal · 4 days ago
VI
Pushed commit to main+2

chore: complete Radix -> Base UI migration - Flip components.json style from radix-vega to base-vega - Remove radix-ui dependency from package.json, pnpm install to sync the lockfile and prune it from node_modules - Delete src/components/careui/button.tsx and menubar.tsx: confirmed unused orphaned duplicates (not imported anywhere, not part of the active registry) that still imported radix-ui directly and would have broken compilation once the package was removed Verified after this change: - npx tsc -b --noEmit: clean - pnpm lint: clean (same 3 pre-existing unrelated warnings as before) - pnpm run build: succeeds - pnpm run build:registry: no diff (registry already in sync) - grep -rl 'from "radix-ui"' src/: zero matches anywhere in the project This is the final step of the progressive Radix -> Base UI migration covering all 32 active registry components (see .migration/*.md for the full per-component history).

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(sidebar): migrate 5 Slot/asChild parts to useRender - Replace radix-ui Slot with @base-ui/react's useRender across SidebarGroupLabel, SidebarGroupAction, SidebarMenuButton, SidebarMenuAction, SidebarMenuSubButton - Keep asChild compat shim only on SidebarMenuButton/SidebarMenuSubButton (real usage in nav-main.tsx/nav-projects.tsx/nav-secondary.tsx/ lib/registry/sidebar.tsx); drop it cleanly on the other 3 (zero usage) - Keep data-slot/data-sidebar/data-size/data-active as literal attributes, NOT via useRender's state param: verified a real consumer selector (data-[active=true]:font-medium) depends on the exact string value, which state-based conversion would silently break (data-active="" instead of data-active="true") - Drop mergeProps (TypeScript rejects data-* keys in its strict generic); use plain object spread instead, since props never actually conflicts with the explicit attributes - Update @dependencies JSDoc tag, regenerate registry JSON - Add .migration/sidebar.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(button-group): migrate ButtonGroupText off Slot/asChild - Replace radix-ui Slot with useRender + mergeProps (matches golden base-vega ButtonGroupText exactly) - No asChild compat shim: zero real usages found anywhere in the repo - Adds data-slot="button-group-text" (previously missing, matching every other part in this file; purely additive) - Update @dependencies JSDoc tag, regenerate registry JSON - Add .migration/button-group.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(navigation-menu): migrate to Base UI - Swap radix-ui import for @base-ui/react/navigation-menu: the biggest structural rewrite in this batch. viewport boolean prop dropped entirely; NavigationMenuViewport replaced by NavigationMenuPositioner (Portal>Positioner>Popup>Viewport), always mounted unconditionally in Root instead of Radix's below-the-list-viewport toggle - NavigationMenuIndicator now wraps Icon instead of .Indicator (Base UI's Icon is a different concept, a chevron inside the Trigger, not a tracker below the list) - unused by the one consumer here - NavigationMenuLink gains the standard asChild -> render compat shim - No consumer changes needed (viewport prop and NavigationMenuViewport/Indicator aren't used anywhere in this repo) - Verified live: menu open, animated content-swap between two different triggers, and chevron rotation all confirmed working, zero console errors - Regenerate registry JSON, add .migration/navigation-menu.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(context-menu): migrate to Base UI - Swap radix-ui import for @base-ui/react/context-menu (shares the Menu part set with dropdown-menu): Content -> Portal>Positioner>Popup, Label -> GroupLabel, ItemIndicator splits per item type, Sub -> SubmenuRoot, SubTrigger -> SubmenuTrigger; SubContent stays a true minimal compose (side="right" + shadow-lg only) - The wrapper's own `side` prop was silently dead under Radix (ContextMenu.Content has no positioning props at all); Base UI's Positioner makes it genuinely functional now, with no observed behavior change since no consumer passed it - Confirmed the two hard Base UI drops (Root has no modal, Trigger has no disabled) aren't used anywhere in this repo - No consumer changes needed; the one demo file already wrapped every ContextMenuLabel in a ContextMenuGroup - Verified live: right-click menu, submenu, checkbox/radio items, and destructive styling all confirmed working, zero console errors - Regenerate registry JSON, add .migration/context-menu.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(hover-card): migrate to Base UI's Preview Card - Swap radix-ui import for @base-ui/react/preview-card (renamed primitive; exported wrapper names HoverCard/HoverCardTrigger/ HoverCardContent kept unchanged for consumers) - HoverCardTrigger gains the standard asChild -> render compat shim - Fix the one consumer: openDelay/closeDelay move from Root to Trigger as delay/closeDelay (both the main and "Sides" demo, display code strings and executable previews) - Regenerate registry JSON, add .migration/hover-card.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

fix(sheet): regenerate registry JSON to include the useEffect refs fix The registry JSON for sheet was generated before the eslint react-hooks/refs fix (writing to refs during render -> useEffect) was applied to the source, so it had gone stale relative to the committed source file. No source changes here, just re-syncing the generated artifact.

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(dialog): migrate to Base UI - Swap radix-ui import for @base-ui/react/dialog: Overlay -> Backdrop, Content -> Popup (exported names unchanged); DialogTrigger/DialogClose gain the standard asChild -> render compat shim (101+ call sites project-wide use asChild) - onOpenAutoFocus -> initialFocus, restructured not renamed: attached a ref to Popup and default initialFocus to a function that queries it for the first enabled input, reproducing the original auto-focus-first-input behavior exactly (verified live) - Preserve the project's own inner-div layout (innerClassName) and header-embedded close button unchanged - Fix command.tsx's CommandDialogProps: it inherited React.ComponentProps<typeof Dialog> wholesale, which now conflicts with also passing the same children/onOpenChange into <Drawer> (a separately-typed sibling); narrowed to a boolean-only onOpenChange and plain ReactNode children (no runtime behavior change, command.tsx itself remains untouched cmdk code) - Regenerate registry JSON, add .migration/dialog.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(breadcrumb): migrate BreadcrumbLink off Slot/asChild - This file only ever imported Slot from radix-ui (not a stateful Radix primitive); replaced the asChild ? Slot.Root : "a" idiom with useRender + mergeProps, matching the badge.tsx precedent for non-button polymorphic components - Preserve the project's own soft-background/soft-foreground link and page styling unchanged - Update the docs "Link component" example's prose (asChild -> render) - Regenerate registry JSON, add .migration/breadcrumb.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(scroll-area): migrate to Base UI - Swap radix-ui import for @base-ui/react/scroll-area (direct 1:1, ScrollAreaScrollbar/ScrollAreaThumb renamed to Scrollbar/Thumb) - No consumer changes needed (the dropped type prop isn't used anywhere in this repo) - Regenerate registry JSON, add .migration/scroll-area.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(slider): migrate to Base UI - Swap radix-ui import for @base-ui/react/slider: new required Control part (Root > Control > Track > (Indicator, Thumb)), Range -> Indicator rename, thumbAlignment="edge" added to match Radix's original thumb-edge alignment - value/defaultValue/onValueChange widen to number | number[] (a bare number now means a single-thumb slider); fix 4 consumers whose useState<number[]> setters no longer satisfied the widened onValueChange type: playground.tsx, lib/registry/filters.tsx, lib/registry/progress.tsx, lib/registry/slider.tsx (both the display code string and executable preview for the range-slider example) - Regenerate registry JSON, add .migration/slider.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(switch): migrate to Base UI - Swap radix-ui import for @base-ui/react/switch (Root/Thumb parts unchanged; checked/onCheckedChange/disabled/required/name/value all unchanged prop names) - Preserve the project's own larger sizing scale, responsive breakpoints, and checked/unchecked thumb icons unchanged - No consumer changes needed - Regenerate registry JSON, add .migration/switch.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(label): drop Radix, use native <label> - No Base UI counterpart exists for Radix's Label primitive; swap for a plain <label> element (matches the base-vega registry's own approach) - No consumer changes needed: every usage only passes className/htmlFor/children - Regenerate registry JSON, add .migration/label.md report

Vinu · 4 days ago
MO
Changes requested on PR #16083+2

[ENG-30] Pharmacy: Improved bill medications flow

Mohammed Nihal · 4 days ago
VI
Pushed commit to main+2

refactor(toggle-group): migrate to Base UI - Swap radix-ui import for @base-ui/react/toggle-group + @base-ui/react/toggle - ToggleGroupPrimitive.Root -> ToggleGroupPrimitive (callable single-part primitive); ToggleGroupPrimitive.Item -> TogglePrimitive (Base UI has no dedicated Item part: group items ARE Toggle primitives) - Customized wrapper (different default spacing, verbose data-[orientation=vertical] selector instead of shadcn's data-vertical shorthand, no has-data-[icon=...] utilities): merged via git merge-file so all three customizations survived - Corrected a bug in the live shadcn base-vega registry: its ToggleGroupItem still uses data-[state=on]:bg-muted, but Base UI's Toggle never emits data-state, only data-pressed (confirmed against node_modules/@base-ui/react/toggle/ToggleDataAttributes.js). Reproducing it verbatim would have silently broken the pressed background highlight; used data-pressed:bg-muted instead - Update the one demo consumer (lib/registry/toggle-group.tsx): type="single" dropped entirely (Base UI ToggleGroup has no type prop; multiple defaults to false, same as the old single mode) - Regenerate registry JSON, add .migration/toggle-group.md report - Verified live: dev server + headless browser click-through confirmed press/highlight and single-select mutual exclusivity both work, no console errors

Vinu · 4 days ago
RI
Opened pull request #16575+1

[ENG-763] Allow plugins to add sections in user's profile page

Rithvik Nishad · 4 days ago
RI
Pushed commit to main+2

update data

Rithvik Nishad · 4 days ago
VI
Pushed commit to main+2

refactor(badge): migrate Slot/asChild to useRender + mergeProps - Replace radix-ui Slot-based polymorphism with @base-ui/react's useRender + mergeProps (first Slot/asChild component migrated in this project) - asChild -> render; zero consumers use it, no compat shim needed - data-slot/data-variant now generated automatically via useRender's state param (verified byte-identical output against getStateAttributesProps.mjs) - data-solid now renders as data-solid="" instead of data-solid="true"; flagged as a behavior change, harmless since nothing selects on the specific string value - Preserve all custom features unchanged: dot, solid, counter, onClose, full color variant system (badgeVariants CVA untouched) - Update @dependencies JSDoc tag, regenerate registry JSON - Add .migration/badge.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(aspect-ratio): drop Radix, use CSS aspect-ratio - Replace AspectRatioPrimitive.Root with a plain div using the aspect-(--ratio) Tailwind v4 utility driven by a --ratio CSS var, matching the canonical shadcn base-vega golden pair exactly - ratio is now a required prop (previously an implicit Radix default); verified as a no-op against all real consumers, which already pass it - Apply the same fix to tv-display.tsx, which independently imported AspectRatioPrimitive directly from radix-ui - Update @dependencies JSDoc tags and the aspect-ratio docs install snippet - Regenerate registry JSON - Add .migration/aspect-ratio.md report

Vinu · 4 days ago
VI
Pushed commit to main+2

fix(alert-dialog): match canonical Base UI golden pair - Import from @base-ui/react/alert-dialog subpath instead of the barrel - Use AlertDialogPrimitive.Root.Props idiom on the Root type - Add isolate to AlertDialogOverlay (Base UI-specific stacking fix) - Revert AlertDialogAction to a plain Button: Base UI has no Action primitive, so wrapping it in Close (as done previously) silently reintroduced auto-close-on-click behavior that the canonical shadcn base-vega target intentionally drops. Flagged as a behavior change. - Regenerate alert-dialog.json - Add .migration/alert-dialog.md and .migration/alert.md reports (alert.md documents that plain alert.tsx has no Radix dependency and needs no migration)

Vinu · 4 days ago
VI
Pushed commit to main+2

refactor(alert-dialog): migrate to Base UI - Switch primitives from radix-ui to @base-ui/react - Add asChild compatibility shim for AlertDialogTrigger - Map AlertDialogOverlay -> Backdrop, AlertDialogContent -> Popup - Map AlertDialogAction/AlertDialogCancel -> Close rendered with Button - Update registry docs install snippet and regenerate registry JSON

Vinu · 4 days ago
MO
Approved PR #16554+2

[ENG-735] Add pagination in Dispense History selector

Mohammed Nihal · 5 days ago
RI
Merged pull request #17+5

ensure token number is always uppercase

Rithvik Nishad · 5 days ago
RI
Opened pull request #17+1

ensure token number is always uppercase

Rithvik Nishad · 5 days ago
MO
Opened pull request #16572+1

[QA-214] Fix flaky device service history edit flow test

Mohammed Nihal · 5 days ago
MO
Approved PR #16552+2

Remove unneeded defensive code in useMultiFilterState

Mohammed Nihal · 5 days ago
MO
Approved PR #16550+2

[ENG-754] Resolve react-hooks/refs violations

Mohammed Nihal · 5 days ago
MO
Commented on #16361
Mohammed Nihal · 5 days ago
RI
Approved PR #16569+2

[QA-210] Allow QA project key in PR title JIRA validation

Rithvik Nishad · 5 days ago
MO
Commented on #16317
Mohammed Nihal · 5 days ago
RI
Merged pull request #15+5

Revert "ENG-549: Redesign the tv token display"

Rithvik Nishad · 5 days ago
MO
Changes requested on PR #16472+2

[ENG - 506] Add support for custom links in the left sidebar

Mohammed Nihal · 6 days ago
MO
Approved PR #16530+2

[ENG-707]: Default account close reason to completed for settled accounts

Mohammed Nihal · 6 days ago
MO
Approved PR #16528+2

Request layer: bound the paginated fetch loop and fix double body consumption

Mohammed Nihal · 6 days ago
RI
Merged pull request #16532+5

move `dompurify` package to dependencies

Rithvik Nishad · 6 days ago
MO
Approved PR #16562+2

[ENG-744] Highlight dosages when they aren't 1

Mohammed Nihal · 6 days ago
MO
Approved PR #16445+2

Register Components for Plugins using Vite

Mohammed Nihal · 6 days ago
Active Contributors
31
22%vs. last week
Total Activities
578
17%vs. last week
New Contributors
3
62%vs. last week

All Contributors21 of 31

RankContributorActivitiesPointsTrend
VI
VinuCore
@vinutv
0004000
80
2567%
VI
Vinu
40
80
2567%
MO
Mohammed NihalCore
@nihal467
4125150
61
239%
MO
Mohammed Nihal
412515
61
239%
RI
Rithvik NishadCore
@rithviknishad
332410
30
65%
RI
Rithvik Nishad
33241
30
65%
4
BO
Bodhish ThomasCore
@bodhish
141200
27
49%
4
BO
Bodhish Thomas
1412
27
49%
5
YA
Yaswanth Kumar BethuCore
@yash-learner
230210
21
425%
5
YA
Yaswanth Kumar Bethu
2321
21
425%
6
NI
Nikhila CCore
@NikhilA8606
209050
20
11%
6
NI
Nikhila C
295
20
11%
7
NA
navaspavilContributor
@navaspavil
213101
17
13%
7
NA
navaspavil
21311
17
13%
8BACK
GI
Gigin C GeorgeCore
@gigincg
113200
16
8
GI
Gigin C George
BACK
1132
16
9
AM
Amjith TitusCore
@amjithtitus09
213120
15
25%
9
AM
Amjith Titus
21312
15
25%
10
JA
Jacob John JeevanCore
@Jacobjeevan
902030
13
62%
10
JA
Jacob John Jeevan
923
13
62%
11
KE
KeerthiKumarRContributor
@KeerthiKumarR
310150
10
43%
11
KE
KeerthiKumarR
3115
10
43%
12BACK
JA
jagankumar-egovContributor
@jagankumar-egov
100002
5
12
JA
jagankumar-egov
BACK
12
5
13
PR
Prafful SharmaCore
@praffq
001100
4
80%
13
PR
Prafful Sharma
11
4
80%
14BACK
AA
Aakash SinghCore
@sainak
000200
4
14
AA
Aakash Singh
BACK
2
4
15
AB
Abhimanyu RajeeshCore
@abhimanyurajeesh
200080
2
97%
15
AB
Abhimanyu Rajeesh
28
2
97%
16
AC
actions-userContributor
@actions-user
000100
2
16
AC
actions-user
1
2
17BACK
RO
Rohit JohnCore
@john-d03
000000
2
17
RO
Rohit John
BACK
2
18BACK
VY
Vysakh PremkumarCore
@tellmeY18
001000
2
18
VY
Vysakh Premkumar
BACK
1
2
19
VI
Vignesh HariCore
@vigneshhari
001040
2
86%
19
VI
Vignesh Hari
14
2
86%
20
JA
jayant-ssharmaContributor
@jayant-ssharma
100020
1
83%
20
JA
jayant-ssharma
12
1
83%
21BACK
SH
Shivank KackerCore
@shivankacker
100000
1
21
SH
Shivank Kacker
BACK
1
1

Top by Activity Type

PR Merged

Merged a Pull Request

1BOBodhish Thomas42RIRithvik Nishad33YAYaswanth Kumar Bethu3

PR Opened

Opened a Pull Request

1JAJacob John Jeevan92MOMohammed Nihal43KEKeerthiKumarR3

Issue Opened

Raised an Issue

1JAjagankumar-egov22NAnavaspavil1