Skip to content

0.4.0

Choose a tag to compare

@joshstovall joshstovall released this 23 Nov 23:48
· 54 commits to main since this release

UI Package (@platform-blocks/ui)

  • Introduced Notice, a flexible replacement for Alert that supports severity-aware defaults, light/filled/outline/subtle variants, optional icons, close buttons, and full-width banners across web and native.
  • Rebuilt Knob with the new appearance/interaction system (layer-level styling, partial arcs, pointer + progress controls, multi-gesture input) plus extensive demos, README, and customization spec to document the behavior.
  • Reworked QRCode rendering 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 Collapse primitive and refit Accordion, Spoiler, and Tree to use it so that expand/collapse timing, easing, and fade behavior remain consistent across components.
  • Hardened optional dependency loading through the centralized resolveOptionalModule cache and migrated hooks such as useClipboard, useHotkeys, useMaskedInput, useHaptics, useDeviceInfo, and useSpotlightToggle into their own folders with metadata + demos, making the docs pipeline aware of first-party hooks.
  • Polished dozens of components and demos: new chart-sparkline icon assets, a caption text variant (with matching tests), web-only Radio keyboard 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 ChartInteractionProvider with 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 ChartPopover to animate toward pointer coordinates, optionally render inside document.body, and better format candlestick, bubble, histogram, funnel, radar, and violin data via the enriched metadata supplied by each series.
  • Rebuilt useTooltipAggregator to 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_CONFIG so previews feel identical to production usage.

Documentation & Site

  • Adopted a new docsLayout shell 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 smarter DemoRenderer, persistent scrolling via PageLayout, and the CopyPageMenu button that copies Markdown or opens ChatGPT/Claude with page context.
  • Hooks received first-class coverage: scripts/generate-demos emits hook metadata/code, hooksLoader exposes it to the app, /hooks lists and filters entries, /hooks/[hookName] renders dedicated detail screens, and a comprehensive useDeviceInfo hook 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.tsx now stamps full meta tags, the Expo export pipeline injects them into the static bundle, docs/public ships robots/sitemap/llms assets, CopyPageMenu exposes copy/share actions, and chart playgrounds use the shared interaction config for stable previews.

Tooling & Release

  • scripts/generate-demos.ts now 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, and docs/scripts/check-prerender.ts so the docs build can produce crawlable HTML, verify prerender output, and capture a trimmed knowledge base for LLM ingestion.

  • docs/package.json gained generate-seo, build-web, inject-seo, check-prerender, and preview helpers; the top-level publish-release.ts now 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 inside ui/, and tighter package scripts (verify:packages, site:build) to keep CI/CD reproducible.

  • Replace any Alert usages with Notice (or your own wrapper) and remove imports for Container, 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 resolveOptionalModule instead of calling require yourself so the guardrails and caching stay consistent.

  • When hosting the docs, make sure the contents of docs/public are served as-is and update release automation to run npm run generate-seo --workspace=docs so the sitemap/llms files stay current.

  • Swap any references to the removed playground files with the new ComponentPlayground registry (or embed the showcase helpers) to keep the /components/[name]#playground tab functioning.