Repository navigation
v0.7.0
Minor Changes
-
8ff16f9: Palettes, composed components, overlays and the timeline, close-out (feature-004, step 8h):
0.7.0. The 21 new components —twelve composed, seven overlays on the platform's<dialog>
and Popover API, the toast and its toaster— the palettes and the optional Knight Lab timeline
are verified end to end on the composed, palettes and timeline pages of the four example apps and
documented on the site. Grounds:timeline.cssgives TimelineJS's eras a strip of their own below
the axis labels —with an era, the axis grows to 57px and the era is laid in its lowest 18px, its
title on a plate of the substrate— so an era's title no longer falls on the major ticks' row and
its hatching no longer crosses the labels. Angular: a server-renderedSpToasterno longer reaches for
documentwhen it is torn down —it unlistens F8 only where it listened, on the client— so a server
render that holds a toaster resolves instead of hanging on aReferenceError. The seven packages
move together to0.7.0; the rendered output of every existing chart is unchanged. -
62258b7: Fixes found by the end-to-end pass over the composed page (T-223). A disabled
SpCollapseItem's
summary now carriestabindex="-1", so Tab skips it as it skips every disabled control (REQ-522);
this changes the normalised markup of a disabled item.SpTooltiphides on Escape wherever focus is,
not only on its trigger, so a tooltip shown by hover can be dismissed without moving the pointer
(WCAG 1.4.13, REQ-496). -
449ce95:
uiOverlaySync(element, kind, open)on@silverpoint/core/ui(T-215): opens or closes a native
overlay as its state says —showModal(),show()orclose()for a<dialog>,showPopover()or
hidePopover()for a popover— only when the element is in the other state, so no secondcloseor
toggleevent fires. Without the Popover API a popover stays in the page's flow. -
d4d569d: Palettes, the composed components' and overlays' core, and the timeline's (feature-004,
T-200..T-208). On the new subpath@silverpoint/core/palettes:resolvePalette,paletteStyle,PALETTE_PROPERTIES,
contrastRatio,checkPalette,PALETTE_PAIRSand six verified presets (silverpoint,
sanguine,sepia,ironGall,verdigris,indigo); thePalettetype on the main entry.
A palette value is accepted only if it is a CSS colour (an allowlist). On@silverpoint/core/ui:
uiSortRows,uiPageWindow,uiPagination,uiNumberValue(now also reporting the range as
drawn),uiNumberStep,uiInitials,uiListKey,uiTypeahead,uiPlace,uiAnchor; ten new
glyphs inUI_GLYPHS; and the view trees ofSpSurface,SpGlyph,SpTable,SpPagination,
SpBreadcrumb,SpAvatar,SpAvatarGroup,SpStatistic,SpDescriptions,SpTimelineList,
SpCollapse,SpCollapseItem,SpEmpty,SpResult,SpTextareaandSpInputNumber, and of
the overlaysSpModal,SpDrawer,SpPopover,SpTooltip,SpSelect,SpDropdownMenu,
SpToastandSpToaster(native<dialog>and Popover API), withuiTriggerView,
uiTriggerAria,uiSelectItems,uiMenuItemsanduiToastDuration. On the new
subpath@silverpoint/core/timeline:timelineView,timelineInk,TIMELINE_FRAMES,
TIMELINE_TONESand theSpTimelineProps/TimelineDatatypes.UI_COMPONENTSgains 21 rows
with afamilyfield (ui,composed,overlay), three groups and batchesA1,A2,B;
UI_DEMOSgains their 35 states, and@silverpoint/core/ui-demosexportsTIMELINE_DEMO. New
diagnosticsSP023,SP024andSP025.A link's
href(SpButton,SpBreadcrumb) now keeps only relative URLs and thehttp,https,
mailtoandtelschemes, and aheadingLeveloutside 2..6 drawsh3; both warnSP017.UiTokensgains the optionalbackdropandrowTonelevels;resolveUiTokensholds them to 1..4
and gives a ground that declares none2and1(T-209).
A table cell's text stands on a.sp-ui-plate, so a toned row keeps its contrast.paletteonCommonChartProps,CommonUiProps,DashboardPropsandProviderConfig(T-212):
resolveUiresolves it provider → dashboard cell → prop and every UI root writes it first in its
style;dashboardViewtakes the section's declarations and hands the palette to its cells, where
inCellmerges it under the chart's own;svgStringwrites it on the<svg>.nestProvideron
@silverpoint/core/palettes: a nested provider's set fields win and the palettes merge field by field. -
61e98a2:
SpTimelineon@silverpoint/react/timeline,@silverpoint/vue/timelineand
@silverpoint/angular/timeline(T-221): a Knight Lab TimelineJS timeline inside the ground's surface,
with@knight-lab/timelinejs^3.9.13an optional peer. The server renders the surface, its probes
and an empty mount; the client imports TimelineJS after render, builds it there without thefont
andthemeoptions, and forwards its seven events (change,loaded,navNext,navPrevious,
zoomIn,zoomOut,backToStart) as each framework's props, emits or outputs. If TimelineJS cannot
be loaded, the mount shows thefallback(React's prop, Vue's slot, Angular's
<ng-template spFallback>),SP025is warned in development, and nothing throws. Import the subpath
only with the peer installed. The core's@silverpoint/core/timelinegainstimelineMount,
timelineOptionsandTIMELINE_EVENTS, which the three adapters share, andUiSlotgains
fallback.
Patch Changes
- 3625f7e: Documentation for the 0.7.0 additions (T-224). Each adapter's README lists the 38 UI components and
shows the palettes and the timeline, with TimelineJS as an optional peer; the grounds README names
ui.cssandtimeline.css, and the core README itsui,palettesandtimelineentries.
SpTimelineProps.datagains its documentation comment. - dec07a4: Fixes found by the pixel gate of the new components (T-219):
uiAnchorre-places an overlay when
its trigger or the overlay changes size, as when a web font replaces its fallback; the AvatarGroup's
overlap and the dividers between CollapseItems also hold through thedisplay: contentswrappers an
Angular host keeps around each child; a VueSpDropdownMenumounted open focuses its active item, as
React's and Angular's do. - 194c0b4:
timelineMount(@silverpoint/core/timeline, T-222) builds TimelineJS in a<div>of its own inside
the mount, so TimelineJS'sclassNamerewrite leaves the mount'ssp-kl-mountclass alone, and hands
it a copy ofdata(structuredClone): TimelineJS writes each slide'sunique_idinto its data,
which threw on a frozen object such asTIMELINE_DEMOand left the timeline loading forever. An
error thrown while TimelineJS is built is now handled as a failed load: its container is removed,
SP025is warned and the fallback is shown.