0.4.0
UI Package (@platform-blocks/ui)
- Introduced
Notice, a flexible replacement forAlertthat supports severity-aware defaults, light/filled/outline/subtle variants, optional icons, close buttons, and full-width banners across web and native. - Rebuilt
Knobwith the newappearance/interactionsystem (layer-level styling, partial arcs, pointer + progress controls, multi-gesture input) plus extensive demos, README, and customization spec to document the behavior. - Reworked
QRCoderendering to use an internal encoder, support rounded/diamond modules, gradients, portal logos, and graceful error fallbacks; added a dedicated test suite to keep regressions out. - Added the shared
Collapseprimitive and refitAccordion,Spoiler, andTreeto use it so that expand/collapse timing, easing, and fade behavior remain consistent across components. - Hardened optional dependency loading through the centralized
resolveOptionalModulecache and migrated hooks such asuseClipboard,useHotkeys,useMaskedInput,useHaptics,useDeviceInfo, anduseSpotlightToggleinto their own folders with metadata + demos, making the docs pipeline aware of first-party hooks. - Polished dozens of components and demos: new
chart-sparklineicon assets, acaptiontext variant (with matching tests), web-onlyRadiokeyboard fixes, ColorPicker style cleanups, updated App Store badges/buttons, refreshed markdown + gradient docs, and brand-new Jest coverage across Accordion, Breadcrumbs, Card, Checkbox, Dialog, Divider, Grid, Indicator, Menu, Overlay, Popover, Progress, QRCode, Radio, Ring, SegmentedControl, Select, ShimmerText, Skeleton, Slider, Space, Spoiler, Spotlight, Stepper, Tabs, Title, Toggle, Tooltip, Tree, and more.
Charts Package (@platform-blocks/charts)
- Expanded
ChartInteractionProviderwith portal-aware popovers, sticky crosshairs, pointer/crosshair throttling, wheel zoom controls, and follow modes so charts remain responsive on both touch and desktop pointer devices. - Updated
ChartPopoverto animate toward pointer coordinates, optionally render insidedocument.body, and better format candlestick, bubble, histogram, funnel, radar, and violin data via the enriched metadata supplied by each series. - Rebuilt
useTooltipAggregatorto combine crosshair distance + pointer offset, cap series counts, and expose shared anchors that all Cartesian charts (Bar, Line, Scatter, Histogram, Violin, Combo, Donut, etc.) now feed to eliminate mismatched tooltips. - Synced every chart component to the new interaction contracts—fixing clipped padding, improving grouped/stacked hover alignment, and wiring up the docs’
DOCS_CHART_INTERACTION_CONFIGso previews feel identical to production usage.
Documentation & Site
- Adopted a new
docsLayoutshell with AppShell support: upgraded header (language toggle, Spotlight trigger, GitHub shortcut), collapsible desktop nav, mobile navbar + bottom bar, floating theme actions, keyboard focus restoration, and localization strings for en/es/fr. - Component detail pages now include the dynamic
ComponentPlayground, consolidated “showcase” previews, a smarterDemoRenderer, persistent scrolling viaPageLayout, and theCopyPageMenubutton that copies Markdown or opens ChatGPT/Claude with page context. - Hooks received first-class coverage:
scripts/generate-demosemits hook metadata/code,hooksLoaderexposes it to the app,/hookslists and filters entries,/hooks/[hookName]renders dedicated detail screens, and a comprehensiveuseDeviceInfohook documents runtime/platform heuristics. - Refreshed the example apps and doc content (Accessibility, Finder, Music Player, Photo Gallery, Settings, Social Feed, etc.), added breadcrumb helpers, standardized section headers (
DocsPageHeader), and wired every page through the updated layout wrappers. - SEO + sharing improvements:
app/+html.tsxnow stamps full meta tags, the Expo export pipeline injects them into the static bundle,docs/publicships robots/sitemap/llms assets,CopyPageMenuexposes copy/share actions, and chart playgrounds use the shared interaction config for stable previews.
Tooling & Release
-
scripts/generate-demos.tsnow parses hook directories alongside UI/charts components, emits code maps + metadata for every entry, and flags doc coverage gaps during generation. -
Added
scripts/generate-sitemap.ts,scripts/generate-llms.ts,docs/scripts/inject-seo-tags.ts, anddocs/scripts/check-prerender.tsso the docs build can produce crawlable HTML, verify prerender output, and capture a trimmed knowledge base for LLM ingestion. -
docs/package.jsongainedgenerate-seo,build-web,inject-seo,check-prerender, and preview helpers; the top-levelpublish-release.tsnow runs the SEO pipeline before bumping/publishing packages to guarantee fresh sitemap + llms artifacts. -
Repository tooling picked up path aliases in
tsconfig.json, refreshed ESLint/Jest setups insideui/, and tighter package scripts (verify:packages,site:build) to keep CI/CD reproducible. -
Replace any
Alertusages withNotice(or your own wrapper) and remove imports forContainer,PressAnimation,Reveal,Accessibility,Disclaimer, and the legacy form helpers—they no longer ship as public exports. -
If you load optional native modules (expo-clipboard, expo-haptics, linear gradient, etc.), rely on
resolveOptionalModuleinstead of callingrequireyourself so the guardrails and caching stay consistent. -
When hosting the docs, make sure the contents of
docs/publicare served as-is and update release automation to runnpm run generate-seo --workspace=docsso the sitemap/llms files stay current. -
Swap any references to the removed playground files with the new
ComponentPlaygroundregistry (or embed theshowcasehelpers) to keep the/components/[name]#playgroundtab functioning.