Toggle Count
Theme-aware, responsive toggle count component.
Toggle Password
Accessible password field with optional show and hide controls.
diff --git a/bun.lock b/bun.lock index 80579254..e3092177 100644 --- a/bun.lock +++ b/bun.lock @@ -237,7 +237,7 @@ }, "packages/auth": { "name": "@wrnexus/auth", - "version": "0.8.32", + "version": "0.8.33", "dependencies": { "@wrnexus/authz": "workspace:*", "@wrnexus/captcha": "workspace:*", @@ -322,7 +322,7 @@ }, "packages/cli": { "name": "@wrnexus/cli", - "version": "0.8.70", + "version": "0.8.71", "bin": { "wrnexus": "src/index.ts", }, @@ -350,7 +350,7 @@ }, "packages/compiler": { "name": "@wrnexus/compiler", - "version": "0.8.29", + "version": "0.8.30", "dependencies": { "@wrnexus/csr": "workspace:*", "@wrnexus/store": "workspace:*", @@ -368,11 +368,11 @@ }, "packages/core": { "name": "@wrnexus/core", - "version": "0.8.15", + "version": "0.8.16", }, "packages/csr": { "name": "@wrnexus/csr", - "version": "0.8.40", + "version": "0.8.41", "dependencies": { "@wrnexus/core": "workspace:*", }, @@ -387,7 +387,7 @@ }, "packages/dev-server": { "name": "@wrnexus/dev-server", - "version": "0.8.65", + "version": "0.8.66", "dependencies": { "@wrnexus/authz": "workspace:*", "@wrnexus/cache": "workspace:*", @@ -590,7 +590,7 @@ }, "packages/payment": { "name": "@wrnexus/payment", - "version": "0.8.8", + "version": "0.8.9", "dependencies": { "@wrnexus/db": "workspace:*", "@wrnexus/plugin": "workspace:*", @@ -621,7 +621,7 @@ }, "packages/pwa": { "name": "@wrnexus/pwa", - "version": "0.8.11", + "version": "0.8.12", "devDependencies": { "@types/bun": "^1.3.14", "typescript": "^6.0.3", @@ -704,7 +704,7 @@ }, "packages/ssr": { "name": "@wrnexus/ssr", - "version": "0.8.11", + "version": "0.8.12", "dependencies": { "@wrnexus/core": "workspace:*", "@wrnexus/security": "workspace:*", @@ -717,7 +717,7 @@ }, "packages/styles": { "name": "@wrnexus/styles", - "version": "0.8.22", + "version": "0.8.23", "dependencies": { "@wrnexus/core": "workspace:*", "@wrnexus/plugin": "workspace:*", @@ -730,7 +730,7 @@ }, "packages/test": { "name": "@wrnexus/test", - "version": "0.8.15", + "version": "0.8.16", "dependencies": { "@wrnexus/core": "workspace:*", }, @@ -749,7 +749,7 @@ }, "packages/ui": { "name": "@wrnexus/ui", - "version": "0.8.82", + "version": "0.8.84", "dependencies": { "@wrnexus/core": "workspace:*", }, @@ -784,7 +784,7 @@ }, "packages/viewer": { "name": "@wrnexus/viewer", - "version": "0.8.12", + "version": "0.8.13", "dependencies": { "@wrnexus/block-editor": "workspace:*", "@wrnexus/plugin": "workspace:*", diff --git a/docs/ui-component-audit.md b/docs/ui-component-audit.md new file mode 100644 index 00000000..9bf17a30 --- /dev/null +++ b/docs/ui-component-audit.md @@ -0,0 +1,58 @@ +# Component showcase audit + +Reviewed all 102 component routes for loading, empty examples, and desktop page overflow. This is a route and rendering audit, not exhaustive testing of every prop combination. + +Corrections include: + +- Corrected the showcase's Tailwind source paths so package-owned icons are generated. +- Reduced advanced select and PIN input sizing and corrected search icon padding. +- Restored grouped combobox options and verified selection. +- Defaulted ToggleCount to its first valid choice and supplied meaningful monthly/yearly examples. +- Made the password leading icon optional without reserving empty space. +- Added populated accordion examples with plain, bordered, and separated layouts, plus start/end indicators. +- Corrected badge examples and theme-aware soft/outline colors. +- Normalized structured playground defaults, including tables and time pickers. +- Preserved server-rendered composite previews during hydration and subsequent playground updates. +- Supplied splitter pane content and made output observation compatible with both runtime registry forms. + +Validation includes component/showcase tests, compiler and accessibility checks for 201 example pages, production showcase build, browser interaction checks, and responsive checks. Visual-contract checks compare source hashes, not screenshots. + +## Follow-up review: component surfaces and playground + +Reviewed all 102 sidebar routes in order, inspecting the rendered examples for missing icon masks, empty content, and horizontal overflow. This is a structural pass, not exhaustive testing of every prop combination. Manually checked the reported accordion, alert, avatar group, button group, card, and carousel surfaces, plus numeric playground interaction and prop updates. + +- Playground input/change refreshes are restricted to the settings form. Interacting with the component no longer replaces its state. A regression test checks both paths. +- Sidebar active state refreshes on client navigation and scrolls the active entry into view without scrolling the page. +- Accordion answers align with trailing indicators, and separate panels no longer get a second outer border. +- Alerts use concise examples with zero or one action and theme-aware text colors. +- Avatar groups have named members and role details for hover/focus; overflow counts stay on one line. +- Button groups include their own button foundation and correctly update selected state. +- Cards no longer receive generic group arrays by default; group content has padding and responsive columns. +- Carousel supports `framed=false` by default and `framed=true` explicitly. Unframed removes the outer surface as well as the viewport border. Image captions have a contrast overlay. +- Preview grid children can shrink within their panels; password popovers and breadcrumbs respect their container width. + +Validation: 243 UI/showcase tests passed; 201 example pages passed compiler, accessibility, and formatter checks. Browser interaction checks cover numeric value persistence, settings regeneration, accordion expansion, button selection, carousel next-slide, and avatar focus details. Integrations that need external providers and every optional prop permutation are not covered by these checks. + +Phone-width review: all 102 pages fit the viewport at 390px. Fixed inner overflow in password requirements and pagination. Verified light/dark stylesheet switching and saved appearance preferences; added a regression for switching before the theme runtime loads. + + +## Catalog and interaction update + +The catalog now separates 84 primitive components, 14 blocks, and six standalone examples. `/preview` and `/templates` link to working pages with copyable source; the legacy design-system routes and four requested shell components are removed from the showcase. Package exports remain compatible. + +Rebuilt Rating, StyledIcon, ListGroup, DragAndDrop, DataMap and the basic rich-text editor. Map demonstrates an image-backed office plan with markers and zoom; it is not a geographic tile service. DataMap is an activity heatmap. These examples require no third-party provider. + +Fixed anchored calendar/time overlays, datetime selection, controlled modal rendering, table page-size selection, optional clipboard labels, input icon placement, slider alignment and stateful stepper navigation. Existing keyed rows stay attached when notifications are appended, avoiding animation restarts. Added image and headerless card examples and meaningful chat, tree, chart and upload data. + +Validation: 380 UI, showcase and CSR tests pass; 211 example pages pass compiler/accessibility/formatter checks; the showcase production build succeeds. Browser checks confirm external modal open/close, anchored calendar, rating selection, list reordering/editor input, right-click menu, table size 25 with matching selected item, gallery routes and sidebar active state. These checks do not cover every optional configuration or external provider integration. + + +## Follow-up: controls and gallery separation + +Added fractional Rating and RangeSlider examples, named Card header/footer slots with visibility controls, custom TimePicker within DatePicker, calendar completion/outside dismissal, implicit switch label association, native search-clear suppression, multi-file names, interactive LegendIndicator, bar/line Chart data props and expanded rich-text formatting. Centered modals use data-modal-close for custom dismissal buttons. Confetti now uses a canvas particle burst with reduced-motion handling. + +Map defaults to an OpenStreetMap geographic embed; Google Maps supports an Embed API key, query, coordinates, zoom and map type. The showcase allows only the two provider iframe origins. Google rendering still requires a user-supplied provider key. + +Examples and Blocks now use a gallery layout without a documentation sidebar. Templates provide four distinct product starting pages: dashboard, commerce, marketing and productivity. Removed the legacy v0.6 sidebar group, placed Advanced Forms after Tables, and added practical code to installation/customization/accessibility guides. Playground code initializes from the actual controls and array props use state bindings. + +Browser checks include calendar Done, nested custom time updates, switch label toggling, centered modal dismissal, loaded geographic map tiles, and visible canvas confetti. Production preview avoids development refresh resets during review. diff --git a/docs/ui-design-refresh.md b/docs/ui-design-refresh.md new file mode 100644 index 00000000..54f84d10 --- /dev/null +++ b/docs/ui-design-refresh.md @@ -0,0 +1,47 @@ +# Compact application design + +The UI package now uses a quiet neutral canvas, compact application headings, +consistent controls, and layered charcoal surfaces in dark mode. Marketing +display typography remains available through Hero and MarketingSectionHeader. + +## Shared defaults + +- Control heights: 32px small, 40px default, 44px large; larger targets on coarse pointers. +- Corners: 6px controls, 10px panels, 12px dialogs. +- Flat cards and metric panels, with elevation reserved for overlays and explicit variants. +- No global entry animation or automatic hover lift on every button and linked article. +- PageHeader and SectionHeader use application-scale headings. +- DatePicker aligns days to weekdays, respects month length and date bounds, and supports arrow keys and Escape. + +Configure `radius-sm`, `radius-md`, `radius-lg`, `control-height-sm`, +`control-height`, `control-height-lg`, `space-panel`, and the existing semantic +color/shadow tokens through `theme.themes`. Geometry and elevation are no longer +overwritten by a second global token declaration in the generated stylesheet. +Existing names, slots, and events remain available. MetricCard's default hover +is now `none`; use `hover="lift"` to retain the explicit elevated treatment. + +## Review pages + +Run the component showcase and open: + +- `/design-system`: composed workspace overview and invitation dialog. +- `/design-system/profile`: profile form and preferences. +- `/design-system/login`: quiet split sign-in layout. +- `/components/date-picker`: calendar variants and controls. + +The preview uses sample data and never sends invitations or sign-in requests. +Light and dark buttons use the native theme stylesheet switcher. The showcase +generator preserves the navigation link; these three authored pages are not +generated or overwritten by it. + +## Adopting the refresh + +Consumers receive the shared component styles and theme defaults when they adopt +the updated packages. Review application overrides for large headings, nested +cards, generous gaps, and hard-coded colors. The example showcase, CRM, and basic +application styles have been adjusted here. The deployed Account application's +page source is outside this repository and still needs its own layout migration. + +Validate light/dark, narrow viewports, keyboard interaction, long text, and custom +theme overrides before refreshing the visual-contract baseline. That contract +is a file-hash check, not screenshot comparison. diff --git a/docs/ui-visual-contract-0.8.json b/docs/ui-visual-contract-0.8.json index 51d40dd0..5f9d06b1 100644 --- a/docs/ui-visual-contract-0.8.json +++ b/docs/ui-visual-contract-0.8.json @@ -2,109 +2,109 @@ "schemaVersion": 1, "releaseLine": "0.8", "artifacts": { - "packages/ui/components/Accordion.wrn": "09251f76a2f9385e97eb67e06c0cf868e1771ac5f420647221bec5160287034b", - "packages/ui/components/AdvancedSelect.wrn": "6dff7bf66a141e9d06e82d638bec3646ac5a0601f5a2145fabf281a1363edc36", + "packages/ui/components/Accordion.wrn": "f3480c567498f9a26a3441f4e96f47034b80422062fe8484b9957286f4a2fec1", + "packages/ui/components/AdvancedSelect.wrn": "ab75393f1f21654da43004267cd039e51a92aac0dd8bdf7a970f8b7830159ce9", "packages/ui/components/AnnouncementBar.wrn": "ecf85f5a050ef1afa193d85aa6acdb31638e48191594ddcc4f51cad4a77935dd", "packages/ui/components/AuthForm.wrn": "9e65faa7780d75abae2f1fe4a2333f4134840bca6c66b7411979d770f9050bc2", - "packages/ui/components/AuthSplitLayout.wrn": "724938921bc38cc5a0422de69c237b630f099f2df94c66977362b048e4a420a5", - "packages/ui/components/AvatarGroup.wrn": "30b702e06a1adff8b9bae32820206020e086a69560cbdcbadb19f04f25951f97", + "packages/ui/components/AuthSplitLayout.wrn": "f29a8f374007b7342d6946d7c57e631abb9730f4d952942606b9b1cf67612c38", + "packages/ui/components/AvatarGroup.wrn": "96a3ac42b72854449a89fcb87e62c616f78315d630ed9fa5da1e61db4c2a13ce", "packages/ui/components/BackToTop.wrn": "d4b8d1fd37ff26c89b4276ce54ce6ac9581dc2ff8bbcbe160e072778bba76eab", "packages/ui/components/Blockquote.wrn": "bc1ce41a5986a563072639e7f641d55b47816a8ec615169fe329c7a3ee24a16e", - "packages/ui/components/Breadcrumb.wrn": "16907a6fe84740be2a17de7514237e8250f2cad40c09605c77a45fa53fdf3f63", - "packages/ui/components/ButtonGroup.wrn": "fc23565ad56bd8483fcb777d9e02ccba2f9ea476c085754d42503bb83b718f72", + "packages/ui/components/Breadcrumb.wrn": "2f1a48a0b3fe1d5e8c36ee5929a034cb6ed4c4f6fb7031085829f20c4aac008e", + "packages/ui/components/ButtonGroup.wrn": "b841e02296f90e86ffea6573a6f3824d04b51cc8e5e822c7a29fcc0661e6fca2", "packages/ui/components/CTASection.wrn": "f6872b980432d5ee9d88388250be9838ccce51bd706349b283ef472ee692b237", - "packages/ui/components/Card.wrn": "be8cd6a438d1ede4c284a302b76f0fbc235a2423b83a7ced21131763fecc8a90", - "packages/ui/components/Carousel.wrn": "e7d921f802aa19210f3f415b59b70750a2c8d78e30684ad334809741c70a6bf9", - "packages/ui/components/Chart.wrn": "07bc01247b5a1c2b82c2ba8386b7fcdbf480efead75d52b7da04d471072c7ee4", + "packages/ui/components/Card.wrn": "08849755d68b067e8b14275d97a65cd93a74932ca1c8f0daa4e042cdf049e471", + "packages/ui/components/Carousel.wrn": "f3f2d70709fb25185ac6546ea5b6d394362bd2e0623e1462c439fba9a25e5f37", + "packages/ui/components/Chart.wrn": "80ef5b8e0e79ad494b3d21aedf36e01bffe9a50e4f43c0bd5af083efc11a5cab", "packages/ui/components/ChatBubble.wrn": "d71f7d6567d76ac0eb3ecc8e2e567fec12bb3236ea05f4d0a72286abc0b7cbb1", - "packages/ui/components/Clipboard.wrn": "76bf670f985e6b92a1b9cda746039cff407e6137e27f68fd1d43c5ff16134f22", + "packages/ui/components/Clipboard.wrn": "3de4c3d6e94472651fe241ae20f0e37f2cd6d82b3bbae86ba155d8a3ba1b955e", "packages/ui/components/Collapse.wrn": "26df087a61c82f1aa1749785f4c9be654c4f934859c1a47acfcb8cc67eecc75d", - "packages/ui/components/ColorPicker.wrn": "ccac7eb49c0f443b404004f1298fa905fde45c52b51466194920939c920348c9", + "packages/ui/components/ColorPicker.wrn": "bc55991a3d98d2018a0c9c125f399d519a7240d7a3c769460500b70ca7f6bf3a", "packages/ui/components/Columns.wrn": "8ccd9e53f6799b09f8b996740d12e4e73ee782f6fd3e57595c6c16f788b9b812", - "packages/ui/components/Combobox.wrn": "58488dbb60e41dacbf223afdb4a05abdbec53b7f54cd79a0db659add7057b1c1", - "packages/ui/components/Confetti.wrn": "0e81426a3ee8aff672385a5466cf96085c25ba17677a2fef432bcddf13f4d58e", + "packages/ui/components/Combobox.wrn": "e6f2ecf84213e3c4343154a3d1b7a9bc46ec5121855cb9fe65b105edd73c261d", + "packages/ui/components/Confetti.wrn": "0d3c36e77ac49f23bc02bfc8f338a034348c174e25bbc6a34f70310ccabee7b9", "packages/ui/components/Container.wrn": "61c895a9cc0e02d314392e94226bddfae2b8fad074e30a68ba935e6ec9549ea6", - "packages/ui/components/ContextMenu.wrn": "1b078b9ac20ce2561167b0e14cec1fc26704c251d7a25021b45e51e1b980946e", + "packages/ui/components/ContextMenu.wrn": "0c505787136a608097ba996b0c5e1be45b20be136a00611ec720a5d2c728c91c", "packages/ui/components/CustomScrollbar.wrn": "2a3a2719580c21823d079c92ebb000c7a5a7d9d16e3fa9275b8fb7d4449cb437", - "packages/ui/components/DataMap.wrn": "338f0d0a3307289dd0387b7fe7ba631fa0b65b6be8c7b9ee3feb2203306f76a3", - "packages/ui/components/DataTable.wrn": "e929fdb4e59613878a03fb6a11e09c42f773c06ca7b20e43ae16a266835f2af4", - "packages/ui/components/DatePicker.wrn": "cefbbb2abb57ad4c57864a0c65589592a20f9ea1695f9fc7693c3135dd82e71a", + "packages/ui/components/DataMap.wrn": "cb6da3ab064ea62ef14a30af42344ca1bb1dd816fec7aea520cbe47133f539ff", + "packages/ui/components/DataTable.wrn": "eceac58d7f007066108016cbc196faf381d5a84e4f5f23d2feda217182996248", + "packages/ui/components/DatePicker.wrn": "07b2685e311eb8211f81a99a28553783d19b1cd99e4cec591fe4f4953ac3fe6b", "packages/ui/components/DeviceFrame.wrn": "c38d25419ee44b05d7c443cc4e854aeeb7a53a9289e374d71834de2dd2e4d979", - "packages/ui/components/Divider.wrn": "bfa36cf16ccd48c996bb0b08a438f1b281ea1811049ed69fc7680925b1eba019", - "packages/ui/components/DragAndDrop.wrn": "84305f07d43cdb9eff1f63c19458d88b0aec013424d05a49a2cafbecedc60513", - "packages/ui/components/Drawer.wrn": "8e65742cda766cbac995798a2a44c21d91d35d2e871d7cee5028e3372406c0b2", - "packages/ui/components/Dropdown.wrn": "39842607c9769bb75bb9f027ce16cb9cdbd3b108dfe11f81025b54d54558946e", + "packages/ui/components/Divider.wrn": "f806d899bfd2d0b6e40aa226919101002704ddbddf0ee0b5b6a56c2452693660", + "packages/ui/components/DragAndDrop.wrn": "86382288ca2bccd8aa853490186fcf3b07e7850587fd0fe5829fd40590b82cc3", + "packages/ui/components/Drawer.wrn": "d11c11631b5a6779df1db987dd2da9125202237e5f378d6645dd260809f80cb6", + "packages/ui/components/Dropdown.wrn": "4649fa306fe4cd6ced3a8a3b7d46e2d835d7cae0335ee8fce0632ff87fc548c9", "packages/ui/components/FeatureCard.wrn": "39d89caab070b2b9ecb554ec6d83aad90aeb5b0daa8ab7c8b2f3c7f9e3350077", "packages/ui/components/FeatureGrid.wrn": "af2ff8f8c806091cb5cff3d93c7b121b73a6580ac5c9be3ab357355a09084096", "packages/ui/components/FeatureIconCard.wrn": "5f65d64235babc3e653a5695204412202015e6f3ffadca566fc18c7f9ce70428", - "packages/ui/components/FileInput.wrn": "611047c362458a4e2513b741cc3ef43fbe54c10ddafc13775e4ff39c9de34931", - "packages/ui/components/FileUploadProgress.wrn": "ba00557afebf60e6221385d6efcf08635789328deee6e551fc53fbb71e1f413b", + "packages/ui/components/FileInput.wrn": "3071a9231ce3c42555a30ad246841bc5d3a00b2a5475b403ecd5b33130ebadf5", + "packages/ui/components/FileUploadProgress.wrn": "645b0c4ce031fdbd70e8534d95d1b8d46fff9f67f5d90d2a7c125a6c656b3584", "packages/ui/components/Footer.wrn": "4df610f3f57950b43738c305e8100464326e094140013673d723f3454297f1da", "packages/ui/components/Grid.wrn": "83d4f5f2656d539538723f5791ba3c238901432e9d8c55c74f068d3eb5a74517", "packages/ui/components/Hero.wrn": "d0311f566a1ffdfb97a8b05c58bce738e3147fe5a3208cb2ef6968e6e178e8d1", "packages/ui/components/HeroActions.wrn": "67cd31400ccb6abdbbf16219267dee946b44b064b79f25276d20ceb7d6e8a790", "packages/ui/components/Image.wrn": "361179c478d7674c3b998891a366d73de9514fc6cc8786440c6c50b9ef065357", - "packages/ui/components/InputGroup.wrn": "9e259d15207500d07ff626f09c2e2f5eaf4e471f805a7bdbec154b1a23ce0f8d", + "packages/ui/components/InputGroup.wrn": "a0f570a350b32ffbe9bbeb81a32afab2966ccc5232b3affed4cba2f2a1e7b05e", "packages/ui/components/InputNumber.wrn": "069195cc483f3f7d6f305d03fbe5a821906a030376fafb6f0d969e4c95b68fd0", "packages/ui/components/Kbd.wrn": "6b402cb93f0fa76bb978d1ba483215f70ec7214b1c5e84b568fa3e26e87ed9d9", "packages/ui/components/LayoutSplitter.wrn": "41d070e801a271552023e4392e4c0f67327c61e2e8eaee5f8b87af254b1d79c1", - "packages/ui/components/LegendIndicator.wrn": "b2b75a2a5edc20a326c2047d4c81b9cd3f319292a1eec5f4abd5cbafc0677d71", + "packages/ui/components/LegendIndicator.wrn": "b01886495cd54be2c3e8ffbe99cfd5d12b4e0e35f5e4134041d45f4ed6057ff8", "packages/ui/components/Link.wrn": "13f9d6b403440f4b3c3a9ce4dbefa0d5570eb30ff93f498e49f18baab3e08c1d", "packages/ui/components/List.wrn": "5bd7d0b12b2f7dbf730db4030c6e20c6617b0933c1341428bbd6bcdab9ab6073", - "packages/ui/components/ListGroup.wrn": "eb7eca762101ea873fd6fa2f12f427580130fba3b21c0448a551b0452997dc92", - "packages/ui/components/Map.wrn": "3e6d5de5a21dd050c5c65950d6fb2f89af4024e1856a48f055b65b88fcd7b890", + "packages/ui/components/ListGroup.wrn": "dd52c1f564b8ef3293269b3aab15b72ca737c8ce9866d0070574ca5469aae82d", + "packages/ui/components/Map.wrn": "f09651baad892640a8d822c7f13541311b3de7f6259252bfacf937580fab3a44", "packages/ui/components/MarketingSectionHeader.wrn": "39b79499b77dc1c7d34e4e5ecb45a9ddc6182f78c2a2586671c4fa07f44679ad", "packages/ui/components/Marquee.wrn": "81cd80732be34c8d7e4bf28b00347e1a9273166afdf66589d9f5d5774b69403b", "packages/ui/components/MegaMenu.wrn": "3f37ee6b7c0d14bf550e8c828f1902be86969969354307efe5b61c1d727ce942", - "packages/ui/components/MetricCard.wrn": "513a6e99be3d9db46d96af9942b51331a0a048b184603e77e814506f0a52bdc5", + "packages/ui/components/MetricCard.wrn": "f195a9413591000f0ce9265f58cb45ae7a67ac08134213cfae7ffe75d53bab6a", "packages/ui/components/MetricGrid.wrn": "1fcebf51dcbe8520fe16bda904c1ef206c25c3900438d53877492c64ea21a1a5", - "packages/ui/components/Modal.wrn": "7fa4b877772736f29f690e24d8742922b310397ef3083f0b78acb67a9f0d14b2", + "packages/ui/components/Modal.wrn": "ddd560010581fb63f6dd8f51ddde9e8e7a5adb781b743c06eae28ac557f662d3", "packages/ui/components/Nav.wrn": "c45b0ecb42250f4b3ede33c8932a025f789dda9ef48dbf332459ae458163e69a", - "packages/ui/components/Navbar.wrn": "f5fe0978d7bae885a8cf8cd27c9dbaf3804d338f675395bd6567926c110fc32a", - "packages/ui/components/PageHeader.wrn": "29a93cdca7285548b79ebe5b6421eef6dbb4d5ae8be2508fa2d681e1068ba07f", - "packages/ui/components/Pagination.wrn": "d54226705d4556f76ee5f0d6ae82d101ca6d006397756d547a9aa5954415ba39", - "packages/ui/components/PinInput.wrn": "4dc398456f6392d7925db941debb484c7cb0358ecef527f696fe5ec4800a7602", - "packages/ui/components/Popover.wrn": "1246b99b4236bc7109a5d1427d013bb07bbea7a2da4f821517d2545ee0b5c019", - "packages/ui/components/PortalDashboard.wrn": "f04171eb1f8cabef06de3c20e4694b766def3407e1e20d2c9aaebc9bb7da03ee", - "packages/ui/components/PreferenceSwitcher.wrn": "519cf911390f529fff3fd16e11fb58e79d618fe851902202dc37552ee1182395", + "packages/ui/components/Navbar.wrn": "c9c1290954b1953fd7812d86bc261f4244f1e88eff5d2ebdf0b4a6fcd55df6d9", + "packages/ui/components/PageHeader.wrn": "a3e2c59041b9fdbf67188e2f3ea602aec487f22c14c7ca96c3d2b00d17a0725e", + "packages/ui/components/Pagination.wrn": "0049cc61f65f0db934cfc2d255656294b6188f29133f8ca0b716332a92595a5d", + "packages/ui/components/PinInput.wrn": "9b5112e6dbe1e16448b2a4f87d9f088519779779c9d0ec2bdd34e1e56be7faba", + "packages/ui/components/Popover.wrn": "322b6056633fb4f2211d2a67896cb12ae30b0b9f1ff582f6e520fa7ab6fabc86", + "packages/ui/components/PortalDashboard.wrn": "dea35ce15889fb673adbd965f11838e83dc937b13e57b00bc0af0c3a5a8ff5c7", + "packages/ui/components/PreferenceSwitcher.wrn": "6869b8b2efdbf42d9ec7bc79bd7cdce5997e5623c9aeddb01221f7fe1d2d1c98", "packages/ui/components/PublicPageShell.wrn": "3d3f25c03d48f3d3d7e3c567e79cb137c7fce1867e054fd6d440fa1d2e961077", - "packages/ui/components/RangeSlider.wrn": "e8ab41782c9d6e58638f0bfccf6e3172af4ebf552189d2199cc6c96bd1652067", - "packages/ui/components/Rating.wrn": "902b55c64e3798f3097f09b1558d1a2372f66d4f760662de085783108ee04587", + "packages/ui/components/RangeSlider.wrn": "37868f30ef15401d4ba6cca3f54d54ebac71c7bd20728d4bd95f80e844ee607c", + "packages/ui/components/Rating.wrn": "fbcc5b9c67ded0e3dc70cb0ab645046b02e27f17f006ded09558e28af6f24c81", "packages/ui/components/Scrollspy.wrn": "4b452fcbd524feda9c9f2c81894ee01747a51888e3b86fafb37c5d4d192a3a51", - "packages/ui/components/SearchBox.wrn": "3f88340e0b69c0cd552023c72bd22dc511bc00422d46060097bcf0777e683675", + "packages/ui/components/SearchBox.wrn": "90f58b7375bae2cf14e31d2c48a8c451f891a823f616c1f01075aca0762543ee", "packages/ui/components/Section.wrn": "78da13eb8bc1acafe8e6151cbaeed4baaac2ab860e3209f1d13c467f279d2e68", - "packages/ui/components/SectionHeader.wrn": "aca2df8eb35806096f5b9af466b018e5c22a19422e8665f488380da577a0ceb5", + "packages/ui/components/SectionHeader.wrn": "428c0c313c562987a4022671246b942d722dd2520b6cadd6f1a7644c7b56d4ee", "packages/ui/components/Sidebar.wrn": "ee817a9a46b4d6ab5fea4ebef6d4b28b3ea4599eb7f5b0cc81aa4be1769af792", "packages/ui/components/SplitHero.wrn": "7127cb869d1228522d066e028818dd9e512de8b6dd8f99e3dec500e6da5a3cb0", "packages/ui/components/StatsBar.wrn": "d4922c94962a957f428fa0e61743a76706ce38698fbf638d065c7fadde0eabe7", - "packages/ui/components/Stepper.wrn": "7ec0902acd7cb74b44d490215b6421dae9a41731735ad1e9aec17e8bfc3fa142", - "packages/ui/components/StrongPassword.wrn": "82fa3ea0711476e28e349faa35f21567b798c8bccdb4a8d5bbb5610081deab8d", - "packages/ui/components/StyledIcon.wrn": "0874f9a234b053a7c8b9c6983be5d664453a64c4576dff1a049101e249a2866d", + "packages/ui/components/Stepper.wrn": "07d9a90681b9415696603e06e8cf2aac2692f42fd5744d5655482a6092a5536b", + "packages/ui/components/StrongPassword.wrn": "9a2d59169ceed5af09e48412f4b50cf36e66a889317b8e15f01744cc47a8b69f", + "packages/ui/components/StyledIcon.wrn": "ca620463eecbf61d5465ca43513b29d7e175bdc784a3debc2f5b1a8d076fd2fa", "packages/ui/components/Tabs.wrn": "2ca14d0a87cff3066334f1295fd066a787b84b5667962c1d22fb879b4a68cea6", "packages/ui/components/TextLink.wrn": "9d561631c5f65a2bcdc59f5c0b166a5dd794a396f42093f2cd26388386f6f954", - "packages/ui/components/TimePicker.wrn": "33bd7a7069b7abe858cf1617b5b950733b37a8d522469ed673cff00b4dfcad0e", + "packages/ui/components/TimePicker.wrn": "4b7985fa5cec727a02012763fc7ab8ffee1dee5e54aa512da5bfccde398811c9", "packages/ui/components/Timeline.wrn": "7a58a77b1addf2ebbb0eb5dad008bcb49696c4265456d388d1cea71492c76ca6", - "packages/ui/components/Toaster.wrn": "5e4c9b2c1bfd5675a81a32e57684b99393ac7fe45d8420c7409a4e95d47d080c", - "packages/ui/components/ToggleCount.wrn": "e577195ee05ddb43cceec47145f6b90c0149f2f17055733d58911fcd02de2c7f", - "packages/ui/components/TogglePassword.wrn": "26b235de07e3be718fa2aaf07d86558b130f3feaef6e16dbe5916f51766ec378", + "packages/ui/components/Toaster.wrn": "de36dad25b30944800ab42d52492f18cbe5eca90ba17e8f70eb25690942d2c60", + "packages/ui/components/ToggleCount.wrn": "8370443edb8e15734448e4fd92c0ec3a573980de0402a6adcd24d62567112c4a", + "packages/ui/components/TogglePassword.wrn": "3f75a93f607472e73b357fa41b63cd2240b6fd561d03cfd31f92c69944431546", "packages/ui/components/TreeView.wrn": "f54d8495730203b923629bcfb167d5ca41236af0101ea2723d33354413555b4b", "packages/ui/components/Typography.wrn": "9676af57f2a937b21f45512e0a290b5bee4a16267fbf404850297d29645d88b5", - "packages/ui/components/WysiwygEditor.wrn": "a858ebd4e6e2672463ba57d4d049176ca1cc98dac32ab3df3638d6a9cdcd0f2d", - "packages/ui/components/alert.wrn": "d42287e41b918b1e19962e9462ef203002eb5480acac984f115b711e9dbe663d", + "packages/ui/components/WysiwygEditor.wrn": "6ae997ff6f3835b2ff3e4e3f050bcaa040efddba08fca9dc6d6d2c8d3cf4737b", + "packages/ui/components/alert.wrn": "e14e5ca056e27d36816d6949c4c56fbdbe9a881adb15036d6c8749c40dc451dd", "packages/ui/components/avatar.wrn": "8bc705e459b13c7f063c57e1506ce540e50fa8ef9020ae85b6e8b6a3579fc5dc", - "packages/ui/components/badge.wrn": "0c6cd7725908152bc9f95f9094ecf8e9e57529e569957723e0ab3e32f264d159", - "packages/ui/components/button.wrn": "8c6752c9db9605cf94eacacb60d765c21dbf6ddb27ac98065fd3bb4516e32731", - "packages/ui/components/checkbox.wrn": "da735354b57f33946591e1bd018b521ff709bae1325e2317735824673188377a", - "packages/ui/components/input.wrn": "4fc021d2fe098de556cb8b40e8cc558985af1da198d4dd94cc96d6ac770c18f1", + "packages/ui/components/badge.wrn": "f29605b692601d12fb0a9df3ee62d16c35fb03cf6448e3fef4402a56766d6842", + "packages/ui/components/button.wrn": "70681183850d5ddc1c0c23c52382ee2d40544c7bd8f0afe9850323f4805bfa31", + "packages/ui/components/checkbox.wrn": "67d148bf0482a3161b0393fd7a1aa3a7789de1173272abcdbb650e3a4a1377c7", + "packages/ui/components/input.wrn": "a074338ed781e34e020ca5585e73ab6dd6f9cf3ad94bf2911088b38d2ba1dffb", "packages/ui/components/progress.wrn": "6307a90585197d7aab19a8710b2430f5d4ed27ce77e9b90b1414ea0eed876492", - "packages/ui/components/radio.wrn": "df8e562324b6d99f5a157b0971d63bd715daa0cf6189e7b0d4df04d6f0411388", - "packages/ui/components/select.wrn": "c2db58e3648fd7c2b8a741cda61cd38c25954aa386f9657fe96e619cc01f305d", + "packages/ui/components/radio.wrn": "deb3412256fdd66128943773bbd7b826c760968cdc51131417038699c35526f8", + "packages/ui/components/select.wrn": "499113d8ac4b6d090adc515cac27285ba9cdd8af7ea54f18f61b0086da76e8c0", "packages/ui/components/skeleton.wrn": "4fc5e0846eeefd7830c038e1789be995c4f9d833aa913ff079eb4863baa65648", "packages/ui/components/spinner.wrn": "2322645da7ef53f7c06035ff071d9a2f6ffe2901ff9338daed84037369367105", - "packages/ui/components/switch.wrn": "243f521431ffb644089df7f629bace0c07094638dfdd27e75b2017efa9cbba4f", - "packages/ui/components/textarea.wrn": "2effae62f64e99eb4a402abce457c3262107433504719e7ab1c2f5bc91e94fcc", + "packages/ui/components/switch.wrn": "471e1bfd99e535818787bb19e35db800d3e24db051417cea89c72b96694ac073", + "packages/ui/components/textarea.wrn": "5b2614cf2cb869897d29c359812af3e2b0d6fe278ee2bbf6d99a92521eeaddf2", "packages/ui/components/tooltip.wrn": "f3dfdfa5cd9661fe5e95ef3580eef4c7437c069726421370c2d7328fbe7d840d", - "packages/ui/styles/SelectStyles.wrn": "074fe0d67de4ef5e9f9cfe879beb72fd5c83352888687d3a1a4b7722c87af3ca", - "packages/ui/ui.css": "9ea591404e9cf675bbf1003e15e9fad00327094ff217dc20733f0fc87c0f4a62" + "packages/ui/styles/SelectStyles.wrn": "0d000c18419187de9ab5c8bf1b86db1912cd5a4d90591f0da0da3533e10b8baa", + "packages/ui/ui.css": "27c2709b6b3a07b4c9a8bef8c2464159a54798a4c76384abd0707135b79ef437" } } diff --git a/examples/basic-app/app/styles/global.css b/examples/basic-app/app/styles/global.css index b2cc1ac9..7821dc78 100644 --- a/examples/basic-app/app/styles/global.css +++ b/examples/basic-app/app/styles/global.css @@ -45,13 +45,7 @@ body { Roboto, sans-serif; color: var(--text); - /* Tinted from the primary token so the wash follows the theme too. */ - background: radial-gradient( - 1200px 600px at 50% -10%, - color-mix(in srgb, var(--wrn-color-primary) 18%, var(--bg)) 0%, - var(--bg) 60% - ); - background-color: var(--bg); + background: var(--bg); } #app { diff --git a/examples/component-showcase/app/layouts/gallery.wrn b/examples/component-showcase/app/layouts/gallery.wrn new file mode 100644 index 00000000..4a69aa4e --- /dev/null +++ b/examples/component-showcase/app/layouts/gallery.wrn @@ -0,0 +1,8 @@ +layout Gallery { + view { +
Keyboard interaction, visible focus states, labels, and reduced-motion support ship by default.
Keyboard interaction, visible focus states, labels, and reduced-motion support ship by default.
Use the design switcher in the header to test this setting live.
The setting is inherited by components, blocks, templates, and playground previews.
Give every control a visible label. Use helperText for instructions and error for actionable feedback. Test Tab, Shift+Tab, Enter and Escape; focus must remain visible and follow the reading order.
<Input label="Email address" type="email" name="email" required="true" helperText="Use your work email." error="Enter a valid email address." />
+<Button label="Save changes" disabled="true" />Open the matching component page, change its options, and try the keyboard controls. Copy the demonstrated configuration into your page, then replace sample content with your data.
Theme-aware, responsive strong password component.
Theme-aware, responsive toggle count component.
Accessible password field with optional show and hide controls.
26 unique, responsive, theme-aware components. Open a component to inspect multiple live configurations and its complete props API.
- +Theme-aware, responsive accordion component.
Theme-aware, responsive alert component.
Theme-aware, responsive avatar component.
Theme-aware, responsive avatar group component.
Theme-aware, responsive badge component.
Theme-aware, responsive blockquote component.
Theme-aware, responsive button component.
Theme-aware, responsive button group component.
Supporting content belongs inside the default slot.
Supporting content belongs inside the default slot.
Group related content in a responsive themed surface with title, description, content, and supporting slots.
Theme-aware, responsive carousel component.
Theme-aware, responsive chat bubble component.
Theme-aware, responsive date picker component.
Theme-aware, responsive file upload progress component.
Theme-aware, responsive legend indicator component.
Theme-aware, responsive list group component.
Theme-aware, responsive rating component.
Theme-aware, responsive styled icon component.
Present responsive chronological activity, milestones, or workflow status with rich item metadata.
Theme-aware, responsive tree view component.
Complete responsive sections composed exclusively from the components in this library.
Real sections with live previews and complete source code.
Publish a responsive notice with badge, icon, supporting copy, action, dismiss behavior, and width controls.
Open example →Close a page or major section with conversion-focused copy, actions, and optional supporting visual content.
Open example →Present one linked feature or service with media, icon, badge, description, and action.
Open example →Arrange feature cards, services, solutions, or benefits in a responsive equal-height grid.
Open example →Present a compact feature or benefit with a styled icon, title, description, badge, and optional link.
Open example →Render structured responsive footer navigation, pre and post content, copyright content, links, and public events.
Open example →Build a full-width responsive hero with constrained content, actions, trust signals, and a structured or custom visual panel.
Open example →Group hero and campaign actions with consistent alignment, orientation, sizing, and responsive mobile stacking.
Open example →Introduce marketing content with an eyebrow, title, description, and optional linked action.
Open example →Arrange operational metrics, KPIs, public statistics, or service indicators in a responsive equal-height grid.
Open example →Introduce an internal or public page with breadcrumbs, icon, title, description, and primary or secondary actions.
Open example →Introduce a section with an eyebrow, title, description, alignment, and responsive heading hierarchy.
Open example →Build a responsive two-column introduction balancing descriptive content with a visual, image, or structured data panel.
Open example →Present a compact responsive strip of key facts, counts, performance indicators, or trust signals.
Open example →A ready-to-use section. Copy the complete example below.
page AnnouncementBarExample {
+ view {
+ <AnnouncementBar badge="Public notice" badgeIcon="icon-[lucide--sparkles]" message="All composite components are now available" description="Review each component and its recommended use cases." icon="icon-[lucide--megaphone]" actionLabel="View components" actionHref="#components" actionIcon="icon-[lucide--arrow-down]" dismissible="true" dismissLabel="Announcement Bar" sticky="false" compact="false" flush="false" mobileCompact="false" mobileMessageLines="2" hideBadgeOnMobile="false" hideDescriptionOnMobile="false" flushMobile="false" size="default" width="default" variant="soft" class="showcase-instance showcase-instance--1" />
+ }
+}A ready-to-use section. Copy the complete example below.
Add a screenshot, product preview, media block, chart, form, or illustration.
+page CTASectionExample {
+ view {
+ <CTASection eyebrow="Ready to continue" title="Build public pages with reusable components" description="Keep application pages focused on content and business data while the shared UI package owns presentation." icon="icon-[lucide--rocket]" align="split" size="default" variant="gradient" primaryLabel="Use these components" primaryHref="#components" primaryIcon="icon-[lucide--blocks]" secondaryLabel="Back to home" secondaryHref="/" secondaryIcon="icon-[lucide--house]" visualTitle="CTASection example" visualDescription="A polished default ctasection for a modern application." visualItems='[{"id":"ctasection-0-1","key":"ctasection-0-1","value":"primary","label":"Primary workflow","title":"Primary workflow","description":"A clean default configuration for everyday product interfaces.","text":"A configurable sample message.","href":"#ctasection-demo","actionHref":"#ctasection-demo","actionLabel":"View details","icon":"icon-[lucide--sparkles]","iconClass":"icon-[lucide--sparkles]","variant":"primary","status":"Active","time":"09:30","current":true,"selected":true,"checked":true,"disabled":false,"outgoing":false,"open":true,"number":1,"count":16,"percentage":72,"color":"#7c3aed","target":"_self","ariaLabel":"Open primary workflow 1","items":[{"label":"Nested option A","value":"nested-a"},{"label":"Nested option B","value":"nested-b"}],"links":[{"label":"Documentation","href":"#documentation"},{"label":"API reference","href":"#api-reference"}],"values":["Included","Standard"]},{"id":"ctasection-0-2","key":"ctasection-0-2","value":"secondary","label":"Additional option","title":"Supporting example","description":"A clean default configuration for everyday product interfaces.","text":"Another configurable message.","href":"#ctasection-demo","actionHref":"#ctasection-demo","actionLabel":"View details","icon":"icon-[lucide--sparkles]","iconClass":"icon-[lucide--sparkles]","variant":"primary","status":"Active","time":"09:30","current":false,"selected":false,"checked":false,"disabled":false,"outgoing":true,"open":true,"number":2,"count":32,"percentage":72,"color":"#7c3aed","target":"_self","ariaLabel":"Open primary workflow 2","items":[{"label":"Nested option A","value":"nested-a"},{"label":"Nested option B","value":"nested-b"}],"links":[{"label":"Documentation","href":"#documentation"},{"label":"API reference","href":"#api-reference"}],"values":["Included","Standard"]}]' maxWidth="full" fullBleed="false" class="showcase-instance showcase-instance--1"><div data-slot="visual">
+<div class="showcase-visual-panel">
+ <span class="icon-[lucide--layout-template] size-12" aria-hidden="true"></span>
+ <strong>Composable visual panel</strong>
+ <p>Add a screenshot, product preview, media block, chart, form, or illustration.</p>
+</div></div></CTASection>
+ }
+}A ready-to-use section. Copy the complete example below.
page FeatureCardExample {
+ view {
+ <FeatureCard icon="icon-[lucide--shield-check]" iconStyle="soft" eyebrow="Citizen support" title="Citizen services" description="Report incidents, request certificates, and find safety information." href="#citizen-services" external="false" actionLabel="Explore services" showArrow="true" stretchedLink="true" badge="Public" size="default" color="primary" variant="default" hover="lift" align="start" disabled="false" class="showcase-instance showcase-instance--1" />
+ }
+}A ready-to-use section. Copy the complete example below.
page FeatureGridExample {
+ view {
+ <FeatureGrid size="default" items='[{"icon":"icon-[lucide--shield-check]","eyebrow":"Citizen support","title":"Citizen services","description":"Report incidents, request certificates, and find safety information.","href":"#citizen-services","actionLabel":"Explore services","badge":"Public","color":"primary","variant":"default","hover":"lift"},{"icon":"icon-[lucide--map-pin]","eyebrow":"Directory","title":"Station directory","description":"Locate offices, jurisdictions, contacts, and public service hours.","href":"#station-directory","actionLabel":"Find a station","badge":"Directory","color":"info","variant":"soft","hover":"border"},{"icon":"icon-[lucide--radio-tower]","eyebrow":"Verified","title":"Public updates","description":"Publish official alerts, notices, advisories, and verified information.","href":"#public-updates","actionLabel":"View updates","badge":"Live","color":"success","variant":"gradient","hover":"glow"}]' columns="3" tabletColumns="2" mobileColumns="1" gap="lg" equalHeight="true" align="start" maxWidth="full" variant="default" label="Feature Grid" class="showcase-instance showcase-instance--1" />
+ }
+}A ready-to-use section. Copy the complete example below.
page FeatureIconCardExample {
+ view {
+ <FeatureIconCard icon="icon-[lucide--shield-check]" title="Secure by design" description="Build with consistent validation, accessibility, and theme support." href="#security" actionLabel="Review security" badge="Core" size="default" variant="default" align="start" clickableSurface="false" descriptionTone="A polished default feature icon card for a modern application." class="showcase-instance showcase-instance--1" />
+ }
+}A ready-to-use section. Copy the complete example below.
page FooterExample {
+ view {
+ <Footer size="default" label="Footer" items='[{"type":"header","label":"Product","description":"Build consistent interfaces with WRNexusJS.","items":[{"label":"Components","href":"/base"},{"label":"Themes","href":"/themes"},{"label":"Examples","href":"/blocks"}]},{"type":"header","label":"Developers","items":[{"label":"Documentation","href":"/docs"},{"label":"Installation","href":"/installation"},{"label":"Framework guides","href":"/framework-guides"}]},{"type":"header","label":"Resources","items":[{"label":"Accessibility","href":"/accessibility"},{"label":"Design tokens","href":"/colors"},{"label":"Typography","href":"/fonts"}]},{"type":"header","label":"Company","items":[{"label":"WorkRoot","href":"https://workroot.in","external":true},{"label":"WRNexusJS","href":"https://wrnexusjs.dev","external":true}]}]' columns="4" maxWidth="wide" mobileColumns="2" copyright="© 2026 WRNexusJS. All rights reserved." class="showcase-instance showcase-instance--1" />
+ }
+}A ready-to-use section. Copy the complete example below.
page HeroActionsExample {
+ view {
+ <HeroActions actions='[{"label":"Browse components","href":"#components","icon":"icon-[lucide--blocks]","variant":"primary"},{"label":"View metrics","href":"#metrics","icon":"icon-[lucide--chart-no-axes-column-increasing]","variant":"outline"}]' align="left" orientation="horizontal" stackOnMobile="true" fullWidthMobile="true" size="default" class="showcase-instance showcase-instance--1" />
+ }
+}A ready-to-use section. Copy the complete example below.
Add a screenshot, product preview, media block, chart, form, or illustration.
+page HeroExample {
+ view {
+ <Hero eyebrow="Reusable public UI" eyebrowIcon="icon-[lucide--sparkles]" icon="" title="Build polished pages" highlight="with consistent hero layouts" description="Create strong first impressions for public portals, product pages, and service overviews." align="start" size="default" variant="gradient" layout="split" visualPosition="right" visualStyle="card" showDecorations="true" fullBleed="true" visualTitle="Hero example" visualDescription="A polished default hero for a modern application." visualItems='[{"id":"hero-0-1","key":"hero-0-1","value":"primary","label":"Primary workflow","title":"Primary workflow","description":"A clean default configuration for everyday product interfaces.","text":"A configurable sample message.","href":"#hero-demo","actionHref":"#hero-demo","actionLabel":"View details","icon":"icon-[lucide--sparkles]","iconClass":"icon-[lucide--sparkles]","variant":"primary","status":"Active","time":"09:30","current":true,"selected":true,"checked":true,"disabled":false,"outgoing":false,"open":true,"number":1,"count":16,"percentage":72,"color":"#7c3aed","target":"_self","ariaLabel":"Open primary workflow 1","items":[{"label":"Nested option A","value":"nested-a"},{"label":"Nested option B","value":"nested-b"}],"links":[{"label":"Documentation","href":"#documentation"},{"label":"API reference","href":"#api-reference"}],"values":["Included","Standard"]},{"id":"hero-0-2","key":"hero-0-2","value":"secondary","label":"Additional option","title":"Supporting example","description":"A clean default configuration for everyday product interfaces.","text":"Another configurable message.","href":"#hero-demo","actionHref":"#hero-demo","actionLabel":"View details","icon":"icon-[lucide--sparkles]","iconClass":"icon-[lucide--sparkles]","variant":"primary","status":"Active","time":"09:30","current":false,"selected":false,"checked":false,"disabled":false,"outgoing":true,"open":true,"number":2,"count":32,"percentage":72,"color":"#7c3aed","target":"_self","ariaLabel":"Open primary workflow 2","items":[{"label":"Nested option A","value":"nested-a"},{"label":"Nested option B","value":"nested-b"}],"links":[{"label":"Documentation","href":"#documentation"},{"label":"API reference","href":"#api-reference"}],"values":["Included","Standard"]}]' primaryLabel="Explore components" primaryHref="#components" primaryIcon="icon-[lucide--arrow-right]" secondaryLabel="Read documentation" secondaryHref="#docs" secondaryIcon="icon-[lucide--book-open]" tertiaryLabel="Hero" tertiaryHref="#hero-demo" badges='[{"id":"hero-0-1","key":"hero-0-1","value":"primary","label":"Primary workflow","title":"Primary workflow","description":"A clean default configuration for everyday product interfaces.","text":"A configurable sample message.","href":"#hero-demo","actionHref":"#hero-demo","actionLabel":"View details","icon":"icon-[lucide--sparkles]","iconClass":"icon-[lucide--sparkles]","variant":"primary","status":"Active","time":"09:30","current":true,"selected":true,"checked":true,"disabled":false,"outgoing":false,"open":true,"number":1,"count":16,"percentage":72,"color":"#7c3aed","target":"_self","ariaLabel":"Open primary workflow 1","items":[{"label":"Nested option A","value":"nested-a"},{"label":"Nested option B","value":"nested-b"}],"links":[{"label":"Documentation","href":"#documentation"},{"label":"API reference","href":"#api-reference"}],"values":["Included","Standard"]},{"id":"hero-0-2","key":"hero-0-2","value":"secondary","label":"Additional option","title":"Supporting example","description":"A clean default configuration for everyday product interfaces.","text":"Another configurable message.","href":"#hero-demo","actionHref":"#hero-demo","actionLabel":"View details","icon":"icon-[lucide--sparkles]","iconClass":"icon-[lucide--sparkles]","variant":"primary","status":"Active","time":"09:30","current":false,"selected":false,"checked":false,"disabled":false,"outgoing":true,"open":true,"number":2,"count":32,"percentage":72,"color":"#7c3aed","target":"_self","ariaLabel":"Open primary workflow 2","items":[{"label":"Nested option A","value":"nested-a"},{"label":"Nested option B","value":"nested-b"}],"links":[{"label":"Documentation","href":"#documentation"},{"label":"API reference","href":"#api-reference"}],"values":["Included","Standard"]}]' trustItems='[{"id":"hero-0-1","key":"hero-0-1","value":"primary","label":"Primary workflow","title":"Primary workflow","description":"A clean default configuration for everyday product interfaces.","text":"A configurable sample message.","href":"#hero-demo","actionHref":"#hero-demo","actionLabel":"View details","icon":"icon-[lucide--sparkles]","iconClass":"icon-[lucide--sparkles]","variant":"primary","status":"Active","time":"09:30","current":true,"selected":true,"checked":true,"disabled":false,"outgoing":false,"open":true,"number":1,"count":16,"percentage":72,"color":"#7c3aed","target":"_self","ariaLabel":"Open primary workflow 1","items":[{"label":"Nested option A","value":"nested-a"},{"label":"Nested option B","value":"nested-b"}],"links":[{"label":"Documentation","href":"#documentation"},{"label":"API reference","href":"#api-reference"}],"values":["Included","Standard"]},{"id":"hero-0-2","key":"hero-0-2","value":"secondary","label":"Additional option","title":"Supporting example","description":"A clean default configuration for everyday product interfaces.","text":"Another configurable message.","href":"#hero-demo","actionHref":"#hero-demo","actionLabel":"View details","icon":"icon-[lucide--sparkles]","iconClass":"icon-[lucide--sparkles]","variant":"primary","status":"Active","time":"09:30","current":false,"selected":false,"checked":false,"disabled":false,"outgoing":true,"open":true,"number":2,"count":32,"percentage":72,"color":"#7c3aed","target":"_self","ariaLabel":"Open primary workflow 2","items":[{"label":"Nested option A","value":"nested-a"},{"label":"Nested option B","value":"nested-b"}],"links":[{"label":"Documentation","href":"#documentation"},{"label":"API reference","href":"#api-reference"}],"values":["Included","Standard"]}]' maxWidth="wide" class="showcase-instance showcase-instance--1"><div data-slot="visual">
+<div class="showcase-visual-panel">
+ <span class="icon-[lucide--layout-template] size-12" aria-hidden="true"></span>
+ <strong>Composable visual panel</strong>
+ <p>Add a screenshot, product preview, media block, chart, form, or illustration.</p>
+</div></div></Hero>
+ }
+}Publish a responsive notice with badge, icon, supporting copy, action, dismiss behavior, and width controls.
Open example →Close a page or major section with conversion-focused copy, actions, and optional supporting visual content.
Open example →Present one linked feature or service with media, icon, badge, description, and action.
Open example →Arrange feature cards, services, solutions, or benefits in a responsive equal-height grid.
Open example →Present a compact feature or benefit with a styled icon, title, description, badge, and optional link.
Open example →Render structured responsive footer navigation, pre and post content, copyright content, links, and public events.
Open example →Build a full-width responsive hero with constrained content, actions, trust signals, and a structured or custom visual panel.
Open example →Group hero and campaign actions with consistent alignment, orientation, sizing, and responsive mobile stacking.
Open example →Introduce marketing content with an eyebrow, title, description, and optional linked action.
Open example →Arrange operational metrics, KPIs, public statistics, or service indicators in a responsive equal-height grid.
Open example →Introduce an internal or public page with breadcrumbs, icon, title, description, and primary or secondary actions.
Open example →Introduce a section with an eyebrow, title, description, alignment, and responsive heading hierarchy.
Open example →Build a responsive two-column introduction balancing descriptive content with a visual, image, or structured data panel.
Open example →Present a compact responsive strip of key facts, counts, performance indicators, or trust signals.
Open example →A ready-to-use section. Copy the complete example below.
page MarketingSectionHeaderExample {
+ view {
+ <MarketingSectionHeader eyebrow="Platform capabilities" title="Build complete public experiences" description="Use reusable sections, cards, metrics, heroes, and CTAs." align="split" size="default" actionLabel="Explore components" actionHref="#components" actionIcon="icon-[lucide--arrow-right]" actionExternal="false" class="showcase-instance showcase-instance--1" />
+ }
+}A ready-to-use section. Copy the complete example below.
page MetricGridExample {
+ view {
+ <MetricGrid items='[{"label":"Public services","value":"24","description":"Citizen-facing services available online.","icon":"icon-[lucide--hand-heart]","trend":"+4","trendLabel":"this release","trendDirection":"up","color":"primary"},{"label":"Police stations","value":"126","description":"Searchable station and jurisdiction entries.","icon":"icon-[lucide--landmark]","trend":"Updated","trendLabel":"today","color":"info"},{"label":"Availability","value":"99.9","suffix":"%","description":"Target service availability.","icon":"icon-[lucide--activity]","trend":"Stable","trendLabel":"30 days","trendDirection":"positive","color":"success"}]' columns="3" tabletColumns="2" mobileColumns="1" gap="lg" equalHeight="true" dividers="false" size="default" variant="default" maxWidth="full" class="showcase-instance showcase-instance--1" />
+ }
+}A ready-to-use section. Copy the complete example below.
page PageHeaderExample {
+ view {
+ <PageHeader eyebrow="Component showcase" title="Page headers with clear hierarchy" description="Use PageHeader for services, directories, legal pages, guides, dashboards, and public information." icon="icon-[lucide--panel-top]" align="start" centered="false" compact="false" size="default" maxWidth="full" showBreadcrumbs="true" breadcrumbs='[{"label":"Home","href":"/","icon":"icon-[lucide--house]"},{"label":"Components","href":"/base"},{"label":"Page header","current":true}]' breadcrumbParentHref="#page-header-demo" primaryLabel="Primary action" primaryHref="#primary" primaryIcon="icon-[lucide--arrow-down]" secondaryLabel="Secondary action" secondaryHref="#secondary" secondaryIcon="icon-[lucide--house]" variant="default" borderBottom="true" class="showcase-instance showcase-instance--1" />
+ }
+}A ready-to-use section. Copy the complete example below.
page SectionHeaderExample {
+ view {
+ <SectionHeader eyebrow="Public services" title="Everything citizens need" description="Discover online services, directories, guidance, and verified public information." align="left" size="default" headingLevel="2" maxWidth="3xl" class="showcase-instance showcase-instance--1" />
+ }
+}A ready-to-use section. Copy the complete example below.
Add a screenshot, product preview, media block, chart, form, or illustration.
+page SplitHeroExample {
+ view {
+ <SplitHero eyebrow="Balanced layout" title="Combine detailed content" highlight="with a strong visual panel" description="Use SplitHero for product explanations, department introductions, campaigns, and feature storytelling." primaryLabel="View public services" primaryHref="#services" primaryIcon="icon-[lucide--arrow-right]" secondaryLabel="Contact department" secondaryHref="#contact" secondaryIcon="icon-[lucide--phone]" visualPosition="right" reverse="false" ratio="balanced" align="start" size="default" variant="default" maxWidth="wide" fullBleed="true" flushMobile="false" descriptionWeight="A polished default split hero for a modern application." mobileStack="true" visualTitle="Split Hero example" visualDescription="A polished default split hero for a modern application." visualItems='[{"id":"split-hero-0-1","key":"split-hero-0-1","value":"primary","label":"Primary workflow","title":"Primary workflow","description":"A clean default configuration for everyday product interfaces.","text":"A configurable sample message.","href":"#split-hero-demo","actionHref":"#split-hero-demo","actionLabel":"View details","icon":"icon-[lucide--sparkles]","iconClass":"icon-[lucide--sparkles]","variant":"primary","status":"Active","time":"09:30","current":true,"selected":true,"checked":true,"disabled":false,"outgoing":false,"open":true,"number":1,"count":16,"percentage":72,"color":"#7c3aed","target":"_self","ariaLabel":"Open primary workflow 1","items":[{"label":"Nested option A","value":"nested-a"},{"label":"Nested option B","value":"nested-b"}],"links":[{"label":"Documentation","href":"#documentation"},{"label":"API reference","href":"#api-reference"}],"values":["Included","Standard"]},{"id":"split-hero-0-2","key":"split-hero-0-2","value":"secondary","label":"Additional option","title":"Supporting example","description":"A clean default configuration for everyday product interfaces.","text":"Another configurable message.","href":"#split-hero-demo","actionHref":"#split-hero-demo","actionLabel":"View details","icon":"icon-[lucide--sparkles]","iconClass":"icon-[lucide--sparkles]","variant":"primary","status":"Active","time":"09:30","current":false,"selected":false,"checked":false,"disabled":false,"outgoing":true,"open":true,"number":2,"count":32,"percentage":72,"color":"#7c3aed","target":"_self","ariaLabel":"Open primary workflow 2","items":[{"label":"Nested option A","value":"nested-a"},{"label":"Nested option B","value":"nested-b"}],"links":[{"label":"Documentation","href":"#documentation"},{"label":"API reference","href":"#api-reference"}],"values":["Included","Standard"]}]' trustItems='[{"id":"split-hero-0-1","key":"split-hero-0-1","value":"primary","label":"Primary workflow","title":"Primary workflow","description":"A clean default configuration for everyday product interfaces.","text":"A configurable sample message.","href":"#split-hero-demo","actionHref":"#split-hero-demo","actionLabel":"View details","icon":"icon-[lucide--sparkles]","iconClass":"icon-[lucide--sparkles]","variant":"primary","status":"Active","time":"09:30","current":true,"selected":true,"checked":true,"disabled":false,"outgoing":false,"open":true,"number":1,"count":16,"percentage":72,"color":"#7c3aed","target":"_self","ariaLabel":"Open primary workflow 1","items":[{"label":"Nested option A","value":"nested-a"},{"label":"Nested option B","value":"nested-b"}],"links":[{"label":"Documentation","href":"#documentation"},{"label":"API reference","href":"#api-reference"}],"values":["Included","Standard"]},{"id":"split-hero-0-2","key":"split-hero-0-2","value":"secondary","label":"Additional option","title":"Supporting example","description":"A clean default configuration for everyday product interfaces.","text":"Another configurable message.","href":"#split-hero-demo","actionHref":"#split-hero-demo","actionLabel":"View details","icon":"icon-[lucide--sparkles]","iconClass":"icon-[lucide--sparkles]","variant":"primary","status":"Active","time":"09:30","current":false,"selected":false,"checked":false,"disabled":false,"outgoing":true,"open":true,"number":2,"count":32,"percentage":72,"color":"#7c3aed","target":"_self","ariaLabel":"Open primary workflow 2","items":[{"label":"Nested option A","value":"nested-a"},{"label":"Nested option B","value":"nested-b"}],"links":[{"label":"Documentation","href":"#documentation"},{"label":"API reference","href":"#api-reference"}],"values":["Included","Standard"]}]' class="showcase-instance showcase-instance--1"><div data-slot="visual">
+<div class="showcase-visual-panel">
+ <span class="icon-[lucide--layout-template] size-12" aria-hidden="true"></span>
+ <strong>Composable visual panel</strong>
+ <p>Add a screenshot, product preview, media block, chart, form, or illustration.</p>
+</div></div></SplitHero>
+ }
+}A ready-to-use section. Copy the complete example below.
page StatsBarExample {
+ view {
+ <StatsBar items='[{"label":"Composite components","value":"18","description":"Reusable public-page building blocks","icon":"icon-[lucide--blocks]","color":"primary"},{"label":"Rendering","value":"SSR","description":"Server-first WRNexusJS rendering","icon":"icon-[lucide--server]","color":"info"},{"label":"Responsive","value":"Yes","description":"Mobile, tablet, and desktop layouts","icon":"icon-[lucide--monitor-smartphone]","color":"success"},{"label":"Theme aware","value":"Yes","description":"Active theme and accent palettes","icon":"icon-[lucide--palette]","color":"warning"}]' columns="4" compact="true" dividers="true" icons="true" size="default" variant="raised" maxWidth="xl" mobileColumns="1" class="showcase-instance showcase-instance--1" />
+ }
+}Semantic primary, secondary, success, warning, danger, and info tokens remain available in every palette.
Primary and secondary tokens communicate brand hierarchy.
Success, warning, danger, and info preserve their semantic meaning in every palette.
Pass color="success" or another semantic color to any component.
Use primary for the main action, danger for destructive actions and success for completion. Always include text or an icon so color is not the only signal.
<Button label="Save" color="primary" />
+<Button label="Delete record" color="danger" />
+<Badge label="Active" color="success" />Open the matching component page, change its options, and try the keyboard controls. Copy the demonstrated configuration into your page, then replace sample content with your data.
<Accordion
- items='[
- {
- "id": "accordion-0-1",
- "key": "accordion-0-1",
- "value": "primary",
- "label": "Primary workflow",
- "title": "Primary workflow",
- "description": "A clean default configuration for everyday product interfaces.",
- "text": "A configurable sample message.",
- "href": "#accordion-demo",
- "actionHref": "#accordion-demo",
- "actionLabel": "View details",
- "icon": "icon-[lucide--sparkles]",
- "iconClass": "icon-[lucide--sparkles]",
- "variant": "primary",
- "status": "Active",
- "time": "09:30",
- "current": true,
- "selected": true,
- "checked": true,
- "disabled": false,
- "outgoing": false,
- "open": true,
- "number": 1,
- "count": 16,
- "percentage": 72,
- "color": "#7c3aed",
- "target": "_self",
- "ariaLabel": "Open primary workflow 1",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Standard"
- ]
- },
- {
- "id": "accordion-0-2",
- "key": "accordion-0-2",
- "value": "secondary",
- "label": "Additional option",
- "title": "Supporting example",
- "description": "A clean default configuration for everyday product interfaces.",
- "text": "Another configurable message.",
- "href": "#accordion-demo",
- "actionHref": "#accordion-demo",
- "actionLabel": "View details",
- "icon": "icon-[lucide--sparkles]",
- "iconClass": "icon-[lucide--sparkles]",
- "variant": "primary",
- "status": "Active",
- "time": "09:30",
- "current": false,
- "selected": false,
- "checked": false,
- "disabled": false,
- "outgoing": true,
- "open": true,
- "number": 2,
- "count": 32,
- "percentage": 72,
- "color": "#7c3aed",
- "target": "_self",
- "ariaLabel": "Open primary workflow 2",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Standard"
- ]
- }
- ]'
- defaultOpen='[
- {
- "id": "accordion-0-1",
- "key": "accordion-0-1",
- "value": "primary",
- "label": "Primary workflow",
- "title": "Primary workflow",
- "description": "A clean default configuration for everyday product interfaces.",
- "text": "A configurable sample message.",
- "href": "#accordion-demo",
- "actionHref": "#accordion-demo",
- "actionLabel": "View details",
- "icon": "icon-[lucide--sparkles]",
- "iconClass": "icon-[lucide--sparkles]",
- "variant": "primary",
- "status": "Active",
- "time": "09:30",
- "current": true,
- "selected": true,
- "checked": true,
- "disabled": false,
- "outgoing": false,
- "open": true,
- "number": 1,
- "count": 16,
- "percentage": 72,
- "color": "#7c3aed",
- "target": "_self",
- "ariaLabel": "Open primary workflow 1",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Standard"
- ]
- },
- {
- "id": "accordion-0-2",
- "key": "accordion-0-2",
- "value": "secondary",
- "label": "Additional option",
- "title": "Supporting example",
- "description": "A clean default configuration for everyday product interfaces.",
- "text": "Another configurable message.",
- "href": "#accordion-demo",
- "actionHref": "#accordion-demo",
- "actionLabel": "View details",
- "icon": "icon-[lucide--sparkles]",
- "iconClass": "icon-[lucide--sparkles]",
- "variant": "primary",
- "status": "Active",
- "time": "09:30",
- "current": false,
- "selected": false,
- "checked": false,
- "disabled": false,
- "outgoing": true,
- "open": true,
- "number": 2,
- "count": 32,
- "percentage": 72,
- "color": "#7c3aed",
- "target": "_self",
- "ariaLabel": "Open primary workflow 2",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Standard"
- ]
- }
- ]'
-/>
+ page AccordionExample {
+ state items = [
+ {
+ "value": "workspace",
+ "label": "How do I create a workspace?",
+ "content": "Choose Create workspace, add a name, and invite your team. You can update the details any time in Settings."
+ },
+ {
+ "value": "billing",
+ "label": "Can I change my plan later?",
+ "content": "Yes. Open Billing to compare plans and choose the one that suits your team."
+ },
+ {
+ "value": "security",
+ "label": "How is my account protected?",
+ "content": "Enable two-step verification and add a recovery method to keep your account secure."
+ }
+]
+ state defaultOpen = [
+ "workspace"
+]
+ view {
+ <Accordion
+ items="{items}"
+ defaultOpen="{defaultOpen}"
+ indicator="chevron"
+ indicatorPosition="end"
+ />
+ }
+}
payload.Compare configurations and resize the browser to check responsive behavior.
Balanced spacing, hierarchy, and content for the most common product workflow.
Unframed questions with trailing chevrons and aligned answers.
<Accordion
- items='[
- {
- "id": "accordion-0-1",
- "key": "accordion-0-1",
- "value": "primary",
- "label": "Primary workflow",
- "title": "Primary workflow",
- "description": "A clean default configuration for everyday product interfaces.",
- "text": "A configurable sample message.",
- "href": "#accordion-demo",
- "actionHref": "#accordion-demo",
- "actionLabel": "View details",
- "icon": "icon-[lucide--sparkles]",
- "iconClass": "icon-[lucide--sparkles]",
- "variant": "primary",
- "status": "Active",
- "time": "09:30",
- "current": true,
- "selected": true,
- "checked": true,
- "disabled": false,
- "outgoing": false,
- "open": true,
- "number": 1,
- "count": 16,
- "percentage": 72,
- "color": "#7c3aed",
- "target": "_self",
- "ariaLabel": "Open primary workflow 1",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Standard"
- ]
- },
- {
- "id": "accordion-0-2",
- "key": "accordion-0-2",
- "value": "secondary",
- "label": "Additional option",
- "title": "Supporting example",
- "description": "A clean default configuration for everyday product interfaces.",
- "text": "Another configurable message.",
- "href": "#accordion-demo",
- "actionHref": "#accordion-demo",
- "actionLabel": "View details",
- "icon": "icon-[lucide--sparkles]",
- "iconClass": "icon-[lucide--sparkles]",
- "variant": "primary",
- "status": "Active",
- "time": "09:30",
- "current": false,
- "selected": false,
- "checked": false,
- "disabled": false,
- "outgoing": true,
- "open": true,
- "number": 2,
- "count": 32,
- "percentage": 72,
- "color": "#7c3aed",
- "target": "_self",
- "ariaLabel": "Open primary workflow 2",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Standard"
- ]
- }
- ]'
- defaultOpen='[
- {
- "id": "accordion-0-1",
- "key": "accordion-0-1",
- "value": "primary",
- "label": "Primary workflow",
- "title": "Primary workflow",
- "description": "A clean default configuration for everyday product interfaces.",
- "text": "A configurable sample message.",
- "href": "#accordion-demo",
- "actionHref": "#accordion-demo",
- "actionLabel": "View details",
- "icon": "icon-[lucide--sparkles]",
- "iconClass": "icon-[lucide--sparkles]",
- "variant": "primary",
- "status": "Active",
- "time": "09:30",
- "current": true,
- "selected": true,
- "checked": true,
- "disabled": false,
- "outgoing": false,
- "open": true,
- "number": 1,
- "count": 16,
- "percentage": 72,
- "color": "#7c3aed",
- "target": "_self",
- "ariaLabel": "Open primary workflow 1",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Standard"
- ]
- },
- {
- "id": "accordion-0-2",
- "key": "accordion-0-2",
- "value": "secondary",
- "label": "Additional option",
- "title": "Supporting example",
- "description": "A clean default configuration for everyday product interfaces.",
- "text": "Another configurable message.",
- "href": "#accordion-demo",
- "actionHref": "#accordion-demo",
- "actionLabel": "View details",
- "icon": "icon-[lucide--sparkles]",
- "iconClass": "icon-[lucide--sparkles]",
- "variant": "primary",
- "status": "Active",
- "time": "09:30",
- "current": false,
- "selected": false,
- "checked": false,
- "disabled": false,
- "outgoing": true,
- "open": true,
- "number": 2,
- "count": 32,
- "percentage": 72,
- "color": "#7c3aed",
- "target": "_self",
- "ariaLabel": "Open primary workflow 2",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Standard"
- ]
- }
- ]'
-/>
+ page AccordionExample {
+ state items = [
+ {
+ "value": "workspace",
+ "label": "How do I create a workspace?",
+ "content": "Choose Create workspace, add a name, and invite your team. You can update the details any time in Settings."
+ },
+ {
+ "value": "billing",
+ "label": "Can I change my plan later?",
+ "content": "Yes. Open Billing to compare plans and choose the one that suits your team."
+ },
+ {
+ "value": "security",
+ "label": "How is my account protected?",
+ "content": "Enable two-step verification and add a recovery method to keep your account secure."
+ }
+]
+ state defaultOpen = [
+ "workspace"
+]
+ view {
+ <Accordion
+ items="{items}"
+ defaultOpen="{defaultOpen}"
+ indicator="chevron"
+ indicatorPosition="end"
+ />
+ }
+}
A tighter variation for dashboards, side panels, tables, and operational interfaces.
One shared border with leading indicators.
<Accordion
- size="sm"
- variant="secondary"
- items='[
- {
- "id": "accordion-1-1",
- "key": "accordion-1-1",
- "value": "primary",
- "label": "Secondary workflow",
- "title": "Secondary workflow",
- "description": "A compact configuration designed for dense application layouts.",
- "text": "A configurable sample message.",
- "href": "#accordion-demo",
- "actionHref": "#accordion-demo",
- "actionLabel": "View details",
- "icon": "icon-[lucide--zap]",
- "iconClass": "icon-[lucide--zap]",
- "variant": "secondary",
- "status": "Active",
- "time": "10:15",
- "current": true,
- "selected": true,
- "checked": true,
- "disabled": false,
- "outgoing": false,
- "open": true,
- "number": 1,
- "count": 24,
- "percentage": 48,
- "color": "#0284c7",
- "target": "_self",
- "ariaLabel": "Open secondary workflow 1",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Standard"
- ]
- },
- {
- "id": "accordion-1-2",
- "key": "accordion-1-2",
- "value": "secondary",
- "label": "Additional option",
- "title": "Supporting example",
- "description": "A compact configuration designed for dense application layouts.",
- "text": "Another configurable message.",
- "href": "#accordion-demo",
- "actionHref": "#accordion-demo",
- "actionLabel": "View details",
- "icon": "icon-[lucide--zap]",
- "iconClass": "icon-[lucide--zap]",
- "variant": "secondary",
- "status": "Active",
- "time": "10:15",
- "current": false,
- "selected": false,
- "checked": false,
- "disabled": false,
- "outgoing": true,
- "open": true,
- "number": 2,
- "count": 48,
- "percentage": 48,
- "color": "#0284c7",
- "target": "_self",
- "ariaLabel": "Open secondary workflow 2",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Standard"
- ]
- }
- ]'
- defaultOpen='[
- {
- "id": "accordion-1-1",
- "key": "accordion-1-1",
- "value": "primary",
- "label": "Secondary workflow",
- "title": "Secondary workflow",
- "description": "A compact configuration designed for dense application layouts.",
- "text": "A configurable sample message.",
- "href": "#accordion-demo",
- "actionHref": "#accordion-demo",
- "actionLabel": "View details",
- "icon": "icon-[lucide--zap]",
- "iconClass": "icon-[lucide--zap]",
- "variant": "secondary",
- "status": "Active",
- "time": "10:15",
- "current": true,
- "selected": true,
- "checked": true,
- "disabled": false,
- "outgoing": false,
- "open": true,
- "number": 1,
- "count": 24,
- "percentage": 48,
- "color": "#0284c7",
- "target": "_self",
- "ariaLabel": "Open secondary workflow 1",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Standard"
- ]
- },
- {
- "id": "accordion-1-2",
- "key": "accordion-1-2",
- "value": "secondary",
- "label": "Additional option",
- "title": "Supporting example",
- "description": "A compact configuration designed for dense application layouts.",
- "text": "Another configurable message.",
- "href": "#accordion-demo",
- "actionHref": "#accordion-demo",
- "actionLabel": "View details",
- "icon": "icon-[lucide--zap]",
- "iconClass": "icon-[lucide--zap]",
- "variant": "secondary",
- "status": "Active",
- "time": "10:15",
- "current": false,
- "selected": false,
- "checked": false,
- "disabled": false,
- "outgoing": true,
- "open": true,
- "number": 2,
- "count": 48,
- "percentage": 48,
- "color": "#0284c7",
- "target": "_self",
- "ariaLabel": "Open secondary workflow 2",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Standard"
- ]
- }
- ]'
-/>
+ page AccordionExample {
+ state items = [
+ {
+ "value": "workspace",
+ "label": "How do I create a workspace?",
+ "content": "Choose Create workspace, add a name, and invite your team. You can update the details any time in Settings."
+ },
+ {
+ "value": "billing",
+ "label": "Can I change my plan later?",
+ "content": "Yes. Open Billing to compare plans and choose the one that suits your team."
+ },
+ {
+ "value": "security",
+ "label": "How is my account protected?",
+ "content": "Enable two-step verification and add a recovery method to keep your account secure."
+ }
+]
+ state defaultOpen = [
+ "workspace"
+]
+ view {
+ <Accordion
+ size="sm"
+ variant="secondary"
+ items="{items}"
+ defaultOpen="{defaultOpen}"
+ bordered="true"
+ />
+ }
+}
A more expressive variation using additional data, stronger emphasis, and optional states.
Individually framed rows; multiple answers can stay open.
<Accordion
- size="lg"
- variant="success"
- items='[
- {
- "id": "accordion-2-1",
- "key": "accordion-2-1",
- "value": "primary",
- "label": "Advanced workflow",
- "title": "Advanced workflow",
- "description": "A richer configuration with more supporting information and actions.",
- "text": "A configurable sample message.",
- "href": "#accordion-demo",
- "actionHref": "#accordion-demo",
- "actionLabel": "Explore workflow",
- "icon": "icon-[lucide--circle-check]",
- "iconClass": "icon-[lucide--circle-check]",
- "variant": "success",
- "status": "Complete",
- "time": "11:45",
- "current": true,
- "selected": true,
- "checked": true,
- "disabled": false,
- "outgoing": false,
- "open": true,
- "number": 1,
- "count": 32,
- "percentage": 91,
- "color": "#059669",
- "target": "_self",
- "ariaLabel": "Open advanced workflow 1",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Unlimited"
- ]
- },
- {
- "id": "accordion-2-2",
- "key": "accordion-2-2",
- "value": "secondary",
- "label": "Additional option",
- "title": "Supporting example",
- "description": "A richer configuration with more supporting information and actions.",
- "text": "Another configurable message.",
- "href": "#accordion-demo",
- "actionHref": "#accordion-demo",
- "actionLabel": "Explore workflow",
- "icon": "icon-[lucide--circle-check]",
- "iconClass": "icon-[lucide--circle-check]",
- "variant": "success",
- "status": "Complete",
- "time": "11:45",
- "current": false,
- "selected": false,
- "checked": false,
- "disabled": true,
- "outgoing": true,
- "open": true,
- "number": 2,
- "count": 64,
- "percentage": 91,
- "color": "#059669",
- "target": "_self",
- "ariaLabel": "Open advanced workflow 2",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Unlimited"
- ]
- }
- ]'
- defaultOpen='[
- {
- "id": "accordion-2-1",
- "key": "accordion-2-1",
- "value": "primary",
- "label": "Advanced workflow",
- "title": "Advanced workflow",
- "description": "A richer configuration with more supporting information and actions.",
- "text": "A configurable sample message.",
- "href": "#accordion-demo",
- "actionHref": "#accordion-demo",
- "actionLabel": "Explore workflow",
- "icon": "icon-[lucide--circle-check]",
- "iconClass": "icon-[lucide--circle-check]",
- "variant": "success",
- "status": "Complete",
- "time": "11:45",
- "current": true,
- "selected": true,
- "checked": true,
- "disabled": false,
- "outgoing": false,
- "open": true,
- "number": 1,
- "count": 32,
- "percentage": 91,
- "color": "#059669",
- "target": "_self",
- "ariaLabel": "Open advanced workflow 1",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Unlimited"
- ]
- },
- {
- "id": "accordion-2-2",
- "key": "accordion-2-2",
- "value": "secondary",
- "label": "Additional option",
- "title": "Supporting example",
- "description": "A richer configuration with more supporting information and actions.",
- "text": "Another configurable message.",
- "href": "#accordion-demo",
- "actionHref": "#accordion-demo",
- "actionLabel": "Explore workflow",
- "icon": "icon-[lucide--circle-check]",
- "iconClass": "icon-[lucide--circle-check]",
- "variant": "success",
- "status": "Complete",
- "time": "11:45",
- "current": false,
- "selected": false,
- "checked": false,
- "disabled": true,
- "outgoing": true,
- "open": true,
- "number": 2,
- "count": 64,
- "percentage": 91,
- "color": "#059669",
- "target": "_self",
- "ariaLabel": "Open advanced workflow 2",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Unlimited"
- ]
- }
- ]'
-/>
+ page AccordionExample {
+ state items = [
+ {
+ "value": "workspace",
+ "label": "How do I create a workspace?",
+ "content": "Choose Create workspace, add a name, and invite your team. You can update the details any time in Settings."
+ },
+ {
+ "value": "billing",
+ "label": "Can I change my plan later?",
+ "content": "Yes. Open Billing to compare plans and choose the one that suits your team."
+ },
+ {
+ "value": "security",
+ "label": "How is my account protected?",
+ "content": "Enable two-step verification and add a recovery method to keep your account secure."
+ }
+]
+ state defaultOpen = [
+ "workspace"
+]
+ view {
+ <Accordion
+ size="lg"
+ variant="success"
+ items="{items}"
+ defaultOpen="{defaultOpen}"
+ multiple="true"
+ indicator="chevron"
+ indicatorPosition="end"
+ bordered="true"
+ separated="true"
+ />
+ }
+}
All content and behavior shown above is supplied through these props and slots.
| Prop | Type | Default | Required |
|---|---|---|---|
size | string | "default" | No |
color | string | "primary" | No |
variant | string | "default" | No |
class | string | "" | No |
id | string | "accordion" | No |
items | unknown[] | [] | No |
defaultOpen | unknown[] | [] | No |
multiple | boolean | false | No |
alwaysOpen | boolean | false | No |
disabled | boolean | false | No |
indicator | string | "plus" | No |
indicatorPosition | string | "start" | No |
showIndicator | boolean | true | No |
bordered | boolean | false | No |
separated | boolean | false | No |
flush | boolean | false | No |
contentItalic | boolean | false | No |
<AdvancedSelect
- label="Default advanced select"
- name="advanced-select-1"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- allowEmpty="false"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Default advanced select"
+ name="advanced-select-1"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ allowEmpty="false"
+ />
+ }
+}
<AdvancedSelect
- label="Grouped options"
- name="advanced-select-2"
- value="design"
- values='[]'
- options='[]'
- groups='[
- {
- "label": "Product",
- "options": [
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- }
- ]
- },
- {
- "label": "Business",
- "options": [
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]
- }
- ]'
- placeholder="Choose a team"
- searchable="false"
- allowEmpty="false"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = []
+ state groups = [
+ {
+ "label": "Product",
+ "options": [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ }
+ ]
+ },
+ {
+ "label": "Business",
+ "options": [
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+ ]
+ }
+]
+ view {
+ <AdvancedSelect
+ label="Grouped options"
+ name="advanced-select-2"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ searchable="false"
+ allowEmpty="false"
+ />
+ }
+}
<AdvancedSelect
- label="Fixed-position dropdown"
- name="advanced-select-3"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- searchable="false"
- allowEmpty="false"
- fixed="true"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Fixed-position dropdown"
+ name="advanced-select-3"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ searchable="false"
+ allowEmpty="false"
+ fixed="true"
+ />
+ }
+}
<AdvancedSelect
- label="Placeholder with icon"
- name="advanced-select-4"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a workspace"
- placeholderIcon="icon-[lucide--building-2]"
- searchable="false"
- allowEmpty="false"
- optionTemplate="icon"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Placeholder with icon"
+ name="advanced-select-4"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a workspace"
+ placeholderIcon="icon-[lucide--building-2]"
+ searchable="false"
+ allowEmpty="false"
+ optionTemplate="icon"
+ />
+ }
+}
<AdvancedSelect
- label="Allow empty selection"
- name="advanced-select-5"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- searchable="false"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Allow empty selection"
+ name="advanced-select-5"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ searchable="false"
+ />
+ }
+}
<AdvancedSelect
- label="Multiple selection"
- name="advanced-select-6"
- values='[
- "design",
- "engineering"
- ]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- multiple="true"
- searchable="false"
- allowEmpty="false"
-/>
+ page AdvancedSelectExample {
+ state values = [
+ "design",
+ "engineering"
+]
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Multiple selection"
+ name="advanced-select-6"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ multiple="true"
+ searchable="false"
+ allowEmpty="false"
+ />
+ }
+}
<AdvancedSelect
- label="Multiple selection with optgroups"
- name="advanced-select-7"
- values='[
- "design",
- "engineering"
- ]'
- options='[]'
- groups='[
- {
- "label": "Product",
- "options": [
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- }
- ]
- },
- {
- "label": "Business",
- "options": [
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]
- }
- ]'
- placeholder="Choose a team"
- multiple="true"
- searchable="false"
- allowEmpty="false"
-/>
+ page AdvancedSelectExample {
+ state values = [
+ "design",
+ "engineering"
+]
+ state options = []
+ state groups = [
+ {
+ "label": "Product",
+ "options": [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ }
+ ]
+ },
+ {
+ "label": "Business",
+ "options": [
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+ ]
+ }
+]
+ view {
+ <AdvancedSelect
+ label="Multiple selection with optgroups"
+ name="advanced-select-7"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ multiple="true"
+ searchable="false"
+ allowEmpty="false"
+ />
+ }
+}
<AdvancedSelect
- label="Multiple selection with option templates"
- name="advanced-select-8"
- values='[
- "design",
- "engineering"
- ]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- multiple="true"
- searchable="false"
- allowEmpty="false"
- optionTemplate="icon"
-/>
+ page AdvancedSelectExample {
+ state values = [
+ "design",
+ "engineering"
+]
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Multiple selection with option templates"
+ name="advanced-select-8"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ multiple="true"
+ searchable="false"
+ allowEmpty="false"
+ optionTemplate="icon"
+ />
+ }
+}
<AdvancedSelect
- label="Multiple selection with counter"
- name="advanced-select-9"
- values='[
- "design",
- "engineering"
- ]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- multiple="true"
- searchable="false"
- allowEmpty="false"
- showCounter="true"
-/>
+ page AdvancedSelectExample {
+ state values = [
+ "design",
+ "engineering"
+]
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Multiple selection with counter"
+ name="advanced-select-9"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ multiple="true"
+ searchable="false"
+ allowEmpty="false"
+ showCounter="true"
+ />
+ }
+}
<AdvancedSelect
- label="Multiple selection with conditional counter"
- name="advanced-select-10"
- values='[
- "design",
- "engineering"
- ]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- multiple="true"
- searchable="false"
- allowEmpty="false"
- maxSelections="3"
- showCounter="true"
-/>
+ page AdvancedSelectExample {
+ state values = [
+ "design",
+ "engineering"
+]
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Multiple selection with conditional counter"
+ name="advanced-select-10"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ multiple="true"
+ searchable="false"
+ allowEmpty="false"
+ maxSelections="3"
+ showCounter="true"
+ />
+ }
+}
<AdvancedSelect
- label="Counter with option templates"
- name="advanced-select-11"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- searchable="false"
- allowEmpty="false"
- showCounter="true"
- optionTemplate="icon"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Counter with option templates"
+ name="advanced-select-11"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ searchable="false"
+ allowEmpty="false"
+ showCounter="true"
+ optionTemplate="icon"
+ />
+ }
+}
<AdvancedSelect
- label="Searchable dropdown"
- name="advanced-select-12"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- allowEmpty="false"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Searchable dropdown"
+ name="advanced-select-12"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ allowEmpty="false"
+ />
+ }
+}
<AdvancedSelect
- label="Minimum search length"
- name="advanced-select-13"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- allowEmpty="false"
- minSearchLength="3"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Minimum search length"
+ name="advanced-select-13"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ allowEmpty="false"
+ minSearchLength="3"
+ />
+ }
+}
<AdvancedSelect
- label="Search result limit"
- name="advanced-select-14"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- allowEmpty="false"
- searchResultLimit="3"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Search result limit"
+ name="advanced-select-14"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ allowEmpty="false"
+ searchResultLimit="3"
+ />
+ }
+}
<AdvancedSelect
- label="Scroll to selected option"
- name="advanced-select-15"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- searchable="false"
- allowEmpty="false"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Scroll to selected option"
+ name="advanced-select-15"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ searchable="false"
+ allowEmpty="false"
+ />
+ }
+}
<AdvancedSelect
- label="Search match mode"
- name="advanced-select-16"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- allowEmpty="false"
- searchMode="startsWith"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Search match mode"
+ name="advanced-select-16"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ allowEmpty="false"
+ searchMode="startsWith"
+ />
+ }
+}
<AdvancedSelect
- label="Search labels and descriptions"
- name="advanced-select-17"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- allowEmpty="false"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Search labels and descriptions"
+ name="advanced-select-17"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ allowEmpty="false"
+ />
+ }
+}
<AdvancedSelect
- label="Tag-style selection"
- name="advanced-select-18"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- searchable="false"
- allowEmpty="false"
- tags="true"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Tag-style selection"
+ name="advanced-select-18"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ searchable="false"
+ allowEmpty="false"
+ tags="true"
+ />
+ }
+}
<AdvancedSelect
- label="Disabled tag selection"
- name="advanced-select-19"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- searchable="false"
- allowEmpty="false"
- tags="true"
- disabled="true"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Disabled tag selection"
+ name="advanced-select-19"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ searchable="false"
+ allowEmpty="false"
+ tags="true"
+ disabled="true"
+ />
+ }
+}
<AdvancedSelect
- label="Option template with icons"
- name="advanced-select-20"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- searchable="false"
- allowEmpty="false"
- optionTemplate="icon"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Option template with icons"
+ name="advanced-select-20"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ searchable="false"
+ allowEmpty="false"
+ optionTemplate="icon"
+ />
+ }
+}
<AdvancedSelect
- label="Option template with avatars"
- name="advanced-select-21"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- searchable="false"
- allowEmpty="false"
- optionTemplate="avatar"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Option template with avatars"
+ name="advanced-select-21"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ searchable="false"
+ allowEmpty="false"
+ optionTemplate="avatar"
+ />
+ }
+}
<AdvancedSelect
- label="Option template with color indicators"
- name="advanced-select-22"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- searchable="false"
- allowEmpty="false"
- optionTemplate="color"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Option template with color indicators"
+ name="advanced-select-22"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ searchable="false"
+ allowEmpty="false"
+ optionTemplate="color"
+ />
+ }
+}
<AdvancedSelect
- size="lg"
- label="Advanced select sizes"
- name="advanced-select-23"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- searchable="false"
- allowEmpty="false"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ size="lg"
+ label="Advanced select sizes"
+ name="advanced-select-23"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ searchable="false"
+ allowEmpty="false"
+ />
+ }
+}
<AdvancedSelect
- label="Disabled advanced select"
- name="advanced-select-24"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- searchable="false"
- allowEmpty="false"
- disabled="true"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Disabled advanced select"
+ name="advanced-select-24"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ searchable="false"
+ allowEmpty="false"
+ disabled="true"
+ />
+ }
+}
<AdvancedSelect
- label="Inside a modal"
- name="advanced-select-25"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- searchable="false"
- allowEmpty="false"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Inside a modal"
+ name="advanced-select-25"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ searchable="false"
+ allowEmpty="false"
+ />
+ }
+}
<AdvancedSelect
- label="Validation states"
- name="advanced-select-26"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- searchable="false"
- allowEmpty="false"
- required="true"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Validation states"
+ name="advanced-select-26"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ searchable="false"
+ allowEmpty="false"
+ required="true"
+ />
+ }
+}
<AdvancedSelect
- label="Dynamic validation styling"
- name="advanced-select-27"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- searchable="false"
- allowEmpty="false"
- required="true"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Dynamic validation styling"
+ name="advanced-select-27"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ searchable="false"
+ allowEmpty="false"
+ required="true"
+ />
+ }
+}
<AdvancedSelect
- label="Add or remove options"
- name="advanced-select-28"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- searchable="false"
- allowEmpty="false"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Add or remove options"
+ name="advanced-select-28"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ searchable="false"
+ allowEmpty="false"
+ />
+ }
+}
<AdvancedSelect
- label="Add or remove options in multiple mode"
- name="advanced-select-29"
- values='[
- "design",
- "engineering"
- ]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- multiple="true"
- searchable="false"
- allowEmpty="false"
-/>
+ page AdvancedSelectExample {
+ state values = [
+ "design",
+ "engineering"
+]
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Add or remove options in multiple mode"
+ name="advanced-select-29"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ multiple="true"
+ searchable="false"
+ allowEmpty="false"
+ />
+ }
+}
<AdvancedSelect
- label="Set a single value programmatically"
- name="advanced-select-30"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- searchable="false"
- allowEmpty="false"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Set a single value programmatically"
+ name="advanced-select-30"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ searchable="false"
+ allowEmpty="false"
+ />
+ }
+}
<AdvancedSelect
- label="Set multiple values programmatically"
- name="advanced-select-31"
- values='[
- "design",
- "engineering"
- ]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- multiple="true"
- searchable="false"
- allowEmpty="false"
-/>
+ page AdvancedSelectExample {
+ state values = [
+ "design",
+ "engineering"
+]
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Set multiple values programmatically"
+ name="advanced-select-31"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ multiple="true"
+ searchable="false"
+ allowEmpty="false"
+ />
+ }
+}
<AdvancedSelect
- label="Remote data source"
- name="advanced-select-32"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- allowEmpty="false"
- minSearchLength="2"
- remote="true"
- remoteUrl="/api/teams"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Remote data source"
+ name="advanced-select-32"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ allowEmpty="false"
+ minSearchLength="2"
+ remote="true"
+ remoteUrl="/api/teams"
+ />
+ }
+}
<AdvancedSelect
- label="Remote data source (multiple)"
- name="advanced-select-33"
- values='[
- "design",
- "engineering"
- ]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- multiple="true"
- allowEmpty="false"
- minSearchLength="2"
- remote="true"
- remoteUrl="/api/teams"
-/>
+ page AdvancedSelectExample {
+ state values = [
+ "design",
+ "engineering"
+]
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Remote data source (multiple)"
+ name="advanced-select-33"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ multiple="true"
+ allowEmpty="false"
+ minSearchLength="2"
+ remote="true"
+ remoteUrl="/api/teams"
+ />
+ }
+}
<AdvancedSelect
- label="Remote data tags"
- name="advanced-select-34"
- values='[
- "design",
- "engineering"
- ]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- multiple="true"
- allowEmpty="false"
- tags="true"
- minSearchLength="2"
- remote="true"
- remoteUrl="/api/teams"
-/>
+ page AdvancedSelectExample {
+ state values = [
+ "design",
+ "engineering"
+]
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Remote data tags"
+ name="advanced-select-34"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ multiple="true"
+ allowEmpty="false"
+ tags="true"
+ minSearchLength="2"
+ remote="true"
+ remoteUrl="/api/teams"
+ />
+ }
+}
<AdvancedSelect
- label="Option templates with remote data"
- name="advanced-select-35"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- allowEmpty="false"
- minSearchLength="2"
- optionTemplate="icon"
- remote="true"
- remoteUrl="/api/teams"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Option templates with remote data"
+ name="advanced-select-35"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ allowEmpty="false"
+ minSearchLength="2"
+ optionTemplate="icon"
+ remote="true"
+ remoteUrl="/api/teams"
+ />
+ }
+}
<AdvancedSelect
- label="Conditional counter with remote data"
- name="advanced-select-36"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- allowEmpty="false"
- minSearchLength="2"
- maxSelections="3"
- showCounter="true"
- remote="true"
- remoteUrl="/api/teams"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Conditional counter with remote data"
+ name="advanced-select-36"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ allowEmpty="false"
+ minSearchLength="2"
+ maxSelections="3"
+ showCounter="true"
+ remote="true"
+ remoteUrl="/api/teams"
+ />
+ }
+}
<AdvancedSelect
- label="Avatar template with remote data"
- name="advanced-select-37"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- allowEmpty="false"
- minSearchLength="2"
- optionTemplate="avatar"
- remote="true"
- remoteUrl="/api/teams"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Avatar template with remote data"
+ name="advanced-select-37"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ allowEmpty="false"
+ minSearchLength="2"
+ optionTemplate="avatar"
+ remote="true"
+ remoteUrl="/api/teams"
+ />
+ }
+}
<AdvancedSelect
- label="Preselected values"
- name="advanced-select-38"
- value="engineering"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- searchable="false"
- allowEmpty="false"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Preselected values"
+ name="advanced-select-38"
+ value="engineering"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ searchable="false"
+ allowEmpty="false"
+ />
+ }
+}
<AdvancedSelect
- label="Infinite scroll"
- name="advanced-select-39"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- allowEmpty="false"
- remote="true"
- remoteUrl="/api/teams"
- infinite="true"
- hasMore="true"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Infinite scroll"
+ name="advanced-select-39"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ allowEmpty="false"
+ remote="true"
+ remoteUrl="/api/teams"
+ infinite="true"
+ hasMore="true"
+ />
+ }
+}
<AdvancedSelect
- label="Inside overflow-hidden containers"
- name="advanced-select-40"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- searchable="false"
- allowEmpty="false"
- fixed="true"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Inside overflow-hidden containers"
+ name="advanced-select-40"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ searchable="false"
+ allowEmpty="false"
+ fixed="true"
+ />
+ }
+}
<AdvancedSelect
- label="Destroy and reinitialize"
- name="advanced-select-41"
- value="design"
- values='[]'
- options='[
- {
- "value": "design",
- "label": "Design",
- "description": "Product and visual design",
- "icon": "icon-[lucide--palette]",
- "color": "#8b5cf6",
- "avatar": "/showcase-images/avatar-design.svg"
- },
- {
- "value": "engineering",
- "label": "Engineering",
- "description": "Platform and application engineering",
- "icon": "icon-[lucide--code-2]",
- "color": "#0ea5e9",
- "avatar": "/showcase-images/avatar-engineering.svg"
- },
- {
- "value": "growth",
- "label": "Growth",
- "description": "Marketing and customer growth",
- "icon": "icon-[lucide--trending-up]",
- "color": "#10b981",
- "avatar": "/showcase-images/avatar-growth.svg"
- },
- {
- "value": "support",
- "label": "Support",
- "description": "Customer operations",
- "disabled": false
- }
- ]'
- groups='[]'
- placeholder="Choose a team"
- searchable="false"
- allowEmpty="false"
-/>
+ page AdvancedSelectExample {
+ state values = []
+ state options = [
+ {
+ "value": "design",
+ "label": "Design",
+ "description": "Product and visual design",
+ "icon": "icon-[lucide--palette]",
+ "color": "#8b5cf6",
+ "avatar": "/showcase-images/avatar-design.svg"
+ },
+ {
+ "value": "engineering",
+ "label": "Engineering",
+ "description": "Platform and application engineering",
+ "icon": "icon-[lucide--code-2]",
+ "color": "#0ea5e9",
+ "avatar": "/showcase-images/avatar-engineering.svg"
+ },
+ {
+ "value": "growth",
+ "label": "Growth",
+ "description": "Marketing and customer growth",
+ "icon": "icon-[lucide--trending-up]",
+ "color": "#10b981",
+ "avatar": "/showcase-images/avatar-growth.svg"
+ },
+ {
+ "value": "support",
+ "label": "Support",
+ "description": "Customer operations",
+ "disabled": false
+ }
+]
+ state groups = []
+ view {
+ <AdvancedSelect
+ label="Destroy and reinitialize"
+ name="advanced-select-41"
+ value="design"
+ values="{values}"
+ options="{options}"
+ groups="{groups}"
+ placeholder="Choose a team"
+ searchable="false"
+ allowEmpty="false"
+ />
+ }
+}
<Alert
- title="Alert example"
- description="A polished default alert for a modern application."
- items='[
- {
- "id": "alert-0-1",
- "key": "alert-0-1",
- "value": "primary",
- "label": "Primary workflow",
- "title": "Primary workflow",
- "description": "A clean default configuration for everyday product interfaces.",
- "text": "A configurable sample message.",
- "href": "#alert-demo",
- "actionHref": "#alert-demo",
- "actionLabel": "View details",
- "icon": "icon-[lucide--sparkles]",
- "iconClass": "icon-[lucide--sparkles]",
- "variant": "primary",
- "status": "Active",
- "time": "09:30",
- "current": true,
- "selected": true,
- "checked": true,
- "disabled": false,
- "outgoing": false,
- "open": true,
- "number": 1,
- "count": 16,
- "percentage": 72,
- "color": "#7c3aed",
- "target": "_self",
- "ariaLabel": "Open primary workflow 1",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Standard"
- ]
- },
- {
- "id": "alert-0-2",
- "key": "alert-0-2",
- "value": "secondary",
- "label": "Additional option",
- "title": "Supporting example",
- "description": "A clean default configuration for everyday product interfaces.",
- "text": "Another configurable message.",
- "href": "#alert-demo",
- "actionHref": "#alert-demo",
- "actionLabel": "View details",
- "icon": "icon-[lucide--sparkles]",
- "iconClass": "icon-[lucide--sparkles]",
- "variant": "primary",
- "status": "Active",
- "time": "09:30",
- "current": false,
- "selected": false,
- "checked": false,
- "disabled": false,
- "outgoing": true,
- "open": true,
- "number": 2,
- "count": 32,
- "percentage": 72,
- "color": "#7c3aed",
- "target": "_self",
- "ariaLabel": "Open primary workflow 2",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Standard"
- ]
- }
- ]'
- actions='[
- {
- "id": "alert-0-1",
- "key": "alert-0-1",
- "value": "primary",
- "label": "Primary workflow",
- "title": "Primary workflow",
- "description": "A clean default configuration for everyday product interfaces.",
- "text": "A configurable sample message.",
- "href": "#alert-demo",
- "actionHref": "#alert-demo",
- "actionLabel": "View details",
- "icon": "icon-[lucide--sparkles]",
- "iconClass": "icon-[lucide--sparkles]",
- "variant": "primary",
- "status": "Active",
- "time": "09:30",
- "current": true,
- "selected": true,
- "checked": true,
- "disabled": false,
- "outgoing": false,
- "open": true,
- "number": 1,
- "count": 16,
- "percentage": 72,
- "color": "#7c3aed",
- "target": "_self",
- "ariaLabel": "Open primary workflow 1",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Standard"
- ]
- },
- {
- "id": "alert-0-2",
- "key": "alert-0-2",
- "value": "secondary",
- "label": "Additional option",
- "title": "Supporting example",
- "description": "A clean default configuration for everyday product interfaces.",
- "text": "Another configurable message.",
- "href": "#alert-demo",
- "actionHref": "#alert-demo",
- "actionLabel": "View details",
- "icon": "icon-[lucide--sparkles]",
- "iconClass": "icon-[lucide--sparkles]",
- "variant": "primary",
- "status": "Active",
- "time": "09:30",
- "current": false,
- "selected": false,
- "checked": false,
- "disabled": false,
- "outgoing": true,
- "open": true,
- "number": 2,
- "count": 32,
- "percentage": 72,
- "color": "#7c3aed",
- "target": "_self",
- "ariaLabel": "Open primary workflow 2",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Standard"
- ]
- }
- ]'
- showIcon="true"
- dismissible="true"
- dismissLabel="Alert"
- linkLabel="Alert"
- linkHref="#alert-demo"
- actionLabel="Alert"
- actionHref="#alert-demo"
-/>
+ page AlertExample {
+ state items = []
+ state actions = []
+ view {
+ <Alert
+ color="success"
+ shadow="none"
+ title="Changes saved"
+ description="Your workspace settings are up to date."
+ items="{items}"
+ actions="{actions}"
+ showIcon="true"
+ icon="icon-[lucide--circle-check]"
+ dismissible="true"
+ />
+ }
+}
payload.Compare configurations and resize the browser to check responsive behavior.
Balanced spacing, hierarchy, and content for the most common product workflow.
A concise confirmation that can be dismissed.
<Alert
- title="Alert example"
- description="A polished default alert for a modern application."
- items='[
- {
- "id": "alert-0-1",
- "key": "alert-0-1",
- "value": "primary",
- "label": "Primary workflow",
- "title": "Primary workflow",
- "description": "A clean default configuration for everyday product interfaces.",
- "text": "A configurable sample message.",
- "href": "#alert-demo",
- "actionHref": "#alert-demo",
- "actionLabel": "View details",
- "icon": "icon-[lucide--sparkles]",
- "iconClass": "icon-[lucide--sparkles]",
- "variant": "primary",
- "status": "Active",
- "time": "09:30",
- "current": true,
- "selected": true,
- "checked": true,
- "disabled": false,
- "outgoing": false,
- "open": true,
- "number": 1,
- "count": 16,
- "percentage": 72,
- "color": "#7c3aed",
- "target": "_self",
- "ariaLabel": "Open primary workflow 1",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Standard"
- ]
- },
- {
- "id": "alert-0-2",
- "key": "alert-0-2",
- "value": "secondary",
- "label": "Additional option",
- "title": "Supporting example",
- "description": "A clean default configuration for everyday product interfaces.",
- "text": "Another configurable message.",
- "href": "#alert-demo",
- "actionHref": "#alert-demo",
- "actionLabel": "View details",
- "icon": "icon-[lucide--sparkles]",
- "iconClass": "icon-[lucide--sparkles]",
- "variant": "primary",
- "status": "Active",
- "time": "09:30",
- "current": false,
- "selected": false,
- "checked": false,
- "disabled": false,
- "outgoing": true,
- "open": true,
- "number": 2,
- "count": 32,
- "percentage": 72,
- "color": "#7c3aed",
- "target": "_self",
- "ariaLabel": "Open primary workflow 2",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Standard"
- ]
- }
- ]'
- actions='[
- {
- "id": "alert-0-1",
- "key": "alert-0-1",
- "value": "primary",
- "label": "Primary workflow",
- "title": "Primary workflow",
- "description": "A clean default configuration for everyday product interfaces.",
- "text": "A configurable sample message.",
- "href": "#alert-demo",
- "actionHref": "#alert-demo",
- "actionLabel": "View details",
- "icon": "icon-[lucide--sparkles]",
- "iconClass": "icon-[lucide--sparkles]",
- "variant": "primary",
- "status": "Active",
- "time": "09:30",
- "current": true,
- "selected": true,
- "checked": true,
- "disabled": false,
- "outgoing": false,
- "open": true,
- "number": 1,
- "count": 16,
- "percentage": 72,
- "color": "#7c3aed",
- "target": "_self",
- "ariaLabel": "Open primary workflow 1",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Standard"
- ]
- },
- {
- "id": "alert-0-2",
- "key": "alert-0-2",
- "value": "secondary",
- "label": "Additional option",
- "title": "Supporting example",
- "description": "A clean default configuration for everyday product interfaces.",
- "text": "Another configurable message.",
- "href": "#alert-demo",
- "actionHref": "#alert-demo",
- "actionLabel": "View details",
- "icon": "icon-[lucide--sparkles]",
- "iconClass": "icon-[lucide--sparkles]",
- "variant": "primary",
- "status": "Active",
- "time": "09:30",
- "current": false,
- "selected": false,
- "checked": false,
- "disabled": false,
- "outgoing": true,
- "open": true,
- "number": 2,
- "count": 32,
- "percentage": 72,
- "color": "#7c3aed",
- "target": "_self",
- "ariaLabel": "Open primary workflow 2",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Standard"
- ]
- }
- ]'
- showIcon="true"
- dismissible="true"
- dismissLabel="Alert"
- linkLabel="Alert"
- linkHref="#alert-demo"
- actionLabel="Alert"
- actionHref="#alert-demo"
-/>
+ page AlertExample {
+ state items = []
+ state actions = []
+ view {
+ <Alert
+ color="success"
+ shadow="none"
+ title="Changes saved"
+ description="Your workspace settings are up to date."
+ items="{items}"
+ actions="{actions}"
+ showIcon="true"
+ icon="icon-[lucide--circle-check]"
+ dismissible="true"
+ />
+ }
+}
A tighter variation for dashboards, side panels, tables, and operational interfaces.
One useful message without unnecessary actions.
<Alert
- size="sm"
- variant="secondary"
- title="Compact Alert"
- description="A compact configuration for dashboards and dense product surfaces."
- items='[
- {
- "id": "alert-1-1",
- "key": "alert-1-1",
- "value": "primary",
- "label": "Secondary workflow",
- "title": "Secondary workflow",
- "description": "A compact configuration designed for dense application layouts.",
- "text": "A configurable sample message.",
- "href": "#alert-demo",
- "actionHref": "#alert-demo",
- "actionLabel": "View details",
- "icon": "icon-[lucide--zap]",
- "iconClass": "icon-[lucide--zap]",
- "variant": "secondary",
- "status": "Active",
- "time": "10:15",
- "current": true,
- "selected": true,
- "checked": true,
- "disabled": false,
- "outgoing": false,
- "open": true,
- "number": 1,
- "count": 24,
- "percentage": 48,
- "color": "#0284c7",
- "target": "_self",
- "ariaLabel": "Open secondary workflow 1",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Standard"
- ]
- },
- {
- "id": "alert-1-2",
- "key": "alert-1-2",
- "value": "secondary",
- "label": "Additional option",
- "title": "Supporting example",
- "description": "A compact configuration designed for dense application layouts.",
- "text": "Another configurable message.",
- "href": "#alert-demo",
- "actionHref": "#alert-demo",
- "actionLabel": "View details",
- "icon": "icon-[lucide--zap]",
- "iconClass": "icon-[lucide--zap]",
- "variant": "secondary",
- "status": "Active",
- "time": "10:15",
- "current": false,
- "selected": false,
- "checked": false,
- "disabled": false,
- "outgoing": true,
- "open": true,
- "number": 2,
- "count": 48,
- "percentage": 48,
- "color": "#0284c7",
- "target": "_self",
- "ariaLabel": "Open secondary workflow 2",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Standard"
- ]
- }
- ]'
- actions='[
- {
- "id": "alert-1-1",
- "key": "alert-1-1",
- "value": "primary",
- "label": "Secondary workflow",
- "title": "Secondary workflow",
- "description": "A compact configuration designed for dense application layouts.",
- "text": "A configurable sample message.",
- "href": "#alert-demo",
- "actionHref": "#alert-demo",
- "actionLabel": "View details",
- "icon": "icon-[lucide--zap]",
- "iconClass": "icon-[lucide--zap]",
- "variant": "secondary",
- "status": "Active",
- "time": "10:15",
- "current": true,
- "selected": true,
- "checked": true,
- "disabled": false,
- "outgoing": false,
- "open": true,
- "number": 1,
- "count": 24,
- "percentage": 48,
- "color": "#0284c7",
- "target": "_self",
- "ariaLabel": "Open secondary workflow 1",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Standard"
- ]
- },
- {
- "id": "alert-1-2",
- "key": "alert-1-2",
- "value": "secondary",
- "label": "Additional option",
- "title": "Supporting example",
- "description": "A compact configuration designed for dense application layouts.",
- "text": "Another configurable message.",
- "href": "#alert-demo",
- "actionHref": "#alert-demo",
- "actionLabel": "View details",
- "icon": "icon-[lucide--zap]",
- "iconClass": "icon-[lucide--zap]",
- "variant": "secondary",
- "status": "Active",
- "time": "10:15",
- "current": false,
- "selected": false,
- "checked": false,
- "disabled": false,
- "outgoing": true,
- "open": true,
- "number": 2,
- "count": 48,
- "percentage": 48,
- "color": "#0284c7",
- "target": "_self",
- "ariaLabel": "Open secondary workflow 2",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Standard"
- ]
- }
- ]'
- showIcon="true"
- icon="icon-[lucide--arrow-right]"
- dismissible="true"
- dismissLabel="Compact example"
- linkLabel="Compact example"
- linkHref="#alert-demo"
- actionLabel="Compact example"
- actionHref="#alert-demo"
- compact="true"
-/>
+ page AlertExample {
+ state items = []
+ state actions = []
+ view {
+ <Alert
+ shadow="none"
+ title="Scheduled maintenance"
+ description="The dashboard will be unavailable Sunday, 02:00–02:30 UTC."
+ items="{items}"
+ actions="{actions}"
+ showIcon="true"
+ icon="icon-[lucide--info]"
+ dismissible="true"
+ />
+ }
+}
A more expressive variation using additional data, stronger emphasis, and optional states.
A warning with one relevant next step.
<Alert
- size="lg"
- variant="success"
- title="Advanced Alert"
- description="A richer configuration demonstrating additional content and hierarchy."
- items='[
- {
- "id": "alert-2-1",
- "key": "alert-2-1",
- "value": "primary",
- "label": "Advanced workflow",
- "title": "Advanced workflow",
- "description": "A richer configuration with more supporting information and actions.",
- "text": "A configurable sample message.",
- "href": "#alert-demo",
- "actionHref": "#alert-demo",
- "actionLabel": "Explore workflow",
- "icon": "icon-[lucide--circle-check]",
- "iconClass": "icon-[lucide--circle-check]",
- "variant": "success",
- "status": "Complete",
- "time": "11:45",
- "current": true,
- "selected": true,
- "checked": true,
- "disabled": false,
- "outgoing": false,
- "open": true,
- "number": 1,
- "count": 32,
- "percentage": 91,
- "color": "#059669",
- "target": "_self",
- "ariaLabel": "Open advanced workflow 1",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Unlimited"
- ]
- },
- {
- "id": "alert-2-2",
- "key": "alert-2-2",
- "value": "secondary",
- "label": "Additional option",
- "title": "Supporting example",
- "description": "A richer configuration with more supporting information and actions.",
- "text": "Another configurable message.",
- "href": "#alert-demo",
- "actionHref": "#alert-demo",
- "actionLabel": "Explore workflow",
- "icon": "icon-[lucide--circle-check]",
- "iconClass": "icon-[lucide--circle-check]",
- "variant": "success",
- "status": "Complete",
- "time": "11:45",
- "current": false,
- "selected": false,
- "checked": false,
- "disabled": true,
- "outgoing": true,
- "open": true,
- "number": 2,
- "count": 64,
- "percentage": 91,
- "color": "#059669",
- "target": "_self",
- "ariaLabel": "Open advanced workflow 2",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Unlimited"
- ]
- }
- ]'
- actions='[
- {
- "id": "alert-2-1",
- "key": "alert-2-1",
- "value": "primary",
- "label": "Advanced workflow",
- "title": "Advanced workflow",
- "description": "A richer configuration with more supporting information and actions.",
- "text": "A configurable sample message.",
- "href": "#alert-demo",
- "actionHref": "#alert-demo",
- "actionLabel": "Explore workflow",
- "icon": "icon-[lucide--circle-check]",
- "iconClass": "icon-[lucide--circle-check]",
- "variant": "success",
- "status": "Complete",
- "time": "11:45",
- "current": true,
- "selected": true,
- "checked": true,
- "disabled": false,
- "outgoing": false,
- "open": true,
- "number": 1,
- "count": 32,
- "percentage": 91,
- "color": "#059669",
- "target": "_self",
- "ariaLabel": "Open advanced workflow 1",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Unlimited"
- ]
- },
- {
- "id": "alert-2-2",
- "key": "alert-2-2",
- "value": "secondary",
- "label": "Additional option",
- "title": "Supporting example",
- "description": "A richer configuration with more supporting information and actions.",
- "text": "Another configurable message.",
- "href": "#alert-demo",
- "actionHref": "#alert-demo",
- "actionLabel": "Explore workflow",
- "icon": "icon-[lucide--circle-check]",
- "iconClass": "icon-[lucide--circle-check]",
- "variant": "success",
- "status": "Complete",
- "time": "11:45",
- "current": false,
- "selected": false,
- "checked": false,
- "disabled": true,
- "outgoing": true,
- "open": true,
- "number": 2,
- "count": 64,
- "percentage": 91,
- "color": "#059669",
- "target": "_self",
- "ariaLabel": "Open advanced workflow 2",
- "items": [
- {
- "label": "Nested option A",
- "value": "nested-a"
- },
- {
- "label": "Nested option B",
- "value": "nested-b"
- }
- ],
- "links": [
- {
- "label": "Documentation",
- "href": "#documentation"
- },
- {
- "label": "API reference",
- "href": "#api-reference"
- }
- ],
- "values": [
- "Included",
- "Unlimited"
- ]
- }
- ]'
- showIcon="true"
- icon="icon-[lucide--trash-2]"
- dismissible="true"
- dismissLabel="Advanced example"
- linkLabel="Advanced example"
- linkHref="#alert-demo"
- actionLabel="Advanced example"
- actionHref="#alert-demo"
-/>
+ page AlertExample {
+ state items = []
+ state actions = []
+ view {
+ <Alert
+ color="warning"
+ shadow="none"
+ title="Payment needs attention"
+ description="Update your payment method to keep your subscription active."
+ items="{items}"
+ actions="{actions}"
+ showIcon="true"
+ icon="icon-[lucide--triangle-alert]"
+ dismissible="true"
+ actionLabel="Update payment"
+ actionHref="#payment"
+ />
+ }
+}
All content and behavior shown above is supplied through these props and slots.
| Prop | Type | Default | Required |
|---|---|---|---|
size | string | "default" | No |
color | string | "info" | No |
variant | string | "soft" | No |
class | string | "" | No |
radius | string | "md" | No |
shadow | string | "sm" | No |
title | string | "Alert" | No |
description | string | "" | No |
items | unknown[] | [] | No |
actions | unknown[] | [] | No |
showIcon | boolean | false | No |
icon | string | "" | No |
dismissible | boolean | false | No |
dismissLabel | string | "Dismiss alert" | No |
role | string | "alert" | No |
live | string | "polite" | No |
linkLabel | string | "" | No |
linkHref | string | "" | No |
actionLabel | string | "" | No |
actionHref | string | "" | No |
compact | boolean | false | No |