Repository navigation
Releases
Releases · e-suiss/ui
@esuiss/ui@0.22.0
Changes
- chore(release): v0.22.0 (38b688b)
- ci: retry when the job list of the full run cannot be read (cad9bd4)
- ci: read the job list of the full run from a file (321c2ef)
- ci: release only a commit whose full run passed (80e6465)
- ci: run every suite each week in one full run with a summary (cecae32)
- ci: compare only the web examples a change touches (56242d6)
- ci: take the mobile screenshots of changed examples on pull requests (5444f49)
- ci: find the examples and stories a change touches (718e8dc)
- ci: take every page of the Compose stories taller than the screen (bb69159)
- test: show the native calendar examples on January 15, 2026 (160dbd7)
- feat(swiftui): let DateCalendar take the day it marks as today (4334200)
- ci: keep emulator animations on for the Compose device tests (a074158)
- ci: compare every Compose catalog story with reference screenshots (88d6361)
- ci: run the Compose device tests on an emulator (f87ccb9)
- ci: add every Compose item to new Gradle projects and build them (f78feb4)
- fix(cli): read Compose dependencies from the version catalog (f023ffa)
- fix(cli): ask Compose projects for compileSdk 37 (d1db388)
- ci: leave the verify code countdown out of the SwiftUI screenshots (f44b6e5)
- ci: leave the live log story out of the SwiftUI screenshots (972cd6c)
- fix(swiftui): hold Spinner still when reduce motion is on (c86bfd4)
- ci: add every SwiftUI item to a new Swift package and Xcode project and build them (4a455e2)
- ci: compare every SwiftUI catalog story with reference screenshots (df88bdb)
- fix(swiftui): build MessageScroller in apps that run code on the main actor by default (badf037)
- feat(www): add docs for Access, One, Relay and Work and a UI item in the header (a6a684f)
- ci: rewrite a reference screenshot that cannot be read instead of stopping (5d99c41)
- ci: take the android screenshot again when it cannot be read (e7d35e0)
- ci: keep older copies from overwriting new screenshots when publishing a few examples (4e97ec6)
- fix(mobile): give font-mono a real monospace font on each platform (a08bcf7)
- ci: read job logs with escape sequences and re-run emulators that never started (ca9d9fa)
- fix(mobile): keep the last word of a code line from wrapping on android (1387bec)
- ci: re-run the android screenshots once when an emulator comes up with another screen size (5635e8b)
- ci: show bundled copies of the example photos while taking native screenshots (4b4c1e2)
- ci: add a replace option that publishes native screenshots of a new screen size (ed31410)
- ci: use three-button navigation on the emulator so the keyboard buttons stay out of screenshots (59e6680)
- fix(mobile): place the lifted preview on whole device pixels (5e79519)
- ci: reboot the emulator when its screen does not match the reference screenshots (c35ff79)
- ci: retry images that fail to load while taking native screenshots (0dc70c7)
- ci: run the native visual tests when the app's components change (1cb3ac5)
- fix(mobile): scroll to the focused field once its focus and the keyboard space are known (523f53d)
- fix(mobile): scroll the unread message example to a fixed message (9657270)
- ci: wait for the display cutout and never rewrite screenshots of another size (445eda7)
- ci: read the Android ready signal only from the app process just started (0e5f2e6)
- fix(mobile): measure the Android keyboard from its top edge and scroll to fields below the view (0490810)
- ci: accept only the opened example's ready signal on Android (e3d4f6f)
- ci: close system not-responding dialogs during Android captures (d467bfc)
- ci: keep system error dialogs out of Android screenshots (78bd5da)
- ci: wait until the Android system bars stop changing before cropping them (9adca40)
- ci: crop the full Android status bar and keep each emulator job short (3c81f3d)
- ci: wait for the Android system bars before reading their size (b5c8f1a)
- ci: crop the Android system bars and split the emulator screenshots ten ways (061489b)
- ci: log each React Native capture and allow taking only some Android examples (f337f72)
- ci: capture React Native examples on an Android emulator (89579a3)
- ci: turn off keyboard suggestions while capturing React Native examples (3a5cf35)
- ci: start React Native publishing from the current references and keep each shard to its own (1dce238)
- fix(mobile): read the open keyboard when a screen mounts after it appeared (2b66af9)
- ci: write a React Native reference only after two captures apart agree (589e8ec)
- ci: capture a React Native example once more when it differs from its reference (640dcf3)
- ci: show the React Native ready marker above full-window overlays (292df96)
- test(ui): load the sans font before rendering and mask the photo whose encoding varies (73b4f55)
- ci: capture React Native examples only after they show and their images load (0b6beaf)
- ci: wait for React Native images and hide text carets before capturing (29f833e)
- test(ui): reduce motion while capturing so transitions never land mid-way (efe0f47)
- ci: open the app once before the first React Native capture (3ef78e7)
- ci: hold motion still while capturing React Native examples and split the run into four jobs (1e99bde)
- test(ui): wait for late transitions and sample images the same way on every capture (98ce2aa)
- test(ui): pad the page before rendering so captures never move overlays (f8253a8)
- ci: compare screenshots of every React Native example on a simulator (e4d0bee)
- ci: replace only the published folder in the reference screenshots repository (8fcdbf4)
- test(ui): keep overlays in place after capturing and expect the tour on the first visit (4c0dda0)
- fix(site): give both tagline words the same letter spacing above the wordmark (9bb9c2e)
- test(ui): take the same screenshot of every example on every run (e93c2af)
- ci: bump pnpm/action-setup from 6.0.10 to 6.1.0 in the actions group (1f2e534)
- fix(ui): round every corner of floating drawers in every style (69443a8)
- ci: keep the workflow actions up to date and point questions to discussions (1b98e2b)
- fix(scripts): retry reading the sitemap before notifying IndexNow (5c1ebd7)
- docs: run bun commands with the bun runtime (ce969fd)
- docs: drop the manual namespace registration steps (ee9b0e8)
- fix(scripts): show the whole failure message in compatibility summaries (c7650ac)
- fix(ui): keep chart labels and axes in place in right-to-left layouts (6e54251)
- test: take reference screenshots with every icon library (030734a)
- test: leave room around examples when taking screenshots (063b523)
- fix(ui): show bubbles, aria sliders and radix navigation panels in every style (d1a8412)
- docs: keep the contributing guide to what contributors need (f701d6f)
- chore: add issue and pull request templates, security policy and code of conduct (d26e56b)
- test: take right-to-left screenshots as each example first renders (dc0485e)
- test: take reference screenshots for every style, base and direction (9515ca0)
- test: check example behaviour the same way in every style (f55c903)
- fix(ui): keep each component's layout in every style (3502fe0)
- docs: reshape installation, usage and API reference sections (dfd0f33)
- test: wait for focus to return before pressing Escape in confirm (152b1fd)
- fix(cli): retry a registry download once when the connection drops (e3db24e)
- test: install every item with both CLIs across a pairwise option set (52246eb)
- feat(docs): show how to keep the suiss style with other registry CLIs (e0256c8)
- fix(ui): write every class where a Tailwind prefix reaches it (471c6c4)
- fix(registry): declare the peers that installed packages need (f410e0e)
- fix(ui): render the same on the server and in every locale (2d9dbad)
- test: add the test matrix and fix focus races in sheet tests (4764463)
- fix(docs): keep accordion and collapsible previews anchored to the top (920f5eb)
Install
npx @esuiss/ui@0.22.0 init@esuiss/ui@0.21.0
Changes
- chore(release): v0.21.0 (c2196a0)
- feat(ui): rebuild the create page with preview boards and an item explorer (1b82bf9)
- feat(cli): add a bare React Native app template (0b16027)
- refactor(examples): spell out examples in plain JSX on every platform (16c637a)
- refactor(mobile): move the examples out of stories into one file each (22a33e9)
- refactor(ui): drop the live native preview bundle in favor of captures (c8aaa88)
- docs: add the registry CLI commands and setup for SwiftUI and Compose (ab4bb5a)
- feat(registry): publish the SwiftUI and Compose items in every style (58583d4)
Install
npx @esuiss/ui@0.21.0 init@esuiss/ui@0.20.0
Changes
- chore(release): v0.20.0 (6a05b12)
- docs(ui): regenerate the StyleSheet usage of pull to refresh (8645216)
- fix(docs): repeat the enclosing platform label only before its content (c96fb41)
- perf(docs): render primitive source previews without highlighting (603eac2)
- docs(ui): note when the React Native tab has more examples (580f861)
- fix(www): name the one open-source component library in the singular (93b1e19)
- docs: describe mobile setup without platform-specific wording (1c8ba0a)
- docs(ui): state per-platform counts in the collection descriptions (9006ec5)
- docs(ui): keep the React Native install steps on their own tab (40a90f1)
- docs(ui): show SwiftUI and Compose usage for toast (3ac0568)
- docs(ui): word native example notes for each platform (14ee08f)
- docs(ui): correct the React Native API tables (cc79a54)
- docs(ui): import the icons the React Native usage snippets use (abff408)
- docs(ui): list every part in the anatomy of panel, command palette, dropdown menu and island (db6445e)
- fix(docs): drop the Base UI install step from the context actions manual (203d43d)
- docs(ui): document the props the Radix and React Aria wrappers add (036c17e)
- fix(docs): complete the SwiftUI and Compose manual setup steps (cb6d265)
- fix(docs): keep the version row inside the add options table (fd3450f)
- fix(cli): list the Phosphor package only when a written file imports it (662eb5f)
- fix(docs): keep web-specific wording out of SwiftUI and Compose API tables (84cb689)
- docs(ui): add the native API reference for aspect ratio and collapsible (4382c90)
- feat(docs): show StyleSheet code for React Native examples with a styling option (af15af0)
- fix(docs): generate complete React Native manual steps from the registry (73aa409)
- fix(docs): swap the builds-on pieces only on the React tab (a486ac9)
- fix(docs): name the primitive bases in the code options and create pickers (82b5205)
- fix(docs): label every base and platform block in the Markdown pages (bd6c64d)
- fix(docs): generate SwiftUI and Compose snippets that compile in an app target (6d8b2c9)
- fix(docs): keep SwiftUI and Compose guidance on their own tabs (f86940c)
- fix(docs): switch the builds-on pieces per base by ignoring the utils helper (816965b)
- fix(docs): append the chosen style only to init commands without a preset (bb73111)
- fix(ui): serve the live native previews from the docs base path (af997cf)
- refactor(cli): keep the font lookup private (0c530d9)
- fix(cli): refuse only structurally broken registry items (ea8380c)
- fix(ui): clear lint warnings in the date picker, calendar, carousel, menubar and questionnaire (78585f6)
- fix(ui): load the live preview frame without a redirect (44e6253)
- fix(site): answer malformed registry paths with 404 and forward only method and URL to assets (e06f316)
- docs(cli): describe apply without a terminal, Theme only and explicit Inter (7abb442)
- fix(create): name the base in setup commands and keep the style in Theme only (568af88)
- fix(cli): restyle an installed button when the base or style changes (c4c5593)
- fix(cli): wire an explicit Inter choice, Pages Router fonts and template-declared fonts (c0f10b6)
- fix(cli): check template flags before creating the app and list every option (72ae548)
- fix(cli): check everything before writing in add, init and apply (9a2b212)
- fix(cli): refuse reserved, overlong and build folder targets and show hidden characters (a0361b9)
- fix(cli): run package managers without a shell and refuse shell characters in ranges (16da52b)
- fix(cli): keep registry downloads on https across redirects (2efc915)
- fix(cli): refuse escaped or remote registry css, unsafe theme values and malformed items (7b4820b)
- fix(cli): keep the preset StyleSheet theme on add (e428087)
- fix(cli): keep the radius and bold menu accent on mobile apply (8ebafbf)
- fix(cli): check icon packages before switching mobile icons (97a0a88)
- docs: tell registry CLI users to align Expo native modules (06fecf1)
- fix(mobile): list the primitives the StyleSheet theme imports (925ef5a)
- fix(mobile): type the timer promises for the React Native timer types (a0ebf16)
- fix(cli): keep translucent menu fills after class merging (efa79ee)
- fix(ui): keep the page scrollable under the open select example (ab3886b)
- fix(site): load responsive previews only once they are shown (e742eaa)
- fix(ui): label the react aria stepper field from its input (aa832da)
- fix(ui): isolate english copy in the right-to-left example (0d4c9b0)
- fix(ui): caption carousel testimonials with figure markup (b3ca02b)
- fix(ui): mark calendar week numbers as row headers and label each navigation (b47cbc3)
- fix(ui): return focus to context menu example triggers (e855610)
- fix(ui): let wide examples shrink and show carousel card edges (4628f55)
- fix(ui): fit the composer toolbar on narrow screens (d40fa24)
- fix(ui): keep one-time code digits in reading order right to left (97e8b09)
- fix(ui): use theme surface fills for vendor inputs and dim only disabled input groups (1874e17)
- fix(ui): open the select open example on mount (1dd20de)
- fix(ui): keep command separators out of the listbox tree (7eda89c)
- fix(ui): name choice card controls inside a field label (d9ab9e5)
- fix(ui): use legible code colors and example accents (d1ea0dc)
- fix(ui): raise primary-on-tint and secondary text contrast (82f541e)
- fix(ui): keep the selected segment label above the indicator in every style (8a217d1)
- fix(ui): keep measured indicator offsets physical in right-to-left styles (b753956)
- fix(ui): use asChild for panel, action menu and command palette triggers on radix (0aaecd1)
- build: allow pages up to 1.75 MB before the crawl size check fails (7ecf50c)
- fix(create): mark an explicit Inter choice in preset codes so mobile installs it (0adbc22)
- docs(ui): drop the icon package step from native items without icons (9d4c1da)
- fix(cli): keep the current mobile style and radius when apply has no style (e17681e)
- docs(ui): describe icon switching on apply and Swift package font resources (515966b)
- fix(cli): keep the mobile icon library and fonts in sync across init, add and apply (4896704)
- fix(cli): theme NativeWind opacity tokens and keep colors on style-only apply (f16c955)
- fix(swiftui): use extended regex literals, drop unused icon imports, find bundled fonts (d776183)
- fix(mobile): emit spreadable shadows for StyleSheet styles without one (2b39c28)
- fix(create): show inverted menus in the preview and tidy the create page (1e516ed)
- docs(ui): describe confirm dismissible for every platform (81cfb79)
- fix(ui): take native api descriptions from the default base first (d7219a7)
- docs(ui): add import lines and per-base usage to ai pages (9d7eebe)
- docs(ui): build pattern and interaction usage from real parts (5cdd742)
- docs(ui): fix react usage and per-base api from progress to widget (2b98edc)
- docs(ui): fix react usage and per-base api from dialog to popover (10f5332)
- docs(ui): fix react usage and per-base api from accordion to context menu (bad053e)
- fix(ui): pad api reference rows that are split per base (c283c13)
- fix(web): install the highlighter hook with code-block (518b548)
- fix(registry): pass the default Next.js lint rules in every base (fc4d693)
- fix(create): preview bold menu accents and multi-word fonts like the CLI writes them (2da0a2a)
- fix(cli): apply create presets on every platform the way the preview shows them (2c46861)
- docs(ui): generate SwiftUI and Compose usage and install steps on native tabs (a3dd730)
- fix(ui): label native screenshots by platform and drop code fallback on other tabs (901725f)
- fix(ui): import Composable in generated Compose example code (3c7448e)
- fix(docs): use the item group in native CLI commands and check every add command (b3d520e)
- feat(site): send security headers on every page (6befc1d)
- fix(registry): keep error responses uncached and answer preflight requests (b40cc21)
- fix(create): accept preview messages only from the parent window (028b3fe)
- ci: pin actions to commits and split release permissions (fb069c0)
- fix(cli): pick the registry ref once per run and require https overrides (4e1b5e7)
- fix(cli): keep registry files inside the component folders (ebe44f4)
- fix(cli): refuse registry styles that load remote files (fecaaac)
- fix(cli): strip control characters from printed registry text (620c9fd)
- fix(cli): refuse option-like package names and end options before them (9bc44e1)
- feat(ui): give the create page its own open graph metadata and image (304fdc3)
- docs(ui): correct the platform and icon claims and document styled native registry urls (03dcb8a)
- docs(code-block): add a footer example and fix the scroll-fade link (f5bdde7)
- fix(ui): link sources from llms-full.txt and drop stale llms.txt claims (6b4f482)
- docs(ai): call the AI items compositions and give the message page its own title (7c6f9e9)
- fix(ui): count the home page pieces from the docs and the registry (28a6b48)
- docs: describe platforms and the system font in neutral terms (a08dfb1)
- docs(cli): document all three commands and check the options against the help (c3cbabd)
- fix(cli): keep --style and --theme out of add (21163c9)
- fix(blocks): render bento features as a server component so icon rewrites keep the file valid (559c447)
- docs(ui): show platform API references on the native tabs (fd0eec2)
- feat(ui): generate native API references from the Swift and Kotlin sources (ede3058)
- feat(create): add a Get code dialog for new and existing projects and the theme (7e289d6)
- refactor(cli): keep the template helpers private (9570921)
- chore(ui): keep native captures only for examples without a web preview (9f1a9bf)
- feat(ui): show the web preview on native tabs when an example has a web twin (7bc8ba3)
- feat(cli): create new apps from ...
@esuiss/ui@0.19.0
Changes
- chore(release): v0.19.0 (a58fa49)
- ci(release): title releases with the package name and version (2f52d6d)
- docs(cli): document the custom primary color option (4baf4d7)
- fix(ui): keep create options inside the preview frame (dba7830)
- docs(cli): document the --primary option (cb22ce0)
- feat(cli): set a custom primary color with --primary (7e31982)
- feat(ui): pick a custom primary color on the create page (d3b580c)
- feat(ui): turn the docs header button into Create (277cdff)
- feat(ui): offer colors, radius, font and menus for native platforms on create (bb7e8bb)
- fix(ui): give the create sidebar rows a background and scroll long pickers smoothly (231f55c)
- feat(ui): rebuild the create sidebar as compact pickers with live preview (7d1caee)
- docs(site): describe preset colors, radius, menus and fonts on mobile (796cd06)
- feat(cli): pass the whole preset to mobile init and reject mismatched gray themes (6485d1d)
- feat(site): offer the icon library for every platform on the create page (bf60261)
- feat(ui): let the docs and create pages span the full window width (f0fda09)
- feat(mobile): apply preset fonts on React Native, SwiftUI and Compose (51f1ffb)
- feat(mobile): offer five icon libraries for React Native, SwiftUI and Compose (a2875fa)
- fix(ui): reserve the scrollbar space so pages without scrolling do not shift (c5d4852)
- feat(mobile): add menu color and accent tokens and apply preset menu options (5dc92d9)
- feat(cli): apply preset colors and radius to mobile themes (fc3a1b2)
- fix(ci): apply the suiss style before the compatibility install (89b7961)
- feat(mobile): add the 21 AI patterns to React Native, SwiftUI and Compose (3b9eee1)
- feat(mobile): add the code block component to React Native, SwiftUI and Compose (d3b4a31)
- feat(mobile): add the trace component to React Native, SwiftUI and Compose (ff4c94d)
- feat(ui): point the home header button at Create (bafc175)
- fix(cli): share one preset decoder and describe styles for every platform (f58f9f1)
- feat(ui): point the home header button at the create page (092ee51)
- fix(www): send the developers button to the ui docs (1ee9d96)
- feat(ui): open the home search as the header panel with page results (0e77989)
- fix(site): keep the fixed header in place when an overlay hides the scrollbar (5e3fd82)
- feat(ui): drop the search field from the home hero (1c0ff8e)
- fix(ui): use the main site tagline above the wordmark (529fff3)
- feat(site): grow the wordmark back while a mega menu is open (ac26958)
- feat(site): open mega menus under the links and keep the wordmark size (bf51b98)
- fix(site): enlarge the favicon dot (dd76e40)
- fix(site): ease the mega menu height when moving between links (43b75f7)
- fix(site): give the favicon dot room inside the icon (fb04bae)
- fix(site): switch between mega menus without the panel bouncing (ff427c4)
- feat(site): use the logo dot as the favicon on both sites (1bfee17)
- fix(cli): drop the heading font marker from added files (2aa6f44)
- feat(site): add a create page for styles, colors, fonts and icons (45cd2c6)
- feat(cli): apply preset codes and the saved icon library and menu color (9495943)
- feat(site): add a style picker to the code options (0d11a6c)
- feat(registry): serve every style from one file per item and add --style (2b87a18)
- refactor(web): move component styling into style markers (9c4a695)
- fix(site): give the header its frosted background once the wordmark settles (c3abb82)
- feat(site): let the header sit on the hero and match the page width (1cd79f1)
- fix(www): serve pages in development without the old locale rewrite (c315577)
- feat(www): drop the Turkish locale and serve the site in English only (199801c)
- feat(site): share one header across the main site and the ui home (d183751)
- docs(site): explain the mobile styles and how to pick one (cdb1a70)
- feat(cli): pick a style with --style or a preset code on init (30e5722)
- feat(mobile): read style tokens in SwiftUI and Compose components (2807800)
- build(web): generate style sheets and check marker output against main (98e7339)
- feat(mobile): add style tokens for nine styles and use them in React Native components (154ee6d)
- feat(web): start style markers with the button (197c375)
- feat(site): add an AI section with 21 agent and chat patterns (162eb40)
- feat(web): add the trace and code block components (0488c03)
- refactor(www): use the shared theme, tokens and theme toggle from the web package (a34ee3d)
- perf(www): draw the home hero with the docs gradient instead of an image (8fddf31)
- perf(www): preload the hero stills for each screen size (8da9136)
- fix(site): tighten titles and descriptions, link the CLI docs and describe suiss/ui for assistants (5cd4604)
- perf(www): serve resized AVIF and WebP images and replace the hero shader with stills (b873592)
- perf(site): load full example code on demand to keep pages under 1.5 MB (674dbf9)
- fix(site): point the docs home canonical at suiss.app/ui without a trailing slash (320e594)
Install
npx @esuiss/ui@0.19.0 init@esuiss/ui@0.18.0
Changes
- chore(release): v0.18.0 (c298998)
- feat(registry): depend on our own utils and default to the suiss style (16d1a7f)
- fix(site): report unreachable sitemaps instead of crashing indexnow (562515c)
- ci(site): deploy suiss.app to Cloudflare with wrangler (f6d6b1b)
- feat: move the registry and docs links to suiss.app/ui (11df8b4)
- feat(site): share robots, sitemaps, icons and structured data across suiss.app (0bb5ff6)
- feat(site): export the docs statically under /ui and serve both sites from one worker (66d59eb)
- feat(www): serve the suiss.app site as a static export from the monorepo (0f833d2)
- feat: re-render product shader stills at 2560px from the original gradient presets (0760eea)
- feat: add dark mode with a system, light and dark theme toggle (4d927ae)
- feat: expand product pages with principles, capabilities, guarantees, standards and FAQs (204fe9b)
- fix: match the product hero height to the home hero and overlay the nav on English pages (c44c732)
- chore: remove the unused install command component (d4c8c3a)
- feat: add the suiss website with product pages in English and Turkish (8d0418f)
Install
npx @esuiss/ui@0.18.0 init@esuiss/ui@0.17.0
Changes
- chore(release): v0.17.0 (7cd2772)
- fix(web): keep the radix navigation menu closed after escape or click (834ca8b)
- test(web): give async waits room on slower machines and retry on CI (fa59b2b)
- chore(web): use example.com for demo addresses (b6d3185)
- fix(mobile): use example.com addresses in block demos (60eb53d)
- docs: describe the localized calendar navigation labels (91d0272)
- fix(mobile): label compose calendar navigation with the localized relative month (dcc9d73)
- fix(registry): take item titles from the docs and keep acronyms upper case (d46efda)
- fix(site): keep only default-base text in markdown outputs (a4548c2)
- docs: drop base notes the shared prop names made obsolete (9d947c7)
- fix(web): clean up dead selectors, exports and example content (329f8a4)
- fix(web): fix small wheel picker, trail, command and lifecycle issues (211cc11)
- test(web): fail browser tests on console errors (476fcb7)
- fix(web): announce chart changes once and drop inert focus stops (fa62d91)
- fix(web): improve focus and keyboard handling in blocks (0fe3756)
- fix(web): generate unique element ids in blocks (6486c50)
- fix(mobile): give the stylesheet theme toggle the same api as uniwind (1fc7f18)
- fix(mobile): scale swiftui text with dynamic type (ffd0354)
- fix(mobile): read current callbacks in compose gestures (2057796)
- fix(mobile): keep component behaviour when callers pass their own props (ecc78bf)
- fix(mobile): harden primitive state, validation and gesture edge cases (7937e63)
- fix(web): guard paged list, undo bar and date picker edge cases (7fc09b4)
- test(web): let the navbar panel settle before closing it (b84c46e)
- fix(web): run consumer event handlers alongside internal ones (bd58cf2)
- fix(web): clear an interrupted theme transition before starting the next (2b8686f)
- fix(web): keep the page raised while any drawer needs it (0a4869f)
- fix(web): give chips, pickers, ellipsis and the mobile nav accessible names (a377dc2)
- fix(web): accept default-base prop names in the third base (4059cc5)
- fix(web): align third-base accordion, pickers, combobox and message scroller (4673c4b)
- fix(web): only set inset and active data attributes when true (6657199)
- docs: note the open prop name on the aria base for the fullscreen menu (2a92a34)
- fix(web): fix right-to-left directions and carousel keys and progress (6a12f0e)
- docs: show the theme toggle and variant examples (5d03622)
- fix(web): default the third-base direction to ltr without a provider (bad87b7)
- fix(site): return 404 for unknown preview and image paths and mark markdown copies noindex (f9f88bd)
- fix(site): record content dates at build time and ship typescript as a runtime dependency (f132fee)
- fix(site): size the source fold from its line count (6624edc)
- fix(site): describe the primitive bases neutrally (9ec5b1c)
- fix(site): switch platform for hash targets and show the active tab before hydration (f51cca8)
- fix(site): include shared sources once in markdown outputs (4611dc2)
- fix(site): drop the install command when the base needs no packages (8e5f757)
- fix(web): support standalone checkbox items in third-base menus (269d618)
- fix(site): copy through a clipboard promise and handle failures (2433235)
- docs: describe the primitive bases, icon libraries and CLI requirements (a00c5d3)
- docs: spell out acronyms in page titles (35684b4)
- docs: document root parts and missing component props (68ba754)
- fix(web): open the third-base preview menu under the preview (0f9e600)
- fix(web): keep sidebar markup stable, pass its props and spare text fields (fd5ef30)
- docs: require Node.js 20 for the CLI (a4e8f30)
- docs: describe the deploy, CI and release re-run flows (aca916f)
- build: run knip on the site and drop its unused dependencies (d4beee5)
- build: drop the release age exception for lefthook 2.1.15 (aac8ae0)
- docs(cli): describe the new add, init and registry behaviour (26d013f)
- feat(cli): remember the primitive base chosen with init --base (9ea08b2)
- fix(web): place third-base tooltip arrows like the default base (cbbd243)
- fix(cli): show in --diff every file --overwrite replaces, on every platform (a46461c)
- fix(cli): detect the package manager and alias the way the workspace sets them (d60423a)
- feat(cli): download the registry from the release tag of the CLI version (2474c94)
- build(mobile): take shared dependency versions from the catalog (3a32088)
- docs: show React Native-only examples on the React Native tab (6fde235)
- fix(web): drop the radio focus ring inside third-base cards (c868905)
- fix(web): style open third-base sidebar menu buttons (d2449e8)
- fix(web): keep third-base tips through scroll and close them on outside press (8aea1dc)
- fix(web): name charts, show their focus and fix chart data (988c9d7)
- docs: match component prose to the current behavior (5ed23b7)
- docs: use current color tokens and base-neutral primitive wording (e5da31b)
- feat(site): show base-specific text for the chosen primitive base (b2fc206)
- fix(web): share the stepper API across the third base (6f8974f)
- fix(web): center third-base slider thumbs on the track (bd78182)
- fix(web): highlight selected choice cards in the third base (0c38c1f)
- fix(web): keep block state per thread, person and draft (fa8139c)
- fix(web): align second-base select, scroll area, questionnaire and popover (67bb807)
- fix(web): align the second-base sidebar with the default base (e906c1c)
- fix(web): accept items on the second-base picker (9805fff)
- fix(web): default second-base buttons to type button (aa6ee86)
- fix(web): measure, size and animate the second-base navigation menu (ae27f4d)
- fix(web): match open-state selectors to the second base (ac01341)
- fix(web): file inbox messages by mailbox and reset the reader per message (4ca1305)
- build: keep generated and native build output out of the image context (185c1ea)
- ci: run the React Native compatibility check weekly (a8e6f35)
- ci: run the checks, tests and native builds on pushes and pull requests (699fdc8)
- fix(web): recover the code field when verification throws (76dce42)
- fix(web): keep stepper precision and honour read only (a9dee5c)
- fix(web): expose button variant and size for group styling (62eb29e)
- fix(web): render one slider thumb for a single value (7068b27)
- build: hash the files outside each package that turbo tasks read (ecc40b7)
- build: regenerate the registries on every source they read and run generate once before push (130d729)
- ci: wait for every replica before purging and submit only changed pages (89888d9)
- fix(web): merge consumer refs with internal refs (815d759)
- ci: fail the release without mirror keys and make it re-runnable (2a6765b)
- docs: list the exact SwiftUI files each manual install needs (997ee6c)
- docs: add the animated view to React Native installs (5e422c7)
- docs: fix the date picker command and badge ring classes (d1b915f)
- fix(site): read the anatomy list through the custom list items (5f1a943)
- docs: recapture the affected mobile previews (92b3036)
- fix(mobile): start carousel autoplay once slides are measured (78e3e9e)
- fix(mobile): centre input text (3f517b4)
- fix(mobile): keep calendar weekdays on one line (5d0cb08)
Install
npx @esuiss/ui@0.17.0 init@esuiss/ui@0.16.0
Changes
- ci: install the mobile registry tools before the release check (0728b03)
- chore(release): v0.16.0 (048192b)
- chore(mobile): rebuild the standard registries with the standard type scale (b6fa92c)
- docs: recapture the mobile previews (30cbd77)
- feat(site): list each base's building blocks in the manual steps (bc7943f)
- test: remove the temporary projects the tests create (21ac6fd)
- feat(site): list each base's packages in install commands (dbf71a0)
- test: import the dialog trigger only for the bases that render it (53c33d8)
- test: require every class to carry the prefix (3e40c79)
- fix(web): derive the block button radius without compound variants (4559cd8)
- fix(web): keep the third base's calendar classes where the prefix transform reaches them (953ba1c)
- docs: add the third primitive base (1e03be3)
- test: install the third base through the registry CLI (53dca5f)
- feat(site): serve the third base's items (80e5615)
- feat(cli): install the third primitive base (c8577a6)
- feat(web): publish the third base in the registry (63a2392)
- test(web): run the examples against the third primitive base (c4e6eb4)
- feat(web): add a third primitive base (687769d)
- ci: run the compatibility matrix (f631f8e)
- test: cover every install option in the compatibility check (92896fb)
- fix(web): keep sidebar and calendar classes where the prefix transform reaches them (7e1b1e6)
- test: install the React Native registries into the latest Expo app (123623d)
- fix(mobile): type refs for the latest React Native (2e54ad7)
- docs: add React Native components with the registry CLI (1506a77)
- test: install the React Native registries into fresh Expo apps (abb2f1c)
- feat(mobile): publish the React Native components as standard registries (8bd31df)
- feat(site): let visitors pick the icon library and primitive base (00e4142)
- test: install the icon data for hugeicons in the compat check (c8ba72f)
- docs: explain the primitive bases (aaff73a)
- test: install the second base through the registry CLI (5c72ad3)
- feat(site): serve items per primitive base (9c3460f)
- feat(cli): install the second primitive base (90eb1fb)
- fix(web): compute the year range on render in the second base's date picker (6ce864c)
- feat(web): publish the second base in the registry (15d2575)
- docs: describe the standard type scale on the mobile pages (48d5f31)
- refactor(mobile)!: use the standard type scale and shadows (729603d)
- refactor(tokens)!: use the standard type scale and shadows (24f7f58)
- test(web): run the examples against the second primitive base (ca2e0f6)
- feat(web): add a second primitive base (fa35dd2)
- test(web): make the example tests independent of the primitive base (ec87ba2)
Install
npx @esuiss/ui@0.16.0 init@esuiss/ui@0.15.0
Changes
- ci: install the registry tools before the release check (8471526)
- chore(release): v0.15.0 (3e783ac)
- docs: install with the registry CLI (f2ae25d)
- test: install through the registry CLI (931470d)
- fix(web): compute the date picker's year range on render (b1bf7af)
- feat(cli): read the standard registry (ab092ca)
- feat(site): serve registry items (80e2f92)
- feat(web): publish a standard registry (b8582c5)
- feat(site): show placeholders as real imports (4431bd8)
- feat(cli): install placeholders as Phosphor icons (64968ff)
- refactor(web)!: use icon placeholders (b63167e)
- docs: describe the standard Tailwind setup (5fd798d)
- test: add a compatibility check (12ea03d)
- feat(cli): add the styles an item ships with to the stylesheet (dcfd289)
- build!: remove @esuiss/tailwind (871d3db)
- refactor(web)!: use the standard Tailwind setup (2f80e78)
- fix(web): mirror the remaining direction-bound motion in RTL (150626e)
- feat(web): mark menu surfaces (3053614)
- fix(web): target the otp container by its data attribute (f968a26)
- refactor(web): import cn from the project utils (846d31a)
- docs: use the standard theme variables on the mobile pages (d85efd1)
- refactor(mobile)!: use the standard theme variables (b68e768)
- refactor(tokens)!: use the standard theme variables (ee8679a)
- fix(web): use a lighter primary in dark mode for readable links (b54a930)
- docs: document the standard theme variables (c8a06cb)
- refactor(site): use the standard theme variables (2711496)
- refactor(web)!: use the standard theme variables (9759f50)
- fix: generate the mobile files before knip and drop example names from markdown (80beda9)
- docs: describe how to add a component, its examples and its page (5b88a9f)
- chore: drop redundant scripts (9497293)
- chore(site): remove the docs generators (e3c4451)
- feat(site): preview examples and read sources at build time (960c228)
- docs: write the component pages as plain MDX (f4a64b2)
- test(web): replace stories with examples and browser tests (29f7bfa)
- ci: roll the site out to the homelab after each image build (7dcd6d6)
- test(web): run the registry builder in a fake repo and run hooks from the root (7a32d92)
- feat(site): replace the hero shader with a static gradient (abcbe0d)
- refactor(mobile): fix the lint findings in the mobile library (b7bf3e6)
- style(site): format the site and fix its lint findings (1dfe8af)
- build: lint the whole repository with one Biome config (3151663)
- docs: name the mobile libraries suiss/ui (85ebdd2)
- refactor: share the registry helpers between the web and mobile builders (9f5ff43)
- test(web): run stories under plain Vitest and remove Storybook (78d3c01)
- refactor(cli): share project, registry and file helpers between web and mobile (266f226)
- refactor: tidy the docs generators and workspace metadata (a136247)
- refactor: let the site read the libraries instead of copies (f663efe)
- ci: publish the site image as ghcr.io/e-suiss/ui (de67723)
- docs: shorten the README and move development notes to CONTRIBUTING (4f2b8d6)
- docs: name Next.js, Vite and Expo in the README and on the site (9bbeeec)
- docs: describe all four platforms in the README (074e5fe)
- fix(ci): skip the git hook setup when installing in the site image (f968719)
- ci: build the site image on GitHub and push it to GHCR (3fb8958)
Install
npx @esuiss/ui@0.15.0 init@esuiss/ui@0.14.0
Changes
- chore(release): v0.14.0 (1b9c342)
- docs: describe all four platforms on the home page (49503e3)
- feat: merge the mobile docs into one suiss/ui site with platform tabs (d88f22a)
- build: turn the repository into a pnpm workspace (89637ae)
- chore: remove the design sync tooling (30561b5)
- build: bring the mobile library and the sites into this repository (00e9858)
- docs(uim): use the @esuiss/ui CLI (f14fd73)
- docs(ui): note that the CLI also adds the mobile components (c9cfd6a)
- feat!: move the CLI to @esuiss/ui (c8b5c80)
- feat(uim): live web previews for the first components (778600e)
- fix: keep modals in place while they close (8dec143)
- feat: render single stories on the web for docs previews (71e0474)
- docs(uim): show pattern overlays open in previews (004f550)
- docs(uim): drop the wide split view examples (b6b3484)
- docs(split-view): drop the wide stories (d99e37e)
- docs(uim): recapture overlay, attachment and other previews (fc06ac5)
- docs(uim): sync attachment and popover sources (022e0ef)
- feat(uim): play carousel previews as video (9e99e28)
- chore(catalog): add snapshot, demo and open deep links (911c367)
- fix(popover): hide the system shadow in dark mode on iOS (7d11191)
- feat(attachment): leave the empty drop zone unfilled (5fee7c8)
- docs(ui): sync blocks, charts, tip, split view, fullscreen menu and story changes (0ab2ef6)
- fix(ui): fill story and block preview frames and let components hide their scrollbars (83f66fb)
- fix: wrap docs pages in suspense so navigation stays instant (f86fbdc)
- feat: show the footer only on the home page, move the theme toggle to the header and add back to top under the table of contents (8e337dd)
- docs(ui): sync sidebar, tab bar, tabs, toast, wheel picker, attachment, stepper and modal overlay changes (6e4b312)
- fix(ui): fill fixed-height story previews and keep the docs background behind inset sidebars (0a493d0)
- fix(ui): sync the inset scrollbar (7521661)
- fix: sync the sidebar inset tint fix (5e94c82)
- fix: keep the docs background when a page shows an inset variant (7168829)
- feat: search pages instantly from a prebuilt index in the command dialog (fa4c924)
- fix(ui): render the meta render of stories that have none (dc4d950)
- feat: scroll code blocks in a thin scroll area and keep the copy button clear (cfa90fb)
- feat: route unknown docs paths to the not-found page (4ddcc7b)
- build: cache the dependency layer across both apps (04c3064)
- build: install dependencies before copying the source (8806e9b)
- perf: render example source on first request instead of at build time (4ac3b27)
- docs: describe picking what to add from a list (cbc1c0b)
- fix: hide the THREE.Clock deprecation warning from the gradient (8b781ce)
- chore(release): v0.6.0 (b205a69)
- feat(cli): pick what to add from a list when add gets no names (5f3a109)
- build: read deploy credentials from .env.deploy (c231fb2)
- docs(uim): add SwiftUI and Jetpack Compose setup pages (bf0fd7a)
- feat: add a one-line summary to each library page (4a0c202)
- build: purge the Cloudflare cache and ping IndexNow after deploy (271e04b)
- feat(uim): list SwiftUI and Jetpack Compose in the site metadata (a3ddabc)
- feat: describe each library in the homepage hero (d2bbfdf)
- feat(ui): list the library collections like the uim homepage (28dd83b)
- fix: keep a space between the footer heading words (5684efe)
- feat: add page dates, alternate site names and IndexNow submission (ac1759b)
- feat: load example source on demand (63672b1)
- docs(uim): sync pages, previews and prose with the latest uim (c2abf93)
- feat(uim): add SwiftUI and Compose tabs to the manual install steps (f6dabab)
- feat(uim): credit the author in the footer (976d4dd)
- fix(uim): hide the scrollbar on tab rows (ad3bee3)
- chore(release): v0.5.0 (eded920)
- fix(swift): remember every section the section index has seen (0d3a062)
- fix(catalog): keep the section index story out of the catalog scroll view (17eb7bb)
- fix(catalog): let scrolling stories own their scroll view in the swift catalog (af4aa19)
- feat(swift)!: use the system dynamic island through a live activity widget in the catalog (be1057e)
- fix(swift): stop the tab bar layout loop when measuring the bottom inset (3351ca0)
- feat(catalog): toggle light and dark with one tap in the swift catalog (4b65887)
- fix(swift): open anchored popups under their trigger when opened after load (fa8d945)
- feat(swift): animate charts in like the web library (ed71e5b)
- feat(chart): animate charts in like the web library (dedb9f0)
- fix(blocks): make the bag review rows compact (96a1d5a)
- fix(stepper): show a button at its limit as disabled instead of hiding its icon (d6b8859)
- feat(stepper): inset the buttons inside the field (34a6af3)
- fix(reorder-list): keep the list's shape when lifting and smooth the drag and drop (e285761)
- fix(preview-menu): center the preview with its menu and smooth the open and close (70dd94f)
- feat(swift)!: slot-based island over the hardware island in its own window (8bfa3da)
- feat(island)!: slot-based island api with minimal state and camera-aligned compose island (ed95e04)
- refactor(patterns)!: remove segment-picker in favour of picker and toggle-group (784ad05)
- refactor(patterns)!: remove flyout, modal and panel in favour of drawer (0259bc8)
- fix(date-picker): size the trigger to its content instead of a fixed width (6af311a)
- refactor(patterns)!: remove action-menu in favour of alert-sheet (8d92ea9)
- fix(stories): give the date-time wheel picker day column room for long dates (d0bb9fc)
- feat(toggle-group): slide the segmented selection like tabs (f96b72f)
- docs(uim): regenerate pages with native example code (8139b81)
- feat(uim): show SwiftUI and Compose code next to every example (4bff791)
- fix(uim): follow nested helpers when extracting story examples (b924ee8)
- feat(theme): add circle, rectangle, polygon and blurred theme switch effects (241c508)
- feat(tab-bar): float the tab bar as a capsule above the page (824ed3b)
- fix(bubble): keep the react native bubble tail flush with the bubble edge (0383c64)
- fix(swift): round inputs and selects at their button group edges (58be2f2)
- fix(compose): keep the select chevron at the trailing edge and size it to its content (e44a0d9)
- docs(uim): add pages for every component, pattern, interaction, chart and block (6324144)
- feat(uim): add light and dark iOS previews for every story (9b46904)
- feat(uim): add the registry page generator and preview components (8651fd6)
- fix(ui): convert Code blocks with expression props in Markdown output (10cc7af)
- feat(qr-scanner): redesign with rounded corner brackets and a bottom torch (d37f57e)
- feat(catalog): add a back button to full-screen compose stories (92749c3)
- fix(compose): fade anchored popups without clipping their shadow (463d0a5)
- fix(compose): keep the bubble tail flush with the bubble edge (5e61e2a)
- fix(compose): round inputs and selects at their button group edges (b004161)
- feat(cli): detect the platform from the project and ask when several are found (b68d752)
- chore(release): v0.4.0 (39e0df3)
- feat(cli): copy swiftui and compose sources with --platform (11b1ce2)
- ci: publish the kotlin library to uim-kotlin on release (77c0dd7)
- refactor(swift): move the swift package into swiftui and publish it to uim-swift on release (d2b9f8e)
- fix(swift): stop selection bar loop and fix tip side, header back label, popup position and fab (e1c4dc5)
- fix(compose): keep open drawers open and fix fab, chart ticks, theme text and picker labels (d903929)
- feat: add every story to the compose catalog (c5a25f2)
- feat: add every story to the swift catalog (94c9f6c)
- feat: add swift and compose catalog apps (813904e)
- chore(release): v0.3.0 (b365311)
- fix(cli): limit parallel downloads when adding many components (23e3d09)
- feat: add radar charts (f9b39c7)
- feat: add chart base, line, area, bar, pie and radial charts, and dash blocks (226e085)
- feat: add health, inbox, log, user and role admin blocks (dd9518c)
- feat: add chat, bag, pricing, product grid and category blocks (56fe569)
- feat: add sign in, sign up, verify, settings, empty state, onboarding and permission blocks (770e7e2)
- feat: add questionnaire, theme, widget, island, qr scanner, signature pad and card stack (9aa3dd9)
- feat: add carousel, tab bar, section index, preview menu, split view and image viewer (5a0f950)
- feat: add bubble, message, attachment and message scroller (d431b64)
- feat: add keypad, pin pad, amount input and otp autofill (c6dd528)
- feat: add haptic feedback (6491047)
- build: build the docs images natively and ship the OG fonts (d395391)
- feat: add screen, keyboard, header, bottom bar, chip, fab, reorder list and top banner (8c3acfe)
- docs: describe the library for search and link the documentation site (7173866)
- fix: use the suiss.app domains for canonical URLs (a073821)
- docs: add a README for the docs workspace (51fb99e)
- build: pass the public site URL into the image build (1e9bb0f)
- feat: add SEO metadata, Open Graph images, llms.txt and Markdown docs output (fad463f)
- build: add a container image for the docs apps (b7646b2)
- feat: add button group, selection list, action bar, undo bar, tip, search reveal and paged list (de2aca6)
- feat: add the uim docs app (61f5b38)
- build: set up a Turborepo workspace (f2fcf3b)
- refactor: move the docs site into apps/ui (ca15721)
- feat: add wheel picker, calendar, date picker, segment picker, stepper and search picker (7ace28f)
- refactor!: remove keyboard shortcuts from menus (8f74f2b)
- refactor!: remove hover color tokens (bcf57b3)
- refactor!: remove components without a mobile counterpart (b800ad6)
- feat: add list, sheet and refresh components to swiftui and compose (d9b57b7)
- feat: add list, sheet and refresh components (21403e7)
- chore: support pattern, interaction and block folders (8675489)
- feat: add every component to swiftui and compose (6055bba)
- fix(c...
@esuiss/ui@0.13.0
Changes
- chore(release): v0.13.0 (47a026a)
- feat(cli): add React Native, SwiftUI and Compose components (f25e805)
- fix: keep modals in place while they close (1ba6a74)
- docs(stories): fit pull to refresh and section index and make the trail navigable (bf4b825)
- fix(fullscreen-menu): hide the scrollbar and stop sideways scrolling (29efc28)
- fix(split-view): keep the page in place when moving between panes on a phone (c700b89)
- fix(tip): use a dark shadow in dark mode (5ad3977)
- feat(chart): animate the active bar chart in (d9678c6)
- fix(blocks): match the global nav panel color and show the local nav background in any scroller (97079b3)
- fix(blocks): focus the login sheet without scrolling the page (8d141e1)
- fix(blocks): fit settings notifications on phones (fdfbe01)
- refactor(blocks): use a plain sidebar instead of the app shell in admin and dashboard blocks (1849644)
Install
npx @esuiss/ui@0.13.0 init