Skip to content

fix: reconcile package and CLI template drift (batch 3) - #66

Merged
Shewart merged 8 commits into
mainfrom
fix/template-drift-3
Oct 18, 2026
Merged

Shewart merged 8 commits into
mainfrom
fix/template-drift-3

Conversation

@Shewart

@Shewart Shewart commented Oct 18, 2026

Copy link
Copy Markdown
Contributor

Part of #52. Brings the package and CLI template copies of seven components together, and records the drift that's there by design.

Merged (each copy got what the other was missing):

  • Pagination: responsive Previous/Next labels; CurrentPageChanged for @bind-CurrentPage, with OnPageChange kept as a deprecated alias; clicks on the current page or out of range are ignored.
  • Skeleton: Variant (default/circle/text) and ChildContent in both.
  • ScrollArea: the template clipped long content instead of scrolling it (max-height was on the outer overflow-hidden element). Height/MaxHeight now size the inner scrolling element. Removed the scrollbar-* classes, which need a plugin nobody ships.
  • Toast: success/warning variants, Position, Duration auto-dismiss, a labelled close button.
  • TimePicker: Value/ValueChanged, with SelectedTime kept as a deprecated alias; Step now filters the minute list (it wasn't used before); Cancel and outside click close it.
  • DatePicker: the package always put day 1 under Sunday, so leading blank cells now offset it. Opens on the selected month; SelectedDate kept as a deprecated alias.
  • NavigationMenuItem: with Title it's a dropdown (the package's behaviour); without one it's a link when Href is set, otherwise a button (the template's).

Recorded as allowed drift: CopyButton and SidebarProvider (they reach JS differently; the template can't dynamic-import from a consumer's class library), AppSidebar (the template is the dashboard block init rewrites), and Resizable (neither copy actually resizes; a real panel group gets its own issue).

Drift is now 14 of 217, down from 21. What's left is the by-design list above plus Sheet, Drawer, Input, Textarea and Stepper, which come in the next PR.

Tests: 408 passing, 0 warnings. Added behaviour tests for the Pagination guard and callbacks, the DatePicker weekday offset and ScrollArea sizing. The safelist was regenerated.

The package gains the template's responsive Previous/Next labels and
padding; the template gains CurrentPageChanged (for @bind-CurrentPage)
with OnPageChange kept as a deprecated alias. Both now ignore clicks on
the current page or outside the range.

Part of #52
Both take Variant ("default", "circle", "text") and ChildContent, and
merge classes with Shell.Cn.

Part of #52
The template put max-height on the outer overflow-hidden element, so
long content was clipped instead of scrolling. Height and MaxHeight now
size the inner overflow-auto element in both copies. The scrollbar-*
classes needed a Tailwind plugin nobody ships, so they are gone.

Part of #52
Both get the success and warning variants, Position, Duration-based
auto-dismiss (0 keeps the toast open) and a labelled close button.

Part of #52
Value/ValueChanged is the binding in both, with SelectedTime kept as a
deprecated alias. Step now filters the minute list (it was unused), the
picker opens on the current value, and Cancel or an outside click
closes it.

Part of #52
The package always drew day 1 under Sunday. Leading blank cells now
offset it, the picker opens on the selected month, and SelectedDate is
kept as a deprecated alias of Value so template users don't break.

Part of #52
Set Title for a dropdown item (the package's behaviour); leave it empty
for a plain item that renders a link when Href is set (with
aria-current when IsActive) or a button otherwise (the template's).

Part of #52
Covers Pagination, Skeleton, ScrollArea, Toast, TimePicker, DatePicker
and NavigationMenuItem in both sync theories, and records CopyButton,
SidebarProvider, AppSidebar and Resizable as allowed drift. Adds
behaviour tests for the Pagination guard and callbacks, the DatePicker
weekday offset and ScrollArea sizing.

Part of #52
Copilot AI balanced review requested due to automatic review settings October 18, 2026 15:31

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@Shewart
Shewart merged commit 55b5d9f into main Oct 18, 2026
1 check passed
@Shewart
Shewart deleted the fix/template-drift-3 branch October 18, 2026 15:55
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.

2 participants